There's lots of confusion out there about QoS, VoIP, and 3G, especially as these don't work quite the way many people think. This is an area I've been studying intently as it pertains to various projects, and after hearing QUALCOMM speak recently on the topic in a technical presentation on EVDO Rev A, I thought I would take the opportunity to clear some misconceptions, and organize my own thoughts.
Sprint and Verizon are upgrading their CDMA2000 EV-DO (Evolution Data Optimized) networks from Rev 0 to Rev A, and one of the features is QoS. QoS is also available in UMTS networks, including Cingular's HSDPA (High Speed Data Packet Access) network. QoS raises two interesting questions. What applications need QoS, and how to best make QoS available as a feature for customers?
A good place to start is VoIP. Many popular VoIP systems today are based on best efforts approaches only, and as a consequence, voice quality is hit or miss as anybody who uses Skype extensively can attest to, especially with international use. The Internet at large does not support QoS protocols, though there are managed domains that do. Over time this will change, especially as the backbone networks carry more and more time sensitive traffic, whether voice or video. Even in the absence of QoS mechanisms, wired networks have two huge advantages over wireless. The first is the ability to easily add more bandwidth. The second is consistent bandwidth with low error rates on any individual link. Wireless networks, in comparison, are constrained by highly restrictive spectrum allocations, and also have to cope with high link level error rates. To do so, they are highly adaptive, changing the amount of coding and the modulation in use to provide best available throughput at any moment. The result from a QoS point of view is problematic: a constantly varying amount of available bandwidth per user. So what are the options for 3G?
First, there are different ways of controlling QoS. Full QoS control means being able to control parameters such as throughput, delay, variation in delay (jitter), error rate and whether packets are sent in sequence or not. However, since QoS is ultimately a matter of packet prioritization, a much simpler QoS implementation is to designate classes of traffic, where higher class traffic gets through before lower class traffic.
The first way that 3G will seriously use QoS is with 3G networks employing VoIP. Sure, you can run Skype over 3G today. But actually running VoIP with the same voice quality and capacity as current circuit-switched systems is quite complicated, explaining why nobody has done it quite yet. Circuit-switched methods are highly optimized, but most VoIP approaches are not. IP headers alone can kill you, with some 40 bytes of IP, UDP and RTP packet headers of overhead for every 22 bytes of VoIP payload. Techniques such as Robust Header Compression (RoHC) employed within the network bring this down to 4 bytes. If the cellular operator then applies full QoS for voice call admission and bandwidth management, and additionally applies a variety of other complicated low-level bit twiddling such as dejittering and time warping, the result is high-quality and high capacity VoIP equaling and eventually surpassing current circuit-switched voice. This is on the roadmap for both EVDO and UMTS, though EVDO operators are more highly motivated to make this work because their EVDO radio channels currently only support data, whereas UMTS/HSDPA channels allow simultaneous voice and data. Note however, that this application of QoS is purely within the operator's domain. It could, if the operator chose to do so, be made available to improve your Skype session. But I see this as unlikely in the near future.
I think it most likely that 3G operators will leverage QoS for their own applications, including VoIP, as well as for video services. But as far as exposing interfaces for customer applications to request parameters such as a certain amount of bandwidth or delay control, that's a harder sell. The problem is that with finite capacity, do you really want one set of customers using up all the bandwidth and thus denying data service for others? And how much would customers be willing to pay for such a service? And remember that the amount of radio resource required to deliver certain bandwidth depends on the users instantaneous radio conditions. I know operators are scratching their heads over this one.