⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc2688.txt

📁 RFC 的详细文档!
💻 TXT
📖 第 1 页 / 共 3 页
字号:

   In the case where fewer reservations are expected than the total
   number of classes negotiated for a PPP link, it is possible to assign
   individual flows to fixed class numbers. This assignment is useful in
   the case where the protocol identifier associated with one or more
   flows is known at LCP negotiation time and the bandwidth of the
   connection is relatively small. If these conditions hold true, then
   for those flows that are known, a specific class can optionally be
   assigned to them and the prefix elision PPP option [2] can be used for
   those classes to achieve a small bandwidth savings.

3.3 Dynamic Class Mappings

   In the case where predefined class mappings are not satisfactory, an
   implementer MAY map class values to individual packets rather than
   assigning flows to fixed classes.  This can be done due to the fact
   that the classes that MCML and RTF provide can be viewed purely as
   PPP-specific segmentation/fragmentation mechanisms. That is, while the
   class number MUST remain constant on an intra-packet basis, it MAY
   vary on an inter-packet basis for all flows transiting a PPP
   link. Actual assignment of particular flows to fixed classes is
   unnecessary, as the class numbers are NOT REQUIRED to have any meaning
   other than in the context of identifying the membership of
   fragments/segments as part of a single packet.  This point is
   sufficiently important that an example is provided below.

   Consider a PPP link using the MCML short sequence number fragment
   format (that is, four classes are provided).  Assume that in addition
   to carrying best effort traffic, this link is carrying five guaranteed
   service flows, A, B, C, D, and E. Further assume that the link
   capacity is 100kbit/s and the latency is 100ms. Finally, assume the BE
   traffic is sufficient to keep the pipe full at all times and that GS
   flows A-E are each 10kbit/s and all have delay bounds of 145ms.




Jackowski, et al.           Standards Track                     [Page 6]

RFC 2688      Integrated Services Mappings Low Speed Nets September 1999


Time(ms)        Action
 0     BE traffic is queued up
 0     2kbit fragment from 10kbit packet of BE traffic sent, cls 0 (...)
 8     2kbit fragment from BE sent, cls 0 (10kbit BE packet done)
 9     8kbit packet from flow A arrives
10     2kbit fragment from A sent, cls 1 (8kbit flow A packet start)
11     8kbit packet from flow B arrives
12     2kbit fragment from B sent, cls 2 (8kbit flow B packet start)
13     8kbit packets from flows C, D, and E arrive
14     2kbit fragment from C sent, cls 3 (8kbit flow C packet start)
16     2kbit fragment from D sent, cls 0 (8kbit flow D packet start)
18     2kbit fragment from A sent, cls 1
20     2kbit fragment from B sent, cls 2
22     2kbit fragment from A sent, cls 1
24     2kbit fragment from A sent, cls 1 (8kbit flow A packet done)
26     2kbit fragment from E sent, cls 1 (8kbit flow E packet start)
27     8kbit packet from flow A arrives
28     2kbit fragment from B sent, cls 2
30     2kbit fragment from C sent, cls 3
32     2kbit fragment from E sent, cls 1
34     2kbit fragment from B sent, cls 2 (8kbit flow B packet done)
36     2kbit fragment from E sent, cls 1
38     2kbit fragment flow A sent, cls 2 (8kbit flow A packet start)
       (etc.)

   This example shows several things. First, multiple flows MAY share
   the same class, particularly in the case where there are more flows
   than classes. More importantly, there is no reason that a particular
   flow must be assigned to a fixed class - the only requirement is that
   each packet, when fragmented, MUST have the same class value assigned
   to all fragments.  Beyond this requirement the link scheduler may
   assign individual to changing class numbers as necessary to meet
   reservation requirements.

   One suggestion to implementers of integrated services on MCML and RTF
   links using dynamic mappings is that all BE traffic SHOULD be
   logically separated from QoS traffic, and mapped to a fragmentable
   (MCML classes 0-3 in short sequence number fragment format, 0-15 in
   long sequence number fragment format) or suspendable (RTF classes 0-
   6) class. Since BE traffic will in most implementations not be
   scheduled for transmission except when a link is empty (that is, no
   CL or GS traffic is ready for transmission), implementers MAY choose
   to make use of class number 0 for BE traffic.








