home *** CD-ROM | disk | FTP | other *** search
/ Unix System Administration Handbook 1997 October / usah_oct97.iso / rfc / 1000s / rfc1018.txt < prev    next >
Text File  |  1987-08-10  |  8KB  |  171 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                        A. McKenzie
  8. Request for Comments: 1018                                      BBN Labs
  9.                                                              August 1987
  10.                          Some Comments on SQuID
  11.  
  12. Status of this Memo
  13.  
  14.    This memo is a discussion of some of the ideas expressed in RFC-1016
  15.    on Source Quench.  This memo introduces the distinction of the cause
  16.    of congestion in a gateway between the effects of "Funneling" and
  17.    "Mismatch".  It is offered in the same spirit as RFC-1016; to
  18.    stimulate discussion.  The opinions offered are personal, not
  19.    corporate, opinions.  Distribution of this memo is unlimited.
  20.  
  21. Discussion
  22.  
  23.    It appears to me that there are at least two qualitatively different
  24.    types of congestion which may occur at Internet gateways.  One form
  25.    of congestion is the result of the merger of several independent data
  26.    streams from diverse sources at a common point in their communication
  27.    path.  I'll refer to this as "Funneling".  The architecture of the
  28.    Internet (apparently) assumes that traffic flows are bursty and
  29.    asynchronous; therefore congestion which occurs at the result of
  30.    Funneling will typically be the result of "bad luck" as several
  31.    independent bursts happen to arrive at a common point simultaneously.
  32.    It is expected that Funneling congestion will be short-lived, just as
  33.    individual bursts are.  I don't claim that any such assumptions are
  34.    documented or formalized; nevertheless I got a clear sense of this
  35.    class of assumptions both from reading the protocol documentation and
  36.    from personal recollections of long-past design meetings.
  37.  
  38.    A second form of Internet congestion may arise during a prolonged
  39.    (non-bursty) data transfer between hosts when the resulting traffic
  40.    must pass through a node connecting two communications subsystems
  41.    with significantly different throughput rates.  I'll refer to this as
  42.    "Mismatching".  By contrast with Funneling, Mismatching can be caused
  43.    by the innocent action of a single host, is highly repeatable
  44.    (definitely not just "bad luck"), and will be long-lived.
  45.  
  46.    RFC- 1016 discusses two interrelated strategies; one for when to send
  47.    a SQ, and a second for what to do when an SQ is received.  There is
  48.    also a discussion of some experiments, which deal almost exclusively
  49.    with Mismatching congestion. (I understand that the simulation can
  50.    generate multiple flows, but these simply further increase the degree
  51.    of Mismatch; the flow under study is long-lived by design.)  It seems
  52.    to me that the strategy RFC- 1016 proposes for sending SQ's, based on
  53.    queue length, may be appropriate for Funneling Congestion, but
  54.    inappropriate for Mismatch congestion, as discussed below.  The host
  55.  
  56.  
  57.  
  58. McKenzie                                                        [Page 1]
  59.  
  60. RFC 1018                 Some Comments on SQuID              August 1987
  61.  
  62.  
  63.    behavior proposed in RFC- 1016 may be appropriate for both cases.
  64.  
  65.    Since we assume that Funneling congestion is the result of short-
  66.    lived phenomena, it is appropriate for gateways which are the sites
  67.    of this congestion to attempt to smooth it without excessive control
  68.    actions.  This is the basis for the "hint" in the ICMP specification
  69.    that maybe an SQ should be sent only when a datagram is dropped.  It
  70.    is the basis for the idea in RFC- 1016 that a gateway should be slow
  71.    to cry "congestion" (SQK = 70% of queue space filed), even if
  72.    persistent in attempting to eliminate it (SQLW = 50% of queue space
  73.    filled).  Since Funneling congestion is the result of the actions of
  74.    multiple senders, the growth of internal queues is the only
  75.    reasonable place to watch for its existence or measure its effects.
  76.  
  77.    Mismatch congestion, on the other hand, is the result of incorrect or
  78.    inadequate information about available transmission bandwidth on the
  79.    part of a single sender. The sending host has available to it
  80.    information about destination host capacity (TCP window size and ACK
  81.    rate) and about local link capacity (from the hardware/software
  82.    interface to the directly-connected network), but no real information
  83.    about the capacity of the Internet path.  As noted in RFC-1016, hosts
  84.    can obtain the best throughput if their datagrams are never dropped,
  85.    and the probability of dropped datagrams is minimized when hosts send
  86.    at the appropriate steady-state rate (no "bunching").  Therefore, it
  87.    is a disservice to a host which is the source of Mismatch congestion
  88.    to wait a "long" time before taking control action.  It would be
  89.    preferable to provide immediate feedback, via SQ's, to the host as
  90.    soon as datagrams with too short an inter-arrival time begin to
  91.    arrive.  The sending host could then immediately (begin to) adjust
  92.    its behavior for the indicated destination.
  93.  
  94.    There are, of course, many implementation issues which would need to
  95.    be addressed in order to implement the type of SQ-sending behavior
  96.    suggested here.  Perhaps, though, they are not as severe as they
  97.    might appear.  Two specific issues and possible solutions, are:
  98.  
  99.       1. How should a gateway differentiate between Funneling and
  100.       mismatch congestion?  Perhaps whenever there are more than q"
  101.       items on an output queue to a slower subnet which have been
  102.       received from a faster subnet, then look to see if any h" of them
  103.       have the same source.  It so assume Mismatch and send an SQ to
  104.       that source.  The "q" test might be implemented by a small set of
  105.       counters which are incremented when a packet is placed on an
  106.       output queue and decremented when a packet is sent.  The search
  107.       for a common source might require more cycles but be performed
  108.       less often.  The value of "q" would have to be small enough to
  109.       give an early warning, but bigger than a small multiple of "h".
  110.       The value of "h" would have to be big enough to avoid triggering
  111.  
  112.  
  113.  
  114. McKenzie                                                        [Page 2]
  115.  
  116. RFC 1018                 Some Comments on SQuID              August 1987
  117.  
  118.  
  119.       on common cases of source datagram fragmentation by an
  120.       intermediate gateway.
  121.  
  122.       2. How can a gateway determine which subnets are "slower" and
  123.       faster", as well as appropriate inter-arrival times?  There may be
  124.       lots of clever ways for a gateway to measure the dynamic bandwidth
  125.       of its directly-connected subnets.  However, I'm more in favor of
  126.       starting with configuration parameters related to the known (at
  127.       installation time) general characteristics of subnet types (e.g.
  128.       Ethernet is 10Mbps, ARPANET is 50 Kbps, SATNET is 100 Kbps, etc).
  129.       This sort of approximation is quite adequate for determining which
  130.       subnet is faster, or what inter-arrival time is appropriate for
  131.       packets being routed to a slower subnet.
  132.  
  133. Summary
  134.  
  135.    Funneling congestion and Mismatch congestion are qualitatively
  136.    different, and it would not be surprising if different SQ-sending
  137.    strategies were best for dealing with them.  RFC- 1016 suggests a
  138.    specific SQ-sending strategy which may be inappropriate for dealing
  139.    with Mismatch congestion.  This RFC suggests guidelines for an
  140.    additional SQ-sending strategy for dealing with Mismatch.  Hosts
  141.    implementing the SQuID algorithm of RFC-1016 should be expected to
  142.    achieve better performance if they received SQ's sent according to
  143.    either or both of these strategies.  However, all these ideas are
  144.    still only in half-baked form; real engineering is clearly needed.
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170. McKenzie                                                        [Page 3]
  171.