IP Library Granted Patent US 9,253,103
Granted Patent B2
US 9,253,103 · App. 13/305,753 · Granted Feb 2, 2016

Managing streaming bandwidth for multiple clients

Inventors: Nery Strasman (Ramat Gan, IL); Biren Sood (Los Gatos, CA)
Assignee: Vasona Networks Inc.
H04L47/25H04L65/602H04N21/2385H04N21/2402H04N21/2662H04N21/8456
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,253,103
App. No.
13/305,753
Granted
Feb 2, 2016
Kind
B2
Abstract

A method, system and a computer program product. The method may include: allocating or receiving allocated bit rates to a plurality of streaming media flows, each streaming media flow comprises a plurality of chunks and is expected to flow over a last mile channel that is bandwidth limited; receiving a plurality of chunk requests from clients that are hosted on user devices, each chunk request indicates a requested bit rate for streaming a media chunk that belongs to the streaming media flow; changing at least one chunk request to comply with an allocated bit rate, if the requested bit rate does not comply with the allocated bit rate, to provide at least one new chunk request; and sending the at least one new chunk request to a media streamer that is expected to stream the streaming media flow to the user device.

Claims (82)

1. A method for controlling streaming media flows, the method comprising:

allocating or receiving allocated bit rates to a plurality of streaming media flows, each streaming media flow comprises a plurality of chunks and is expected to flow over a last mile channel that is bandwidth limited;

receiving, by a system, a plurality of chunk requests from clients that are hosted on user devices, each chunk request indicates a requested bit rate for streaming a media chunk that belongs to the streaming media flow; wherein the last mile channel is located downstream to the system;

changing, by the system, at least one chunk request to comply with an allocated bit rate, when the requested bit rate does not comply with the allocated bit rate, to provide at least one new chunk request; wherein the changing of the at least chunk request is performed without notifying at least client that is associated with the at least one chunk request; and

sending the at least one new chunk request to a media streamer that is expected to stream the streaming media flow to a user device of the user devices.

2. The method according to claim 1 , wherein the media streamer is unaware of a stage of the last mile channel.

3. The method according to claim 1 , comprising: receiving an acknowledgement message from a certain client, the acknowledgement message is indicative of a reception of a media chunk; and delaying a transmission of the acknowledgement message to the media streamer, wherein the delaying is responsive to a number of chunks of a media stream that that were received by the certain client and are pending to be displayed to a user of a certain user device that hosts the certain client.

4. The method according to claim 3 comprising concealing from the certain client the delaying of the transmission of the acknowledgement message.

5. The method according to claim 1 , comprising allocating the allocated bit rate to each of the streaming media flows by a system that is coupled to last mile channel.

6. The method according to claim 1 , comprising allocating the allocated bit rate to the streaming media flows by collaboration between the clients.

7. The method according to claim 1 , comprising allocating the allocated bit rates to the streaming media flows by utilizing client proxies that are hosted on a system that is coupled to the last mile channel.

8. The method according to claim 1 , comprising allocating the allocated bit rates based upon quality levels of the streaming media flows.

9. The method according to claim 1 , comprising:

not changing file requests that are associated with a first type of streaming media flows;

changing chunk requests to comply with allocated bit rates if the chunk requests are associated with a second type of streaming media flows and when requested bit rates do not comply with the allocated bit rates to provide new chunk requests; and

sending unchanged chunk requests and new chunk requests to at least one media streamer that is expected to stream the streaming media flows to the user devices.

10. The method according to claim 9 , wherein the first type of streaming media flows is a progressive download.

11. The method according to claim 9 , wherein the second type of streaming media flows is an adaptive bit rate flow.

12. The method according to claim 1 , comprising allocating the allocated bit rate to the streaming media flows by collaboration between the clients.

13. The method according to claim 1 , comprising allocating the allocated bit rates to the streaming media flows by utilizing client proxies on a system that is coupled to the last mile channel.

14. The method according to claim 1 comprising enforcing different bit rate control policies to different types of streaming media flows.

15. The method according to claim 1 wherein the last mile channel is a wired channel.

16. The method according to claim 1 wherein the last mile channel is a wireless channel.

17. The method according to claim 1 , wherein an allocated bit rate of the allocated bit rates is a predetermined portion of a maximal allowable bit rate of the streaming media flow.

18. The method according to claim 1 , wherein an allocated bit rate of the allocated bit rates is an 80% of a maximal allowable bit rate of the streaming media flow.