Jackowski, et al.           Standards Track                     [Page 7]

RFC 2688      Integrated Services Mappings Low Speed Nets September 1999


3.4 Non-Conformant Traffic

   Treatment of non-conformant QoS traffic is largely determined by the
   appropriate service specifications, but the detailed implementation
   in the context of this draft allows for some flexibility.  Policing
   of flows containing non-conformant traffic SHOULD always be done at
   the level of granularity of individual packets rather than at a finer
   grained level.  In particular, in those cases where a network element
   scheduling flows for transmission needs to drop non-conformant
   traffic, it SHOULD drop entire packets rather than dropping
   individual fragments of packets belonging to non-conformant traffic.
   In those cases where a network element forwards non-conformant
   traffic when link bandwidth is available rather than dropping the
   traffic, the implementation SHOULD fragment packets of such traffic
   as if it were best effort traffic.

   Whether BE and non-conformant traffic are treated differently in
   regards to transmission (e.g., BE is given priority access over non-
   conformant traffic to the link) or whether within each type of
   traffic special treatment is afforded to individual flows (e.g., WFQ,
   RED, etc.) is service dependent.

4. Guidelines for Implementers

4.1. PPP Bit and Byte Stuffing Effects on Admission Control

   An important consideration in performing admission control for PPP
   links is reductions in effective link rate due to bit stuffing.
   Typical bit stuffing algorithms can result in as much as 20%
   additional overhead. Thus, admission control implementations for
   guaranteed service over links where bit stuffing is used SHOULD take
   the RSpec rate of all flows and multiply by 1.2, to account for the
   20% overhead from bit stuffing, when determining whether a new flow
   can be admitted or not. Admission control implementations for
   controlled load reservations may use a similar algorithm using the
   TSpec peak rate or may attempt to measure the actual degree of
   expansion occurring on a link due to bit stuffing. This
   characterization can then be used to adjust the calculated remaining
   link capacity. Such measurements must be used cautiously, in that the
   degree of bit stuffing that occurs may vary significantly, both in an
   inter- and intra-flow fashion.

   Byte stuffing is also used on many PPP links, most frequently on POTS
   modems when using the v.42 protocol. Byte stuffing poses a difficult
   problem to admission control, particularly in the case of guaranteed
   service, due to its highly variable nature. In the worse case, byte
   stuffing can result in a doubling of frame sizes. As a consequence, a
   strict implementation of admission control for guaranteed load on



Jackowski, et al.           Standards Track                     [Page 8]

RFC 2688      Integrated Services Mappings Low Speed Nets September 1999


   byte stuffed PPP links SHOULD double the RSpec of link traffic in
   making flow admission decisions. As with bit stuffing,
   implementations of controlled load service admission control
   algorithms for links with byte stuffing MAY attempt to determine
   average packet expansion via observation or MAY use the theoretical
   worst case values.

4.2. Compression Considerations

   The architecture for providing integrated services over low bandwidth
   links uses several PPP options to negotiate link configuration as
   described in [4, 8, 10].  When deciding whether to admit a flow,
   admission control MUST compute the impact of the following on MTU
   size, rate, and fragment size:

   Header compression: Van Jacobson or Casner-Jacobson [4,8,10].
   Prefix Elision.
   CCP.
   Fragment header option used.
   Fragmentation versus suspend/resume approach.

   If any of the compression options are implemented for the connection,
   the actual transmission rate, and thus the bandwidth required of the
   link, will be reduced by the compression method(s) used.

   Prefix elision can take advantage of mapping flows to MLPPP classes
   to elide prefixes which cannot be compressed at higher layers.  By
   establishing agreement across the link, the sender may elide a prefix
   for a certain class of traffic and upon receiving packets in that
   class, the receiver can restore the prefix.

   Both compression gain and elision gain MUST be included as described
   in the admission control section below. Note that the ability to
   perform compression at higher layers (e.g. TCP or RTP/UDP) may depend
   on the provision of a hint by the sender, as described in [9].

