The emerging Resource Reservation Protocol (RSVP) is more sophisticated than IP TOS. RSVP specifies its own signaling mechanism for communicating an application's QoS requirements to a router. Like IP TOS, RSVP has not been widely implemented by application vendors. Although some routers support RSVP, the protocol isn't considered mature enough for widespread deployment because of scalability concerns. RSVP imparts a significant processing load on routers and could cause performance degradation.
Implicit QoS is likely to remain more popular than explicit QoS for the foreseeable future. Implicit QoS doesn't require as much router processing. More important, any explicit QoS technique is a potential management nightmare. Given the chance, end users are likely to configure their software to ask for the best possible service level. Administrators would probably need to establish rules for users and perhaps even configure QoS on a per-user basis.
Once data is prioritized using implicit or explicit techniques, queues and queuing algorithms are used to provide the appropriate or desired QoS.
Queues, which are simply areas of memory within a router or switch, are set up to contain different priority packets. A queuing algorithm determines the order in which packets stored in the queues are transmitted. The idea is to give better service to high-priority traffic while ensuring, to varying degrees, that low-priority packets get some service.
If congestion occurs, the queuing system does not guarantee crucial data will reach its destination in a timely manner; it only ensures that high-priority packets will get there before low-priority packets.
More sophisticated QoS systems solve this problem with bandwidth reservation systems, which assign prespecified amounts of bandwidth to individual queues or groups of queues. This ensures that bandwidth is always available for a high-priority queue. QoS is guaranteed unless the data in a queue exceeds the amount of reserved bandwidth. If this happens, the algorithms usually allow bandwidth from low-priority queues to service high-priority traffic, and vice-versa.
Basic queuing algorithms transmit packets from the same queue in a FIFO order. Large frames associated with a high-priority file transfer may delay a transaction processing application that passes small amounts of data, even though packets from both applications are classified as high priority.
More sophisticated queuing algorithms attempt to be fairer. For example, Cisco's weighted fair queuing (WFQ) differentiates among bandwidth-hogging applications and those that need less bandwidth, and distributes the bandwidth to all applications in equal amounts. Most router vendors have developed unique queuing algorithms and use their own terms to describe them.