Internet Engineering Task Force (IETF)                         T. Tsenov
Request for Comments: 5972                                 H. Tschofenig
Category: Informational                            Nokia Siemens Network
ISSN: 2070-1721                                               X. Fu, Ed.
                                                        Univ. Goettingen
                                                                 C. Aoun
                                                              Consultant
                                                               E. Davies
                                                        Folly Consulting
                                                            October 2010
        
Internet Engineering Task Force (IETF)                         T. Tsenov
Request for Comments: 5972                                 H. Tschofenig
Category: Informational                            Nokia Siemens Network
ISSN: 2070-1721                                               X. Fu, Ed.
                                                        Univ. Goettingen
                                                                 C. Aoun
                                                              Consultant
                                                               E. Davies
                                                        Folly Consulting
                                                            October 2010
        

General Internet Signaling Transport (GIST) State Machine

通用因特网信令传输(GIST)状态机

Abstract

摘要

This document describes state machines for the General Internet Signaling Transport (GIST). The states of GIST nodes for a given flow and their transitions are presented in order to illustrate how GIST may be implemented.

本文档描述了通用Internet信令传输(GIST)的状态机。为了说明GIST是如何实现的,给出了给定流的GIST节点状态及其转换。

Status of This Memo

关于下段备忘

This document is not an Internet Standards Track specification; it is published for informational purposes.

本文件不是互联网标准跟踪规范;它是为了提供信息而发布的。

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documents approved by the IESG are a candidate for any level of Internet Standard; see Section 2 of RFC 5741.

本文件是互联网工程任务组(IETF)的产品。它代表了IETF社区的共识。它已经接受了公众审查,并已被互联网工程指导小组(IESG)批准出版。并非IESG批准的所有文件都适用于任何级别的互联网标准;见RFC 5741第2节。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc5972.

有关本文件当前状态、任何勘误表以及如何提供反馈的信息,请访问http://www.rfc-editor.org/info/rfc5972.

Copyright Notice

版权公告

Copyright (c) 2010 IETF Trust and the persons identified as the document authors. All rights reserved.

版权所有(c)2010 IETF信托基金和确定为文件作者的人员。版权所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must

