IP Library › Granted Patent US 12,316,716
Granted Patent B2
US 12,316,716 · App. 18/617,565 · Granted May 27, 2025

Network coordination between proxy servers

Inventors: Valdas Pilkauskas (Vilnius, LT); Miroslav Kozlovski (Vilnius, LT)
Assignee: OXYLABS, UAB
H04L67/56H04L61/4511H04L61/5007H04L2101/618
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 12,316,716
App. No.
18/617,565
Granted
May 27, 2025
Kind
B2
Abstract

Systems and methods for coordinating network connectivity and communication between proxy servers, exit-nodes and client modules are disclosed. In one aspect, proxy-nodes in a proxy infrastructure accept connections with exit-nodes based on geographical proximity or proxy-node metrics. Further, a proxy-node can communicate and instruct another proxy-node to service the client request via a suitable exit-node. Further still, a proxy-node can communicate and instruct proxy-node to redirect a suitable exit-node towards the first proxy-node in order to service the client request. In another aspect, the proxy-infrastructure enables client modules to connect to proxy-nodes based on geographical proximity, client parameters, and client's behavioral informatics. In yet another aspect, proxy infrastructure enables a proxy node to redirect exit-nodes to a different proxy-node in the event of a) system overload or resource exhaustion, b) graceful shutdown c) erroneous network connection between exit-nodes and the proxy-node.

Claims (54)

1. A computer-implemented method for coordinating network connections and traffic in a proxy service infrastructure comprising:

receiving, by a proxy server, a client request and request parameters from a client module, wherein the client request is addressed to a target;

evaluating, by the proxy server, the request parameters to determine whether the proxy server is connected to a suitable edge proxy satisfying the request parameters;

in response to determining that the proxy server is connected to the suitable edge proxy, forwarding, by the proxy server, the client request to the suitable edge proxy;

in response to determining that the proxy server is not connected to the suitable edge proxy:

(i) identifying, by the proxy server, a subsequent proxy server connected to the suitable edge proxy;

(ii) forwarding, by the proxy server, the client request and the request parameters to the subsequent proxy server for forwarding to the suitable edge proxy; and

forwarding, by the proxy server, response data from the target received via the suitable edge proxy to the client module.

2. The computer-implemented method of claim 1 , further comprising:

determining, by the proxy server, client requests accompanied by the request parameters are frequently serviced through the suitable edge proxy via the subsequent proxy server; and

in response to determining that the client requests are frequently serviced by the suitable edge proxy via the subsequent proxy server, sending, by the proxy server, a transfer message to the subsequent proxy server, the transfer message instructing the suitable edge proxy to connect to the proxy server.

3. The computer-implemented method of claim 1 , wherein the proxy server is selected from a plurality of proxy servers present in the proxy service infrastructure by a DNS server in response to a DNS query from the client module and based on at least one of: geographical proximity to the client module, conformity to prerequisites of a client, and suitability for regular activities of the client.

4. The computer-implemented method of claim 3 , wherein the DNS query from the client module comprises a query domain name of the proxy server, a query type, a query class, and the prerequisites of the client.

5. The computer-implemented method of claim 3 , wherein the prerequisites of the client are preconditions for the proxy server comprising at least one of: geo-location specifications, operating system configuration details, and information on browser type.

6. The computer-implemented method of claim 3 , wherein the regular activities of the client comprises data regarding one or more of: regular security policies of the client, regularly requested service types of the client, and preferred proxy servers and edge proxies of the client.

7. The computer-implemented method of claim 1 , further comprising:

in response to detecting that the proxy server is experiencing system overload, resource exhaustion, or graceful shutdown, identifying, by the proxy server, an alternate proxy server from a plurality of proxy servers in the proxy service infrastructure based on an analysis of proxy-node metrics for each proxy server in the plurality of proxy servers;

issuing, by the proxy server, a redirect message to at least one edge proxy having a network connection with the proxy server, wherein the redirect message instructs the at least one edge proxy to connect to the alternate proxy server;

receiving, by the proxy server, a message from the at least one edge proxy confirming successful connection with the alternate proxy server; and

