EP3957031A1 - Exit node benchmark feature - Google Patents
Exit node benchmark featureInfo
- Publication number
- EP3957031A1 EP3957031A1 EP21720318.1A EP21720318A EP3957031A1 EP 3957031 A1 EP3957031 A1 EP 3957031A1 EP 21720318 A EP21720318 A EP 21720318A EP 3957031 A1 EP3957031 A1 EP 3957031A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- exit node
- exit
- supernode
- request
- proxying
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/288—Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
- H04L43/55—Testing of service level quality, e.g. simulating service usage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/61—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
Definitions
- the present exemplary embodiments relate to transmission of signals having been supplied in digital form and includes data transmission from a Supernode to a Target using an Exit Node.
- the present disclosure generally relates to network communications, and more particularly to network communications via a proxy server.
- the proxy server is a server application or appliance that acts as an intermediary for requests from clients seeking resources from servers that provide those resources.
- a proxy server thus functions on behalf of the client when requesting service, potentially masking the true origin of the request to the resource server.
- the client Instead of connecting directly to a server that can provide the requested resource, such as a file or a web page for example, the client directs the request to the proxy server, which evaluates the request and performs the required network transactions. This serves as a method to simplify or control the complexity of the request, and/or provide additional benefits such as load balancing, privacy, or security.
- Proxy servers can perform several functions to increase data security and network performance, including acting as a firewall and web filter, provide shared network connections, and cache data to speed up common requests. Proxy servers can provide a high level of privacy. Proxy servers can change the IP address and other identifying information the web request contains (e.g., so that the destination server does not know who made the original request). Proxy servers can also be used to control internet usage of employees and children (e.g., organizations and parents can set up proxy servers to control and monitor how their employees or kids use the Internet) or improve browsing speeds and save bandwidth (e.g., proxy servers can cache, i.e. save a copy of the appropriate website data locally and when the requested content is available locally, the original request is served from the local copy).
- Proxy servers can cache, i.e. save a copy of the appropriate website data locally and when the requested content is available locally, the original request is served from the local copy).
- Proxies can be used to bypass certain Internet restrictions (e.g. firewalls) by enabling a user to request content through a (remote) proxy server instead of accessing the content directly.
- Proxy servers are often used to get around geo-IP based content restrictions. If someone wants to get content from a United States (US) webpage that they are not allowed to access from their home country, the request can go through a proxy server that is located in the US, thus operating from a US IP address space. Using proxy services, the user’s traffic seems to be coming from the US IP address.
- Proxies can also be used for web scraping, data mining, and other similar tasks.
- proxy servers make it more difficult to trace Internet activity back to the user, including: visits to websites, online posts, instant messages, and other communication forms.
- an intended use of proxy servers is to protect the personal privacy of users, as well as their freedom and ability to conduct confidential communication by keeping their Internet activities unmonitored.
- a proxy server (a computer system or an application) connection by a client acts as an intermediary for requests from clients seeking resources from other servers.
- a client connects to the proxy server, requesting some service, such as a file, a connection, a web page, or other resources available from a different server.
- the proxy server evaluates the request for content and forwards the request to the actual target system or systems containing the corresponding content. After obtaining the content, the proxy server normally forwards the content to the original requestor, but other actions can also be performed by the proxy (e.g., return error message, etc.).
- a proxy server may or may not have full visibility into the actual content fetched to the original requestor, e.g., in case of an encrypted Hypertext Transfer Protocol Secure (HTTPS) session, the proxy may serve as an intermediary, blindly forwarding the data without being aware of what is being forwarded.
- HTTPS Hypertext Transfer Protocol Secure
- the proxies can be divided into different types depending on what functions are provided or what servers are used.
- the proxies can also be divided into Residential Internet Protocol (IP) proxies, Datacenter IP proxies, and Mobile IP proxies.
- IP Internet Protocol
- a Residential IP address is an address from the range specifically designated by the owning party as assigned to private customers.
- a Residential proxy is an IP address linked to a physical device, for example, mobile phone or desktop computer, however businesswise the blocks of Residential IP addresses may be bought from the owning Proxy Service Provider by another company directly, in bulk.
- the real owners of the Residential IP address ranges namely Internet service providers (ISPs), register residential IP addresses in public databases, which allows websites to determine a device’s internet provider, network, and location.
- ISPs Internet service providers
- Datacenter IP proxy is the proxy server assigned with a datacenter IP.
- Datacenter IPs are IPs owned by companies, not by individuals.
- the datacenter proxies are actually IP addresses that are not located in a natural person’s home. Instead, the datacenter proxies are associated with a secondary corporation.
- Mobile IP proxies may be considered a subset of the Residential proxy category.
- a mobile IP proxy is essentially one IP address that is obtained from mobile operators. Mobile IP proxies use mobile data, as opposed to a residential proxy that uses broadband ISPs or home Wi-Fi.
- a proxy server is basically a computer on the internet with its own IP address that the client’s computer knows. When a client sends a web request, the request goes to the proxy server first.
- the proxy server then makes the web request on the client’s behalf, collects the response from the web server, and forwards the web page data so that the client can see the page in the browser.
- the proxy server can make changes to the data but yet provide the data requested.
- a proxy server changes the client’s IP address, so the web server is not provided the geographical location of the client.
- a proxy can encrypt the client’s data so that the client’s data becomes unreadable in transit.
- a proxy server can block access to certain web pages, based on IP address, domain name, or the communication protocol parameters, such as the port requested.
- a proxy provider can control the quality of proxies and decide which Internet Protocol (IP) addresses are going to be served by a set of proxies used by clients. If the same proxy is used for too many requests, the proxy will ultimately be banned by the Internet service provider or the web page and it will not be possible to use such a proxy to make subsequent requests. If too many requests come in from one IP address in a short period of time, then the site will return some sort of error message and disallow the requests from that proxy for a pre-set period of time. To prevent errors or disallowed requests, the proxies are checked from time to time by the service provider and corrupted proxies are removed from the proxy pool (such proxies are not provided to the client anymore).
- IP Internet Protocol
- the service provider can check proxies on several different grounds: if proxy is online, what is the delay time, what Internet connection proxy uses (Wi-Fi, mobile data, etc.).
- the examination of a proxy is performed in scheduled time intervals to ensure that the clients, using the proxy services, could use the proxy efficiently.
- Exit node proxies are gateways where encrypted traffic hits the Internet, or are proxies, and through these proxies the request from the user (or the entry node) reaches the Internet.
- proxies and exit nodes can be used as the synonyms.
- the current embodiments are not limited only to the exit nodes and same technologies can be used for proxies of different types.
- exit node is employed in the current description to clarify the functional differences between exit nodes and proxies.
- a proxy check can be performed in different ways, including, for example, the proxy checked by the user itself, the proxy checked by the service provider supplying proxies to the user, etc.
- the inspection of proxies helps to ensure that the proxy is alive or otherwise online, determine the delay time of the proxy, ensure that the proxy can process internet requests to the target, and any other relevant information about the proxy.
- the problem arises however, that all the information about the proxy is stored within the proxy (or exit node) itself.
- the exit node device is external to the proxy service provider infrastructure, usually belonging to a private customer e.g. a smartphone, a computer, a TV, or another Internet- enabled electronic device. Due to the limitation implied by privacy protection requirements the proxy service provider may not interfere with the configuration settings enabled on such devices. Instead the service provider must confer to using the residential proxies as is, even if it means using an exit node that might be operated by a malicious party or be a misconfigured device. Performing a preliminary benchmark test, controlled and carefully assembled by the service provider to examine the parameters of the exit node functioning relevant in real life scenarios, the service provider can ensure fit-for-purpose exit-nodes delivered to customers.
- the proxy may report information that has been meddled with or is inaccurate - for example, it can give untrue information about proxy status, about the internet connection used (mobile or Wi-Fi), provide false IP address, provide uncertain information about round trip time or availability of the proxy.
- a proxy can also create a lot of connections from a single device and receive a lot of traffic from the users. The users may be misleadingly informed that the device is available for proxy services, however, due to the high traffic, the proxy is not capable of performing the requests properly and either does not reach the target, or the response time increases, sometimes to a great extent.
- the service provider, offering proxies may not be certain whether the exit node can be used for proxying, or whether the exit node can be used for proxying on a specific target or for a specific geolocation. Problems can arise where service providers are not aware if exit node proxying speed on a specific target or a concrete geolocation is sufficient.
- the present embodiments detailed herein perform an exit node (a proxy) check at the service provider’s side. Where checks have been previously performed by the exit node (the proxy) itself, and all information about its availability have been stored in the proxy, in contrast, the present embodiments present a method of performing analysis and storing information about the exit node (the proxy) at the service provider’s infrastructure instead of holding the information merely in the proxy.
- the present embodiments periodically check the exit nodes (proxies), with checks being initiated and performed by the service provider.
- the exit node is connected to a supernode.
- a supernode sends benchmark requests to predefined targets through an exit node.
- the supernode adds the benchmark results (request delay time, reply if the target was reached, etc.) to the exit node’s metadata kept within the exit nodes database.
- exit node benchmark speed against a specific target meets certain criteria, then the exit node is indicated as suitable for proxying. It is then stored in groups for random proxying, proxying on specific geo location, and/or proxying on specific target. Otherwise, the exit node is not used for random proxying or proxying on a specific location or target.
- the solution can be implemented in a supernode service that is on the service provider’ s side.
- the present embodiments solve at least some of the following problems: 1) increasing service quality for user requests due to exit node availability; 2) selecting appropriate exit node(s) according to the target or geographical location of the request; and/or 3) increasing the speed for fetching the data requested to a user device.
- Figure 1 is a block diagram of an exemplary architectural depiction of components.
- Figure 2 is an exemplary test flow diagram.
- Figure 3 is an exemplary scraping flow diagram.
- Figure 4 is an exemplary computing system performing the methods disclosed. DETAILED DESCRIPTION
- a User Device where a user can be any person or a business entity requesting and using proxies for the purpose of obtaining relevant information from the Web (e.g., for the purpose of collecting information, scraping websites, etc.), a User Device can be any device that is capable of making requests to the proxy, including any physical device that is connected to a network; including, for example, a laptop, a mobile phone, a tablet computer, or any other smart device.
- Front-End Proxy server The primary function of a Front-End Proxy server is to receive the requests from a client, or multiple clients, and to pass the request to the infrastructure that executes the function of transmitting the user’s request to the actual target through the exit-node, or multiple exit-nodes, selected for the task.
- Front-End Proxy may be running data caching services and serve the client with the data stored in a local cache in case the cached data is precisely the data requested by the user, in order to control the bandwidth utilization at the exit node.
- Supernode - a computing device within service provider infrastructure relayer for a particular network that contains multiple exit-nodes. This semi-distributed architecture allows data to be decentralized, thus reducing the processing overhead from exit nodes.
- Exit Node - a proxy that is connected to a network and that is used to reach the Target.
- the Exit Node can be any proxy device that is connected to the Network, for example, a laptop, a mobile phone, a tablet computer, or any other smart device.
- a proxy service provider may be operating a multitude of exit-nodes.
- Target or Target server a server serving any kind of content accessible over multiple protocols over the Internet.
- a Target can be, for example, a particular IP address, a domain name, and/or a hostname, possibly with a defined network protocol port, that represent(s) a resource address at a remote system serving the content accessible through industry standard protocols.
- Exit Nodes Database a data structure e.g. a database, or a file, that contains information about exit nodes, including exit node configuration attributes.
- Exit Node Metadata information about the exit node, including the exit node configuration settings.
- Service Provider Infrastructure - infrastructure of the party providing the proxy as a service to the customer.
- Service Provider Infrastructure is comprised of at least one or multiple of: FE Proxy Server, Exit Nodes Database and Supernode.
- Proxy Service Provider - a party providing the proxying functionality that is delivered to a customer as a service, comprised of the proxies, that act as an intermediary for requests from clients seeking resources from other servers, and the proxy management components.
- proxies that act as an intermediary for requests from clients seeking resources from other servers, and the proxy management components.
- One of the many available typologies for proxy servers being the type of IP address the proxy uses, including but not limited to Residential IPs proxies, Datacenter IP proxies and Mobile IPs proxies.
- Network - a digital telecommunications network that allows nodes to share resources. Examples of a network: local-area networks (LANs), wide-area networks (WANs), campus-area networks (CANs), metropolitan-area networks (MANs), home-area networks (HANs), Intranet, Extranet, Internetwork, and Internet.
- LANs local-area networks
- WANs wide-area networks
- CANs campus-area networks
- MANs metropolitan-area networks
- HANs home-area networks
- Intranet Extranet
- Internetwork Internetwork
- the present embodiments provide systems and methods for effectively managing Exit Node(s) 108, e.g., by using Supernode 106 to examine the Exit Node 108, including by sending and receiving a request to the Target 110 through the Exit Node that is tested.
- the information about Exit Node 108, as well as the results of the test, is then stored into the Supernode 106, and aggregated in Exit Node Database 112 by submitting the Exit Node information contained within the Supernode 106, or multiple Supernode devices.
- Exit Nodes Database 112 categorizes the proxies according to their availability and provides available exit nodes to the Front End Proxy 104 that requests available exit nodes to serve the requests of User 102.
- the present embodiments describe an exemplary method of Supernode 106 checking the Exit Node(s) 108 and collecting information about its availability status and capabilities.
- the Exit Node 108 connects to Supernode 106 and remains connected until the Exit Node 108 is disconnected, either by disconnecting itself or where the Supernode 106 disconnects the Exit Node 108 and/or removes the Exit Node 108 from the availability list.
- More than one Exit Node 108 can be connected to the Supernode 106 at the same time, and more than one Supernode 106 can work within the same Proxy Service Provider infrastructure 114.
- the number of Exit Nodes 108 or Supernodes 106 employed in the Service Provider Infrastructure 114 is not limited.
- the Proxy Service Provider can have an unlimited number of Supernodes 108 to which an unlimited number of Exit nodes 108 can be connected, including at the same time.
- Benchmark test definitions generally are described at the Supernode 106 locally, and, in some embodiments, may be a configuration file or multiple files, or the description can be placed on a different platform altogether, e.g., a 3rd party service or data storage platform.
- a benchmark test definition may include a target specification e.g. target’s geographical location, Network placement, country affiliation, communication protocol type or any other characteristic deemed relevant by the Service provider.
- the Supernode 106 forms a benchmark request according to a benchmark test definition and sends a benchmark request 204 to the Exit Node 108 (see Figure 2).
- the benchmark request can be a request to reach any specific Target 110, e.g., an IP address, a hostname, an application level protocol link, e.g., HTTP, or any other type of Target 110 on the Network 116.
- the Network 116 can be any computer network, but, typically, is the Internet.
- the benchmark targets are changed dynamically according to the results of analyzing customer requests that are monitored, registered, and aggregated by the Proxy Service Provider. Such analysis of customer requests may be performed against the data for a specific period of time in order, for example, to reveal the target or targets currently most in demand. The list of the targets then may be used while dynamically defining the benchmark requests against particular targets. The resultant responses are consequently employed for categorizing exit nodes in pools corresponding to the potential targets.
- the Exit Node 108, Supernode 106, and Front End Proxy 104 are parts of the Service Provider Infrastructure 114.
- Figure 1 shows an exemplary overall structure that comprises User device 102, which can be any computing device (e.g., a personal computer, mobile phone, a tablet computer) having access (e.g. Internet connection) to a particular network, Service Provider Infrastructure 114, which contains Front End Proxy server 104, Exit Nodes Database 112, Supernode 106, and Exit Node 108. Exit Node 108 and Target 110 are based in Network 116 and, generally, not in Service Provider Infrastructure 114.
- Computing device 102 can be any computing device (e.g., a personal computer, mobile phone, a tablet computer) having access (e.g. Internet connection) to a particular network, Service Provider Infrastructure 114, which contains Front End Proxy server 104, Exit Nodes Database 112, Supernode 106, and Exit Node 108. Exit Node 108 and Target 110 are based in Network 116 and, generally, not in Service Provider Infrastructure 114.
- the Supernode performs the next actions and evaluates if: 1) the response was received; 2) Exit node is available (is online); 3) Exit Node can reach a specific target; 4) the reply was speedy enough, as compared to the quality threshold defined for the Proxy Service Provider to use the Exit Node. For example, if the delay time to reach the Target is longer than 5 seconds, the Exit node may be marked as not available. Successful evaluation of the abovementioned factors specifies the adequate exit node performance. According to the evaluations, the Supernode 106 sends all information about each Exit Node 108 that was checked, to the Exit Nodes Database 112 (step 212).
- the Exit Node(s) 108 is/are subjected to a benchmark test as part of the initial registration with the service provider, the Exit Nodes are then placed into pools, or groups, corresponding to the results of the benchmark test e.g. according to the network bandwidth deduced from the reply time.
- Exit Node(s) 108 As long as the Exit Node(s) 108 adequately services requests, further benchmark tests are typically not performed against the Exit Node(s) 108. However, as soon as the replies delivered by an Exit Node 108 indicate that the Exit Node 108 is not performing correctly, the Exit Node is temporarily removed from circulation, i.e., customer requests are not sent to such Exit Node 108. Potential signs of an erroneous response, in one example, may demonstrate a drastic reduction in the size of a typical reply, e.g. 400 Kbytes reduced to 50 Kbytes, which might indicate that the response contains no appropriate data, instead delivering the error message e.g. designated by HTTP error code 4(xx) group, from the Target.
- error message e.g. designated by HTTP error code 4(xx) group
- Removed Exit Node(s) 108 can subsequently be subjected to further benchmark tests according to a pre-configured schedule or after a preset timeout period has lapsed. If the reply to a subsequent or further benchmark test matches the criteria of an adequate reply, the Exit Node(s) 108 is put back into circulation for use. Otherwise, the exit node stays out of circulation and may be subjected to repeated benchmark tests, which can include increased or varied time period(s) between such tests.
- the process or sequence of benchmark tests ensures use in a targeted fashion i.e. the whole exit node population is not subjected to a wide-scale network connection and processing load, therefore preserving the infrastructure resources of the service provider.
- Properly working exit nodes are not overloaded with benchmark requests, instead dedicating the full capacity of the Exit Node(s) 108 to serving the requests from the service users.
- the Exit Nodes Database 112 provides the Front End Proxy Server 104 with the available Exit Node 108. Only Exit Nodes 108 that are checked by the Supernode 106, and that have been proved to be ready for use, are provided to Front End Proxy Server 104.
- the Front End Proxy Server 104 selects the Exit Node 108 from the list of available Exit Nodes 108 in the Exit Nodes Database 112, and provides User Device 102 with the best Exit Node(s) 108 (step 220) for further processing of the requests from the User Device 102. In this way, the User Device 102 receives the best results for its further data scraping requests.
- Figure 2 presents a flow diagram showing an exemplary process of operation of information travel between elements and exemplary functions the elements perform.
- Exit Node 108 connects to Supernode 106 to register with the Supernode 106 (step 202).
- Supernode 106 next sends a benchmark request to the Exit Node 108 (step 204).
- Exit Node 108 connects to a Target and executes a request (step 206). Then, the Exit Node 108 forwards a response to the Request to Supernode 106 (step 208).
- Supernode 106 measures the information provided by the Exit Node 108 (step 210).
- the Supernode 106 evaluates if: 1) the response was received; 2) Exit Node 108 is available (is online); 3) Exit Node 108 can reach a specific target; 4) the reply was speedy enoughto use the Exit Node 108. For example, if the delay time to reach the Target is longer than 5 seconds, the Exit Node 108 may be marked as not available. Based on the information provided by the Exit Node 108, the Supernode 106 sends the information about Exit Node 108 to the Exit Nodes Database 112 (step 212).
- the Exit Nodes 108 are grouped, e.g., as Exit Nodes that can be used and Exit Nodes 108 that are not available for use, by placing them in the corresponding Exit Node pools, or groups, within the Exit Node Database.
- the Exit Node(s) 108 can also be grouped by categories of Exit Node(s) 108 being used to reach specific targets (e.g., concrete marketplaces, channels, http links) or to reach specific geolocation (e.g., theUSA, Germany, Australia), or into other groupings.
- These steps of measuring Exit Node(s) 108 can be performed at any relevant or scheduled time interval(s), for example, the time interval(s) can be set as every second to a few minutes. These time interval(s) depend on the amount of Exit Nodes 108 connected to the Supernode 106, e.g., if more Exit Nodes 108 are connected, more time will be required for the Supernode 106 to send benchmark requests to each Exit Node 108. If less Exit Nodes 108 are attached to a particular Supernode 106, the Supernode 106 may send benchmark requests more often.
- the status of the Exit Node(s) 108 can change quickly, e.g., if a device operating as an Exit Node 108 is switched off, loses Internet connection, oversaturates its connection at a particular time of day causing delay in response time, or due to overall increases of network bandwidth usage at a particular provider.
- BPS Bits Per Second
- a channel with a particular amount of Bits Per Second (BPS) may not necessarily transmit data at a particular rate, since protocols, encryption, and/or other factors can add appreciable overhead.
- BPS Bits Per Second
- TCP Transmission Control Protocol
- TCP Transmission Control Protocol
- TCP Transmission Control Protocol
- data packets may be lost and need to be re-sent, which further reduces useful data throughput.
- FIG. 3 presents an exemplary flow diagram of a user’s requesting to scrape a particular Target.
- Front End Proxy server 104 receives a request for a proxy from a User Device 102 (step 302), with the request containing the necessary attributes the User Device 102 requires. Then, Front End Proxy Server 104 forms a query for the Exit Node, or multiple Exit-Nodes, conforming to the requirements of the User Device 102, and communicates the query to the Exit Node Database 112 (step 304).
- the Exit Node Database 112 forms the list of exit-nodes appropriate to the request, collects the Exit Node Metadata (step 306) and returns the Exit Node Metadata to the Front End Proxy Server 104 (step 308).
- Front End Proxy Server 104 next sends the data request to the Supernode 106 (step 310).
- Supernode 106 forwards the data request to the Exit Node 108 (step 312).
- Exit Node 108 implements the request and obtains data from the indicated Target (step 314).
- Exit Node 108 forwards the data to the Supernode (step 316).
- Supernode 106 receives the data from the Exit Node 108, Supernode 106 also collects qualitative information about the exit node servicing that particular request. Should the exit node perform adequately corresponding to the thresholds configured by the Proxy Service configuration settings (e.g.
- the Supernode 106 forwards the data obtained from the Target to the Front End Proxy Server 104 (318). Front End Proxy Server 104 forwards the data obtained from the Target to the User Device 102 (step 320).
- the User Device 102 could send a second request to the Front End Proxy Server 104.
- the second request can differ from the first request regarding the Target, e.g., the second request can be related to a specific country.
- the Front End Proxy Server 104 provides the User Device 102 with the second Exit Node 108 from the most suitable Exit Node(s) 108 stored in the Exit Nodes Database 112.
- a User Device 102 might ask for an exit node to reach a target (e.g., www.e-shop.com).
- the Front End Proxy Server 104 provides the User Device 102 Exit Node “A”, that is the best suitable to reach a specifically indicated marketplace.
- the User Device 102 might ask for an exit node operating in the US (e.g., having a US IP address).
- Front End Proxy Server 104 provides the User Device 102 with a second Exit Node that conforms to the requirements of the User Device 102 (e.g., an Exit Node that is registered in the US).
- the exit node that was used to perform the first request also conforms to the requirements of the second request, the same exit node could be used twice.
- the various embodiments described herein provide checking Exit Nodes at the Supernode side instead of the Exit Nodes, in at least one aspect to address shortcomings of possible failures of Exit Nodes.
- Checking of Exit Nodes is based on dynamic updates received from the Exit Node itself using different Targets, and not based on the information provided only by the Exit Node.
- the methods of the exemplary embodiments detailed herewithin allow the user to be provided only active and ready to use Exit Nodes to perform a request.
- FIG. 4 illustrates a computing system 400 in which a computer readable medium 406 may provide instructions for performing any of the methods disclosed herein.
- the embodiments can take the form of a computer program product accessible from the computer readable medium 406 providing program code for use by or in connection with a computer or any instruction execution system.
- the computer readable medium 406 can be any apparatus that can tangibly store the program for use by or in connection with the instruction execution system, apparatus, or device, including the computer system 400.
- the medium 406 can be any tangible electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device).
- Examples of a computer readable medium 406 include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), NAND flash memory, a read-only memory (ROM), a rigid magnetic disk and an optical disk.
- Some examples of optical disks include compact disk - read only memory (CD-ROM), compact disk - read/write (CD-R/W) and digital versatile disc (DVD).
- the computing system 400 suitable for storing and/or executing program code, can include one or more processors 402 coupled directly or indirectly to memory 408 through a system bus 410.
- the memory 408 can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code is retrieved from bulk storage during execution.
- I/O devices 404 can be coupled to the system either directly or through intervening I/O controllers.
- Network adapters may also be coupled to the system to enable the computing system 400 to become coupled to other data processing systems, such as through host systems interfaces 412, or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
- a ‘includes ... a”, “contains ...a” does not, without additional constraints, preclude the existence of additional identical elements in the process, method, article, and/or apparatus that comprises, has, includes, and/or contains the element.
- the terms “a” and “an” are defined as one or more unless explicitly stated otherwise herein.
- the terms “approximately”, “about” or any other version thereof, are defined as being close to as understood by one of ordinary skill in the art.
- a device or structure that is “configured” in a certain way is configured in at least that way, but may also be configured in ways that are not listed.
- databases such as “Exit Nodes Database”, or similar
- Computer databases typically contain aggregations of data records or files, in the current case, databases usually store different information and statistics about the proxies or exit nodes, information about utilization threshold of the exit node provider.
- databases can also contain information about the clients, requests performed, networks used, proxies used, types of proxies requested and similar data. Databases are structured to facilitate the storage, retrieval, modification, and deletion of data in conjunction with various data-processing operations.
- the indicated benchmark targets are changed dynamically according to results of analyzing a customer's request as monitored, registered, and aggregated by a Service Provider Infrastructure.
- the benchmark request target is a resource submitted to the Exit Node as an IP address or URL/URI.
- the measuring of the Exit Node response identifies whether the Exit Node can be indicated as suitable for proxying or not suitable for proxying.
- the Exit Node indicated as suitable for proxying can be stored in exit node groups categorizing as random proxying, proxying on specific geo location, proxying on specific target, or any combination thereof.
- the number of the Exit Nodes connected to the Supernode at the same time is unlimited.
- the benchmark request is applied to the Exit Node during the initial registration of the Exit Node with the Service Provider Infrastructure or is applied to an Exit node that has been previously registered and stored in the Exit-Node Database and is exhibiting performance inadequate corresponding to the thresholds configured at the Service Provider Infrastructure.
- the current embodiments disclose a system of checking availability of proxy servers comprising at least: a Service Provider Infrastructure, comprised of: a Front End Proxy Server, an Exit Nodes Database, a Supernode; and, an Exit Node.
- a Service Provider Infrastructure comprised of: a Front End Proxy Server, an Exit Nodes Database, a Supernode; and, an Exit Node.
- the availability of the Exit Node is evaluated by initiating a benchmark test request to targets through the Exit Node tested, where targets are changed dynamically according to results of analyzing a customer's previous request as registered by the Service Provider Infrastructure.
- the Exit Node is registered in Exit Node Database as categorized as suitable for random proxying, proxying of specific geo location, proxying of a specific target, or not suitable for proxying.
- the Exit Node Database stores a response of the Exit Node from a benchmark request as well as results of customer’s previous request.
- the Supernode applies benchmark requests to the Exit Node during the initial registration process or to an Exit node that has been previously registered and stored in the Exit-Node Database and is exhibiting performance inadequate corresponding to thresholds configured at the Service Provider Infrastructure.
- the current embodiments present a non-transitory computer readable medium for checking availability of proxy servers comprising instructions which, when executed by a computing device within a Service Provider Infrastructure, cause the corresponding computing device to:
- the non-transitory computer readable medium is described by benchmark targets that are changed dynamically according to results of analyzing a customer's request as monitored, registered, and aggregated by a Proxy Service Provider.
- the benchmark request is performed against a specific selected target, geolocation, IP address, or HTTP link in a Network.
- Exit Node suitable for proxying is stored in Exit Node Database categorized as intended for random proxying, proxying against a specific geo location, or proxying to a specific target, or any combination thereof, or not suitable for proxying.
- the benchmark request is applied to the Exit Node during the initial registration with a Proxy Service Provider or is applied to an Exit Node, already stored in the proxy pool, that has response measurements marked as less than thresholds configured at the Service Provider Infrastructure.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Time Recorders, Dirve Recorders, Access Control (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Devices For Checking Fares Or Tickets At Control Points (AREA)
- Circuit Arrangement For Electric Light Sources In General (AREA)
- Traffic Control Systems (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/912,053 US10873647B1 (en) | 2020-06-25 | 2020-06-25 | Exit node benchmark feature |
PCT/IB2021/052941 WO2021260446A1 (en) | 2020-06-25 | 2021-04-09 | Exit node benchmark feature |
Publications (1)
Publication Number | Publication Date |
---|---|
EP3957031A1 true EP3957031A1 (en) | 2022-02-23 |
Family
ID=73823667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP21720318.1A Pending EP3957031A1 (en) | 2020-06-25 | 2021-04-09 | Exit node benchmark feature |
Country Status (8)
Country | Link |
---|---|
US (5) | US10873647B1 (en) |
EP (1) | EP3957031A1 (en) |
CN (1) | CN115443639B (en) |
CA (1) | CA3173869A1 (en) |
DE (1) | DE202021103602U1 (en) |
IL (1) | IL298349A (en) |
MX (1) | MX2022016173A (en) |
WO (1) | WO2021260446A1 (en) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113709020B (en) * | 2020-05-20 | 2024-02-06 | 腾讯科技(深圳)有限公司 | Message sending method, message receiving method, device, equipment and medium |
US11637812B2 (en) * | 2020-10-13 | 2023-04-25 | Microsoft Technology Licensing, Llc | Dynamic forward proxy chaining |
US11212354B1 (en) * | 2021-03-19 | 2021-12-28 | Teso LT, UAB | Methods and systems for implementing a regionally contiguous proxy service |
US11184458B1 (en) | 2021-03-30 | 2021-11-23 | Teso LT, UAB | Proxy selection by monitoring quality and available capacity |
US20230030168A1 (en) * | 2021-07-27 | 2023-02-02 | Dell Products L.P. | Protection of i/o paths against network partitioning and component failures in nvme-of environments |
US11470175B1 (en) * | 2022-02-09 | 2022-10-11 | coretech It, UAB | Early positive communication response in a proxy infrastructure |
US11652697B1 (en) * | 2022-03-29 | 2023-05-16 | Oxylabs, Uab | Transmitting request and response information through different proxies |
US12003600B2 (en) | 2022-06-21 | 2024-06-04 | Oxylabs, Uab | Network coordination between proxy servers |
US11652890B1 (en) | 2022-07-13 | 2023-05-16 | Oxylabs, Uab | Methods and systems to maintain multiple persistent channels between proxy servers |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6397259B1 (en) * | 1998-05-29 | 2002-05-28 | Palm, Inc. | Method, system and apparatus for packet minimized communications |
DE69934871T2 (en) | 1999-03-05 | 2007-07-05 | International Business Machines Corp. | Method and system for optimally selecting a web firewall in a TCP / IP network |
US6601098B1 (en) * | 1999-06-07 | 2003-07-29 | International Business Machines Corporation | Technique for measuring round-trip latency to computing devices requiring no client-side proxy presence |
US6658463B1 (en) * | 1999-06-10 | 2003-12-02 | Hughes Electronics Corporation | Satellite multicast performance enhancing multicast HTTP proxy system and method |
US6829638B1 (en) * | 2000-08-03 | 2004-12-07 | International Business Machines Corporation | System and method for managing multiple proxy servers |
US20020069241A1 (en) * | 2000-12-06 | 2002-06-06 | Girija Narlikar | Method and apparatus for client-side proxy selection |
GB2378530B (en) * | 2001-05-15 | 2005-03-30 | Accenture Properties | Benchmark testing |
US7499973B2 (en) * | 2001-12-21 | 2009-03-03 | Motorola, Inc. | System and method for automatically forwarding a communication message |
US20040006615A1 (en) | 2002-07-02 | 2004-01-08 | Sun Microsystems, Inc., A Delaware Corporation | Method and apparatus for cerating proxy auto-configuration file |
US7353279B2 (en) | 2004-01-08 | 2008-04-01 | Hughes Electronics Corporation | Proxy architecture for providing quality of service(QoS) reservations |
US7639682B2 (en) | 2004-03-05 | 2009-12-29 | Nec Corporation | Communication quality management and apparatus |
US8027680B2 (en) * | 2005-12-30 | 2011-09-27 | United States Cellular Corporation | Selective handoff between access gateways |
US8291108B2 (en) | 2007-03-12 | 2012-10-16 | Citrix Systems, Inc. | Systems and methods for load balancing based on user selected metrics |
US8315179B2 (en) * | 2008-02-19 | 2012-11-20 | Centurylink Intellectual Property Llc | System and method for authorizing threshold testing within a network |
US20090228603A1 (en) | 2008-03-07 | 2009-09-10 | Jan Robert Ritzau | System and method for selecting proxy gateways in peer-to-peer networks |
US9037712B2 (en) * | 2010-09-08 | 2015-05-19 | Citrix Systems, Inc. | Systems and methods for self-loading balancing access gateways |
US8386419B2 (en) * | 2011-05-12 | 2013-02-26 | Narendar Yalamanchilli | Data extraction and testing method and system |
US10499409B2 (en) * | 2012-02-02 | 2019-12-03 | Genghiscomm Holdings, LLC | Cooperative and parasitic radio access networks |
US20140013001A1 (en) | 2012-07-06 | 2014-01-09 | Microsoft Corporation | Parallel probing for efficient proxy selection in networked environments |
US9762461B2 (en) * | 2013-07-09 | 2017-09-12 | Oracle International Corporation | Cloud services performance tuning and benchmarking |
US9241044B2 (en) | 2013-08-28 | 2016-01-19 | Hola Networks, Ltd. | System and method for improving internet communication by using intermediate nodes |
WO2015040280A1 (en) | 2013-09-20 | 2015-03-26 | Notava Oy | Access control to wireless networks involving a policy proxy server |
US9996442B2 (en) * | 2014-03-25 | 2018-06-12 | Krystallize Technologies, Inc. | Cloud computing benchmarking |
WO2015199702A1 (en) | 2014-06-26 | 2015-12-30 | Hewlett-Packard Development Company, L.P. | Selecting proxies |
US9509742B2 (en) * | 2014-10-29 | 2016-11-29 | DLVR, Inc. | Configuring manifest files referencing infrastructure service providers for adaptive streaming video |
MY181452A (en) * | 2015-02-09 | 2020-12-22 | Swag Tech Sdn Bhd | System and method for concealed connection merging through coordinated and dynamic virtual proxy allocation |
US20160380778A1 (en) * | 2015-02-26 | 2016-12-29 | Telefonaktiebolaget Lm Ericsson (Publ) | A Master Device and Methods Therein |
US10498625B1 (en) * | 2016-10-14 | 2019-12-03 | Amazon Technologies, Inc. | Distributed testing service |
US10581695B2 (en) * | 2017-04-14 | 2020-03-03 | Rohde & Schwarz Gmbh & Co. Kg | Test system and method for benchmark testing a device under test |
EP3767494B1 (en) | 2017-08-28 | 2023-02-15 | Bright Data Ltd. | Method for improving content fetching by selecting tunnel devices |
JP2019047289A (en) * | 2017-08-31 | 2019-03-22 | キヤノン株式会社 | Communication device, control method of the same, and program |
US10439925B2 (en) * | 2017-12-21 | 2019-10-08 | Akamai Technologies, Inc. | Sandbox environment for testing integration between a content provider origin and a content delivery network |
WO2020086860A1 (en) * | 2018-10-24 | 2020-04-30 | Affirmed Networks, Inc. | Anomaly detection and classification in networked systems |
KR20200052673A (en) * | 2018-11-07 | 2020-05-15 | 삼성전자주식회사 | Apparatus and mehtod for communication between devices in close proximity in a wireless network |
CN109525679A (en) * | 2019-01-08 | 2019-03-26 | 郑州云海信息技术有限公司 | A kind of web file server test method based on http protocol |
US10637956B1 (en) * | 2019-10-01 | 2020-04-28 | Metacluster It, Uab | Smart proxy rotator |
-
2020
- 2020-06-25 US US16/912,053 patent/US10873647B1/en active Active
- 2020-11-13 US US17/098,167 patent/US11140238B1/en active Active
-
2021
- 2021-04-09 CN CN202180030715.XA patent/CN115443639B/en active Active
- 2021-04-09 MX MX2022016173A patent/MX2022016173A/en unknown
- 2021-04-09 EP EP21720318.1A patent/EP3957031A1/en active Pending
- 2021-04-09 IL IL298349A patent/IL298349A/en unknown
- 2021-04-09 WO PCT/IB2021/052941 patent/WO2021260446A1/en unknown
- 2021-04-09 CA CA3173869A patent/CA3173869A1/en active Pending
- 2021-04-09 DE DE202021103602.8U patent/DE202021103602U1/en active Active
- 2021-08-16 US US17/402,748 patent/US11316948B2/en active Active
-
2022
- 2022-03-23 US US17/656,007 patent/US11412062B2/en active Active
- 2022-07-01 US US17/810,351 patent/US11606439B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20220337670A1 (en) | 2022-10-20 |
DE202021103602U1 (en) | 2021-08-20 |
IL298349A (en) | 2023-01-01 |
US20210409505A1 (en) | 2021-12-30 |
US11412062B2 (en) | 2022-08-09 |
US11606439B2 (en) | 2023-03-14 |
US11140238B1 (en) | 2021-10-05 |
CN115443639B (en) | 2024-06-18 |
MX2022016173A (en) | 2023-02-09 |
WO2021260446A1 (en) | 2021-12-30 |
US20220217218A1 (en) | 2022-07-07 |
US11316948B2 (en) | 2022-04-26 |
CA3173869A1 (en) | 2021-12-30 |
US10873647B1 (en) | 2020-12-22 |
CN115443639A (en) | 2022-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10873647B1 (en) | Exit node benchmark feature | |
US11343342B2 (en) | Dynamic optimization of request parameters for proxy server | |
US10263958B2 (en) | Internet mediation | |
US7702772B2 (en) | Discovering and determining characteristics of network proxies | |
US20230199073A1 (en) | Proxy selection by monitoring quality and available capacity | |
US20180324064A1 (en) | Unobtrusive methods and systems for collecting information transmitted over a network | |
US11496594B1 (en) | Regulation methods for proxy services | |
EP4167524B1 (en) | Local network device connection control | |
CN118435581A (en) | Transmitting request and response information through different agents | |
US20220094682A1 (en) | Network connection request method and apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20210917 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40060251 Country of ref document: HK |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: OXYLABS, UAB |
|
RAP3 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: OXYLABS, UAB |
|
17Q | First examination report despatched |
Effective date: 20230310 |
|
DAV | Request for validation of the european patent (deleted) | ||
DAX | Request for extension of the european patent (deleted) |