本文件受BCP 78和IETF信托有关IETF文件的法律规定的约束(http://trustee.ietf.org/license-info)自本文件出版之日起生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。从该文档中提取的代码组件必须

include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

包括信托法律条款第4.e节中所述的简化BSD许可证文本,且不提供简化BSD许可证中所述的担保。

This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English.

本文件可能包含2008年11月10日之前发布或公开的IETF文件或IETF贡献中的材料。控制某些材料版权的人员可能未授予IETF信托允许在IETF标准流程之外修改此类材料的权利。在未从控制此类材料版权的人员处获得充分许可的情况下,不得在IETF标准流程之外修改本文件,也不得在IETF标准流程之外创建其衍生作品,除了将其格式化以RFC形式发布或将其翻译成英语以外的其他语言。

Table of Contents

目录

   1. Introduction ....................................................3
   2. Terminology .....................................................3
   3. Notational Conventions Used in State Diagrams ...................3
   4. State Machine Symbols ...........................................5
   5. Common Rules ....................................................6
      5.1. Common Procedures ..........................................7
      5.2. Common Events ..............................................8
      5.3. Common Variables ...........................................9
   6. State Machines .................................................11
      6.1. Diagram Notations .........................................12
      6.2. State Machine for GIST Querying Node ......................12
      6.3. State Machine for GIST Responding Node ....................16
   7. Security Considerations ........................................18
   8. Acknowledgments ................................................18
   9. References .....................................................18
      9.1. Normative References ......................................18
      9.2. Informative References ....................................18
   Appendix A. State Transition Tables ...............................20
      A.1. State Transition Tables for GIST Querying Node ............20
      A.2. State Transition Tables for GIST Responding Node ..........24
        
   1. Introduction ....................................................3
   2. Terminology .....................................................3
   3. Notational Conventions Used in State Diagrams ...................3
   4. State Machine Symbols ...........................................5
   5. Common Rules ....................................................6
      5.1. Common Procedures ..........................................7
      5.2. Common Events ..............................................8
      5.3. Common Variables ...........................................9
   6. State Machines .................................................11
      6.1. Diagram Notations .........................................12
      6.2. State Machine for GIST Querying Node ......................12
      6.3. State Machine for GIST Responding Node ....................16
   7. Security Considerations ........................................18
   8. Acknowledgments ................................................18
   9. References .....................................................18
      9.1. Normative References ......................................18
      9.2. Informative References ....................................18
   Appendix A. State Transition Tables ...............................20
      A.1. State Transition Tables for GIST Querying Node ............20
      A.2. State Transition Tables for GIST Responding Node ..........24
        
1. Introduction
1. 介绍

The state machines described in this document are illustrative of how the GIST protocol defined in [1] may be implemented for the GIST nodes in different locations of a flow path. Where there are differences, [1] is authoritative. The state machines are informative only. Implementations may achieve the same results using different methods.

本文档中描述的状态机说明了如何为流路径不同位置的GIST节点实现[1]中定义的GIST协议。在有差异的地方,[1]是权威的。状态机仅提供信息。实现可以使用不同的方法获得相同的结果。

There are two types of possible entities for GIST signaling:

GIST信令有两种可能的实体:

- GIST querying node: GIST node that initiates the discovery of the next peer;

- GIST查询节点:GIST节点,发起发现下一个对等节点;

- GIST responding node: GIST node that is the discovered next peer.

- GIST响应节点:发现的下一个对等节点GIST节点。

We describe a set of state machines for these entities to illustrate how GIST may be implemented.

我们为这些实体描述了一组状态机,以说明GIST是如何实现的。

2. Terminology
2. 术语

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [2].

本文件中的关键词“必须”、“不得”、“要求”、“应”、“不应”、“应”、“不应”、“建议”、“可”和“可选”应按照[2]中所述进行解释。

3. Notational Conventions Used in State Diagrams
3. 状态图中使用的符号约定

The following text is reused from [3], and the state diagrams are based on the conventions specified in [4], Section 8.2.1. Additional state machine details are taken from [5].

以下文本重复使用[3],状态图基于第8.2.1节[4]中规定的约定。其他状态机详细信息摘自[5]。

RFC 4137 [3] reproduced the following text from Section 8.2.1 of IEEE 802-1X-2004 [4].

RFC 4137[3]复制了IEEE 802-1X-2004[4]第8.2.1节中的以下文本。

State diagrams are used to represent the operation of the protocol by a number of cooperating state machines, each comprising a group of connected, mutually exclusive states. Only one state of each machine can be active at any given time.

状态图用于表示多个协作状态机对协议的操作,每个状态机由一组相互连接的互斥状态组成。在任何给定时间,每台机器只能有一种状态处于活动状态。

. . .

. . .

All permissible transitions between states are represented by arrows, the arrowhead denoting the direction of the possible transition. Labels attached to arrows denote the condition(s) that must be met in order for the transition to take place. All conditions are expressions that evaluate to TRUE or FALSE; if a condition evaluates to TRUE, then the condition is met. The label UCT denotes an unconditional transition (i.e., UCT always

状态之间所有允许的过渡都用箭头表示,箭头表示可能过渡的方向。附在箭头上的标签表示发生转换必须满足的条件。所有条件都是计算为真或假的表达式;如果条件的计算结果为TRUE,则满足该条件。标签UCT表示无条件转换(即UCT始终

evaluates to TRUE). A transition that is global in nature (i.e., a transition that occurs from any of the possible states if the condition attached to the arrow is met) is denoted by an open arrow; i.e., no specific state is identified as the origin of the transition. When the condition associated with a global transition is met, it supersedes all other exit conditions including UCT. The special global condition BEGIN supersedes all other global conditions, and once asserted it remains asserted until all state blocks have executed to the point that variable assignments and other consequences of their execution remain unchanged.

计算结果为TRUE)。本质上是全局的转换(即,如果满足附在箭头上的条件,则从任何可能状态发生的转换)由开放箭头表示;i、 例如,没有特定的状态被确定为转换的起源。当满足与全局转换关联的条件时,它将取代所有其他退出条件,包括UCT。特殊全局条件BEGIN将取代所有其他全局条件,一旦断言,它将保持断言状态,直到所有状态块执行到变量赋值及其执行的其他结果保持不变为止。

On entry to a state, the procedures defined for the state (if any) are executed exactly once, in the order that they appear on the page. Each action is deemed to be atomic; i.e., execution of a procedure completes before the next sequential procedure starts to execute. No procedures execute outside a state block. The procedures in only one state block execute at a time, even if the conditions for execution of state blocks in different state machines are satisfied, and all procedures in an executing state block complete execution before the transition to and execution of any other state block occurs. That is, the execution of any state block appears to be atomic with respect to the execution of any other state block, and the transition condition to that state from the previous state is TRUE when execution commences. The order of execution of state blocks in different state machines is undefined except as constrained by their transition conditions. A variable that is set to a particular value in a state block retains this value until a subsequent state block executes a procedure that modifies the value.

在进入某个状态时,为该状态定义的过程(如果有)将按照它们在页面上出现的顺序执行一次。每一个动作都被认为是原子的;i、 例如,一个过程的执行在下一个顺序过程开始执行之前完成。没有过程在状态块之外执行。一次仅执行一个状态块中的过程,即使满足不同状态机中执行状态块的条件,并且执行状态块中的所有过程在转换到任何其他状态块并执行任何其他状态块之前完成执行。也就是说,任何状态块的执行相对于任何其他状态块的执行似乎是原子的,并且当执行开始时,从先前状态到该状态的转换条件为真。不同状态机中状态块的执行顺序未定义,除非受其转换条件的约束。在状态块中设置为特定值的变量将保留该值,直到后续状态块执行修改该值的过程。

On completion of all the procedures within a state, all exit conditions for the state (including all conditions associated with global transitions) are evaluated continuously until one of the conditions is met. The label ELSE denotes a transition that occurs if none of the other conditions for transitions from the state are met (i.e., ELSE evaluates to TRUE if all other possible exit conditions from the state evaluate to FALSE). Where two or more exit conditions with the same level of precedence become TRUE simultaneously, the choice as to which exit condition causes the state transition to take place is arbitrary.

完成一个状态内的所有过程后,将连续评估该状态的所有退出条件(包括与全局转换相关的所有条件),直到满足其中一个条件为止。标签ELSE表示在不满足状态转换的其他条件时发生的转换(即,如果状态的所有其他可能退出条件都计算为FALSE,则ELSE计算为TRUE)。如果具有相同优先级的两个或多个退出条件同时变为真,则选择哪个退出条件导致状态转换发生是任意的。

In addition to the above notation, there are a couple of clarifications specific to this document. First, all boolean variables are initialized to FALSE before the state machine execution begins. Second, the following notational shorthand is specific to this document:

除上述注释外,本文件还有一些特定的澄清。首先,在状态机开始执行之前,所有布尔变量都初始化为FALSE。其次,以下符号速记是本文件特有的:

   <variable> = <expression1> | <expression2> | ...
        
   <variable> = <expression1> | <expression2> | ...
        

Execution of a statement of this form will result in <variable> having a value of exactly one of the expressions. The logic for which of those expressions gets executed is outside of the state machine and could be environmental, configurable, or based on another state machine such as that of the method.

执行此形式的语句将导致<variable>的值正好是其中一个表达式的值。执行这些表达式的逻辑在状态机之外,可以是环境的、可配置的,或者基于另一个状态机,例如方法的状态机。

4. State Machine Symbols
4. 状态机符号

( ) Used to force the precedence of operators in boolean expressions and to delimit the argument(s) of actions within state boxes.

()用于强制布尔表达式中运算符的优先级,并在状态框中分隔操作的参数。

; Used as a terminating delimiter for actions within state boxes. Where a state box contains multiple actions, the order of execution follows the normal English language conventions for reading text.

; 用作状态框内操作的终止分隔符。当一个状态框包含多个动作时,执行顺序遵循阅读文本的正常英语约定。

= Assignment action. The value of the expression to the right of the operator is assigned to the variable to the left of the operator. Where this operator is used to define multiple assignments, e.g., a = b = X, the action causes the value of the expression following the right-most assignment operator to be assigned to all of the variables that appear to the left of the right-most assignment operator.

=分配操作。运算符右侧表达式的值将分配给运算符左侧的变量。如果此运算符用于定义多个赋值,例如a=b=X,则该操作会将最右边的赋值运算符后面的表达式的值赋值给最右边的赋值运算符左边出现的所有变量。

! Logical NOT operator.

! 逻辑NOT运算符。

&& Logical AND operator.

&&逻辑与运算符。

|| Logical OR operator.

||逻辑OR运算符。

if...then... Conditional action. If the boolean expression following the "if" evaluates to TRUE, then the action following the "then" is executed.

如果……那么。。。有条件的行动。如果“If”后面的布尔表达式的计算结果为TRUE,则执行“then”后面的操作。

{ statement 1, ... statement N } Compound statement. Braces are used to group statements that are executed together as if they were a single statement.

{语句1,…语句N}复合语句。大括号用于将一起执行的语句分组,就像它们是单个语句一样。

!= Inequality. Evaluates to TRUE if the expression to the left of the operator is not equal in value to the expression to the right.

!= 不平等如果运算符左侧的表达式与右侧的表达式的值不相等,则计算结果为TRUE。

== Equality. Evaluates to TRUE if the expression to the left of the operator is equal in value to the expression to the right.

==相等。如果运算符左侧的表达式与右侧的表达式的值相等,则计算结果为TRUE。

> Greater than. Evaluates to TRUE if the value of the expression to the left of the operator is greater than the value of the expression to the right.

>大于。如果运算符左侧表达式的值大于右侧表达式的值,则计算结果为TRUE。

<= Less than or equal to. Evaluates to TRUE if the value of the expression to the left of the operator is either less than or equal to the value of the expression to the right.

<=小于或等于。如果运算符左侧表达式的值小于或等于右侧表达式的值,则计算结果为TRUE。

++ Increment the preceding integer operator by 1.

++将前面的整数运算符递增1。

+ Arithmetic addition operator.

+ 算术加法运算符。

& Bitwise AND operator.

&按位AND运算符。

5. Common Rules
5. 共同规则

Throughout the document we use terms defined in [1], such as Query, Response, and Confirm.

在整个文档中,我们使用[1]中定义的术语,如查询、响应和确认。

The state machine represents the handling of GIST messages that match a Message Routing State's Message Routing Information (MRI), NSIS Signaling Layer Protocol identifier (NSLPID), and session identifier (SID) and with no protocol errors. Separate parallel instances of the state machines should handle messages for different Message Routing States (MRSs).

状态机表示对符合消息路由状态的消息路由信息(MRI)、NSIS信令层协议标识符(NSLPID)和会话标识符(SID)且无协议错误的GIST消息的处理。状态机的独立并行实例应该处理不同消息路由状态(MRS)的消息。

The state machine represents the states and transitions of the upstream and downstream peers of the Message Routing State.

状态机表示消息路由状态的上游和下游对等方的状态和转换。

For simplification, not all objects included in a message are shown. Only those that are significant for the case are shown. State machines do not present handling of messages that are not significant for management of the states.

为简化起见,不会显示消息中包含的所有对象。仅显示对该案例有意义的内容。状态机不提供对状态管理不重要的消息处理。

The state machines presented in this document do not cover all functions of a GIST node. Functionality of message forwarding, transmission of NSLP data without MRS establishment, and providing of the received messages to the appropriate MRS, we refer to as "lower-level pre-processing" step. Pre-processing provides to the appropriate MRS state machine only the messages that are matched against waiting Query/Response cookies, or the triplet (MRI, NSLPID, SID) of the established MRS. This is represented by "rx_*" events in the state machines.

本文中介绍的状态机并不涵盖GIST节点的所有功能。消息转发、在不建立MRS的情况下传输NSLP数据以及将接收到的消息提供给适当的MRS的功能,我们称之为“低级预处理”步骤。预处理仅向适当的MRS状态机提供与等待的查询/响应Cookie或已建立MRS的三元组(MRI、NSLPID、SID)匹配的消息。这由状态机中的“rx_*”事件表示。

Management of messaging associations (MAs) is considered in the document via procedures, events, and variables, which describe MA interaction with the MRS state machines. A state machine for MA management is not explicitly presented.

本文通过过程、事件和变量来考虑消息关联(MA)的管理,这些过程、事件和变量描述了MA与MRS状态机的交互。MA管理的状态机没有明确给出。

5.1. Common Procedures
5.1. 共同程序

Tx_Query: Transmit of Query message.

发送查询:发送查询消息。

Tx_Response: Transmit of Response message.

Tx_响应:发送响应消息。

Tx_Confirm: Transmit of Confirm message.

发送确认:发送确认消息。

Tx_Data: Transmit of Data message.

Tx_数据:传输数据信息。

Tg_MessageStatus: NSLP/GIST API message informing NSLP application of unsuccessful delivery of a message

Tg_MessageStatus:NSLP/GIST API消息通知NSLP应用程序消息传递失败

Tg_RecvMsg: NSLP/GIST API message that provides received message to NSLP application.

Tg_RecvMsg:NSLP/GIST API消息,用于向NSLP应用程序提供接收到的消息。

Tg_NetworkNotification: NSLP/GIST API message that informs NSLP application of change in MRS.

Tg_NetworkNotification:NSLP/GIST API消息,通知NSLP应用程序MRS中的更改。

Install downstream/upstream MRS: Install new Message Routing State and save the corresponding peer state info (IP address and UDP port, or pointer to the used MA) for the current Message Routing State or update the corresponding peer state info.

安装下游/上游MRS:安装新的消息路由状态,并为当前消息路由状态保存相应的对等状态信息(IP地址和UDP端口,或指向所用MA的指针),或更新相应的对等状态信息。

Delete MRS: Delete installed downstream/upstream peer's info for the current Message Routing State, and delete the Message Routing State if required.

删除MRS:删除当前消息路由状态的已安装下游/上游对等方的信息,并根据需要删除消息路由状态。

Refresh MRS: Refreshes installed MRS.

刷新MRS:刷新已安装的MRS。

Queue NSLP info: Save NSLP messages in a queue until conditions for their sending are present, e.g., a required MA association is established.

队列NSLP信息:将NSLP消息保存在队列中,直到满足发送条件,例如,建立所需的MA关联。

CheckPeerInfo: The sender of the received data message is matched against the installed peer info in the MRS.

CheckPeerInfo:接收到的数据消息的发送方与MRS中安装的对等方信息相匹配。

Delete MA: Delete/disconnect used MA.

删除MA:删除/断开使用的MA。

Stop using shared MA: Stop using shared MA. If the shared MA is no longer being used by any other MRSs, it depends on the local policy whether it is deleted or kept.

停止使用共享MA:停止使用共享MA。如果共享MA不再被任何其他MRS使用,则取决于本地策略是否将其删除或保留。

Tg_Establish_MA: Triggers establishment of a new MA.

Tg_建立_MA:触发新MA的建立。

Start/Restart a timer variable (Section 5.3): Start/Restart of a certain timer.

启动/重新启动计时器变量(第5.3节):启动/重新启动特定计时器。

Install/Update/Delete UpstreamPeerInfo variable (Section 5.3): Management of upstream peer info in state machine of responding node.

安装/更新/删除UpstreamPerInfo变量(第5.3节):在响应节点的状态机中管理上游对等方信息。

5.2. Common Events
5.2. 常见事件

Rx_Query: Receive of Query message.

接收查询:接收查询消息。

Rx_Response: Receive of Response message.

Rx_响应:接收响应消息。

Rx_Confirm: Receive of Confirm message.

接收确认:接收确认消息。

Rx_Data: Receive of Data message.

接收数据:接收数据信息。

Tg_SendMsg: NSLP/GIST API message from NSLP application that requests transmission of a NSLP message.

Tg_SendMsg:来自NSLP应用程序的NSLP/GIST API消息,请求传输NSLP消息。

Tg_SetStateLifetime(time_period): NSLP/GIST API message providing info for the lifetime of a Routing State (RS), required by the application. "Time_period = 0" represents the cancellation of established RSs/MAs, invoked by the NSLP application.

Tg_SetStateLifetime(时间段):NSLP/GIST API消息,提供应用程序所需的路由状态(RS)的生存期信息。“Time_period=0”表示取消NSLP应用程序调用的已建立RSs/MAs。

Tg_InvalidRoutingState: NSLP/GIST API notification from NSLP application for path change.

Tg_InvalidRoutingState:NSLP应用程序发出的NSLP/GIST API通知,用于路径更改。

Tg_ERROR: General Error event / system level error.

Tg_错误:一般错误事件/系统级错误。

Tg_MA_Established: A new MA has been successfully established.

Tg_MA_成立:新的MA已成功成立。

Tg_MA_Error: Error event with used MA.

Tg_MA_错误:使用MA的错误事件。

Timeout a timer variable (Section 5.3): Timeout of a certain timer.

定时器变量超时(第5.3节):特定定时器的超时。

5.3. Common Variables
5.3. 公共变量

Variables listed in this section are defined as:

本节中列出的变量定义如下:

- Specific information carried in the received messages.

- 接收到的消息中包含的特定信息。

- Conditions that are results of processes not defined in the state machine model.

- 状态机模型中未定义的过程的结果。

State machine logic is based on these general conditions and message parameters.

状态机逻辑基于这些一般条件和消息参数。

The type of mode and destination info is determined by NSLP application parameters and local GIST policy. Here it is represented by the common variables D-mode, C-mode, and MAinfo.

模式和目的地信息的类型由NSLP应用程序参数和本地GIST策略决定。在这里,它由公共变量D-mode、C-mode和MAinfo表示。

C-mode: The message MUST be transmitted in C-mode. This is specified by "Message transfer attributes" set by NSLP application to any of the following values:

C模式:信息必须以C模式传输。这由NSLP应用程序设置的“消息传输属性”指定为以下任意值:

"Reliability" is set to TRUE.

“可靠性”设置为TRUE。

"Security" is set to values that request secure handling of a message.

“安全性”设置为请求安全处理消息的值。

"Local processing" is set to values that require services offered by C-mode (e.g., congestion control) [1].

“本地处理”设置为需要C模式提供的服务的值(例如,拥塞控制)[1]。

D-mode: The message MUST be transmitted in D-mode. This is specified by local policy rules. If the "Message transfer attributes" are not set by NSLP application to any of the following values, then:

D模式:消息必须以D模式传输。这由本地策略规则指定。如果NSLP应用程序未将“消息传输属性”设置为以下任何值,则:

"Reliability" is set to TRUE.

“可靠性”设置为TRUE。

"Security" is set to values that request special security handling of a message.

“安全性”设置为要求对消息进行特殊安全处理的值。

"Local processing" is set to values that require services offered by C-mode [1].

“本地处理”设置为需要C模式提供服务的值[1]。

MAinfo: GIST message parameters describing the required MA or proposed MA, e.g., "Stack-proposal" and "Stack-Configuration-Data" [1].

MAinfo:GIST消息参数,描述所需的MA或建议的MA,例如,“堆栈建议”和“堆栈配置数据”[1]。

NSLPdata: NSLP application data.

NSLPdata:NSLP应用程序数据。

RespCookie: Responder Cookie that is being sent by the responding node with the Response message in case that its local policy requires a confirmation from the querying node.

RespCookie:响应节点在其本地策略需要查询节点确认时发送的响应器Cookie以及响应消息。

ConfirmRequired: Indicator that a Confirm message is required by the local policy rule for installation of a new MRS.

ConfirmRequired:指示本地策略规则需要确认消息才能安装新的MRS。

NewPeer: Indicator that a Response message is received from a new responding peer.

NewPeer:从新的响应对等方接收响应消息的指示符。

MAexist: Indicator that an existing MA will be reused in data transfer between peers.

MAexist:指示现有MA将在对等点之间的数据传输中重用。

UpstreamPeerInfo: Upstream peer info that is saved in an established MRS.

上游对等信息:保存在已建立的MRS中的上游对等信息。

T_Inactive_QNode: Message Routing State lifetime timer in querying node.

T_Inactive_QNode:查询节点中的消息路由状态生存期计时器。

T_Expired_RNode: Message Routing State lifetime timer in responding node.

T_Expired_RNode:响应节点中的消息路由状态生存期计时器。

T_Refresh_QNode: Message Routing State refresh timer in querying node.

T_Refresh_QNode:查询节点中的消息路由状态刷新计时器。

T_No_Response: Timer for the waiting period for Response message in querying node.

T_No_Response:查询节点中响应消息等待时间的计时器。

T_No_Confirm: Timer for the waiting period for Confirm message in responding node.

T_No_Confirm:响应节点中确认消息等待时间的计时器。

No_MRS_Installed: Data sent by responding node via a Response message that indicates loss of Confirm message.

未安装:由响应节点通过响应消息发送的数据,该消息表示确认消息丢失。

6. State Machines
6. 状态机

The following section presents the state machine diagrams of GIST peers. RFC 5972 is published as a .txt file. A supplementary .pdf is being published as well.

下一节介绍了GIST对等点的状态机图。RFC 5972以.txt文件的形式发布。此外,还将发布一份补充文件.pdf。

In the .pdf document, the state machine diagrams are depicted in detail. All state machine information (triggering event, action taken, and variable status) is represented in the diagrams.

在.pdf文档中,详细描述了状态机图。所有状态机信息(触发事件、采取的操作和变量状态)都在图中表示。

In the .txt document, state machine diagrams depict only transition numbers. Following each diagram is a list of state transition descriptions. Complete transition details (triggering event, action taken, and variable status) are given in state transition tables in Appendix A.

在.txt文档中,状态机图仅描述转换编号。每个图后面都是状态转换描述的列表。附录A中的状态转换表中给出了完整的转换详细信息(触发事件、采取的措施和变量状态)。

Please use the .pdf version whenever possible. It is the clearer representation of the state machine. In case of a difference between the two documents, please refer to the .pdf version.

请尽可能使用.pdf版本。它是状态机的更清晰表示。如果两份文件之间存在差异,请参考.pdf版本。

6.1. Diagram Notations
6.1. 图表符号
   +--------------------------------+
   |             STATE              |
   +--------------+-----------------+
                  |
                  |
                ooooo
               o  N  o   Transition N
                ooooo
                  |
                  v
   +--------------------------------+
   |             STATE              |
   +--------------------------------+
        
   +--------------------------------+
   |             STATE              |
   +--------------+-----------------+
                  |
                  |
                ooooo
               o  N  o   Transition N
                ooooo
                  |
                  v
   +--------------------------------+
   |             STATE              |
   +--------------------------------+
        

Figure 1: Diagram notations

图1:图表符号

6.2. State Machine for GIST Querying Node
6.2. GIST查询节点的状态机

The state machine diagram of the GIST querying node is below. Transition descriptions follow.

GIST查询节点的状态机图如下所示。下面是过渡描述。

Please refer to Appendix A.1 for complete transition details (triggering event, action taken, and variable status).

请参考附录A.1了解完整的过渡细节(触发事件、采取的措施和变量状态)。

   +-----------+           ooooo
   | Any State +----------o  18 o
   +-----------+           ooooo
                             |
                             v
   +-----------------------------------------------------------------+
   |                             IDLE                                |
   +--+--------------------------------------------------------------+
      |        ^                                        ^        ^
      |        |                                        |        |
    ooooo    ooooo     ooooo      ooooo      ooooo      |        |
   o  1  o  o  2  o  +o  3  o+  +o  4  o+  +o  5  o+    |        |
    ooooo    ooooo   | ooooo |  | ooooo |  | ooooo |    |        |
      |        |     |       |  |       |  |       |    |        |
      v        |     |       v  |       v  |       v    |        |
   +-----------+-----+----------+----------+--------+   |        |
   |                 Wait Response                  |   |        |
   +--+-------------------------------------+-------+   |        |
      |       ^                             |           |        |
      |       |                             |           |        |
    ooooo     |           ooooo           ooooo       ooooo      |
   o  6  o    |         +o  5  o+        o  7  o     o  8  o     |
    ooooo     |         | ooooo |         ooooo       ooooo      |
      |       |         |       |           |           |        |
      |       |         |       v           v           |        |
      |       |    +----+-------------------------------+---+    |
      |       |    |         Wait MA Establishment          |    |
      |       |    +------------------------------+---------+    |
      |       |          ^                        |              |
      |       |          |                        |              |
      |     ooooo      ooooo        ooooo       ooooo          ooooo
      |    o  9  o    o  11 o     +o  13 o+    o  12 o        o  10 o
      |     ooooo      ooooo      | ooooo |     ooooo          ooooo
      |       |          |        |       |       |              |
      v       |          |        |       v       v              |
   +----------+----------+--------+------------------------------+---+
   |                  Established Downstream MRS                     |
   +--+-----------+-----------+-----------+-----------+--------------+
      |       ^   |       ^   |       ^   |       ^   |       ^
      |       |   |       |   |       |   |       |   |       |
      | ooooo |   | ooooo |   | ooooo |   | ooooo |   | ooooo |
      +o  16 o+   +o  14 o+   +o  15 o+   +o  4  o+   +o  17 o+
        ooooo       ooooo       ooooo       ooooo       ooooo
        
   +-----------+           ooooo
   | Any State +----------o  18 o
   +-----------+           ooooo
                             |
                             v
   +-----------------------------------------------------------------+
   |                             IDLE                                |
   +--+--------------------------------------------------------------+
      |        ^                                        ^        ^
      |        |                                        |        |
    ooooo    ooooo     ooooo      ooooo      ooooo      |        |
   o  1  o  o  2  o  +o  3  o+  +o  4  o+  +o  5  o+    |        |
    ooooo    ooooo   | ooooo |  | ooooo |  | ooooo |    |        |
      |        |     |       |  |       |  |       |    |        |
      v        |     |       v  |       v  |       v    |        |
   +-----------+-----+----------+----------+--------+   |        |
   |                 Wait Response                  |   |        |
   +--+-------------------------------------+-------+   |        |
      |       ^                             |           |        |
      |       |                             |           |        |
    ooooo     |           ooooo           ooooo       ooooo      |
   o  6  o    |         +o  5  o+        o  7  o     o  8  o     |
    ooooo     |         | ooooo |         ooooo       ooooo      |
      |       |         |       |           |           |        |
      |       |         |       v           v           |        |
      |       |    +----+-------------------------------+---+    |
      |       |    |         Wait MA Establishment          |    |
      |       |    +------------------------------+---------+    |
      |       |          ^                        |              |
      |       |          |                        |              |
      |     ooooo      ooooo        ooooo       ooooo          ooooo
      |    o  9  o    o  11 o     +o  13 o+    o  12 o        o  10 o
      |     ooooo      ooooo      | ooooo |     ooooo          ooooo
      |       |          |        |       |       |              |
      v       |          |        |       v       v              |
   +----------+----------+--------+------------------------------+---+
   |                  Established Downstream MRS                     |
   +--+-----------+-----------+-----------+-----------+--------------+
      |       ^   |       ^   |       ^   |       ^   |       ^
      |       |   |       |   |       |   |       |   |       |
      | ooooo |   | ooooo |   | ooooo |   | ooooo |   | ooooo |
      +o  16 o+   +o  14 o+   +o  15 o+   +o  4  o+   +o  17 o+
        ooooo       ooooo       ooooo       ooooo       ooooo
        

Figure 2: State Machine for GIST Querying Node

图2:GIST查询节点的状态机

1**) An initial request from the NSLP application is received, which triggers Query messages requesting either D-mode or C-mode. Depending on the node's local policy, the NSLP data might be piggybacked in the Query requesting D-mode. The Query may carry MAinfo if C-mode transport is needed.

