Victus Spiritus

home

Peer to Peer, Parallel Networking for Your iPhone

14 Jul 2009

Speed

Why Can't We Interact with the Web Faster?

I first mentioned the concept to a coworker a couple of weeks ago. Then thought about it in a little more detail while out for a walk yesterday. Why don't we connect our iPhones (or any mobile phones) leveraging wifi for local communication and 2G/3G for fast parallel packet transmission over the internet.

The concept is simple. Wifi gives a tally of the local network of active P2P network applications, if you're isolated things work as usual. If there's one or more other mobile devices with the application on (nodes) within range things get interesting. An outgoing large signal, is broken up into packets that are distributed by wifi over the local network and then shuffled off by 2G/3G over the internet. Large data transmissions are quickly broken up into pieces and fired off reducing bottlenecking and expediting both incoming and outgoing messages. In a similar manner downloads are sent over the 2G/3G networks to active nodes in your local, and finally passed via wifi to your device.

The Devil is in the Details, Quick Background Info

Routing

In packet switching networks, routing directs packet forwarding, the transit of logically addressed packets from their source toward their ultimate destination through intermediate nodes; typically hardware devices called routersbridgesgatewaysfirewalls, or switches. General-purpose computers with multiplenetwork cards can also forward packets and perform routing, though they are not specialized hardware and may suffer from limited performance. The routing process usually directs forwarding on the basis of routing tables which maintain a record of the routes to various network destinations. Thus, constructing routing tables, which are held in the routers' memory, is very important for efficient routing. Most routing algorithms use only one network path at a time, but multipath routing techniques enable the use of multiple alternative paths.

BitTorrent

First, a user playing the role of file provider makes a file (or group of files) available to the network. This first user's file is called a seed and its availability on the network allows other users, called peers, to connect and begin to download the seed file. As new peers connect to the network and request the same file, their computer receives a different piece of the data from the seed. Once multiple peers have multiple pieces of the seed, BitTorrent allows each to become a source for that portion of the file. The effect of this is to take on a small part of the task and relieve the initial user, distributing the file download task among the seed and many peers. With BitTorrent, no one computer needs to supply data in quantities which could jeopardize the task by overwhelming all resources, yet the same final result—each peer eventually receiving the entire file—is still reached.

After the file is successfully and completely downloaded by a given peer, the peer is able to shift roles and become an additional seed, helping the remaining peers to receive the entire file. The community of BitTorrent users frowns upon the practice of disconnecting from the network immediately upon success of a file download, and encourages remaining as another seed for as long as practical, which may be days.

HTTP or Hypertext Transfer Protocol

HTTP is a request/response standard of a client and a server. A client is the end-user, the server is the web site. The client making a HTTP request—using a web browserspider, or other end-user tool—is referred to as the user agent. The responding server—which stores or creates resources such as HTML files and images—is called the origin server. In between the user agent and origin server may be several intermediaries, such as proxiesgateways, and tunnels. HTTP is not constrained to using TCP/IP and its supporting layers, although this is its most popular application on the Internet. Indeed HTTP can be "implemented on top of any other protocol on the Internet, or on other networks." HTTP only presumes a reliable transport; any protocol that provides such guarantees can be used."[3]

If anyone is working on something similar please give me a shout, I'd like to assist as I don't think I'll be able to primarily work on this for some time. Any thoughts on the concept, please don't hesitate to comment.