home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc1254.txt < prev    next >
Text File  |  1996-05-07  |  69KB  |  523 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                          A. Mankin Request for Comments: 1254                                         MITRE                                                          K. Ramakrishnan                                            Digital Equipment Corporation                                                                  Editors                                                              August 1991 
  8.  
  9.                     Gateway Congestion Control Survey 
  10.  
  11. Status of this Memo 
  12.  
  13.    This memo provides information for the Internet community.  It is a    survey of some of the major directions and issues.  It does not    specify an Internet standard.  Distribution of this memo is    unlimited. 
  14.  
  15. Abstract 
  16.  
  17.    The growth of network intensive Internet applications has made    gateway congestion control a high priority.  The IETF Performance and    Congestion Control Working Group surveyed and reviewed gateway    congestion control and avoidance approaches.  The purpose of this    paper is to present our review of the congestion control approaches,    as a way of encouraging new discussion and experimentation.  Included    in the survey are Source Quench, Random Drop, Congestion Indication    (DEC Bit), and Fair Queueing.  The task remains for Internet    implementors to determine and agree on the most effective mechanisms    for controlling gateway congestion. 
  18.  
  19. 1.  Introduction 
  20.  
  21.    Internet users regularly encounter congestion, often in mild forms.    However, severe congestion episodes have been reported also; and    gateway congestion remains an obstacle for Internet applications such    as scientific supercomputing data transfer.  The need for Internet    congestion control originally became apparent during several periods    of 1986 and 1987, when the Internet experienced the "congestion    collapse" condition predicted by Nagle [Nag84].  A large number of    widely dispersed Internet sites experienced simultaneous slowdown or    cessation of networking services for prolonged periods.  BBN, the    firm responsible for maintaining the then backbone of the Internet,    the ARPANET, responded to the collapse by adding link capacity    [Gar87]. 
  22.  
  23.    Much of the Internet now uses as a transmission backbone the National    Science Foundation Network (NSFNET). Extensive monitoring and    capacity planning are being done for the NSFNET backbone; still, as 
  24.  
  25.  
  26.  
  27. Performance and Congestion Control Working Group                [Page 1] 
  28.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  29.  
  30.     the demand for this capacity grows, and as resource-intensive    applications such as wide-area file system management [Sp89]    increasingly use the backbone, effective congestion control policies    will be a critical requirement. 
  31.  
  32.    Only a few mechanisms currently exist in Internet hosts and gateways    to avoid or control congestion.  The mechanisms for handling    congestion set forth in the specifications for the DoD Internet    protocols are limited to: 
  33.  
  34.       Window flow control in TCP [Pos81b], intended primarily for       controlling the demand on the receiver's capacity, both in terms       of processing and buffers. 
  35.  
  36.       Source quench in ICMP, the message sent by IP to request that a       sender throttle back [Pos81a]. 
  37.  
  38.    One approach to enhancing Internet congestion control has been to    overlay the simple existing mechanisms in TCP and ICMP with more    powerful ones.  Since 1987, the TCP congestion control policy, Slow-    start, a collection of several algorithms developed by Van Jacobson    and Mike Karels [Jac88], has been widely adopted. Successful Internet    experiences with Slow-start led to the Host Requirements RFC [HREQ89]    classifying the algorithms as mandatory for TCP.  Slow-start modifies    the user's demand when congestion reaches such a point that packets    are dropped at the gateway.  By the time such overflows occur, the    gateway is congested.  Jacobson writes that the Slow-start policy is    intended to function best with a complementary gateway policy    [Jac88]. 
  39.  
  40. 1.1  Definitions 
  41.  
  42.    The characteristics of the Internet that we are interested in include    that it is, in general, an arbitrary mesh-connected network.  The    internetwork protocol is connectionless.  The number of users that    place demands on the network is not limited by any explicit    mechanism; no reservation of resources occurs and transport layer    set-ups are not disallowed due to lack of resources.  A path from a    source to destination host may have multiple hops, through several    gateways and links.  Paths through the Internet may be heterogeneous    (though homogeneous paths also exist and experience congestion).    That is, links may be of different speeds.  Also, the gateways and    hosts may be of different speeds or may be providing only a part of    their processing power to communication-related activity.  The    buffers for storing information flowing through Internet gateways are    finite.  The nature of the internet protocol is to drop packets when    these buffers overflow. 
  43.  
  44.  
  45.  
  46.  Performance and Congestion Control Working Group                [Page 2] 
  47.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  48.  
  49.     Gateway congestion arises when the demand for one or more of the    resources of the gateway exceeds the capacity of that resource.  The    resources include transmission links, processing, and space used for    buffering.  Operationally, uncongested gateways operate with little    queueing on average, where the queue is the waiting line for a    particular resource of the gateway.  One commonly used quantitative    definition [Kle79] for when a resource is congested is when the    operating point is greater than the point at which resource power is    maximum, where resource power is defined as the ratio of throughput    to delay (See Section 2.2).  At this operating point, the average    queue size is close to one, including the packet in service.  Note    that this is a long-term average queue size.  Several definitions    exist for the timescale of averaging for congestion detection and    control, such as dominant round-trip time and queue regeneration    cycle (see Section 2.1). 
  50.  
  51.    Mechanisms for handling congestion may be divided into two    categories, congestion recovery and congestion avoidance.  Congestion    recovery tries to restore an operating state, when demand has already    exceeded capacity.  Congestion avoidance is preventive in nature.  It    tries to keep the demand on the network at or near the point of    maximum power, so that congestion never occurs.  Without congestion    recovery, the network may cease to operate entirely (zero    throughput), whereas the Internet has been operating without    congestion avoidance for a long time.  Overall performance may    improve with an effective congestion avoidance mechanism.  Even if    effective congestion avoidance was in place, congestion recovery    schemes would still be required, to retain throughput in the face of    sudden changes (increase of demand, loss of resources) that can lead    to congestion. 
  52.  
  53.    In this paper, the term "user" refers to each individual transport    (TCP or another transport protocol) entity.  For example, a TCP    connection is a "user" in this terminology.  The terms "flow" and    "stream" are used by some authors in the same sense.  Some of the    congestion control policies discussed in this paper, such as    Selective Feedback Congestion Indication and Fair Queueing aggregate    multiple TCP connections from a single host (or between a source    host-destination host pair) as a virtual user. 
  54.  
  55.    The term "cooperating transport entities" will be defined as a set of    TCP connections (for example) which follow an effective method of    adjusting their demand on the Internet in response to congestion.    The most restrictive interpretation of this term is that the    transport entities follow identical algorithms for congestion control    and avoidance.  However, there may be some variation in these    algorithms.  The extent to which heterogeneous end-system congestion    control and avoidance may be accommodated by gateway policies should 
  56.  
  57.  
  58.  
  59. Performance and Congestion Control Working Group                [Page 3] 
  60.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  61.  
  62.     be a subject of future research. The role played in Internet    performance of non-cooperating transport entities is discussed in    Section 5. 
  63.  
  64. 1.2  Goals and Scope of This Paper 
  65.  
  66.    The task remains for Internet implementors to determine effective    mechanisms for controlling gateway congestion.  There has been    minimal common practice on which to base recommendations for Internet    gateway congestion control.  In this survey, we describe the    characteristics of one experimental gateway congestion management    policy, Random Drop, and several that are better-known:  Source    Quench, Congestion Indication, Selective Feedback Congestion    Indication, and Fair Queueing, both Bit-Round and Stochastic.  A    motivation for documenting Random Drop is that it has as primary    goals low overhead and suitability for scaling up for Internets with    higher speed links.  Both of these are important goals for future    gateway implementations that will have fast links, fast processors,    and will have to serve large numbers of interconnected hosts. 
  67.  
  68.    The structure of this paper is as follows.  First, we discuss    performance goals, including timescale and fairness considerations.    Second, we discuss the gateway congestion control policies.  Random    Drop is sketched out, with a recommendation for using it for    congestion recovery and a separate section on its use as congestion    avoidance.  Third, since gateway congestion control in itself does    not change the end-systems' demand, we briefly present the effective    responses to these policies by two end-system congestion control    schemes, Slow-start and End-System Congestion Indication.  Among our    conclusions, we address the issues of transport entities that do not    cooperate with gateway congestion control.  As an appendix, because    of the potential interactions with gateway congestion policies, we    report on a scheme to help in controlling the performance of Internet    gateways to connection-oriented subnets (in particular, X.25). 
  69.  
  70.    Resources in the current Internet are not charged to users of them.    Congestion avoidance techniques cannot be expected to help when users    increase beyond the capacity of the underlying facilities.  There are    two possible solutions for this, increase the facilities and    available bandwidth, or forcibly reduce the demand.  When congestion    is persistent despite implemented congestion control mechanisms,    administrative responses are needed.  These are naturally not within    the scope of this paper.  Also outside the scope of this paper are    routing techniques that may be used to relocate demand away from    congested individual resources (e.g., path-splitting and load-    balancing). 
  71.  
  72.  
  73.  
  74.  
  75.  
  76. Performance and Congestion Control Working Group                [Page 4] 
  77.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  78.  
  79.  2.  Performance Goals 
  80.  
  81.    To be able to discuss design and use of various mechanisms for    improving Internetwork performance, we need to have clear performance    goals for the operation of gateways and sets of end-systems.    Internet experience shows that congestion control should be based on    adaptive principles; this requires efficient computation of metrics    by algorithms for congestion control.  The first issue is that of the    interval over which these metrics are estimated and/or measured. 
  82.  
  83. 2.1  Interval for Measurement/Estimation of Performance Metrics 
  84.  
  85.    Network performance metrics may be distorted if they are computed    over intervals that are too short or too long relative to the dynamic    characteristics of the network.  For instance, within a small    interval, two FTP users with equal paths may appear to have sharply    different demands, as an effect of brief, transient fluctuations in    their respective processing.  An overly long averaging interval    results in distortions because of the changing number of users    sharing the resource measured during the time.  It is similarly    important for congestion control mechanisms exerted at end systems to    find an appropriate interval for control. 
  86.  
  87.    The first approach to the monitoring, or averaging, interval for    congestion control is one based on round-trip times.  The rationale    for it is as follows:  control mechanisms must adapt to changes in    Internet congestion as quickly as possible.  Even on an uncongested    path, changed conditions will not be detected by the sender faster    than a round-trip time.  The effect of a sending end-system's control    will also not be seen in less than a round-trip time in the entire    path as well as at the end systems.  For the control mechanism to be    adaptive, new information on the path is needed before making a    modification to the control exerted.  The statistics and metrics used    in congestion control must be able to provide information to the    control mechanism so that it can make an informed decision.    Transient information which may be obsolete before a change is made    by the end-system should be avoided.  This implies the    monitoring/estimating interval is one lasting one or more round    trips.  The requirements described here give bounds on: 
  88.  
  89.       How short an interval:  not small enough that obsolete information       is used for control; 
  90.  
  91.       How long:  not more than the period at which the end-system makes       changes. 
  92.  
  93.    But, from the point of view of the gateway congestion control policy,    what is a round-trip time?  If all the users of a given gateway have 
  94.  
  95.  
  96.  
  97. Performance and Congestion Control Working Group                [Page 5] 
  98.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  99.  
  100.     the same path through the Internet, they also have the same round-    trip time through the gateway.  But this is rarely the case. 
  101.  
  102.    A meaningful interval must be found for users with both short and    long paths. Two approaches have been suggested for estimating this    dynamically, queue regeneration cycle and frequency analysis. 
  103.  
  104.    Use of the queue regeneration cycle has been described as part of the    Congestion Indication policy.  The time period used for averaging    here begins when a resource goes from the idle to busy state.  The    basic interval for averaging is a "regeneration cycle" which is in    the form of busy and idle intervals.  Because an average based on a    single previous regeneration may become old information, the    recommendation in [JRC87] is to average over the sum of two    intervals, that is, the previous (busy and idle) period, and the time    since the beginning of the current busy period. 
  105.  
  106.    If the gateway users are window-based transport entities, it is    possible to see how the regeneration interval responds to their    round-trip times.  If a user with a long round-trip time has the    dominant traffic, the queue length may be zero only when that user is    awaiting acknowledgements.  Then the users with short paths will    receive gateway congestion information that is averaged over several    of their round-trip times.  If the short path traffic dominates the    activity in the gateway, i.e., the connections with shorter round-    trip times are the dominant users of the gateway resources, then the    regeneration interval is shorter and the information communicated to    them can be more timely. In this case, users with longer paths    receive, in one of their round-trip times, multiple samples of the    dominant traffic; the end system averaging is based on individual    user's intervals, so that these multiple samples are integrated    appropriately for these connections with longer paths. 
  107.  
  108.    The use of frequency analysis has been described by [Jac89]. In this    approach, the gateway congestion control is done at intervals based    on spectral analysis of the traffic arrivals.  It is possible for    users to have round-trip times close to each other, but be out of    phase from each other. A spectral analysis algorithm detects this.    Otherwise, if multiple round-trip times are significant, multiple    intervals will be identified.  Either one of these will be    predominant, or several will be comparable. An as yet difficult    problem for the design of algorithms accomplishing this technique is    the likelihood of "locking" to the frequency of periodic traffic of    low intensity, such as routing updates. 
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116. Performance and Congestion Control Working Group                [Page 6] 
  117.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  118.  
  119.  2.2  Power and its Relationship to the Operating Point 
  120.  
  121.    Performance goals for a congestion control/avoidance strategy embody    a conflict in that they call for as high a throughput as possible,    with as little delay as possible.  A measure that is often used to    reflect the tradeoff between these goals is power, the ratio of    throughput to delay.  We would like to maximize the value of power    for a given resource.  In the standard expression for power, 
  122.  
  123.      Power = (Throughput^alpha)/Delay 
  124.  
  125.    the exponent alpha is chosen for throughput, based on the relative    emphasis placed on throughput versus delay: if throughput is more    important, then a value of A alpha greater than one is chosen.  If    throughput and delay are equally important (e.g., both bulk transfer    traffic and interactive traffic are equally important), then alpha    equal to one is chosen. The operating point where power is maximized    is the "knee" in the throughput and delay curves.  It is desirable    that the operating point of the resource be driven towards the knee,    where power is maximized.  A useful property of power is that it is    decreasing whether the resource is under- or over-utilized relative    to the knee. 
  126.  
  127.    In an internetwork comprising nodes and links of diverse speeds and    utilization, bottlenecks or concentrations of demand may form.  Any    particular user can see a single bottleneck, which is the slowest or    busiest link or gateway in the path (or possibly identical "balanced"    bottlenecks).  The throughput that the path can sustain is limited by    the bottleneck.  The delay for packets through a particular path is    determined by the service times and queueing at each individual hop.    The queueing delay is dominated by the queueing at the bottleneck    resource(s).  The contribution to the delay over other hops is    primarily the service time, although the propagation delay over    certain hops, such as a satellite link, can be significant.  We would    like to operate all shared resources at their knee and maximize the    power of every user's bottleneck. 
  128.  
  129.    The above goal underscores the significance of gateway congestion    control.  If techniques can be found to operate gateways at their    resource knee, it can improve Internet performance broadly. 
  130.  
  131. 2.3  Fairness 
  132.  
  133.    We would like gateways to allocate resources fairly to users.  A    concept of fairness is only relevant when multiple users share a    gateway and their total demand is greater than its capacity.  If    demands were equal, a fair allocation of the resource would be to    provide an equal share to each user.  But even over short intervals, 
  134.  
  135.  
  136.  
  137. Performance and Congestion Control Working Group                [Page 7] 
  138.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  139.  
  140.     demands are not equal.  Identifying the fair share of the resource    for the user becomes hard.  Having identified it, it is desirable to    allocate at least this fair share to each user.  However, not all    users may take advantage of this allocation.  The unused capacity can    be given to other users.  The resulting final allocation is termed a    maximally fair allocation.  [RJC87] gives a quantitative method for    comparing the allocation by a given policy to the maximally fair    allocation. 
  141.  
  142.    It is known that the Internet environment has heterogeneous transport    entities, which do not follow the same congestion control policies    (our definition of cooperating transports). Then, the controls given    by a gateway may not affect all users and the congestion control    policy may have unequal effects.  Is "fairness" obtainable in such a    heterogeneous community?  In Fair Queueing, transport entities with    differing congestion control policies can be insulated from each    other and each given a set share of gateway bandwidth. 
  143.  
  144.    It is important to realize that since Internet gateways cannot refuse    new users, fairness in gateway congestion control can lead to all    users receiving small (sub-divided) amounts of the gateway resources    inadequate to meet their performance requirements.  None of the    policies described in this paper currently addresses this.  Then,    there may be policy reasons for unequal allocation of the gateway    resources.  This has been addressed by Bit-Round Fair Queueing. 
  145.  
  146. 2.4  Network Management 
  147.  
  148.    Network performance goals may be assessed by measurements in either    the end-system or gateway frame of reference.  Performance goals are    often resource-centered and the measurement of the global performance    of "the network," is not only difficult to measure but is also    difficult to define.  Resource-centered metrics are more easily    obtained, and do not require synchronization.  That resource-centered    metrics are appropriate ones for use in optimization of power is    shown by [Jaf81]. 
  149.  
  150.    It would be valuable for the goal of developing effective gateway    congestion handling if Management Information Base (MIB) objects    useful for evaluating gateway congestion were developed.  The    reflections on the control interval described above should be applied    when network management applications are designed for this purpose.    In particular, obtaining an instantaneous queue length from the    managed gateway is not meaningful for the purposes of congestion    management. 
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  Performance and Congestion Control Working Group                [Page 8] 
  157.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  158.  
  159.  3.  Gateway Congestion Control Policies 
  160.  
  161.    There have been proposed a handful of approaches to dealing with    congestion in the gateway. Some of these are Source Quench, Random    Drop, Congestion Indication, Selective Feedback Congestion    Indication, Fair Queueing, and Bit-Round Fair Queueing.  They differ    in whether they use a control message, and indeed, whether they view    control of the end-systems as necessary, but none of them in itself    lowers the demand of users and consequent load on the network.  End-    system policies that reduce demand in conjunction with gateway    congestion control are described in Section 4. 
  162.  
  163. 3.1  Source Quench 
  164.  
  165.    The method of gateway congestion control currently used in the    Internet is the Source Quench message of the RFC-792 [Pos81a]    Internet Control Message Protocol (ICMP). When a gateway responds to    congestion by dropping datagrams, it may send an ICMP Source Quench    message to the source of the dropped datagram.  This is a congestion    recovery policy. 
  166.  
  167.    The Gateway Requirements RFC, RFC-1009 [GREQ87], specifies that    gateways should only send Source Quench messages with a limited    frequency, to conserve CPU resources during the time of heavy load.    We note that operating the gateway for long periods under such loaded    conditions should be averted by a gateway congestion control policy.    A revised Gateway Requirements RFC is being prepared by the IETF. 
  168.  
  169.    Another significant drawback of the Source Quench policy is that its    details are discretionary, or, alternatively, that the policy is    really a family of varied policies.  Major Internet gateway    manufacturers have implemented a variety of source quench    frequencies.  It is impossible for the end-system user on receiving a    Source Quench to be certain of the circumstances in which it was    issued.  This makes the needed end-system response problematic:  is    the Source Quench an indication of heavy congestion, approaching    congestion, a burst causing massive overload, or a burst slightly    exceeding reasonable load? 
  170.  
  171.    To the extent that gateways drop the last arrived datagram on    overload, Source Quench messages may be distributed unfairly.  This    is because the position at the end of the queue may be unfairly often    occupied by the packets of low demand, intermittent users, since    these do not send regular bursts of packets that can preempt most of    the queue space. 
  172.  
  173.    [Fin89] developed algorithms for when to issue Source Quench and for    responding to it with a rate-reduction in the IP layer on the sending 
  174.  
  175.  
  176.  
  177. Performance and Congestion Control Working Group                [Page 9] 
  178.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  179.  
  180.     host.  The system controls end-to-end performance of connections in a    manner similar to the congestion avoidance portion of Slow-start TCP    [Jac88]. 
  181.  
  182. 3.2  Random Drop 
  183.  
  184.    Random Drop is a gateway congestion control policy intended to give    feedback to users whose traffic congests the gateway by dropping    packets on a statistical basis.  The key to this policy is the    hypothesis that a packet randomly selected from all incoming traffic    will belong to a particular user with a probability proportional to    the average rate of transmission of that user.  Dropping a randomly    selected  packet results in users which generate much traffic having    a greater number of packets dropped compared with those generating    little traffic.  The selection of packets to be dropped is completely    uniform.  Therefore, a user who generates traffic of an amount below    the "fair share" (as defined in Section 2.3) may also experience a    small amount of packet loss at a congested gateway. This character of    uniformity is in fact a primary goal that Random Drop attempts to    achieve. 
  185.  
  186.    The other primary goal that Random Drop attempts to achieve is a    theoretical overhead which is scaled to the number of shared    resources in the gateway rather than the number of its users.  If a    gateway congestion algorithm has more computation the more users    there are, this can lead to processing demands that are higher as    congestion increases.  Also the low-overhead goal of Random Drop    addresses concerns about the scale of gateway processing that will be    required in the mid-term Internet as gateways with fast processors    and links are shared by very large active sets of users.  3.2.1  For Congestion Recovery 
  187.  
  188.    Random Drop has been proposed as an improvement to packet dropping at    the operating point where the gateway's packet buffers overflow.    This is using Random Drop strictly as a congestion recovery    mechanism. 
  189.  
  190.    In Random Drop congestion recovery, instead of dropping the last    packet to arrive at the queue, a packet is selected randomly from the    queue.  Measurements of an implementation of Random Drop Congestion    Recovery [Man90] showed that a user with a low demand, due to a    longer round-trip time path than other users of the gateway, had a    higher drop rate with RDCR than without.  The throughput accorded to    users with the same round-trip time paths was nearly equal with RDCR    as compared to without it.  These results suggest that RDCR should be    avoided unless it is used within a scheme that groups traffic more or    less by round-trip time. 
  191.  
  192.  
  193.  
  194. Performance and Congestion Control Working Group               [Page 10] 
  195.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  196.  
  197.  3.2.2  For Congestion Avoidance 
  198.  
  199.    Random Drop is also proposed as a congestion avoidance policy    [Jac89].  The intent is to initiate dropping packets when the gateway    is anticipated to become congested and remain so unless there is some    control exercised.  This  implies  selection  of  incoming packets to    be randomly dropped at a rate derived from identifying the level of    congestion at the gateway.  The rate is the number of arrivals    allowed between drops. It depends on the current operating point and    the prediction of congestion. 
  200.  
  201.    A part of the policy is to determine that congestion will soon occur    and that the gateway is beginning to operate beyond the knee of the    power curve.  With a suitably chosen interval (Section 2.1), the    number of packets from each individual user in a sample over that    interval is proportional to each user's demand on the gateway.  Then,    dropping one or more random packets indicates to some user(s) the    need to reduce the level of demand that is driving the gateway beyond    the desired operating point.  This is the goal that a policy of    Random Drop for congestion avoidance attempts to achieve. 
  202.  
  203.    There are several parameters to be determined for a Random Drop    congestion avoidance policy. The first is an interval, in terms of    number of packet arrivals, over which packets are dropped with    uniform probability.  For instance, in a sample implementation, if    this interval spanned 2000 packet arrivals, and a suitable    probability of drop was 0.001, then two random variables would be    drawn in a uniform distribution in the range of 1 to 2,000.  The    values drawn would be used by counting to select the packets dropped    at arrival.  The second parameter is the value for the probability of    drop.  This parameter would be a function of an estimate of the    number of users, their appropriate control intervals, and possibly    the length of time that congestion has persisted.  [Jac89] has    suggested successively increasing the probability of drop when    congestion persists over multiple control intervals.  The motivation    for increasing the packet drop probability is that the implicit    estimate of the number of users and random selection of their packets    to drop does not guarantee that all users have received enough    signals to decrease demand.  Increasing the probability of drop    increases the probability that enough feedback is provided.    Congestion detection is also needed in Random Drop congestion    avoidance, and could be implemented in a variety of ways.  The    simplest is a static threshold, but dynamically averaged measures of    demand or utilization are suggested. 
  204.  
  205.    The packets dropped in Random Drop congestion avoidance would not be    from the initial inputs to the gateway.  We suggest that they would    be selected only from packets destined for the resource which is 
  206.  
  207.  
  208.  
  209. Performance and Congestion Control Working Group               [Page 11] 
  210.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  211.  
  212.     predicted to be approaching congestion.  For example, in the case of    a gateway with multiple outbound links, access to each individual    link is treated as a separate resource, the Random Drop policy is    applied at each link independently.  Random Drop congestion avoidance    would provide uniform treatment of all cooperating transport users,    even over individual patterns of traffic multiplexed within one    user's stream.  There is no aggregation of users. 
  213.  
  214.    Simulation studies [Zha89], [Has90] have presented evidence that    Random Drop is not fair across cooperating and non-cooperating    transport users.  A transport user whose sending policies included    Go-Back-N retransmissions and did not include Slow-start received an    excessive share of bandwidth from a simple implementation of Random    Drop.  The simultaneously active Slow-start users received unfairly    low shares.  Considering this, it can be seen that when users do not    respond to control, over a prolonged period, the Random Drop    congestion avoidance mechanism would have an increased probability of    penalizing users with lower demand.  Their packets dropped, these    users exert the controls leading to their giving up bandwidth. 
  215.  
  216.    Another problem can be seen to arise in Random Drop [She89] across    users whose communication paths are of different lengths.  If the    path spans congested resources at multiple gateways, then the user's    probability of receiving an unfair drop and subsequent control (if    cooperating) is exponentially increased.  This is a significant    scaling problem. 
  217.  
  218.    Unequal paths cause problems for other congestion avoidance policies    as well.  Selective Feedback Congestion Indication was devised to    enhance Congestion Indication specifically because of the problem of    unequal paths.  In Fair Queueing by source-destination pairs, each    path gets its own queue in all the gateways. 
  219.  
  220. 3.3  Congestion Indication 
  221.  
  222.    The Congestion Indication policy is often referred to as the DEC Bit    policy. It was developed at DEC [JRC87], originally for the Digital    Network Architecture (DNA).  It has also been specified for the    congestion avoidance of the ISO protocols TP4 and CLNP [NIST88].    Like Source Quench, it uses explicit communications from the    congested gateway to the user.  However, to use the lowest possible    network resources for indicating congestion, the information is    communicated in a single bit, the Congestion Experienced Bit, set in    the network header of the packets already being forwarded by a    gateway.  Based on the condition of this bit, the end-system user    makes an adjustment to the sending window. In the NSP transport    protocol of DECNET, the source makes an adjustment to its window; in    the ISO transport protocol, TP4, the destination makes this 
  223.  
  224.  
  225.  
  226. Performance and Congestion Control Working Group               [Page 12] 
  227.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  228.  
  229.     adjustment in the window offered to the sender. 
  230.  
  231.    This policy attempts to avoid congestion by setting the bit whenever    the average queue length over the previous queue regeneration cycle    plus part of the current cycle is one or more.  The feedback is    determined independently at each resource. 
  232.  
  233. 3.4  Selective Feedback Congestion Indication 
  234.  
  235.    The simple Congestion Indication policy works based upon the total    demand on the gateway.  The total number of users or the fact that    only a few of the users might be causing congestion is not    considered.  For fairness, only those users who are sending more than    their fair share should be asked to reduce their load, while others    could attempt to increase where possible.  In Selective Feedback    Congestion Indication, the Congestion Experienced Bit is used to    carry out this goal. 
  236.  
  237.    Selective Feedback works by keeping a count of the number of packets    sent by different users since the beginning of the queue averaging    interval.  This is equivalent to monitoring their throughputs. Based    on the total throughput, a fair share for each user is determined and    the congestion bit is set, when congestion approaches, for the users    whose demand is higher than their fair share.  If the gateway is    operating below the throughput-delay knee, congestion indications are    not set. 
  238.  
  239.    A min-max algorithm used to determine the fair share of capacity and    other details of this policy are described in [RJC87].  One parameter    to be computed is the capacity of each resource to be divided among    the users.  This metric depends on the distribution of inter-arrival    times and packet sizes of the users.  Attempting to determine these    in real time in the gateway is unacceptable.  The capacity is instead    estimated from on the throughput seen when the gateway is operating    in congestion, as indicated by the average queue length.  In    congestion (above the knee), the service rate of the gateway limits    its throughput.  Multiplying the throughput obtained at this    operating point by a capacity factor (between 0.5 and 0.9) to adjust    for the distributions yields an acceptable capacity estimate in    simulations. 
  240.  
  241.    Selective Feedback Congestion Indication takes as input a vector of    the number of packets sent by each source-destination pair of end-    systems.  Other alternatives include 1) destination address, 2)    input/output link, and 3) transport connection (source/destination    addresses and ports). 
  242.  
  243.    These alternatives give different granularities for fairness.  In the 
  244.  
  245.  
  246.  
  247. Performance and Congestion Control Working Group               [Page 13] 
  248.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  249.  
  250.     case where paths are the same or round-trip times of users are close    together, throughputs are equalized similarly by basing the selective    feedback on source or destination address.  In fact, if the RTTs are    close enough, the simple congestion indication policy would result in    a fair allocation.  Counts based on source/destination pairs ensure    that paths with different lengths and network conditions get a fair    throughput at the individual gateways.  Counting packets based on    link pairs has a low overhead, but may result in unfairness to users    whose demand is below the fair share and are using a long path.    Counts based on transport layer connection identifiers, if this    information was available to Internet gateways, would make good    distinctions, since the differences of demand of different    applications and instances of applications would be separately    monitored. 
  251.  
  252.    Problems with Selective Feedback Congestion Indication include that    the gateway has significant processing to do.  With the feasible    choice of aggregation at the gateway, unfairness across users within    the group is likely.  For example, an interactive connection    aggregated with one or more bulk transfer connections will receive    congestion indications though its own use of the gateway resources is    very low. 
  253.  
  254. 3.5  Fair Queueing 
  255.  
  256.    Fair Queueing is the policy of maintaining separate gateway output    queues for individual end-systems by source-destination pair.  In the    policy as proposed by [Nag85], the gateway's processing and link    resources are distributed to the end-systems on a round-robin basis.    On congestion, packets are dropped from the longest queue.  This    policy leads to equal allocations of resources to each source-    destination pair.  A source-destination pair that demands more than a    fair share simply increases its own queueing delay and congestion    drops. 
  257.  
  258. 3.5.1  Bit-Round Fair Queueing 
  259.  
  260.    An enhancement of Nagle Fair Queueing, the Bit-Round Fair Queuing    algorithm described and simulated by [DKS89] addresses several    shortcomings of Nagle's scheme. It computes the order of service to    packets using their lengths, with a technique that emulates a bit-    by-bit round-robin discipline, so that long packets do not get an    advantage over short ones.  Otherwise the round-robin would be    unfair, for example, giving more bandwidth to hosts whose traffic is    mainly long packets than to hosts sourcing short packets. 
  261.  
  262.    The aggregation of users of a source-destination pair by Fair    Queueing has the property of grouping the users whose round-trips are 
  263.  
  264.  
  265.  
  266. Performance and Congestion Control Working Group               [Page 14] 
  267.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  268.  
  269.     similar. This may be one reason that the combination of Bit-Round    Fair Queueing with Congestion Indication had particularly good    simulated performance in [DKS89]. 
  270.  
  271.    The aggregation of users has the expected drawbacks, as well.  A    TELNET user in a queue with an FTP user does not get delay benefits;    and host pairs with high volume of connections get treated the same    as a host pair with small number of connections and as a result gets    unfair services. 
  272.  
  273.    A problem can be mentioned about Fair Queueing, though it is related    to implementation, and perhaps not properly part of a policy    discussion.  This is a concern that the resources (processing) used    for determining where to queue incoming packets would themselves be    subject to congestion, but not to the benefits of the Fair Queuing    discipline.  In a situation where the gateway processor was not    adequate to the demands on it, the gateway would need an alternative    policy for congestion control of the queue awaiting processing.    Clever implementation can probably find an efficient way to route    packets to the queues they belong in before other input processing is    done, so that processing resources can be controlled, too.  There is    in addition, the concern that bit-by-bit round FQ requires non-FCFS    queueing even within the same source destination pairs to allow for    fairness to different connections between these end systems. 
  274.  
  275.    Another potential concern about Fair Queueing is whether it can scale    up to gateways with very large source-destination populations.  For    example, the state in a Fair Queueing implementation scales with the    number of active end-to-end paths, which will be high in backbone    gateways. 
  276.  
  277. 3.5.2  Stochastic Fairness Queuing 
  278.  
  279.    Stochastic Fairness Queueing (SFQ) has been suggested as a technique    [McK90] to address the implementation issues relating to Fair    Queueing.  The first overhead that is reduced is that of looking up    the source-destination address pair in an incoming packet and    determining which queue that packet will have to be placed in.  SFQ    does not require as many memory accesses as Fair Queueing to place    the packet in the appropriate queue.  SFQ is thus claimed to be more    amenable to implementation for high-speed networks [McK90]. 
  280.  
  281.    SFQ uses a simple hash function to map from the source-destination    address pair to a fixed set of queues.  Since the assignment of an    address pair to a queue is probabilistic, there is the likelihood of    multiple address pairs colliding and mapping to the same queue.  This    would potentially degrade the additional fairness that is gained with    Fairness Queueing.  If two or more address pairs collide, they would 
  282.  
  283.  
  284.  
  285. Performance and Congestion Control Working Group               [Page 15] 
  286.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  287.  
  288.     continue to do so.  To deal with the situation when such a collision    occurs, SFQ periodically perturbs the hash function so that these    address pairs will be unlikely to collide subsequently. 
  289.  
  290.    The price paid for achieving this implementation efficiency is that    SFQ requires a potentially large number of queues (we must note    however, that these queues may be organized orthogonally from the    buffers in which packets are stored. The buffers themselves may be    drawn from a common pool, and buffers in each queue organized as a    linked list pointed to from each queue header).  For example, [McK90]    indicates that to get good, consistent performance, we may need to    have up to 5 to 10 times the number of active source-destination    pairs. In a typical gateway, this may require around 1000 to 2000    queues. 
  291.  
  292.    [McK90] reports simulation results with SFQ. The particular hash    function that is studied is using the HDLC's cyclic redundancy check    (CRC).  The hash function is perturbed by multiplying each byte by a    sequence number in the range 1 to 255 before applying the CRC.  The    metric considered is the standard deviation of the number of packets    output per source-destination pair.  A perfectly fair policy would    have a standard deviation of zero and an unfair policy would have a    large standard deviation.  In the example studied (which has up to 20    source-destination (s-d) pairs going through a single overloaded    gateway), SFQ with 1280 queues (i.e., 64 times the number of source-    destination pairs), approaches about 3 times the standard deviation    of Fairness Queueing.  This must be compared to a FCFS queueing    discipline having a standard deviation which is almost 175 times the    standard deviation of Fairness Queueing. 
  293.  
  294.    It is conjectured in [McK90] that a good value for the interval in    between perturbations of the hash function appears to be in the area    between twice the queue flush time of the stochastic fairness queue    and one-tenth the average conversation time between a source-    destination pair. 
  295.  
  296.    SFQ also may alleviate the anticipated scaling problems that may be    an issue with Fair Queueing by not strictly requiring the number of    queues equal to the possible source-destination pairs that may be    presenting a load on a particular gateway. However, SFQ achieves this    property by trading off some of the fairness for implementation    efficiency. 
  297.  
  298.    [McK90] examines alternative strategies for implementation of Fair    Queueing and SFQ and estimates their complexity on common hardware    platforms (e.g., a Motorola 68020).  It is suggested that mapping an    IP address pair may require around 24 instructions per packet for    Fair Queueing in the best case; in contrast SFQ requires 10 
  299.  
  300.  
  301.  
  302. Performance and Congestion Control Working Group               [Page 16] 
  303.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  304.  
  305.     instructions in the worst case.  The primary source of this gain is    that SFQ avoids a comparison of the s-d address pair on the packet to    the identity of the queue header.  The relative benefit of SFQ over    Fair Queueing is anticipated to be greater when the addresses are    longer. 
  306.  
  307.    SFQ offers promising implemenatation benefits.  However, the price to    be paid in terms of having a significantly larger number of queues    (and the consequent data structures and their management) than the    number of s-d pairs placing a load on the gateway is a concern.  SFQ    is also attractive in that it may be used in concert with the DEC-bit    scheme for Selective Feedback Congestion Indication to provide    fairness as well as congestion avoidance. 
  308.  
  309. 4.  END-SYSTEM CONGESTION CONTROL POLICIES 
  310.  
  311.    Ideally in gateway congestion control, the end-system transport    entities adjust (decrease) their demand in response to control    exerted by the gateway.  Schemes have been put in practice for    transport entities to adjust their demand dynamically in response to    congestion feedback.  To accomplish this, in general, they call for    the user to gradually increase demand until information is received    that the load on the gateway is too high.  In response to this    information, the user decreases load, then begins an exploratory    increases again.  This cycle is repeated continuously, with the goal    that the total demand will oscillate around the optimal level. 
  312.  
  313.    We have already noted that a Slow-start connection may give up    considerable bandwidth when sharing a gateway with aggressive    transport entities.  There is currently no way to enforce that end-    systems use a congestion avoidance policy, though the Host    Requirements RFC [HR89] has defined Slow-start as mandatory for TCP.    This adverse effect on Slow-start connections is mitigated by the    Fair Queueing policy.  Our conclusions discuss further the    coexistence of different end-system strategies. 
  314.  
  315.    This section briefly presents two fielded transport congestion    control and avoidance schemes, Slow-start and End-System Congestion    Indication, and the responses by means of which they cooperate with    gateway policies.  They both use the control paradigm described    above.  Slow-start, as mentioned in Section 1, was developed by    [Jac88], and widely fielded in the BSD TCP implementation.  End-    system Congestion Indication was developed by [JRC87].  It is fielded    in DEC's Digital Network Architecture, and has been specified as well    for ISO TP4 [NIST88]. 
  316.  
  317.    Both Slow-start and End-system Congestion Indication view the    relationship between users and gateways as a control system. They 
  318.  
  319.  
  320.  
  321. Performance and Congestion Control Working Group               [Page 17] 
  322.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  323.  
  324.     have feedback and control components, the latter further broken down    into a procedure bringing a new connection to equilibrium, and a    procedure to maintain demand at the proper level.  They make use of    policies for increasing and decreasing the transport sender's window    size.  These require the sender to follow a set of self-restraining    rules which dynamically adjust the send window whenever congestion is    sensed. 
  325.  
  326.    A predecessor of these, CUTE, developed by [Jai86], introduced the    use of retransmission timeouts as congestion feedback.  The Slow-    start scheme was also designed to use timeouts in the same way.  The    End-System policies for Congestion Indication use the Congestion    Experienced Bit delivered in the network header as the primary    feedback, but retransmission timeouts also provoke an end-system    congestion response. 
  327.  
  328.    In reliable transport protocols like TCP and TP4, the retransmission    timer must do its best to satisfy two conflicting goals. On one hand,    the timer must rapidly detect lost packets. And, on the other hand,    the timer must minimize false alarms.  Since the retransmit timer is    used as a congestion signal in these end-system policies, it is all    the more important that timeouts reliably correspond to packet drops.    One important rule for retransmission is to avoid bad sampling in the    measurements that will be used in estimating the round-trip delay.    [KP87] describes techniques to ensure accurate sampling.  The Host    Requirements RFC [HR89] makes these techniques mandatory for TCP. 
  329.  
  330.    The utilization of a resource can be defined as the ratio of its    average arrival rate to its mean service rate. This metric varies    between 0 and 1.0. In a state of congestion, one or more resources    (link, gateway buffer, gateway CPU) has a utilization approaching    1.0.  The average delay (round trip time) and its variance approach    infinity. Therefore, as the utilization of a network increases, it    becomes increasingly important to take into account the variance of    the round trip time in estimating it for the retransmission timeout. 
  331.  
  332.    The TCP retransmission timer is based on an estimate of the round    trip time.  [Jac88] calls the round trip time estimator the single    most important feature of any protocol implementation that expects to    survive a heavy load. The retransmit timeout procedure in RFC-793    [Pos81b] includes a fixed parameter, beta, to account for the    variance in the delay. An estimate of round trip time using the    suggested values for beta is valid for a network which is at most 30%    utilized.  Thus, the RFC-793 retransmission timeout estimator will    fail under heavy congestion, causing unnecessary retransmissions that    add to the load, and making congestive loss detection impossible. 
  333.  
  334.    Slow-start TCP uses the mean deviation as an estimate of the variance 
  335.  
  336.  
  337.  
  338. Performance and Congestion Control Working Group               [Page 18] 
  339.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  340.  
  341.     to improve the estimate. As a rough view of what happens with the    Slow-start retransmission calculation, delays can change by    approximately two standard deviations without the timer going off in    a false alarm.  The same method of estimation may be applicable to    TP4.  The procedure is: 
  342.  
  343.            Error     = Measured - Estimated            Estimated = Estimated + Gain_1 * Error            Deviation = Deviation + Gain_2 * (|Error| - Deviation)            Timeout   = Estimated + 2 * Deviation 
  344.  
  345.            Where:  Gain_1, Gain_2 are gain factors. 
  346.  
  347. 4.1  Response to No Policy in Gateway 
  348.  
  349.    Since packets must be dropped during congestion because of the finite    buffer space, feedback of congestion to the users exists even when    there is no gateway congestion policy.  Dropping the packets is an    attempt to recover from congestion, though it needs to be noted that    congestion collapse is not prevented by packet drops if end-systems    accelerate their sending rate in these conditions.  The accurate    detection of congestive loss by all retransmission timers in the    end-systems is extremely important for gateway congestion recovery. 
  350.  
  351. 4.2  Response to Source Quench 
  352.  
  353.    Given that a Source Quench message has ambiguous meaning, but usually    is issued for congestion recovery, the response of Slow-start to a    Source Quench is to return to the beginning of the cycle of increase.    This is an early response, since the Source Quench on overflow will    also lead to a retransmission timeout later. 
  354.  
  355. 4.3 Response to Random Drop 
  356.  
  357.    The end-system's view of Random Drop is the same as its view of loss    caused by overflow at the gateway. This is a drawback of the use of    packet drops as congestion feedback for congestion avoidance: the    decrease policy on congestion feedback cannot be made more drastic    for overflows than for the drops the gateway does for congestion    avoidance.  Slow-start responds rapidly to gateway feedback.  In a    case where the users are cooperating (all Slow-start), a desired    outcome would be that this responsiveness would lead quickly to a    decreased probability of drop.  There would be, as an ideal, a self-    adjusting overall amount of control. 
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365. Performance and Congestion Control Working Group               [Page 19] 
  366.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  367.  
  368.  4.4  Response to Congestion Indication 
  369.  
  370.    Since the Congestion Indication mechanism attempts to keep gateways    uncongested, cooperating end-system congestion control policies need    not reduce demand as much as with other gateway policies.  The    difference between the Slow-start response to packet drops and the    End-System Congestion Indication response to Congestion Experienced    Bits is primarily in the decrease policy.  Slow-start decreases the    window to one packet on a retransmission timeout.  End-System    Congestion Indication decreases the window by a fraction (for    instance, to 7/8 of the original value), when the Congestion    Experienced Bit is set in half of the packets in a sample spanning    two round-trip times (two windows full). 
  371.  
  372. 4.5  Response to Fair Queuing 
  373.  
  374.    A Fair Queueing policy may issue control indications, as in the    simulated Bit-Round Fair Queueing with DEC Bit, or it may depend only    on the passive effects of the queueing.  When the passive control is    the main effect (perhaps because most users are not responsive to    control indications), the behavior of retransmission timers will be    very important.  If retransmitting users send more packets in    response to increases in their delay and drops, Fair Queueing will be    prone to degraded performance, though collapse (zero throughput for    all users) may be prevented for a longer period of time. 
  375.  
  376. 5.  Conclusions 
  377.  
  378.    The impact of users with excessive demand is a driving force as    proposed gateway policies come closer to implementation.  Random Drop    and Congestion Indication can be fair only if the transport entities    sharing the gateway are all cooperative and reduce demand as needed.    Within some portions of the Internet, good behavior of end-systems    eventually may be enforced through administration.  But for various    reasons, we can expect non-cooperating transports to be a persistent    population in the Internet.  Congestion avoidance mechanisms will not    be deployed all at once, even if they are adopted as standards.    Without enforcement, or even with penalties for excessive demand,    some end-systems will never implement congestion avoidance    mechanisms. 
  379.  
  380.    Since it is outside the context of any of the gateway policies, we    will mention here a suggestion for a relatively small-scale response    to users which implement especially aggressive policies. This has    been made experimentally by [Jac89].  It would implement a low    priority queue, to which the majority of traffic is not routed.  The    candidate traffic to be queued there would be identified by a cache    of recent recipients of whatever control indications the gateway 
  381.  
  382.  
  383.  
  384. Performance and Congestion Control Working Group               [Page 20] 
  385.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  386.  
  387.     policy makes.  Remaining in the cache over multiple control intervals    is the criterion for being routed to the low priority queue.  In    approaching or established congestion, the bandwidth given to the    low-service queue is decreased. 
  388.  
  389.    The goal of end-system cooperation itself has been questioned.  As    [She89] points out, it is difficult to define.  A TCP implementation    that retransmits before it determines that has been loss indicated    and in a Go-Back-N manner is clearly non-cooperating.  On the other    hand, a transport entity with selective acknowledgement may demand    more from the gateways than TCP, even while responding to congestion    in a cooperative way. 
  390.  
  391.    Fair Queueing maintains its control of allocations regardless of the    end-system congestion avoidance policies.  [Nag85] and [DKS89] argue    that the extra delays and congestion drops that result from    misbehavior could work to enforce good end-system policies.  Are the    rewards and penalties less sharply defined when one or more    misbehaving systems cause the whole gateway's performance to be less?    While the tax on all users imposed by the "over-users" is much less    than in gateways with other policies, how can it be made sufficiently    low? 
  392.  
  393.    In the sections on Selective Feedback Congestion Indication and Bit-    Round Fair Queueing we have pointed out that more needs to be done on    two particular fronts: 
  394.  
  395.       How can increased computational overhead be avoided? 
  396.  
  397.       The allocation of resources to source-destination pairs is, in       many scenarios, unfair to individual users. Bit-Round Fair       Queueing offers a potential administrative remedy, but even if it       is applied, how should the unequal allocations be propagated       through multiple gateways? 
  398.  
  399.    The first question has been taken up by [McK90]. 
  400.  
  401.    Since Selective Feedback Congestion Indication (or Congestion    Indication used with Fair Queueing) uses a network bit, its use in    the Internet requires protocol support; the transition of some    portions of the Internet to OSI protocols may make such a change    attractive in the future.  The interactions between heterogeneous    congestion control policies in the Internet will need to be explored. 
  402.  
  403.    The goals of Random Drop Congestion Avoidance are presented in this    survey, but without any claim that the problems of this policy can be    solved.  These goals themselves, of uniform, dynamic treatment of    users (streams/flows), of low overhead, and of good scaling 
  404.  
  405.  
  406.  
  407. Performance and Congestion Control Working Group               [Page 21] 
  408.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  409.  
  410.     characteristics in large and loaded networks, are significant. 
  411.  
  412. Appendix:  Congestion and Connection-oriented Subnets 
  413.  
  414.    This section presents a recommendation for gateway implementation in    an areas that unavoidably interacts with gateway congestion control,    the impact of connection-oriented subnets, such as those based on    X.25. 
  415.  
  416.    The need to manage a connection oriented service (X.25) in order to    transport datagram traffic (IP) can cause problems for gateway    congestion control.  Being a pure datagram protocol, IP provides no    information delimiting when a pair of IP entities need to establish a    session between themselves.  The solution involves compromise among    delay, cost, and resources.  Delay is introduced by call    establishment when a new X.25 SVC (Switched Virtual Circuit) needs to    be established, and also by queueing delays for the physical line.    Cost includes any charges by the X.25 network service provider.    Besides the resources most gateways have (CPU, memory, links), a    maximum supported or permitted number of virtual circuits may be in    contest. 
  417.  
  418.    SVCs are established on demand when an IP packet needs to be sent and    there is no SVC established or pending establishment to the    destination IP entity.  Optionally, when cost considerations, and    sufficient numbers of unused virtual circuits allow, redundant SVCs    may be established between the same pair of IP entities.  Redundant    SVCs can have the effect of improving performance when coping with    large end-to-end delay, small maximum packet sizes and small maximum    packet windows.  It is generally preferred though, to negotiate large    packet sizes and packet windows on a single SVC.  Redundant SVCs must    especially be discouraged when virtual circuit resources are small    compared with the number of destination IP entities among the active    users of the gateway. 
  419.  
  420.    SVCs are closed after some period of inactivity indicates that    communication may have been suspended between the IP entities.  This    timeout is significant in the operation of the interface.  Setting    the value too low can result in closing of the SVC even though the    traffic has not stopped.  This results in potentially large delays    for the packets which reopen the SVC and may also incur charges    associated with SVC calls.  Also, clearing of SVCs is, by definition,    nongraceful.  If an SVC is closed before the last packets are    acknowledged, there is no guarantee of delivery.  Packet losses are    introduced by this destructive close independent of gateway traffic    and congestion. 
  421.  
  422.    When a new circuit is needed and all available circuits are currently 
  423.  
  424.  
  425.  
  426. Performance and Congestion Control Working Group               [Page 22] 
  427.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  428.  
  429.     in use, there is a temptation to pick one to close (possibly using    some Least Recently Used criterion).  But if connectivity demands are    larger than available circuit resources, this strategy can lead to a    type of thrashing where circuits are constantly being closed and    reopened.  In the worst case, a circuit is opened, a single packet    sent and the circuit closed (without a guarantee of packet delivery).    To counteract this, each circuit should be allowed to remain open a    minimum amount of time. 
  430.  
  431.    One possible SVC strategy is to dynamically change the time a circuit    will be allowed to remain open based on the number of circuits in    use.  Three administratively controlled variables are used, a minimum    time, a maximum time and an adaptation factor in seconds per    available circuit.  In this scheme, a circuit is closed after it has    been idle for a time period equal to the minimum plus the adaptation    factor times the number of available circuits, limited by the maximum    time.  By administratively adjusting these variables, one has    considerable flexibility in adjusting the SVC utilization to meet the    needs of a specific gateway. 
  432.  
  433. Acknowledgements 
  434.  
  435.    This paper is the outcome of discussions in the Performance and    Congestion Control Working Group between April 1988 and July 1989.    Both PCC WG and plenary IETF members gave us helpful reviews of    earlier drafts.  Several of the ideas described here were contributed    by the members of the PCC WG.  The Appendix was written by Art    Berggreen.  We are particularly thankful also to Van Jacobson, Scott    Shenker, Bruce Schofield, Paul McKenney, Matt Mathis, Geof Stone, and    Lixia Zhang for participation and reviews. 
  436.  
  437. References 
  438.  
  439.    [DKS89] Demers, A., Keshav, S., and S. Shenker, "Analysis and    Simulation of a Fair Queueing Algorithm", Proceedings of SIGCOMM '89. 
  440.  
  441.    [Fin89] Finn, G., "A Connectionless Congestion Control Algorithm",    Computer Communications Review, Vol. 19, No. 5, October 1989. 
  442.  
  443.    [Gar87] Gardner, M., "BBN Report on the ARPANET", Proceedings of the    McLean IETF, SRI-NIC IETF-87/3P, July 1987. 
  444.  
  445.    [GREQ87] Braden R., and J. Postel, "Requirements for Internet    Gateways", RFC 1009, USC/Information Sciences Institute, June 1987. 
  446.  
  447.    [HREQ89] Braden R., Editor, "Requirements for Internet Hosts --    Communications Layers", RFC 1122, Internet Engineering Task Force,    October 1989. 
  448.  
  449.  
  450.  
  451. Performance and Congestion Control Working Group               [Page 23] 
  452.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  453.  
  454.     [Has90] Hashem, E., "Random Drop Congestion Control", M.S. Thesis,    Massachusetts Institute of Technology, Department of Computer    Science, 1990. 
  455.  
  456.    [Jac88] Jacobson, V., "Congestion Avoidance and Control", Proceedings    of SIGCOMM '88. 
  457.  
  458.    [Jac89] Jacobson, V., "Presentations to the IETF Performance and    Congestion Control Working Group". 
  459.  
  460.    [Jaf81] Jaffe, J., "Bottleneck Flow Control", IEEE Transactions on    Communications, COM-29(7), July, 1981. 
  461.  
  462.    [Jai86] Jain, R., "A Timeout-based Congestion Control Scheme for    Window Flow-controlled Networks", IEEE Journal on Selected Areas in    Communications, SAC-4(7), October 1986. 
  463.  
  464.    [JRC87] Jain, R., Ramakrishnan, K., and D. Chiu, "Congestion    Avoidance in Computer Networks With a Connectionless Network Layer",    Technical Report DEC-TR-506, Digital Equipment Corporation. 
  465.  
  466.    [Kle79] Kleinrock, L., "Power and Deterministic Rules of Thumb for    Probabilistic Problems in Computer Communications",  Proceedings of    the ICC '79. 
  467.  
  468.    [KP87] Karn, P., and C. Partridge, "Improving Round Trip Estimates in    Reliable Transport Protocols", Proceedings of SIGCOMM '87. 
  469.  
  470.    [Man90] Mankin, A., "Random Drop Congestion Control", Proceedings of    SIGCOMM '90. 
  471.  
  472.    [McK90] McKenney, P., "Stochastic Fairness Queueing", Proceedings of    INFOCOM '90. 
  473.  
  474.    [Nag84] Nagle, J., "Congestion Control in IP/TCP Internetworks", RFC    896, FACC Palo Alto, 6 January 1984. 
  475.  
  476.    [Nag85] Nagle, J., "On Packet Switches With Infinite Storage", RFC    970, FACC Palo Alto, December 1985. 
  477.  
  478.    [NIST88] NIST, "Stable Implementation Agreements for OSI Protocols,    Version 2, Edition 1", National Institute of Standards and Technology    Special Publication 500-162, December 1988. 
  479.  
  480.    [Pos81a] Postel, J., "Internet Control Message Protocol - DARPA    Internet Program Protocol Specification", RFC-792, USC/Information    Sciences Institute, September 1981. 
  481.  
  482.  
  483.  
  484.  Performance and Congestion Control Working Group               [Page 24] 
  485.  RFC 1254           Gateway Congestion Control Survey         August 1991 
  486.  
  487.     [Pos81b] Postel, J., "Transmission Control Protocol - DARPA Internet    Program Protocol Specification", RFC-793, DARPA, September 1981. 
  488.  
  489.    [RJC87] Ramakrishnan, K., Jain, R., and D. Chiu, "A Selective Binary    Feedback Scheme for General Topologies", Technical Report DEC-TR-510,    Digital Equipment Corporation. 
  490.  
  491.    [She89] Shenker, S., "Correspondence with the IETF Performance and    Congestion Control Working Group". 
  492.  
  493.    [Sp89] Spector, A., and M. Kazar, "Uniting File Systems", Unix    Review, Vol.  7, No. 3, March 1989. 
  494.  
  495.    [Zha89] Zhang, L., "A New Architecture for Packet Switching Network    Protocols", Ph.D Thesis, Massachusetts Institute of Technology,    Department of Computer Science, 1989. 
  496.  
  497. Security Considerations 
  498.  
  499.    Security issues are not discussed in this memo. 
  500.  
  501. Authors' Addresses 
  502.  
  503.    Allison Mankin    The MITRE Corporation    M/S W425    7525 Colshire Drive    McLean, VA  22102 
  504.  
  505.    Email: mankin@gateway.mitre.org 
  506.  
  507.     K.K. Ramakrishnan    Digital Equipment Corporation    M/S LKG1-2/A19    550 King Street    Littleton, MA  01754 
  508.  
  509.    Email: rama@kalvi.enet.dec.com 
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  Performance and Congestion Control Working Group               [Page 25] 
  522.  
  523.