Thursday 20 August 2009

Shower

Having a shower is a relaxing moment of the day. Some people sing, others just imagine, but whatever you do, the mind is surely free to think about anything and fly (freely) over a lot of disparate topics, often non-related between each other.

I don't know how, but when I was showering, today, I happened to think about an awesome quotation from Tanenbaum (besides, a Physics doctorate and one of the man that "triggered" Linus Torvalds to write his famous UNIX operative system):

Never underestimate the bandwidth of a station wagon full of tapes hurtling down the highway.

What's so interesting about this expression?
Even if it has been used in 1981 on a different context, its irony could still be up to date, since Sneakernet is a still very common practice and couldn't (still) be easily substituted by virtual data transfers (p2p, ftp...).
I've heard new versions of this quote with "hard disks" instead of "tapes", indeed.

The next step on my train of thoughts - during the shampoo - was the realization that I can calculate the actual bandwidth, a kind of average in kb/s, of a car bringing an hard disk.
How? Dimension analysis, obviously!

The dimensions of velocity are: [Length] / [Time] , so to obtain the dimensions of bandwidth [Data] / [Time] it is just necessary to multiply by the data carried and divide by the distance covered.
The result is a formula for the bandwidth depending on velocity of the car v, the distance travelled l, and the data carried d.
${b = \frac{v \cdot d}{l}}$
(if you see incomprehensible signs enveloped by dollar signs, Latex script is not working properly)

If we pick a car travelling a distance of 1000 km at 130 km/h carrying a Terabyte:

${b = \frac{130}{1000}\,TB/h \sim 133\,GB/h \sim 38\,MB/s}$

Quite satisfying.

This is useful (maybe not) but it's not finished.
If you can calculate the bandwidth of a bunch of data travelling in a car, why don't we calculate the velocity of a bunch of data travelling through the wires knowing the bandwidth?
In this case data should be considered like a solid packet, and d is the distance between the host and the server. After some easy math:

${v = \frac{b \cdot l}{d}}$

Wow, you're still reading... crazy. Anyway, that's not all, not yet:
if you pick a value for d (data) smaller than b (bandwidth), it almost doesn't make any sense and the result could be a velocity higher than the speed of light, indeed.
Since the speed of light is an upper limit:

${v = \frac{b \cdot l}{d} \leq c}$

and so:

${b \leq \frac{d \cdot c}{l}}$

that is the absolute upper limit in bandwidth.
If we put numbers, the result still doesn't make any sense.
For example, since the net works in small packets, for a 64 byte packet from a server 7000 km far, the upper limit speed is about 2.7 kb/s.
This result could be useful if we make a small modification to find the time required to transfer that packet at c (dimension analysis again):

${t = \frac{d}{b} = \frac{64\,byte}{2.7\,kb/s} \sim 0.02\,s}$

That is 20 milliseconds: the lowest time physically possible needed to receive something from a distance of 7000 km.
Real timings are about 150ms for good servers, to send and receive, so about 75ms one way, that is in the limits...

Now I ended the shower and then also this small trip around physics and the internet. The result of this brainstorming thoughts? I really don't know, but I still like it.

100 points for the first who analyse relativistic effects on the packets and find how much kilobytes the file loses travelling at that speeds.

3 comments: