IP Library Granted Patent US 12,413,647
Granted Patent B2
US 12,413,647 · App. 18/377,726 · Granted Sep 9, 2025

Managed exit nodes and third party proxy providers in a proxy infrastructure

Inventors: Valdas Pilkauskas (Vilnius, LT); Miroslav Kozlovski (Vilnius, LT); Gytis Ciuta (Vilnius, LT)
Assignee: Oxylabs, UAB
H04L67/56H04L12/4641H04L12/66H04L41/12H04L43/10H04L61/4511H04L63/0281H04L63/083H04L67/01H04L67/02H04L67/1004H04L67/141H04L67/146H04L67/561
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,413,647
App. No.
18/377,726
Granted
Sep 9, 2025
Kind
B2
Abstract

Systems and methods herein provide for a proxy infrastructure. In the proxy infrastructure, a network element (e.g., a supernode) is connected with a plurality of exit nodes. At one of a plurality of messenger units of the proxy infrastructure, a proxy protocol request is received directly from a client computing device. The proxy protocol request specifies a request and a target. In response the proxy protocol request, a selection is made between one between one of the plurality of exit nodes. A message with the request is sent from the messenger to the supernode connected with the selected exit node. Finally, the message is sent from the supernode to the selected exit node to forward the request to the target.

Claims (67)

1. A method of operating a proxy infrastructure, comprising:

connecting to a plurality of third party proxy providers external to the proxy infrastructure;

connecting to a plurality of exit nodes internal to the proxy infrastructure, wherein connecting to the plurality of exit nodes comprises:

contacting one or more external supernodes;

establishing a connection to each of the one or more external supernodes;

loading, by each of the one or more external supernodes, a pre-declared list of third party proxy providers;

transmitting, by each of the one or more external supernodes, quality check requests to the third party proxy providers from the pre-declared list; and

storing results about the third party proxy providers in a database from the quality check requests;

receiving, at one of a plurality of messenger units of the proxy infrastructure, a proxy protocol request directly from a client computing device, the proxy protocol request specifying a target and a desired geographical region;

selecting one of the plurality of third party proxy providers or one of the plurality of exit nodes based on the desired geographical region;

establishing a communication session with the target through the selected one of the plurality of third party proxy providers or one of the plurality of exit nodes;

before the communication session with the target is established, providing a positive connection response to the client computing device; and

forwarding data requests from the client computing device to the target via the communication session.

2. The method of claim 1 , wherein each of the plurality of exit nodes is connected to one of a plurality of supernodes in the proxy infrastructure.

3. The method of claim 1 , wherein the positive connection response comprises an OK response.

4. The method of claim 1 , further comprising:

before the communication session with the target is established, receiving the data requests from the client computing device;

buffering the data requests until the communication session with the target is established;

bundling the buffered data requests into a single data request; and

transferring the single data request to a network element when the communication session with the target is established.

5. The method of claim 4 , further comprising:

initiating a timer after receiving content fulfilling the single data request from the target; and

terminating the communication session with the target based on a determination that no other data requests are pending when the timer expires.

6. The method of claim 1 , wherein selecting one of the plurality of third party proxy providers or one of the plurality of exit nodes based on the desired geographical region further comprises:

determining that the proxy infrastructure operates in the desired geographical region by identifying one or more exit nodes in the desired geographic region from the plurality of exit nodes; and

in response to determining that the proxy infrastructure operates in the desired geographical region, selecting an exit node from the one or more exit nodes based on statistics collected for each of the one or more exit nodes, wherein the statistics comprise at least one of: bandwidth, latency, or availability status.

7. The method of claim 6 , further comprising:

in response to determining that the proxy infrastructure does not operate in the desired geographical region or that the one or more exit nodes have experienced an outage, identifying one or more third party proxy providers in the desired geographical region from the plurality of third party proxy providers; and

selecting a third party proxy provider from the one or more third party proxy providers based on statistics collected for each of the one or more third party proxy providers, wherein the statistics comprise at least one of: bandwidth, latency, or availability status.

8. The method of claim 1 , wherein the plurality of messenger units of the proxy infrastructure share a common domain name.

9. The method of claim 8 , wherein the one of the plurality of messenger units is selected by a DNS server during a DNS lookup by the client computing device using a load balancing algorithm.

10. The method of claim 1 , wherein a quality check request of the quality check requests comprises:

transmitting a ping message to a third party proxy provider from the pre-declared list;

receiving a pong message from the third party proxy provider; and

determining an amount of time between transmitting the ping message and receiving the pong message.

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:

connecting to a plurality of third party proxy providers external to a proxy infrastructure;

connecting to a plurality of exit nodes internal to the proxy infrastructure;

receiving, at one of a plurality of messenger units of the proxy infrastructure, a proxy protocol request directly from a client computing device, the proxy protocol request specifying a target and a desired geographical region;

selecting one of the plurality of third party proxy providers or one of the plurality of exit nodes based on the desired geographical region;

establishing a communication session with the target through the selected one of the plurality of third party proxy providers or one of the plurality of exit nodes;

