rfc1016.txt

来自「RFC 的详细文档!」· 文本 代码 · 共 1,011 行 · 第 1/4 页

TXT
1,011
字号
   decrease "D" by one "J" unit if "S" time, or more, has elapsed.  The
   other timer is not so easily eliminated.  If the IP implementation is
   periodically awakened to check for work to do, it could check the
   time stamps of the head of the queues to see if any datagrams have
   waited long enough.  This would mean we would necessarily wait too
   long before sending, but it may not be too large of a variance from
   our desired rates.  The additional delay would help congestion and
   reduce our chances of SQ.  Another option is setting a real timer
   which is say 25-50% too large and hope that our periodic work in IP
   will allow us to notice a datagram is delayed enough, and send it.
   Upon sending the datagram we would cancel the timer, avoiding the
   timer interrupt and environment swap.  In other implementations the
   communications interface or the link level protocol may be able to
   provide the timing needed without interrupts to the main processor.

   Background tasks like some file transfers could query IP for the
   latest delay characteristics for a given destination to determine if
   it is appropriate to consume network resources now or if it would be
   better to wait until later.

   We should consider what would happen if IP, using the SQuID
   algorithm, and TCP both introduced delay between the datagrams.  If
   TCPs delay was greater than IP's, then when IP got the datagrams it



Prue & Postel                                                  [Page 14]

RFC 1016        Source Quench Introduced Delay -- SQuID        July 1987


   would forward them immediately as described in the algorithm above.
   This is because when the IP send queue is empty and it has been at
   least as long as IP wants the higher level protocol, TCP, gets one
   free (no delay) send.  Note also that IP will be decreasing the
   amount of delay it wants introduced because of the successful
   transmissions without SQs.  This would affect other protocols who
   might also send to the same destination.  If TCP sends too quickly
   then IP will protect the network from its indiscretion as described
   in the basic algorithm however TCPs round trip time estimates will be
   much closer to reality.  A lost datagram will thus be detected more
   quickly.  If TCP also uses windowing to limit its sending rate, it
   might, because of its success with a smaller window, increase the
   window size increasing TCPs efficiency.

   As this algorithm is implemented everywhere, the SQ Keep (SQK) and SQ
   Low Water (SQLW) queue level percentages should be dropped to reduce
   queue sizes and thus the through net delay.  The percentage we lower
   SQK and SQLW to should be adjusted based upon the percentage of time
   the queue is empty.  The more the queue is empty the more likely it
   is that the node is discouraging data flow too much.  The more time
   the queue is not empty but not too full, the more likely it is the
   node is not excessively discouraging data flow.  How uniform the
   queue size is, is a measure of how well the network citizens are
   behaved.

   As the congestion is pushed to the sources, gateways which are
   bottlenecks can more easily detect someone not playing by the rules
   (sending datagrams in bursts) and deal with the offender.























Prue & Postel                                                  [Page 15]

RFC 1016        Source Quench Introduced Delay -- SQuID        July 1987


Appendix A -- Determination of the Value for the Parameter "I"

   To get to the correct value for the delay needed quickly, when an
   event occurred and the currently used delay was minimal, the
   transmission time for an average sized datagram across the slowest
   communications link was used for a first value.  How a real IP node
   is to guess this value is discussed below.  In our example the
   transition between node 2 and node 3 is the bottleneck. Using the 56
   kb/s line, a 512 byte datagram would take 73 msec with no queuing or
   processing time is considered.  This value is defined to be the
   minimum inter-datagram arrival time (MIAT).  Assuming a perfect
   network, ignoring factors other than transmission speed, this is the
   minimum time one could expect between receipt of datagrams at the
   destination, because of the slowed data rate through the bottleneck.
   This won't hold true if the datagrams do not follow the same path.

   The MIAT, minimum inter-datagram arrival time, may be guessed at by
   comparing the arrival timestamps of consecutive datagrams from a
   source of data.  Each value to be considered needs to be adjusted up
   or down based upon the size between the second datagram received and
   the typical datagram size.  More simply stated, a datagram which is
   half the size of the average datagram can be transmitted across a
   line in half the time.  Therefore, double its IAT before considering
   it for an MIAT.  If the timestamp of a datagrams is taken based upon
   an event caused by the start of the datagram arriving, not the
   completion of the datagram arriving, then the first datagram's size
   is the limiting length and should be used to adjust its IAT.  In
   order to keep the algorithm simple, arrival times for short datagram
   could be ignored as could IATs which were orders of magnitude too
   large (see below).

   Once a minimal value is found based upon looking for small values
   over a minute or more, the value might be time averaged with a value
   kept like TCP's SRTT in order to reduce the effects of a false MIAT.
   We could assume the limiting facility would be a 9.6 kb/s line, a
   56-64 kb/s line, or a 1.5 Mb/s line.  These facilities would provide
   a MIAT of 427 msec, 73-64 msec, or 3 msec respectively, for a
   datagram 512 bytes long.  These are almost orders of magnitude in
   differences.  If the MIAT a node measures is not in this range but
   close, the value it is closest to may be used for its MIAT from that
   source.

   One of the good things about this measurement is that it is an
   entirely passive measurement.  No additional traffic is needed to
   measure it.  If a source is not sending data continuously then the
   longer measured values won't be validated as minimal values.  The
   assumption is that at least sometimes the source will send multiple
   datagrams at a time.



