home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_i / draft-ietf-issll-isslow-mcml-00.txt < prev    next >
Text File  |  1996-09-23  |  44KB  |  1,044 lines

  1.  
  2. INTERNET-DRAFT                                           Carsten Bormann
  3. Expires: March 1997                                  Universitaet Bremen
  4.                                                           September 1996
  5.  
  6.  
  7.               The Multi-Class Extension to Multi-Link PPP
  8.                   draft-ietf-issll-isslow-mcml-00.txt
  9.  
  10.  
  11. Status of this memo
  12.  
  13.    This document is an Internet-Draft.  Internet-Drafts are working
  14.    documents of the Internet Engineering Task Force (IETF), its areas,
  15.    and its working groups.  Note that other groups may also distribute
  16.    working documents as Internet-Drafts.
  17.  
  18.    Internet-Drafts are draft documents valid for a maximum of six months
  19.    and may be updated, replaced, or obsoleted by other documents at any
  20.    time.  It is inappropriate to use Internet-Drafts as reference
  21.    material or to cite them other than as ``work in progress.''
  22.  
  23.    To learn the current status of any Internet-Draft, please check the
  24.    ``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow
  25.    Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
  26.    munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
  27.    ftp.isi.edu (US West Coast).
  28.  
  29.    Distribution of this document is unlimited.
  30.  
  31. Abstract
  32.  
  33.    A companion document describes an architecture for providing
  34.    integrated services over low-bitrate links, such as modem lines, ISDN
  35.    B-channels, and sub-T1 links [1].  The main components of the
  36.    architecture are: a real-time encapsulation format for asynchronous
  37.    and synchronous low-bitrate links, a header compression architecture
  38.    optimized for real-time flows, elements of negotiation protocols used
  39.    between routers (or between hosts and routers), and announcement
  40.    protocols used by applications to allow this negotiation to take
  41.    place.
  42.  
  43.    This document proposes the solution for the real-time encapsulation
  44.    format part of the architecture.  The general approach is to start
  45.    from the PPP Multilink fragmentation protocol [2] and provide a small
  46.    number of extensions to add functionality and reduce the overhead.
  47.  
  48.    This document is a product of the IETF ISSLL working group.  It is
  49.    also a submission to the IETF PPPEXT working group.
  50.    Comments are solicited and should be addressed to the two working
  51.    groups' mailing lists at issll@mercury.lcs.mit.edu and ietf-
  52.    ppp@merit.edu and/or the author.
  53.  
  54.  
  55.  
  56. Bormann                                                         [Page 1]
  57.  
  58. INTERNET-DRAFT The Multi-Class Extension to Multi-Link PPPSeptember 1996
  59.  
  60. 1.  Introduction
  61.  
  62.    As an extension to the ``best-effort'' services the Internet is well-
  63.    known for, additional types of services (``integrated services'')
  64.    that support the transport of real-time multimedia information are
  65.    being developed for and deployed in the Internet.
  66.  
  67.    A companion document describes an architecture for providing
  68.    integrated services over low-bitrate links, such as modem lines, ISDN
  69.    B-channels, and sub-T1 links [1].  The main components of the
  70.    architecture are: a real-time encapsulation format for asynchronous
  71.    and synchronous low-bitrate links, a header compression architecture
  72.    optimized for real-time flows, elements of negotiation protocols used
  73.    between routers (or between hosts and routers), and announcement
  74.    protocols used by applications to allow this negotiation to take
  75.    place.
  76.  
  77.    The present document defines the real-time encapsulation format part
  78.    of the architecture.  As described in more detail in the architecture
  79.    document, such a format is required as, e.g., a 1500 byte packet on a
  80.    28.8 kbit/s modem link makes this link unavailable for the
  81.    transmission of real-time information for about 400 ms.  This adds a
  82.    worst-case delay that causes real-time applications to operate with
  83.    round-trip delays on the order of at least a second -- unacceptable
  84.    for real-time conversation.
  85.  
  86.  
  87. 2.  Requirements
  88.  
  89.    The main design goal for the components of an architecture that
  90.    addresses real-time multimedia flows over low-bitrate links is that
  91.    of minimizing the end-to-end delay.  More specifically, the worst
  92.    case delay (after removing possible outliers, which are equivalent to
  93.    packet losses from an application point of view) is what determines
  94.    the playout points selected by the applications and thus the delay
  95.    actually perceived by the user.
  96.  
  97.    In addition, every attempt should obviously be undertaken to maximize
  98.    the bandwidth actually available to media data; overheads must be
  99.    minimized.
  100.  
  101.    The solution should not place unnecessary burdens on the non-real-
  102.    time flows.  In particular, the usual MTU should be available to
  103.    these flows.
  104.  
  105.  
  106.    The most general approach would provide the ability to suspend any
  107.    packet (real-time or not) for a more urgent real-time packet, up to
  108.    an infinite number of levels of nesting.  On the other hand, it is
  109.    likely that there would rarely be a requirement for a real-time
  110.    packet to suspend another real-time packet that is not at least about
  111.    twice as long.  Typically, the largest packet size to be expected on
  112.    a PPP link is the default MTU of 1500 bytes.  The smallest high-
  113.  
  114. Bormann                                                         [Page 2]
  115.  
  116. INTERNET-DRAFT The Multi-Class Extension to Multi-Link PPPSeptember 1996
  117.  
  118.    priority packets are likely to have on the order of 21 bytes
  119.    (compressed RTP/G.723.1 packets).  In the 1:72 range of packet sizes
  120.    to be expected, this translates to a maximum requirement of about
  121.    eight levels of suspension (including one level where long real-time
  122.    packets suspend long non-real-time packets).  On 28.8kbit/s modems,
  123.    there seems to be a practical requirement for at least two levels of
  124.    suspension (i.e., audio suspends any longer packet including video,
  125.    video suspends other very long packets).
  126.  
  127.    An on architectural level, there are several additional requirements
  128.    for the fragmentation scheme:
  129.  
  130.    a)   The scheme must be predictable enough that admission control can
  131.         make decisions based on its characteristics.  As is argued in
  132.         [1], this will often only be the case when additional hints
  133.         about the characteristics of the flow itself are available
  134.         (application hints).
  135.  
  136.    b)   The scheme must be robust against errors, at least with the same
  137.         level of error detection as PPP.
  138.  
  139.    c)   The scheme must in general cooperate nicely with PPP.  In
  140.         particular, it should be as compatible to existing PPP standards
  141.         as possible.  On a link that (based on PPP negotiation) makes
  142.         use of the scheme, it should always be possible to fall back to
  143.         standard LCP without ambiguity.
  144.  
  145.    d)   The scheme must work well with existing chips and router
  146.         systems.  For synchronous links this means using HDLC framing;
  147.         with much existing hardware, it is also hard to switch off the
  148.         HDLC per-frame CRC.  For asynchronous links, there is much more
  149.         freedom in design; on the other hand, a design that treats them
  150.         much different from asynchronous links would lose a number of
  151.         desirable properties of PPP.
  152.  
  153.    e)   The scheme must be future proof.  In particular, the emergence
  154.         of V.80 based modems may significantly change the way PPP is
  155.         used with modems.
  156.  
  157.    The current draft does not address additional requirements that may
  158.    be relevant in conjunction with Frame Relay; however, there seems to
  159.    be little problem in applying the principles of this draft to ``PPP
  160.    in Frame Relay'' [3].
  161.  
  162.  
  163.  
  164. 3.  Implementation models
  165.  
  166.    This section introduces a number of terms for types of
  167.    implementations that are likely to emerge.  It is important to have
  168.    these different implementation models in mind as there is no single
  169.    approach that fits all models best.
  170.  
  171.  
  172. Bormann                                                         [Page 3]
  173.  
  174. INTERNET-DRAFT The Multi-Class Extension to Multi-Link PPPSeptember 1996
  175.  
  176. 3.1.  Sender types
  177.  
  178.    There are two fundamental approaches to real-time transmission on
  179.    low-bitrate links:
  180.  
  181.    Sender type 1
  182.         The PPP real-time framing implementation is able to control the
  183.         transmission of each byte being transmitted with some known,
  184.         bounded delay (e.g., due to FIFOs).  For example, this is
  185.         generally true of PC host implementations, which directly access
  186.         serial interface chips byte by byte or by filling a very small
  187.         FIFO.  For type 1 senders, a suspend/resume type approach will
  188.         be typically used: When a long frame is to be sent, the attempt
  189.         is to send it undivided; only if higher priority packets come up
  190.         during the transmission will the lower-priority long frame be
  191.         suspended and later resumed.  This approach allows the minimum
  192.         variation in access delay for high-priority packets; also,
  193.         fragmentation overhead is only incurred when actually needed.
  194.  
  195.    Sender type 2
  196.         With type 2 senders, the interface between the PPP real-time
  197.         framing implementation and the transmission hardware is not in
  198.         terms of streams of bytes, but in terms of frames, e.g., in the
  199.         form of multiple (prioritized) send queues directly supported by
  200.         hardware.  This is often true of router systems for synchronous
  201.         links, in particular those that have to support a large number
  202.         of low-bitrate links.  As type 2 senders have no way to suspend
  203.         a frame once it has been handed down for transmission, they
  204.         typically will use a queues-of-fragments approach, where long
  205.         packets are always split into units that are small enough to
  206.         maintain the access delay goals for higher-priority traffic.
  207.         There is a trade-off between the variation in access delay
  208.         resulting from a large fragment size and the overhead that is
  209.         incurred for every long packet by choosing a small fragment
  210.         size.
  211.  
  212. 3.2.  Receiver types
  213.  
  214.    Although the actual work of formulating transmission streams for
  215.    real-time applications is performed at the sender, the ability of the
  216.    receiver to immediately make use of the information received depends
  217.    on its characteristics:
  218.  
  219.    Receiver type 1
  220.         Type 1 receivers have full control over the stream of bytes
  221.         received within PPP frames, i.e., bytes received are available
  222.         immediately to the PPP real-time framing implementation (with
  223.         some known, bounded delay e.g. due to FIFOs etc.).
  224.  
  225.    Receiver type 2
  226.         With type 2 receivers, the PPP real-time framing implementation
  227.         only gets hold of a frame when it has been received completely,
  228.         i.e., the final flag has been processed (typically by some HDLC
  229.  
  230. Bormann                                                         [Page 4]
  231.  
  232. INTERNET-DRAFT The Multi-Class Extension to Multi-Link PPPSeptember 1996
  233.  
  234.         chip that directly fills a memory buffer).
  235.  
  236. 4.  Using existing mechanisms
  237.  
  238.    Suspending the transmission of packets and resuming their
  239.    transmission later on is a kind of fragmentation.  Fragmentation is
  240.    existing functionality of the IP layer.  As fragmentation and
  241.    reassembly also are useful in a logical link composed of multiple
  242.    physical links, PPP Multilink (a standards track protocol) already
  243.    defines a fragmentation mechanism [2].  Unfortunately, neither
  244.    approach, as is, fulfills all the requirements listed above.
  245.  
  246.  
  247. 4.1.  Using IP fragmentation
  248.  
  249.    An IPv4 header already contains fields that allow a large IP datagram
  250.    to be fragmented into small parts.  A queues-of-fragments type sender
  251.    might simply indicate a small MTU to its IP stack and thus cause all
  252.    larger datagrams to be fragmented down to a size that allows the
  253.    access delay goals to be met[1].  (Also, a PPP implementation can
  254.    negotiate down the MTU of its peer, causing the peer to fragment to a
  255.    small size, which might be considered a crude form of negotiating an
  256.    access delay goal with the peer system -- if that system supports
  257.    priority queueing at the fragment level.)
  258.  
  259.    Unfortunately, a full, 20 byte IP header is needed for each fragment
  260.    (larger when IP options are used).  This limits the minimum size of
  261.    fragment that can be used without too much overhead.  (Also, the size
  262.    of non-final fragments must be a multiple of 8, further limiting the
  263.    choice.)  With path MTU discovery, IP level fragmentation causes TCP
  264.    implementations to use small MSSs -- this further increases the per-
  265.    packet overhead to 40 bytes per fragment.
  266.  
  267.    In any case, fragmentation at the IP level persists on the path
  268.    further down to the datagram receiver, increasing the transmission
  269.    overheads and router load throughout the network.  With its high
  270.    overhead and the adverse effect on the Internet, IP level
  271.    fragmentation can only be a stop-gap mechanism when no other
  272.    fragmentation protocol is available in the peer implementation.
  273.  
  274.  
  275. 4.2.  Using PPP Multilink as-is
  276.  
  277.  
  278.    The PPP Multilink Protocol (MP) provides for sequence numbering and
  279.    begin/end bits, allowing packets to be split into fragments.
  280. _________________________
  281.   [1] This assumes that the IP stack is able to priority-tag frag-
  282. ments,  or  that  the  PPP implementation is able to correlate the
  283. fragments to the initial one that carries the information relevant
  284. for  prioritizing,  or  that  only  initial fragments can be high-
  285. priority.
  286.  
  287.  
  288. Bormann                                                         [Page 5]
  289.  
  290. INTERNET-DRAFT The Multi-Class Extension to Multi-Link PPPSeptember 1996
  291.  
  292.  
  293.        Figure 1: Multilink Short Sequence Number Fragment Format [2]
  294.  
  295.  
  296.                 +---------------+---------------+
  297.    PPP Header:  | Address 0xff  | Control 0x03  |
  298.                 +---------------+---------------+
  299.                 | PID(H)  0x00  | PID(L)  0x3d  |
  300.                 +-+-+-+-+-------+---------------+
  301.    MP Header:   |B|E|0|0|    sequence number    |
  302.                 +-+-+-+-+-------+---------------+
  303.                 |    fragment data              |
  304.                 |               .               |
  305.                 |               .               |
  306.                 |               .               |
  307.                 +---------------+---------------+
  308.    PPP FCS:     |              FCS              |
  309.                 +---------------+---------------+
  310.  
  311.    (Note that the address, control, and most significant PID bytes are
  312.    often negotiated to be compressed away.)
  313.  
  314.    MP's monotonically increasing sequence numbering (contiguous numbers
  315.    are needed for all fragments of a packet) does not allow to suspend
  316.    sending a sequence of fragments of one packet for sending another
  317.    packet.  It is, however, possible to send intervening packets that
  318.    are not encapsulated in multilink headers; thus, MP supports two
  319.    levels of priority.
  320.  
  321.    The multilink-as-is approach can be built using existing standards;
  322.    multilink capability is now widely deployed and only the sending side
  323.    needs to be aware that they are using this for giving priority to
  324.    real-time packets.
  325.  
  326. 4.3.  Limitations of multilink as-is
  327.  
  328.    Multilink-as-is is not the ideal solution for a number of reasons.
  329.    First, because of the single monotonically increasing serial number,
  330.    there is only one level of suspension:  ``Big'' packets that are sent
  331.    via multilink can be suspended by ``small'' packets sent outside of
  332.    multilink; the latter are not suspendable.
  333.  
  334.    Second, the ``end'' bit is in the multilink header, which is the
  335.    wrong place for suspend/resume type senders.  To make a big packet
  336.    suspendable, it must be sent with the ``end'' bit off, and (unless
  337.    the packet was suspended a small number of bytes before its end) an
  338.    empty fragment has to be sent afterwards to ``close'' the packet.
  339.    The minimum overhead for sending a suspendable packet thus is twice
  340.    the multilink header size (six bytes, including a compressed
  341.    multilink protocol field) plus one PPP framing (three bytes).  Each
  342.    suspension costs another six bytes (not counting the overhead of the
  343.    framing for the intervening packet).
  344.  
  345.  
  346. Bormann                                                         [Page 6]
  347.  
  348. INTERNET-DRAFT The Multi-Class Extension to Multi-Link PPPSeptember 1996
  349.  
  350.    Third, the multi-link header is relatively large; as delay bounds
  351.    become small (for queues-of-fragments type implementations) or the
  352.    frequency of small high-priority packets increases (for
  353.    suspend/resume type implementations), the overhead may become
  354.    significant.
  355.  
  356.    The general approach of this document is to start from PPP Multilink
  357.    and provide a number of extensions to add functionality and reduce
  358.    the overhead of using PPP Multilink for real-time transmission.
  359.  
  360. 5.  Extending PPP Multilink to multiple classes
  361.  
  362.    The obvious approach to providing more than one level of suspension
  363.    with PPP Multilink is to run Multilink multiple times over one link.
  364.    Multilink as it is defined provides no way for more than one instance
  365.    to be active.  Fortunately, a number of bits are unused in the
  366.    Multilink header: two bits in the short sequence number format (as
  367.    can be seen in Figure 1), six in the long sequence number format.
  368.  
  369.    This document defines (some of the) previously unused bits as a class
  370.    number:
  371.  
  372.        Figure 2: Short Sequence Number Fragment Format With Classes
  373.                 +---------------+---------------+
  374.    PPP Header:  | Address 0xff  | Control 0x03  |
  375.                 +---------------+---------------+
  376.                 | PID(H)  0x00  | PID(L)  0x3d  |
  377.                 +-+-+-+-+-------+---------------+
  378.    MP Header:   |B|E|cls|    sequence number    |
  379.                 +-+-+-+-+-------+---------------+
  380.                 |    fragment data              |
  381.                 |               .               |
  382.                 |               .               |
  383.                 |               .               |
  384.                 +---------------+---------------+
  385.    PPP FCS:     |              FCS              |
  386.                 +---------------+---------------+
  387.  
  388.    Each class runs a separate copy of the mechanism defined in [2], i.e.
  389.    uses a separate sequence number space and reassembly buffer.
  390.  
  391.    Similarly, for the long sequence number format:
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404. Bormann                                                         [Page 7]
  405.  
  406. INTERNET-DRAFT The Multi-Class Extension to Multi-Link PPPSeptember 1996
  407.  
  408.  
  409.        Figure 3:  Long Sequence Number Fragment Format With Classes
  410.  
  411.                 +---------------+---------------+
  412.    PPP Header:  | Address 0xff  | Control 0x03  |
  413.                 +---------------+---------------+
  414.                 | PID(H)  0x00  | PID(L)  0x3d  |
  415.                 +-+-+-+-+-+-+-+-+---------------+
  416.    MP Header:   |B|E| class |0|0|sequence number|
  417.                 +-+-+-+-+-+-+-+-+---------------+
  418.                 |      sequence number (L)      |
  419.                 +---------------+---------------+
  420.                 |        fragment data          |
  421.                 |               .               |
  422.                 |               .               |
  423.                 |               .               |
  424.                 +---------------+---------------+
  425.    PPP FCS:     |              FCS              |
  426.                 +---------------+---------------+
  427.  
  428.  
  429.    Together with the ability to send packets without a multilink header,
  430.    this provides four levels of suspension with 12-bit headers (probably
  431.    sufficient for many practical applications) and sixteen levels with
  432.    24-bit headers (only four of the six free bits are used in this case
  433.    -- based on the rationale given above, sixteen levels should
  434.    generally be more than sufficient).
  435.  
  436. 6.  Sending the final bit at the end of the packet
  437.  
  438.    As explained above, having the ``end'' bit within the packet header
  439.    causes additional overhead with suspend/resume type senders.  This
  440.    section defines an alternative way to convey the end bit that allows
  441.    deferring the decision whether the fragment is final or needs to be
  442.    suspended to the point in time when the fragment is ended.
  443.  
  444.    In this scheme, the value of the end bit is contained in the last
  445.    byte of each frame information field.  If the byte has the value
  446.    SUSPEND (0xC3), the end bit is zero (i.e., the fragment is not the
  447.    last one of the packet); the byte is NOT part of the data of the
  448.    packet.  If the byte has the value END (0xDE), the end bit is one
  449.    (i.e., this is the last fragment of the packet); the byte is NOT part
  450.    of the data of the packet.  If the byte has any other value, the end
  451.    bit is one (i.e., this is the last fragment of the packet); the byte
  452.    IS part of the data of the fragment.  (Assuming an equal distribution
  453.    of final bytes[2], the average overhead of this scheme for non-
  454. _________________________
  455.   [2] Actually,  the  distribution is not at all equal: In a trace
  456. of slightly more than a million packets on a  busy  Ethernet,  the
  457. values 0xDE and 0xC3 both occurred only 244 times as the last byte
  458. of a packet.  Obviously, the distribution will not be  as  unequal
  459. when data compression and/or encryption are in use.
  460.  
  461.  
  462. Bormann                                                         [Page 8]
  463.  
  464. INTERNET-DRAFT The Multi-Class Extension to Multi-Link PPPSeptember 1996
  465.  
  466.    suspended frames is 1/128 byte; the overhead for suspended frames is
  467.    exactly 1 byte.)
  468.  
  469.    As the end bit is then no longer required in the header, the free bit
  470.    can be used as an additional bit for the class number in the short
  471.    sequence number fragment format:
  472.  
  473.      Figure 4: Short Sequence Number Fragment Format With Classes and
  474.    Trailing End Bit
  475.                 +---------------+---------------+
  476.    PPP Header:  | Address 0xff  | Control 0x03  |
  477.                 +---------------+---------------+
  478.                 | PID(H)  0x00  | PID(L)  0x3d  |
  479.                 +-+-+-+-+-------+---------------+
  480.    MP Header:   |B|class|    sequence number    |
  481.                 +-+-+-+-+-------+---------------+
  482.                 |    fragment data              |
  483.                 |               .               |
  484.                 |               .               |
  485.                 |               .               |
  486.                 |               ................+
  487.                 |               . SSP/TRM (opt) :
  488.                 +---------------+---------------+
  489.    PPP FCS:     |              FCS              |
  490.                 +---------------+---------------+
  491.  
  492.  
  493.    For the long sequence number fragment format, the freed bit is sent
  494.    as zero.
  495.  
  496. 7.  Prefix elision: Compressing common header bytes
  497.  
  498.    For some applications, all packets of a certain class will have a
  499.    common protocol identifier (or even more than one common prefix
  500.    byte).  In this case, the following optimization is possible: the
  501.    class number can be associated with a prefix of bytes that are
  502.    removed from each packet before transmission and that are implicitly
  503.    prepended to the reassembled packet after reception.
  504.  
  505.    Note that if only some of the packets to be transmitted at a certain
  506.    level of priority have the common prefix, it may still be possible to
  507.    utilize this method by allocating two class numbers and only
  508.    associating one of them with the prefix.  (This is the reason four of
  509.    the unused bits in the long sequence number format have been
  510.    allocated to the class number instead of the three that generally
  511.    should suffice.)
  512.  
  513.    Prefix elision is not a replacement for header compression or data
  514.    compression: it allows to compress away prefixes that often are not
  515.    reachable by these other methods.
  516.  
  517.  
  518.  
  519.  
  520. Bormann                                                         [Page 9]
  521.  
  522. INTERNET-DRAFT The Multi-Class Extension to Multi-Link PPPSeptember 1996
  523.  
  524. 8.  The compact fragment format
  525.  
  526.    This section describes an optional multilink fragment format that is
  527.    more optimized towards single-link operation and frequent suspension
  528.    (type 1)/a small fragment size (type 2).  This format has been
  529.    designed to retain the overall HDLC based format of frames, so that
  530.    existing synchronous HDLC chips and async to sync converters can be
  531.    used on the link.  If the design can be optimized for async only
  532.    operation, more design alternatives are available [4]; with the
  533.    advent of V.80 style modems, asynchronous communications may decrease
  534.    in importance, though.
  535.  
  536.    When operating over a single link, the Multilink sequence number is
  537.    used only for loss detection.  Even a 12-bit sequence number clearly
  538.    is larger than required for this application on most kinds of links.
  539.    We therefore define a third, compact multilink header format option.
  540.  
  541.    As, with a compact header, we can expect all packets to be sent over
  542.    the multilink, we can provide an additional compression mechanism for
  543.    this format: the MP protocol identifier is not sent with the compact
  544.    fragment header.  This obviously requires prior negotiation (similar
  545.    to the way address and control field compression are negotiated), as
  546.    well as avoiding the bit combination 0xFF, as the start of a new LCP
  547.    negotiation could otherwise not be reliably detected.
  548.  
  549.  
  550. 9.  Normal header:
  551.  
  552.  
  553.             Figure 5:  Compact Fragment Format (Normal Header).
  554.      0   1   2   3   4   5   6   7
  555.    +---+---+---+---+---+---+---+---+
  556.    | R |  sequence |   class   | 1 |
  557.    +---+---+---+---+---+---+---+---+
  558.    |            data               |
  559.    :                               :
  560.    +...............................+
  561.    :       SUSPEND/TERMINATE       :
  562.    +---+---+---+---+---+---+---+---+
  563.    |             Frame             |
  564.    |              CRC              |
  565.    +---+---+---+---+---+---+---+---+
  566.  
  567.  
  568.    Having the last bit always be 1 helps with HDLC chips that operate
  569.    specially on least significant bits in HDLC addresses.
  570.  
  571.    The R bit is the inverted equivalent of the B bit in the other
  572.    fragment formats, i.e. R = 1 means that this fragment resumes a
  573.    packet previous fragments of which have been sent already.
  574.  
  575.    The following trick avoids the case of a header byte of 0xFF: For
  576.    class 7, the R bit can never be one.  This means that class 7 frames
  577.  
  578. Bormann                                                        [Page 10]
  579.  
  580. INTERNET-DRAFT The Multi-Class Extension to Multi-Link PPPSeptember 1996
  581.  
  582.    cannot be suspended/resumed.  (This is also the reason the sense of
  583.    the B bit is inverted to an R bit in the compact fragment format.)
  584.  
  585.    [[[The sequence number is not particularly useful with class 7 and
  586.    could be used to distinguish eight more classes -- this would add
  587.    complexity but also increase the usefulness of prefix elision.  The
  588.    author currently does not see a strong requirement for this.]]]
  589.  
  590. 10.  Insertion header:
  591.  
  592.    In many cases, when a frame is suspended, a very short frame is
  593.    interspersed and the suspended frame is then immediately continued.
  594.    In certain cases, it may be beneficial to further reduce the overhead
  595.    associated with this by removing the intermediate flag(s) and
  596.    replacing the 16-bit (or larger) CRC by a smaller CRC.
  597.  
  598.    If the compact fragment format with insertion headers is negotiated,
  599.    a frame in the compact fragment format can start with the content of
  600.    one or more short packets, called ``insertions''.  Each of these
  601.    packets is protected by an 8-bit CRC, computed over the insertion
  602.    header byte and the data part sent in the insertion.  At the end of
  603.    the insertion, no flag is sent, but another (insertion or normal)
  604.    header follows immediately.  The frame finally ends in a normal
  605.    header, data for this header, and a frame CRC that covers the entire
  606.    of all inserted and normal packets.  Alternatively, the frame can
  607.    simply be ended after an inserted packet by sending the frame CRC and
  608.    terminating flag(s).
  609.  
  610.           Figure 6:  Compact Fragment Format (Insertion Header).
  611.      0   1   2   3   4   5   6   7
  612.    +---+---+---+---+---+---+---+---+
  613.    |        length L       | C | 0 |
  614.    +---+---+---+---+---+---+---+---+
  615.    :                               :
  616.    :        Inserted packet        :
  617.    :          (length L)           :
  618.    :                               :
  619.    +---+---+---+---+---+---+---+---+
  620.    |           8-bit CRC           |
  621.    +---+---+---+---+---+---+---+---+
  622.    |          next header          |
  623.    :     (insertion or normal)     :
  624.    :      (possibly repeated)      :
  625.    +---+---+---+---+---+---+---+---+
  626.    |    Frame CRC (covering all    |
  627.    |  all data between the flags)  |
  628.    +---+---+---+---+---+---+---+---+
  629.  
  630.  
  631.    The class number of a packet in the insertion is computed from the C-
  632.    bit as ``class = C + 8'', i.e., we reserve classes 8 and 9 for
  633.    inserted packets.  As an example, one could use class number 8 for
  634.    compressed RTP (saving one or two additional bytes with prefix
  635.  
  636. Bormann                                                        [Page 11]
  637.  
  638. INTERNET-DRAFT The Multi-Class Extension to Multi-Link PPPSeptember 1996
  639.  
  640.    elision) and 9 for any other packet type.  (Note that, as with class
  641.    7, classes 8 and 9 cannot be suspended, as there is no way to
  642.    indicate suspension or resumption.)
  643.  
  644.    Since not all serial hardware can immediately deliver initial parts
  645.    of frames that have not yet completely arrived (see ``type 2
  646.    receivers'' in section 3 above), the use of the insertion header may
  647.    be counter-productive in achieving latency goals; it therefore can be
  648.    negotiated separately from the use of the normal compact header..
  649.    Also, because the initial byte of the HDLC frame has a zero LSB, this
  650.    format may not be applicable if chips are used that do strange things
  651.    with the last bit of address field bytes.
  652.  
  653.  
  654.  
  655.    Implementation note: A sender should not send too many insertions
  656.    before a normal header fragment in one frame, as the overall
  657.    reliability of the actual data part of the frame (as indicated by the
  658.    frame CRC) suffers.
  659.  
  660.  
  661. 11.  Negotiable options
  662.  
  663.    The following options are already defined by MP:
  664.  
  665.    o    Multilink Maximum Received Reconstructed Unit
  666.  
  667.    o    Multilink Short Sequence Number Header Format
  668.  
  669.    o    Endpoint Discriminator
  670.  
  671. 11.1.  Multilink header format option
  672.  
  673.  
  674.    A summary of the Multilink Header Format Option format is shown
  675.    below.  The fields are transmitted from left to right.
  676.  
  677.                                  Figure 7:
  678.     0                   1                   2
  679.     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
  680.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  681.    |  Type = TBD   |  Length = 3   |     Code      |
  682.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  683.  
  684.  
  685.    This option advises the peer that the implementation wishes to
  686.    receive fragments with a format given by the code number.  By
  687.    default, long sequence number multilink headers without classes and
  688.    the end bit in the header are used.  When this option is received, an
  689.    implementation MUST either transmit all subsequent multilink packets
  690.    on all links of the bundle with the multilink header format given or
  691.    configure-NAK or configure-Reject the option.
  692.  
  693.  
  694. Bormann                                                        [Page 12]
  695.  
  696. INTERNET-DRAFT The Multi-Class Extension to Multi-Link PPPSeptember 1996
  697.  
  698.    The value defined for code are:
  699.  
  700.    -    0 or option not present: long sequence number fragment format
  701.  
  702.    -    2: long sequence number fragment format with classes
  703.  
  704.    -    3: long sequence number fragment format with classes and
  705.         trailing end bit
  706.  
  707.    -    4 or Short Sequence Number Header Format Option (type 18)
  708.         present: short sequence number fragment format
  709.  
  710.    -    6: short sequence number fragment format with classes
  711.  
  712.    -    7: short sequence number fragment format with classes and
  713.         trailing end bit
  714.  
  715.    -    11: compact fragment format (always with classes and trailing
  716.         end bit) with normal header only
  717.  
  718.    -    15: compact fragment format (always with classes and trailing
  719.         end bit) with normal and insertion headers
  720.  
  721.    [[[Note for further discussion: The number of alternatives is too
  722.    large.  The variations possible should be restricted to have a good
  723.    chance that two peer implementations have one option in common.]]]
  724.  
  725. 11.2.  Prefix elision option
  726.  
  727.  
  728.    This option advises the peer that the implementation wishes to send
  729.    only packets with a certain prefix in each of the given classes; the
  730.    prefix is not sent as part of the information in the fragment(s) of
  731.    this class.  By default, this common prefix is empty for all classes.
  732.    When this option is received, an implementation MUST either add the
  733.    prefix given for the class to all subsequently received multilink
  734.    packets of each of the given classes on all links of the bundle or
  735.    configure-NAK or configure-Reject the option.
  736.  
  737.    If one of the formats with classes has not been negotiated, class 0
  738.    is used to indicate a common prefix for all packets sent within
  739.    multilink fragments.
  740.  
  741.                                  Figure 8:
  742.     0                   1                   2                   3
  743.     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  744.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  745.    |   Type = TBD  | Option Length |    Class      | Prefix Length |
  746.    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  747.    |   Prefix...
  748.    +-+-+-+-+-+-+-+-+
  749.  
  750.  
  751.  
  752. Bormann                                                        [Page 13]
  753.  
  754. INTERNET-DRAFT The Multi-Class Extension to Multi-Link PPPSeptember 1996
  755.  
  756.    Note that the sense of this option is an indication from the sender
  757.    to the receiver, unlike most PPP options that indicate capabilities
  758.    of the receiver to the sender.
  759.  
  760. 12.  Acknowledgements
  761.  
  762.    David Oran suggested using PPP Multilink for real-time framing and
  763.    reminded the author of his earlier attempts of making Multilink more
  764.    useful for this purpose.  The participants in a lunch BOF at the
  765.    Montreal IETF gave useful input on the design tradeoffs in various
  766.    environments.
  767.  
  768.  
  769. 13.  References
  770.  
  771.  
  772.    [1]  C. Bormann, Providing integrated services over low-bitrate
  773.         links, work in progress (draft-ietf-issll-isslow-00.txt), June
  774.         1996.
  775.  
  776.    [2]  K. Sklower, B. Lloyd, G. McGregor, D. Carr, T. Coradetti, ``The
  777.         PPP Multilink Protocol (MP)'', RFC 1990, August 1996 (obsoletes
  778.         RFC1717).
  779.  
  780.    [3]  W. Simpson, ``PPP in Frame Relay'', RFC 1973, June 1996.
  781.  
  782.    [4]  R. Andrades, F. Burg, ``QOSPPP Framing Extensions to PPP'',
  783.         September 20, 1996, Work in Progress (draft-andrades-framing-
  784.         ext-00.txt).
  785.  
  786.  
  787. 14.  Addresses
  788.  
  789.  
  790. 14.1.  Working Group
  791.  
  792.    The ISSLL working group can be contacted via the co-chairs, Eric
  793.    Crawley <esc@baynetworks.com> and John Wroclawski <jtw@lcs.mit.edu>,
  794.    or via its WG mailing list <issll@mercury.lcs.mit.edu>.
  795.  
  796. 14.2.  Author's address
  797.  
  798.  
  799.    Carsten Bormann
  800.    Universitaet Bremen FB3 TZI
  801.    Postfach 330440
  802.    D-28334 Bremen, GERMANY
  803.    cabo@informatik.uni-bremen.de
  804.    phone +49.421.218-7024
  805.  
  806.  
  807.  
  808.  
  809.  
  810. Bormann                                                        [Page 14]
  811.  
  812. INTERNET-DRAFT The Multi-Class Extension to Multi-Link PPPSeptember 1996
  813.  
  814. A.  Benchmarks
  815.  
  816.    For the following considerations, we will define the ``normal'' PPP
  817.    header overhead to be four bytes: one byte of protocol identifier
  818.    (assuming address and control field compression as well as the use of
  819.    protocols that have protocol identifiers that can be compressed to
  820.    one byte), two bytes of CRC and one byte of flag.  These assumptions
  821.    are not entirely accurate, as the protocol identifier and the CRC are
  822.    subject to bit- or octet-stuffing, slightly increasing the overhead.
  823.    In addition, many of the synchronous serial chips used today cannot
  824.    easily output frames that are delimited by only a single flag byte.
  825.  
  826.    Just sending two packets sequentially using standard encapsulation
  827.    thus costs 8 bytes:
  828.  
  829.            Pid1 . . . 2*CRC Flag Pid2 . . . 2*CRC Flag
  830.  
  831.    Basic 12-bit multilink adds 3 bytes of header overhead to each
  832.    packet, as well as six bytes (the same three bytes plus four bytes
  833.    normal PPP overhead, minus the protocol identifier) to each
  834.    additional fragment.
  835.  
  836.            MPPid 2*MPH Pid . . . 2*CRC Flag
  837.            Pid . . . 2*CRC Flag
  838.            MPPid 2*MPH . . . 2*CRC Flag
  839.  
  840.    Being able to insert a real-time frame into a long packet
  841.    encapsulated in basic multilink therefore requires 9 more bytes of
  842.    overhead than just sending the two packets sequentially using
  843.    standard encapsulation.  The six-byte overhead will generally recur
  844.    for longer packets, as the final bit is in the packet header and thus
  845.    at least one additional fragment (zero length, just to carry the
  846.    final bit) is required.
  847.  
  848.    12-bit multilink with classes does not change the overhead at the top
  849.    level of priorities, unless the header prefix option is used and is
  850.    useful (i.e., only a small number of PPP protocol identifiers is in
  851.    use).  In that case, 1 byte of overhead is saved per low-priority
  852.    packet.
  853.  
  854.    The compact header reduces the additional per-packet overhead to 1
  855.    byte (or 0 bytes if the header prefix option is effective).  The
  856.    total additional overhead for the insertion of a real-time frame thus
  857.    is only 6 to 4 bytes, if the special insertion header cannot be used.
  858.  
  859.            NH [Pid] . . . 2*CRC Flag
  860.            NH [Pid] . . . 2*CRC Flag
  861.            NH . . . 2*CRC Flag
  862.  
  863.    If the insertion header can be used, the additional overhead is
  864.    reduced by two more bytes, i.e., 4 to 2 bytes (of which one is the
  865.    block check byte).
  866.  
  867.  
  868. Bormann                                                        [Page 15]
  869.  
  870. INTERNET-DRAFT The Multi-Class Extension to Multi-Link PPPSeptember 1996
  871.  
  872.  
  873.            NH [Pid] . . . 2*CRC Flag
  874.            IH [Pid] . . . 1*CRC NH . . . 2*CRC Flag
  875.  
  876.  
  877.    H.223 achieves even better numbers by using a per-packet CRC only (2
  878.    bytes saved) and, in the best case that the inserted packet is of a
  879.    repetitive length that has been defined in the multiplex table, a
  880.    common header for both elements of the second frame (1 more byte
  881.    saved).  The first saving does not seem to be practical with many
  882.    current synchronous chips (although it could be made an option, in
  883.    particular for asynchronous applications -- some way would have to be
  884.    found to protect the compact header then, though); the second saving
  885.    is dubious in a more dynamic, multiple-packet-stream environment.
  886.  
  887. B.  Usage Scenarios
  888.  
  889.    Scenario: Two low-bitrate links are in the path between two internet
  890.    telephones that use G.723.1 compression for 20 byte audio packets (as
  891.    per G.723.1), with C-RTP headers of 2 bytes.  These are repeated
  892.    every 30 ms.
  893.  
  894.    To simplify the calculations, background traffic consists of a
  895.    continuous, infinite length packet.  For packet size distributions
  896.    found in actual use, the resulting numbers would be more favorable to
  897.    compact headers.
  898.  
  899.    For the compact header, the PPP overhead is four bytes; for insertion
  900.    headers, it is two bytes; in both cases, any packet that was
  901.    interrupted needs to be resumed with an additional overhead of four
  902.    bytes.  For the 12-bit header without classes, the PPP overhead for
  903.    the audio frames also is four bytes; the overhead per fragment of
  904.    other data is six bytes.
  905.  
  906.    As an rather lenient performance requirement, we allow a round-trip
  907.    delay budget of 300 ms (note that investigations show that this delay
  908.    already significantly reduces the mean opinion score).  Of the 150 ms
  909.    available per path, 70 ms are reserved for delays in the rest of the
  910.    path, so 40 ms is the delay budget per link; we neglect transmission
  911.    delays.  (If better values than 70 ms in the network become
  912.    realistic, it is likely that one would want to reduce the overall
  913.    delay instead of allocating more of it to the low-speed links).
  914.  
  915.  
  916. B.1.  GSM Scenario (9600 bit/s)
  917.  
  918.    We assume a transparent, full-duplex 9600 bit/s link as could be
  919.    found on a full rate traffic channel in the GSM mobile phone system.
  920.    For these considerations, we ignore the additional delays that are
  921.    encountered in the air interface and its interleaving mechanisms.
  922.  
  923.    At 1200 bytes per second, a maximum of 36 bytes can be transmitted
  924.    per 30 ms; note that for 22 bytes of payload at 1200 byte/s, about 20
  925.  
  926. Bormann                                                        [Page 16]
  927.  
  928. INTERNET-DRAFT The Multi-Class Extension to Multi-Link PPPSeptember 1996
  929.  
  930.    ms of the 40 ms delay budget are already taken for the actual sending
  931.    of the packet.  A regular fragmentation schedule would therefore have
  932.    to operate in 20 ms units, at about 24 bytes per fragment (of which
  933.    six are taken for fragmentation overhead -- an efficiency of about 75
  934.    %).  At 1200 bytes per second, the load during a talkspurt is 26/1200
  935.    seconds every 30 ms, i.e., 22 ms every 30 ms; the capacity remaining
  936.    for data is about 170 byte/s.
  937.  
  938.    It is obvious that an efficient fragmentation mechanism is required
  939.    to allow significant data to flow during talkspurts.  With insertion
  940.    headers, the overhead per packet can be limited to 6 bytes, leaving
  941.    room for 8 bytes of actual data per 30 ms, or 270 byte/s.
  942.  
  943.    Note that, as the access delay is very small with a suspend/resume
  944.    mode, part of the delay budget could be used by the application for
  945.    assembling two G.723.1 frames into one packet (at 40 + 2 C-RTP
  946.    bytes); there is then room for 24 bytes of non-audio data per 60 ms,
  947.    or 400 byte/s.
  948.  
  949.  
  950. B.2.  V.34 Modem scenario (24000 to 28800 bit/s)
  951.  
  952.    We assume a link speed of 3000 byte/s as not all V.34 modem
  953.    communication reaches the full speed of 3600 byte/s (28800 bit/s).
  954.    At this speed, the transmission of 22 bytes of audio payload takes
  955.    about 8 ms, so about 32 ms of the 40 ms link delay budget is
  956.    available for access delay.  With a regular fragmentation schedule
  957.    based on 12-bit headers, this allows a fragment size of 90 bytes plus
  958.    6 bytes of fragment overhead, i.e. about 7 % loss due to
  959.    fragmentation.  As 26 out of the 90 bytes that can be sent in 30 ms
  960.    are used for the audio packets, an average of 64/96 such 90 byte
  961.    fragments can be sent per 30 ms, leading to a remaining data
  962.    throughput of about 2000 byte/s.
  963.  
  964.    With compact headers (including the insertion option) and
  965.    suspend/resume operation, the audio information can be sent using
  966.    only two bytes of overhead per audio packet, leaving 66 of the 90
  967.    bytes that can be sent in 30 ms to data packets, of which four bytes
  968.    is lost to PPP overhead, resulting in a remaining data throughput of
  969.    about 2070 byte/s.  If the application makes use of the reduced
  970.    jitter of suspend/resume by combining two audio packets into one, 136
  971.    of 180 bytes that can be sent in 60 ms are available to data packets,
  972.    of which, again, four bytes is lost to PPP overhead, resulting in a
  973.    remaining data throughput of about 2200 byte/s.
  974.  
  975.  
  976. B.3.  ISDN scenario (56000 to 64000 bit/s)
  977.  
  978.    We assume a link speed of 7000 (US) to 8000 (non-US) byte/s.  For a
  979.    regular fragmentation schedule, similar calculations lead to a
  980.    fragment size of 260 to 300 bytes, for about 2 % of fragmentation
  981.    overhead.  The approximate numbers resulting for remaining data
  982.    throughput, based on 64 kbit/s (8000 byte/s) are: 7000 byte/s for a
  983.  
  984. Bormann                                                        [Page 17]
  985.  
  986. INTERNET-DRAFT The Multi-Class Extension to Multi-Link PPPSeptember 1996
  987.  
  988.    regular schedule of 300 byte fragments, 7070 byte/s for compact
  989.    headers, and 7200 byte/s for compact headers making use of double
  990.    size packets.
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042. Bormann                                                        [Page 18]
  1043.  
  1044.