before the communication session with the target is established:

providing a positive connection response to the client computing device;

receiving data requests from the client computing device;

buffering the data requests until the communication session with the target is established; and

bundling the buffered data requests into a single data request; and

forwarding the single data request to the target via the communication session when the communication session with the target is established.

12. The non-transitory computer-readable device of claim 11 , wherein connecting to the plurality of third party proxy providers further comprises:

contacting one or more external supernodes;

establishing a connection to each of the one or more external supernodes;

loading, by each of the one or more external supernodes, a pre-declared list of third party proxy providers;

transmitting, by each of the one or more external supernodes, quality check requests to the third party proxy providers from the pre-declared list; and

storing results about the third party proxy providers in a database from the quality check requests.

13. The non-transitory computer-readable device of claim 11 , wherein each of the plurality of exit nodes is connected to one of a plurality of supernodes in the proxy infrastructure.

14. The non-transitory computer-readable device of claim 11 , wherein the positive connection response comprises an OK response.

15. The non-transitory computer-readable device of claim 11 , further comprising:

initiating a timer after receiving content fulfilling the single data request from the target; and

terminating the communication session with the target based on a determination that no other data requests are pending when the timer expires.

16. The non-transitory computer-readable device of claim 11 , wherein selecting one of the plurality of third party proxy providers or one of the plurality of exit nodes based on the desired geographical region further comprises:

determining that the proxy infrastructure operates in the desired geographical region by identifying one or more exit nodes in the desired geographical region from the plurality of exit nodes; and

in response to determining that the proxy infrastructure operates in the desired geographical region, selecting an exit node from the one or more exit nodes based on statistics collected for each of the one or more exit nodes, wherein the statistics comprise at least one of: bandwidth, latency, or availability status.

17. The non-transitory computer-readable device of claim 16 , further comprising:

in response to determining that the proxy infrastructure does not operate in the desired geographical region or that the one or more exit nodes have experienced an outage, identifying one or more third party proxy providers in the desired geographical region from the plurality of third party proxy providers; and

selecting a third party proxy provider from the one or more third party proxy providers based on statistics collected for each of the one or more third party proxy providers, wherein the statistics comprise at least one of: bandwidth, latency, or availability status.

18. The non-transitory computer-readable device of claim 11 , wherein the plurality of messenger units of the proxy infrastructure share a common domain name.

19. The non-transitory computer-readable device of claim 18 , wherein the one of the plurality of messenger units is selected by a DNS server during a DNS lookup by the client computing device using a load balancing algorithm.