1**)收到来自NSLP应用程序的初始请求,这将触发请求D模式或C模式的查询消息。根据节点的本地策略,NSLP数据可能在请求D模式的查询中被携带。如果需要C模式传输,查询可能会携带MAinfo。

2) T_No_Response timer expires, and the maximum number of retries has been reached. The NSLP application is notified of the GIST peer discovery failure.

2) T_No_Response timer过期,并且已达到最大重试次数。NSLP应用程序将收到GIST对等发现失败的通知。

3) T_No_Response timer expires. The Query is resent.

3) T\u无响应计时器过期。查询已重新发送。

4) A Data message is received. It is checked to see whether its sender matches the installed downstream peer info in the MRS; if so, it is processed. In WaitResponse state, this event might happen in the process of an MA upgrade, when the downstream peer is still not aware of establishment of the new MA.

4) 接收到数据消息。检查其发送方是否与MRS中安装的下游对等方信息匹配;如果是,则进行处理。在WaitResponse状态下,此事件可能发生在MA升级过程中,此时下游对等方仍然不知道新MA的建立。

5) The NSLP application provides data for sending. NSLP data is queued because the downstream peer is not discovered or the required MA is still not established.

5) NSLP应用程序提供用于发送的数据。NSLP数据排队是因为未发现下游对等方或仍未建立所需的MA。