4.3. Admission Control

   Admission control MUST decide whether to admit a flow based on rate
   and delay.  Assume the following:

  LinkRate is the rate of the link.
  MTU is the maximum transmission unit from a protocol.
  MRU is the maximum receive unit for a particular link.
  CMTU is the maximum size of the MTU after compression is applied.
  eMTU is the effective size at the link layer of an MTU-sized packet
    after link layer fragmentation and addition of the fragment headers.
  FRAG is the fragment size including MLPPP header/trailers.



Jackowski, et al.           Standards Track                     [Page 9]

RFC 2688      Integrated Services Mappings Low Speed Nets September 1999


  Header is the size of the header/trailers/framing for MLPPP/Fragments.
  pHeader is the additional header/framing overhead associated with
    suspend/resume.  This should include FSE and worst case stuffing
    overhead.
  pDelay is the time take to suspend a packet already "in flight",
    e.g. due to the delay to empty the output FIFO.
  b is the bucket depth in bytes
  R is the requested Rate.
  Dlink is the fixed overhead delay for the link (Modem, DSU,
    speed-of-light, etc).
  eRate is the effective rate after compression and fragmentation.

   The Dlink term MAY be configured by an administrative tool once the
   network is installed; it may be determined by real-time measurement
   means; or it MAY be available from hardware during link setup and/or
   PPP negotiation.  Refer to Appendix A for more considerations on PPP
   link characteristics and delays.

   Admission control MUST compute CMTU, eMTU, and eRate for Controlled
   Load Service, and it MUST compute CMTU, eMTU, eRate, and D for
   Guaranteed Service:

   To determine whether the requested rate is available, Admission
   Control MUST compute the effective rate of the request (eRate) -
   worst case - as follows:

   #_of_Fragments = CMTU div (FRAG-Header) [Integer divide]
   Last_Frag_Size = CMTU mod (FRAG-Header

   If Last_Frag_Size != 0
      eMTU = (#_of_Fragments) * FRAG + Last_Frag_Size + Header
   Else
      eMTU = (#_of_Fragments) * FRAG

   eRate = eMTU/CMTU * R [floating point divide]

   Admission control SHOULD compare the eRate of the request against the
   remaining bandwidth available to determine if the requested rate can
   be delivered.

   For Controlled Load Service, a flow can be admitted as long as there
   is sufficient bandwidth available (after the above computation) to
   meet the rate requirement, and if there is sufficient buffer space
   (sum of the token bucket sizes does not exceed the buffer capacity).
   While some statistical multiplexing could be done in computing
   admissibility, the nature of the low-bitrate links could make this
   approach risky as any delay incurred to address a temporary
   overcommitment could be difficult to amortize.



Jackowski, et al.           Standards Track                    [Page 10]

RFC 2688      Integrated Services Mappings Low Speed Nets September 1999


4.4 Error Term Calculations

   Guaranteed Service requires the calculation of C and D error terms. C
   is a rate-dependent error term and there are no special
   considerations affecting its calculation in the low-speed link
   environment. The D term is calculated from the inherent link delay
   (Dlink) plus the potential worst case delay due to transmission of
   another fragment or suspend/resume overhead. Thus, D should be
   calculated as

   D = Dlink + FRAG/LinkRate

   in the case of a fragementing implementation and

   D = Dlink + pHeader + pDelay

   for a suspend/resume implementation.

4.5 Scheduling Considerations

   We may think of the link scheduler as having two parts, the first of
   which schedules packets for transmission before passing them to the
   second part of the scheduler -- the link level scheduler -- which is
   responsible for fragmenting packets, mapping them to classes, and
   scheduling among the classes.

   In the dynamic class mapping mode of Section 3.3, when deciding which
   class to assign a packet to, the link level scheduler should take
   account of the sizes of other packets currently assigned to the same
   class. In particular, packets with the tightest delay constraints
   should not be assigned to classes for which relatively large packets
   are in the process of being transmitted.

   In either the dynamic or the static class mapping approach, note that

⌨️ 快捷键说明

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