19. The method according to claim 1 , comprising allocating the allocated bit rates to the streaming media flows.

20. The method according to claim 1 , comprising receiving the allocated bit rates to the streaming media flows.

21. The method according to claim 1 , comprising executing the allocating by a system that is coupled between the media streamer and the last mile channel.

22. A system comprising:

an input interface arranged to receive a plurality of chunk requests from clients that are hosted on user devices, each chunk request indicates a requested bit rate for streaming a media chunk that belongs to the streaming media flow;

a processing module that is arranged to:

allocate or receive allocated bit rates to a plurality of streaming media flows, each streaming media flow comprises a plurality of chunks and is expected to flow over a last mile channel that is bandwidth limited; wherein the last mile channel is located downstream to the system;

change at least one chunk request to comply with an allocated bit rate, when the requested bit rate does not comply with the allocated bit rate, to provide at least one new chunk request; wherein the change of the at least chunk request is performed without notifying at least client that is associated with the at least one chunk request; and

an output interface arranged to send the at least one new chunk request to a media streamer that is expected to stream the streaming media flow to a user device of the user devices.

23. The system according to claim 22 , wherein the media streamer is unaware of a stage of the last mile channel.

24. The system according to claim 22 , wherein the input interface is arranged to receive an acknowledgement message from a client, the acknowledgement message is indicative of a reception of a media chunk; and wherein an output interface of the system is arranged to delay the transmission of the acknowledgement message, wherein the delay is responsive to a number of chunks of a media stream that that were received by the certain client and are pending to be displayed to a user of a certain user device that hosts the certain client.

25. The system according to claim 24 wherein the system is configured to conceal from the certain client the delaying of the transmission of the acknowledgement message.

26. The system according to claim 22 , wherein the processing module is arranged to allocate the allocated bit rate to each of the streaming media flows by a system that is coupled to last mile channel.

27. The system according to claim 22 , wherein the processing module is arranged to allocate the allocated bit rate to the streaming media flows by collaboration between the clients.

28. The system according to claim 22 , wherein the processing module is arranged to allocate the allocated bit rates to the streaming media flows by utilizing client proxies that are hosted by the system.

29. The system according to claim 22 , wherein the processing module is arranged to allocate the allocated bit rates based upon quality levels of the streaming media flows.

30. The system according to claim 22 , wherein the processing module is arranged to not change file requests that are associated with a first type of streaming media flows; change chunk requests to comply with allocated bit rates when the chunk requests are associated with a second type of streaming media flows and if requested bit rates do not comply with the allocated bit rates to provide new chunk requests; and wherein an output interface of the system is arranged to send unchanged chunk requests and new chunk requests to at least one media streamer that is expected to stream the streaming media flows to the user devices.

31. The system according to claim 30 , wherein the first type of streaming media flows is a progressive download.

32. The system according to claim 30 , wherein the second type of streaming media flows is an adaptive bit rate flow.

33. The system according to claim 22 , wherein the processing module is arranged to allocate the allocated bit rate to the streaming media flows by collaboration between the clients.

34. The system according to claim 22 , wherein the processing module is arranged to allocate the allocated bit rates to the streaming media flows by utilizing client proxies on a system that is coupled to the last mile channel.

35. The system according to claim 22 wherein the processing module is arranged to enforce different bit rate control policies to different types of streaming media flows.

36. The system according to claim 22 wherein the last mile channel is a wired channel.

37. The system according to claim 22 wherein the last mile channel is a wireless channel.

38. The system according to claim 22 , wherein an allocated bit rate is a predetermined portion of a maximal allowable bit rate of the streaming media flow.

39. The system according to claim 22 , wherein an allocated bit rate is an 80% of a maximal allowable bit rate of the streaming media flow.

40. The system according to claim 22 , wherein the processing module is arranged to allocate the allocated bit rates to the streaming media flows.

41. The system according to claim 22 , wherein the processing module is arranged to receive the allocated bit rates to the streaming media flows.

42. The system according to claim 22 , wherein the system is coupled between the media streamer and the last mile channel.

43. A computer program product that comprises a non-transitory computer readable medium that stores instructions for:

allocating or receiving allocated bit rates to a plurality of streaming media flows, each streaming media flow comprises a plurality of chunks and is expected to flow over a last mile channel that is bandwidth limited; wherein the last mile channel is located downstream to the system;

