System and Method for Improving Content Fetching by Selecting Tunnel Devices
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.
1 . A method by a client device that comprises an input component that is configured for obtaining an input from a human user, the client device is configured to be in idle and non-idle states, is addressable in the Internet by a first IP address, and is connectable to the Internet via a wireless network, the method comprising:
initiating, by the client device via the wireless network, communication over the Internet with an Internet-connected first server that is addressable in the Internet by a second Internet Protocol (IP) address;
sensing, by the client device using the input component, an input from a human user;
sending, by the client device via the wireless network to the first server over the Internet, a message in response to the sensed input;
determining, by the client device, whether an input from a human user is sensed by the input component during a pre-determined time interval;
responsive to determining that no human input is sensed during the pre-determined time interval, shifting to, or staying in, the idle state;
responsive to determining that a human input is sensed during the pre-determined time interval, shifting to, or staying in, the non-idle state;
receiving, by the client device in the idle state via the wireless network from the first server over the Internet, a request associated with a content; and
sending, by the client device via the wireless network to the first server over the Internet, the content, in response to the sending of the request,
wherein the input device comprises a touchscreen, a microphone, a pointing device, a keyboard, or any combination thereof.
2 . The method according to claim 1 , wherein the content is identified by a content identifier and is stored in a web server, and wherein the content comprises a web-page or a part thereof, or a web-site or a part thereof.
3 . The method according to claim 2 , wherein the content identifier comprises an Uniform Resource Identifier (URI) or a Uniform Resource Locator (URL).
4 . The method according to claim 2 , wherein the content identifier comprises a domain name.
5 . The method according to claim 4 , further comprising obtaining a numerical IP address of the content identifier.
6 . The method according to claim 5 , wherein the obtaining of the numerical IP address comprises performing, by the client device using a Domain Name System (DNS) server, a DNS resolution.
7 . The method according to claim 2 , wherein the request comprises the content identifier.
8 . The method according to claim 2 , further comprising sending, by the client device to the web server over the Internet, the content identifier in response to the receiving of the request.
9 . The method according to claim 2 , further comprising receiving, by the client device from the web server over the Internet, the content in response to the sending of the content identifier.
10 . The method according to claim 1 , further comprising establishing, by the client device with the first server over the Internet, a connection, in response to the initiating of the communication.
11 . The method according to claim 10 , wherein the connection uses, or is based on, a Transmission Control Protocol (TCP) connection.
12 . The method according to claim 11 , wherein the connection uses, or is based on, Transmission Control Protocol over Internet Protocol (TCP/IP) protocol or connection.
13 . The method according to claim 10 , wherein the connection uses, or is based on, an ‘Active OPEN’, ‘Passive OPEN’, or TCP keepalive mechanism.
14 . The method according to claim 10 , wherein the connection uses, or is based on, a Virtual Private Network (VPN).
15 . The method according to claim 1 , wherein the initiating uses, or is based on, a Network Address Translator (NAT) traversal scheme.
16 . The method according to claim 15 , 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.
17 . The method according to claim 15 , 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).
18 . The method wherein The according to claim 1 , the communication over the Internet by the client device with the first, is based on, or is compatible with, Socket Secure (SOCKS) protocol or connection.
19 . The method according to claim 18 , wherein the SOCKS protocol or connection is according to, based on, or is compatible with, SOCKS4, SOCKS4a, or SOCKS5.
20 . The method according to claim 18 , wherein the SOCKS protocol or connection is according to, based on, or is compatible with, IETF RFC 1928, IETF RFC 1929, IETF RFC 1961, or IETF RFC 3089.
21 . The method according to claim 1 , wherein the communication over the Internet by the client device with the first server, is based on, or is compatible with, HTTP Proxy protocol or connection, wherein the first or second server serves as an HTTP Proxy server and the client device serves as an HTTP Proxy client.
22 . The method according to claim 1 , wherein the message comprises a value that is responsive to the sensed input.
23 . The method according to claim 1 , further comprising executing or using, by the client device, an operating system, and wherein the sensing comprises using the operating system.
24 . The method according to claim 1 , for use with a threshold level, the method further comprising comparing the sensed input to the threshold level, and wherein the sending of the message is in response to the comparing.
25 . The method according to claim 24 , wherein the sending of the message is in response to the sensed input being below or above the threshold level.
26 . The method according to claim 1 , wherein the client device is part of, or comprises, a vehicular device, or is amounted in a vehicle.
27 . The method according to claim 1 , wherein the client device is a mobile device that is housed in a single enclosure that is a hand-held enclosure or a portable enclosure.
28 . The method according to claim 27 , wherein the mobile device comprises, is part of, or is integrated with, at least one of a notebook-computer, a laptop computer, a media player, a Digital Still Camera (DSC), a Digital video Camera (DVC or digital camcorder), a Personal Digital Assistant (PDA), a cellular telephone, a digital camera, or a video recorder.
29 . The method according to claim 27 , wherein the mobile device comprises, is part of, or is integrated with, a smartphone.
30 . The method according to claim 1 , further comprising storing, operating, or using, by the client device, an operating system.
31 . The method according to claim 30 , wherein the operating system is a mobile operating system.
32 . The method according to claim 1 , wherein the sensing of the input comprises continuously sensing of the input.
33 . The method according to claim 1 , wherein the sensing of the input comprises periodically sensing of the input.
34 . The method according to claim 33 , wherein the time interval between two consecutive sensing actions is at least every 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.
35 . The method according to claim 1 , wherein the wireless network comprises a Wireless Wide Area Network (WWAN).
36 . The method according to claim 35 , wherein the WWAN is a wireless broadband network.
37 . The method according to claim 36 , wherein the wireless network comprises a WiMAX network, and the WiMAX network is according to, or based on, IEEE 802.16-2009.
38 . The method according to claim 1 , wherein the wireless network comprises a cellular telephone network.
39 . The method according to claim 38 , 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.
40 . The method according to claim 1 , wherein the wireless network comprises a Wireless Personal Area Network (WPAN).
41 . The method according to claim 40 , wherein the WPAN is according to, compatible with, or based on, Bluetooth Low Energy (BLE) or IEEE 802.15.1-2005 standard, or wherein the WPAN is a wireless control network that is according to, or based on, IEEE 802.15.4-2003 standard.
42 . The method according to claim 1 , wherein the wireless network comprises a Wireless Local Area Network (WLAN).
43 . The method according to claim 42 , wherein the WLAN is according to, compatible with, or is based on, IEEE 802.11-2012, IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11n, and IEEE 802.11ac standard.
44 . The method according to claim 1 , wherein at least part of steps is provided as a non-transitory computer readable medium that contains computer instructions.
45 . The method according to claim 1 , wherein at least part of steps are included in a Software Development Kit (SDK).
46 . The method according to claim 45 , further comprising installing the SDK in the client device.
47 . The method according to claim 1 , further comprising storing, operating, or using, by the client device, a web browser.
48 . The method according to claim 47 , wherein the web browser comprises a mobile web browser.
49 . The method according to claim 47 , wherein the receiving of the request comprises receiving using the web browser.
50 . The method according to claim 1 , further comprising sending, by the client device to the first server over the Internet, an additional message that is responsive to the client device state.
51 . The method according to claim 50 , wherein the sending of the additional message is responsive to shifting to the idle state.
52 . The method according to claim 50 , wherein the sending of the additional message is responsive to being in the idle state.
53 . The method according to claim 50 , wherein the sending of the additional message is responsive to shifting to the non-idle state.
54 . The method according to claim 50 , wherein the sending of the additional message is responsive to being in the non-idle state.
55 . The method according to claim 1 , wherein the content comprises a part of, or whole of, a computer file, audio data, voice data, multimedia data, video data, a computer program, or any combination thereof.
56 . The method according to claim 1 , wherein the message comprises, or is based on, an ‘heartbeat’ message, and wherein a time period between two sent messages 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.
57 . The method according to claim 1 , further for use with a plurality of servers that includes the first server, 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 client device, the first server from the plurality of servers.
58 . The method according to claim 1 , wherein the client device is further storing, operating, or using, a client operating system.
59 . The method according to claim 1 , wherein the communication over the Internet by the client device with the first server, is based on, or is compatible with, HTTP or HTTPS protocol or connection.
60 . The method according to claim 1 , wherein the client device is a wearable device that is wearable on a person.
61 . The method according to claim 60 , wherein the client device is a wearable device that is constructed to have a form substantially similar to, is constructed to have a shape allowing mounting or wearing identical or similar to, or is constructed to have a form to at least in part substitute for, headwear, eyewear, or earpiece.
62 . The method according to claim 61 , wherein the headwear is structured as, or comprises, a bonnet, a cap, a crown, a fillet, a hair cover, a hat, a helmet, a hood, a mask, a turban, a veil, or a wig.
63 . The method according to claim 61 , wherein the eyewear is structured as, or comprises, glasses, sunglasses, a contact lens, a blindfold, or a goggle.
64 . The method according to claim 61 , wherein the earpiece is structured as, or comprises, a hearing aid, a headphone, a headset, or an earplug.
65 . The method according to claim 60 , wherein the client device is a wearable device that is shaped for permanently or releseably being attachable to, or be part of, a clothing piece of a person.
66 . The method according to claim 65 , wherein the attaching uses taping, gluing, pinning, enclosing, encapsulating, a pin, or a latch and hook clip.
67 . The method according to claim 66 , wherein the clothing piece is a top, bottom, or full-body underwear, or a headwear, a footwear, an accessory, an outwear, a suit, a dress, a skirt, or a top.
68 . The method according to claim 1 , wherein the client device is a wearable device that comprises an annular member defining an aperture therethrough that is sized for receipt therein of a part of a human body.
69 . The method according to claim 1 , wherein the client device is part of, integrated with, or comprises, a household appliance.
70 . The method according to claim 69 , wherein a primary functionality of the appliance is food storage, handling, or preparation.
71 . The method according to claim 70 , wherein a primary function of the appliance is heating food, and wherein the appliance is a microwave oven, an electric mixer, a stove, an oven, or an induction cooker.
72 . The method according to claim 70 , wherein the appliance is a refrigerator, a freezer, a food processor, a dishwasher, a food blender, a beverage maker, a coffeemaker, or an iced-tea maker.
73 . The method according to claim 69 , wherein a primary function of the appliance is environmental control, and the appliance consists of, or is part of, an HVAC method.
74 . The method according to claim 73 , wherein a primary function of the appliance is temperature control, and wherein the appliance is an air conditioner or a heater.
75 . The method according to claim 69 , wherein a primary function of the appliance with cleaning, wherein the primary function is associated with clothes cleaning, and the appliance is a washing machine or a clothes dryer, or wherein the appliance is a vacuum cleaner.
76 . The method according to claim 69 , wherein a primary function of the appliance is associated with water control or water heating.
77 . The method according to claim 69 , wherein the appliance is an answering machine, a telephone set, a home cinema method, a HiFi method, a CD or DVD player, an electric furnace, a trash compactor, a smoke detector, a light fixture, or a dehumidifier.
78 . The method according to claim 69 , wherein the appliance is a battery-operated portable electronic device, and the appliance is a notebook, a laptop computer, a media player, a cellular phone, a Personal Digital Assistant (PDA), an image processing device, a digital camera, a video recorder, or a handheld computing device.
79 . The method according to claim 1 , wherein the request is according to, or uses, HyperText Transfer Protocol (HTTP) or HTTP Secure (HTTPS) request.