IP Library Granted Patent US 9,871,878
Granted Patent B2
US 9,871,878 · App. 14/970,510 · Granted Jan 16, 2018

Network traffic accelerator

Inventors: Kartikeya Chandrayana (San Francisco, CA); Satish Raghunath (Sunnyvale, CA); Radha Krishna Pagadala (Sunnyvale, CA); Shauli Gal (Mountain View, CA); Maria Garcia Cerdeno (San Jose, CA); Russell Larsen (Santa Clara, CA)
Assignee: Twin Prime, Inc.
H04L67/28H04L67/02H04L69/16H04L43/0835H04L43/0852
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,871,878
App. No.
14/970,510
Granted
Jan 16, 2018
Kind
B2
Abstract

A system for improving network data communications performance between end-user devices and content origin servers. A plurality of accelerators are distributed across a network and communicate with end-user devices and content origin servers. Software development kits installed on end-user devices monitor control channel data traffic between the end-user devices and accelerators. Various data traffic efficiency approaches are implemented by the software development kits on the end-user devices and the plurality of accelerators resulting in improved data communications links between the end-user devices and the content origin servers.

Claims (54)

1. A method, comprising:

establishing, by a component at a first device, a communications connection across a network with a second device, the second device in communication with a content origin server;

detecting, by the component at the first device, issuance of a request from an application executing on the first device for content resident on the content origin server;

sending, by the component at the first device, a message over the communications connection to the second device specifying a mapping between a destination port and a host name for the content origin server;

storing, by the component at the first device, the mapping between the destination port and the host name;

intercepting, by the component at the first device, a connection request issued by an operating system component and immediately responding to the connection request with a success message;

sending, by the component at the first device, the connection request to the second device using the stored destination port.

2. The method of claim 1 , wherein the communications connection is a control channel.

3. The method of claim 1 , wherein the destination port may be selected from a pre-determined pool of ports that is mutually agreed upon between the first device and the second device.

4. The method of claim 1 , wherein the mapping instructs the second device to expect a connection request on the destination port and that the second device should relay traffic associated with the connection request to the host name.

5. The method of claim 1 , further comprising:

monitoring receive rate and time delay measurements between successive read events from an operating system stack;

detecting issues with earlier acknowledge packets for a particular connection sent to the second device using the receive rate and time delay measurements;

notifying the second device via an out of band acknowledgement command on the communications channel upon detecting that acknowledgement packets may not be reaching the second device.

6. The method of claim 5 , further comprising:

upon receiving the out of band acknowledgement command, the second device reassesses its state variables for the particular connection and performs at least one of: 1) readjusts an estimate of downstream bandwidth and appropriately transmits additional data, or 2) triggers early loss detection logic where information from any earlier selective acknowledge packets may be used to determine a need for targeted retransmissions.

7. The method of claim 1 , wherein the first device is a handset.

8. The method of claim 1 , wherein the second device is a proxy server.

9. One or more non-transitory computer-readable storage media, storing instructions which, when executed by one or more processors, cause performance of:

establishing, by a component at a first device, a communications connection across a network with a second device, the second device in communication with a content origin server;

detecting, by the component at the first device, issuance of a request from an application executing on the first device for content resident on the content origin server;

sending, by the component at the first device, a message over the communications connection to the second device specifying a mapping between a destination port and a host name for the content origin server;

storing, by the component at the first device, the mapping between the destination port and the host name;

intercepting, by the component at the first device, a connection request issued by an operating system component and immediately responding to the connection request with a success message;

sending, by the component at the first device, the connection request to the second device using the stored destination port.

10. The one or more non-transitory computer-readable storage media of claim 9 , wherein the communications connection is a control channel.

11. The one or more non-transitory computer-readable storage media of claim 9 , wherein the destination port may be selected from a pre-determined pool of ports that is mutually agreed upon between the first device and the second device.

12. The one or more non-transitory computer-readable storage media of claim 9 , wherein the mapping instructs the second device to expect a connection request on the destination port and that the second device should relay traffic associated with the connection request to the host name.

