IP Library Patent Application 18624527
Patent Application
App. No. 18/624,527

System and Method for Improving Content Fetching by Selecting Tunnel Devices

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 None
App. No.
18/624,527
Filed
Apr 2, 2024
Art Unit
2454
USPC
709/218
Abstract

A method for fetching a content from a web server to a client device is disclosed, using tunnel devices serving as intermediate devices. The tunnel device is selected based on an attribute, such as IP Geolocation. A tunnel bank server stores a list of available tunnels that may be used, associated with values of various attribute types. The tunnel devices initiate communication with the tunnel bank server, and stays connected to it, for allowing a communication session initiated by the tunnel bank server. Upon receiving a request from a client to a content and for specific attribute types and values, a tunnel is selected by the tunnel bank server, and is used as a tunnel for retrieving the required content from the web server, using standard protocol such as SOCKS, WebSocket or HTTP Proxy. The client only communicates with a super proxy server that manages the content fetching scheme.

Claims (77)

1 . A method executed by a mobile device that is configured to be in idle or non-idle states, that is housed in a hand-held enclosure or a portable enclosure, that is configured to communicate over the Internet via a wireless network, and that comprises an accelerometer attached in the enclosure for sensing a motion of the mobile device, the method comprising:

establishing, a connection between the mobile device and a first server over the Internet via the wireless network;

sensing, for a pre-defined time interval, by the mobile device using the accelerometer, a motion value of the mobile device;

comparing, by the mobile device, the sensed motion value to a threshold level;

sending, by the mobile device to the first server over the established connection, a message indicative of the sensed motion value, in response to the comparing of the sensed motion value;

when being in the idle state, staying in the idle state, in response to the sensed motion value being below the threshold level;

when being in the non-idle state, shifting to the idle state, in response to the sensed motion value being below the threshold level;

when being in the non-idle state, staying in the non-idle state, in response to the sensed motion value being above the threshold level;

when being in the idle state, shifting to the non-idle state, in response to the sensed motion value being above the threshold level;

receiving, by the mobile device via the wireless network over the Internet from a second server, a request for a content, in response to being in the idle state;

obtaining, by the mobile device, the requested content, in response to the receiving of the request; and

sending, by the mobile device via the wireless network over the Internet to the second server, the obtained content.

2 . The method according to claim 1 , wherein the first and second servers communicate over the Internet.

3 . The method according to claim 1 , wherein the content is identified using a content identifier, and wherein the request comprises the content identifier.

4 . The method according to claim 3 , wherein the content identifier identifies the content over the Internet.

5 . The method according to claim 4 , wherein the content comprises a web-page or a part thereof, and wherein the content identifier comprises an Uniform Resource Identifier (URI) or a Uniform Resource Locator (URL).

6 . The method according to claim 1 , wherein the content, or a part thereof, is stored in a web server.

7 . The method according to claim 6 , wherein the obtaining comprises sending, by the mobile device to the web server over the Internet via the wireless network, the received request for content, in response to the receiving of the request.

8 . The method according to claim 7 , wherein the obtaining further comprises receiving, by the mobile device from the web server over the Internet via the wireless network, the content, in response to the sending of the request.

9 . The method according to claim 1 , wherein the request comprises a Hypertext Transfer Protocol (HTTP) or HTTP Secure (HTTPS) request.

10 . The method according to claim 1 , wherein the mobile device is addressable in the Internet by a first Internet Protocol (IP) address, and wherein the establishing comprises sending, by the mobile device to the first server, the first IP address.

11 . The method according to claim 1 , wherein the established connection uses, or is based on, a TCP connection that uses ‘Active OPEN’, ‘Passive OPEN’, or TCP keepalive mechanism.

12 . The method according to claim 1 , wherein the established connection uses, or is based on, Virtual Private Network (VPN).

13 . The method according to claim 1 , wherein the establishing uses, or is based on, a Network Address Translator (NAT) traversal scheme.

14 . The method according to claim 13 , wherein the NAT traversal scheme is according to, based on, or uses, Internet Engineering Task Force (IETF) Request for Comments (RFC) 2663, IETF RFC 3715, IETF RFC 3947, IETF RFC 5128, IETF RFC 5245, IETF RFC 5389, or IETF RFC 7350.

15 . The method according to claim 13 , wherein the NAT traversal scheme is according to, based on, or uses, Traversal Using Relays around NAT (TURN), Socket Secure (SOCKS), NAT ‘hole punching’, Session Traversal Utilities for NAT (STUN), Interactive Connectivity Establishment, (ICE), UPnP Internet Gateway Device Protocol (IGDP), or Application-Level Gateway (ALG).

