QoS Overview Directory
Various
Queuing Algorithms of QoS
Weighted Random Early Detection
This section explains what Quality of Service (QoS) is and the service model that realizes the service quality. It also introduces various queuing algorithms of QoS. See QoS Configuration for related configurations.
QoS means the capability of a network that uses various basic technologies to provide better service for selected network communications. These basic technologies include: Frame Relay (FR), Asynchronous Transfer Mode (ATM), Ethernet and 802.1 network, and IP-route network. To guarantee the QoS of these networks, the router provides several functions such as queuing, scheduling and QoS signaling technology. In particular, by using technologies that support dedicated bandwidth and avoiding and managing network congestion, our routers provide better and more predictable network service.
The
service model describes the QoS capability of an End-to-End group, i.e. the
capability of a network that provides services requested by special network
communications from one end to the other. QoS software supports three kinds of
service models: Best-Effort Service, Integrated Service and Differentiated
Service.
Best-Effort
service is a simple service model. Under this kind of service model,
applications can send any volume of data at any time without applying for
permission or notifying the network in advance. For Best-Effort service, if
conditions permit, the network can transfer data without any guarantee in the
aspects of reliability, time delay range or throughput. The router’s QoS function for Best-Effort service adopts the FIFO (first in,
first out) queuing.
Integrated
service is a multiple
service model, and it can handle various QoS requirements.
In
this model, applications have to apply to the network for a special kind of
service by QoS signaling before sending data. This request is mainly for the
network to notify the brief communication situations of this application, and
apply for a special kind of service, which can fulfill its bandwidth and time
delay requirements. Only after getting confirmation messages from the network
can this application send data. Meanwhile, the data sent by it must comply with
the previously described communication situations.
When
conducting intelligent queuing operations for various streams, as long as the communication volume maintains the requested range, the network can meet the QoS
requirement of this application.
The
difference between the Differentiated Service and the Integrated Service model
is that applications using Differentiated Service don’t
have to definitely send a signal to the router before sending data.
For Differentiated Service, if the network is going to send a special kind of service, it must specify the corresponding QoS mark in every data packet. This kind of specification can be realized in several ways, for example, using the IP priority bit in the IP data packet. The router uses this QoS specification to make classification, and complete the intelligent queuing task. The Weighted Random Early Detection (WRED), Custom Queuing (CQ), and Priority Queuing (PQ) provided by the router QoS can be used to send differentiated service.
Various Queuing
Algorithms of QoS
The various queuing algorithms of QoS are the important guarantee for realizing QoS. Our routers provide Weighted Fair Queuing (WFQ), Custom Queuing (CQ), Priority Queuing (PQ) for bandwidth assignment; Weighted Random Early Detection (WRED) for congestion control; and the simplest FIFO algorithm.
WFQ is an automatic scheduling method, and it provides a fair bandwidth assigning solution for all network communications. WFQ applies priority or weight to specified communications to divide them into different sessions, and determines the bandwidth of every session as compared with other sessions. WFQ is an algorithm based on data stream, it not only moves communications with high priority to the front of the queue to reduce response time, but also distributes the remaining bandwidth among high bandwidth data streams fairly. In other words, WFQ assigns higher priority to low-volume traffic(for example, Telnet session) than high-volume traffic(for example, FTP session). WFQ provides balanced link volume assignment for concurrent file transfers; i.e. when there are several simultaneous file transfer tasks , it can provide equal bandwidth for these data transfer tasks.
WFQ
overcomes the serious limitation of the FIFO queuing method. When the FIFO
queuing method is in effect, communications are sent out according to the
sequence in which they reach the interface without considering their bandwidth
consumption or relative time delay. As a result, file transfer or other large
data volume network applications can take almost all the available bandwidth,
depriving the bandwidth of other communications. WFQ dynamically divides the
communication into messages that constitute sessions in order to distribute the
bandwidth fairly among different sessions, assuring that low-volume
traffic can be transferred in a timely method.
WFQ
can divide the communication into different data streams based on the addressing
of the data packet head. Because most communications are IP data, it classifies
the data packet according to various fields of IP head (Source and Target
addresses, Source and Target ports, protocol type and TOS).
Before sending, WFQ puts the data packet of various sessions into a
fair queue. The
sequence in which data packets leave the fair queue is determined by the finish
number indicated by the last bit of every arriving data packet.
For
almost every serial interface whose speed is set to 2.048Mbps or lower, WFQ is
the default queuing method.
For
detailed information, see WFQ configuration.
The
normal weighted fair queuing can only automatically identify streams, but can’t provide specified services to some special streams as required.
Our routers provide category-based weighted fair queuing (CBWFQ), and this
algorithm enhances the normal weighted fair queuing algorithm. It can identify a
stream of some category defined by users, and assign a specified weight to this
stream.
For detailed information, see CBWFQ configuration.
Weighted
Random Early Detection
Random
Early Detection (RED) technology is a generally used congestion avoidance
mechanism. Once RED is configured, routers use RED to control dropped message
packets. If you don’t configure Weighted Random Early
Detection (WRED), routers will use a rough message packet dropping technology
called Tail Drop by default. (Weighted Random Early Detection (WRED) doesn’t guarantee the bandwidth ratio of a specified stream.)
Tail
Drop treats all communications equally, and it doesn’t
distinguish the service level. When congestion occurs,
some packets will accumulate in the sending queue. If the sending queue is full,
message packets will begin to be dropped until congestion disappears and sending
queue is full no more. When using RED to resolve the congestion on routers, the
globalization of this problem can be avoided. Global Synchronization occurs at
the peak of congestion, many hosts using TCP protocol to decrease their transfer
speeds to handle dropped message packets, and increase their transfer speeds
again when congestion mitigates, but the transfer link is not fully used during
this process.
The
basic assumption of RED technology is that most applications are sensitive to
the packet loss during communication, and if some message packets are dropped,
the sending speed will be reduced temporarily. TCP is used to handle dropped
message packets accurately –
or even soundly, i.e. effectively assuring that the effectiveness of the packet
dropping technology is the same as that of congestion avoidance signaling
technology.
The
target of RED is achieved by controlling average queue length to indicate
terminal hosts to reduce their message packet transfer speed temporarily when
required. RED indicates message packet source to reduce its transfer speed by
dropping packets randomly before the peak congestion period comes. If packet
source uses TCP, it will reduce its sending speed, until all packets arrive at
their destinations and the congestion is cleared. You can use RED to call TCP in
order to reduce the transfer speed of message packets. TCP can not only pause
sending, but also restart quickly, which adjusts the transfer speed to the speed
supported by the network.
When
average queue length exceeds the minimum threshold, RED begins to drop packets.
The packet dropping speed is increased linearly as average queue length
increases until the average queue length reaches the minimum threshold and
packets stop being dropped. When average queue length exceeds the maximum
threshold, all packets will be dropped. The minimum threshold must be set high
enough in order to maximize the utilization of the transfer link. If the minimum
threshold is set too low, packets will be dropped unnecessarily, and the
transfer link will not be utilized fully. The interval between the maximum and
the minimum thresholds must be set large enough to avoid Global Synchronization.
If the interval is too small, many packets will be dropped immediately which
results in Global Synchronization.
When
Custom Queuing is in effect on a port, the system maintains 17 output queues for
this port. You can specify queue No.1 to No.16. Configurable number of bytes and
packet types concerned with every output queue. Configurable number of bytes
means the number of bytes in the current queue that the system should send
before moving to the next queue.
Queue
No.0 is a system queue; before Queue No.1 to No.16 can be handled, Queue No.0
must be emptied first. The system puts high priority packets, such as keep-alive
packets and signaling packets, in this queue. Other communications cannot use
this queue.
For
Queues No.1 to No.16, the system polls these queues, gets the configured number
of bytes from the current queue, and then sends these packets before moving to
the next queue. When handling a queue, the system keeps on sending packets until
the number of sent bytes exceeds the total number of bytes of this queue or this
queue is emptied. The bandwidth used by a queue can only be specified by the
total number of bytes indirectly. Like PQ, CQ is configured statically, so it
can’t adapt to the continuously changing
network conditions automatically.
Priority
Queuing has four kinds of communication priorities (high, middle, normal, low).
During data transfer, Priority Queuing handles the high priority queues
absolutely before the low priority queues; as long as important communications
are given the highest priorities, they are always serviced before the
communications with lower priorities.
According
the criteria defined by users, packets are classified and put into one of the
four output queues; packets whose priorities have not been defined will be put
into the Normal queue. When the system is going to send out packets from an
interface, it begins to scan priority queues on this interface from the highest
level to the lowest level. It scans the high priority queues first, and then
scans the middle priority queues, and so on. Then, it selects the first packet
in a queue with the highest priority, and begins transmission. Every time when
it is going to send a packet, it repeats this process.
The
signaling function of our router QoS allows end points or network nodes to send
signals to other nodes in order to apply for the special processing of some
communication. The signaling function of QoS can
assist the QoS with scheduling, and configure successful, comprehensive
End-to-End QoS service for the entire network. The signaling function of QoS
uses IP protocol. Both the inside (IP priority) and the outside (RSVP protocol)
signaling functions indicate that any specified communication type has the
chance to get some kind of QoS service. IP priority and RSVP protocol provides a
stable union to the End-to-End QoS signaling function: IP priority signal is
used in the differentiated QoS, and RSVP is used in the guaranteed QoS.