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

📄 rfc1193.txt

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






Network Working Group                                         D. Ferrari
Request for Comments: 1193                                   UC Berkeley
                                                           November 1990



        CLIENT REQUIREMENTS FOR REAL-TIME COMMUNICATION SERVICES

Status of this Memo

   This memo describes client requirements for real-time communication
   services.  This memo provides information for the Internet community,
   and requests discussion and suggestions for improvements.  It does
   not specify any standard.  Distribution of this memo is unlimited.

Abstract

   A real-time communication service provides its clients with the
   ability to specify their performance requirements and to obtain
   guarantees about the satisfaction of those requirements.  In this
   paper, we propose a set of performance specifications that seem
   appropriate for such services; they include various types of delay
   bounds, throughput bounds, and reliability bounds.  We also describe
   other requirements and desirable properties from a client's
   viewpoint, and the ways in which each requirement is to be translated
   to make it suitable for lower levels in the protocol hierarchy.
   Finally, we present some examples of requirements specification, and
   discuss some of the possible objections to our approach.

   This research has been supported in part by AT&T Bell Laboratories,
   the University of California under a MICRO grant, and the
   International Computer Science Institute.  The views and conclusions
   in this document are those of the author and should not be
   interpreted as representing official policies, either expressed or
   implied, of any of the sponsoring organizations.

1.  Introduction

   We call real-time a computer communication service whose clients are
   allowed to specify their performance requirements and to obtain
   guarantees about the fulfillment of those requirements.

   Three terms in this definition need further discussion and
   clarification: clients, performance, and guarantees.

   Network architecture usually consists, at least from a logical
   viewpoint, of a stack of protocol layers. In the context of such an
   architecture, the notions of client and server apply to a number of



Ferrari                                                         [Page 1]

RFC 1193          Requirements for Real-Time Services      November 1990


   different pairs of entities: every layer (with the support of the
   underlying layers) provides a service to the layer immediately above
   it and is a client of its underlying layers.  In this paper, our
   considerations generally apply to any client-server pair.  However,
   most of them particularly refer to human clients (users, programmers)
   and to the ways in which such clients express their communication and
   processing needs to the system (e.g., interactive commands,
   application programs).  This type of client is especially important,
   since client needs at lower layers can be regarded as translations of
   the needs expressed by human clients at the top of the hierarchy.
   When the client is human, the server consists of the entire
   (distributed) system, including the hosts, their operating systems,
   and the networks interconnecting them.

   As for the generic term, performance, we will give it a fairly broad
   meaning.  It will include not only delay and throughput, the two main
   network performance indices, but also reliability of message
   delivery.  Real-time communication is concerned with those aspects of
   quality of service that have to do with performance in this broad
   sense.

   The term guarantee in this paper has a rather strong legal flavor.
   When a server guarantees a given level of performance for the
   communications of a client, it commits itself to providing that
   performance and to paying appropriate penalties if the actual
   performance turns out to be insufficient.  On the other hand, the
   client will have to obey certain rules, and will not be entitled to
   the requested performance guarantees unless those rules are
   scrupulously obeyed.  In other words, client and server have to enter
   into a contract specifying their respective rights and duties, the
   benefits that will accrue, the conditions under which those benefits
   will materialize, and the penalties they will incur for not keeping
   their mutual promises.  We believe that a legal viewpoint is to be
   adopted if serious progress in the delivery of communication services
   (not only the real-time ones) is desired.  Utility services, as well
   as other kinds of service, are provided under legally binding
   contracts, and a mature computer communication utility cannot fail to
   do the same.  In the field of real-time communication, such a
   contract will by definition include performance guarantees.

   Real-time services may be offered in any kind of network or
   internetwork. Some of their predictable applications are:

      (a)  digital continuous-media (motion video, audio)
           communication: lower bounds on throughput and upper bounds
           on delay or delay variability or both are needed to ensure
           any desired level of output quality; in the interactive case,
           both the values of delay and delay variabilities have to be



Ferrari                                                         [Page 2]

