IP Library Granted Patent US 9,397,932
Granted Patent B2
US 9,397,932 · App. 13/355,101 · Granted Jul 19, 2016

Systems and methods for routing network information

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,397,932
App. No.
13/355,101
Granted
Jul 19, 2016
Kind
B2
Abstract

A network routing system is described herein. The network routing system comprises a traffic router and a plurality of proxy gateways. The traffic router is configured to receive at least one request for a network object from a requester. The request includes a network address of a target web host. One or more proxy servers from a plurality of proxy servers are assigned to each proxy gateway. In operation, if there is a proxy server having a current connection with the target web host, the traffic router selects the proxy server and forwards the request to a proxy gateway that the proxy server is assigned to. In operation, the proxy gateway receives the request for the network object, converts the request into a translated request based on a protocol type of the proxy server, and sends the translated request to the proxy server.

Claims (60)

1. A network routing system, comprising:

a traffic router configured to receive at least one request for a network object from a requester, the request including a network address of a target web host;

a plurality of proxy gateways, one or more proxy servers from a plurality of proxy servers being assigned to each proxy gateway of the plurality of proxy gateways;

wherein the traffic router is configured to determine if any of the plurality of proxy servers has a previously established connection with the target web host, and if so, to forward the request for the network object to a proxy gateway that the proxy server having a previously established connection to the target web host is assigned to; and

wherein the proxy gateway is configured to receive the request for the network object from the traffic router, convert the request for the network object into a translated request based on a protocol type of the proxy server, and send the translated request to the proxy server.

2. The network routing system of claim 1 ,

wherein, in operation, if none of the plurality of proxy servers has a previously established connection with the target web host, the traffic router is configured to select a proxy server from the plurality of proxy servers based on a current load for each proxy server and a route history between each proxy server and the target web host; and

wherein, in operation, the proxy gateway is configured to instruct the proxy server to initiate a connection with the target web host.

3. The network routing system of claim 1 ,

wherein the proxy gateway is configured to receive a response having an instance of the network object based on the protocol type of the proxy server from the proxy server, convert the response into a translated response based on a protocol type of the traffic router, and send the translated response to the traffic router;

wherein the instance of the network object is fetched from the target web host through the previously established connection by the proxy server; and

wherein, the traffic router is configured to receive the translated response, and forward the translated response to the requester.

4. The network routing system of claim 2 ,

wherein, for each web host and each proxy server of the plurality of proxy servers, the route history is a number of expired connections between said web host and said proxy server.

5. The network routing system of claim 2 ,

wherein, for each proxy server of the plurality of proxy servers, the current load is a number of current connections between said proxy server and web hosts.

6. The network routing system of claim 2 ,

wherein, if none of the plurality of proxy servers has previously established connections with the target web host, the traffic router is configured to select a proxy server from the plurality of proxy servers, and the selected proxy server has the least current load and the least route history with the target web host.

7. The network routing system of claim 1 ,

further comprising a database server having a route history database,

wherein, for each web host and each proxy server of the plurality of proxy servers, the route history database recording a number of expired connections between said web host and said proxy server.

8. The network routing system of claim 1 , wherein the network object comprises a text, a web page, an image, an HTML file, a CSS file, a JavaScript file, an audio, a video, or content-less HTTP control messages.

9. The network routing system of claim 1 , wherein the requester is a computer or a process running on a computer.

10. The network routing system of claim 1 , wherein the target web host is an HTTP web server.

11. The network routing system of claim 1 , wherein the protocol type of the proxy server is HTTP, VPN, SRCIP, SOCKS, or L2TP.

12. The network routing system of claim 3 , wherein the protocol type of the traffic router is HTTP.

13. The network routing system of claim 1 , wherein, in operation, the proxy gateway initiates a connection to the proxy server based on the protocol type of the proxy server.

14. The network routing system of claim 1 , wherein, in operation, the proxy gateway signs on and initiates a connection to the proxy server based on an authentication mode and the protocol type of the proxy server.

15. The network routing system of claim 1 , wherein, in operation, the proxy gateway maintains a keep-alive connection to the proxy server.

16. The network routing system of claim 1 , wherein, in operation, the proxy gateway instructs the proxy server to maintain a keep-alive connection to the target web host.

17. The network routing system of claim 1 , wherein at least one proxy gateway of the plurality of proxy gateways runs on a separated computer from the computer that the traffic router runs on.

18. The network routing system of claim 1 , wherein at least one proxy gateway of the plurality of proxy gateways and the traffic router runs on a commonly shared computer.

19. The network routing system of claim 1 , wherein the traffic router is further configured to concurrently receive a plurality of requests for network objects from a plurality of requesters, select a proxy server for each request of the plurality of requests, and forward each request to a proxy gateway that said proxy server is assigned to.

20. The network routing system of claim 1 , wherein the traffic router is further configured to maintain a cache for network objects from previous requests.

