A Nice Way to Get Network Quality of Service?
Pages: 1, 2
Overcoming Congestion Through Backloading Instead of Frontloading
The sea change in the QoS working group consisted of this: instead of forcing users to compete for favored treatment (a kind of rationing that leads to all the distortions and risks listed earlier), they allowed users to voluntarily accept a lower status. If you're nice, you relieve congestion for everybody. You may even end up with better bandwidth than you'd get otherwise, because you are placed in a separate queue from normal traffic.
The two services the working group has adopted along these lines are currently being experimentally confirmed.
The QBone Scavenger Service (QBSS) lets an application mark its traffic as low-priority. The traffic is delivered using the same best-effort algorithm as normal traffic, but placed into a separate queue that the router serves less often.
The proposal is based on a "lower than best-effort" service suggested by R. Bless and K. Wehrle in 1999. It has been further refined and used in experiments by Differentiated Services (diffserv) researchers. Unix users will immediately see the similarity of scavenger service to the nice command and system call, which change a process' priority.
To see how simple the implementation is, take a look at the definition. The sender implements the service by setting a single bit in the IP header!
Routers, of course, require more sophistication than the sender to implement the scavenger service. They can't simply put all normal traffic ahead of all low-priority traffic; that could starve the latter. Instead, they have to maintain separate queues for normal and low-priority traffic, sending just enough of the latter to keep TCP connections alive.
All they need is one of the well-established algorithms already built into many routers for prioritizing traffic, such as weighted fair queueing.
Furthermore, if networks deploy the scavenger service piecemeal, it's still useful. Interfaces that ignore, but pass on, the scavenger mark will provide normal service to all, without undermining the efforts of sites that do honor the bit.
It's important to realize that the scavenger service depends on a choice by the end-user. Either it is built right into a binary, or the user chooses the service when running the application. In either case, the choice ultimately resides with the user.
But the working group is betting that lots of users would play along. Some will do it in honor of preserving a commons, some will do it to free up bandwidth for other applications of their own, and some will heed financial rewards or the demands of a network's acceptable use policy.
The service ought to be appropriate for large file transfers, because the recipients usually don't care if a few extra minutes are added to a large download when they know they have to wait a significant amount of time anyway.
Scavenger service could be the solution for campus networks currently plugged up by music downloads from peer-to-peer file-sharing services. Some universities would benefit greatly, because the service could be used by research projects that routinely conduct data transfers taking hours to complete.
Teitelbaum hopes that the scavenger service leads developers to experiment with entirely new classes of applications. Users may make far greater use of their available bandwidth if they feel confident they can exchange large amounts of data with little or no impact on other applications. New types of background processes may emerge to exploit the network just as grid computing applications such as SETI@home exploit unused CPU cycles.
Don't want to give up something for nothing? Then consider another idea under consideration by the working group, Alternative Best-Effort (ABE). This is meant for interactive media applications like Voiceover IP, which require low delays but can tolerate losses.
In ABE, the application asks for packets to be dropped in the event of congestion, instead of piling up in the queue. So ABE helps applications avoid jitter while reducing congestion for all traffic.
ABE has a research history going back at least to 1998, and is comparable to another research project called Best Effort Differentiated Services (BEDS).
Philosophically, I find this change of heart by the Internet2 QoS Working Group appealing and even inspiring. While most of Internet2 is hefty, expensive stuff (fat pipes, stunning video equipment), the QoS Working Group has picked up two modest research projects that might lead to the widespread adoption of worthy new practices throughout the Internet.
Taking a different highway ramp took courage: it's not easy to walk away from a large and well-publicized initiative such as premium services. To find alternatives, the group combined a sensitivity to Internet culture with a bold willingness to make deep but incremental adjustments to IP. It's what I would call a best effort.
Read more Platform Independent columns.
Return to the O'Reilly Network.