rfc3247.txt

来自「RFC 的详细文档!」· 文本 代码 · 共 1,348 行 · 第 1/4 页

TXT
1,348
字号
Charny, et. al.              Informational                      [Page 6]

RFC 3247                Supplemental Information              March 2002


   scheduling implementation.  The smaller E, the smaller the difference
   between the configured rate and the actual rate achieved by the
   scheduler.

   While RLC guarantees the desired rate to the EF aggregate in all
   intervals (0,t) to within a specified error, it may nevertheless
   result in large gaps in service.  For example, suppose that (a large
   number) N of identical EF packets of length L arrived from different
   interfaces to the EF queue in the absence of any non-EF traffic.
   Then any work-conserving scheduler will serve all N packets at link
   speed.  When the last packet is sent at time NL/C, where C is the
   capacity of output link, F'(N) will be equal to NL/R.  That is, the
   scheduler is running ahead of ideal, since NL/C < NL/R for R < C.
   Suppose now that at time NL/C a large number of non-EF packets
   arrive, followed by a single EF packet.  Then the scheduler can
   legitimately delay starting to send the EF packet until time
   F'(N+1)=(N+1)L/R + E - L/C.  This means that the EF aggregate will
   have no service at all in the interval (NL/C, (N+1)L/R + E - L/C).
   This interval can be quite large if R is substantially smaller than
   C.  In essence, the EF aggregate can be "punished" by a gap in
   service for receiving faster service than its configured rate at the
   beginning.

   The new EF definition alleviates this problem by introducing the term
   min(D(j-1), F(j-1)) in the recursion.  Essentially, this means that
   the fluid finishing time is "reset" if that packet is sent before its
   "ideal" departure time.  As a consequence of that, for the case where
   the EF aggregate is served in the FIFO order, suppose a packet
   arrives at time t to a server satisfying the EF definition.  The
   packet will be transmitted no later than time t + Q(t)/R + E, where
   Q(t) is the EF queue size at time t (including the packet under
   discussion)[4].

2.3. The need for dual characterization of EF PHB

   In a more general case, where either the output scheduler does not
   serve the EF packets in a FIFO order, or the variable internal delay
   in the device reorders packets while delivering them to the output
   (or both), the i-th packet destined to a given output interface to
   arrive to the device may no longer be the i-th packet to depart from
   that interface.  In that case the packet-identity-aware and the
   aggregate definitions are no longer identical.

   The aggregate behavior definition can be viewed as a truly aggregate
   characteristic of the service provided to EF packets.  For an
   analogy, consider a dark reservoir to which all arriving packets are
   placed.  A scheduler is allowed to pick a packet from the reservoir
   in a random order, without any knowledge of the order of packet



Charny, et. al.              Informational                      [Page 7]

RFC 3247                Supplemental Information              March 2002


   arrivals.  The aggregate part of the definition measures the accuracy
   of the output rate provided to the EF aggregate as a whole.  The
   smaller E_a, the more accurate is the assurance that the reservoir is
   drained at least at the configured rate.

   Note that in this reservoir analogy packets of EF aggregate may be
   arbitrarily reordered.  However, the definition of EF PHB given in
   [6] explicitly requires that no packet reordering occur within a
   microflow.  This requirement restricts the scheduling
   implementations, or, in the reservoir analogy, the order of pulling
   packets out of the reservoir to make sure that packets within a
   microflow are not reordered, but it still allows reordering at the
   aggregate level.

   Note that reordering within the aggregate, as long as there is no
   flow-level reordering, does not necessarily reflect a "bad" service.
   Consider for example a scheduler that arbitrates among 10 different
   EF "flows" with diverse rates.  A scheduler that is aware of the rate
   requirements may choose to send a packet of the faster flow before a
   packet of the slower flow to maintain lower jitter at the flow level.
   In particular, an ideal "flow"-aware WFQ scheduler will cause
   reordering within the aggregate, while maintaining packet ordering
   and small jitter at the flow level.

   It is intuitively clear that for such a scheduler, as well as for a
   simpler FIFO scheduler, the "accuracy" of the service rate is crucial
   for minimizing "flow"-level jitter.  The packet-identity-aware
   definition quantifies this accuracy of the service rate.

   However, the small value of E_a does not give any assurances about
   the absolute value of per-packet delay.  In fact, if the input rate
   exceeds the configured rate, the aggregate behavior definition may
   result in arbitrarily large delay of a subset of packets.  This is
   the primary motivation for the packet-identity-aware definition.

   The primary goal of the packet-aware characterization of the EF
   implementation is that, unlike the aggregate behavior
   characterization, it provides a way to find a per-packet delay bound
   as a function of input traffic parameters.

   While the aggregate behavior definition characterizes the accuracy of
   the service rate of the entire EF aggregate, the packet-identity-
   aware part of the definition characterizes the deviation of the
   device from an ideal server that serves the EF aggregate in FIFO
   order at least at the configured rate.

   The value of E_p in the packet-identity-aware definition is therefore
   affected by two factors: the accuracy of the aggregate rate service



