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

📄 rfc3048.txt

📁 最新的RFC
💻 TXT
📖 第 1 页 / 共 4 页
字号:
Whetten, et al.              Informational                      [Page 5]RFC 3048                  RMT Building Blocks               January 2001      how router assist can provide fine grained congestion control for      ALC protocols.  Router assist protocols can be designed to      complement all protocol families described above.   Note that the distinction in protocol families in not necessarily   precise and mutually exclusive.  Actual protocols may use a   combination of the mechanisms belonging to different classes.  For   example, hybrid NACK/ACK based protocols (such as [WBPM98]) are   possible.  Other examples are protocols belonging to class 1 through   3 that take advantage of router support.2.  Building Blocks Rationale   As specified in RFC 2357 [MRBP98], no single reliable multicast   protocol will likely meet the needs of all applications.  Therefore,   the IETF expects to standardize a number of protocols that are   tailored to application and network specific needs.  This document   concentrates on the requirements for "one-to-many bulk-data   transfer", but in the future, additional protocols and building-   blocks are expected that will address the needs of other types of   applications, including "many-to- many" applications.  Note that   bulk-data transfer does not refer to the timeliness of the data,   rather it states that there is a large amount of data to be   transferred in a session.  The scope and approach taken for the   development of protocols for these additional scenarios will depend   upon large part on the success of the "building-block" approach put   forward in this document.2.1.  Building Blocks Advantages   Building a large piece of software out of smaller modular components   is a well understood technique of software engineering.  Some of the   advantages that can come from this include:   o  Specification Reuse.  Modules can be used in multiple protocols,      which reduces the amount of development time required.   o  Reduced Complexity.  To the extent that each module can be easily      defined with a simple API, breaking a large protocol in to smaller      pieces typically reduces the total complexity of the system.   o  Reduced Verification and Debugging Time.  Reduced complexity      results in reduced time to debug the modules.  It is also usually      faster to verify a set of smaller modules than a single larger      module.Whetten, et al.              Informational                      [Page 6]RFC 3048                  RMT Building Blocks               January 2001   o  Easier Future Upgrades.  There is still ongoing research in      reliable multicast, and we expect the state of the art to continue      to evolve.  Building protocols with smaller modules allows them to      be more easily upgraded to reflect future research.   o  Common Diagnostics.  To the extent that multiple protocols share      common packet headers, packet analyzers and other diagnostic tools      can be built which work with multiple protocols.   o  Reduces Effort for New Protocols.  As new application requirements      drive the need for new standards, some existing modules may be      reused in these protocols.   o  Parallelism of Development.  If the APIs are defined clearly, the      development of each module can proceed in parallel.2.2.  Building Block Risks   Like most software specification, this technique of breaking down a   protocol in to smaller components also brings tradeoffs.  After a   certain point, the disadvantages outweigh the advantages, and it is   not worthwhile to further subdivide a problem.  These risks include:   o  Delaying Development.  Defining the API for how each two modules      inter-operate takes time and effort.  As the number of modules      increases, the number of APIs can increase at more than a linear      rate.  The more tightly coupled and complex a component is, the      more difficult it is to define a simple API, and the less      opportunity there is for reuse.  In particular, the problem of how      to build and standardize fine grained building blocks for a      transport protocol is a difficult one, and in some cases requires      fundamental research.   o  Increased Complexity.  If there are too many modules, the total      complexity of the system actually increases, due to the      preponderance of interfaces between modules.   o  Reduced Performance.  Each extra API adds some level of processing      overhead.  If an API is inserted in to the "common case" of packet      processing, this risks degrading total protocol performance.   o  Abandoning Prior Work.  The development of robust transport      protocols is a long and time intensive process, which is heavily      dependent on feedback from real deployments.  A great deal of work      has been done over the past five years on components of protocols      such as RMTP-II, SRM, and PGM.  Attempting to dramatically re-      engineer these components risks losing the benefit of this prior      work.Whetten, et al.              Informational                      [Page 7]RFC 3048                  RMT Building Blocks               January 20012.3.  Building Block Requirements   Given these tradeoffs, we propose that a building block must meet the   following requirements:   o  Wide Applicability.  In order to have confidence that the      component can be reused, it should apply across multiple protocol      families and allow for the component's evolution.   o  Simplicity.  In order to have confidence that the specification of      the component APIs will not dramatically slow down the standards      process, APIs must be simple and straight forward to define.  No      new fundamental research should be done in defining these APIs.   o  Performance.  To the extent possible, the building blocks should      attempt to avoid breaking up the "fast track", or common case      packet processing.3.  Protocol Components   This section proposes a functional decomposition of RM bulk-data   protocols from the perspective of the functional components provided   to an application by a transport protocol.  It also covers some   components that while not necessarily part of the transport protocol,   are directly impacted by the specific requirements of a reliable   multicast transport.  The next section then specifies recommended   building blocks that can implement these components.   Although this list tries to cover all the most common transport-   related needs of one-to-many bulk-data transfer applications, new   application requirements may arise during the process of   standardization, hence this list must not be interpreted as a   statement of what the transport layer should provide and what it   should not.  Nevertheless, it must be pointed out that some   functional components have been deliberately omitted since they have   been deemed irrelevant to the type of application considered (i.e.,   one-to-many bulk-data transfer).  Among these are advanced message   ordering (i.e., those which cannot be implemented through a simple   sequence number) and atomic delivery.   It is also worth mentioning that some of the functional components   listed below may be required by other functional components and not   directly by the application (e.g., membership knowledge is usually   required to implement ACK-based reliability).   The following list covers various transport functional components and   splits them in sub-components.Whetten, et al.              Informational                      [Page 8]RFC 3048                  RMT Building Blocks               January 2001   o  Data Reliability (ensuring good throughput)    |                          | - Loss Detection/Notification                          | - Loss Recovery                          | - Loss Protection   o  Congestion Control  |                          | - Congestion Feedback                          | - Rate Regulation                          | - Receiver Controls   o  Security   o  Group membership    |                          | - Membership Notification                          | - Membership Management   o  Session Management  |                          | - Group Membership Tracking                          | - Session Advertisement                          | - Session Start/Stop                          | - Session Configuration/Monitoring   o  Tree Configuration   Note that not all components are required by all protocols, depending   upon the fully defined service that is being provided by the   protocol.  In particular, some minimal service models do not require   many of these functions, including loss notification, loss recovery,   and group membership.3.1.  Sub-Components Definition   Loss Detection/Notification.  This includes how missing packets are   detected during transmission and how knowledge of these events are   propagated to one or more agents which are designated to recover from   the transmission error.  This task raises major scalability issues   and can lead to feedback implosion and poor throughput if not   properly handled.  Mechanisms based on TRACKs (tree-based positive   acknowledgements) or NACKs (negative acknowledgements) are the most   widely used to perform this function.  Mechanisms based on a   combination of TRACKs and NACKs are also possible.   Loss Recovery.  This function responds to loss notification events   through the transmission of additional packets, either in the form of   copies of those packets lost or in the form of FEC packets.  The   manner in which this function is implemented can significantly affect   the scalability of a protocol.Whetten, et al.              Informational                      [Page 9]RFC 3048                  RMT Building Blocks               January 2001   Loss Protection.  This function attempts to mask packet-losses so   that they don't become Loss Notification events.  This function can   be realized through the pro-active transmission of FEC packets.  Each   FEC packet is created from an entire application data unit [LMSSS97]   or a portion of an application data unit [RV97], [BKKKLZ95], a fact   that allows a receiver to recover from some packet loss without   further retransmissions.  The number of losses that can be recovered   from without requiring retransmission depends on the amount of FEC   packets sent in the first place.  Loss protection can also be pushed   to the extreme when good throughput is achieved without any Loss   Detection/Notification and Loss Recovery functionality, as in the ALC   family of protocols defined above.   Congestion Feedback.  For sender driven congestion control protocols,   the receiver must provide some type of feedback on congestion to the   sender.  This typically involves loss rate and round trip time   measurements.   Rate Regulation.  Given the congestion feedback, the sender then must   adjust its rate in a way that is fair to the network.  One proposal   that defines this notion of fairness and other congestion control   requirements is [Whetten99].   Receiver Controls.  In order to avoid allowing a receiver that has an   extremely slow connection to the sender to stop all progress within   single rate schemes, a congestion control algorithm will often   require receivers to leave groups.  For multiple rate approaches,   receivers of all connection speeds can have data delivered to them   according to the rate of their connection without slowing down other   receivers.   Security.  Security for reliable multicast contains a number of   complex and tricky issues that stem in large part from the IP   multicast service model.  In this service model, hosts do not send   traffic to another host, but instead elect to receive traffic from a   multicast group. This means that any host may join a group and   receive its traffic.  Conversely, hosts may also leave a group at any   time.  Therefore, the protocol must address how it impacts the   following security issues:   o  Sender Authentication (since any host can send to a group),   o  Data Encryption (since any host can join a group)   o  Transport Protection (denial of service attacks, through      corruption of transport state, or requests for unauthorized      resources)Whetten, et al.              Informational                     [Page 10]

⌨️ 快捷键说明

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