21. The network routing system of claim 7 , wherein the database server and the traffic router run on a commonly shared computer.

22. The network routing system of claim 1 , wherein the proxy gateway further instructs the proxy server to maintain a cache for network objects from previous requests.

23. A method for routing network information, comprising:

receiving at a traffic router, at least one request for a network object, the request for a network object including a network address of a target web host;

determining by the traffic router whether there is any previously established connection between the target web host and any proxy server of a plurality of proxy servers;

selecting a proxy server having a previously established connection with the target web host;

forwarding the request for the network object to a proxy gateway of a plurality of proxy gateways that is assigned to the selected proxy server;

receiving the request for the network object from the traffic router at the proxy gateway;

converting the request for the network object into a translated request based on a protocol type of the selected proxy server; and

sending the translated request to the proxy gateway to the selected proxy server.

24. The method of claim 23 , further comprising:

selecting a proxy server from the plurality of proxy servers based on a current load for each proxy server and a route history between each proxy server and the target web host if none of the plurality of proxy servers has previously established connections with the target web host; and

instructing the proxy server to initiate a connection with the target web host.

25. The method of claim 23 , further comprising:

receiving at the proxy gateway a response having an instance of the network object based on the protocol type of the selected proxy server from the proxy server;

converting the response into a translated response based on a protocol type of the traffic router;

sending the translated response to the traffic router; and

forwarding the translated response to the requester.

26. The method of claim 25 , wherein the instance of the network object is fetched from the target web host through the previously established connection by the proxy server.

27. The method of claim 24 , wherein, for each web host and each proxy server of the plurality of proxy servers, the route history is a number of expired connections between said web host and said proxy server.

28. The method of claim 24 , wherein, for each proxy server of the plurality of proxy servers, the current load is a number of current connections between said proxy server and all web hosts.

29. The method of claim 28 wherein if none of the proxy servers has a previously established connection with the target web host, the selected proxy server is a proxy server that has the least current load and the least route history with the target web host, among the plurality of proxy servers.

30. The method of claim 29 , further comprising:

initiating a connection from the proxy gateway to the selected proxy server.

31. The method of claim 30 , further comprising:

instructing the selected proxy server to maintain a keep-alive connection to the target web host.

Assignments (12)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Sep 7, 2021
From: MARKET TRACK, LLC
To: WILMINGTON TRUST (LONDON) LIMITED, AS SENIOR SECURITY AGENT
Reel/Frame 057435/0880 →
RELEASE OF FIRST LIEN SECURITY INTEREST RECORDED AT 42704/0240 AND 42704/0410 Recorded Jul 2, 2021
From: ANTARES CAPITAL LP
To: MARKET TRACK, LLC; DYNAMITE DATA, LLC
Reel/Frame 056756/0863 →
RELEASE OF SECOND LIEN SECURITY INTEREST RECORDED AT 42704/0364 AND 42704/0371 Recorded Jul 2, 2021
From: GOLDMAN SACHS BDC, INC.
To: MARKET TRACK, LLC; DYNAMITE DATA, LLC
Reel/Frame 056756/0868 →
MERGER Recorded Feb 18, 2021
From: DYNAMITE DATA, LLC
To: MARKET TRACK, LLC
Reel/Frame 056053/0637 →
RELEASE OF PATENT SECURITY AGREEMENT Recorded Jun 8, 2017
From: GOLUB CAPITAL LLC
To: DYNAMITE DATA, LLC (F/K/A RENO ACQUISITIONS, LLC)
Reel/Frame 042855/0443 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 6, 2017
From: DYNAMITE DATA, LLC
To: ANTARES CAPITAL LP, AS COLLATERAL AGENT
Reel/Frame 042704/0410 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 6, 2017
From: DYNAMITE DATA, LLC
To: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
Reel/Frame 042704/0371 →
CHANGE OF NAME Recorded Apr 13, 2017
From: RENO ACQUISITIONS, LLC
To: DYNAMITE DATA, LLC
Reel/Frame 042245/0241 →
ASSIGNMENT OF SECURITY INTEREST IN PATENTS Recorded Jun 10, 2014
From: BARCLAYS BANK PLC, AS COLLATERAL AGENT
To: GOLUB CAPITAL LLC, AS COLLATERAL AGENT
Reel/Frame 033108/0905 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2013
From: DYNAMITE DATA, LLC
To: RENO ACQUISITIONS, LLC
Reel/Frame 030875/0021 →
SECURITY AGREEMENT Recorded Jul 24, 2013
From: RENO ACQUISITIONS, LLC
To: BARCLAYS BANK PLC
Reel/Frame 030888/0723 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2012
From: NUNBERG, MORDECHAI; KUBICKI, KRISTOPHER
To: DYNAMITE DATA LLC
Reel/Frame 027998/0973 →