IP Library Granted Patent US 9,306,860
Granted Patent B2
US 9,306,860 · App. 14/420,394 · Granted Apr 5, 2016

Congestion control method for dynamically maximizing communication link throughout

Inventors: Yoel Zanger (Tel Aviv, IL); Gil Gat (Tel Aviv, IL); Offer Atziz (Tel Aviv, IL); Stanislav Tulchin (Ramat Gan, IL); Sharon Malkiel (Azur, IL)
Assignee: Giraffic Technologies LTD.
H04L47/25H04L29/06H04L47/12H04L47/365H04L65/4084H04L65/601H04L65/80H04N21/23439H04N21/2402H04N21/26258H04N21/8456H04L43/0888H04L47/36H04L47/38H04L67/10H04L67/32
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,306,860
App. No.
14/420,394
Granted
Apr 5, 2016
Kind
B2
Abstract

A congestion control system and method for dynamically maximizing a communication link throughput is presented. The method involves monitoring and managing a variable number of streams from one or more URLs and their respective download fragment size in order to maximize the changing link capacity. The number of participating streams is adjusted according to total link congestion status.

Claims (57)

1. A congestion control method of dynamically maximizing communication link download throughput, comprising dynamically creating and deleting concurrent download session from URL and dynamically changing the size of data chunks for each session by continuously monitoring the overall congestion status of said link; wherein said monitoring comprises:

selecting a current strategy defining a number of concurrent download sessions and the duration of each session;

downloading data from said URL using the current strategy;

periodically checking whether said defined number of concurrent download sessions are active and whether the current strategy should be replaced by a new strategy, said periodical checking whether the current strategy should be replaced comprising checking whether a strategy change has been performed during a previous period and checking the download throughput accordingly; and

selecting a new current strategy if said checking indicates a strategy that can better utilize the download throughput.

2. The method of claim 1 , wherein said periodical checking whether said defined number of concurrent download sessions are active comprises:

a. if a first active session has terminated, determining whether to start download of the next data chunk or discard sessions;

b. if a next download session is pending, defining it as active and repeating step (a); and

c. adding pending download sessions if current number of sessions is smaller than said total number of concurrent download session defined by the current strategy.

3. The method of claim 1 or 2 , comprising, if a strategy change has been performed during said previous period, checking whether the strategy change has affected the communication line and requires another strategy change.

4. The method of any one of claims 1 to 3 , wherein said checking download throughput when a strategy change has been performed during said previous period comprises:

if the currently measured total download speed is greater than the total download speed measured in the previous period, selecting a new strategy comprising an increased number of target concurrent sessions; and

calculating a new data chunk size.

5. The method of claim 4 , wherein said increased number of target concurrent sessions is calculated according to the difference between said currently measured total download speed and said total download speed measured in the previous period.

6. The method of any one of claims 1 to 5 , comprising, if no strategy change has been performed during said previous period, checking whether external changes have affected the communication line and require strategy change.

7. The method of any one of claims 1 to 6 , wherein checking download throughput when no strategy change has been performed during said previous period comprises:

if the currently measured total download speed is smaller by at most a predefined percentage than the maximum download speed measured for the current strategy, selecting a new strategy having the highest worst measured download speed;

if the currently measured total download speed is greater by a at least predefined percentage than a calculated best download speed for the current strategy, selecting a new strategy having the highest best predefined download speed; and

calculating a new data chunk size.

8. A congestion control system for dynamically maximizing communication link download throughput, comprising a download session controller configured to dynamically create and delete parallel data streams from a URL and dynamically change the size of data fragments for each stream by continuously monitoring the overall congestion status of said link, wherein said download session controller is configured to:

select a current strategy defining a number of concurrent download sessions and the duration of each session;

download data from said URL using the current strategy;

periodically check whether said defined number of concurrent download sessions are active and whether the current strategy should be replaced by a new strategy, said periodical checking whether the current strategy should be replaced comprising checking whether a strategy change has been performed during a previous period and checking the download throughput accordingly; and

select a new current strategy if said checking indicates a strategy that can better utilize the download throughput.

9. The system of claim 8 , wherein said periodical checking whether said defined number of concurrent download session are active comprises:

a. if a first active session has terminated, determining whether to start download of the next data chunk or discard sessions;

b. if a next download session is pending, defining it as active and repeating step (a); and

c. adding pending download sessions if current number of sessions is smaller than said total number of concurrent download session defined by the current strategy.

10. The system of claim 8 or 9 , wherein the download session controller is configured to, if a strategy change has been performed during said previous period, check whether the strategy change has affected the communication line and another strategy change is required.