16 . The method according to claim 1 , wherein the communication over the Internet by the mobile device with the first or second server, is based on, or is compatible with, Socket Secure (SOCKS) protocol or connection, wherein the first or second server serves as a SOCKS server and the mobile device serves as a SOCKS client.

17 . The method according to claim 16 , wherein the SOCKS protocol or connection is based on, or is compatible with, SOCKS4, SOCKS4a, or SOCKS5.

18 . The method according to claim 16 , wherein the SOCKS protocol or connection based on, or is compatible with, Internet Engineering Task Force (IETF) Request for Comments (RFC) 1928, IETF RFC 1929, IETF RFC 1961, or IETF RFC 3089.

19 . The method according to claim 1 , wherein the communication over the Internet by the mobile device with the first or second server, is based on, uses, or is compatible with, Hypertext Transfer Protocol (HTTP) or HTTP Secure (HTTPS) protocol or connection, wherein the first or second server serves as an HTTP or HTTPS server and the mobile device serves as an HTTP or HTTPS client.

20 . The method according to claim 1 , wherein the communication over the Internet by the mobile device with the first or second server, is based on, uses, or is compatible with, HTTP Proxy protocol or connection, wherein the first or second server serves as an HTTP Proxy server and the mobile device serves as an HTTP Proxy client.

21 . The method according to claim 1 , wherein the message comprises the motion value of a function thereof.

22 . The method according to claim 1 , wherein the sensing further uses a gyroscope, a vibration sensor, or a Global Positioning System (GPS) receiver.

23 . The method according to claim 1 , wherein the motion comprises an acceleration, vibration, or location change, of the mobile device enclosure.

24 . The method according to claim 1 , wherein the sending of the message is in response to the sensed motion being below the threshold level.

25 . The method according to claim 1 , wherein the mobile device is part of, or comprises, a vehicular device, or is mounted in a vehicle.

26 . The method according to claim 1 , further comprising storing, operating, or using, by the mobile device, an operating system.

27 . The method according to claim 26 , wherein the sensing comprises using the operating system.

28 . The method according to claim 26 , wherein the operating system is a mobile operating system.

29 . The method according to claim 1 , wherein the wireless network comprises, or consists of, a Wireless Wide Area Network (WWAN).

30 . The method according to claim 29 , wherein the WWAN is a wireless broadband network.

31 . The method according to claim 30 , wherein the wireless network comprises, or consists of, a WiMAX network, and the WiMAX network is according to, compatible with, or based on, IEEE 802.16-2009.

32 . The method according to claim 1 , wherein the wireless network comprises, or consists of, a cellular telephone network.

33 . The method according to claim 32 , wherein the cellular telephone network is a Third Generation (3G) network that uses a protocol selected from the group consisting of UMTS W-CDMA, UMTS HSPA, UMTS TDD, CDMA2000 1×RTT, CDMA2000 EV-DO, and GSM EDGE-Evolution, or wherein the cellular telephone network uses a protocol selected from the group consisting of a Fourth Generation (4G) network that uses HSPA+, Mobile WiMAX, LTE, LTE-Advanced, MBWA, or is based on IEEE 802.20-2008.

34 . The method according to claim 1 , wherein the wireless network comprises, or consists of, a Wireless Personal Area Network (WPAN).

35 . The method according to claim 34 , wherein the WPAN is compatible with, or based on, Bluetooth Low Energy (BLE), or IEEE 802.15.1-2005 standards, or wherein the WPAN is a wireless control network that is according to, or based on, IEEE 802.15.4-2003 standard.

36 . The method according to claim 1 , wherein the wireless network comprises, or consists of, a Wireless Local Area Network (WLAN).

37 . The method according to claim 36 , wherein the WLAN is according to, compatible with, or is based on, a standard selected from the group consisting of IEEE 802.11-2012, IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11n, and IEEE 802.11ac.

38 . The method according to claim 1 , wherein at least part of steps of claim 1 are included in a Software Development Kit (SDK) that is provided as a non-transitory computer readable medium containing computer instructions, and wherein the method further comprising installing the SDK.

39 . The method according to claim 1 , wherein the mobile device is addressed by multiple IP addresses.

40 . The method according to claim 1 , further comprising operating, by the mobile device, an operating system or a program process or thread, and wherein being in the idle or non-idle state is further determined based on, or according to, activating or executing the process or thread by the operating system or the program.

41 . The method according to claim 40 , wherein the process or thread comprises a low-priority or background task, an idle process, or a screensaver.

42 . The method according to claim 40 , wherein the process or thread comprises using an entire screen for displaying.