Charny, et. al.              Informational                      [Page 8]

RFC 3247                Supplemental Information              March 2002


   and the degree of packet reordering within the EF aggregate (under
   the constraint that packets within the same microflow are not
   reordered).  Therefore, a sub-aggregate aware device that provides an
   ideal service rate to the aggregate, and also provides an ideal rate
   service for each of the sub-aggregates, may nevertheless have a very
   large value of E_p (in this case E_p must be at least equal to the
   ratio of the maximum packet size divided by the smallest rate of any
   sub aggregate).  As a result, a large value of E_p does not
   necessarily mean that the service provided to EF aggregate is bad -
   rather it may be an indication that the service is good, but non-
   FIFO.  On the other hand, a large value of E_p may also mean that the
   aggregate service is very inaccurate (bursty), and hence in this case
   the large value of E_p reflects a poor quality of implementation.

   As a result, a large number of E_p does not necessarily provide any
   guidance on the quality of the EF implementation.  However, a small
   value of E_p does indicate a high quality FIFO implementation.

   Since E_p and E_a relate to different aspects of the EF
   implementation, they should be considered together to determine the
   quality of the implementation.

3. Per Packet delay

   The primary motivation for the packet-identity-aware definition is
   that it allows quantification of the per-packet delay bound.  This
   section discusses the issues with computing per-packet delay.

3.1. Single hop delay bound

   If the total traffic arriving to an output port I from all inputs is
   constrained by a leaky bucket with parameters (R, B), where R is the
   configured rate at I, and B is the bucket depth (burst), then the
   delay of any packet departing from I is bounded by D_p, given by

      D_p = B/R + E_p                                             (eq_7)

   (see appendix B).

   Because the delay bound depends on the configured rate R and the
   input burstiness B, it is desirable for both of these parameters to
   be visible to a user of the device.  A PDB desiring a particular
   delay bound may need to limit the range of configured rates and
   allowed burstiness that it can support in order to deliver such
   bound.  Equation (eq_7) provides a means for determining an
   acceptable operating region for the device with a given E_p.  It may
   also be useful to limit the total offered load to a given output to
   some rate R_1 < R (e.g. to obtain end-to-end delay bounds [5]).  It



Charny, et. al.              Informational                      [Page 9]

RFC 3247                Supplemental Information              March 2002


   is important to realize that, while R_1 may also be a configurable
   parameter of the device, the delay bound in (eq_7) does not depend on
   it.  It may be possible to get better bounds explicitly using the
   bound on the input rate, but the bound (eq_7) does not take advantage
   of this information.

3.2. Multi-hop worst case delay

   Although the PHB defines inherently local behavior, in this section
   we briefly discuss the issue of per-packet delay as the packet
   traverses several hops implementing EF PHB.  Given a delay bound
   (eq_7) at a single hop, it is tempting to conclude that per-packet
   bound across h hops is simply h times the bound (eq_7).  However,
   this is not necessarily the case, unless B represents the worst case
   input burstiness across all nodes in the network.

   Unfortunately, obtaining such a worst case value of B is not trivial.
   If EF PHB is implemented using aggregate class-based scheduling where
   all EF packets share a single FIFO, the effect of jitter accumulation
   may result in an increase in burstiness from hop to hop.  In
   particular, it can be shown that unless severe restrictions on EF
   utilization are imposed, even if all EF flows are ideally shaped at
   the ingress, then for any value of delay D it is possible to
   construct a network where EF utilization on any link is bounded not
   to exceed a given factor, no flow traverses more than a specified
   number of hops, but there exists a packet that experiences a delay
   more than D [5].  This result implies that the ability to limit the
   worst case burstiness and the resulting end-to-end delay across
   several hops may require not only limiting EF utilization on all
   links, but also constraining the global network topology.  Such
   topology constraints would need to be specified in the definition of
   any PDB built on top of EF PHB, if such PDB requires a strict worst
   case delay bound.

4. Packet loss

   Any device with finite buffering may need to drop packets if the
   input burstiness becomes sufficiently high.  To meet the low loss
   objective of EF, a node may be characterized by the operating region
   in which loss of EF due to  congestion will not occur.  This may be
   specified as a token bucket of  rate r <= R and burst size B that can
   be offered from all inputs to a  given output interface without loss.

   However, as discussed in the previous section, the phenomenon of
   jitter accumulation makes it generally difficult to guarantee that
   the input burstiness never exceeds the specified operating region for
   nodes internal to the DiffServ domain.  A no-loss guarantee across
   multiple hops may require specification of constraints on network



