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

📄 rfc1016.txt

📁 著名的RFC文档,其中有一些文档是已经翻译成中文的的.
💻 TXT
📖 第 1 页 / 共 4 页
字号:
   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 itPrue & 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 1987Appendix 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 1987References   [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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -