
I made Fair Internet with Paco Criado for the Berlin Long Night of Science in 2022 (and also displayed it in 2023) at the Zuse Institute Berlin. It is an interactive tool about how to share a the capabilities of a network fairly among people, for which we published a paper on a nice fast algorithm for computing this and other more general things.
If several users want information from different servers, and that information has to travel through shared links. Each link can only carry so much information per second. If two users depend on the same bottleneck, increasing the speed of one of them can force the other one to slow down. If we maximize the total information that travels, this can lead to some users receiving very little speed, or none at all!
There is only one way to split the resources if one wants to satisfy 4 natural properties:
- The identity of the user should not matter. No privileges.
- If someone can receive more speed without anyone else losing speed, we should do it.
- If we add more restrictions but the old fair solution is still possible, it should remain fair.
- That the selection does not depend after affine transformations, which in particular implies that the answer should not depend on the units used to measure speed.
These properties determine a unique way of sharing the network: proportional fairness. One useful intuition is that users who consume more scarce resources should often receive less speed, but if we retract a percentage of speed (divide it by some $p > 1$) to allow to increase it to another user by more than that proportionally (more than multiplying it by $p$), then we should do it.
In the interactive version, you move sliders to choose how much speed each user receives. The network reacts visually: saturated links are visible, users complain when the allocation is unfair, and a bar at the bottom shows the total amount of information delivered per second, etc. At first, the goal looks like “make the network go as fast as possible”, while balancing the users’ speed. Then the interesting part appears: no allocation with the largest total speed can be fair.
The interface was adapted from the style and code of Nicky Case’s Neurotic Neurons.