In response to my post on network prioritization on Tuesday, Christopher Anderson left a thoughtful comment that represents a common, but in my opinion mistaken, perspective on the network discrimination question:
It’s great for a researcher building a next generation network to simply recommend adding capacity. This has been the LAN model for a long time in private internal networks and LANs with Ethernet have grown in orders of magnitude. This is how Ethernet beat out ATM in the LAN 10 years ago or so. Now that those very same LANs are deploying VOIP they wish for some ATM features such as proritization. And now they add that prioritization (‘e’ tagging for example) to deploy VOIP more often than they upgrade the whole thing to 10G.
There are however business concerns in the real world. Business concerns such as resource scarcity and profit. In a ISP business model, users are charged for service. If usage goes up, but subscriptions do not (e.g. average user consumes more bandwidth) there is financial motivation to prioritize or shape the network, not to add capacity and sacrifice profit with higher outlays of capital, as long as the ‘quality’ or ‘satisfaction’ as observed by the consumer does not suffer.
Anderson is presenting a dichotomy between what we might call the frugal option of using prioritization schemes to make more efficient use of the bandwidth we’ve got and the profligate option of simply building more capacity when we run out of the bandwidth we’ve got. The former is supposed to be the cheap, hard-headed, capitalist way of doing things, while the latter is the sort of thing that works fine in the lab, but is too wasteful to work in the real world.
I think this dichotomy is false. Prioritization does not come for free. Let me highlight two ways in which I think Anderson’s argument underestimates the costs of introducing prioritization into the network. The first is the really obvious one: for a given throughput, a “smart” router with more sophisticated prioritization will require more transistors, and therefore will be more expensive, than a “dumb” router that simply routes packets on a first-in, first-out basis. That means that the choice is not between spending more money on capacity or pushing the “prioritize” button on their network control panel. The choice is between spending money on routers (and other stuff) necessary for a faster network or spending money on routers (and other stuff) necessary for smarter network.
Now, it’s an empirical question whether, for a given budget, you’ll see a larger improvement in network performance from buying faster equipment than you will from buying smarter equipment. My second-hand and very cursory understanding of the research is that this is a subject on which network engineers disagree, but that the most common view is that the “faster” option tends to work better. But obviously someone could come along and prove them wrong in the future. What’s not in doubt, though, is that to make an apples-to-apples comparison, you have to consider the costs of prioritization alongside the costs of adding capacity.
Anderson also ignores what I think are likely to be the more significant costs of a prioritization scheme, and that’s the need to build the kind of global infrastructure that would be necessary to make a network-wide prioritization scheme functional. A prioritization scheme that only worked on one network wouldn’t be terribly useful, since the high-priority packets could still get stuck in congestion the moment they left their home network. So if we’re serious about giving a customer end-to-end quality of service guarantees for their VoIP calls, we need to come up with a standard that the vast majority of ISPs adopt. Such a standard would almost certainly come with substantial overhead. Someone would have to police each user (or ISP’s) use of the prioritization flags to ensure no one simply marks all of their packets high priority. There’d need to be an elaborate billing system so that the payment for prioritization is distributed in an equitable manner to the various network owners who carried the traffic for part of its journey.
I’m skeptical about whether such a system is even feasible, but perhaps it is. What can’t be disputed, however, is that all that infrastructure would cost money. Which means that Anderson is completely wrong about this:
In capatilist system we use private ownership to distribute these resources via the communication medium of money (most efficient system discovered so far!).
In fact, money is an extraordinarily inefficient means of communicating value when the size of the transactions are small. As I’ve said before, this is precisely why micropayments never took off, and are unlikely ever to do so. It’s also why ISPs have almost entirely moved to flat-rate, rather than hourly, billing. Below a certain level, the costs of financial transactions overwhelm the value of what’s being exchanged.
In those situations, it often makes more sense to come up with non-monetary ways to allocate resources. Bartering systems such as BitTorrent are one particularly elegant solution. But in other cases, flat rate pricing and ad hoc rationing turns out to work pretty well too. There’s a reason that ISPs in the 1990s all abandoned hourly rates and implemented flat-rate billing instead. For somewhat complex reasons, it turned out that the cost of trying to bill users by the bit simply outweighed the benefits of doing so.
Now again, it’s not impossible that technological breakthroughs will change this equation and make more finely-grained pricing cost-effective. But the important point is that you can’t treat such pricing as free. The more complex your pricing scheme is, the more resources (both labor and transistors) it takes to implement it. Prioritization only makes sense if the costs–including the administrative and technological overhead–outweigh the benefits.