5.4
Quality of Service
The techniques we looked at in the
previous sections are designed to reduce congestion and improve network
performance. However, with the growth of multimedia networking, often these ad
hoc measures are not enough. Serious attempts at guaranteeing quality of
service through network and protocol design are needed. In the following
sections we will continue our study of network performance, but now with a
sharper focus on ways to provide a quality of service matched to application
needs. It should be stated at the start, however, that many of these ideas are
in flux and are subject to change.
A stream of packets from a source to
a destination is called a flow.Ina connection-oriented network, all the packets
belonging to a flow follow the same route; in a connectionless network, they
may follow different routes. The needs of each flow can be characterized by
four primary parameters: reliability, delay, jitter, and bandwidth. Together
these determine the QoS (Quality of Service) the flow requires. Several common
applications and the stringency of their requirements are listed in Fig. 5-30.
The first four applications have
stringent requirements on reliability. No bits may be delivered incorrectly.
This goal is usually achieved by checksumming each packet and verifying the
checksum at the destination. If a packet is damaged in transit, it is not
acknowledged and will be retransmitted eventually. This strategy gives high
reliability. The four final (audio/video) applications can tolerate errors, so
no checksums are computed or verified.
File transfer applications,
including e-mail and video, are not delay sensitive. If all packets are delayed
uniformly by a few seconds, no harm is done. Interactive applications, such as
Web surfing and remote login, are more delay sensitive. Real-time applications,
such as telephony and videoconferencing have strict delay requirements. If all
the words in a telephone call are each delayed by exactly 2.000 seconds, the
users will find the connection unacceptable. On the other hand, playing audio
or video files from a server does not require low delay.
The first three applications are not
sensitive to the packets arriving with irregular time intervals between them.
Remote login is somewhat sensitive to that, since characters on the screen will
appear in little bursts if the connection suffers much jitter. Video and
especially audio are extremely sensitive to jitter. If a user is watching a
video over the network and the frames are all delayed by exactly 2.000 seconds,
no harm is done. But if the transmission time varies randomly between 1 and 2
seconds, the result will be terrible. For audio, a jitter of even a few
milliseconds is clearly audible.
Finally, the applications differ in
their bandwidth needs, with e-mail and remote login not needing much, but video
in all forms needing a great deal.
ATM networks classify flows in four
broad categories with respect to their QoS demands as follows:
- Constant bit rate (e.g., telephony).
- Real-time variable bit rate (e.g., compressed videoconferencing).
- Non-real-time variable bit rate (e.g., watching a movie over the Internet).
- Available bit rate (e.g., file transfer).
These categories are also useful for
other purposes and other networks. Constant bit rate is an attempt to simulate
a wire by providing a uniform bandwidth and a uniform delay. Variable bit rate
occurs when video is compressed, some frames compressing more than others.
Thus, sending a frame with a lot of detail in it may require sending many bits
whereas sending a shot of a white wall may compress extremely well. Available
bit rate is for applications, such as e-mail, that are not sensitive to delay
or jitter.
Now that we know something about QoS
requirements, how do we achieve them? Well, to start with, there is no magic
bullet. No single technique provides efficient, dependable QoS in an optimum
way. Instead, a variety of techniques have been developed, with practical
solutions often combining multiple techniques. We will now examine some of the
techniques system designers use to achieve QoS.
An easy solution is to provide so
much router capacity, buffer space, and bandwidth that the packets just fly
through easily. The trouble with this solution is that it is expensive. As time
goes on and designers have a better idea of how much is enough, this technique
may even become practical. To some extent, the telephone system is
overprovisioned. It is rare to pick up a telephone and not get a dial tone
instantly. There is simply so much capacity available there that demand can
always be met.
Flows can be buffered on the
receiving side before being delivered. Buffering them does not affect the
reliability or bandwidth, and increases the delay, but it smooths out the jitter.
For audio and video on demand, jitter is the main problem, so this technique
helps a lot.
We saw the difference between high
jitter and low jitter in Fig. 5-29. In Fig. 5-31 we see a stream of packets being
delivered with substantial jitter. Packet 1 is sent from the server at t = 0
sec and arrives at the client at t = 1 sec. Packet 2 undergoes more delay and
takes 2 sec to arrive. As the packets arrive, they are buffered on the client
machine.
At t = 10 sec, playback begins. At
this time, packets 1 through 6 have been buffered so that they can be removed
from the buffer at uniform intervals for smooth play. Unfortunately, packet 8
has been delayed so much that it is not available when its play slot comes up,
so playback must stop until it arrives, creating an annoying gap in the music
or movie. This problem can be alleviated by delaying the starting time even
more, although doing so also requires a larger buffer. Commercial Web sites
that contain streaming audio or video all use players that buffer for about 10
seconds before starting to play.
In the above example, the source
outputs the packets with a uniform spacing between them, but in other cases,
they may be emitted irregularly, which may cause congestion to occur in the
network. Nonuniform output is common if the server is handling many streams at
once, and it also allows other actions, such as fast forward and rewind, user
authentication, and so on. Also, the approach we used here (buffering) is not
always possible, for example, with videoconferencing. However, if something
could be done to make the server (and hosts in general) transmit at a uniform
rate, quality of service would be better. We will now examine a technique, traffic
shaping, which smooths out the traffic on the server side, rather than on the
client side.
Traffic shaping is about regulating
the average rate (and burstiness) of data transmission. In contrast, the
sliding window protocols we studied earlier limit the amount of data in transit
at once, not the rate at which it is sent. When a connection is set up, the
user and the subnet (i.e., the customer and the carrier) agree on a certain traffic
pattern (i.e., shape) for that circuit. Sometimes this is called a service
level agreement. As long as the customer fulfills her part of the bargain and
only sends packets according to the agreed-on contract, the carrier promises to
deliver them all in a timely fashion. Traffic shaping reduces congestion and
thus helps the carrier live up to its promise. Such agreements are not so
important for file transfers but are of great importance for real-time data,
such as audio and video connections, which have stringent quality-of-service
requirements.
In effect, with traffic shaping the
customer says to the carrier: My transmission pattern will look like this; can
you handle it? If the carrier agrees, the issue arises of how the carrier can
tell if the customer is following the agreement and what to do if the customer
is not. Monitoring a traffic flow is called traffic policing. Agreeing to a
traffic shape and policing it afterward are easier with virtual-circuit subnets
than with datagram subnets. However, even with datagram subnets, the same ideas
can be applied to transport layer connections.
No comments:
Post a Comment
silahkan membaca dan berkomentar