13. The one or more non-transitory computer-readable storage media of claim 9 , wherein the instructions which, when executed by the one or more processors, further cause performance of:

monitoring receive rate and time delay measurements between successive read events from an operating system stack;

detecting issues with earlier acknowledge packets for a particular connection sent to the second device using the receive rate and time delay measurements;

notifying the second device via an out of band acknowledgement command on the communications channel upon detecting that acknowledgement packets may not be reaching the second device.

14. The one or more non-transitory computer-readable storage media of claim 13 , wherein the instructions which, when executed by the one or more processors, further cause performance of:

upon receiving the out of band acknowledgement command, the second device reassesses its state variables for the particular connection and performs at least one of: 1) readjusts an estimate of downstream bandwidth and appropriately transmits additional data, or 2) triggers early loss detection logic where information from any earlier selective acknowledge packets may be used to determine a need for targeted retransmissions.

15. The one or more non-transitory computer-readable storage media of claim 9 , wherein the first device is a handset.

16. The one or more non-transitory computer-readable storage media of claim 9 , wherein the second device is a proxy server.

17. A system, comprising:

a communications subsystem, implemented at least partially in hardware at a first device, that establishes a communications connection across a network with a second device, the second device in communication with a content origin server;

wherein the communications subsystem detects issuance of a request from an application executing on the first device for content resident on the content origin server;

wherein the communications subsystem sends a message over the communications connection to the second device specifying a mapping between a destination port and a host name for the content origin server;

a storage subsystem, implemented at least partially in hardware at the first device, that stores the mapping between the destination port and the host name;

wherein the communications subsystem intercepts a connection request issued by an operating system component and immediately responds to the connection request with a success message;

wherein the communications subsystem sends the connection request to the second device using the stored destination port.

18. The system of claim 17 , wherein the communications connection is a control channel.

19. The system of claim 17 , wherein the destination port may be selected from a pre-determined pool of ports that is mutually agreed upon between the first device and the second device.

20. The system of claim 17 , wherein the mapping instructs the second device to expect a connection request on the destination port and that the second device should relay traffic associated with the connection request to the host name.

21. The system of claim 17 , further comprising:

a connection monitor, implemented at least partially in hardware at the first device, that monitors receive rate and time delay measurements between successive read events from an operating system stack;

wherein the connection monitor detects issues with earlier acknowledge packets for a particular connection sent to the second device using the receive rate and time delay measurements;

wherein the communications subsystem notifies the second device via an out of band acknowledgement command on the communications channel upon detecting that acknowledgement packets may not be reaching the second device.

22. The system of claim 21 , further comprising:

a connection status monitor, implemented at least partially in hardware at the second device, that upon receiving the out of band acknowledgement command, reassesses its state variables for the particular connection and performs at least one of: 1) readjusts an estimate of downstream bandwidth and appropriately transmits additional data, or 2) triggers early loss detection logic where information from any earlier selective acknowledge packets may be used to determine a need for targeted retransmissions.

23. The system of claim 17 , wherein the first device is a handset.

24. The system of claim 17 , wherein the second device is a proxy server.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE CORRECT THE NATURE OF CONVEYANCE FROM CHANGE OF NAME TO ASSIGNMENT ON THE COVER SHEET PREVIOUSLY RECORDED AT REEL: 69994 FRAME: 767. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 19, 2025
From: TWIN PRIME, INC.
To: SALESFORCE, INC.
Reel/Frame 070259/0094 →
CHANGE OF NAME Recorded Jan 24, 2025
From: TWIN PRIME, INC.
To: SALESFORCE, INC.
Reel/Frame 069994/0767 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2016
From: CHANDRAYANA, KARTIKEYA; RAGHUNATH, SATISH; PAGADALA, RADHA KRISHNA; GAL, SHAULI; GARCIA CERDENO, MARIA; LARSEN, RUSSELL
To: TWIN PRIME, INC.
Reel/Frame 037843/0175 →
Continuity (2)
Provisional Application 62092209 · Dec 15, 2014
Related Publication 20160173387A1 · Jun 16, 2016