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

📄 rfc2642.txt

📁 <VC++网络游戏建摸与实现>源代码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
          +----------+   or Inactivity Timer  +-----------+               |         Hello |          Rcvd |               |               V   +-----< [pt-to-pt?]   | yes       |   |           | no   |           V   |      +----------+   1-Way   +----------+   |      |   Init   | <-------- | >= 2-way |   |      +----------+           +----------+   |           |   |     2-Way |   |      Rcvd |                  +-------+   AdjOK? +------------+   |           +----------------> | 2-Way | <------- | >= ExStart |   |           | (no adjacency)   +-------+     no   +------------+   |           |   |           V   |      +---------+   Seq Number Mismatch  +-------------+   +----> | ExStart | <--------------------- | >= Exchange |          +---------+       or BadLSReq      +-------------+               |   Negotiation |       Done    |               V          +----------+          | Exchange |          +----------+               |      Exchange |                        +--------+        Done   +----------------------> |  Full  |               | (request list empty)   +--------+               |                             ^               V                             |          +---------+      Loading Done      |          | Loading | ----------------------->          +---------+                  Figure 2: Neighbor State MachineKane                         Informational                     [Page 26]RFC 2642         Cabletron's VLS Protocol Specification      August 1999   2-Way      In this state, communication between the two switches is      bidirectional.  This is the most advanced state short of beginning      to establish an adjacency.  On a multi-access link, the designated      switch and the backup designated switch are selected from the set      of neighbors in state 2-Way or greater.   ExStart      This state indicates that the two switches have begun to establish      an adjacency by determining which switch is the master, as well as      the initial sequence number for Database Descriptor packets.      Neighbor conversations in this state or greater are called      adjacencies.   Exchange      In this state, the switches are exchanging Database Description      packets.  (See Section 7.2 for a complete description of this      process.)  All adjacencies in the Exchange state or greater are      used by the distribution procedure (see Section 8.2), and are      capable of transmitting and receiving all types of VLSP routing      packets.   Loading      In this state, the local switch is sending Link State Request      packets to the neighbor asking for the more recent advertisements      that were discovered in the Exchange state.   Full      In this state, the two switches are fully adjacent.  These      adjacencies will now appear in switch link and network link      advertisements generated for the link.4.2 Events Causing Neighbor State Changes   The state of a neighbor conversation changes due to neighbor events.   This section describes these events.   Neighbor events are shown as arrows in Figure 2, the graphic   representation of the neighbor state machine.  For more information   on the neighbor state machine, see Section 4.3.Kane                         Informational                     [Page 27]RFC 2642         Cabletron's VLS Protocol Specification      August 1999   Hello Received      This event is generated when a Hello packet has been received from      a neighbor.   2-Way Received      This event is generated when the local switch sees its own switch      ID listed in the neighbor's Hello packet, indicating that      bidirectional communication has been established between the two      switches.   Negotiation Done      This event is generated when the master/slave relationship has      been successfully negotiated and initial packet sequence numbers      have been exchanged.  This event signals the start of the database      exchange process (see Section 7.2).   Exchange Done      This event is generated when the database exchange process is      complete and both switches have successfully transmitted a full      sequence of Database Description packets.  (For more information      on the database exchange process, see Section 7.2.)   BadLSReq      This event is generated when a Link State Request has been      received for a link state advertisement that is not contained in      the database.  This event indicates an error in the      synchronization process.   Loading Done      This event is generated when all Link State Updates have been      received for all out-of-date portions of the database.  (See      Section 7.3.)   AdjOK?      This event is generated when a decision must be made as to whether      an adjacency will be established or maintained with the neighbor.      This event will initiate some adjacencies and destroy others.Kane                         Informational                     [Page 28]RFC 2642         Cabletron's VLS Protocol Specification      August 1999   Seq Number Mismatch      This event is generated when a Database Description packet has      been received with any of the following conditions:      o  The packet contains an unexpected sequence number.      o  The packet (unexpectedly) has the Init bit set.      o  The packet has a different Options field than was         previously seen.      These conditions all indicate that an error has occurred during      the establishment of the adjacency.   1-Way      This event is generated when bidirectional communication with the      neighbor has been lost.  That is, a Hello packet has been received      from the neighbor in which the local switch is not listed.   KillNbr      This event is generated when further communication with the      neighbor is impossible.   Inactivity Timer      This event is generated when the inactivity timer has expired,      indicating that no Hello packets have been received from the      neighbor in SwitchDeadInterval seconds.  This timer is used only      on broadcast (multi-access) links.   LLDown      This event is generated by the lower-level switch discovery      protocols and indicates that the neighbor is now unreachable.4.3 Neighbor State Machine   This section presents a detailed description of the neighbor state   machine.   Neighbor states (see Section 4.1) change as the result of various   events (see Section 4.2).  However, the effect of each event can   vary, depending on the current state of the conversation with the   neighbor.  For this reason, the state machine described in this   section is organized according to the current neighbor state and the   occurring event.  For each state/event pair, the new neighbor state   is listed, along with a description of the required processing.Kane                         Informational                     [Page 29]RFC 2642         Cabletron's VLS Protocol Specification      August 1999   Note that when the neighbor state changes as a result of an interface   Neighbor Change event (see Section 3.2), it may be necessary to rerun   the designated switch selection algorithm. In addition, if the   interface associated with the neighbor conversation is in the DS   state (that is, the local switch is the designated switch), changes   in the neighbor state may cause a new network link advertisement to   be originated (see Section 8.1).   When the neighbor state machine must invoke the interface state   machine, it is invoked as a scheduled task.  This simplifies   processing, by ensuring that neither state machine executes   recursively.   State(s):  Down   Event:  Hello Received   New state:  Depends on the interface type   Action:      If the interface type of the associated link is point-to-point,      change the neighbor state to ExStart.  Otherwise, change the      neighbor state to Init and start the inactivity timer for the      neighbor.  If the timer expires before another Hello packet is      received, the neighbor switch is declared dead.   State(s):  Init or greater   Event:  Hello Received   New state:  No state change   Action:      If the interface type of the associated link is point-to-point,      determine whether this notification is for a different neighbor      than the one previously seen. If so, generate an Interface Down      event for the associated interface, reset the interface type to      broadcast and generate an Interface Up event.   Note:  This procedure of generating an Interface Down event and   changing the interface type to broadcast is also executed if the   neighbor for whom the notification was received is running an older   version of the protocol software (see Section 6.1).  In previous   versions of the protocol, all interfaces were treated as if they were   broadcast.      If the interface type is broadcast, reset the inactivity timer for      the neighbor.Kane                         Informational                     [Page 30]RFC 2642         Cabletron's VLS Protocol Specification      August 1999   State(s):  Init   Event:  2-Way Received   New state:  Depends on action routine   Action:      Determine whether an adjacency will be formed with the neighbor      (see Section 6.4).  If no adjacency is to be formed, change the      neighbor state to 2-Way.      Otherwise, change the neighbor state to ExStart.  Initialize the      sequence number for this neighbor and declare the local switch to      be master for the database exchange process.  (See Section 7.2.)   State(s):  ExStart   Event:  Negotiation Done   New state:  Exchange   Action:      The Negotiation Done event signals the start of the database      exchange process.  See Section 7.2 for a detailed description of      this process.   State(s):  Exchange   Event:  Exchange Done   New state:  Depends on action routine   Action:      If the neighbor Link state request list is empty, change the      neighbor state to Full.  This is the adjacency's final state.      Otherwise, change the neighbor state to Loading.  Begin sending      Link State Request packets to the neighbor requesting the most      recent link state advertisements, as discovered during the      database exchange process.  (See Section 7.2.) These      advertisements are listed in the link state request list      associated with the neighbor.   State(s):  Loading   Event:  Loading Done   New state:  Full   Action:      No action is required beyond changing the neighbor state to Full.      This is the adjacency's final state.Kane                         Informational                     [Page 31]RFC 2642         Cabletron's VLS Protocol Specification      August 1999   State(s):  2-Way   Event:  AdjOK?   New state:  Depends on action routine   Action:      If no adjacency is to be formed with the neighboring switch (see      Section 6.4), retain the neighbor state at 2-Way. Otherwise,      change the neighbor state to ExStart.  Initialize the sequence      number for this neighbor and declare the local switch to be master      for the database exchange process.  (See Section 7.2.)   State(s):  ExStart or greater   Event:  AdjOK?   New state:  Depends on action routine   Action:      If an adjacency should still be formed 

⌨️ 快捷键说明

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