To understand why the Internet has serious design issues you have to step right, way way way back to the beginning of networking to see how things have taken a wrong turn. We have made a huge category error in how we think about packet networks that pervades our language, invades our metaphors, and limits our understanding. By escaping this category error we can solve a lot of the problems that plague packet networking, the telecoms industry, and all who depend upon it.
Networking is alchemy, not chemistry
It is rightly fashionable at present to celebrate the centenary of the birth of Alan Turing. Along with Church and von Neumann he put in place the foundations for computation as a formal discipline. A Turing machine is a conceptual universal computer, and is quite easy to grasp: a piece of ticker tape with symbols being processed. We have confidence in the behaviour and failure modes of computers because we have a basic theory of why they work, and why they halt.
Strangely, networking lacks such formal foundations – thus far. One of the reasons is that we haven’t got a ‘universal network’ model is that the problem domain is temporalrather than spatial. Humans have a lot of difficulty reasoning in the time domain. We don’t see comparable multiplexed systems of flows in everyday life.
We apply the intuition and language from other domains – principally spatial ones – unconsciously using terms like ‘bandwidth’ to describe packet networks when they really only apply to single links. Indeed, in this case ‘bandwidth’ describes a very precise average quantity of data moved over a usually indeterminate and unspecified time period. Again, the temporal trouble shows itself.
We talk of ‘pipes’ and ‘flow’ – even though there’s no back-pressure and no packet ever did any flowing, just copying. Even the work ‘packet’ comes laden with expectations from packages. In the physical world, losing a package in the mail is bad, whereas for information transmission losing a packet early can be a good thing if it prevents a greater loss of value elsewhere.
These metaphorical mistakes are problematic, because they have led us to make an enormous, horrendous, monstrous category error in how we describe packet networks.
The clue is in the name: packet networks don’t do ‘work’.
Some machines do ‘work’, just not packet networks
The mental category we have unconsciously put packet networks into is ‘machines that do work’. A work-machine does a physical transformation in the atomic world. It typically leaves behind potential energy (e.g. a crane lifting things), mechanical energy (e.g. the deformation of a rivet), kinetic energy (e.g. a gun) or chemical energy (e.g. petrol refinery). They are governed and constrained by the laws of thermodynamics, and tend to chuck off a lot of heat.
Computers are work-machines because they do a form of work: transistors do transformational NAND and NOR operations that leave behind electrical energy and require the dissipation of heat energy when a ‘1’ becomes a ‘0’. If we want more computation, we must emit more heat in proportion.
When we think of packet networks we see boxes throwing out heat, and they look like computers, so they are imagined to be doing ‘work’. We can’t see what they do, so we have an inner mental model of ‘beads on a string’ moving data towards its destination. There is the ‘work’ to be done: moving the beads. As we have done ‘work’ in getting a bead so far along the string, it would be bad to waste that effort, so we queue the beads up when the next link is busy, and are reluctant to lose them on the way. After all, we’d just have to redo some ‘work’, and that would be wasteful, wouldn’t it?
More subtly and critically, we choose a particular type of queue: work-conserving. What that means is that if the onward link is idle, and a packet is waiting, then the packet will be sent. ‘Work’ is being conserved across the transmission interface. Why waste the opportunity to get some ‘work’ done? It’s a work-machine whose purpose is to do ‘work’!
But there is no ‘work’ being done. It’s a fantasy. Nothing was transformed. Which is why the Internet doesn’t work very well.
Networks are translocation machines
The word ‘network’ mathematically describes the topological connection of nodes. It does not describe how multiplexed flows work. That matters, because when we turn ‘network’ into a verb it causes profoundly faulty reasoning. Packet networks are very work-shy: we can do ‘networking’ with just laser light and mirrors. Sending the data twice as far or in half the time doesn’t need twice the energy input.
Packet networks are really giant information-copying machines that suffer from slowness and sloppiness in copying bits. Their fundamental nature is the translocation of information. The ideal packet network does instant and perfect bit-copying, with no transformation at all.
Such ‘multiplexed translocators’ are rare in the ordinary world, and we have relatively little intuitive experience of them. A possible example is ski lifts, although these also serve double-duty as work-machines, and to get the analogy to work you need to think of transporting ski teams up multiple stages, not just individual skiers. The moving walkways in airports have a similar property, as long as you think of value coming from getting an orchestra onto a plane, not just one violinist.
So what? Your epistemology doesn’t ‘work’ for me
These two types of systems are constrained by different parameters. The ‘data processing’ work machines are constrained by the principles of computability, whereas ‘multiplexed translocation’ is constrained by the three laws of networking I wrote in “The limitations of bandwidth” – i.e. quality attenuation exists, is conserved, and has two degrees of freedom (loss & delay) with a trading space.
These are fundamentally and categorically different. The former moves towards a positive outcome of computation, which one wishes to maximise, whereas the latter is about a negative outcome of quality attenuation, which one wants to minimise.
So whilst an ideal network performs instant and perfect copying of information at a distance, real networks deviate from this by adding loss and delay. That deserves big bold caps: THE ONLY THING TRANSLOCATION SYSTEMS DO IS ADD LOSS AND DELAY, i.e. deviate downwards from perfect reliability and timeliness.
You need to stop looking at networks as work machines doing ‘positive’ work by making packets flow. This is a hard mental jump to make. Look at the holes, not the packets. Look at the delay to serialise a packet, not ‘bandwidth’. It’s like quantum physics. Your intuition is wrong, no matter how much you feel comfortable with it.
Now for the important bit. There are four big consequences of getting this back-to-front and seeing packets with a work-machine rather than translocation-system viewpoint:
- Nearly all the queues in today’s Internet are designed for work, not translocation. Whoops! We’ve built the wrong Internet. Still, you can’t fault people trying, as you wouldn’t be getting this critque without it.
- The lawyers have got network neutrality inside-out. They have mixed atom-based translocation ideas like common carriage together with work-machine Protestant work ethics to bit-based multiplexed flow systems.
- We mistakenly attach value to delivery of individual packets, rather than allocating loss and delay across flows, so the network engineers have got QoS upside-down.
- We exclude ourselves from deriving a fundamental algebra of networking, which means we have no understanding of why things work and why they break. Even the Internet Engineering Task Force doesn’t do engineering! They’d be fired from any real society of engineers for coming up with networks that suffer bufferbloat when nobody had any idea it was possible.
For further fresh thinking on network performance, please get in touch.
To keep up to date with the latest fresh thinking on telecommunication, please sign up for the Geddes newsletter