Prue & Postel                                                  [Page 16]

RFC 1016        Source Quench Introduced Delay -- SQuID        July 1987


   The MIAT measurement is totally unaffected by satellite delay
   characteristics of any intervening facilities.  The chance of getting
   a valid minimal reading is affected by the number of nodes traversed,
   but the value measured if it is valid will not be affected by the
   number of nodes traversed.  Stated another way, when a pair of
   datagrams traverse from one node to the next the datagrams are
   susceptible to being separated by a datagram from another source.
   Both of these factors affect SRTT. The value obtained requires no
   topological knowledge of the route.

   A potential problem with the measurement is, it will not be the
   proper value for some forms of alternate routes.  If a T1 link is the
   bottleneck route some times and other times it is a 56 kb/s link our
   first guess for inter-datagram delay would be too small for the 56
   kb/s line route.  Another problem is that if one datagram goes via
   one route and the next goes via another, their inter-datagram arrival
   difference could lead to a small false measurement.  If intervening
   networks fragment datagrams then the measured IAT between segments
   could be misleading.  A solution to this problem is to ignore
   fragmented datagram IATs.

   This number represents the minimum inter-datagram delay the sending
   IP should use to send to us, the measuring site, for the given
   datagram size.  If we assume that the return path will be through the
   same facilities or the same type, then as described above this value
   can be the first guess for inter-datagram introduced delay, "D" (in
   the algorithm).  It represents the "I" parameter.

   These MIATs may be cached on a host, subnet, or network basis.  The
   last "n" hosts MIATs could be kept.  For infrequent destinations an
   entry per destination network would be applicable to many
   destinations.  If the local net is in fact a subnet, then the other
   local subnet MIATs could be kept.

   If a good algorithm is found for MIAT, comparing it to the average
   IAT (during data transfer) would give a good measure of the amount of
   network traffic load.  Since IP has no idea when the source of data
   is sending as fast as possible, to get a valid average, upper layer
   protocols would have to figure this out for themselves.  IP could
   however provide an interface to get the current MIAT for a given
   destination.










Prue & Postel                                                  [Page 17]

RFC 1016        Source Quench Introduced Delay -- SQuID        July 1987


References

   [1]  Postel, Jon, "Internet Protocol - DARPA Internet Program
   Protocol Specification", RFC 791, ISI, September 1981.

   [2]  Postel, Jon, "Internet Control Message Protocol - DARPA Internet
   Program Protocol Specification", RFC 792, ISI, September 1981.

   [3]  Karels, M., "Re: Source Quench", electronic mail message to J.
   Postel and INENG-INTEREST, Tue, 24 Feb 87.

   [4] Nagle, John B., "On Packet Switches With Infinite Storage", RFC
   970, FACC Palo Alto, December 1985.

   [5] Jacobson, Van, "Re: interpacket arrival variance and mean",
   electronic mail message to TCP-IP,  Mon, 15 Jun 87 06:08:01 PDT

   [6] Jacobson, Van, "Re: Appropriate measures of gateway performance"
   electronic mail message to J. Noel Chiappa  and INENG-INTEREST, Sun,
   22 Mar 87 15:04:44 PST.

   [7] Nagle, John B., "Source quench, and congestion generally",
   electronic mail message to B. Braden and INENG-INTEREST, Thu, 5 Mar
   87 11:08:49 PST.

   [8] Nagle, John B., "Congestion Control in IP/TCP Internetworks", RFC
   896, FACC Palo Alto, 6 January 1984.
























Prue & Postel                                                  [Page 18]


⌨️ 快捷键说明

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