📄 rfc1953.txt
字号:
o The state tables use the following Boolean terms and operators: A The Sender Instance in the incoming message matches the value stored from a previous message by the "Update Peer Verifier" operation for the port on which the incoming message is received. B The Sender Instance and the Source IP Address in the incoming message matches the value stored from a previous message by the "Update Peer Verifier" operation for the port on which the incoming message is received.Newman, et. al. Informational [Page 7]RFC 1953 IFMP Specification May 1996 C The Peer Instance and Peer Identity in the incoming message matches the value of the Sender Instance and the Source IP Address currently in use for all SYN, SYNACK, and ACK messages transmitted out of the port on which the incoming message was received. "&&" Represents the logical AND operation "||" Represents the logical OR operation "!" Represents the logical negation (NOT) operation. o A timer is required for the periodic generation of SYN, SYNACK, and ACK messages. The period of the timer is unspecified but a value of one second is suggested. There are two independent events: the timer expires, and a packet arrives. The processing rules for these events are: Timer Expires: Reset Timer If state = SYNSENT Send SYN If state = SYNRCVD Send SYNACK If state = ESTAB Send ACK Packet Arrives: If incoming message is an RSTACK If A && C && !SYNSENT Reset the link Else Discard the message Else the following State Tables. o State synchronization across a link is considered to be achieved when a node reaches the ESTAB state.Newman, et. al. Informational [Page 8]RFC 1953 IFMP Specification May 1996State Tables State: SYNSENT+======================================================================+| Condition | Action | New State |+====================+=====================================+===========+| SYNACK && C | Update Peer Verifier; Send ACK | ESTAB |+--------------------+-------------------------------------+-----------+| SYNACK && !C | Send RSTACK | SYNSENT |+--------------------+-------------------------------------+-----------+| SYN | Update Peer Verifier; Send SYNACK | SYNRCVD |+--------------------+-------------------------------------+-----------+| ACK | Send RSTACK | SYNSENT |+======================================================================+ State: SYNRCVD+======================================================================+| Condition | Action | New State |+====================+=====================================+===========+| SYNACK && C | Update Peer Verifier; Send ACK | ESTAB |+--------------------+-------------------------------------+-----------+| SYNACK && !C | Send RSTACK | SYNRCVD |+--------------------+-------------------------------------+-----------+| SYN | Update Peer Verifier; Send SYNACK | SYNRCVD |+--------------------+-------------------------------------+-----------+| ACK && B && C | Send ACK | ESTAB |+--------------------+-------------------------------------+-----------+| ACK && !(B && C) | Send RSTACK | SYNRCVD |+======================================================================+ State: ESTAB+=======================================================================+| Condition | Action | New State |+=====================+=====================================+===========+| SYN || SYNACK | Send ACK (note 1) | ESTAB |+---------------------+-------------------------------------+-----------+| ACK && B && C | Send ACK (note 1) | ESTAB |+---------------------+-------------------------------------+-----------+| ACK && !(B && C) | Send RSTACK | ESTAB |+=======================================================================+ Note 1: No more than one ACK should be sent within any time period of length defined by the timer.Newman, et. al. Informational [Page 9]RFC 1953 IFMP Specification May 19964. IFMP Redirection Protocol A sender encapsulates within an IPv4 packet all IFMP messages belonging to the Redirection Protocol. The sender sends these messages to the unicast IP address of the peer at the other end of the link. The IP address of the peer is obtained from the adjacency protocol. The Protocol field in the IP header must contain the value 101 (decimal) indicating that the IP packet contains an IFMP message. The Time to Live (TTL) field in the IP header must be set to 1. All IFMP Redirection Protocol messages have the following structure: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Version | Op Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sender Instance | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Peer Instance | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Message Body ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Version The IFMP protocol version number, currently Version = 1. Op Code This field gives the message type. Five message types are currently defined for the IFMP Redirection Protocol: REDIRECT: Op Code = 4 RECLAIM: Op Code = 5 RECLAIM ACK: Op Code = 6 LABEL RANGE: Op Code = 7 ERROR: Op Code = 8 Checksum The 16-bit one's complement of the one's complement sum of a pseudo header of information from the IP header, and the IFMP message itself. The pseudo header, conceptually prefixed to the IFMP message, contains the Source Address, the Destination Address, and the Protocol fields from theNewman, et. al. Informational [Page 10]RFC 1953 IFMP Specification May 1996 IPv4 header, and the total length of the IFMP message starting with the version field (this is equivalent to the value of the Total Length field from the IPv4 header minus the length of the IPv4 header itself). Sender Instance The sender's instance number for the link from the IFMP Adjacency Protocol. Peer Instance What the sender believes is the peer's current instance number for the link from the IFMP Adjacency protocol. Sequence Number The sender must increment by one, modulo 2**32, for every IFMP Redirection Protocol message sent across a link. It allows the receiver to process IFMP Redirection Protocol messages in order. The Sequence Number is set to zero when a node resets the link. Message Body Contains a list of one or more IFMP Redirection Protocol message elements. All of the message elements in the list have the same message type because the Op Code field applies to the entire IFMP message. The number of message elements included in a single packet must not cause the total size of the IFMP message to exceed the MTU size of the underlying data link. Only a single message element is permitted in a Label Range message or in an Error message. No IFMP Redirection Protocol messages can be sent across a link until the IFMP Adjacency Protocol has achieved state synchronization across that link. All IFMP Redirection Protocol messages received on a link that does not currently have state synchronization must be discarded. For every received IFMP Redirection Protocol message the receiver must check the Source IP Address from the IP header, the Sender Instance, and the Peer Instance. The incoming message must be discarded if the Sender Instance and the Source IP Address fields do not match the values stored by the "Update Peer Verifier" operation of the IFMP Adjacency Protocol for the port on which the message is received. The incoming message must also be discarded if the Peer Instance field does not match the current value for the Sender Instance of the IFMP Adjacency Protocol.Newman, et. al. Informational [Page 11]RFC 1953 IFMP Specification May 19964.1 Redirect Message The Redirect Message element is used to instruct an adjacent node to attach one or more given labels to packets belonging to one or more specified flows each for a specified period of time. The Redirect message is not acknowledged. Each Redirect message element has the following structure: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flow Type | Flow ID Length| Lifetime | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Flow Identifier ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Flow Type Specifies the Flow Type of the flow identifier contained in the Flow Identifier field. Flow ID Length Specifies the length of the Flow Identifier field in integer multiples of 32 bit words. Lifetime field Specifies the length of time, in seconds, for which this redirection is valid. The association of flow identifier and label should be discarded at a time no greater than that specified by the Lifetime field. A value of zero is not valid. Label field Contains a 32 bit label. The format of the label is dependent upon the type of physical link across which the Redirect message is sent. (The format of the label for ATM data links is specified in [ENCAP].) Flow Identifier Identifies the flow with which the specified label should be associated. The length of the Flow Identifier field must be an integer multiple of 32 bit words to preserve 32 bit alignment.Newman, et. al. Informational [Page 12]RFC 1953 IFMP Specification May 1996 A node can send an IFMP message containing one or more Redirect message elements across a link to its upstream neighbor. Each Redirect message element requests that the upstream neighbor associate a given link-level label to packets belonging to a specified flow for up to a specified period of time. A node receiving an IFMP message that contains one or more Redirect message elements from an adjacent downstream neighbor can choose to ignore any or all of the Redirect message elements. Neither the IFMP message nor any of the Redirect message elements are acknowledged. If the node chooses to accept a particular Redirect message element and to redirect the specified flow, it should attach the label specified in the Redirect message element to all further packets sent on that flow until it chooses to do so no longer, or until the specified lifetime expires. While the flow remains redirected, the encapsulation specified by the definition of the Flow Type given in the Redirect message element must be used for all packets belonging to that flow. If the label in a Redirect message element is outside the range that can be handled across the relevant link, a Label Range message can be returned to the sender. The Label Range message informs the sender of the Redirect message of the range of labels that can be sent across the link. If a Redirect message element is received specifying a flow that is already redirected, the Label field in the received Redirect message element must be checked against the label stored for the redirected flow. If they agree, the lifetime of the redirected flow is reset to that contained in the Redirect message element. If they disagree, the Redirect message element is ignored, and the flow returned to the default state. There is a minimum time between Redirect message elements specifying the same flow. The default value is one second. If a receiving node detects an error in any of the fields of a Redirect message element, the node must discard that message element without affecting any other Redirect message elements in the same IFMP message. The receiver should return an error message to the sender only in the case that the receiver does not understand the version of the IFMP protocol in the received IFMP message or does not understand a Flow Type in any of the Redirect message elements. An Error Message should be returned for each Flow Type that is not understood.4.2 Reclaim Message The Reclaim message element is used by a node to instruct an adjacent upstream node to unbind one or more flows from the labels to which they are currently bound, and to release the labels.Newman, et. al. Informational [Page 13]RFC 1953 IFMP Specification May 1996 Each Reclaim message element has the following structure: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Flow Type | Flow ID Length| Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ~ Flow Identifier ~ | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Flow Type
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -