TCP/IP Quality of Service

Quality of Service (QoS) is a family of evolving Internet standards that provides ways to give preferential treatment to certain types of IP traffic.

With the proper support for QoS along a route, this can ameliorate the effects of variable queueing delays and congestion that contribute to poor network performance. The operating system provides host support for QoS to classify outbound traffic into distinct classes of service and to announce and establish resource reservations as requested by client applications.

QoS can be used by an institution to deploy and enforce network policies governing the use of network bandwidth. With QoS, a host can:

  • Regulate the amount of traffic of a certain type injected into the network;
  • Mark selected packets according to some policy so that subsequent routers can deliver the indicated service;
  • Support services such as the virtual leased line service with proper QoS support along the route; and
  • Participate in the resource reservation requests from receivers and announce sender sessions available for resource reservation requests.

The QoS support provides the following functions:

  • Differentiated services as defined in RFC 2474
  • Traffic policing
  • In-profile and out-of-profile packet marking
  • Traffic shaping
  • Metering
  • Integrated services for client and server applications as defined in RFC 1633
  • RSVP signaling (RFC 2205)
  • Guaranteed service (RFC 2212)
  • Controlled-Load service (RFC 2211)
  • Policy-based networking
  • RAPI shared library for application

The QoS subsystem consists of four components:

QoS kernel extension (/usr/lib/drivers/qos)
The QoS kernel extension resides in /usr/lib/drivers/qos and is loaded and unloaded using the cfgqos and ucfgqos configuration methods. This kernel extension enables QoS support.
Policy agent (/usr/sbin/policyd)
The policy agent is a user-level daemon that resides in /usr/sbin/policyd. It provides support for policy management and interfaces with the QoS kernel extension to install, modify, and delete policy rules. Policy rules can be defined in the local configuration file (/etc/policyd.conf), retrieved from a central network policy server using LDAP, or both.
RSVP agent (/usr/sbin/rsvpd)
The RSVP agent is a user-level daemon that resides in /usr/sbin/rsvpd. It implements the RSVP signaling protocol semantics.
RAPI shared library (/usr/lib/librapi.a)
Applications can use the RSVP API (RAPI) to request enhanced quality of service as defined by the Integrated Services Internet QoS model. This library interacts with the local RSVP agent to propagate the QoS request along the path of the data flow using the RSVP protocol. This API is an open standard.
Note: This implementation of QoS is based on a set of evolving Internet standards and draft standards currently under development by the Internet Engineering Task Force (IETF) and its various working groups. This technology will become more consistent and well defined as these standardization efforts progress within the IETF. It is also important to note that QoS is an emerging Internet technology that is just beginning to be deployed within the Internet. There are many benefits of QoS at all stages of deployment. However, true end-to-end services can only be realized when QoS support exists all along a particular route.