October 29th, 2009 at 02:41pm
It’s not the first time that this sort of test has been done, and it probably won’t be the last either, but it’s time to knock the stupid theory on the head once and for all.
ABC TV’s Hungry Beast program have found that a carrier pigeon is able to transport a 700MB file between two rural towns, more quickly than a car or the Internet. Apparently this makes pigeons faster than the Internet, supposedly dispelling Kevin Rudd’s theory that we would be worse off under a Liberal government which he seems to think would replace the Internet with carrier pigeons.
In terms of raw throughput, they may be right. The pigeon took one hour and five minutes, which is an average speed of 179.5 kilobytes per seconds. The car took a bit longer…and here’s where the test falls down on throughput…the Internet connection dropped out a number of times and didn’t finish the download, which says more about the phone line used for the Internet connection than anything else.
As it happens, the test is very wrong on throughput, at least in areas with ADSL 2+. On my home connection, I can regularly get downloads of a bit over 2 megabytes per second (2,000 kilobytes per second), which is more than ten times the speed of a pigeon.
That said, the pigeon test can be debunked even further, as the test only takes in to account raw throughput of large files, and completely ignores the way that the Internet actually works.
Take what happens when you visit the home page of this blog for example. Firstly, your web browser sends a request to the server for the page, then the server sends the raw HTML code of the page back to your browser. Your browser reads this, and generates a new request for the css stylesheets as well as every single unique image on the page (16 at the time of writing) as well as all of the embedded content such as YouTube videos of which there are a few, and the servers responsible for these images and embedded content send the requested data back to your browser. If you then go and watch one of the YouTube videos, the browser has to request that, and YouTube’s servers send the data back to your browser.
On the Internet, this doesn’t take very long. Requests go back and forth in moments, and it’s the larger bits of data (images, videos etc) which take time to download due to bandwidth restrictions.
You try doing that with a set of carrier pigeons. This site is hosted on a server in Melbourne, and I’m in Canberra, so your calculations will vary depending on your location, but let’s assume that the news report is accurate and that pigeons fly at about 130km/h (which sounds dubious to me, but we’ll run with it). Melbourne is about 650km away if you go in a straight line, so it would take a pigeon five hours to travel that distance.
Imagine that. You request my website at 7am on Monday, the pigeon arrives in Melbourne at midday, and returns with the HTML code of the website at 5pm. Your browser then requests the css stylesheet and, say, nine images, because you only have ten pigeons at your disposal…they are a finite resource after all. The pigeons arrive in Melbourne at 10pm, and get the data back to you at 3am Tuesday. You now have the stylesheet, so the formatting looks about right, and you have some of the images, although some of the formatting images are linked from the stylesheet so the site is still a bit odd in many places. Your browser requests the rest of the images and the embedded YouTube players, the pigeons get to Melbourne at 8am, and bring the data back to you at 1pm.
So, the total time required to load just the front page of this website via courier pigeon is 30 hours. This would not get any faster if you had more pigeons either, as you wouldn’t have known about the formatting images until you got the stylesheets back.
Thanks to browser caching of formatting images and stylesheets, you might be able to reduce the loading time of subsequent pages on this website to twenty hours, but that doesn’t really make the site any more useful to you.
And just think…if it takes that long to load a domestic webpage, how long would it take to load a website from overseas? It’s about 15,000 kilometres to the US, which is roughly 23 times the distance from Canberra to Melbourne, so if we multiply the domestic loading time of 30 hours by 23…ye gods! It would take 690 hours (28 days and 18 hours) to load the front page of this website. Yes, that’s right, a month to load one page.
And none of this even takes in to account the extra hours required for DNS lookups before you can even send a request to the appropriate server.
All I can say is thank God the ABC and their pigeons don’t run the Internet!