System and Method for Improving Internet Communication by Using Intermediate Nodes
A method for fetching a content from a web server to a client device is disclosed, using tunnel devices serving as intermediate devices. The client device accesses an acceleration server to receive a list of available tunnel devices. The requested content is partitioned into slices, and the client device sends a request for the slices to the available tunnel devices. The tunnel devices in turn fetch the slices from the data server, and send the slices to the client device, where the content is reconstructed from the received slices. A client device may also serve as a tunnel device, serving as an intermediate device to other client devices. Similarly, a tunnel device may also serve as a client device for fetching content from a data server. The selection of tunnel devices to be used by a client device may be in the acceleration server, in the client device, or in both. The partition into slices may be overlapping or non-overlapping, and the same slice (or the whole content) may be fetched via multiple tunnel devices.
1 . A device, comprising:
a sensor for sensing a physical phenomenon;
a Local Area Network (LAN) connector for connecting to a LAN;
one or more processors; and
a memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for:
producing, by the sensor, sensor data in response to the sensed physical phenomenon;
sending, by the LAN connector via the LAN over the Internet, the sensor data;
receiving, by the LAN connector via the LAN over the Internet, a first Uniform Resource Locator (URL) that identifies a first content in a first web server;
sending, by the LAN connector via the LAN over the Internet, to the first web server, the received first URL;
receiving, by the LAN connector via the LAN over the Internet, from the first web server, the first content, in response to the sending of the first URL;
sending, by the LAN connector via the LAN over the Internet, the received first content;
receiving, by the LAN connector via the LAN over the Internet, a second URL that identifies a second content in a second web server;
sending, by the LAN connector via the LAN over the Internet, to the second web server, the received second URL;
receiving, by the LAN connector via the LAN over the Internet, from the second web server, the second content, in response to the sending of the second URL; and
sending, by the LAN connector via the LAN over the Internet, the received second content,
wherein the first content comprises, a part of, or a whole of, of a first web-page, and
wherein the second content comprises, a part of, or a whole of, of a second web-page.
2 . The device according to claim 1 , wherein the sending of the sensor data is in response to the sensor data.
3 . The device according to claim 1 , wherein the one or more programs further including instructions for timestamping of the sent sensor data.
4 . The device according to claim 3 , wherein the timestamping is according to, or based on, ISO 8601 standard or IETF RFC 3339.
5 . The device according to claim 1 , wherein the LAN is according to, is based on, or is compliant with, an Institute of Electrical and Electronics Engineers (IEEE) 802.3, IEEE 802.3ae-2002as, or IEEE P802.3ba standard.
6 . The device according to claim 5 , wherein the LAN is connected to according to, is based on, or in compliant with, 10/100BaseT, 1000BaseT (gigabit Ethernet), 10 gigabit Ethernet (10GE or 10 GbE or 10 GigE), 40 Gigabit Ethernet (40 GbE), or 100 Gigabit Ethernet (100 GbE).
7 . The device according to claim 1 , wherein the one or more programs further including instructions for sending, by the LAN connector via the LAN over the Internet, a physical geographical location.
8 . The device according to claim 7 , wherein the physical geographical location corresponds to an actual physical geographical location of the device.
9 . The device according to claim 7 , wherein the physical geographical location includes a country, a state or province, a city, a ZIP code, or longitude/latitude.
10 . The device according to claim 1 , wherein the sending of the first or second URL to the respective web server comprises sending a HyperText Transfer Protocol (HTTP) request that comprises the first or second URL.
11 . The device according to claim 10 , wherein the HTTP request comprises a HyperText Transfer Protocol Secure (HTTPS) request.
12 . The device according to claim 1 , wherein the receiving of the first or second URL comprises receiving from a first server.
13 . The device according to claim 12 , wherein the sending of the first or second content comprises sending to the first server.
14 . The device according to claim 12 , wherein the one or more programs further including instructions for establishing a connection with the first server, and wherein any communication with the first server is over the established connection.
15 . The device according to claim 12 , wherein any communicating with the first server uses TCP, and wherein the connection is established by performing ‘Active OPEN’ or ‘Passive OPEN’.
16 . The device according to claim 1 , wherein the first or second content includes, consists of, or comprises, a computer file, audio data, voice data, multimedia data, video data, a computer program, or any combination thereof.
17 . The device according to claim 1 , wherein the one or more programs further including instructions for storing, operating, or using, a client operating system.
18 . The device according to claim 17 , wherein the client operating system consists of, comprises, or is based on, Microsoft Windows 7, Microsoft Windows XP, Microsoft Windows 8, Microsoft Windows 8.1, Linux, or Google Chrome OS.
19 . The device according to claim 17 , wherein the client operating system consists of, comprise, or is based on, Android version 2.2 (Froyo), Android version 2.3 (Gingerbread), Android version 4.0 (Ice Cream Sandwich), Android Version 4.2 (Jelly Bean), Android version 4.4 (KitKat), Apple iOS version 3, Apple iOS version 4, Apple iOS version 5, Apple iOS version 6, Apple iOS version 7, Microsoft Windows® Phone version 7, Microsoft Windows® Phone version 8, Microsoft Windows® Phone version 9, or Blackberry® operating system.
20 . The device according to claim 1 , wherein the one or more programs further including instructions for executing an application.
21 . The device according to claim 20 , wherein the application comprises a web browser.
22 . The device according to claim 21 , wherein the web browser consists of, comprises of, or based on, Microsoft Internet Explorer, Google Chrome, Opera™, or Mozilla Firefox®.
23 . The device according to claim 1 , wherein the one or more programs further including instructions for periodically sending, over the Internet, a message that is indicative of a status of the device.
24 . The device according to claim 23 , wherein the message comprises, or is based on, an ‘heartbeat’ message.
25 . The device according to claim 23 , wherein a time period between two or more sent messages is at least 10 milliseconds, 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.
26 . The device according to claim 1 , for use with a resource associated with a criterion, wherein the device is associated with first and second states according to a utilization of the resource.
27 . The device according to claim 26 , wherein the one or more programs further including instructions for, periodically or continuously determining, whether the resource utilization satisfies the criterion.
28 . The device according to claim 27 , wherein the one or more programs further including instructions for, responsive to the determining that the utilization of the resource satisfies the criterion, shifting, to the first state or staying in the first state; and responsive to the determining that the utilization of the resource does not satisfy the criterion, shifting, to the second state or staying in the second state.
29 . The device according to claim 27 , wherein the one or more programs further including instructions for performing a task upon receiving a request, when in the first state.
30 . The device according to claim 27 , wherein the one or more programs further including instructions for periodically or continuously sending, the resource utilization.
31 . The device according to claim 27 , for use with a set threshold value, and wherein the criterion is satisfied when the resource utilization is above a threshold.
32 . The device according to claim 26 , wherein the resource comprises, or consists of, a hardware component in a client device.
33 . The device according to claim 32 , wherein the hardware component comprises, or consists of, a processor or Central Processing Unit (CPU) operation in the device.
34 . The device according to claim 33 , wherein the resource utilization is based on, or comprises, the processor or CPU time of executing one or more threads or processes, wherein the resource utilization is based on, or comprises, the processor or CPU idling time, or wherein the resource utilization is based on, or comprises, the processor or CPU executing a system idle process.
35 . The device according to claim 32 , wherein the hardware component comprises, or consists of, a memory in the client device, and wherein the resource utilization is based on, or comprises, an amount of used or unused location or space of the memory.
36 . The device according to claim 32 , wherein the resource comprises, or consists of, input or output capability.
37 . The device according to claim 36 , wherein the resource comprises, or consists of, communication bandwidth of communication with another device over the Internet.
38 . The device according to claim 37 , wherein the resource comprises, or consists of, communication bandwidth of communication with another device over the Internet, or wherein the resource utilization is based on, or according to, IETF RFC 2914.
39 . The device according to claim 1 , wherein the one or more programs further including instructions for:
receiving, by the LAN connector via the LAN over the Internet, a third Uniform Resource Locator (URL) that identifies a third content in a third web server;
sending, by the LAN connector via the LAN over the Internet, to the third web server, the received third URL;
receiving, by the LAN connector via the LAN over the Internet, from the third web server, the third content, in response to the sending of the third URL; and
sending, by the LAN connector via the LAN over the Internet, the received third content.
40 . The device according to claim 1 , wherein the one or more programs further including instructions for:
receiving, by the LAN connector via the LAN over the Internet, a third Uniform Resource Locator (URL) that identifies a third content in the first web server;
sending, by the LAN connector via the LAN over the Internet, to the first web server, the received third URL;
receiving, by the LAN connector via the LAN over the Internet, from the first web server, the third content, in response to the sending of the third URL; and
sending, by the LAN connector via the LAN over the Internet, the received third content.
41 . The device according to claim 1 , further comprising a video monitor or a video interface connectable to a video monitor, wherein the one or more programs further including instructions for displaying video to a human user.
42 . The device according to claim 41 , wherein the video monitor is based on, uses, or comprises, a Cathode Ray Tube (CRT), a Liquid Crystal Display (LCD), a flat screen monitor, or a touch screen monitor.
43 . The device according to claim 1 , further comprising digital camera, wherein the sensor comprises an image sensor, and wherein the sensor data comprises an image.
44 . The device according to claim 43 , wherein the digital camera comprises a web camera or a Digital Still Camera (DSC).
45 . The device according to claim 43 , wherein the digital camera comprises a video camera or a Digital video Camera (DVC) for generating video data.
46 . The device according to claim 43 , further comprising an image processor, wherein the one or more programs further including instructions for compressing the respective sensor data or video data.
47 . The device according to claim 46 , wherein the compressing comprises lossy data compressing.
48 . The device according to claim 47 , wherein the lossy data compressing is according to, or based on, JPEG or MPEG standard.
49 . The device according to claim 46 , wherein the compressing comprises lossless data compressing.
50 . The device according to claim 49 , wherein the lossless data compressing is according to, or based on, Lempel-Ziv (LZ), PKZIP, Gzip, Lempel-Ziv-Welch (LZW), GIF, or IETF RFC 1951 standard.
51 . The device according to claim 43 , wherein the image according to, or based on, Joint Photographic Experts Group (JPEG) or Moving Picture Experts Group (MPEG) scheme or standard.
52 . The device according to claim 43 , further comprising a storage, wherein the one or more programs further including instructions for storing a video data in the storage.
53 . The device according to claim 1 , further comprises, or being part of, a video game console.
54 . The device according to claim 1 , further comprises, or being part of, a household appliance.
55 . The device according to claim 54 , wherein the appliance comprises, consists of, or includes, a major appliance that is an air conditioner, a dishwasher, a clothes dryer, a drying cabinet, a kitchen stove, a water heater, a washing machine, a trash compactor, a microwave oven, or an induction cooker.
56 . The device according to claim 54 , wherein the appliance comprises, consists of, or includes, a major appliance that is a freezer or a refrigerator.
57 . The device according to claim 54 , wherein the appliance comprises, consists of, or includes, a small appliance that is a television (TV) set.
58 . The device according to claim 54 , wherein the appliance comprises, consists of, or includes, a small appliance that is a CD or DVD player, a clock, an alarm clock, a HiFi or home cinema, a telephone, or an answering machine.
59 . The device according to claim 54 , wherein the sensor comprises a light sensor for sensing a light intensity.
60 . The device according to claim 54 , wherein the sensor comprises an accelerometer for sensing movement or orientation.
61 . The device according to claim 54 , wherein the sensor comprises a Global Positioning System (GPS) for sensing movement.