5.4.4 Differentiated Services
Flow-based algorithms have the potential to offer good quality
of service to one or more flows because they reserve whatever resources are
needed along the route. However, they also have a downside. They require an
advance setup to establish each flow, something that does not scale well when
there are thousands or millions of flows. Also, they maintain internal per-flow
state in the routers, making them vulnerable to router crashes. Finally, the
changes required to the router code are substantial and involve complex
router-to-router exchanges for setting up the flows. As a consequence, few
implementations of RSVP or anything like it exist yet.
For these reasons, IETF has also devised a simpler approach to
quality of service, one that can be largely implemented locally in each router
without advance setup and without having the whole path involved. This approach
is known as class-based (as opposed to
flow-based) quality of service. IETF has standardized an architecture for it,
called differentiated services, which is
described in RFCs 2474, 2475, and numerous others. We will now describe it.
Differentiated services (DS) can be offered by a set of routers
forming an administrative domain (e.g., an ISP or a telco). The administration
defines a set of service classes with corresponding forwarding rules. If a
customer signs up for DS, customer packets entering the domain may carry a Type of Service field in them, with better service
provided to some classes (e.g., premium service) than to others. Traffic within
a class may be required to conform to some specific shape, such as a leaky
bucket with some specified drain rate. An operator with a nose for business
might charge extra for each premium packet transported or might allow up to
N premium packets per month for a fixed
additional monthly fee. Note that this scheme requires no advance setup, no
resource reservation, and no time-consuming end-to-end negotiation for each
flow, as with integrated services. This makes DS relatively easy to
implement.
Class-based service also occurs in other industries. For
example, package delivery companies often offer overnight, two-day, and
three-day service. Airlines offer first class, business class, and cattle class
service. Long-distance trains often have multiple service classes. Even the
Paris subway has two service classes. For packets, the classes may differ in
terms of delay, jitter, and probability of being discarded in the event of
congestion, among other possibilities (but probably not roomier Ethernet
frames).
To make the difference between flow-based quality of service
and class-based quality of service clearer, consider an example: Internet
telephony. With a flow-based scheme, each telephone call gets its own resources
and guarantees. With a class-based scheme, all the telephone calls together get
the resources reserved for the class telephony. These resources cannot be taken
away by packets from the file transfer class or other classes, but no telephone
call gets any private resources reserved for it alone.
Expedited Forwarding
The choice of service classes is up to each operator, but since
packets are often forwarded between subnets run by different operators, IETF is
working on defining network-independent service classes. The simplest class is
expedited forwarding, so let us start with that
one. It is described in RFC 3246.
The idea behind expedited forwarding is very simple. Two
classes of service are available: regular and expedited. The vast majority of
the traffic is expected to be regular, but a small fraction of the packets are
expedited. The expedited packets should be able to transit the subnet as though
no other packets were present. A symbolic representation of this ''two-tube''
system is given in Fig. 5-39. Note that
there is still just one physical line. The two logical pipes shown in the figure
represent a way to reserve bandwidth, not a second physical line.
Figure 5-39. Expedited packets experience a traffic-free network.
One way to implement this strategy is to program the routers to
have two output queues for each outgoing line, one for expedited packets and one
for regular packets. When a packet arrives, it is queued accordingly. Packet
scheduling should use something like weighted fair queueing. For example, if 10%
of the traffic is expedited and 90% is regular, 20% of the bandwidth could be
dedicated to expedited traffic and the rest to regular traffic. Doing so would
give the expedited traffic twice as much bandwidth as it needs in order to
provide low delay for it. This allocation can be achieved by transmitting one
expedited packet for every four regular packets (assuming the size distribution
for both classes is similar). In this way, it is hoped that expedited packets
see an unloaded subnet, even when there is, in fact, a heavy load.
Assured Forwarding
A somewhat more elaborate scheme for managing the service
classes is called assured forwarding. It is
described in RFC 2597. It specifies that there shall be four priority classes,
each class having its own resources. In addition, it defines three discard
probabilities for packets that are undergoing congestion: low, medium, and high.
Taken together, these two factors define 12 service classes.
Figure 5-40 shows one
way packets might be processed under assured forwarding. Step 1 is to classify
the packets into one of the four priority classes. This step might be done on
the sending host (as shown in the figure) or in the ingress (first) router. The
advantage of doing classification on the sending host is that more information
is available about which packets belong to which flows there.
Figure 5-40. A possible implementation of the data flow for assured forwarding.
Step 2 is to mark the packets according to their class. A
header field is needed for this purpose. Fortunately, an 8-bit Type of service field is available in the IP header, as
we will see shortly. RFC 2597 specifies that six of these bits are to be used
for the service class, leaving coding room for historical service classes and
future ones.
Step 3 is to pass the packets through a shaper/dropper filter
that may delay or drop some of them to shape the four streams into acceptable
forms, for example, by using leaky or token buckets. If there are too many
packets, some of them may be discarded here, by discard category. More elaborate
schemes involving metering or feedback are also possible.
In this example, these three steps are performed on the sending
host, so the output stream is now fed into the ingress router. It is worth
noting that these steps may be performed by special networking software or even
the operating system, to avoid having to change existing applications.
No comments:
Post a Comment
silahkan membaca dan berkomentar