IP Library Granted Patent US 8,861,538
Granted Patent B2
US 8,861,538 · App. 13/604,740 · Granted Oct 14, 2014

Throttling for fast data packet transfer operations

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 8,861,538
App. No.
13/604,740
Granted
Oct 14, 2014
Kind
B2
Abstract

A fast send method may be selectively implemented for certain data packets received from an application for transmission through a network interface. When the fast send method is triggered for a data packet, the application requesting transmission of the data packet may be provided a completion notice nearly immediately after the data packet is received. The fast send method may be used for data packets similar to previously-transmitted data packets for which the information in the data packet is already vetted. For example, a data packet with a similar source address, destination address, source port, destination port, application identifier, and/or activity identifier may have already been vetted. Data packets sent through the fast send method may be throttled to prevent one communication stream from blocking out other communication streams. For example, every nth data packet queued for the fast send method may be transmitted by a slow send method.

Claims (36)

1. A method, comprising:

receiving, from an application, a first data packet for transmission;

identifying a fast send method for transmitting the first data packet based on a table by matching information regarding the first data packet to an entry in the table, wherein the entry comprises an instruction to transmit the first data packet using the fast send method;

determining whether to throttle the first data packet; and

transmitting, if the first data packet is throttled, the first data packet with a slow send method.

2. The method of claim 1 , further comprising transmitting, if the first data packet is not throttled, the first data packet with a fast send method.

3. The method of claim 2 , in which the step of identifying the fast send method for transmitting the first data packet comprises determining a similar packet to the first data packet was previously transmitted successfully.

4. The method of claim 2 , in which the step of determining whether to throttle the first data packet comprises determining whether a certain number of data packets were transmitted with the fast send method prior to the first data packet.

5. The method of claim 2 , in which the step of determining whether to throttle the first data packet comprises determining whether a queue of data packets for transmission exceeds a predetermined size.

6. The method of claim 2 , in which the step of determining whether to throttle the first data packet comprises determining whether the application has exceeded a predetermined number of packets transmitted with the fast send method over a predetermined period of time.

7. The method of claim 1 , in which receiving the first data packet from the application comprises receiving the first data packet from the application executing in an emulated environment.

8. The method of claim 1 , in which the step of transmitting the first data packet comprises transmitting a user datagram protocol (UDP) packet.

9. A computer program product, comprising:

a non-transitory computer readable medium comprising:

code to receive, from an application, a first data packet for transmission;

code to identify a fast send method for transmitting the first data packet based on a table by matching information regarding the first data packet to an entry in the table, wherein the entry comprises an instruction to transmit the first data packet using the fast send method;

code to determine whether to throttle the first data packet; and

code to transmit, if the first data packet is throttled, the first data packet with a slow send method.

10. The computer program product of claim 9 , in which the medium further comprises code to transmitting, if the first data packet is not throttled, the first data packet with a fast send method.

11. The computer program product of claim 10 , in which the medium further comprises code to determine a similar packet to the first data packet was previously transmitted successfully.

12. The computer program product of claim 10 , in which the medium further comprises code to determine whether a certain number of data packets were transmitted with the fast send method prior to the first data packet.

13. The computer program product of claim 10 , in which the medium further comprises code to determine whether a queue of data packets for transmission exceeds a predetermined size.

14. The computer program product of claim 10 , in which the medium further comprises code to determine whether the application has exceeded a predetermined number of packets transmitted with the fast send method over a predetermined period of time.

15. The computer program product of claim 10 , in which the medium further comprises code to transmit a user datagram protocol (UDP) packet.

16. An apparatus, comprising:

a memory;

a network interface; and

a processor coupled to the memory and to the network interface, in which the processor is configured:

to receive, from an application, a first data packet for transmission;

to identify a fast send method for transmitting the first data packet based on a table by matching information regarding the first data packet to an entry in the table, wherein the entry comprises an instruction to transmit the first data packet using the fast send method;

to determine whether to throttle the first data packet; and

to transmit, if the first data packet is throttled, the first data packet with a slow send method.

17. The apparatus of claim 16 , in which the processor is further configured to transmitting, if the first data packet is not throttled, the first data packet with a fast send method.

18. The apparatus of claim 17 , in which the processor is further configured to determine whether a certain number of data packets were transmitted with the fast send method prior to the first data packet.

19. The apparatus of claim 17 , in which the processor is further configured to determine whether a queue of data packets for transmission exceeds a predetermined size.

20. The apparatus of claim 17 , in which the processor is further configured to transmit a user datagram protocol (UDP) packet.

Assignments (7)
AMENDED AND RESTATED PATENT SECURITY AGREEMENT Recorded Jun 27, 2025
From: UNISYS CORPORATION; UNISYS HOLDING CORPORATION; UNISYS NPL, INC.; UNISYS AP INVESTMENT COMPANY I
To: COMPUTERSHARE TRUST COMPANY, N.A., AS COLLATERAL TRUSTEE
Reel/Frame 071759/0527 →
RELEASE OF SECURITY INTEREST Recorded Oct 28, 2020
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNISYS CORPORATION
Reel/Frame 054231/0496 →
SECURITY INTEREST Recorded Oct 6, 2017
From: UNISYS CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044144/0081 →
PATENT SECURITY AGREEMENT Recorded Apr 27, 2017
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 042354/0001 →
RELEASE OF SECURITY INTEREST Recorded Mar 26, 2013
From: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL TRUSTEE
To: UNISYS CORPORATION
Reel/Frame 030082/0545 →
RELEASE OF SECURITY INTEREST Recorded Mar 15, 2013
From: DEUTSCHE BANK TRUST COMPANY
To: UNISYS CORPORATION
Reel/Frame 030004/0619 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 27, 2012
From: DEISINGER, MARK V.; SMITH, ALLYN; PETERS, JOHN A
To: UNISYS CORPORATION
Reel/Frame 029353/0611 →