receiving a plurality of chunk requests from clients that are hosted on user devices, each chunk request indicates a requested bit rate for streaming a media chunk that belongs to the streaming media flow;

changing at least one chunk request to comply with an allocated bit rate, if the requested bit rate does not comply with the allocated bit rate, to provide at least one new chunk request;

wherein the changing of the at least chunk request is performed without notifying at least client that is associated with the at least one chunk request; and

sending the at least one new chunk request to a media streamer that is expected to stream the streaming media flow to the user device.

44. The computer program product according to claim 43 , wherein the media streamer is unaware of a stage of the last mile channel.

45. The computer program product according to claim 43 , wherein the non-transitory computer readable medium stores instructions for receiving an acknowledgement message from a client, the acknowledgement message is indicative of a reception of a media chunk and delaying the transmission of the acknowledgement message, wherein the delay is responsive to a number of chunks of a media stream that that were received by the certain client and are pending to be displayed to a user of a certain user device that hosts the certain client.

46. The computer program product according to claim 45 wherein the non-transitory computer readable medium stores stores instructions for concealing from the certain client the delaying of the transmission of the acknowledgement message.

47. The computer program product according to claim 43 , wherein the non-transitory computer readable medium stores instructions for allocating the allocated bit rate to each of the streaming media flows by a system that is coupled to last mile channel.

48. The computer program product according to claim 43 , wherein the non-transitory computer readable medium stores instructions for allocating the allocated bit rates to the streaming media flows by a collaboration between the clients.

49. The computer program product according to claim 43 , wherein the non-transitory computer readable medium stores instructions for allocating the allocated bit rates to the streaming media flows by utilizing client proxies that are hosted by a system that is coupled to the last mile channel.

50. The computer program product according to claim 43 , wherein the non-transitory computer readable medium stores instructions for allocating the allocated bit rates based upon quality levels of the streaming media flows.

51. The computer program product according to claim 43 , wherein the non-transitory computer readable medium stores instructions for:

maintaining file requests unchanged if the file requests are associated with a first type of streaming media flows;

changing chunk requests to comply with allocated bit rates if the chunk requests are associated with a second type of streaming media flows and if requested bit rates do not comply with the allocated bit rates to provide new chunk requests; and

sending unchanged chunk requests and new chunk requests to at least one media streamer that is expected to stream the streaming media flows to the user devices.

52. The computer program product according to claim 51 , wherein the first type of streaming media flows is a progressive download.

53. The computer program product according to claim 51 , wherein the second type of streaming media flows is an adaptive bit rate flow.

54. The computer program product according to claim 43 , wherein the non-transitory computer readable medium stores instructions for allocating the allocated bit rates to the streaming media flows by collaboration between the clients.

55. The computer program product according to claim 43 , wherein the non-transitory computer readable medium stores instructions for allocating the allocated bit rates to the streaming media flows by utilizing client proxies on a system that is coupled to the last mile channel.

56. The computer program product according to claim 43 , wherein the non-transitory computer readable medium stores instructions for enforcing different bit rate control policies to different types of streaming media flows.

57. The computer program product according to claim 43 , wherein the last mile channel is a wired channel.

58. The computer program product according to claim 43 , wherein the last mile channel is a wireless channel.

59. The computer program product according to claim 43 , wherein the non-transitory computer readable medium stores instructions for determining an allocated bit rate of the allocated bit rates as a predetermined portion of a maximal allowable bit rate of the streaming media flow.

60. The computer program product according to claim 43 , wherein an allocated bit rate of the allocated bit rates as an 80% of a maximal allowable bit rate of the streaming media flow.

61. The computer program product according to claim 43 , wherein the non-transitory computer readable medium stores instructions for allocating the allocated bit rates to the streaming media flows.

62. The computer program product according to claim 43 , wherein the non-transitory computer readable medium stores instructions for receiving the allocated bit rate to the streaming media flow.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded May 24, 2019
From: SILICON VALLEY BANK
To: VASONA NETWORKS, INC.
Reel/Frame 049276/0512 →
SECURITY INTEREST Recorded Sep 12, 2018
From: VASONA NETWORKS, INC.
To: SILICON VALLEY BANK
Reel/Frame 046851/0324 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2015
From: STRASMAN, NERY; SOOD, BIREN
To: VASONA NETWORKS INC.
Reel/Frame 037362/0990 →
Continuity (2)
Continuation 13129399 · Feb 1, 2012
Related Publication 20130138828A1 · May 30, 2013