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

📄 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 2001


2.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 + -