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

📄 rfc1363.txt

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






Network Working Group                                     C. Partridge
Request for Comments: 1363                                         BBN
                                                        September 1992


                     A Proposed Flow Specification

Status of this Memo

   This memo provides information for the Internet community.  It does
   not specify an Internet standard.  Distribution of this memo is
   unlimited.

Abstract

   A flow specification (or "flow spec") is a data structure used by
   internetwork hosts to request special services of the internetwork,
   often guarantees about how the internetwork will handle some of the
   hosts' traffic.  In the future, hosts are expected to have to request
   such services on behalf of distributed applications such as
   multimedia conferencing.

   The flow specification defined in this memo is intended for
   information and possible experimentation (i.e., experimental use by
   consenting routers and applications only).  This RFC is a product of
   the Internet Research Task Force (IRTF).

Introduction

   The Internet research community is currently studying the problems of
   supporting a new suite of distributed applications over
   internetworks.  These applications, which include multimedia
   conferencing, data fusion, visualization, and virtual reality, have
   the property that they require the distributed system (the collection
   of hosts that support the applications along with the internetwork to
   which they are attached) be able to provide guarantees about the
   quality of communication between applications.  For example, a video
   conference may require a certain minimum bandwidth to be sure that
   the video images are delivered in a timely way to all recipients.

   One way for the distributed system to provide guarantees is for hosts
   to negotiate with the internetwork for rights to use a certain part
   of the internetwork's resources.  (An alternative is to have the
   internetwork infer the hosts' needs from information embedded in the
   data traffic each host injects into the network.  Currently, it is
   not clear how to make this scheme work except for a rather limited
   set of traffic classes.)




Partridge                                                       [Page 1]

RFC 1363             A Proposed Flow Specification        September 1992


   There are a number of ways to effect a negotiation.  For example a
   negotiation can be done in-band or out-of-band.  It can also be done
   in advance of sending data (possibly days in advance), as the first
   part of a connection setup, or concurrently with sending (i.e., a
   host starts sending data and starts a negotiation to try to ensure
   that it will allowed to continue sending).  Insofar as is possible,
   this memo is agnostic with regard to the variety of negotiation that
   is to be done.

   The purpose of this memo is to define a data structure, called a flow
   specification or flow spec, that can be used as part of the
   negotiation to describe the type of service that the hosts need from
   the internetwork.  This memo defines the format of the fields of the
   data structure and their interpretation.  It also briefly describes
   what purpose the different fields fill, and discusses why this set of
   fields is thought to be both necessary and sufficient.

   It is important to note that the goal of this flow spec is to able to
   describe *any* flow requirement, both for guaranteed flows and for
   applications that simply want to give hints to the internetwork about
   their requirements.

Format of the Flow Spec

       0                   1                   2                   3
       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |              Version          |    Maximum Transmission Unit  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      Token Bucket Rate        |        Token Bucket Size      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  Maximum Transmission Rate    |     Minimum Delay Noticed     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     Maximum Delay Variation   |        Loss Sensitivity       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |     Burst Loss Sensitivity    |          Loss Interval        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    Quality of Guarantee       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Discussion of the Flow Spec

   The flow spec indicates service requirements for a single direction.
   Multidirectional flows will need to request services in both
   directions (using two flow specs).

   To characterize a unidirectional flow, the flow spec needs to do four
   things.



Partridge                                                       [Page 2]

RFC 1363             A Proposed Flow Specification        September 1992


   First, it needs to characterize how the flow's traffic will be
   injected into the internetwork.  If the internetwork doesn't know
   what to expect (is it a gigabit-per-second flow or a three kilobit-
   per-second flow?) then it is difficult for the internetwork to make
   guarantees.  (Note the word "difficult" rather than "impossible."  It
   may be possible to statistically manage traffic or over-engineer the
   network so well that the network can accept almost all flows, without
   setup.  But this problem looks far harder than asking the sender to
   approximate its behavior so the network can plan.)  In this flow
   spec, injected traffic is characterized as having a sustainable rate
   (the token bucket rate) a peak rate (the maximum transmission rate),
   and an approximate burst size (the token bucket size).  A more
   precise definition of each of these fields is given below.  The
   characterization is based, in part, on the work done in [1].

   Second, the flow spec needs to characterize sensitivity to delay.
   Some applications are more sensitive than others.  At the same time,
   the internetwork will likely have a choice of routes with various
   delays available from the source to destination.  For example, both
   routes using satellites (which have very long delays) and routes
   using terrestrial lines (which will have shorter delays) may be
   available.  So the sending host needs to indicate the flow's
   sensitivity to delay.  However, this field is only advisory.  It only
   tells the network when to stop trying to reduce the delay - it does
   not specify a maximum acceptable delay.

   There are two problems with allowing applications to specify the
   maximum acceptable delay.

   First, observe that an application would probably be happy with a
   maximum delay of 100 ms between the US and Japan but very unhappy
   with a delay of 100 ms within the same city.  This observation
   suggests that the maximum delay is actually variable, and is a
   function of the delay that is considered achievable.  But the
   achievable delay is largely determined by the geographic distance
   between the two peers, and this sort of geographical information is
   usually not available from a network.  Worse yet, the advent of
   mobile hosts makes such information increasingly hard to provide.  So
   there is reason to believe that applications may have difficulty
   choosing a rational maximum delay.

   The second problem with maximum delays is that they are an attempt to
   quantify what performance is acceptable to users, and an application
   usually does not know what performance will be acceptable its user.
   For example, a common justification for specifying a maximum
   acceptable delay is that human users find it difficult to talk to
   each other over a link with more than about 100 ms of delay.
   Certainly such delays can make the conversation less pleasant, but it