terminating, by the proxy server, the network connection with the at least one edge proxy.

8. The computer-implemented method of claim 7 , wherein the proxy-node metrics for each proxy server in the plurality of proxy servers comprise system load, resource exhaustion level, request per second (RPS), uptime, error rates, thread count, average response time (ART), peak response time (PRT), security level, and active status.

9. The computer-implemented method of claim 1 , further comprising:

in response to detecting that the proxy server is experiencing an erroneous connection with an edge proxy, identifying, by the proxy server, a suitable proxy server geographically closer to the edge proxy from a plurality of proxy servers in the proxy service infrastructure based on an analysis of proxy-node metadata for each proxy server in the plurality of proxy servers;

issuing, by the proxy server, a redirect message to the edge proxy, wherein the redirect message instructs the edge proxy to connect to the suitable proxy server;

receiving, by the proxy server, a message from the edge proxy confirming successful connection with the suitable proxy server; and

terminating, by the proxy server, the erroneous connection with the edge proxy.

10. The computer-implemented method of claim 9 , wherein the proxy-node metadata for each proxy server in the plurality of proxy servers comprises IP address, unique identifier, geo-location, total number of connected edge proxies, and IP addresses of the connected edge proxies.

11. A non-transitory computer-readable device having instructions stored thereon that, when executed by at least one computing device, cause the at least one computing device to perform operations, the operations comprising:

receiving a client request and request parameters from a client module, wherein the client request is addressed to a target;

evaluating the request parameters to determine whether a proxy server is connected to a suitable edge proxy satisfying the request parameters;

in response to determining that the proxy server is connected to the suitable edge proxy, forwarding the client request to the suitable edge proxy;

in response to determining that the proxy server is not connected to the suitable edge proxy:

(i) identifying a subsequent proxy server connected to the suitable edge proxy; and

(ii) forwarding the client request and the request parameters to the subsequent proxy server for forwarding to the suitable edge proxy; and

forwarding response data from the target received via the suitable edge proxy to the client module.

12. The non-transitory computer-readable medium of claim 11 , the operations further comprising:

determining client requests accompanied by the request parameters are frequently serviced through the suitable edge proxy via the subsequent proxy server; and

in response to determining that the client requests are frequently serviced by the suitable edge proxy via the subsequent proxy server, sending a transfer message to the subsequent proxy server, the transfer message instructing the suitable edge proxy to connect to the proxy server.

13. The non-transitory computer-readable medium of claim 11 , wherein the proxy server is selected from a plurality of proxy servers present in a proxy service infrastructure by a DNS server in response to a DNS query from the client module and based on at least one of: geographical proximity to the client module, conformity to prerequisites of a client, and suitability for regular activities of the client.

14. The non-transitory computer-readable medium of claim 13 , wherein the DNS query from the client module comprises a query domain name of the proxy server, a query type, a query class, and the prerequisites of the client.

15. The non-transitory computer-readable medium of claim 13 , wherein the prerequisites of the client are preconditions for the proxy server comprising at least one of: geo-location specifications, operating system configuration details, and information on browser type.

16. The non-transitory computer-readable medium of claim 13 , wherein the regular activities of the client comprise data regarding one or more of: regular security policies of the client, regularly requested service types of the client, and preferred proxy servers and edge proxies of the client.

17. The non-transitory computer-readable medium of claim 11 , the operations further comprising:

in response to detecting that the proxy server is experiencing system overload, resource exhaustion, or graceful shutdown, identifying an alternate proxy server from a plurality of proxy servers in a proxy service infrastructure based on an analysis of proxy-node metrics for each proxy server in the plurality of proxy servers;

issuing a redirect message to at least one edge proxy having a network connection with the proxy server, wherein the redirect message instructs the at least one edge proxy to connect to the alternate proxy server;

receiving a message from the at least one edge proxy confirming successful connection with the alternate proxy server; and

terminating the network connection with the at least one edge proxy.

18. The non-transitory computer-readable medium of claim 17 , wherein the proxy-node metrics for each proxy server in the plurality of proxy servers comprise system load, resource exhaustion level, request per second (RPS), uptime, error rates, thread count, average response time (ART), peak response time (PRT), security level, and active status.