6) A Response message is received. If a D-mode connection is requested or the available MA can be reused for the requested C-mode, the MRS is established.

6) 收到响应消息。如果请求D模式连接,或者可用MA可用于请求的C模式,则建立MRS。

7*) Response message is received. If a C-mode connection must be established, and there is no available MA to be reused, MA establishment is initiated and the system waits for it to be completed.

7*)收到响应消息。如果必须建立C模式连接,并且没有可重用的MA,则启动MA建立,系统等待其完成。

8) MA establishment fails. NSLP application is notified for unsuccessful message delivery.

8) 马的建立失败了。通知NSLP应用程序消息传递失败。

9) The NSLP application provides data for sending, and the requested transport parameters require an upgrade of the established MRS from D-mode/C-mode to C-mode. Or, the NSLP application notifies the GIST instance of the path change. As a result, downstream GIST peer discovery is initiated.

9) NSLP应用程序提供发送数据,请求的传输参数要求将已建立的MRS从D模式/C模式升级到C模式。或者,NSLP应用程序将路径更改通知GIST实例。因此,启动下游GIST对等发现。

10) The MRS lifetime expires or the NSLP application notifies that the MRS is no longer needed. The MRS is deleted. If not needed, the MA is deleted, too. The NSLP application is notified of the MRS change.

10) MRS生存期到期或NSLP应用程序通知不再需要MRS。删除了MRS。如果不需要,MA也会被删除。将MRS更改通知NSLP应用程序。

11*) The path change is detected as a Response message from a new downstream GIST peer is received. A new MA must be established for the requested C-mode.

11*)当接收到来自新下游GIST对等方的响应消息时,检测到路径改变。必须为请求的C模式建立新的MA。

12*) A new MA is established. The MRS is installed. The queued NSLP data is sent.

12*)建立了一个新的MA。安装了MRS。将发送排队的NSLP数据。

13) T_Refresh_QNode timer expires. The Query message is sent.

13) 刷新QNode计时器过期。将发送查询消息。

14) The NSLP application provides data for sending. It is sent via Data message towards the downstream GIST peer.

14) NSLP应用程序提供用于发送的数据。它通过数据消息发送到下游GIST对等方。

