IP Library Granted Patent US 11,184,833
Granted Patent B2
US 11,184,833 · App. 16/445,981 · Granted Nov 23, 2021

Bandwidth sharing amongst trusted peers

Inventors: Anudeep Narasimhaprasad Athlur (Bangalore, IN); Praveen Raja Dhanabalan (Bangalore, IN); Anuj Magazine (Bangalore, IN)
Assignee: Citrix Systems, Inc.
H04W40/34H04L9/3213H04W4/06H04W4/12H04W12/033H04W12/06H04W40/22H04W76/14H04W92/18
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 11,184,833
App. No.
16/445,981
Filed
Jun 19, 2019
Granted
Nov 23, 2021
Kind
B2
Art Unit
2457
USPC
709/239
Abstract

A first device connected to a network via a first connection may perform a method that involves determining a need for improved communication between the first device and the network, receiving a message from a second device that includes an indication of at least one performance parameter of a second connection between the second device and the network, establishing a peer-to-peer connection between the first device and the second device based at least in part on the indication, and communicating with the network via a communications channel that includes the peer-to-peer connection and the second connection.

Claims (100)

1. A method, comprising:

determining, by a first client device, a need for improved communication between the first client device and a network, the first client device connected to the network via a first connection;

broadcasting, by the first client device, a first message indicating the need for improved communication;

receiving, by the first client device and in response to broadcasting the first message, second and third messages from second and third client devices, respectively, the second message including a first indication of a first available bandwidth of a second connection between the second client device and the network, and the third message including a second indication of a second available bandwidth of a third connection between the third client device and the network;

determining, based at least in part on the first indication and the second indication, that the first available bandwidth of the second connection is greater than the second available bandwidth of the third connection;

establishing, by the first client device and based at least in part on the first available bandwidth of the second connection being greater than the second available bandwidth of the third connection, a first peer-to-peer connection between the first client device and the second client device; and

communicating, by the first client device, with the network via a communications channel that includes the first peer-to-peer connection and the second connection between the second client device and the network.

2. The method of claim 1 , further comprising:

based at least in part on the first available bandwidth of the second connection being greater than the second available bandwidth of the third connection, sending, from the first client device to the second client device, a message requesting establishment of the first peer-to-peer connection.

3. The method of claim 1 , further comprising:

determining a first priority status assigned to the first client device; and

determining a second priority status assigned to the second client device;

wherein establishing the first peer-to-peer connection is further based at least in part on the first priority status and the second priority status.

4. The method of claim 1 , further comprising:

determining that the second available bandwidth of the second connection is above a threshold;

wherein establishing the first peer-to-peer connection is further based at least in part on the second available bandwidth of the second connection being above the threshold.

5. The method of claim 1 , further comprising:

determining a strength of a first signal emitted by a wireless interface of the second client device; and

determining that the strength of the first signal is above a threshold;

wherein establishing the first peer-to-peer connection is further based at least in part on the strength of the first signal being above the threshold.

6. The method of claim 1 , further comprising:

determining a strength of a first signal emitted by a wireless interface of the second client device;

determining a strength of a second signal emitted by a wireless interface of the third client device; and

determining that the strength of the first signal is greater than the strength of the second signal;

wherein establishing the first peer-to-peer connection is further based at least in part on the strength of the first signal being greater than the strength of the second signal.

7. The method of claim 1 , further comprising:

sending, to a computing system, an authentication request identifying a user of the first client device;

receiving, from the computing system and based at least in part on the authentication request, a token; and

encrypting communications sent over the first peer-to-peer connection based at least in part on the token.

8. The method of claim 1 , further comprising:

establishing a second peer-to-peer connection between the first client device and at least one other device;

wherein communicating with the network further comprises communicating with the network via a bonded communications channel that includes both the first peer-to-peer connection and the second peer-to-peer connection.

9. The method of claim 1 , further comprising:

determining, by the first client device, that the first client device accesses at least one application designated as being of a first level of importance relative to other applications;

wherein establishing the first peer-to-peer connection is further based at least in part on the at least one application being designated as of the first level of importance.

10. The method of claim 9 , wherein determining the need for improved communication further comprises:

determining that at least one performance parameter of the first connection is inadequate for the at least one application.

11. The method of claim 10 , wherein the at least one performance parameter of the first connection includes a third available bandwidth of the first connection, and determining that the at least one performance parameter of the first connection is inadequate further comprises:

determining the third available bandwidth of the first connection; and

determining that the third available bandwidth of the first connection is below a threshold.

12. At least one non-transitory computer-readable medium encoded with instructions which, when executed by at least one processor included in a first client device connected to a network via a first connection, cause the first client device to:

determine a need for improved communication between the first client device and the network;

broadcast a first message indicating the need for improved communication;

receive, in response to broadcasting the first message, second and third messages from second and third client devices, respectively, the second message including a first indication of a first available bandwidth of a second connection between the second client device and the network, and the third message including a second indication of a second available bandwidth of a third connection between the third client device and the network;

determine, based at least in part on the first indication and the second indication, that the first available bandwidth of the second connection is greater than the second available bandwidth of the third connection;

establish, based at least in part on the first available bandwidth of the second connection being greater than the second available bandwidth of the third connection, a first peer-to-peer connection between the first client device and the second client device; and

communicate with the network via a communications channel that includes the first peer-to-peer connection and the second connection between the second client device and the network.

13. The at least one non-transitory computer-readable medium of claim 12 , encoded with additional instructions which, when executed by at least one processor, further cause the first client device to:

based at least in part on the first available bandwidth of the second connection being greater than the second available bandwidth of the third connection, send, to the second client device, a message requesting establishment of the first peer-to-peer connection.