19. The non-transitory computer-readable medium of claim 11 , the operations further comprising:

in response to detecting that the proxy server is experiencing an erroneous connection with an edge proxy, identifying a suitable proxy server geographically closer to the edge proxy from a plurality of proxy servers in a proxy service infrastructure based on an analysis of proxy-node metadata for each proxy server in the plurality of proxy servers;

issuing a redirect message to the edge proxy, wherein the redirect message instructs the edge proxy to connect to the suitable proxy server;

receiving a message from the edge proxy confirming successful connection with the suitable proxy server; and

terminating the erroneous connection with the edge proxy.

20. The non-transitory computer-readable medium of claim 19 , wherein the proxy-node metadata for each proxy server in the plurality of proxy servers comprises IP address, unique identifier, geolocation, total number of connected edge proxies, and IP addresses of the connected edge proxies.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2024
From: PILKAUSKAS, VALDAS; KOZLOVSKI, MIROSLAV
To: CORETECH IT, UAB
Reel/Frame 067352/0619 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2024
From: CORETECH IT, UAB
To: OXYLABS, UAB
Reel/Frame 067352/0682 →
Continuity (2)
Continuation 17845240 · Jun 21, 2022
Related Publication 20240244119A1 · Jul 18, 2024
References Cited (36)
US 6823377B1 · Wu · 2004 [cited by examiner]
US 8547962B2 · Ramachandran et al. · 2013 [cited by applicant]
US 8612564B2 · Swildens et al. · 2013 [cited by applicant]
US 9137131B1 · Sarukkai et al. · 2015 [cited by applicant]
US 9154557B2 · Lev-Ran et al. · 2015 [cited by applicant]
US 9565157B2 · Chhabra et al. · 2017 [cited by applicant]
US 9697173B2 · Weaver · 2017 [cited by examiner]
US 9906436B2 · Westphal · 2018 [cited by examiner]
US 10284516B2 · Connell et al. · 2019 [cited by applicant]
US 10873647B1 · Pilkauskas et al. · 2020 [cited by applicant]
US 10902080B2 · Shribman et al. · 2021 [cited by applicant]
US 10965770B1 · Vilcinskas et al. · 2021 [cited by applicant]
US 10985934B2 · Shribman et al. · 2021 [cited by applicant]
US 11057351B1 · Simanel et al. · 2021 [cited by applicant]
US 11057446B2 · Shribman et al. · 2021 [cited by applicant]
US 11165879B2 · Power et al. · 2021 [cited by applicant]
US 11212354B1 · Pilkauskas et al. · 2021 [cited by applicant]
US 11290548B2 · Ppallan et al. · 2022 [cited by applicant]
US 11297152B1 · Stalioraitis · 2022 [cited by examiner]
US 11381666B1 · Stalioraitis · 2022 [cited by examiner]
US 11463400B2 · Joffe · 2022 [cited by examiner]
US 11496594B1 · Stalioraitis · 2022 [cited by examiner]
US 11632436B1 · Stalioraitis · 2023 [cited by examiner]
US 12003600B2 · Pilkauskas · 2024 [cited by examiner]
US 20120159623A1 · Choi · 2012 [cited by applicant]
US 20120209942A1 · Zehavi et al. · 2012 [cited by applicant]
US 20130254333A1 · Lyon · 2013 [cited by applicant]
US 20160094645A1 · Ashutosh et al. · 2016 [cited by applicant]
US 20180212835A1 · Chen et al. · 2018 [cited by applicant]
US 20180219970A1 · Shribman et al. · 2018 [cited by applicant]
US 20190182359A1 · Shribman et al. · 2019 [cited by applicant]
US 20230102361A1 · Joffe · 2023 [cited by examiner]
US 20230412701A1 · Pilkauskas et al. · 2023 [cited by applicant]
EP 2112788A1 · 2008 [cited by applicant]
KR 20140035385A · 2014 [cited by applicant]
WO WO2008116401A1 · 2008 [cited by applicant]