11. The system of any one of claims 8 to 10 , wherein said checking download throughput when a strategy change has been performed during said previous period comprises:

if the currently measured total download speed is greater than the total download speed measured in the previous period, selecting a new strategy comprising an increased number of target concurrent sessions; and

calculating a new data chunk size.

12. The system of claim 11 , wherein said increased number of target concurrent sessions is calculated according to the difference between said currently measured total download speed and said total download speed measured in the previous period.

13. The system of any one of claims 8 to 12 , wherein the download session controller is configured to, if no strategy change has been performed during said previous period, check whether external changes have affected the communication line and a strategy change is required.

14. The system of any one of claims 8 to 13 , wherein said checking download throughput when no strategy change has been performed during said previous period comprises:

if the currently measured total download speed is smaller by at most a predefined percentage than the maximum download speed measured for the current strategy, selecting a new strategy having the highest worst measured download speed;

if the currently measured total download speed is greater by at least a predefined percentage than a calculated best download speed for the current strategy selecting a new strategy having the highest best predefined download speed; and

calculating a new data chunk size.

15. A computer program product, comprising:

a computer readable storage medium having computer readable program embodied therein, the computer readable program configured to dynamically create and delete parallel data streams from a URL and dynamically change the size of data for each stream by continuously monitoring the overall congestion status of the link, said computer program configured to: select a current strategy defining a number of concurrent download sessions and the duration of each session;

download data from said URL using the current strategy;

periodically check whether said defined number of concurrent download sessions are active and whether the current strategy should be replaced by a new strategy, said periodical checking whether the current strategy should be replaced comprising checking whether a strategy change has been performed during a previous period and checking the download throughput accordingly; and

select a new current strategy if said checking indicates a strategy that can better utilize the download throughput.

16. The computer program product of claim 15 , said periodical checking whether said defined number of concurrent download session are active comprising:

e. if a first active session has terminated, determining whether to start download of the next data chunk or discard sessions;

f. if a next download session is pending, defining it as active and repeating step (a); and

g. adding pending download sessions if current number of sessions is smaller than said total number of concurrent download session defined by the current strategy.

17. The computer program product of claim 15 or 1 ,. wherein the computer program is configured to, if a strategy change has been performed during said previous period, check whether the strategy change has affected the communication line and another strategy change is required.

18. The computer program product of any one of claims 15 to 17 , wherein said checking download throughput when a strategy change has been performed during said previous period comprises:

if the currently measured total download speed is greater than the total download speed measured in the previous period, selecting a new strategy comprising an increased the number of target concurrent sessions; and

calculating a new data chunk size.

19. The computer program product of claim 18 , wherein said increased number of target concurrent sessions is calculated according to the difference between said currently measured total download speed and said total download speed measured in the previous period.

20. The computer program product of any one of claims 15 to 19 , wherein the computer program is configured to, if no strategy change has been performed during said previous period, check whether external changes have affected the communication line and a strategy change is required.

21. The computer program product of any one of claims 15 to 20 , wherein said checking download throughput when no strategy change has been performed during said previous period comprises:

if the currently measured total download speed is smaller by at most a predefined percentage than the maximum download speed measured for the current strategy, selecting a new strategy having the highest worst measured download speed;

if the currently measured total download speed is greater by at least a predefined percentage than a calculated best download speed for the current strategy, selecting a new strategy having the highest best predefined download speed; and

calculating a new data chunk size.

Assignments (6)
SECURITY INTEREST Recorded Sep 18, 2024
From: ROKU, INC.
To: CITIBANK, N.A.
Reel/Frame 068982/0377 →
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT (REEL/FRAME 051300/0931) Recorded Feb 22, 2023
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: ROKU, INC.; ROKU DX HOLDINGS, INC.
Reel/Frame 062826/0205 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 8, 2020
From: GIRAFFIC TECHNOLOGIES LTD.
To: ROKU, INC.
Reel/Frame 051453/0867 →
SECURITY INTEREST Recorded Dec 16, 2019
From: ROKU, INC.; ROKU DX HOLDINGS, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051300/0931 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2019
From: GIRAFFIC TECHNOLGIES LTD.
To: ROKU, INC.
Reel/Frame 050940/0668 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2015
From: ZANGER, YOEL; GAT, GIL; ATZIZ, OFFER; TULCHIN, STANISLAV; MALKIEL, SHARON
To: GIRAFFIC TECHNOLOGIES LTD.
Reel/Frame 034924/0041 →
Continuity (2)
Provisional Application 61715322 · Oct 18, 2012
Related Publication 20150207743A1 · Jul 23, 2015