Charny, et. al.              Informational                     [Page 10]

RFC 3247                Supplemental Information              March 2002


   topology which are outside the scope of inherently local definition
   of a PHB.  Thus, it must be possible to establish whether a device
   conforms to the EF definition even when some packets are lost.

   This can be done by performing an "off-line" test of conformance to
   equations (eq_1)- (eq_4).  After observing a sequence of packets
   entering and leaving the node, the packets which did not leave are
   assumed lost and are notionally removed from the input stream.  The
   remaining packets now constitute the arrival stream and the packets
   which left the node constitute the departure stream.  Conformance to
   the equations can thus be verified by considering only those packets
   that successfully passed through the node.

   Note that specification of which packets are lost in the case when
   loss does occur is beyond the scope of the definition of EF PHB.
   However, those packets that were not lost must conform to the
   equations definition of EF PHB in section 2.1.

5. Implementation considerations

   A packet passing through a router will experience delay for a number
   of reasons.  Two familiar components of this delay are the time the
   packet spends in a buffer at an outgoing link waiting for the
   scheduler to select it and the time it takes to actually transmit the
   packet on the outgoing line.

   There may be other components of a packet's delay through a router,
   however.  A router might have to do some amount of header processing
   before the packet can be given to the correct output scheduler, for
   example.  In another case a router may have a FIFO buffer (called a
   transmission queue in [7]) where the packet sits after being selected
   by the output scheduler but before it is transmitted.  In cases such
   as these, the extra delay a packet may experience can be accounted
   for by absorbing it into the latency terms E_a and E_p.

   Implementing EF on a router with a multi-stage switch fabric requires
   special attention.  A packet may experience additional delays due to
   the fact that it must compete with other traffic for forwarding
   resources at multiple contention points in the switch core.  The
   delay an EF packet may experience before it even reaches the output-
   link scheduler should be included in the latency term.  Input-
   buffered and input/output-buffered routers based on crossbar design
   may also require modification of their latency terms.  The factors
   such as the speedup factor and the choice of crossbar arbitration
   algorithms may affect the latency terms substantially.






Charny, et. al.              Informational                     [Page 11]

RFC 3247                Supplemental Information              March 2002


   Delay in the switch core comes from two sources, both of which must
   be considered.  The first part of this delay is the fixed delay a
   packet experiences regardless of the other traffic.  This component
   of the delay includes the time it takes for things such as packet
   segmentation and reassembly in cell based cores, enqueueing and
   dequeuing at each stage, and transmission between stages.  The second
   part of the switch core delay is variable and depends on the type and
   amount of other traffic traversing the core.  This delay comes about
   if the stages in the core mix traffic flowing between different
   input/output port pairs.  Thus, EF packets must compete against other
   traffic for forwarding resources in the core.  Some of this
   competing traffic may even be traffic from other, non-EF aggregates.
   This introduces extra delay, that can also be absorbed by the latency
   term in the definition.

   To capture these considerations, in this section we will consider two
   simplified implementation examples.  The first is an ideal output
   buffered node where packets entering the device from an input
   interface are immediately delivered to the output scheduler.  In this
   model the properties of the output scheduler fully define the values
   of the parameters E_a and E_p.  We will consider the case where the
   output scheduler implements aggregate class-based queuing, so that
   all EF packets share a single queue.  We will discuss the values of
   E_a and E_p for a variety of class-based schedulers widely
   considered.

   The second example will consider a router modeled as a black box with
   a known bound on the variable delay a packet can experience from the
   time it arrives to an input to the time it is delivered to its
   destination output.  The output scheduler in isolation is assumed to
   be an aggregate scheduler where all EF packets share a single FIFO
   queue, with a known value of E_a(S)=E_p(S)=E(S).  This model provides
   a reasonable abstraction to a large class of router implementations.

5.1. The output buffered model with EF FIFO at the output.

   As has been mentioned earlier, in this model E_a = E_p, so we shall
   omit the subscript and refer to both terms as latency E.  The
   remainder of this subsection discusses E for a number of scheduling
   implementations.

5.1.1. Strict Non-preemptive Priority Queue

   A Strict Priority scheduler in which all EF packets share a single
   FIFO queue which is served at strict non-preemptive priority over
   other queues satisfies the EF definition with the latency term E =
   MTU/C where MTU is the maximum packet size and C is the speed of the
   output link.



Charny, et. al.              Informational                     [Page 12]

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?