14. The at least one non-transitory computer-readable medium of claim 12 , encoded with additional instructions which, when executed by at least one processor, further cause the first client device to:

determine a strength of a first signal emitted by a wireless interface of the second client device;

determine a strength of a second signal emitted by a wireless interface of the third client device;

determine that the strength of the first signal is greater than the strength of the second signal; and

establish the first peer-to-peer connection further based at least in part on the strength of the first signal being greater than the strength of the second signal.

15. The at least one non-transitory computer-readable medium of claim 12 , encoded with additional instructions which, when executed by at least one processor, further cause the first client device to:

send, to a computing system, an authentication request identifying a user of the first client device;

receive, from the computing system and based at least in part on the authentication request, a token; and

encrypt communications sent over the first peer-to-peer connection based at least in part on the token.

16. The at least one non-transitory computer-readable medium of claim 12 , encoded with additional instructions which, when executed by at least one processor, further cause the first client device to:

determine that the first client device accesses at least one application designated as being of a first level of importance relative to other applications; and

establish the first peer-to-peer connection further based at least in part on the at least one application being designated as of the first level of importance.

17. The at least one non-transitory computer-readable medium of claim 16 , encoded with additional instructions which, when executed by at least one processor, further cause the first client device to determine the need for improved communication at least by:

determining that at least one performance parameter of the first connection is inadequate for the at least one application.

18. The at least one non-transitory computer-readable medium of claim 17 , wherein the at least one performance parameter of the first connection includes a third available bandwidth of the first connection, and the at least one non-transitory computer-readable medium is encoded with additional instructions which, when executed by at least one processor, further cause the first client device to determine that the at least one performance parameter of the first connection is inadequate at least in part by:

determining the third available bandwidth of the first connection; and

determining that the third available bandwidth of the first connection is below a threshold.

19. The at least one non-transitory computer-readable medium of claim 12 , further encoded with additional instructions which, when executed by at least one processor, further cause the first client device to:

determine a first priority status assigned to the first client device;

determine a second priority status assigned to the second client device; and

establish the first peer-to-peer connection further based at least in part on the first priority status and the second priority status.

20. The at least one non-transitory computer-readable medium of claim 12 , further encoded with additional instructions which, when executed by at least one processor, further cause the first client device to:

determine that the second available bandwidth of the second connection is above a threshold; and

establish the first peer-to-peer connection further based at least in part on the second available bandwidth of the second connection being above the threshold.

21. The at least one non-transitory computer-readable medium of claim 12 , further encoded with additional instructions which, when executed by at least one processor, further cause the first client device to:

determine a strength of a first signal emitted by a wireless interface of the second client device;

determine that the strength of the first signal is above a threshold; and

establish the first peer-to-peer connection further based at least in part on the strength of the first signal being above the threshold.

22. The at least one non-transitory computer-readable medium of claim 12 , further encoded with additional instructions which, when executed by at least one processor, further cause the first client device to:

send, to a computing system, an authentication request identifying a user of the first client device;

receive, from the computing system and based at least in part on the authentication request, a token; and

encrypt communications sent over the first peer-to-peer connection based at least in part on the token.

23. The at least one non-transitory computer-readable medium of claim 12 , further encoded with additional instructions which, when executed by at least one processor, further cause the first client device to:

establish a second peer-to-peer connection between the first client device and at least one other device; and

communicate with the network at least in part by communicating with the network via a bonded communications channel that includes both the first peer-to-peer connection and the second peer-to-peer connection.

24. A first client device, comprising:

at least one processor; and

at least one computer-readable medium encoded with instructions which, when executed by at least one processor, cause the first client device to:

determine a need for improved communication between the first client device and a network to which the first client device is connected via a first connection,

broadcast a first message indicating the need for improved communication,

receive, in response to broadcasting the first message, second and third messages from second and third client devices, respectively, the second message including a first indication of a first available bandwidth of a second connection between the second client device and the network, and the third message including a second indication of a second available bandwidth of a third connection between the third client device and the network,

determine, based at least in part on the first indication and the second indication, that the first available bandwidth of the second connection is greater than the second available bandwidth of the third connection,

establish, based at least in part on the first available bandwidth of the second connection being greater than the second available bandwidth of the third connection, a first peer-to-peer connection between the first client device and the second client device, and

communicate with the network via a communications channel that includes the first peer-to-peer connection and the second connection between the second client device and the network.

25. The first client device of claim 24 , wherein the at least one computer-readable medium is further encoded with additional instructions which, when executed by at least one processor, further cause the first client device to:

based at least in part on the first available bandwidth of the second connection being greater than the second available bandwidth of the third connection, send, to the second client device, a message requesting establishment of the first peer-to-peer connection.

26. The first client device of claim 24 , wherein the at least one computer-readable medium is further encoded with additional instructions which, when executed by at least one processor, further cause the first client device to:

determine that the first client device accesses at least one application designated as being of a first level of importance relative to other applications; and

establish the first peer-to-peer connection further based at least in part on the at least one application being designated as of the first level of importance.

27. The first client device of claim 26 , wherein the at least one computer-readable medium is further encoded with additional instructions which, when executed by at least one processor, further cause the first client device to determine the need for improved communication at least by:

determining that at least one performance parameter of the first connection is inadequate for the at least one application.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2019
From: ATHLUR, ANUDEEP NARASIMHAPRASAD; DHANABALAN, PRAVEEN RAJA; MAGAZINE, ANUJ
To: CITRIX SYSTEMS, INC.
Reel/Frame 049534/0860 →
Continuity (1)
Related Publication 20200404573A1 · Dec 24, 2020