Partridge                                                       [Page 3]

RFC 1363             A Proposed Flow Specification        September 1992


   is still possible to converse when delays are several seconds long,
   and given a choice between no connection and a long delay, many users
   will pick the delay.  (The phone call may involve an important matter
   that must be resolved.)

   As part of specifying a flow's delay sensitivity, the flow spec must
   also characterize how sensitive the flow is to the distortion of its
   data stream.

   Packets injected into a network according to some pattern will not
   normally come out of the network still conforming to the pattern.
   Instead, the pattern will have been distorted by queueing effects in
   the network.  Since there is reason to believe that it may make
   network design easier to continue to allow the networks slightly
   distort traffic patterns, it is expected that those applications
   which are sensitive to distortion will require their hosts to use
   some amount of buffering to reshape the flow back into its original
   form.  It seems reasonable to assume that buffer space is not
   infinite and that a receiving system will wish to limit the amount of
   buffering that a single flow can use.

   The amount of buffer space required for removing distortion at the
   receiving system is determined by the variation in end-to-end
   transmission delays for data sent over the flow.  If the transmission
   delay is a mean delay, D, plus or minus a variance, V, the receiving
   system needs buffer space equivalent to 2 * V * the transmission
   rate.  To see why this is so, consider two packets, A and B, sent T
   time units apart which must be delivered to the receiving application
   T time units apart.  In the worst case, A arrives after a delay of
   D-V time units (the minimum delay) and B arrives after a delay of D+V
   time units (the maximum delay).  The receiver cannot deliver B until
   it arrives, which is T + 2 * V time units after A.  To ensure that A
   is delivered T time units before B, A must be buffered for 2 * V time
   units.  The delay variance field is the value of 2 * V, and allows
   the receiver to indicate how much buffering it is willing to provide.

   A third function of the flow spec is to signal sensitivity to loss of
   data.  Some applications are more sensitive to the loss of their data
   than other applications.  Some real-time applications are both
   sensitive to loss and unable to wait for retransmissions of data.
   For these particularly sensitive applications, hosts may implement
   forward error correction on a flow to try to absolutely minimize
   loss.  The loss fields allow hosts to request loss properties
   appropriate for the application's requirements.

   Finally, it is expected that the internetwork may be able to provide
   a range of service guarantees.  At the best, the internetwork may be
   asked to guarantee (with tight probability bounds) the quality of



Partridge                                                       [Page 4]

RFC 1363             A Proposed Flow Specification        September 1992


   service it will provide.  Or the internetwork may simply be asked to
   ensure that packets sent over the flow take a terrestrial path.  The
   quality of guarantee field indicates what type of service guarantee
   the application desires.

Definition of Individual Fields

General Format of Fields

   With a few exceptions, fields of the flow spec are expressed using a
   common 16-bit format.  This format has two forms.  The first form is
   shown below.

               0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              |0|  Exponent   |     Value     |
              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   In this format, the first bit is 0, followed by 7 bits of an exponent
   (E), and an 8-bit value (V).  This format encodes a number, of the
   form V * (2**E).  This representation was chosen to allow easy
   representation of a wide range of values, while avoiding over-precise
   representations.

   In some case, systems will not wish to request a precise value but
   rather simply indicate some sensitivity.  For example, a virtual
   terminal application like Telnet will likely want to indicate that it
   is sensitive to delay, but it may not be worth expressing particular
   delay values for the network to try to achieve.  For these cases,
   instead of a number, the field in the flow spec will take the
   following form:

               0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
              |1|   Well-defined Constant     |
              +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The first bit of the field is one, and is followed by a 15-bit
   constant.  The values of the constants for given fields are defined
   below.  Any additional values can be requested from the Internet
   Assigned Numbers Authority (IANA).

   Version Field

      This field is a 16-bit integer in Internet byte order.  It is the
      version number of the flow specification.  The version number of
      the flow specification defined in this document is 1.  The IANA is
      responsible for assigning future version numbers for any proposed



⌨️ 快捷键说明

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