home *** CD-ROM | disk | FTP | other *** search
/ Unix System Administration Handbook 1997 October / usah_oct97.iso / rfc / 1100s / rfc1193.txt < prev    next >
Text File  |  1990-11-14  |  60KB  |  1,347 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                         D. Ferrari
  8. Request for Comments: 1193                                   UC Berkeley
  9.                                                            November 1990
  10.  
  11.  
  12.  
  13.         CLIENT REQUIREMENTS FOR REAL-TIME COMMUNICATION SERVICES
  14.  
  15. Status of this Memo
  16.  
  17.    This memo describes client requirements for real-time communication
  18.    services.  This memo provides information for the Internet community,
  19.    and requests discussion and suggestions for improvements.  It does
  20.    not specify any standard.  Distribution of this memo is unlimited.
  21.  
  22. Abstract
  23.  
  24.    A real-time communication service provides its clients with the
  25.    ability to specify their performance requirements and to obtain
  26.    guarantees about the satisfaction of those requirements.  In this
  27.    paper, we propose a set of performance specifications that seem
  28.    appropriate for such services; they include various types of delay
  29.    bounds, throughput bounds, and reliability bounds.  We also describe
  30.    other requirements and desirable properties from a client's
  31.    viewpoint, and the ways in which each requirement is to be translated
  32.    to make it suitable for lower levels in the protocol hierarchy.
  33.    Finally, we present some examples of requirements specification, and
  34.    discuss some of the possible objections to our approach.
  35.  
  36.    This research has been supported in part by AT&T Bell Laboratories,
  37.    the University of California under a MICRO grant, and the
  38.    International Computer Science Institute.  The views and conclusions
  39.    in this document are those of the author and should not be
  40.    interpreted as representing official policies, either expressed or
  41.    implied, of any of the sponsoring organizations.
  42.  
  43. 1.  Introduction
  44.  
  45.    We call real-time a computer communication service whose clients are
  46.    allowed to specify their performance requirements and to obtain
  47.    guarantees about the fulfillment of those requirements.
  48.  
  49.    Three terms in this definition need further discussion and
  50.    clarification: clients, performance, and guarantees.
  51.  
  52.    Network architecture usually consists, at least from a logical
  53.    viewpoint, of a stack of protocol layers. In the context of such an
  54.    architecture, the notions of client and server apply to a number of
  55.  
  56.  
  57.  
  58. Ferrari                                                         [Page 1]
  59.  
  60. RFC 1193          Requirements for Real-Time Services      November 1990
  61.  
  62.  
  63.    different pairs of entities: every layer (with the support of the
  64.    underlying layers) provides a service to the layer immediately above
  65.    it and is a client of its underlying layers.  In this paper, our
  66.    considerations generally apply to any client-server pair.  However,
  67.    most of them particularly refer to human clients (users, programmers)
  68.    and to the ways in which such clients express their communication and
  69.    processing needs to the system (e.g., interactive commands,
  70.    application programs).  This type of client is especially important,
  71.    since client needs at lower layers can be regarded as translations of
  72.    the needs expressed by human clients at the top of the hierarchy.
  73.    When the client is human, the server consists of the entire
  74.    (distributed) system, including the hosts, their operating systems,
  75.    and the networks interconnecting them.
  76.  
  77.    As for the generic term, performance, we will give it a fairly broad
  78.    meaning.  It will include not only delay and throughput, the two main
  79.    network performance indices, but also reliability of message
  80.    delivery.  Real-time communication is concerned with those aspects of
  81.    quality of service that have to do with performance in this broad
  82.    sense.
  83.  
  84.    The term guarantee in this paper has a rather strong legal flavor.
  85.    When a server guarantees a given level of performance for the
  86.    communications of a client, it commits itself to providing that
  87.    performance and to paying appropriate penalties if the actual
  88.    performance turns out to be insufficient.  On the other hand, the
  89.    client will have to obey certain rules, and will not be entitled to
  90.    the requested performance guarantees unless those rules are
  91.    scrupulously obeyed.  In other words, client and server have to enter
  92.    into a contract specifying their respective rights and duties, the
  93.    benefits that will accrue, the conditions under which those benefits
  94.    will materialize, and the penalties they will incur for not keeping
  95.    their mutual promises.  We believe that a legal viewpoint is to be
  96.    adopted if serious progress in the delivery of communication services
  97.    (not only the real-time ones) is desired.  Utility services, as well
  98.    as other kinds of service, are provided under legally binding
  99.    contracts, and a mature computer communication utility cannot fail to
  100.    do the same.  In the field of real-time communication, such a
  101.    contract will by definition include performance guarantees.
  102.  
  103.    Real-time services may be offered in any kind of network or
  104.    internetwork. Some of their predictable applications are:
  105.  
  106.       (a)  digital continuous-media (motion video, audio)
  107.            communication: lower bounds on throughput and upper bounds
  108.            on delay or delay variability or both are needed to ensure
  109.            any desired level of output quality; in the interactive case,
  110.            both the values of delay and delay variabilities have to be
  111.  
  112.  
  113.  
  114. Ferrari                                                         [Page 2]
  115.  
  116. RFC 1193          Requirements for Real-Time Services      November 1990
  117.  
  118.  
  119.            bounded; some limited message losses are often tolerable in
  120.            the cases of video and voice (whenever very high quality is
  121.            not required), but usually not in the case of sound;
  122.  
  123.       (b)  transmission of urgent messages in real-time distributed
  124.            systems: delay bounds are the important guarantees to be
  125.            provided in these applications; losses should ideally be
  126.            impossible;
  127.  
  128.       (c)  urgent electronic-mail messages and, more in general,
  129.            urgent datagrams: again, delay is the obvious index to be
  130.            bounded in this case, but small probabilities of losses can
  131.            often be tolerated;
  132.  
  133.       (d)  transfers of large files: minimum throughput bounds are
  134.            usually more important than delay bounds in this
  135.            application; also, all pieces of a file must be delivered
  136.            with probability 1;
  137.  
  138.       (e)  fast request-reply communication: e.g., data base queries,
  139.            information retrieval requests, remote procedure calls; this
  140.            is another case in which delay (more precisely, round-trip
  141.            delay) is the index of primary interest; reliability
  142.            requirements are generally not very stringent.
  143.  
  144.    We conjecture that, when networks start offering well-designed and
  145.    reasonably-priced real-time services, the use of such services will
  146.    grow beyond the expectations of most observers.  This will occur
  147.    primarily because new performance needs will be induced by the
  148.    availability of guaranteed-performance options.  As the history of
  149.    transportation and communication has repeatedly shown, faster
  150.    services bring about major increases of the shipments that are
  151.    perceived as urgent.  The phenomenon will be more conspicuous
  152.    whenever the quality of service provided to non-real-time clients
  153.    will deteriorate.  It is clear from this comment that we assume that
  154.    real-time services will coexist within the same networks and
  155.    internetworks with non-real-time communications.  Indeed, postulating
  156.    a world in which the two types of service are segregated rather than
  157.    integrated would be unrealistic, as it would go against the clear
  158.    trend towards the eventual integration of all information services.
  159.    For the same reason, the traffic in the network is assumed to be
  160.    heterogeneous, i.e., to consist of a variety of types of messages,
  161.    representing a variety of information media and their combinations,
  162.    with a wide spectrum of burstiness values (from uncompressed
  163.    continuous fixed-rate streams to very short and erratic bursts of
  164.    information).
  165.  
  166.    This paper discusses the client requirements and characteristics of a
  167.  
  168.  
  169.  
  170. Ferrari                                                         [Page 3]
  171.  
  172. RFC 1193          Requirements for Real-Time Services      November 1990
  173.  
  174.  
  175.    real-time communication service.  Server requirements and design
  176.    principles will be the subject of a subsequent paper.  Section 2
  177.    contains some considerations about the ways in which the clients
  178.    specify their requirements, and those in which a server should reply
  179.    to requests for real-time services.  Performance requirements are
  180.    presented in Section 3; other properties that clients may need or
  181.    desire are described in Section 4.  Section 5 deals with the problem
  182.    of translating the requirements of a human client or an application
  183.    for the equivalent lower-level ones.  In Section 6, we briefly
  184.    present four examples of client requirement specifications, and in
  185.    Section 7 we discuss some of the objections that can be raised
  186.    against our approach.
  187.  
  188. 2.  Client Requests and Server Replies
  189.  
  190.    No real-time service can be provided if the client does not specify,
  191.    together with the requirements, the characteristics of the expected
  192.    input traffic.  Describing input traffic and all the various
  193.    requirements entails much work on the part of a client.  Gathering
  194.    the necessary information and inputting it may be very time-
  195.    consuming.  A well-designed real-time communication service will
  196.    minimize the effort to be spent by a client.
  197.  
  198.    Sensible default values, the possibility of partial or incremental
  199.    specifications (e.g., by editing preexisting specifications), and a
  200.    number of standard descriptions should be provided.  These
  201.    descriptions will include characterizations of inputs (e.g., those of
  202.    a video stream for multimedia conferencing, an HDTV stream, a hi-fi
  203.    audio stream, a file transfer stream, and so on) and standard sets of
  204.    requirements.  With these aids, it might be possible for a human
  205.    client to specify his or her request by a short phrase, perhaps
  206.    followed by a few characters representing options or changes to the
  207.    standard or default values.
  208.  
  209.    Since requests for real-time services may be denied because of a
  210.    mismatch between the client's demands and the resources available to
  211.    the server, the client will appreciate being informed about the
  212.    reasons for any rejection, so that the request can be modified and
  213.    resubmitted, or postponed, or cancelled altogether [Herr89].  The
  214.    information provided by the server to a human client should be
  215.    meaningful, useful, and non-redundant.  The reason for rejection
  216.    should be understandable by the client (who should be assumed not to
  217.    know any of the details of the operating system, of the protocols or
  218.    of the network) and should be accompanied by data that will be useful
  219.    to the client in deciding what to do as well as how the request ought
  220.    to be modified to make it successful.  If, for example, a bound
  221.    specified by the client cannot be guaranteed by the server under its
  222.    current load, the information returned to the client should include
  223.  
  224.  
  225.  
  226. Ferrari                                                         [Page 4]
  227.  
  228. RFC 1193          Requirements for Real-Time Services      November 1990
  229.  
  230.  
  231.    the minimum or maximum value of the bound that the server could
  232.    guarantee; the client will thus be able to decide whether that bound
  233.    would be acceptable (possibly with some other modifications as well)
  234.    or not, and act accordingly.
  235.  
  236.    When the client is not a human being but an application or a process,
  237.    the type of a server's replies should be very different from that
  238.    just described [Herr89]; another standard interface, the one between
  239.    an application and a real-time service, must therefore be defined,
  240.    possibly in multiple, application-specific versions.
  241.  
  242.    Clients will also be interested in the pricing policies implemented
  243.    by the server: these should be fair (or at least perceived to be
  244.    fair) and easy to understand. The client should be able easily to
  245.    estimate charges for given performance guarantees as a function of
  246.    distance, time of day, and other variables, or to obtain these
  247.    estimates from the server as a free off-line service.
  248.  
  249. 3.  Performance Requirements
  250.  
  251.    A client can specify a service requirement using the general form
  252.  
  253.                                pred = TRUE,
  254.  
  255.    where some of the variables in predicate pred can be controlled or
  256.    influenced by the server.
  257.  
  258.    A simple and popular form of performance requirement is that
  259.    involving a bound.  A deterministic bound can be specified as
  260.  
  261.                   (var <= bound) = TRUE, or var <= bound,
  262.  
  263.    where variable var is server-controlled, while bound is client-
  264.    specified.  The bounds in these expressions are upper bounds; if  <
  265.    is replaced by  > , they become lower bounds.
  266.  
  267.    When the variable in the latter expression above is a probability, we
  268.    have a statistical bound, and bound in that case is a probability
  269.    bound; if the predicate is a deterministic bound, we have:
  270.  
  271.                  Prob (var <= bound) >= probability-bound.
  272.  
  273.    In this requirement, the variable has an upper bound, and the
  274.    probability a lower bound.  Note that deterministic bounds can be
  275.    viewed as statistical bounds that are satisfied with probability 1.
  276.  
  277.    A form of bound very similar to the statistical one is the fractional
  278.    bound:
  279.  
  280.  
  281.  
  282. Ferrari                                                         [Page 5]
  283.  
  284. RFC 1193          Requirements for Real-Time Services      November 1990
  285.  
  286.  
  287.                           Ca (var <= bound) >= b,
  288.  
  289.    where variable var has a value for each message in a stream, and Ca
  290.    is a function that counts the number of times var satisfies the bound
  291.    for any a consecutive messages in the stream; this number Ca must
  292.    satisfy bound b.  Obviously, a fractional bound is realizable only if
  293.    b <= a .  Fractional bounds will not be explicitly mentioned in the
  294.    sequel, but they can be used in lieu of statistical bounds, and have
  295.    over these bounds the avantages of easy verifiability and higher
  296.    practical interest.
  297.  
  298.    In this section, we restrict our attention to those requirements that
  299.    are likely to be the most useful to real-time clients.
  300.  
  301. 3.1  Delay requirements
  302.  
  303.    Depending on the application, clients may wish to specify their delay
  304.    requirements in different ways [Gait90].  The delays involved will
  305.    usually be those of the application-oriented messages known to the
  306.    client; for instance, the delay between the beginning of the client-
  307.    level transmission of a video frame, file, or urgent datagram and the
  308.    end of the client-level reception of the same frame, file, or urgent
  309.    datagram.  (In those cases, e.g., in some distributed real-time
  310.    systems, where message deadlines are assigned instead of message
  311.    delays, we can always compute the latter from knowledge of the former
  312.    and of the sending times, thereby reducing ourselves again to a delay
  313.    bound requirement.)  Also, they will be the delays of those messages
  314.    that are successfully delivered to the destination; the fraction of
  315.    messages that are not, to which the delay bounds will not apply, will
  316.    be bounded by reliability specifications.  Note that clients will
  317.    express delay bounds by making implicit reference to their own
  318.    clocks; the design of a real-time service for a large network will
  319.    have to consider the impact on bounds enforcement of non-synchronized
  320.    clocks [Verm90].  Some of the forms in which a delay requirement may
  321.    be specified are
  322.  
  323.    (i)  deterministic delay bound:
  324.  
  325.                           Di <= Dmax  for all i,
  326.  
  327.    the client is delivered to the destination client-level entity, and
  328.    Dmax is the delay upper bound specified by the client.  In our
  329.    descriptions we assume, without loss of generality, that the client
  330.    requesting a real-time service is the sending client, and that the
  331.    destination (which could be a remote agent of the client or another
  332.    user) is a third party with respect to the establishment of the
  333.    particular communication being considered (In our descriptions we
  334.    assume, without loss of generality, that the client requesting a
  335.  
  336.  
  337.  
  338. Ferrari                                                         [Page 6]
  339.  
  340. RFC 1193          Requirements for Real-Time Services      November 1990
  341.  
  342.  
  343.    real-time service is the sending client, and that the destination
  344.    (which could be a remote agent of the client or another user) is a
  345.    third party with respect to the establishment of the particular
  346.    communication being considered.);
  347.  
  348.    (ii)  statistical delay bound:
  349.  
  350.                        Prob ( Di <= Dmax ) >= Zmin,
  351.  
  352.       where Di and Dmax are defined as above, and Zmin is the lower
  353.       bound of the probability of successful and timely delivery;
  354.  
  355.    (iii)  deterministic delay-jitter bound:
  356.  
  357.                    Ji = | Di - D | <= Jmax   for  all i,
  358.  
  359.       where D is the ideal, or target delay, Ji is the delay jitter of
  360.       the i-th message delivered to the destination, and Jmax is the
  361.       upper jitter bound to be specified by the client together with D;
  362.       note that an equivalent form of this requirement consists of
  363.       assigning a deterministic upper bound D + Jmax and a deterministic
  364.       lower bound D - Jmax to the delays Di [Herr90];
  365.  
  366.    (iv)  statistical delay-jitter bound:
  367.  
  368.                    Prob (Ji <= Jmax) >= Umin, for all i,
  369.  
  370.       where  Umin  is the lower bound of the probability that Ji  be
  371.       within its limits.
  372.  
  373.    Other forms of delay bound include bounds on average delay, delay
  374.    variance, and functions of the sequence number of each message, for
  375.    example, Dmax(i) for the deterministic case.  There may be
  376.    applications in which one of these will be the preferred form, but,
  377.    since we have not found any so far, we believe that the four types of
  378.    bounds listed as (i)-(iv) above will cover the great majority of the
  379.    practical cases.
  380.  
  381. 3.2  Throughput requirements
  382.  
  383.    The actual throughput of an information transfer from a source to a
  384.    destination is bounded above by the rate at which the source sends
  385.    messages into the system.  Throughput may be lower than this rate
  386.    because of the possibility of unsuccessful delivery or message loss.
  387.    It is also bounded above by the maximum throughput, which is a
  388.    function of, among other things, network load.  As the source
  389.    increases its input rate, the actual throughput will grow up to a
  390.    limit and then stop.  Clients concerned with the throughput of their
  391.  
  392.  
  393.  
  394. Ferrari                                                         [Page 7]
  395.  
  396. RFC 1193          Requirements for Real-Time Services      November 1990
  397.  
  398.  
  399.    transfers will want to make sure that saturation is never reached, or
  400.    is reached only with a suitably small probability and for acceptably
  401.    short intervals.  Also, if the bandwidth allocated to a transfer is
  402.    not constant, but varies dynamically on demand to accommodate, at
  403.    least to some extent, peak requests, clients will be interested in
  404.    adding an average throughput requirement, which should include
  405.    information about the length of the interval over which the average
  406.    must be computed [Ferr89a].
  407.  
  408.    Thus, reasonable forms for throughput requirements appear to be the
  409.    following:
  410.  
  411.    (i)  deterministic throughput bound:
  412.  
  413.                           Ti >= Tmin, for all i,
  414.  
  415.       where Ti is the throughput actually provided by the server, and
  416.       Tmin is the lower bound of throughput specified by the client,
  417.       that is, the minimum throughput the server must offer to the
  418.       client;
  419.  
  420.    (ii)  statistical throughput bound:
  421.  
  422.                         Prob (Ti >= Tmin) >= Vmin,
  423.  
  424.       where Ti and Tmin are defined as above, and Vmin is the lower
  425.       bound of the probability that the server will provide a throughput
  426.       greater than the lower bound;
  427.  
  428.    (iii) average throughput bound:
  429.  
  430.                                 T >= Tave,
  431.  
  432.       where T is the average throughput provided by the server, Tave is
  433.       its lower bound specified by the client, and both variables are
  434.       averaged over an interval of duration I specified by the client;
  435.       the above inequality must obviously hold for all intervals of
  436.       duration I, i.e., even for that over which T is minimum.
  437.  
  438.    One clear difference between delay bounds and throughput bounds is
  439.    that, while the server is responsible for delays, the actual
  440.    throughputs of a non-saturated system are dictated by the input
  441.    rates, which are determined primarily by the clients (though they may
  442.    be influenced by the server through flow-control mechanisms).
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Ferrari                                                         [Page 8]
  451.  
  452. RFC 1193          Requirements for Real-Time Services      November 1990
  453.  
  454.  
  455. 3.3  Reliability requirements
  456.  
  457.    The usefulness of error control via acknowledgments and
  458.    retransmission in real-time applications is doubtful, especially in
  459.    those environments where message losses are usually higher, i.e., in
  460.    wide-area networks: the additional delays caused by acknowledgment
  461.    and retransmission, and out-of-sequence delivery are likely to be
  462.    intolerable in applications with stringent delay bounds, such as
  463.    those having to do with continuous media.  Fortunately, the loss of
  464.    some of the messages (e.g., video frames, voice packets) is often
  465.    tolerable in these applications, but that of sound packets is
  466.    generally intolerable.  In other cases, however, completeness of
  467.    information delivery is essential (e.g., in file transfer
  468.    applications), and traditional retransmission schemes will probably
  469.    have to be employed.
  470.  
  471.    A message may be incorrect when delivered or may be lost in the
  472.    network, i.e., not delivered at all.  Network unreliability (due, for
  473.    example, to noise) is usually the cause of the former problem; buffer
  474.    overflow (due to congestion) or node or link failure are those of the
  475.    latter.  The client is not interested in this distinction: for the
  476.    client, the message is lost in both cases.  Thus, the simplest form
  477.    in which a reliability bound may be expressed and also, we believe,
  478.    the one that will be most popular, is
  479.  
  480.               Prob (message is correctly delivered) >= Wmin,
  481.  
  482.    where Wmin is the lower bound of the probability of correct delivery,
  483.    to be specified by the client.  The probability of message loss will
  484.    obviously be bounded above by 1 - Wmin.  This is a statistical bound,
  485.    but, as noted in Section 3, a deterministic reliability bound results
  486.    if we set Wmin = 1.
  487.  
  488.    In those applications in which any message delivered with a delay
  489.    greater than Dmax must be discarded, the fraction of messages usable
  490.    by the destination will be bounded below by Wmin Zmin.  The client
  491.    may actually specify the value of this product, and let the server
  492.    decide the individual values of the two bounds, possibly subject to a
  493.    client-assigned constraint, e.g., that the price of the service to
  494.    the client be minimum.
  495.  
  496.    If the value of Wmin is greater than the system's reliability (the
  497.    probability that a delivered message is correct), then there is no
  498.    buffer space allocation in the hosts, interfaces, switches and
  499.    routers or gateways that will allow the client-specified Wmin to be
  500.    guaranteed.  In this case, the server uses error correcting codes, or
  501.    (if the application permits) retransmission, or duplicate messages,
  502.    or (if the sequencing problem discussed in Section 4.1 can be solved
  503.  
  504.  
  505.  
  506. Ferrari                                                         [Page 9]
  507.  
  508. RFC 1193          Requirements for Real-Time Services      November 1990
  509.  
  510.  
  511.    satisfactorily or is not a problem) multiple physical channels for
  512.    the same logical channel, or has to refuse the request.
  513.  
  514. 4.  Other Required or Desirable Properties
  515.  
  516.    In this section, we briefly describe client requirements that cannot
  517.    be easily expressed as bounds on, but are related to, communication
  518.    performance.  These include sequencing, absence of duplications,
  519.    failure recovery, and service setup time. We are not concerned here
  520.    with features that may be very important but have a functionality
  521.    (e.g., multicast capabilities) or security (e.g., client
  522.    authentication) rather than a performance flavor. Requirements in
  523.    these areas will generally have appreciable effects also on
  524.    performance; we do not discuss them only because of space
  525.    limitations.
  526.  
  527.    For a given application, some of these properties may be required,
  528.    some others only desirable.  Also, some may be best represented as
  529.    Boolean variables (present or absent), some others as continuous or
  530.    multi-valued discrete variables, others yet as partially qualitative
  531.    specifications.
  532.  
  533. 4.1  Sequencing
  534.  
  535.    For applications involving message streams (rather than single
  536.    datagrams), it may be necessary or desirable that messages be
  537.    delivered in sequence, even though the sequence may not be complete.
  538.    If the lower-level servers are not all capable of delivering messages
  539.    sequentially, a resequencing operation may have to be performed at
  540.    some higher level in the hierarchy.  In those cases in which
  541.    reliability requirements make retransmission necessary, resequencing
  542.    may delay delivery of a large number of messages by relatively long
  543.    times.  An adequate amount of buffer space will have to be provided
  544.    for this purpose at the level of the resequencer in the protocol
  545.    hierarchy.
  546.  
  547.    If sequencing is not guaranteed by all servers at all levels, the
  548.    application may be able to tolerate out-of-sequence messages as long
  549.    as their number is small, or if the delay bound is so large that very
  550.    few out-of-sequence messages have to be discarded because they are
  551.    too late.  The client could be allowed to specify a bound on the
  552.    probability that a message be delivered out of sequence, or to bundle
  553.    out-of-sequence losses with the other types of message loss described
  554.    by Wmin.  The client would specify the value of Wmin (or Wmin Zmin),
  555.    and the server would have to decide how much probability to allow for
  556.    buffer overflow, how much for network error, and how much for
  557.    imperfect sequencing, taking into account the stringency of the delay
  558.    bounds.
  559.  
  560.  
  561.  
  562. Ferrari                                                        [Page 10]
  563.  
  564. RFC 1193          Requirements for Real-Time Services      November 1990
  565.  
  566.  
  567.    On the other hand, with fixed-route connections and appropriate
  568.    queueing and scheduling in the hosts and in the network, it is often
  569.    not too hard to ensure sequenced delivery at the various layers,
  570.    hence also at the top.
  571.  
  572. 4.2  Absence of duplications
  573.  
  574.    Most of the discussion of sequencing applies also to duplication of
  575.    messages.  It is, however, easier and faster to eliminate
  576.    duplications than to resequence, as long as some layer keeps track of
  577.    the sequence numbers of the messages already received.  The
  578.    specification of a bound may be needed only if duplications become
  579.    very frequent, but this would be a symptom of serious network
  580.    malfunction, and should not be dealt with in the same way as we
  581.    handle delays or message losses.  These observations do not apply, of
  582.    course, to the case of intentional duplication for higher
  583.    reliability.
  584.  
  585. 4.3  Failure recovery
  586.  
  587.    The contract between client and server of a real-time service will
  588.    have to specify what will happen in the event of a server failure.
  589.    Ideally, from the client's viewpoint, failures should be perfectly
  590.    masked, and service should be completely fault-tolerant.  As we have
  591.    already mentioned, however, it is usually unrealistic to expect that
  592.    performance guarantees can be honored even in presence of failures.
  593.    A little less unrealistic is to assume that service can resume a
  594.    short time after a failure has disrupted it.  In general, clients may
  595.    not only wish to know what will happen if a failure occurs, but also
  596.    have a guaranteed upper bound on the likelihood of such an
  597.    occurrence:
  598.  
  599.                           Prob (failure) <= Fmax.
  600.  
  601.    Different applications have different failure recovery requirements.
  602.    Urgent datagrams or urgent message streams in most real-time
  603.    distributed systems will probably not benefit much from recovery,
  604.    unless it can be made so fast that hard deadlines may still be
  605.    satisfied, at least in some cases.  In the case of video or audio
  606.    transmission, timely resumption of service will normally be very
  607.    useful or even necessary; thus, clients may need to be given
  608.    guarantees about the upper bounds of mean or maximum time to repair;
  609.    this may also be the case of other applications in which the
  610.    deadlines are not so stringent, or where the main emphasis is on
  611.    throughput and/or reliability rather than on delay.
  612.  
  613.    In communications over multi-node routes and/or long distances, the
  614.    network itself may contain several messages for each source-
  615.  
  616.  
  617.  
  618. Ferrari                                                        [Page 11]
  619.  
  620. RFC 1193          Requirements for Real-Time Services      November 1990
  621.  
  622.  
  623.    destination pair at the time a failure occurs.  The recovery scheme
  624.    will have to solve the problems of failure notification (to all the
  625.    system's components involved, and possibly also to the clients) and
  626.    disposition of messages in transit.  The solutions adopted may make
  627.    duplicate elimination necessary even in contexts in which no
  628.    duplicates are ever created in the absence of failures.
  629.  
  630. 4.4  Service setup time
  631.  
  632.    Real-time services must be requested before they can be used to
  633.    communicate [Ferr89b].  Some clients may be interested in long-term
  634.    arrangements which are set up soon after the signing of a contract
  635.    and are kept in existence for long times (days, months, years).
  636.    Others, typically for economical reasons, may wish to be allowed to
  637.    request services dynamically and to avoid paying for them even when
  638.    not in use.  The extreme case of short-term service is that in which
  639.    the client wants to send one urgent datagram, but this is probably
  640.    best handled by a service broker ("the datagraph office") using a
  641.    permanent setup shared by many (or all) urgent datagrams.  In most
  642.    other cases, a request for a short-term or medium-term service must
  643.    be processed by the server before the client is allowed to receive
  644.    that service (i.e., to send messages).  Certain applications will
  645.    need the setup time to be short or, in any case, bounded: the maximum
  646.    time the client will have to wait for a (positive or negative) reply
  647.    to a request may have to be guaranteed by the server in the contract.
  648.  
  649. 5.  Translating Requirements
  650.  
  651.    Performance specifications and other requirements are assigned at the
  652.    top level, that of the human client or application, either explicitly
  653.    or implicitly (see Section 2).  To be satisfied, these specifications
  654.    need the support of all the underlying layers: we believe that a
  655.    real-time service cannot be implemented on top of a server at some
  656.    level that is unable to guarantee performance.  (Some of the other
  657.    requirements can be satisfied even without this condition: for
  658.    example, reliable delivery (when retransmission is acceptable) and
  659.    sequencing.)  Upper-level requirements must be translated into
  660.    lower-level ones, so that the implementation of the former will be
  661.    adequately supported.  How should this be done?
  662.  
  663. 5.1  Delay requirements
  664.  
  665.    The method for translating delay bounds macroscopically depends on
  666.    the type of bound to be translated.  All methods have to deal with
  667.    two problems: the effects of delays in the individual layers, and the
  668.    effects of message fragmentation on the requirements.
  669.  
  670.    (i)  Deterministic delay bound.  A deterministic bound on the delay
  671.  
  672.  
  673.  
  674. Ferrari                                                        [Page 12]
  675.  
  676. RFC 1193          Requirements for Real-Time Services      November 1990
  677.  
  678.  
  679.         encountered by a message in each layer (or group of layers) in
  680.         the hosts will have to be estimated and enforced.
  681.         The delay bound for a server at a given level will be obtained
  682.         by subtracting the delay bounds of the layers above it in both
  683.         the sending and the receiving host from the original global
  684.         bound:
  685.  
  686.                       Dmax' = Dmax - SUMi {d(max,i)}.
  687.  
  688.       Message fragmentation can be handled by recalling that delay is
  689.       defined as the difference between the instant of completion of the
  690.       reception of a message and the instant when its shipment began.
  691.       If x is the interfragment time (assumed constant for simplicity
  692.       here) and f is the number of fragments in a message, we have
  693.  
  694.                             Dmax' = Dmax - x(f-1),
  695.  
  696.       where Dmax' is the fragment delay bound corresponding to the
  697.       message delay bound Dmax, i.e., the delay of the first fragment.
  698.  
  699.    (ii)  Statistical delay bound.  The statistical case is more
  700.          complicated.  If the bounds on the delay in each layer
  701.          (or group of layers) are statistical, we may approach the
  702.          problem of the messages delayed beyond the bound
  703.          pessimistically, in which case we shall write
  704.  
  705.                     Zmin' = Zmin / (PRODi {z(min,i)}),
  706.  
  707.  
  708.       where the index i spans the layers (or group of layers) above the
  709.       given lower-level server, Zmin' is the probability bound to be
  710.       enforced by that lower-level server, and d(max,i) and z(min,i) are
  711.       the bounds for layer i.  (A layer has a sender side and a receiver
  712.       side at the same level in the hierarchy.)  The expression for
  713.       Zmin' is pessimistic because it assumes that a message delayed
  714.       beyond its bound in a layer will not be able to meet the global
  715.       bound Dmax.  (The expression above and the next one assume that
  716.       the delays of a message in the layers are statistically
  717.       independent of each other.  This assumption is usually not valid,
  718.       but, in the light of the observations that follow the next
  719.       expression, the error should be tolerable.)
  720.  
  721.       At the other extreme, we have the optimistic approach, which
  722.       assumes that a message will not satisfy the global bound only if
  723.       it is delayed beyond its local bound in each layer:
  724.  
  725.                 Zmin' = 1 - (1 - Zmin)/(PRODi {1 - z(min,i)}).
  726.  
  727.  
  728.  
  729.  
  730. Ferrari                                                        [Page 13]
  731.  
  732. RFC 1193          Requirements for Real-Time Services      November 1990
  733.  
  734.  
  735.       The correct assumption will be somewhere in between the
  736.       pessimistic and the optimistic ones.  However, in order to be able
  737.       to guarantee the global bound, the system will have to choose the
  738.       pessimistic approach, unless a better approximation to reality can
  739.       be found.  An alternative that may turn out to be more convenient
  740.       is the one of considering the bounds in the layers as
  741.       deterministic, in which case Zmin' will equal Zmin, and the global
  742.       bound will be statistical only because the network will guarantee
  743.       a statistical bound.
  744.  
  745.       When estimating the effects of message fragmentation, the new
  746.       bounds must refer to the fragment stream as though its components
  747.       were independent of each other.  Assuming sequential delivery of
  748.       fragments, a message is delayed beyond its bound if its last
  749.       fragment is delayed beyond the fragment bound.  Our goal can be
  750.       achieved by imposing the same probability bound on fragments as on
  751.       messages [Verm90]. Thus,
  752.  
  753.                                 Zmin' = Zmin.
  754.  
  755.       Note that both expressions for D prime sub max given in (i) above
  756.       apply to the statistical delay bound case as well.
  757.  
  758.    (iii) Deterministic delay-jitter bound.  For the case of layer to
  759.          layer translation, the discussion above yields:
  760.  
  761.                      Jmax' = Jmax - SUMi {j(max,i)} ,
  762.  
  763.       where j(max,i) is the deterministic jitter bound of the i-th layer
  764.       above the given lower-level server.  When messages are fragmented,
  765.       the delay jitter bound can be left unchanged:
  766.  
  767.                                 Jmax' = Jmax .
  768.  
  769.       There would be reasons to reduce it in the case of message
  770.       fragmentation only if the underlying server did not guarantee
  771.       sequenced delivery, and if no resequencing of fragments were
  772.       provided by the corresponding reassembly layer on the receiving
  773.       side.
  774.  
  775.    (iv)  Statistical delay-jitter bound.  The interested reader will
  776.          be able with little effort to derive the translation formulas
  777.          for this case from the definition in Section 3.1 (iv)
  778.          and from the discussion in (ii) and (iii) above.
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786. Ferrari                                                        [Page 14]
  787.  
  788. RFC 1193          Requirements for Real-Time Services      November 1990
  789.  
  790.  
  791. 5.2  Throughput requirements
  792.  
  793.    Since all layers are in cascade, the throughput bounds would be the
  794.    same for all of them if headers and sometimes trailers were not added
  795.    at each layer for encapsulation or fragmentation. Thus, throughput
  796.    bounds have to be increased as the request travels downward through
  797.    the protocol hierarchy, and the server at each layer knows by how
  798.    much, since it is responsible for these additions.
  799.  
  800. 5.3  Reliability requirements
  801.  
  802.    If we assume, quite realistically, that the probability of message
  803.    loss in a host is extremely small, then we do not have to change the
  804.    value of Wmin when we change layers.
  805.  
  806.    The effects of message fragmentation are similar to those on
  807.    statistical delay bounds, but in a given application a message may be
  808.    lost even if only one of its fragments is lost.  Thus, we have
  809.  
  810.                         Wmin' = 1 - (1 - Wmin)/f ,
  811.  
  812.    where Wmin' is the lower bound of the correct delivery probability
  813.    for the fragment stream, and f is the number of fragments per
  814.    message.  The optimistic viewpoint, which is the one we adopted in
  815.    Section 5.1 (ii), yields Wmin' = Wmin, and the observations made in
  816.    that section about the true bound and about providing guarantees
  817.    apply.
  818.  
  819. 5.4  Other requirements
  820.  
  821.    Of the requirements and desiderata discussed in Section 4, those that
  822.    are specified as a Boolean value or a qualitative attribute do not
  823.    have to be modified for lower-level servers unless they are satisfied
  824.    in some layer above those servers (e.g., no sequencing is to be
  825.    required below the level where a resequencer operates).  When they
  826.    are represented by a bound (e.g., one on the setup time, as described
  827.    in Section 4.4), then bounds for the layers above a lower-level
  828.    server will have to be chosen to calculate the corresponding bound
  829.    for that server.  The above discussions of the translation of
  830.    performance requirements will, in most cases, provide the necessary
  831.    techniques for doing these calculations.
  832.  
  833.    The requirement that the server give clear and useful replies to
  834.    client requests (see Section 2) raises the interesting problem of
  835.    reverse translation, that from lower-level to upper-level
  836.    specifications.  However, at least in most cases, this does not seem
  837.    to be a difficult problem: all the translation formulas we have
  838.    written above are very easily invertible (in other words, it is
  839.  
  840.  
  841.  
  842. Ferrari                                                        [Page 15]
  843.  
  844. RFC 1193          Requirements for Real-Time Services      November 1990
  845.  
  846.  
  847.    straightforward to express Dmax as a function of Dmax', Zmin as a
  848.    function of Zmin', and so on).
  849.  
  850. 6.  Examples
  851.  
  852.    In this section we describe some examples of client requirements for
  853.    real-time services.  Simplifying assumptions are introduced to
  854.    decrease the amount of detail and increase clarity.  Our intent is to
  855.    determine the usefulness of the set of requirements proposed above,
  856.    and to investigate some of the problems that may arise in practical
  857.    cases.  An assumption underlying all examples is that the network's
  858.    transmission rate is 45 Mbits/s, and that the hosts can keep up with
  859.    this rate when processing messages.
  860.  
  861. 6.1  Interactive voice
  862.  
  863.    Let us assume that human clients are to specify the requirements for
  864.    voice that is already digitized (at a 64 kbits/s rate) and packetized
  865.    (packet size: 48 bytes, coinciding with the size of an ATM cell;
  866.    packet transmission time: 8.53 microseconds ; packet interarrival
  867.    time: 6 ms).  Since the communication is interactive, deterministic
  868.    (and statistical) delay bounds play a very important role.  Jitter is
  869.    also important, but does not dominate the other requirements as in
  870.    non-interactive audio or video communication (see Section 6.2).  The
  871.    minimum throughput offered by the system must correspond to the
  872.    maximum input rate, i.e., 64 kbits/s; in fact, because of header
  873.    overhead (5 control bytes for every 48 data bytes), total guaranteed
  874.    throughput should be greater than 70.66 kbits/s, i.e., 8,834 bytes/s.
  875.    (Since the client may not know the overhead introduced by the system,
  876.    the system may have to compute this value from the one given by the
  877.    client, which in this case would be 8 kbytes/s.)  The minimum average
  878.    throughput over an interval as long as 100 s is 44% of Tmin, due to
  879.    the silence periods [Brad64].
  880.  
  881.    Voice transmission can tolerate limited packet losses without making
  882.    the speech unintelligible at the receiving end.  We assume that a
  883.    maximum loss of two packets out of 100 (each packet corresponding to
  884.    6 ms of speech) can be tolerated even in the worst case, i.e., when
  885.    the two packets are consecutive.  Since packets arriving after their
  886.    absolute deadline are discarded if the delay bound is to be
  887.    statistical, then this maximum loss rate must include losses due to
  888.    lateness, i.e., 0.98 will have to be the value of Zmin Wmin rather
  889.    than just that of Wmin.
  890.  
  891.    This is illustrated in the first column of Table Ia, which consists
  892.    of two subcolumns: one is for the choice of a deterministic delay
  893.    bound, the other one for that of a statistical delay bound and a
  894.    combined bound on the probability of lateness or loss.  If in a row
  895.  
  896.  
  897.  
  898. Ferrari                                                        [Page 16]
  899.  
  900. RFC 1193          Requirements for Real-Time Services      November 1990
  901.  
  902.  
  903.    there is a single entry, that entry is the same for both subcolumns.
  904.    Note that the maximum setup time could be made much longer if
  905.    connections had to be reserved in advance.
  906.  
  907.    Since voice is packetized at the client's level, we will not have to
  908.    worry about the effects of fragmentation while translating the
  909.    requirements into their lower-level correspondents.
  910.  
  911. 6.2  Non-interactive video
  912.  
  913.    At the level of the client, the video message stream consists of 1
  914.    Mbit frames, to be transmitted at the rate of 30 frames per second.
  915.    Thus, the throughput bounds (both deterministic and average) are,
  916.    taking into account the overhead of ATM cell headers, 4.14 Mbytes/s.
  917.    As in the case of interactive voice, we have two alternatives for the
  918.    specification of delay bounds: the first subcolumn is for the
  919.    deterministic bound case, the second for that of a statistical bound
  920.    on delays and a combined probability bound on lateness or loss; the
  921.    latter bound is set to at most 10 frames out of 100, i.e., three out
  922.    of 30.  However, the really important bound in this case is the one
  923.    on delay jitter, set at 5 ms, which is roughly equal to half of the
  924.    interval between two successive frames, and between 1/4 and 1/5 of
  925.    the transmission time.  This dominance of the jitter bound is the
  926.    reason why the other delay bounds are in parentheses.
  927.  
  928.    If we assume that video frames will have to be fragmented into cells
  929.    at some lower level in the protocol hierarchy, then these
  930.    requirements must be translated at that level into those shown in the
  931.    first column of Table II.  The values of Dmax' have been calculated
  932.    with x = 12.8 microseconds and f = 2605 fragments/frame.  The range
  933.    of Wmin' and of (Zmin Wmin)' is quite wide, and achieving its higher
  934.    value (a probability of 1) may turn out to be either very expensive
  935.    or impossible.  We observe, however, that a frame in which a packet
  936.    or more are missing or have been incorrectly received does not have
  937.    to be discarded but can be played with gaps or patched with the old
  938.    packets in lieu of the missing or corrupted ones.  Thus, it may be
  939.    possible to consider an optimistic approach (e.g., Zmin' = Zmin,
  940.    Wmin' = Wmin, (Zmin Wmin)' = Zmin Wmin ) as sufficiently safe.
  941.  
  942. 6.3  Real-time datagram
  943.  
  944.    A real-time datagram is, for instance, an alarm condition to be
  945.    transmitted in an emergency from one machine to another (or a group
  946.    of others) in a distributed real-time system.  The client
  947.    requirements in this case are very simple: a deterministic bound is
  948.    needed (we are assuming that this is a hard-real-time context), the
  949.    reliability of delivery must be very high, and the service setup time
  950.    should be very small.  The value of 0.98 for Wmin in Table Ib tries
  951.  
  952.  
  953.  
  954. Ferrari                                                        [Page 17]
  955.  
  956. RFC 1193          Requirements for Real-Time Services      November 1990
  957.  
  958.  
  959.    to account for the inevitable network errors and to suggest that
  960.    retransmission should not be used as might be necessary if we wanted
  961.    to have Wmin = 1, because it would be too slow.  To increase
  962.    reliability in this case, error correcting codes or spatial
  963.    redundancy will have to be resorted to instead.
  964.  
  965.    Note that one method for obtaining a very small setup time consists
  966.    of shipping such urgent datagrams on long-lasting connections
  967.    previously created between the hosts involved and with the
  968.    appropriate characteristics.  Note also that throughput requirements
  969.    cannot be defined, since we are dealing with one small message only,
  970.    which may not even have to be fragmented.  Guarantees on the other
  971.    bounds will fully satisfy the needs of the client in this case.
  972.  
  973. 6.4  File transfer
  974.  
  975.    Large files are to be copied from a disk to a remote disk.  We assume
  976.    that the receiving disk's speed is greater than or equal to the
  977.    sending disk's, and that the transfer could therefore proceed, in the
  978.    absence of congestion, at the speed of the sending disk.  The message
  979.    size equals the size of one track (11 Kbytes, including disk surface
  980.    overhead such as intersector gaps), and the maximum input rate is
  981.    5.28 Mbits/s.  Taking into account the ATM cell headers, this rate
  982.    becomes 728 kbytes/s; this is the minimum peak throughput to be
  983.    guaranteed by the system.  The minimum average throughput to be
  984.    provided is smaller, due to head switching times and setup delays
  985.    (seek times are even longer, hence need not be considered here): we
  986.    set its value at 700 kbytes/s.
  987.  
  988.    Delay bounds are much less important in this example than in the
  989.    previous ones; in Table Ib, we show deterministic and statistical
  990.    bounds in parentheses.  Reliability must be eventually 1 to ensure
  991.    the integrity of the file's copy.  This result will have to be
  992.    obtained by error correction (which will increase the throughput
  993.    requirements) or retransmission (which would break most delay bounds
  994.    if they were selected on the basis of the first shipment only instead
  995.    of the last one).
  996.  
  997.    The second column in Table II shows the results of translating these
  998.    requirements to account for message fragmentation.  The values x =
  999.    78.3 microseconds and f = 230 have been used to compute those of
  1000.    Dmax'.
  1001.  
  1002. 7.  Discussion
  1003.  
  1004.    In this section, we briefly discuss some of the objections that can
  1005.    be raised concerning our approach to real-time service requirements.
  1006.    Some of the objections are fundamental ones: they are at least as
  1007.  
  1008.  
  1009.  
  1010. Ferrari                                                        [Page 18]
  1011.  
  1012. RFC 1193          Requirements for Real-Time Services      November 1990
  1013.  
  1014.  
  1015.    related to the basic decisions to be made in the design of the server
  1016.    as they are to client requirements.
  1017.  
  1018.    Objection 1: Guarantees are not necessary.
  1019.  
  1020.    This is the most radical objection, as it stems from a basic
  1021.    disagreement with our definition of real-time service.  The problem,
  1022.    however, is not with definitions or terminologies: the really
  1023.    important question is whether a type of service such as the one we
  1024.    call "real-time" will be necessary or at least useful in future
  1025.    networks.  This objection is raised by the optimists, those who
  1026.    believe that network bandwidth will be so abundant that congestion
  1027.    will become a disease of the past, and that delays will therefore be
  1028.    small enough that the enforcement of legalistic guarantees will not
  1029.    be necessary.  The history of computers and communications, however,
  1030.    does not unfortunately support these arguments, while it supports
  1031.    those of the pessimists.  In a situation of limited resources
  1032.    (limited with respect to the existing demand for them), we believe
  1033.    that there is no serious solution of the real-time communication
  1034.    problem other than one based on a policy for the allocation of
  1035.    resources that rigorously guarantees the satisfaction of performance
  1036.    needs.  Even if the approaches to be adopted in practical networks
  1037.    will provide only approximate guarantees, it is important to devise
  1038.    methods that offer without exceptions precisely defined bounds.
  1039.    These methods can at the very least be used as reference approaches
  1040.    for comparison and evaluation.
  1041.  
  1042.    Objection 2: Real-time services are too expensive because reservation
  1043.    of resources is very wasteful.
  1044.  
  1045.    This may be true if resources are exclusively reserved; for example,
  1046.    physical circuits used for bursty traffic in a circuit-switched
  1047.    network.  There are, however, other ways of building real-time
  1048.    services, based on priority mechanisms and preemption rather than
  1049.    exclusive reservation of resources.  With these schemes, the real-
  1050.    time traffic always finds the resources it needs by preempting non-
  1051.    real-time traffic, as long as the real-time load is kept below a
  1052.    threshold.  The threshold corresponds to the point where the demand
  1053.    by real-time traffic for the bottleneck resource equals the amount of
  1054.    that resource in the system.  With this scheme, all resources not
  1055.    used by real-time traffic can be used at any time by local tasks and
  1056.    non-real-time traffic.  Congestion may affect the latter, but not
  1057.    real-time traffic.  Thus, the only limitation is that a network
  1058.    cannot carry unbounded amounts of real-time traffic, and must refuse
  1059.    any further requests when it has reached the saturation point.
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066. Ferrari                                                        [Page 19]
  1067.  
  1068. RFC 1193          Requirements for Real-Time Services      November 1990
  1069.  
  1070.  
  1071.    Objection 3: Real-time services can be built on top of non-real-time
  1072.    servers.
  1073.  
  1074.    If one accepts our interpretation of the term "guarantee," one can
  1075.    easily see that performance guarantees cannot be provided by a
  1076.    higher-level server unless it can rely on real-time support by its
  1077.    underlying server.  Since this is true at all levels, we conclude
  1078.    that a real-time network service and similar services at all
  1079.    intermediate levels are needed to provide guaranteed performance to
  1080.    human clients and applications.
  1081.  
  1082.    Objection 4: Delay bounds are not necessary, throughput requirements
  1083.    suffice.
  1084.  
  1085.    Guaranteeing minimum throughput bounds does not automatically and in
  1086.    general result in any stringent upper bound on delay.  Delays in the
  1087.    hosts and nodes of a packet-switching network fluctuate because of
  1088.    bursty real-time message streams, starting and ending of traffic on
  1089.    individual connections (even those with continuous, constant-rate
  1090.    traffic), and the behavior of scheduling algorithms.  Even if delays
  1091.    did not fluctuate, but had a constant value, it would be possible for
  1092.    a given throughput bound to be satisfied with many different constant
  1093.    values for the delay of each message.  If delay bounds are wanted,
  1094.    they must be explicitly guaranteed and enforced.  (In a circuit-
  1095.    switching network, the circuit assigned to a connection has its own
  1096.    throughput and its own delay.  These values may be considered as
  1097.    explicitly guaranteed and enforced.)
  1098.  
  1099.    But are delay bounds wanted?  We believe they are in digital video
  1100.    and audio communication, especially in the form of delay jitter
  1101.    bounds, and they will be in other contexts as soon as a service which
  1102.    can bound delays is offered.
  1103.  
  1104.    Objection 5: Satisfaction of statistical bounds is impossible to
  1105.    verify.
  1106.  
  1107.    Strictly speaking, this objection is valid.  No matter how many
  1108.    packets on a connection have been delayed beyond their bound (or lost
  1109.    or delivered with errors), it is always in principle possible for the
  1110.    server to redress the situation in the future and meet the given
  1111.    statistical requirements.  A more sensible and verifiable bound would
  1112.    be a fractional one (see Section 3).  For instance, such a bound
  1113.    could be specified as follows: out of 100 consecutive packets, no
  1114.    less than 97 shall not be late.  In this case, the bound is no longer
  1115.    Zmin, a probability of 0.97, but is given by the two values B = 97
  1116.    and A = 100; it is not only their ratio that counts but also their
  1117.    individual values.
  1118.  
  1119.  
  1120.  
  1121.  
  1122. Ferrari                                                        [Page 20]
  1123.  
  1124. RFC 1193          Requirements for Real-Time Services      November 1990
  1125.  
  1126.  
  1127. 8.  Conclusion
  1128.  
  1129.    This paper has presented a specification of some of the requirements
  1130.    that human clients and applications may wish to impose on real-time
  1131.    communications.  Though those listed seem to be among the most useful
  1132.    and natural ones, no attempt has been made to be exhaustive and
  1133.    comprehensive.
  1134.  
  1135.    We have investigated delay bounds, throughput bounds, reliability
  1136.    bounds, and other requirements.  We have studied how the requirements
  1137.    should be translated from the client's level into forms suitable (and
  1138.    correct) for lower levels, described some examples of requirement
  1139.    specification, and discussed some of the objections that may be
  1140.    raised.
  1141.  
  1142.    The material in this paper covers only part of the first phase in the
  1143.    design of a real-time service: that during which the various
  1144.    requirements are assembled and examined to extract useful suggestions
  1145.    for the design of the server.  Server needs and design principles
  1146.    will be the subject of the subsequent paper mentioned several times
  1147.    above.
  1148.  
  1149. Acknowledgments
  1150.  
  1151.    Ralf Herrtwich and Dinesh Verma contributed ideas to, and corrected
  1152.    mistakes in, a previous version of the manuscript.  The author is
  1153.    deeply indebted to them for their help and for the many discussions
  1154.    he had with them on the topics dealt with in this paper.  The
  1155.    comments of Ramesh Govindan and Riccardo Gusella are also gratefully
  1156.    acknowledged.
  1157.  
  1158. References
  1159.  
  1160.    [Brad64]  Brady, P., "A Technique for Investigating On-Off Patterns
  1161.              of Speech", Bell Systems Technical Journal, Vol. 44,
  1162.              Pgs. 1-22, 1964.
  1163.  
  1164.    [Ferr89a] Ferrari, D., "Real-Time Communication in
  1165.              Packet-Switching Wide-Area Networks", Technical Report
  1166.              TR-89-022, International Computer Science Institute,
  1167.              Berkeley, May 1989.
  1168.  
  1169.    [Ferr89b] Ferrari D., and D. Verma, "A Scheme for Real-Time Channel
  1170.              Establishment in Wide-Area Networks", IEEE J. Selected
  1171.              Areas Communications SAC-8, April 1990.
  1172.  
  1173.    [Gait90]  Gaitonde, S., D. Jacobson, and A. Pohm, "Bounding Delay on
  1174.              a Multifarious Token Ring Network", Communications of the
  1175.  
  1176.  
  1177.  
  1178. Ferrari                                                        [Page 21]
  1179.  
  1180. RFC 1193          Requirements for Real-Time Services      November 1990
  1181.  
  1182.  
  1183.              ACM, Vol. 33, No. 1, Pgs. 20-28, January 1990.
  1184.  
  1185.    [Herr89]  Herrtwich R., and U. Brandenburg, "Accessing and
  1186.              Customizing Services in Distributed Systems", Technical
  1187.              Report TR-89-059, International Computer Science Institute,
  1188.              Berkeley, October 1989.
  1189.  
  1190.    [Herr90]  Herrtwich, R, personal communication, February 1990.
  1191.  
  1192.    [Verm90]  Verma, D., personal communication, February 1990.
  1193.  
  1194.  
  1195.                                  Table Ia
  1196.                     Examples of Client Requirements
  1197.  
  1198.                            Interactive  Non-Interactive
  1199.                               Voice           Video
  1200.  
  1201. Delay Bounds
  1202. deterministic:Dmax [ms]    200     -     (1000)    -
  1203. statistical:Dmax [ms]       -     200       -    (1000)
  1204.             Zmin            -     (*)       -      (*)
  1205. jitter:Jmax [ms]               1                5
  1206.  
  1207. Throughput Bounds
  1208. deterministic:Tmin [kby/s]   8.834            4140
  1209. average:Tave [kby/s]         3.933            4140
  1210.         I [s]                 100              100
  1211.  
  1212. Reliability Bound:Wmin     0.98   (*)     (0.90)   (*)
  1213. Delay&Reliability:ZminWmin  -    0.98       -      0.90
  1214.  
  1215. Sequencing                    yes              yes
  1216. Absence of Duplications       yes              yes
  1217. Failure Recovery:
  1218.  max.repair time [s]           10              100
  1219. Max.Setup Time [s]            0.8 (o)          15 (o)
  1220.  
  1221. ----------------------------------
  1222.  
  1223. (*) To be chosen by the server
  1224. (o) Could be much longer if advance reservations were required
  1225. (+) Could be achieved by using a preexisting connection
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234. Ferrari                                                        [Page 22]
  1235.  
  1236. RFC 1193          Requirements for Real-Time Services      November 1990
  1237.  
  1238.  
  1239.                                  Table Ib
  1240.                     Examples of Client Requirements
  1241.  
  1242.                            Real-Time     File
  1243.                             Datagram   Transfer
  1244.  
  1245. Delay Bounds
  1246. deterministic:Dmax [ms]        50      -   (1500)
  1247. statistical:Dmax [ms]           -    (1000)   -
  1248.             Zmin                -    (0.95)   -
  1249. jitter:Jmax [ms]                -             -
  1250.  
  1251. Throughput Bounds
  1252. deterministic:Tmin [kby/s]      -          728
  1253. average:Tave [kby/s]            -          700
  1254.         I [s]                   -          100
  1255.  
  1256. Reliability Bound:Wmin        0.98          1
  1257. Delay&Reliability:ZminWmin      -           -
  1258.  
  1259. Sequencing                      -          yes
  1260. Absence of Duplications        yes         yes
  1261. Failure Recovery:
  1262.  max.repair time [s]            -          100
  1263. Max.Setup Time [s]             0 (+)       5 (o)
  1264.  
  1265. ----------------------------------
  1266.  
  1267. (*) To be chosen by the server
  1268. (o) Could be much longer if advance reservations were required
  1269. (+) Could be achieved by using a preexisting connection
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290. Ferrari                                                        [Page 23]
  1291.  
  1292. RFC 1193          Requirements for Real-Time Services      November 1990
  1293.  
  1294.  
  1295.                                 Table II
  1296.                   Translation of the Requirements in Table I
  1297.  
  1298.                            Non-Interactive            File
  1299.                                 Video               Transfer
  1300.  
  1301. Delay Bounds
  1302. deterministic:Dmax' [ms]     (966)    -            -    (1482)
  1303. statistical:Dmax' [ms]         -    (966)        (982)     -
  1304.             Zmin'              -     (*)         (0.95)    -
  1305. jitter:Jmax' [ms]                 5                    -
  1306.  
  1307. Reliability Bound:Wmin'      0.90-1  (*)               1
  1308.  
  1309. Delay&Reliability:(ZminWmin)'  -    0.90-1             -
  1310.  
  1311. _____________________________________
  1312.  
  1313. (*) To be chosen by the server
  1314.  
  1315.  
  1316.  
  1317. Security Considerations
  1318.  
  1319.    Security considerations are not discussed in this memo.
  1320.  
  1321. Author's Address
  1322.  
  1323.    Domenico Ferrari
  1324.    University of California
  1325.    Computer Science Division
  1326.    EECS Department
  1327.    Berkeley, CA 94720
  1328.  
  1329.    Phone: (415) 642-3806
  1330.  
  1331.    EMail: ferrari@UCBVAX.BERKELEY.EDU
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346. Ferrari                                                        [Page 24]
  1347.