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

📄 rfc3048.txt

📁 最新的RFC
💻 TXT
📖 第 1 页 / 共 4 页
字号:
Network Working Group                                         B. WhettenRequest for Comments: 3048                                      TalarianCategory: Informational                                      L. Vicisano                                                                   Cisco                                                              R. Kermode                                                                Motorola                                                              M. Handley                                                                 ACIRI 9                                                                S. Floyd                                                                   ACIRI                                                                 M. Luby                                                        Digital Fountain                                                            January 2001      Reliable Multicast Transport Building Blocks for One-to-Many                           Bulk-Data TransferStatus of this Memo   This memo provides information for the Internet community.  It does   not specify an Internet standard of any kind.  Distribution of this   memo is unlimited.Copyright Notice   Copyright (C) The Internet Society (2001).  All Rights Reserved.Abstract   This document describes a framework for the standardization of bulk-   data reliable multicast transport.  It builds upon the experience   gained during the deployment of several classes of contemporary   reliable multicast transport, and attempts to pull out the   commonalities between these classes of protocols into a number of   building blocks.  To that end, this document recommends that certain   components that are common to multiple protocol classes be   standardized as "building blocks".  The remaining parts of the   protocols, consisting of highly protocol specific, tightly   intertwined functions, shall be designated as "protocol cores".   Thus, each protocol can then be constructed by merging a "protocol   core" with a number of "building blocks" which can be re-used across   multiple protocols.Whetten, et al.              Informational                      [Page 1]RFC 3048                  RMT Building Blocks               January 2001Table of Contents   1 Introduction ..................................................  2   1.1 Protocol Families ...........................................  5   2 Building Blocks Rationale .....................................  6   2.1 Building Blocks Advantages ..................................  6   2.2 Building Block Risks ........................................  7   2.3 Building Block Requirements .................................  8   3 Protocol Components ...........................................  8   3.1 Sub-Components Definition ...................................  9   4 Building Block Recommendations ................................ 12   4.1 NACK-based Reliability ...................................... 13   4.2 FEC coding .................................................. 13   4.3 Congestion Control .......................................... 13   4.4 Generic Router Support ...................................... 14   4.5 Tree Configuration .......................................... 14   4.6 Data Security ............................................... 15   4.7 Common Headers .............................................. 15   4.8 Protocol Cores .............................................. 15   5 Security ...................................................... 15   6 IANA Considerations ........................................... 15   7 Conclusions ................................................... 16   8 Acknowledgements .............................................. 16   9 References .................................................... 16   10 Authors' Addresses ........................................... 19   11 Full Copyright Statement ..................................... 201.  Introduction   RFC 2357 lays out the requirements for reliable multicast protocols   that are to be considered for standardization by the IETF.  They   include:   o  Congestion Control.  The protocol must be safe to deploy in the      widespread Internet.  Specifically, it must adhere to three      mandates:  a) it must achieve good throughput (i.e., it must not      consistently overload links with excess data or repair traffic),      b) it must achieve good link utilization, and c) it must not      starve competing flows.   o  Scalability.  The protocol should be able to work under a variety      of conditions that include multiple network topologies, link      speeds, and the receiver set size.  It is more important to have a      good understanding of how and when a protocol breaks than when it      works.Whetten, et al.              Informational                      [Page 2]RFC 3048                  RMT Building Blocks               January 2001   o  Security.  The protocol must be analyzed to show what is necessary      to allow it to cope with security and privacy issues.  This      includes understanding the role of the protocol in data      confidentiality and sender authentication, as well as how the      protocol will provide defenses against denial of service attacks.   These requirements are primarily directed towards making sure that   any standards will be safe for widespread Internet deployment.  The   advancing maturity of current work on reliable multicast congestion   control (RMCC) [HFW99] in the IRTF Reliable Multicast Research Group   (RMRG) has been one of the events that has allowed the IETF to   charter the RMT working group.  RMCC only addresses a subset of the   design space for reliable multicast.  Fortuitously, the requirements   it addresses are also the most pressing application and market   requirements.   A protocol's ability to meet the requirements of congestion control,   scalability, and security is affected by a number of secondary   requirements that are described in a separate document [RFC2887].  In   summary, these are:   o  Ordering Guarantees.  A protocol must offer at least one of either      source ordered or unordered delivery guarantees.  Support for      total ordering across multiple senders is not recommended, as it      makes it more difficult to scale the protocol, and can more easily      be implemented at a higher level.   o  Receiver Scalability.  A protocol should be able to support a      "large" number of simultaneous receivers per transport group.  A      typical receiver set could be on the order of at least 1,000 -      10,000 simultaneous receivers per group, or could even eventually      scale up to millions of receivers in the large Internet.   o  Real-Time Feedback.  Some versions of RMCC may require soft real-      time feedback, so a protocol may provide some means for this      information to be measured and returned to the sender.  While this      does not require that a protocol deliver data in soft real-time,      it is an important application requirement that can be provided      easily given real-time feedback.   o  Delivery Guarantees.  In many applications, a logically defined      unit or units of data is to be delivered to multiple clients,      e.g., a file or a set of files, a software package, a stock quote      or package of stock quotes, an event notification, a set of      slides, a frame or block from a video.  An application data unit      is defined to be a logically separable unit of data that is useful      to the application.  In some cases, an application data unit may      be short enough to fit into a single packet (e.g., an eventWhetten, et al.              Informational                      [Page 3]RFC 3048                  RMT Building Blocks               January 2001      notification or a stock quote), whereas in other cases an      application data unit may be much longer than a packet (e.g., a      software package).  A protocol must provide good throughput of      application data units to receivers.  This means that most data      that is delivered to receivers is useful in recovering the      application data unit that they are trying to receive.  A protocol      may optionally provide delivery confirmation, i.e., a mechanism      for receivers to inform the sender when data has been delivered.      There are two types of confirmation, at the application data unit      level and at the packet level.  Application data unit confirmation      is useful at the application level, e.g., to inform the      application about receiver progress and to decide when to stop      sending packets about a particular application data unit.  Packet      confirmation is useful at the transport level, e.g., to inform the      transport level when it can release buffer space being used for      storing packets for which delivery has been confirmed.  Packet      level confirmation may also aid in application data unit      confirmation.   o  Network Topologies.  A protocol must not break the network when      deployed in the full Internet.  However, we recognize that      intranets will be where the first wave of deployments happen, and      so are also very important to support.  Thus, support for      satellite networks (including those with terrestrial return paths      or no return paths at all) is encouraged, but not required.   o  Group Membership.  The group membership algorithms must be      scalable.  Membership can be anonymous (where the sender does not      know the list of receivers), or fully distributed (where the      sender receives a count of the number of receivers, and optionally      a list of failures).   o  Example Applications.  Some of the applications that a RM protocol      could be designed to support include multimedia broadcasts, real      time financial market data distribution, multicast file transfer,      and server replication.   In the rest of this document the following terms will be used with a   specific connotation: "protocol family", "protocol component",   "building block", "protocol core", and "protocol instantiation".  A   "protocol family" is a broad class of RM protocols which share a   common characteristic.  In our classification, this characteristic is   the mechanism used to achieve reliability.  A "protocol component" is   a logical part of the protocol that addresses a particular   functionality.  A "building block" is a constituent of a protocol   that implements one, more than one or a part of a component.  A   "protocol core" is the set of functionality required for theWhetten, et al.              Informational                      [Page 4]RFC 3048                  RMT Building Blocks               January 2001   instantiation of a complete protocol, that is not specified by any   building block.  Finally a "protocol instantiation" is an actual RM   protocol defined in term of building blocks and a protocol core.1.1.  Protocol Families   The design-space document [RFC2887] also provides a taxonomy of the   most popular approaches that have been proposed over the last ten   years.  After congestion control, the primary challenge has been that   of meeting the requirement for ensuring good throughput in a way that   scales to a large number of receivers.  For protocols that include a   back-channel for recovery of lost packets, the ability to take   advantage of support of elements in the network has been found to be   very beneficial for supporting good throughput for a large numbers of   receivers.  Other protocols have found it very beneficial to transmit   coded data to achieve good throughput for large numbers of receivers.   This taxonomy breaks proposed protocols into four families.  Some   protocols in the family provide packet level delivery confirmation   that may be useful to the transport level.  All protocols in all   families can be supplemented with higher level protocols that provide   delivery confirmation of application data units.   1  NACK only.  Protocols such as SRM [FJM95] and MDP2 [MA99] attempt      to limit traffic by only using NACKs for requesting packet      retransmission.  They do not require network infrastructure.   2  Tree based ACK.  Protocols such as RMTP [LP96, PSLM97], RMTP-II      [WBPM98] and TRAM [KCW98], use positive acknowledgments (ACKs).      ACK based protocols reduce the need for supplementary protocols      that provide delivery confirmation, as the ACKS can be used for      this purpose.  In order to avoid ACK implosion in scaled up      deployments, the protocol can use servers placed in the network.   3  Asynchronous Layered Coding (ALC).  These protocols (examples      include [RV97] and [BLMR98]) use sender-based Forward Error      Correction (FEC) methods with no feedback from receivers or the      network to ensure good throughput.  These protocols also used      sender-based layered multicast and receiver-driven protocols to      join and leave these layers with no feedback to the sender to      achieve scalable congestion control.   4  Router assist.  Like SRM, protocols such as PGM [FLST98] and      [LG97] also use negative acknowledgments for packet recovery.      These protocols take advantage of new router software to do      constrained negative acknowledgments and retransmissions.  Router      assist protocols can also provide other functionality more      efficiently than end to end protocols.  For example, [LVS99] shows

⌨️ 快捷键说明

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