15) The Response message from the downstream GIST peer is received. The peer is not changed. The MRS is refreshed (T_Refresh_QNode timer is restarted).

15) 接收到来自下游GIST对等方的响应消息。对等点未更改。MRS被刷新(T_Refresh_QNode计时器重新启动)。

16) The path change is detected as a Response message from a new downstream GIST peer is received. D-mode is requested, or the existing MA can be reused for the requested C-mode.

16) 当接收到来自新下游对等方的响应消息时,检测到路径改变。请求D模式,或者现有MA可用于请求的C模式。

17) The responding peer indicates that it has not received a Confirm message and it has no established upstream MRS. The Confirm message is resent.

17) 响应的对等方表示它没有收到确认消息,并且没有建立上游MRS。确认消息重新发送。

18) A general error or system-level error occurs. The MRS is deleted. If not needed, the MA is deleted, too. The NSLP application is notified of the MRS change.

18) 发生一般错误或系统级错误。删除了MRS。如果不需要,MA也会被删除。将MRS更改通知NSLP应用程序。

Remarks:

评论:

*) Response and Confirm messages might be sent either in D-mode or C-mode, before or after MA establishment, depending on the node's local three-way handshake policy and the availability of the MAs to be reused. See [1] for details.

*)响应和确认消息可以在MA建立之前或之后以D模式或C模式发送,这取决于节点的本地三方握手策略和要重用的MA的可用性。有关详细信息,请参见[1]。

**) Depending on GIST local policy, NSLPdata might be sent as the payload of Query and Confirm messages (piggybacking).

**)根据GIST本地策略,NSLPdata可以作为查询和确认消息的有效负载发送(搭载)。

6.3. State Machine for GIST Responding Node
6.3. GIST响应节点的状态机

The GIST responding node state machine diagram is below. Transition descriptions follow.

下面是节点状态机图。下面是过渡描述。

Please refer to Appendix A.2 for complete transition details (triggering event, action taken, and variable status).

请参阅附录A.2,了解完整的转换详细信息(触发事件、采取的措施和变量状态)。

   +-----------+           ooooo
   | Any State +----------o  14 o
   +-----------+           ooooo
                             |
                             v
   +-----------------------------------------------------------------+
   |                             IDLE                                |
   +--+-------------------------------+------------------------------+
      |                 ^             |                          ^
      |                 |             |                          |
    ooooo               |           ooooo          ooooo       ooooo
   o  1  o              |          o  2  o       +o  4  o+    o  3  o
    ooooo               |           ooooo        | ooooo |     ooooo
      |                 |             |          |       |       |
      |                 |             v          |       v       |
      |                 |   +--------------------+---------------+---+
      |                 |   |             Wait Confirm               |
      |                 |   +---------+------------------+-----------+
      |                 |             |          ^       |       ^
      |                 |             |          |       |       |
      |     ooooo     ooooo         ooooo      ooooo     | ooooo |
      |   +o  13 o+  o  8  o       o  5  o    o  7  o    +o  6  o+
      |   | ooooo |   ooooo         ooooo      ooooo       ooooo
      |   |       |     |             |          |
      v   |       v     |             v          |
    +------+-------------+------------------------+-------------------+
    |                  Established Upstream MRS                       |
    +------+-------------+-------------+------------+-----------------+
           |       ^     |       ^     |       ^     |       ^
           |       |     |       |     |       |     |       |
           | ooooo |     | ooooo |     | ooooo |     | ooooo |
           +o  9  o+     +o  11 o+     +o  12 o+     +o  10 o+
             ooooo         ooooo         ooooo         ooooo
        
   +-----------+           ooooo
   | Any State +----------o  14 o
   +-----------+           ooooo
                             |
                             v
   +-----------------------------------------------------------------+
   |                             IDLE                                |
   +--+-------------------------------+------------------------------+
      |                 ^             |                          ^
      |                 |             |                          |
    ooooo               |           ooooo          ooooo       ooooo
   o  1  o              |          o  2  o       +o  4  o+    o  3  o
    ooooo               |           ooooo        | ooooo |     ooooo
      |                 |             |          |       |       |
      |                 |             v          |       v       |
      |                 |   +--------------------+---------------+---+
      |                 |   |             Wait Confirm               |
      |                 |   +---------+------------------+-----------+
      |                 |             |          ^       |       ^
      |                 |             |          |       |       |
      |     ooooo     ooooo         ooooo      ooooo     | ooooo |
      |   +o  13 o+  o  8  o       o  5  o    o  7  o    +o  6  o+
      |   | ooooo |   ooooo         ooooo      ooooo       ooooo
      |   |       |     |             |          |
      v   |       v     |             v          |
    +------+-------------+------------------------+-------------------+
    |                  Established Upstream MRS                       |
    +------+-------------+-------------+------------+-----------------+
           |       ^     |       ^     |       ^     |       ^
           |       |     |       |     |       |     |       |
           | ooooo |     | ooooo |     | ooooo |     | ooooo |
           +o  9  o+     +o  11 o+     +o  12 o+     +o  10 o+
             ooooo         ooooo         ooooo         ooooo
        

Figure 3: State Machine for GIST Responding Node

图3:GIST响应节点的状态机

1) A Query message is received. The MRS is installed immediately because local policy permits it. The Query message might carry piggybacked NSLP data that will be provided to the NSLP application.

1) 收到一条查询消息。由于当地政策允许,立即安装MRS。查询消息可能携带将提供给NSLP应用程序的附带NSLP数据。

2) A Query message is received. Local policy requires an explicit Confirm message for MRS installation. The Query message might carry piggybacked NSLP data that will be provided to the NSLP application.

2) 收到一条查询消息。本地策略要求MRS安装的明确确认消息。查询消息可能携带将提供给NSLP应用程序的附带NSLP数据。

3) T_No_Confirm timer expires. Note that all cases of lost handshake GIST messages are handled only by the GIST querying node via resend of the Query message.

3) T\u否\u确认计时器过期。请注意,所有丢失握手GIST消息的情况仅由GIST查询节点通过重新发送查询消息来处理。

4) A Query message is received again. This means that the sent Response message has not been received by the upstream GIST peer. The Response message is resent.

4) 再次收到一条查询消息。这意味着上游GIST对等方尚未接收到发送的响应消息。重新发送响应消息。

5) A Confirm message is received that causes installation of the upstream MRS.

5) 收到一条确认消息,导致安装上游MRS。

6) In case of a lost Confirm message, data messages might be received from the upstream GIST node (it is unaware of the lost Confirm message). A Response message indicating the loss of the Confirm is sent back to the upstream GIST node.

6) 在丢失确认消息的情况下,可能会从上游GIST节点接收数据消息(它不知道丢失的确认消息)。指示确认丢失的响应消息被发送回上游GIST节点。

7) A Query message is received (from either an existing upstream GIST node or a new upstream GIST node) with a request to change the used GIST operation mode (from D-mode/C-mode to C-mode, if available; otherwise, it stays the same). Local policy requires an explicit Confirm message for MRS installation.

7) 接收到查询消息(来自现有上游GIST节点或新的上游GIST节点),请求更改使用的GIST操作模式(从D模式/C模式更改为C模式,如果可用;否则保持不变)。本地策略要求MRS安装的明确确认消息。

8) The MRS lifetime expires or the NSLP application notifies that the MRS is no longer needed. The MRS is deleted. If used and not needed, the MA is deleted, too. The NSLP application is notified of the MRS change.

8) MRS生存期到期或NSLP应用程序通知不再需要MRS。删除了MRS。如果已使用且不需要,MA也会被删除。将MRS更改通知NSLP应用程序。

9) The NSLP application provides data for sending. NSLP data is sent if the discovery process is successfully accomplished, or it is queued if a Confirm message is still expected to confirm establishment of an MA.

9) NSLP应用程序提供用于发送的数据。如果发现过程成功完成,则发送NSLP数据;如果仍希望确认消息确认MA的建立,则将其排入队列。

10) A Query message is received. If it is sent from a new upstream GIST node, then there is a path change. Local policy does not need an explicit Confirm message for MRS installation. The MRS data is updated.

10) 收到一条查询消息。如果从新的上游GIST节点发送,则存在路径更改。本地策略不需要MRS安装的明确确认消息。MRS数据已更新。

11) A Query message is received with a request to change the used GIST operation mode (from D-mode/C-mode to C-mode, if available; otherwise, it stays the same). Local policy does not need an explicit Confirm message for MRS installation. The MRS data is updated.

11) 接收到一条查询消息,请求更改使用的GIST操作模式(从D模式/C模式更改为C模式,如果可用;否则保持不变)。本地策略不需要MRS安装的明确确认消息。MRS数据已更新。

12) A Data message is received. Data messages are accepted only if the complete MRS is installed, e.g., the upstream peer info is installed. If not, then a Confirm message is expected and the Data message is not accepted. A Response message indicating the loss of the Confirm is sent back to the upstream GIST node.

