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

📄 rfc2961.txt

📁 著名的RFC文档,其中有一些文档是已经翻译成中文的的.
💻 TXT
📖 第 1 页 / 共 5 页
字号:
         The Epoch field copied from the message being acknowledged.      Message_Identifier: 32 bits         The Message_Identifier field copied from the message being         acknowledged.   MESSAGE_ID_NACK object      Class = MESSAGE_ID_ACK Class, C_Type = 2         Definition is the same as the MESSAGE_ID_ACK object.4.4. Ack Message Format   Ack messages carry one or more MESSAGE_ID_ACK or MESSAGE_ID_NACK   objects.  They MUST NOT contain any MESSAGE_ID objects.  Ack messages   are sent between neighboring RSVP nodes.  The IP destination address   of an Ack message is the unicast address of the node that generated   the message(s) being acknowledged.  For messages with RSVP_HOP   objects, such as Path and Resv messages, the address is found in the   RSVP_HOP object.  For other messages, such as ResvConf, the   associated IP address is the source address in the IP header.  The IP   source address is an address of the node that sends the Ack message.Berger, et al.              Standards Track                    [Page 11]RFC 2961       RSVP Refresh Overhead Reduction Extensions     April 2001   The Ack message format is as follows:     <ACK Message> ::= <Common Header> [ <INTEGRITY> ]                       <MESSAGE_ID_ACK> | <MESSAGE_ID_NACK>                       [ [<MESSAGE_ID_ACK> | <MESSAGE_ID_NACK>] ... ]     For Ack messages, the Msg Type field of the Common Header MUST be     set to 13.     Section 4.6 provides guidance on when an Ack message should be used     and when MESSAGE_ID objects should be sent piggy-backed in other     RSVP messages.4.5. MESSAGE_ID Object Usage   The MESSAGE_ID object may be included in any RSVP message other than   the Ack and Bundle messages.  The MESSAGE_ID object is always   generated and processed over a single hop between RSVP neighbors.   The IP address of the object generator, i.e., the node that creates   the object, is represented in a per RSVP message type specific   fashion.  For messages with RSVP_HOP objects, such as Path and Resv   messages, the generator's IP address is found in the RSVP_HOP object.   For other messages, such as ResvConf message, the generator's IP   address is the source address in the IP header.  Note that MESSAGE_ID   objects can only be used in a Bundle sub-messages, but not in a   Bundle message.  As is always the case with the Bundle message, each   sub-message is processed as if it was received individually.  This   includes processing of MESSAGE_ID objects.   The Epoch field contains a generator selected value.  The value is   used to indicate when the sender resets the values used in the   Message_Identifier field.  On startup, a node SHOULD randomly select   a value to be used in the Epoch field.  The node SHOULD ensure that   the selected value is not the same as was used when the node was last   operational.  The value MUST NOT be changed unless the node or the   RSVP agent is restarted.   The Message_Identifier field contains a generator selected value.   This value, when combined with the generator's IP address, identifies   a particular RSVP message and the specific state information it   represents.  The combination of Message_Identifier and Epoch can also   be used to detect out of order messages.  When a node is sending a   refresh message with a MESSAGE_ID object, it SHOULD use the same   Message_Identifier value that was used in the RSVP message that first   advertised the state being refreshed.  When a node is sending a   trigger message, the Message_Identifier value MUST have a value that   is greater than any other value previously used with the same Epoch   field value.  A value is considered to have been used when it hasBerger, et al.              Standards Track                    [Page 12]RFC 2961       RSVP Refresh Overhead Reduction Extensions     April 2001   been sent in any message using the associated IP address with the   same Epoch field value.   The ACK_Desired flag is set when the MESSAGE_ID object generator   wants a MESSAGE_ID_ACK object sent in response to the message.  Such   information can be used to ensure reliable delivery of RSVP messages   in the face of network loss.  Nodes setting the ACK_Desired flag   SHOULD retransmit unacknowledged messages at a more rapid interval   than the standard refresh period until the message is acknowledged or   until a "rapid" retry limit is reached.  Rapid retransmission rate   MUST be based on the exponential exponential back-off procedures   defined in section 6.  The ACK_Desired flag will typically be set   only in trigger messages.  The ACK_Desired flag MAY be set in refresh   messages.  Issues relate to multicast sessions are covered in a later   section.   Nodes processing incoming MESSAGE_ID objects SHOULD check to see if a   newly received message is out of order and can be ignored.  Out of   order messages SHOULD be ignored, i.e., silently dropped.  Out of   order messages can be identified by examining the values in the Epoch   and Message_Identifier fields.  To determine ordering, the received   Epoch value must match the value previously received from the message   sender.  If the values differ then the receiver MUST NOT treat the   message as out of order.  When the Epoch values match and the   Message_Identifier value is less than the largest value previously   received from the sender, then the receiver SHOULD check the value   previously received for the state associated with the message.  This   check should be performed for any message that installs or changes   state.  (Includes at least: Path, Resv, PathTear, ResvTear, PathErr   and ResvErr.)  If no local state information can be associated with   the message, the receiver MUST NOT treat the message as out of order.   If local state can be associated with the message and the received   Message_Identifier value is less than the most recently received   value associated with the state, the message SHOULD be treated as   being out of order.   Note that the 32-bit Message_Identifier value MAY wrap.  To cover the   wrap case, the following expression may be used to test if a newly   received Message_Identifier value is less than a previously received   value:       if ((int) old_id - (int) new_id > 0) {          new value is less than old value;       }   MESSAGE_ID objects of messages that are not out of order SHOULD be   used to aid in determining if the message represents new state or a   state refresh.  Note that state is only refreshed in Path and ResvBerger, et al.              Standards Track                    [Page 13]RFC 2961       RSVP Refresh Overhead Reduction Extensions     April 2001   messages.  If the received Epoch values differs from the value   previously received from the message sender, the message is a trigger   message and the receiver MUST fully process the message.  If a Path   or Resv message contains the same Message_Identifier value that was   used in the most recently received message for the same session and,   for Path messages, SENDER_TEMPLATE then the receiver SHOULD treat the   message as a state refresh.  If the Message_Identifier value is   greater than the most recently received value, the receiver MUST   fully processes the message.  When fully processing a Path or Resv   message, the receiver MUST store the received Message_Identifier   value as part of the local Path or Resv state for future reference.   Nodes receiving a non-out of order message containing a MESSAGE_ID   object with the ACK_Desired flag set, SHOULD respond with a   MESSAGE_ID_ACK object.  Note that MESSAGE_ID objects received in   messages containing errors, i.e., are not syntactically valid,  MUST   NOT be acknowledged.  PathErr and ResvErr messages SHOULD be treated   as implicit acknowledgments.4.6. MESSAGE_ID_ACK Object and MESSAGE_ID_NACK Object Usage   The MESSAGE_ID_ACK object is used to acknowledge receipt of messages   containing MESSAGE_ID objects that were sent with the ACK_Desired   flag set.  A MESSAGE_ID_ACK object MUST NOT be generated in response   to a received MESSAGE_ID object when the ACK_Desired flag is not set.   The MESSAGE_ID_NACK object is used as part of the summary refresh   extension.  The generation and processing of MESSAGE_ID_NACK objects   is described in further detail in Section 5.4.   MESSAGE_ID_ACK and MESSAGE_ID_NACK objects MAY be sent in any RSVP   message that has an IP destination address matching the generator of   the associated MESSAGE_ID object.  This means that the objects will   not typically be included in the non hop-by-hop Path, PathTear and   ResvConf messages.  When no appropriate message is available, one or   more objects SHOULD be sent in an Ack message.  Implementations   SHOULD include MESSAGE_ID_ACK and MESSAGE_ID_NACK objects in standard   RSVP messages when possible.   Implementations SHOULD limit the amount of time that an object is   delayed in order to be piggy-backed or sent in an Ack message.   Different limits may be used for MESSAGE_ID_ACK and MESSAGE_ID_NACK   objects.  MESSAGE_ID_ACK objects are used to detect link transmission   losses.  If an ACK object is delayed too long, the corresponding   message will be retransmitted.  To avoid such retransmission, ACK   objects SHOULD be delayed a minimal amount of time.  A delay time   equal to the link transit time MAY be used.  MESSAGE_ID_NACK objects   may be delayed an independent and longer time, although additionalBerger, et al.              Standards Track                    [Page 14]RFC 2961       RSVP Refresh Overhead Reduction Extensions     April 2001   delay increases the amount of time a desired reservation is not   installed.4.7. Multicast Considerations   Path and PathTear messages may be sent to IP multicast destination   addresses.  When the destination is a multicast address, it is   possible that a single message containing a single MESSAGE_ID object   will be received by multiple RSVP next hops.  When the ACK_Desired   flag is set in this case, acknowledgment processing is more complex.   There are a number of issues to be addressed including ACK implosion,   number of acknowledgments to be expected and handling of new   receivers.   ACK implosion occurs when each receiver responds to the MESSAGE_ID   object at approximately the same time.  This can lead to a   potentially large number of MESSAGE_ID_ACK objects being   simultaneously delivered to the message generator.  To address this   case, the receiver MUST wait a random interval prior to acknowledging   a MESSAGE_ID object received in a message destined to a multicast   address.  The random interval SHOULD be between zero (0) and a   configured maximum time.  The configured maximum SHOULD be set in   proportion to the refresh and "rapid" retransmission interval, i.e,   such that the maximum time before sending an acknowledgment does not   result in retransmission.  It should be noted that ACK implosion is   being addressed by spreading acknowledgments out in time, not by ACK   suppression.   A more fundamental issue is the number of acknowledgments that the   upstream node, i.e., the message generator, should expect.  The   number of acknowledgments that should be expected is the same as the   number of RSVP next hops.  In the router-to-router case, the number   of next hops can often be obtained from routing.  When hosts are   either the upstream node or the next hops, the number of next hops   will typically not be readily available.  Another case where the   number of RSVP next hops will typically not be known is when there   are non-RSVP routers between the message generator and the RSVP next   hops.   When the number of next hops is not known, the message generator   SHOULD only expect a single response.  The result of this behavior   will be special retransmission handling until the message is   delivered to at least one next hop, then followed by standard RSVP   refreshes.  Refresh messages will synchronize state with any next   hops that don't receive the original message.Berger, et al.              Standards Track                    [Page 15]RFC 2961       RSVP Refresh Overhead Reduction Extensions     April 20014.7.1. Reference RSVP/Routing Interface   When using the MESSAGE_ID extension with multicast sessions it is   preferable for RSVP to obtain the number of next hops from routing   and to be notified when that number changes.  The interface between   routing and RSVP is purely an implementation issue.  Since RSVP   [RFC2205] describes a reference routing interface, a version of the   RSVP/routing interface updated to provide number of next hop   information is presented.  See [RFC2205] for previously defined   parameters and function description.      o    Route Query           Mcast_Route_Query( [ SrcAddress, ] DestAddress,                              Notify_flag )                              -> [ IncInterface, ] OutInterface_list,                              NHops_list      o    Route Change Notification           Mcast_Route_Change( ) -> [ SrcAddress, ] DestAddress,                             [ IncInterface, ] OutInterface_list,                             NHops_list      NHops_list provides the number of multicast group members      reachable via each OutInterface_list entry.4.8. Compatibility   All nodes sending messages with the Refresh-Reduction-Capable bit set   will support the MESSAGE_ID Extension.  There are no backward   compatibility issues raised by the MESSAGE_ID Class with nodes that   do not set the Refresh-Reduction-Capable bit.  The MESSAGE_ID Class   has an assigned value whose form is 0bbbbbbb.  Per RSVP [RFC2205],   classes with values of this form must be rejected with an "Unknown   Object Class" error by nodes not supporting the class.  When the   receiver of a MESSAGE_ID object does not support the class, a   corresponding error message will be generated.  The generator of the   MESSAGE_ID object will see the error and then MUST re-send the   original message without the MESSAGE_ID object.  In this case, the   message generator MAY still choose to retransmit messages at the

⌨️ 快捷键说明

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