Saturday, September 12, 2009

It'd be faster by carrier pigeon....

There's an old saw in the networking industry that goes something like, "never underestimate the bandwidth of a VW Microbus loaded with magtape doing 60 down the highway." Apparently an IT firm in South Africa was frustrated with DSL speeds (if my calculations are correct, they're getting about 177kbps - which /is/ pretty pokey, even by Qwest standards - see my livejournal entry of Feb. 22, 2005). Apparently someone in the organization was heard to say "it'd be faster if we sent it by carrier pigeon." Thus, a publicity stunt was born.. Now, doing the math, and using decimal approximations for the binary numbers (because it's easier), we can work out the bandwidth of that carrier pigeon. With a four-gig packet (since the pigeon handles all routing and addressing information itself), we get a bandwidth over the 60 miles traveled of about 444kbps. Pigeon for the win. No information was given on whether the two hours included the time to put the data on the flash stick and to get it off. Let's assume it did.

However, let's push this a bit further. We can increase the packet size dramatically without increasing time to travel. Ain't physical media great? Let's take it to 128gB, which are the largest flash sticks I've seen. Let's assume we're using cheap sticks, too, and are only getting 120mb/sec transfer rates on and off the stick. So. Load the stick with 128gB of data. Load time, about 2.5 hours. Transit time, 2 hours, same as in the test. Pigeon returns with an empty stick or no stick, thus ACKing transmission of the packet in another two hours. Meantime, the packet is unloaded from the flash stick, taking another 2.5 hours. Total time for the packet: 7 hours. Total bandwidth, about 4.06mb/s. With 6.5 hour latencies (remember, the pigeon headed back while the stick was being unloaded). If you're not in a hurry but have large amounts of data to move, the bandwidth becomes the most significant number. Not so different from using a satellite. Assuming your satellite is orbiting Pluto. (about 5 light-hours away).

So given that we've established a packet header system that handles routing and addressing and is also the transport layer (the pigeon), and a quite-large packet size (128gB) and an ACK system (the pigeon again) we need only add a sequence number. Let's stick an RFID chip in the pigeon. They're light, and if we put one in that's reprogrammable we can change the number for each flight. Sending a packet would then amount to: set the sequence number on the pigeon. Load the flash key. Strap the flash key to the pigeon's leg. Send the pigeon on its way. On the receiving end, catch the pigeon. Read the sequence number from its RFID. Unload the flash key. We now have all the pieces we need to run IP, and thus TCP over this new hardware layer. I propose we should call this new hardware protocol CPPTP - Carrier Pigeon Point to Point protocol.

If I ever write Steampunk again, you may expect to see CPPTP /somewhere/. :)


*edited - I forgot to factor the load time in on the latency calculation*


Anonymous said...

Pigeons are _ONE WAY_ transport -- they are not called "homing pigeons" for nothing. They fly home when released at a distance. The return leg of "Pigeon Transport Protocol" would require physically transporting the pigeon away from "home". ;-)

Sam'l Bassett

JRS said...

Hmm. In the 90s, as I recall, some bright spark realized that most of the data for home users is downlinked rather than uplinked. This led to a host of somewhat bizarre arrangements using technologies like satellite downlinks and phone modems for uplinks. So perhaps we can use a similar approach, and fed-ex the pigeons back to their starting locations, and call it Asymmetric CPPTP. :)


Blog Archive