Interactive bandwidth

Kragen Javier Sitaker, 2017-08-03 (2 minutes)

The internet connection here is broken. I just used Android tethering to log in, read my mail, check a couple of chat channels, and answer some chat messages, for about ten minutes. At the end, ssh reported:

Transferred: sent 23048, received 60304 bytes, in 618.1 seconds
Bytes per second: sent 37.3, received 97.6

That is, on average over those 10 minutes, I was typing and otherwise sending data at “373 baud” and reading at “976 baud”. The incoming number was, I think, reduced by about a factor of 2 by gzip compression.

This 500-bit-per-second range is interesting, because it’s a fairly easy bandwidth to achieve under many circumstances. I think you should be able to do better than this with subliminal audio coding layered on top of a voice channel, for example, and even simple binary FSK coding at audio frequencies can achieve it pretty easily. It’s about a factor of 20 less bandwidth than the “2G” GSM GPRS data connection I often used to read my email in 2001.

At times, today’s connection was hard to use because of unpredictable, high latency. But high latency is not inherent to the low-bandwidth domain — indeed, often you can trade bandwidth off against latency, for example with data compression or more aggressive error-correction coding, but also in a more general way by having a wider choice of acceptable communication media.

Topics