next up previous
Next: Route Classifiers Up: QoS Support in Linux Previous: Class Based Queue

Diff-Serv queues

This section discusses diff-serv marking (usually called as dsmark) queuing discipline in detail. The terms commonly used in the CBQ context and the user-level syntax to set up these queues are discussed in this section.

Differentiated Services provides a scalable means of service differentiation in the internet. No per-flow state needs to be maintained in the routers, neither is there an explicit connection setup phase. The Differentiated Services (commonly referred to as diff-serv) architecture offers a framework within which service providers can offer each customer a range of network services which are differentiated on the basis of performance in addition to pricing tiers used in the past. Diff-serv provides a wide range of services through a combination of the following functions.

Setting bits in the TOS octet at network edges and administrative boundaries
Using those bits to determine how packets are treated by the routers inside the network
Conditioning the marked packets at network boundaries in accordance with the requirements of each service.

The diff-serv architecture is composed of a number of small functional units implemented in the network nodes. This includes the definition of a set of Per-Hop Behaviors (PHBs), packet classification and traffic conditioning functions like metering, marking, shaping and policing. The resource allocation for each service type adds a new dimension to the problem, for which the Bandwidth Brokers are being considered.

The diffserv model is scalable because of a few reasons that are listed below:

Diff-serv suggests that the more expensive tasks like multi-flow classification, policing, shaping and marking be done at the border routers of the ISP networks. This is because the border routers deal with the customer links that are slow as a result of which it has time to do the costly functions like MFC and traffic conditioning. The core routers, on the other hand simply does the forwarding based on the diff-serv code point (DSCP), which is the first six bits in the TOS byte in the IP header. Since the core routers need not maintain any per-flow state, this model is more scalable.
The granularity of service provisioning is a class in diff-serv, as opposed to being a flow in int-serv. Multiple flows may be mapped on to a single per-hop behavior (PHB), which is indicated by the value in the DSCP. This too, ensures the scalability of the diff-serv model.

A number of per-hop behaviors have been suggested for the diff-serv architecture. Of these, two per-hop behaviors, namely Assured Forwarding and Expedited Forwarding are being considered for implementation in the routers.

Assured Forwarding PHB is suggested for applications that require a better reliability than the best-effort service. There are four classes of service, and within each class, there are four drop precedences. Assured Forwarding PHB is decribed in more detail later in the report.

Expedited Forwarding PHB is suggested for applications that require a hard guarantee on the delay and jitter. Typically mission critical applications would require this service. Expedited Forwarding PHB is described in more detail later in the report.

The syntax for creating a dsmark queuing discipline is shown below:

tc qdisc add dsmark incides INDICES [ default DEFAULT_INDEX ] 
	[ set_tc_index ]

next up previous
Next: Route Classifiers Up: QoS Support in Linux Previous: Class Based Queue
Saravanan Radhakrishnan