43 . The method according to claim 40 , further comprising monitoring or metering, a resource utilization, and wherein being in the idle or non-idle state is further determined based on, or according to, the monitored or metered resource utilization being under a threshold.

44 . The method according to claim 43 , wherein the resource utilization comprises the utilization or a processor in the mobile device.

45 . The method according to claim 40 , wherein the mobile device comprises an input device for obtaining an input from a human user or operator, the method further comprising sensing, using the input device, the input, and wherein being in the idle or non-idle state is further determined based on, or according to, not receiving an input from the input device for an additional pre-set time interval.

46 . The method according to claim 1 , wherein the mobile device is powered by a rechargeable battery, the method further comprising sensing, by the mobile device, a charging level of the rechargeable battery.

47 . The method according to claim 46 , wherein being in the idle or non-idle state is further determined based on, or according to, comparing the sensed charging level to a charging threshold.

48 . The method according to claim 1 , wherein the mobile device comprises a network interface or a network transceiver for communication over a network, the method further comprising metering, an amount of data transmitted to, or received from, the network during a time interval, and wherein being in the idle or non-idle state is further determined based on, or according to, the metered amount of data being under a threshold level.

49 . The method according to claim 1 , wherein the sensing of the motion value comprises periodically or continuously sensing of the motion value.

50 . The method according to claim 49 , wherein the sensing is at least every 10 milliseconds, 20 milliseconds, 30 milliseconds, 50 milliseconds, 100 milliseconds, 1 second, 2 seconds, 3 seconds, 5 seconds, 10 seconds, 20 seconds, 30 seconds, 50 seconds, or 100 seconds, 1 minute, 2 minutes, 3 minutes, 5 minutes, or 10 minutes.

51 . The method according to claim 1 , wherein the content includes, consists of, or comprises, a part or whole of a computer file, audio data, voice data, multimedia data, video data, a computer program, or any combination thereof.

52 . The method according to claim 1 , wherein the content includes, consists of, or comprises, a part of, or a whole of, a web-site page.

53 . The method according to claim 1 , further comprising periodically sending, by the mobile device, a message that comprises the state of the mobile device, or is in response to the state of the mobile device.

54 . The method according to claim 53 , wherein the message comprises, or is based on, an ‘heartbeat’ message, and wherein a time period between multiple messages sent is at least 10 milliseconds, 20 milliseconds, 30 milliseconds, 50 milliseconds, 100 milliseconds, 1 second, 2 seconds, 3 seconds, 5 seconds, 10 seconds, 20 seconds, 30 seconds, 50 seconds, or 100 seconds, 1 minute, 2 minutes, 3 minutes, minutes 5, or 10 minutes.

55 . The method according to claim 1 , further for use with a plurality of servers that includes at least the first and second servers, each of the plurality of servers is connectable to the Internet and is addressable in the Internet using a respective IP address, the method further comprising selecting, by the mobile device, the first server from the plurality of servers.

56 . The method according to claim 55 , wherein the first server is randomly selected from the plurality of servers.

57 . The method according to claim 56 , wherein the first server is randomly selected using one or more random numbers generated by a random number generator.

58 . The method according to claim 57 , wherein the random number generator is hardware based.

59 . The method according to claim 58 , wherein the random number generator is using thermal noise, shot noise, nuclear decaying radiation, photoelectric effect, or quantum phenomena.

60 . The method according to claim 57 , wherein the random number generator is software based.

61 . The method according to claim 60 , wherein the random number generator is based on, or comprises, executing an algorithm for generating pseudo-random numbers.

62 . The method according to claim 55 , wherein each of the plurality of servers is associated with a one of more attribute values relating to an attribute type, and wherein the selecting of the first server from the plurality of servers based on, or according to, the respective one of more attribute values.

63 . The method according to claim 62 , wherein the attribute type is a geographical location, and wherein one of more attribute values comprise a name or an identifier of a continent, a country, a region, a city, a street, a ZIP code, or a timezone.

64 . The method according to claim 63 , wherein the one of more attribute values is based on actual geographical location or on IP geolocation.

65 . The method according to claim 64 , wherein the geolocation is based on W3C Geolocation API.

66 . The method according to claim 1 , for use with a Domain Name System (DNS) server, wherein the content identifier comprises a domain name, the method further comprising performing, by the mobile device using the DNS server, a DNS resolution for obtaining a numerical IP address.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 14, 2024
From: VILENSKI, OFER; SHRIBMAN, DERRY
To: LUMINATI NETWORKS LTD.
Reel/Frame 067399/0110 →
CHANGE OF NAME Recorded May 14, 2024
From: LUMINATI NETWORKS LTD.
To: BRIGHT DATA LTD.
Reel/Frame 067400/0044 →