12) 接收到数据消息。仅当安装了完整的MRS(例如,安装了上游对等信息)时,才接受数据消息。如果没有,则会出现确认消息,并且不接受数据消息。指示确认丢失的响应消息被发送回上游GIST节点。

13) A Confirm message is received. It accomplishes assignment of an existing MA (or establishment of a new MA) needed for data transfer between peers. The information for the used MA is installed as the upstream peer info.

13) 收到确认消息。它完成对等点之间数据传输所需的现有MA的分配(或建立新MA)。所用MA的信息作为上游对等信息安装。

14) A general error or system-level error occurs. The MRS is deleted. If not needed, the MA is deleted, too. The NSLP application is notified of the MRS change.

14) 发生一般错误或系统级错误。删除了MRS。如果不需要,MA也会被删除。将MRS更改通知NSLP应用程序。

7. Security Considerations
7. 安全考虑

This document does not raise new security considerations. Security considerations are addressed in the GIST specification [1] and in [6].

本文件没有提出新的安全注意事项。GIST规范[1]和[6]中阐述了安全注意事项。

8. Acknowledgments
8. 致谢

The authors would like to thank Christian Dickmann who contributed to refining of the state machine.

作者要感谢Christian Dickmann,他为完善国家机器做出了贡献。

The authors would like to thank Robert Hancock, Ingo Juchem, Andreas Westermaier, Alexander Zrim, Julien Abeille Youssef Abidi, and Bernd Schloer for their insightful comments.

作者要感谢Robert Hancock、Ingo Juchem、Andreas Westermaier、Alexander Zrim、Julien Abeille Youssef Abidi和Bernd Schloer的深刻评论。

9. References
9. 工具书类
9.1. Normative References
9.1. 规范性引用文件

[1] Schulzrinne, H. and R. Hancock, "GIST: General Internet Signalling Transport", RFC 5971, October 2010.

[1] Schulzrinne,H.和R.Hancock,“要点:通用互联网信号传输”,RFC 59712010年10月。

[2] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[2] Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。

9.2. Informative References
9.2. 资料性引用

[3] Vollbrecht, J., Eronen, P., Petroni, N., and Y. Ohba, "State Machines for Extensible Authentication Protocol (EAP) Peer and Authenticator", RFC 4137, August 2005.

[3] Vollbrecht,J.,Eronen,P.,Petroni,N.,和Y.Ohba,“可扩展认证协议(EAP)对等方和认证方的状态机”,RFC 4137,2005年8月。

[4] Institute of Electrical and Electronics Engineers, "Standard for Local and Metropolitan Area Networks: Port-Based Network Access Control", IEEE 802-1X-2004, December 2004.

[4] 电气和电子工程师协会,“局域网和城域网标准:基于端口的网络访问控制”,IEEE 802-1X-2004,2004年12月。

[5] Fajardo, V., Ed., Ohba, Y., and R. Marin-Lopez, "State Machines for the Protocol for Carrying Authentication for Network Access (PANA)", RFC 5609, August 2009.

[5] Fajardo,V.,Ed.,Ohba,Y.和R.Marin Lopez,“承载网络访问认证(PANA)协议的状态机”,RFC 5609,2009年8月。

[6] Tschofenig, H. and D. Kroeselberg, "Security Threats for Next Steps in Signaling (NSIS)", RFC 4081, June 2005.

[6] Tschofenig,H.和D.Kroeselberg,“信号下一步的安全威胁(NSIS)”,RFC 40812005年6月。

Appendix A. State Transition Tables
附录A.状态转换表

The state transition tables below represent the state diagrams in ASCII format. Please use the .pdf version whenever possible. It is the clearer representation of the state machine.

下面的状态转换表以ASCII格式表示状态图。请尽可能使用.pdf版本。它是状态机的更清晰表示。

For each state there is a separate table that lists in each row: - an event that triggers a transition, - actions taken as a result of the incoming event, - and the new state at which the transitions ends.

对于每个状态,每行都有一个单独的表列出:-触发转换的事件,-作为传入事件的结果而采取的操作,-以及转换结束时的新状态。

A.1. State Transition Tables for GIST Querying Node
A.1. GIST查询节点的状态转换表

Please refer to the state machine diagram in Figure 2.