20. The non-transitory computer-readable device of claim 11 , wherein the positive connection response is provided to the client computing device simultaneously with selecting one of the plurality of third party proxy providers or one of the plurality of exit nodes.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2025
From: PILKAUSKAS, VALDAS; KOZLOVSKI, MIROSLAV; CIUTA, GYTIS
To: CORETECH LT, UAB
Reel/Frame 071499/0679 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2025
From: CORETECH LT, UAB
To: OXYLABS, UAB
Reel/Frame 071499/0691 →
Continuity (4)
Continuation 17958055 · Sep 30, 2022
Continuation 17669222 · Feb 10, 2022
Provisional Application 63308350 · Feb 9, 2022
Related Publication 20240048638A1 · Feb 8, 2024
References Cited (93)
US 7069320B1 · Chang et al. · 2006 [cited by applicant]
US 7272651B1 · Bolding · 2007 [cited by examiner]
US 7873734B1 · Eidelman · 2011 [cited by examiner]
US 9210163B1 · Hughes · 2015 [cited by examiner]
US 9444620B1 · Murphy · 2016 [cited by examiner]
US 10282222B2 · Thakkar · 2019 [cited by examiner]
US 10701086B1 · Mushtaq · 2020 [cited by examiner]
US 10873647B1 · Pilkauskas et al. · 2020 [cited by applicant]
US 10972436B1 · Simanel · 2021 [cited by examiner]
US 11057351B1 · Simanel · 2021 [cited by examiner]
US 11184458B1 · Suckel · 2021 [cited by applicant]
US 11196712B1 · Norbutas · 2021 [cited by examiner]
US 11196833B1 · Norbutas · 2021 [cited by examiner]
US 11212354B1 · Pilkauskas · 2021 [cited by examiner]
US 11240318B1 · Locketz · 2022 [cited by examiner]
US 11411954B1 · Kozlovski · 2022 [cited by examiner]
US 11425113B2 · Allen et al. · 2022 [cited by applicant]
US 11457073B1 · Pilkauskas · 2022 [cited by examiner]
US 11553058B1 · Pilkauskas et al. · 2023 [cited by applicant]
US 11652697B1 · Kozlovski · 2023 [cited by examiner]
US 20010037358A1 · Clubb · 2001 [cited by examiner]
US 20020069241A1 · Narlikar et al. · 2002 [cited by applicant]
US 20020087383A1 · Cogger · 2002 [cited by examiner]
US 20030182423A1 · Shafir · 2003 [cited by examiner]
US 20050055435A1 · Gbadegesin · 2005 [cited by examiner]
US 20060029038A1 · Jungck · 2006 [cited by examiner]
US 20060031394A1 · Tazuma · 2006 [cited by examiner]
US 20060031442A1 · Ashley · 2006 [cited by examiner]
US 20060277596A1 · Calvert · 2006 [cited by examiner]
US 20070162605A1 · Chalasani · 2007 [cited by examiner]
US 20070297430A1 · Nykanen · 2007 [cited by examiner]
US 20080320151A1 · McCanne · 2008 [cited by examiner]
US 20090037763A1 · Adhya · 2009 [cited by examiner]
US 20100223364A1 · Wei · 2010 [cited by examiner]
US 20110093613A1 · Banes · 2011 [cited by examiner]
US 20120110581A1 · Watson et al. · 2012 [cited by applicant]
US 20130007225A1 · Gage · 2013 [cited by examiner]
US 20130166637A1 · Jungck · 2013 [cited by examiner]
US 20130166703A1 · Hammer · 2013 [cited by examiner]
US 20140122741A1 · Thubert et al. · 2014 [cited by applicant]
US 20140258369A1 · Liu · 2014 [cited by examiner]
US 20150088978A1 · Motukuru · 2015 [cited by examiner]
US 20150188949A1 · Mahaffey · 2015 [cited by examiner]
US 20150271141A1 · Kumar · 2015 [cited by examiner]
US 20150365412A1 · Innes · 2015 [cited by examiner]
US 20160080337A1 · Pahl · 2016 [cited by examiner]
US 20160103699A1 · Thakkar · 2016 [cited by examiner]
US 20160156729A1 · Essigmann · 2016 [cited by examiner]
US 20160294786A1 · Marquez Mendoza · 2016 [cited by examiner]
US 20160373412A1 · MacCarthaigh · 2016 [cited by examiner]
US 20170039083A1 · Kitano et al. · 2017 [cited by applicant]
US 20170064005A1 · Lee · 2017 [cited by examiner]
US 20170085488A1 · Bhattacharya et al. · 2017 [cited by applicant]
US 20170093835A1 · Whiteside · 2017 [cited by examiner]
US 20180262388A1 · Johnson et al. · 2018 [cited by applicant]
US 20180278506A1 · Bifulco et al. · 2018 [cited by applicant]
US 20180309716A1 · Moore · 2018 [cited by examiner]
US 20190014088A1 · Subramaniyan · 2019 [cited by examiner]
US 20190173849A1 · Lapidous · 2019 [cited by examiner]
US 20190394173A1 · Shah · 2019 [cited by examiner]
US 20200052970A1 · Vajravel · 2020 [cited by examiner]
US 20200120176A1 · Tylee · 2020 [cited by examiner]
US 20200220875A1 · Harguindeguy et al. · 2020 [cited by applicant]
US 20200274938A1 · Shah · 2020 [cited by examiner]
US 20200280452A1 · Pahl · 2020 [cited by examiner]
US 20210185137A1 · Fitzhugh et al. · 2021 [cited by applicant]
US 20210194986A1 · Shribman · 2021 [cited by examiner]
US 20210233295A1 · Indurkhya · 2021 [cited by examiner]
US 20210266303A1 · Pollutro · 2021 [cited by examiner]
US 20210367804A1 · Shribman · 2021 [cited by examiner]
US 20210392111A1 · Sole · 2021 [cited by examiner]
US 20210406035A1 · Price et al. · 2021 [cited by applicant]
US 20210409505A1 · Pilkauskas · 2021 [cited by examiner]
US 20220070272A1 · Vasiliauskas et al. · 2022 [cited by applicant]
US 20220103523A1 · Starr · 2022 [cited by examiner]
US 20220129514A1 · Shribman · 2022 [cited by examiner]
US 20220138278A1 · Shribman · 2022 [cited by examiner]
US 20220158979A1 · Shribman · 2022 [cited by examiner]
US 20220200915A1 · Timmons · 2022 [cited by examiner]
US 20220247624A1 · Johnson · 2022 [cited by examiner]
US 20220247829A1 · Vilcinskas · 2022 [cited by examiner]
US 20220247835A1 · Shribman · 2022 [cited by examiner]
US 20220303357A1 · Pilkauskas · 2022 [cited by examiner]
US 20220311695A1 · Kaciulis · 2022 [cited by examiner]
US 20220337670A1 · Pilkauskas · 2022 [cited by examiner]
US 20220368676A1 · Shribman · 2022 [cited by examiner]
US 20220407928A1 · Suckel · 2022 [cited by applicant]
US 20230019976A1 · Pilkauskas · 2023 [cited by examiner]
US 20230099967A1 · Stalioraitis · 2023 [cited by examiner]
US 20230208839A1 · Kozlovski · 2023 [cited by examiner]
US 20230254384A1 · Pilkauskas et al. · 2023 [cited by applicant]
US 20230379405A1 · Chhabra · 2023 [cited by examiner]
US 20240273158A1 · Kol · 2024 [cited by examiner]