summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc2354.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc2354.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc2354.txt')
-rw-r--r--doc/rfc/rfc2354.txt674
1 files changed, 674 insertions, 0 deletions
diff --git a/doc/rfc/rfc2354.txt b/doc/rfc/rfc2354.txt
new file mode 100644
index 0000000..4aaa7c7
--- /dev/null
+++ b/doc/rfc/rfc2354.txt
@@ -0,0 +1,674 @@
+
+
+
+
+
+
+Network Working Group C. Perkins
+Request for Comments: 2354 O. Hodson
+Category: Informational University College London
+ June 1998
+
+
+ Options for Repair of Streaming Media
+
+Status of this Memo
+
+ This memo provides information for the Internet community. This memo
+ does not specify an Internet standard of any kind. Distribution of
+ this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (1998). All Rights Reserved.
+
+Abstract
+
+ This document summarizes a range of possible techniques for the
+ repair of continuous media streams subject to packet loss. The
+ techniques discussed include redundant transmission, retransmission,
+ interleaving and forward error correction. The range of
+ applicability of these techniques is noted, together with the
+ protocol requirements and dependencies.
+
+1 Introduction
+
+ A number of applications have emerged which use RTP/UDP transport to
+ deliver continuous media streams. Due to the unreliable nature of
+ UDP packet delivery, the quality of the received stream will be
+ adversely affected by packet loss. A number of techniques exist by
+ which the effects of packet loss may be repaired. These techniques
+ have a wide range of applicability and require varying degrees of
+ protocol support. In this document, a number of such techniques are
+ discussed, and recommendations for their applicability made.
+
+ It should be noted that this document is introductory in nature, and
+ does not attempt to be comprehensive. In particular, we restrict our
+ discussion to repair techniques which require the involvement of the
+ sender of a media stream, and do not discuss possibilities for
+ receiver based repair.
+
+ For a more detailed survey, the reader is referred to [5].
+
+
+
+
+
+
+Perkins & Hodson Informational [Page 1]
+
+RFC 2354 Options for Repair of Streaming Media June 1998
+
+
+2 Terminology and Protocol Framework
+
+ A unit is defined to be a timed interval of media data, typically
+ derived from the workings of the media coder. A packet comprises one
+ or more units, encapsulated for transmission over the network. For
+ example, many audio coders operate on 20ms units, which are typically
+ combined to produce 40ms or 80ms packets for transmission. The
+ framework of RTP [18] is assumed. This implies that packets have a
+ sequence number and timestamp. The sequence number denotes the order
+ in which packets are transmitted, and is used to detect losses. The
+ timestamp is used to determine the playout order of units. Most loss
+ recovery schemes rely on units being sent out of order, so an
+ application must use the RTP timestamp to schedule playout.
+
+ The use of RTP allows for several different media coders, with a
+ payload type field being used to distinguish between these at the
+ receiver. Some loss repair schemes send multiple copies of units, at
+ different times and possibly with different encodings, to increase
+ the probability that a receiver has something to decode. A receiver
+ is assumed to have a `quality' ranking of the differing encodings,
+ and so is capable of choosing the `best' unit for playout, given
+ multiple options.
+
+ A session is defined as interactive if the end-to-end delay is less
+ then 250ms, including media coding and decoding, network transit and
+ host buffering.
+
+3 Network Loss Characteristics
+
+ If it is desired to repair a media stream subject to packet loss, it
+ is useful to have some knowledge of the loss characteristics which
+ are likely to be encountered. A number of studies have been
+ conducted on the loss characteristics of the Mbone [2, 8, 21] and
+ although the results vary somewhat, the broad conclusion is clear:
+ in a large conference it is inevitable that some receivers will
+ experience packet loss. Packet traces taken by Handley [8] show a
+ session in which most receivers experience loss in the range 2-5%,
+ with a somewhat smaller number seeing significantly higher loss
+ rates. Other studies have presented broadly similar results.
+
+ It has also been shown that the vast majority of losses are of single
+ packets. Burst losses of two or more packets are around an order of
+ magnitude less frequent than single packet loss, although they do
+ occur more often than would be expected from a purely random process.
+ Longer burst losses (of the order of tens of packets) occur
+ infrequently. These results are consistent with a network where
+ small amounts of transient congestion cause the majority of packet
+ loss. In a few cases, a network link is found to be severely
+
+
+
+Perkins & Hodson Informational [Page 2]
+
+RFC 2354 Options for Repair of Streaming Media June 1998
+
+
+ overloaded, and large amount of loss results.
+
+ The primary focus of a repair scheme must, therefore, be to correct
+ single packet loss, since this is by far the most frequent
+ occurrence. It is desirable that losses of a relatively small number
+ of consecutive packets may also be repaired, since such losses
+ represent a small but noticeable fraction of observed losses. The
+ correction of large bursts of loss is of considerably less
+ importance.
+
+4 Loss Mitigation Schemes
+
+ In the following sections, four loss mitigation schemes are
+ discussed. These schemes have been discussed in the literature a
+ number of times, and found to be of use in a number of scenarios.
+ Each technique is briefly described, and its advantages and
+ disadvantages noted.
+
+4.1 Retransmission
+
+ Retransmission of lost packets is an obvious means by which loss may
+ be repaired. It is clearly of value in non-interactive applications,
+ with relaxed delay bounds, but the delay imposed means that it does
+ not typically perform well for interactive use.
+
+ In addition to the possibly high latency, there is a potentially
+ large bandwidth overhead to the use of retransmission. Not only are
+ units of data sent multiple times, but additional control traffic
+ must flow to request the retransmission. It has been shown that, in
+ a large Mbone session, most packets are lost by at least one receiver
+ [8]. In this case the overhead of requesting retransmission for most
+ packets may be such that the use of forward error correction is more
+ acceptable. This leads to a natural synergy between the two
+ mechanisms, with a forward error correction scheme being used to
+ repair all single packet losses, and those receivers experiencing
+ burst losses, and willing to accept the additional latency, using
+ retransmission based repair as an additional recovery mechanism.
+ Similar mechanisms have been used in a number of reliable multicast
+ schemes, and have received some discussion in the literature [9, 13].
+
+ In order to reduce the overhead of retransmission, the retransmitted
+ units may be piggy-backed onto the ongoing transmission, using a
+ payload format such as that described in [15]. This also allows for
+ the retransmission to be recoded in a different format, to further
+ reduce the bandwidth overhead. As an alternative, FEC information
+ may be sent in response to retransmission requests [13], allowing a
+ single retransmission to potentially repair several losses. The
+ choice of a retransmission request algorithm which is both timely and
+
+
+
+Perkins & Hodson Informational [Page 3]
+
+RFC 2354 Options for Repair of Streaming Media June 1998
+
+
+ network friendly is an area of current study. An obvious starting
+ point is the SRM protocol [7], and experiments have been conducted
+ using this, and with a low-delay variant, STORM [20]. This work
+ shows the trade-off between latency and quality for retransmission
+ based repair schemes, and illustrates that retransmission is an
+ effective approach to repair for applications which can tolerate the
+ latency.
+
+ There is no standard protocol framework for requesting retransmission
+ of streaming media. An experimental RTP profile extension for SRM-
+ style retransmission requests has described in [14].
+
+4.2 Forward Error Correction
+
+ Forward error correction (FEC) is the means by which repair data is
+ added to a media stream, such that packet loss can be repaired by the
+ receiver of that stream with no further reference to the sender.
+ There are two classes of repair data which may be added to a stream:
+ those which are independent of the contents of the stream, and those
+ which use knowledge of the stream to improve the repair process.
+
+4.2.1 Media-Independent FEC
+
+ A number of media-independent FEC schemes have been proposed for use
+ with streamed media. These techniques add redundant data, which is
+ transmitted in separate packets, to a media stream. Traditionally,
+ FEC techniques are described as loss detecting and/or loss
+ correcting. In the case of streamed media, loss detection is
+ provided by the sequence numbers in RTP packets.
+
+ The redundant FEC data is typically calculated using the mathematics
+ of finite fields [1]. The simplest of finite field is GF(2) where
+ addition is just the eXclusive-OR operation. Basic FEC schemes
+ transmit k data packets with n-k parity packets allowing the
+ reconstruction of the original data from any k of the n transmitted
+ packets. Budge et al [4] proposed applying the XOR operation across
+ different combinations of the media data with the redundant data
+ transmitted separately as parity packets. These vary the pattern of
+ packets over which the parity is calculated, and hence have different
+ bandwidth, latency and loss repair characteristics.
+
+ Parity-based FEC based techniques have a significant advantage in
+ that they are media independent, and provide exact repair for lost
+ packets. In addition, the processing requirements are relatively
+ light, especially when compared with some media-specific FEC
+ (redundancy) schemes which use very low bandwidth, but high
+ complexity encodings. The disadvantage of parity based FEC is that
+ the codings have higher latency in comparison with the media-specific
+
+
+
+Perkins & Hodson Informational [Page 4]
+
+RFC 2354 Options for Repair of Streaming Media June 1998
+
+
+ schemes discussed in following section.
+
+ A number of FEC schemes exist which are based on higher-order finite
+ fields, for example Reed-Solomon (RS) codes, which are more
+ sophisticated and computationally demanding. These are usually
+ structured so that they have good burst loss protection, although
+ this typically comes at the expense of increased latency. Dependent
+ on the observed loss patterns, such codes may give improved
+ performance, compared to parity-based FEC.
+
+ An RTP payload format for generic FEC, suitable for both parity based
+ and Reed-Solomon encoded FEC is defined in [17].
+
+4.2.2 Media-Specific FEC
+
+ The basis of media-specific FEC is to employ knowledge of a media
+ compression scheme to achieve more efficient repair of a stream than
+ can otherwise be achieved. To repair a stream subject to packet
+ loss, it is necessary to add redundancy to that stream: some
+ information is added which is not required in the absence of packet
+ loss, but which can be used to recover from that loss.
+
+ The nature of a media stream affects the means by which the
+ redundancy is added. If units of media data are packets, or if
+ multiple units are included in a packet, it is logical to use the
+ unit as the level of redundancy, and to send duplicate units. By
+ recoding the redundant copy of a unit, significant bandwidth savings
+ may be made, at the expense of additional computational complexity
+ and approximate repair. This approach has been advocated for use
+ with streaming audio [2, 10] and has been shown to perform well. An
+ RTP payload format for this form of redundancy has been defined [15].
+
+ If media units span multiple packets, for instance video, it is
+ sensible to include redundancy directly within the output of a codec.
+ For example the proposed RTP payload for H.263+ [3] includes multiple
+ copies of key portions of the stream, separated to avoid the problems
+ of packet loss. The advantages of this second approach is
+ efficiency: the codec designer knows exactly which portions of the
+ stream are most important to protect, and low complexity since each
+ unit is coded once only.
+
+ An alternative approach is to apply media-independent FEC techniques
+ to the most significant bits of a codecs output, rather than applying
+ it over the entire packet. Several codec descriptions include bit
+ sensitivities that make this feasible. This approach has low
+ computational cost and can be tailored to represent an arbitrary
+ fraction of the transmitted data.
+
+
+
+
+Perkins & Hodson Informational [Page 5]
+
+RFC 2354 Options for Repair of Streaming Media June 1998
+
+
+ The use of media-specific FEC has the advantage of low-latency, with
+ only a single-packet delay being added. This makes it suitable for
+ interactive applications, where large end-to-end delays cannot be
+ tolerated. In a uni-directional non-interactive environment it is
+ possible to delay sending the redundant data, achieving improved
+ performance in the presence of burst losses [11], at the expense of
+ additional latency.
+
+4.3 Interleaving
+
+ When the unit size is smaller than the packet size, and end-to-end
+ delay is unimportant, interleaving [16] is a useful technique for
+ reducing the effects of loss. Units are resequenced before
+ transmission, so that originally adjacent units are separated by a
+ guaranteed distance in the transmitted stream, and returned to their
+ original order at the receiver. Interleaving disperses the effect of
+ packet losses. If, for example, units are 5ms in length and packets
+ 20ms (ie: 4 units per packet), then the first packet could contain
+ units 1, 5, 9, 13; the second packet would contain units 2, 6, 10,
+ 14; and so on. It can be seen that the loss of a single packet from
+ an interleaved stream results in multiple small gaps in the
+ reconstructed stream, as opposed to the single large gap which would
+ occur in a non-interleaved stream. In many cases it is easier to
+ reconstruct a stream with such loss patterns, although this is
+ clearly media and codec dependent. Note that the size of the gaps is
+ dependent on the degree of interleaving used, and can be made
+ arbitrarily small at the expense of additional latency.
+
+ The obvious disadvantage of interleaving is that it increases
+ latency. This limits the use of this technique for interactive
+ applications, although it performs well for non-interactive use. The
+ major advantage of interleaving is that it does not increase the
+ bandwidth requirements of a stream.
+
+ A potential RTP payload format for interleaved data is a simple
+ extension of the redundant audio payload [15]. That payload requires
+ that the redundant copy of a unit is sent after the primary. If this
+ restriction is removed, it is possible to transmit an arbitrary
+ interleaving of units with this payload format.
+
+5 Recommendations
+
+ If the desired scenario is a non-interactive uni-directional
+ transmission, in the style of a radio or television broadcast,
+ latency is of considerably less importance than reception quality.
+ In this case, the use of interleaving, retransmission based repair or
+ FEC is appropriate. If approximate repair is acceptable,
+ interleaving is clearly to be preferred, since it does not increase
+
+
+
+Perkins & Hodson Informational [Page 6]
+
+RFC 2354 Options for Repair of Streaming Media June 1998
+
+
+ the bandwidth of a stream. Media independent FEC is typically the
+ next best option, since a single FEC packet has the potential to
+ repair multiple lost packets, providing efficient transmission.
+
+ In an interactive session, the delay imposed by the use of
+ interleaving and retransmission is not acceptable, and a low-latency
+ FEC scheme is the only means of repair suitable. The choice between
+ media independent and media specific forward error correction is less
+ clear-cut: media-specific FEC can be made more efficient, but
+ requires modification to the output of the codec. When defining the
+ packet format for a new codec, this is clearly an appropriate
+ technique, and should be encouraged.
+
+ If an existing codec is to be used, a media independent forward error
+ correction scheme is usually easier to implement, and can perform
+ well. A media stream protected in this way may be augmented with
+ retransmission based repair with minimal overhead, providing improved
+ quality for those receivers willing to tolerate additional delay, and
+ allowing interactivity for those receivers which desire it. Whilst
+ the addition of FEC data to an media stream is an effective means by
+ which that stream may be protected against packet loss, application
+ designers should be aware that the addition of large amounts of
+ repair data when loss is detected will increase network congestion,
+ and hence packet loss, leading to a worsening of the problem which
+ the use of error correction coding was intended to solve.
+
+ At the time of writing, there is no standard solution to the problem
+ of congestion control for streamed media which can be used to solve
+ this problem. There have, however, been a number of contributions
+ which show the likely form the solution will take [12, 19]. This
+ work typically used some form of layered encoding of data over
+ multiple channels, with receivers joining and leaving layers in
+ response to packet-loss (which indicates congestion). The aim of
+ such schemes is to emulate the congestion control behavior of a TCP
+ stream, and hence compete fairly with non-real time traffic. This is
+ necessary for stable network behavior in the presence of much
+ streamed media.
+
+ Since streaming media applications are in use now, without congestion
+ control, it is important to give some advice to authors of those
+ tools as to the behavior which is acceptable, until congestion
+ control mechanisms can be deployed. The remainder of this section
+ uses the throughput of a TCP connection over a link with a given loss
+ rate as an example to indicate behavior which may be classified as
+ reasonable.
+
+ As a number of authors have noted (eg: [6]), the loss rate and
+ throughput of a TCP connection are approximately related as follows:
+
+
+
+Perkins & Hodson Informational [Page 7]
+
+RFC 2354 Options for Repair of Streaming Media June 1998
+
+
+ T = (s * c) / (RTT * sqrt(p))
+
+ where T is the observed throughput in octets per second, s is the
+ packet size in octets, RTT is the round-trip time for the session in
+ seconds, p is the packet loss rate and c is a constant in the range
+ 0.9...1.5 (a value of 1.22 has been suggested [6]). Using this
+ relation, one may determine the packet loss rate which would result
+ in a given throughput for a particular session, if a TCP connection
+ was used.
+
+ Whilst this relation between packet loss rate and throughput is
+ specific to the TCP congestion control algorithm, it also provides an
+ estimate of the acceptable loss rate for a streaming media
+ application using the same network path, which wishes to coexist
+ fairly with TCP traffic. Clearly this is not sufficient for fair
+ sharing of a link with TCP traffic, since it does not capture the
+ dynamic behavior of the connection, merely the average behavior, but
+ it does provide one definition of "reasonable" behavior in the
+ absence of real congestion control.
+
+ For example, an RTP audio session with DVI encoding and 40ms data
+ packets will have 40 bytes RTP/UDP/IP header, 4 bytes codec state and
+ 160 bytes of media data, giving a packet size, s, of 204 bytes. It
+ will send 25 packets per second, giving T = 4800. It is possible to
+ estimate the round-trip time from RTCP reception report statistics
+ (say 200 milliseconds for the purpose of example). Substituting
+ these values into the above equation, we estimate a "reasonable"
+ packet loss rate, p, of 6.7%. This would represent an upper bound on
+ the packet loss rate which this application should be designed to
+ tolerate.
+
+ It should be noted that a round trip time estimate based on RTCP
+ reception report statistics is, at best, approximate; and that a
+ round trip time for a multicast group can only be an `average'
+ measure. This implies that the TCP equivalent throughput/loss rate
+ determined by this relation will be an approximation of the upper
+ bound to the rate a TCP connection would actually achieve.
+
+6 Security Considerations
+
+ Some of the repair techniques discussed in this document result in
+ the transmission of additional traffic to correct for the effects of
+ packet loss. Application designers should be aware that the
+ transmission of large amounts of repair traffic will increase network
+ congestion, and hence packet loss, leading to a worsening of the
+ problem which the use of error correction was intended to solve. At
+ its worst, this can lead to excessive network congestion and may
+ constitute a denial of service attack. Section 5 discusses this in
+
+
+
+Perkins & Hodson Informational [Page 8]
+
+RFC 2354 Options for Repair of Streaming Media June 1998
+
+
+ more detail, and provides guidelines for prevention of this problem.
+
+7 Summary
+
+ Streaming media applications using the Internet will be subject to
+ packet loss due to the unreliable nature of UDP packet delivery.
+ This document has summarized the typical loss patterns seen on the
+ public Mbone at the time of writing, and a range of techniques for
+ recovery from such losses. We have further discussed the need for
+ congestion control, and provided some guidelines as to reasonable
+ behavior for streaming applications in the interim until congestion
+ control can be deployed.
+
+8 Acknowledgments
+
+ The authors wish to thank Phil Karn and Lorenzo Vicisano for their
+ helpful comments.
+
+9 Authors' Addresses
+
+ Colin Perkins
+ Department of Computer Science
+ University College London
+ Gower Street
+ London WC1E 6BT
+ United Kingdom
+
+ EMail: c.perkins@cs.ucl.ac.uk
+
+
+ Orion Hodson
+ Department of Computer Science
+ University College London
+ Gower Street
+ London WC1E 6BT
+ United Kingdom
+
+ EMail: o.hodson@cs.ucl.ac.uk
+
+References
+
+ [1] R.E. Blahut. Theory and Practice ofError Control Codes.
+ Addison Wesley, 1983.
+
+ [2] J.-C. Bolot and A. Vega-Garcia. The case for FEC based
+ error control for packet audio in the Internet. To appear
+ in ACM Multimedia Systems.
+
+
+
+
+Perkins & Hodson Informational [Page 9]
+
+RFC 2354 Options for Repair of Streaming Media June 1998
+
+
+ [3] C. Bormann, L. Cline, G. Deisher, T. Gardos, C. Maciocco,
+ D. Newell, J. Ott, S. Wenger, and C. Zhu. RTP payload
+ format for the 1998 version of ITU-T reccomendation H.263
+ video (H.263+). Work in Progress.
+
+ [4] D. Budge, R. McKenzie, W. Mills, W. Diss, and P. Long.
+ Media-independent error correction using RTP, Work in Progress.
+
+ [5] G. Carle and E. W. Biersack. Survey of error recovery
+ techniques for IP-based audio-visual multicast applications.
+ IEEE Network, 11(6):24--36, November/December 1997.
+
+ [6] S. Floyd and K. Fall. Promoting the use of end-to-end
+ congestion control in the internet. Submitted to IEEE/ACM
+ Transactions on Networking, February 1998.
+
+ [7] S. Floyd, V. Jacobson, S. McCanne, C.-G. Liu, and L. Zhang.
+ A reliable multicast framework for light-weight sessions and
+ applications level framing. IEEE/ACM Transactions on Networking,
+ 1995.
+
+ [8] M. Handley. An examination of Mbone performance. USC/ISI
+ Research Report: ISI/RR-97-450, April 1997.
+
+ [9] M. Handley and J. Crowcroft. Network text editor (NTE): A
+ scalable shared text editor for the Mbone. In Proceedings
+ ACM SIGCOMM'97, Cannes, France, September 1997.
+
+ [10] V. Hardman, M. A. Sasse, M. Handley, and A. Watson.
+ Reliable audio for use over the Internet. In Proceedings
+ of INET'95, 1995.
+
+ [11] I. Kouvelas, O. Hodson, V. Hardman, and J. Crowcroft.
+ Redundancy control in real-time Internet audio conferencing.
+ In Proceedings of AVSPN'97, Aberdeen, Scotland, September 1997.
+
+ [12] S. McCanne, V. Jacobson, and M. Vetterli. Receiver-driven
+ layered multicast. In Proceedings ACM SIGCOMM'96, Stanford,
+ CA., August 1996.
+
+ [13] J. Nonnenmacher, E. Biersack, and D. Towsley. Parity-based
+ loss recovery for reliable multicast transmission. In
+ Proceedings ACM SIGCOMM'97, Cannes, France, September 1997.
+
+ [14] P. Parnes. RTP extension for scalable reliable multicast,
+ Work in Progress.
+
+
+
+
+
+Perkins & Hodson Informational [Page 10]
+
+RFC 2354 Options for Repair of Streaming Media June 1998
+
+
+ [15] Perkins, C., Kouvelas, I., Hodson, O., Hardman, V., Handley, M.,
+ Bolot, J-C., Vega-Garcia, A., and S. Fosse-Parisis, "RTP Payload
+ for Redundant Audio Data", RFC 2198, September 1997.
+
+ [16] J.L. Ramsey. Realization of optimum interleavers. IEEE Transactions
+ on Information Theory, IT-16:338--345, May 1970.
+
+ [17] J. Rosenberg and H. Schulzrinne. An A/V profile extension for
+ generic forward error correction in RTP. Work in Progress.
+
+ [18] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson,
+ "RTP: A transport protocol for real-time applications",
+ RFC 1889, January 1996.
+
+ [19] L. Vicisano, L. Rizzo, and Crowcroft J. TCP-like congestion
+ control for layered multicast data transfer. In Proceedings
+ IEEE INFOCOM'98, 1998.
+
+ [20] R. X. Xu, A. C. Myers, H. Zhang, and R. Yavatkar.
+ Resilient multicast support for continuous media applications.
+ In Proceedingsof the 7th International Workshop on Network and
+ Operating Systems Support for Digital Audio and Video
+ (NOSSDAV'97), Washington University in St. Louis, Missouri,
+ May 1997.
+
+ [21] M. Yajnik, J. Kurose, and D. Towsley. Packet loss correlation
+ in the Mbone multicast network. In Proceedings IEEE Global
+ Internet Conference, November 1996.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Perkins & Hodson Informational [Page 11]
+
+RFC 2354 Options for Repair of Streaming Media June 1998
+
+
+Full Copyright Statement
+
+ Copyright (C) The Internet Society (1998). All Rights Reserved.
+
+ This document and translations of it may be copied and furnished to
+ others, and derivative works that comment on or otherwise explain it
+ or assist in its implementation may be prepared, copied, published
+ and distributed, in whole or in part, without restriction of any
+ kind, provided that the above copyright notice and this paragraph are
+ included on all such copies and derivative works. However, this
+ document itself may not be modified in any way, such as by removing
+ the copyright notice or references to the Internet Society or other
+ Internet organizations, except as needed for the purpose of
+ developing Internet standards in which case the procedures for
+ copyrights defined in the Internet Standards process must be
+ followed, or as required to translate it into languages other than
+ English.
+
+ The limited permissions granted above are perpetual and will not be
+ revoked by the Internet Society or its successors or assigns.
+
+ This document and the information contained herein is provided on an
+ "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+ TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+ HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Perkins & Hodson Informational [Page 12]
+