请参考图2中的状态机图。

   -----------
   State: IDLE
   -----------
        
   -----------
   State: IDLE
   -----------
        
   +Transition
   |  |Condition               |Action                   |State
   V--+------------------------+-------------------------+-----------
   1) |tg_SendMsg              |tx_Query                 |Wait
   ** |                        |start T_No_Response      |Response
      |                        |Queue NSLP data          |
      |                        |                         |
   18)|Tg_ERROR                |Delete MRS               |IDLE
      |                        |IF (MA is used)          |
      |                        |  ((Delete MA)||         |
      |                        |  (Stop using shared MA))|
      |                        |Tg_NetworkNotification   |
      |                        |                         |
   ---+------------------------+-------------------------+-----------
        
   +Transition
   |  |Condition               |Action                   |State
   V--+------------------------+-------------------------+-----------
   1) |tg_SendMsg              |tx_Query                 |Wait
   ** |                        |start T_No_Response      |Response
      |                        |Queue NSLP data          |
      |                        |                         |
   18)|Tg_ERROR                |Delete MRS               |IDLE
      |                        |IF (MA is used)          |
      |                        |  ((Delete MA)||         |
      |                        |  (Stop using shared MA))|
      |                        |Tg_NetworkNotification   |
      |                        |                         |
   ---+------------------------+-------------------------+-----------
        
   -----------
   State: WaitResponse
   -----------
        
   -----------
   State: WaitResponse
   -----------
        
   +Transition
   |  |Condition               |Action                   |State
   V--+------------------------+-------------------------+-----------
   2) |(timeout T_No_Response) |tg_MessageStatus         |IDLE
      |&&(MaxRetry)            |                         |
      |                        |                         |
   3) |(timeout T_No_Response) |Tx_Query                 |Wait
      |&&(!MaxRetry)           |restart T_No_Response    |Response
      |                        |                         |
   4) |rx_Data                 |IF(CheckPeerInfo)        |Wait
      |                        |      tg_RecvMsg to Appl.|Response
      |                        |                         |
   5) |tg_SendMsg              |Queue NSLP data          |Wait
      |                        |                         |Response
      |                        |                         |
   6) |rx_Response)||          |Install MRS              |Established
      |(rx_Response(MAinfo)&&  |IF (RespCookie)          |Downstream
      |(MAexist))              |   tx_Confirm(RespCookie)|MRS
      |                        |tx_Data(Queued NSLP data)|
      |                        |                         |
   7) |rx_Response(MAinfo)&&   |tg_Establish_MA          |Wait MA
   *  |(!MAexist)              |(tx_Confirm)             |Establish.
      |                        |                         |
      |                        |                         |
   18)|Tg_ERROR                |(Delete MRS)             |IDLE
      |                        |IF (MA is used)          |
      |                        |  ((Delete MA)||         |
      |                        |  (Stop using shared MA))|
      |                        |Tg_NetworkNotification   |
      |                        |                         |
   ---+------------------------+-------------------------+-----------
        
   +Transition
   |  |Condition               |Action                   |State
   V--+------------------------+-------------------------+-----------
   2) |(timeout T_No_Response) |tg_MessageStatus         |IDLE
      |&&(MaxRetry)            |                         |
      |                        |                         |
   3) |(timeout T_No_Response) |Tx_Query                 |Wait
      |&&(!MaxRetry)           |restart T_No_Response    |Response
      |                        |                         |
   4) |rx_Data                 |IF(CheckPeerInfo)        |Wait
      |                        |      tg_RecvMsg to Appl.|Response
      |                        |                         |
   5) |tg_SendMsg              |Queue NSLP data          |Wait
      |                        |                         |Response
      |                        |                         |
   6) |rx_Response)||          |Install MRS              |Established
      |(rx_Response(MAinfo)&&  |IF (RespCookie)          |Downstream
      |(MAexist))              |   tx_Confirm(RespCookie)|MRS
      |                        |tx_Data(Queued NSLP data)|
      |                        |                         |
   7) |rx_Response(MAinfo)&&   |tg_Establish_MA          |Wait MA
   *  |(!MAexist)              |(tx_Confirm)             |Establish.
      |                        |                         |
      |                        |                         |
   18)|Tg_ERROR                |(Delete MRS)             |IDLE
      |                        |IF (MA is used)          |
      |                        |  ((Delete MA)||         |
      |                        |  (Stop using shared MA))|
      |                        |Tg_NetworkNotification   |
      |                        |                         |
   ---+------------------------+-------------------------+-----------
        
   -----------
   State: Established Downstream MRS
   -----------
        
   -----------
   State: Established Downstream MRS
   -----------
        
   +Transition
   |  |Condition               |Action                   |State
   V--+------------------------+-------------------------+-----------
   4) |rx_Data                 |IF(CheckPeerInfo)        |Established
      |                        |      tg_RecvMsg to Appl.|Downstream
      |                        |                         |MRS
      |                        |                         |
   9) |((tg_SendMsg)&&(C-mode) |tx_Query                 |Wait
      |&&(!MAexist))||         |Queue NSLP data          |Response
      |(tg_MA_error)||         |                         |
      |(tg_InvalidRoutingState)|                         |
      |                        |                         |
   10)|(timeout T_Inactive_    |Delete MRS               |IDLE
      |                QNode)|||IF (MA is used)          |
      |(tg_SetStateLifetime(0))|   (Delete MA)||         |
      |                        |   (Stop using shared MA)|
      |                        |Tg_NetworkNotification   |
      |                        |                         |
   11)|(rx_Response(MAinfo)&&  |((Delete MA)||           |Wait MA
   *  |(NewPeer)&&(!MA_exist)) |(Stop using shared MA))  |Establish.
      |                        |tg_Establish_MA          |
      |                        |(tx_Confirm)             |
      |                        |                         |
   13)|timeout T_Refresh_QNode |tx_Query                 |Established
      |                        |                         |Downstream
      |                        |                         |MRS
      |                        |                         |
   14)|tg_SendMsg              |tx_Data                  |Established
      |                        |restart T_Inactive_QNode |Downstream
      |                        |                         |MRS
      |                        |                         |
   15)|(rx_Response)&&         |Refresh MRS              |Established
      |(!NewPeer)              |restart T_Inactive_QNode |Downstream
     |                        |                         |MRS
      |                        |                         |
   16)|(rx_Response)||         |IF (MA is used)          |Established
      |(rx_Response(Mainfo)&&  |   (Delete MA)||         |Downstream
      |(MAexist)))&&(NewPeer)  |   (Stop using shared MA)|MRS
      |                        |Install MRS              |
      |                        |restart T_Inactive_QNode |
      |                        |IF (RespCookie)          |
      |                        |   tx_Confirm(RespCookie)|
      |                        |                         |
        
   +Transition
   |  |Condition               |Action                   |State
   V--+------------------------+-------------------------+-----------
   4) |rx_Data                 |IF(CheckPeerInfo)        |Established
      |                        |      tg_RecvMsg to Appl.|Downstream
      |                        |                         |MRS
      |                        |                         |
   9) |((tg_SendMsg)&&(C-mode) |tx_Query                 |Wait
      |&&(!MAexist))||         |Queue NSLP data          |Response
      |(tg_MA_error)||         |                         |
      |(tg_InvalidRoutingState)|                         |
      |                        |                         |
   10)|(timeout T_Inactive_    |Delete MRS               |IDLE
      |                QNode)|||IF (MA is used)          |
      |(tg_SetStateLifetime(0))|   (Delete MA)||         |
      |                        |   (Stop using shared MA)|
      |                        |Tg_NetworkNotification   |
      |                        |                         |
   11)|(rx_Response(MAinfo)&&  |((Delete MA)||           |Wait MA
   *  |(NewPeer)&&(!MA_exist)) |(Stop using shared MA))  |Establish.
      |                        |tg_Establish_MA          |
      |                        |(tx_Confirm)             |
      |                        |                         |
   13)|timeout T_Refresh_QNode |tx_Query                 |Established
      |                        |                         |Downstream
      |                        |                         |MRS
      |                        |                         |
   14)|tg_SendMsg              |tx_Data                  |Established
      |                        |restart T_Inactive_QNode |Downstream
      |                        |                         |MRS
      |                        |                         |
   15)|(rx_Response)&&         |Refresh MRS              |Established
      |(!NewPeer)              |restart T_Inactive_QNode |Downstream
     |                        |                         |MRS
      |                        |                         |
   16)|(rx_Response)||         |IF (MA is used)          |Established
      |(rx_Response(Mainfo)&&  |   (Delete MA)||         |Downstream
      |(MAexist)))&&(NewPeer)  |   (Stop using shared MA)|MRS
      |                        |Install MRS              |
      |                        |restart T_Inactive_QNode |
      |                        |IF (RespCookie)          |
      |                        |   tx_Confirm(RespCookie)|
      |                        |                         |
        
   17)|rx_Response(No_MRS_     |tx_Confirm(RespCookie)   |Established
      |              installed)|tx_Data(Queued NSLP data)|Downstream
      |                        |                         |MRS
      |                        |                         |
   18)|Tg_ERROR                |(Delete MRS)             |IDLE
      |                        |IF (MA is used)          |
      |                        |  ((Delete MA)||         |
      |                        |  (Stop using shared MA))|
      |                        |Tg_NetworkNotification   |
      |                        |                         |
   ---+------------------------+-------------------------+-----------
        
   17)|rx_Response(No_MRS_     |tx_Confirm(RespCookie)   |Established
      |              installed)|tx_Data(Queued NSLP data)|Downstream
      |                        |                         |MRS
      |                        |                         |
   18)|Tg_ERROR                |(Delete MRS)             |IDLE
      |                        |IF (MA is used)          |
      |                        |  ((Delete MA)||         |
      |                        |  (Stop using shared MA))|
      |                        |Tg_NetworkNotification   |
      |                        |                         |
   ---+------------------------+-------------------------+-----------
        
   -----------
   State: Wait MA Establishment
   -----------
        
   -----------
   State: Wait MA Establishment
   -----------
        
   +Transition
   |  |Condition               |Action                   |State
   V--+------------------------+-------------------------+-----------
   5) |tg_SendMsg              |Queue NSLP data          |Wait MA
      |                        |                         |Establish.
      |                        |                         |
   8) |tg_MA_error             |Delete MRS               |IDLE
      |                        |tg_MessageStatus         |
      |                        |                         |
   12)|tg_MA_Established       |Install MRS              |Established
   *  |                        |(tx_Confirm)             |Downstream
      |                        |tx_Data(Queued NSLP data)|MRS
      |                        |                         |
   18)|Tg_ERROR                |Delete MRS               |IDLE
      |                        |IF (MA is used)          |
      |                        |  ((Delete MA)||         |
      |                        |  (Stop using shared MA))|
      |                        |Tg_NetworkNotification   |
      |                        |                         |
   ---+------------------------+-------------------------+-----------
        
   +Transition
   |  |Condition               |Action                   |State
   V--+------------------------+-------------------------+-----------
   5) |tg_SendMsg              |Queue NSLP data          |Wait MA
      |                        |                         |Establish.
      |                        |                         |
   8) |tg_MA_error             |Delete MRS               |IDLE
      |                        |tg_MessageStatus         |
      |                        |                         |
   12)|tg_MA_Established       |Install MRS              |Established
   *  |                        |(tx_Confirm)             |Downstream
      |                        |tx_Data(Queued NSLP data)|MRS
      |                        |                         |
   18)|Tg_ERROR                |Delete MRS               |IDLE
      |                        |IF (MA is used)          |
      |                        |  ((Delete MA)||         |
      |                        |  (Stop using shared MA))|
      |                        |Tg_NetworkNotification   |
      |                        |                         |
   ---+------------------------+-------------------------+-----------
        
A.2. State Transition Tables for GIST Responding Node
A.2. GIST响应节点的状态转换表

Please refer to the state machine diagram in Figure 3.