RFC 1193          Requirements for Real-Time Services      November 1990


           bounded; some limited message losses are often tolerable in
           the cases of video and voice (whenever very high quality is
           not required), but usually not in the case of sound;

      (b)  transmission of urgent messages in real-time distributed
           systems: delay bounds are the important guarantees to be
           provided in these applications; losses should ideally be
           impossible;

      (c)  urgent electronic-mail messages and, more in general,
           urgent datagrams: again, delay is the obvious index to be
           bounded in this case, but small probabilities of losses can
           often be tolerated;

      (d)  transfers of large files: minimum throughput bounds are
           usually more important than delay bounds in this
           application; also, all pieces of a file must be delivered
           with probability 1;

      (e)  fast request-reply communication: e.g., data base queries,
           information retrieval requests, remote procedure calls; this
           is another case in which delay (more precisely, round-trip
           delay) is the index of primary interest; reliability
           requirements are generally not very stringent.

   We conjecture that, when networks start offering well-designed and
   reasonably-priced real-time services, the use of such services will
   grow beyond the expectations of most observers.  This will occur
   primarily because new performance needs will be induced by the
   availability of guaranteed-performance options.  As the history of
   transportation and communication has repeatedly shown, faster
   services bring about major increases of the shipments that are
   perceived as urgent.  The phenomenon will be more conspicuous
   whenever the quality of service provided to non-real-time clients
   will deteriorate.  It is clear from this comment that we assume that
   real-time services will coexist within the same networks and
   internetworks with non-real-time communications.  Indeed, postulating
   a world in which the two types of service are segregated rather than
   integrated would be unrealistic, as it would go against the clear
   trend towards the eventual integration of all information services.
   For the same reason, the traffic in the network is assumed to be
   heterogeneous, i.e., to consist of a variety of types of messages,
   representing a variety of information media and their combinations,
   with a wide spectrum of burstiness values (from uncompressed
   continuous fixed-rate streams to very short and erratic bursts of
   information).

   This paper discusses the client requirements and characteristics of a



Ferrari                                                         [Page 3]

RFC 1193          Requirements for Real-Time Services      November 1990


   real-time communication service.  Server requirements and design
   principles will be the subject of a subsequent paper.  Section 2
   contains some considerations about the ways in which the clients
   specify their requirements, and those in which a server should reply
   to requests for real-time services.  Performance requirements are
   presented in Section 3; other properties that clients may need or
   desire are described in Section 4.  Section 5 deals with the problem
   of translating the requirements of a human client or an application
   for the equivalent lower-level ones.  In Section 6, we briefly
   present four examples of client requirement specifications, and in
   Section 7 we discuss some of the objections that can be raised
   against our approach.

2.  Client Requests and Server Replies

   No real-time service can be provided if the client does not specify,
   together with the requirements, the characteristics of the expected
   input traffic.  Describing input traffic and all the various
   requirements entails much work on the part of a client.  Gathering
   the necessary information and inputting it may be very time-
   consuming.  A well-designed real-time communication service will
   minimize the effort to be spent by a client.

   Sensible default values, the possibility of partial or incremental
   specifications (e.g., by editing preexisting specifications), and a
   number of standard descriptions should be provided.  These
   descriptions will include characterizations of inputs (e.g., those of
   a video stream for multimedia conferencing, an HDTV stream, a hi-fi
   audio stream, a file transfer stream, and so on) and standard sets of
   requirements.  With these aids, it might be possible for a human
   client to specify his or her request by a short phrase, perhaps
   followed by a few characters representing options or changes to the
   standard or default values.

   Since requests for real-time services may be denied because of a
   mismatch between the client's demands and the resources available to
   the server, the client will appreciate being informed about the
   reasons for any rejection, so that the request can be modified and
   resubmitted, or postponed, or cancelled altogether [Herr89].  The
   information provided by the server to a human client should be
   meaningful, useful, and non-redundant.  The reason for rejection
   should be understandable by the client (who should be assumed not to
   know any of the details of the operating system, of the protocols or
   of the network) and should be accompanied by data that will be useful
   to the client in deciding what to do as well as how the request ought
   to be modified to make it successful.  If, for example, a bound
   specified by the client cannot be guaranteed by the server under its
   current load, the information returned to the client should include



Ferrari                                                         [Page 4]

RFC 1193          Requirements for Real-Time Services      November 1990


   the minimum or maximum value of the bound that the server could
   guarantee; the client will thus be able to decide whether that bound
   would be acceptable (possibly with some other modifications as well)
   or not, and act accordingly.

   When the client is not a human being but an application or a process,
   the type of a server's replies should be very different from that
   just described [Herr89]; another standard interface, the one between
   an application and a real-time service, must therefore be defined,
   possibly in multiple, application-specific versions.

   Clients will also be interested in the pricing policies implemented
   by the server: these should be fair (or at least perceived to be
   fair) and easy to understand. The client should be able easily to
   estimate charges for given performance guarantees as a function of
   distance, time of day, and other variables, or to obtain these
   estimates from the server as a free off-line service.

3.  Performance Requirements

   A client can specify a service requirement using the general form

                               pred = TRUE,

   where some of the variables in predicate pred can be controlled or
   influenced by the server.

   A simple and popular form of performance requirement is that
   involving a bound.  A deterministic bound can be specified as

                  (var <= bound) = TRUE, or var <= bound,

   where variable var is server-controlled, while bound is client-
   specified.  The bounds in these expressions are upper bounds; if  <
   is replaced by  > , they become lower bounds.

   When the variable in the latter expression above is a probability, we
   have a statistical bound, and bound in that case is a probability
   bound; if the predicate is a deterministic bound, we have:

⌨️ 快捷键说明

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