请参考图3中的状态机图。

   -----------
   State: IDLE
   -----------
        
   -----------
   State: IDLE
   -----------
        
   +Transition
   |  |Condition               |Action                   |State
   v--+------------------------+-------------------------+-----------
   1) |rx_Query&&              |tx_Response              |Established
      |(!ConfirmRequired)      |Install MRS              |Upstream
      |                        |IF(NSLPdata)             |MRS
      |                        |     tg_RecvMsg(NSLPdata)|
      |                        |                 to Appl.|
      |                        |                         |
   2) |rx_Query&&              |tx_Response              |Wait
      |(ConfirmRequired)       |start T_No_Confirm       |Confirm
      |                        |IF(NSLPdata)             |
      |                        |     tg_RecvMsg(NSLPdata)|
      |                        |                 to Appl.|
      |                        |                         |
   ---+------------------------+-------------------------+-----------
        
   +Transition
   |  |Condition               |Action                   |State
   v--+------------------------+-------------------------+-----------
   1) |rx_Query&&              |tx_Response              |Established
      |(!ConfirmRequired)      |Install MRS              |Upstream
      |                        |IF(NSLPdata)             |MRS
      |                        |     tg_RecvMsg(NSLPdata)|
      |                        |                 to Appl.|
      |                        |                         |
   2) |rx_Query&&              |tx_Response              |Wait
      |(ConfirmRequired)       |start T_No_Confirm       |Confirm
      |                        |IF(NSLPdata)             |
      |                        |     tg_RecvMsg(NSLPdata)|
      |                        |                 to Appl.|
      |                        |                         |
   ---+------------------------+-------------------------+-----------
        
   -----------
   State: WAIT CONFIRM
   -----------
        
   -----------
   State: WAIT CONFIRM
   -----------
        
   +Transition
   |  |Condition               |Action                   |State
   v--+------------------------+-------------------------+-----------
   3) |timeout T_No_Confirm    |                         |IDLE
      |                        |                         |
   4) |rx_Query&&              |tx_Response              |Wait
      |(ConfirmRequired)       |start T_No_Confirm       |Confirm
      |                        |IF(NSLPdata)             |
      |                        |     tg_RecvMsg(NSLPdata)|
      |                        |                 to Appl.|
      |                        |                         |
   5) |rx_Confirm              |Install Upstream MRS     |Established
      |                        |                         |Upstream
      |                        |                         |MRS
      |                        |                         |
   6) |rx_Data                 |tx_Response(No_MRS_      |Wait
      |                        |               installed)|Confirm
      |                        |                         |
        
   +Transition
   |  |Condition               |Action                   |State
   v--+------------------------+-------------------------+-----------
   3) |timeout T_No_Confirm    |                         |IDLE
      |                        |                         |
   4) |rx_Query&&              |tx_Response              |Wait
      |(ConfirmRequired)       |start T_No_Confirm       |Confirm
      |                        |IF(NSLPdata)             |
      |                        |     tg_RecvMsg(NSLPdata)|
      |                        |                 to Appl.|
      |                        |                         |
   5) |rx_Confirm              |Install Upstream MRS     |Established
      |                        |                         |Upstream
      |                        |                         |MRS
      |                        |                         |
   6) |rx_Data                 |tx_Response(No_MRS_      |Wait
      |                        |               installed)|Confirm
      |                        |                         |
        
   14)|(Tg_ERROR)||            |(Delete MRS)             |IDLE
      |(Tg_MA_Error)           |IF (MA is used)          |
      |                        |  ((Delete MA)||         |
      |                        |  (Stop using shared MA))|
      |                        |Tg_NetworkNotification   |
      |                        |                         |
   ---+------------------------+-------------------------+-----------
        
   14)|(Tg_ERROR)||            |(Delete MRS)             |IDLE
      |(Tg_MA_Error)           |IF (MA is used)          |
      |                        |  ((Delete MA)||         |
      |                        |  (Stop using shared MA))|
      |                        |Tg_NetworkNotification   |
      |                        |                         |
   ---+------------------------+-------------------------+-----------
        
   -----------
   State: Established Upstream MRS
   -----------
        
   -----------
   State: Established Upstream MRS
   -----------
        
   +Transition
   |  |Condition               |Action                   |State
   v--+------------------------+-------------------------+-----------
   7) |(rx_Query)&&            |Delete MRS               |Wait
      |(ConfirmRequired)       |tx_Response              |Confirm
      |                        |start T_No_Confirm       |
      |                        |IF(MA is used)           |
      |                        |   (Delete MA)||         |
      |                        |   (Stop using shared MA)|
      |                        |IF(NSLPdata)             |
      |                        |   tg_RecvMsg(NSLPdata)  |
      |                        |                 to Appl.|
      |                        |                         |
   8) |(timeout T_Expire_RNode)|Delete MRS               |IDLE
      |||                      |tg_NetworkNotification   |
      |(tg_SetStateLifetime(0))|IF(MA is used)           |
      |                        |   (Delete MA)||         |
      |                        |   (Stop using shared MA)|
      |                        |                         |
   9) |tg_SendMsg              |IF(!UpstreamPeerInfo)    |Established
      |                        |    Queue NSLP data      |Upstream
      |                        |ELSE tx_Data             |MRS
      |                        |                         |
   10)|rx_Query                |IF (NewPeer)             |Established
      |                        |  Update UpstreamPeerInfo|Upstream
      |                        |tx_Response              |MRS
      |                        |restart T_Expire_RNode   |
      |                        |                         |
   11)|rx_Query(MAinfo)&&      |Delete UpstreamPeerInfo  |Established
      |(!ConfirmRequired)      |restart T_Expire_RNode   |Upstream
      |                        |tx_Response(MAinfo)      |MRS
      |                        |                         |
        
   +Transition
   |  |Condition               |Action                   |State
   v--+------------------------+-------------------------+-----------
   7) |(rx_Query)&&            |Delete MRS               |Wait
      |(ConfirmRequired)       |tx_Response              |Confirm
      |                        |start T_No_Confirm       |
      |                        |IF(MA is used)           |
      |                        |   (Delete MA)||         |
      |                        |   (Stop using shared MA)|
      |                        |IF(NSLPdata)             |
      |                        |   tg_RecvMsg(NSLPdata)  |
      |                        |                 to Appl.|
      |                        |                         |
   8) |(timeout T_Expire_RNode)|Delete MRS               |IDLE
      |||                      |tg_NetworkNotification   |
      |(tg_SetStateLifetime(0))|IF(MA is used)           |
      |                        |   (Delete MA)||         |
      |                        |   (Stop using shared MA)|
      |                        |                         |
   9) |tg_SendMsg              |IF(!UpstreamPeerInfo)    |Established
      |                        |    Queue NSLP data      |Upstream
      |                        |ELSE tx_Data             |MRS
      |                        |                         |
   10)|rx_Query                |IF (NewPeer)             |Established
      |                        |  Update UpstreamPeerInfo|Upstream
      |                        |tx_Response              |MRS
      |                        |restart T_Expire_RNode   |
      |                        |                         |
   11)|rx_Query(MAinfo)&&      |Delete UpstreamPeerInfo  |Established
      |(!ConfirmRequired)      |restart T_Expire_RNode   |Upstream
      |                        |tx_Response(MAinfo)      |MRS
      |                        |                         |
        
   12)|rx_Data                 |IF(UpstreamPeerInfo)     |Established
      |                        |    (tg_RecvMsg to Appl.)|Upstream
      |                        |    &&(restart_T_Expire_ |MRS
      |                        |                   RNode)|
      |                        |ELSE                     |
      |                        |    tx_Error(No_MRS_     |
      |                        |               installed)|
      |                        |                         |
   13)|rx_Confirm              |Install UpstreamPeerInfo |Established
      |                        |tx_Data(queued_NSLP_data)|Upstream
      |                        |                         |MRS
      |                        |                         |
   14)|(Tg_ERROR)||            |(Delete MRS)             |IDLE
      |(Tg_MA_Error)           |IF (MA is used)          |
      |                        |  ((Delete MA)||         |
      |                        |  (Stop using shared MA))|
      |                        |Tg_NetworkNotification   |
      |                        |                         |
   ---+------------------------+-------------------------+-----------
        
   12)|rx_Data                 |IF(UpstreamPeerInfo)     |Established
      |                        |    (tg_RecvMsg to Appl.)|Upstream
      |                        |    &&(restart_T_Expire_ |MRS
      |                        |                   RNode)|
      |                        |ELSE                     |
      |                        |    tx_Error(No_MRS_     |
      |                        |               installed)|
      |                        |                         |
   13)|rx_Confirm              |Install UpstreamPeerInfo |Established
      |                        |tx_Data(queued_NSLP_data)|Upstream
      |                        |                         |MRS
      |                        |                         |
   14)|(Tg_ERROR)||            |(Delete MRS)             |IDLE
      |(Tg_MA_Error)           |IF (MA is used)          |
      |                        |  ((Delete MA)||         |
      |                        |  (Stop using shared MA))|
      |                        |Tg_NetworkNotification   |
      |                        |                         |
   ---+------------------------+-------------------------+-----------
        

Authors' Addresses

作者地址

Tseno Tsenov Sofia, Bulgaria

保加利亚索非亚Tseno Tsenov

   EMail: tseno.tsenov@mytum.de
        
   EMail: tseno.tsenov@mytum.de
        

Hannes Tschofenig Nokia Siemens Networks Linnoitustie 6 Espoo 02600 Finland

Hannes Tschofenig诺基亚西门子网络公司芬兰Linnoitustie 6 Espoo 02600

   EMail: Hannes.Tschofenig@nsn.com
        
   EMail: Hannes.Tschofenig@nsn.com
        

Xiaoming Fu (editor) University of Goettingen Computer Networks Group Goldschmidtstr. 7 Goettingen 37077 Germany

萧明付(编辑)Goet亭n大学计算机网络集团GooStMultTr.7戈廷根37077德国

   EMail: fu@cs.uni-goettingen.de
        
   EMail: fu@cs.uni-goettingen.de
        

Cedric Aoun Consultant Paris, France

法国巴黎塞德里克奥恩咨询公司

   EMail: cedaoun@yahoo.fr
        
   EMail: cedaoun@yahoo.fr
        

Elwyn B. Davies Folly Consulting Soham, Cambs, UK

Elwyn B.Davies Folly Consulting Soham,Cambs,英国

   Phone: +44 7889 488 335
   EMail: elwynd@dial.pipex.com
        
   Phone: +44 7889 488 335
   EMail: elwynd@dial.pipex.com