以下状态图表代表了一个WTP-AC会话的生命周期;CAPWAP协议对DTLS的使用。致使两名义上并列独立的状态机制紧密地联系在一起。DTLS状态机制和CAPWAP状态机制是以Commands和notification组成的API实现关联的。一些DTLS状态机制里状态的切换由CAPWAP状态机制里的一些指令触发。类似的,一些CAPWAP状态机制里的切换是由DTLS状态机制下的通告消息触发的。
Figure 4: CAPWAP Integrated State Machine
上图所示的CAPWAP状态机,AC和WTP都采用了。为防状态未被共享(比如,未在AC或WTP中的某一个中实施),以下状态转换描述中队此进行了明确的声明。所定义的每一种单一状态,都只允许收发特定的消息。CAPWAP控制消息定义指定了消息在什么状态下有效(或者可以说,定义了特定状态下的有效消息)。
因为一个WTP只与一台AC通信,因此单台WTP只有一个CAPWAP状态机实例。AC上的状态机的运行与WTP不同,因为一台AC会与很多WTP通讯。AC使用了“三线程”的概念。注意:这里的“线程”这个词并非表示AC实现时必须使用线程技术,但这是一种实施AC state machine 的可能/可行方式。
Listener thread: AC的listener thread通过DTLSListen指令处理入站DTLS会话建立请求。一旦建立,listener thread就在DTLS Setup state启动。一旦一个DTLS会话被确认生效(这发生在state machine 进入authorize状态),listener thread就会创建一个与特定WTP会话相关的服务进程和状态相关信息(state context)。Figure 4中的state machine转换以数字表示。AC保护自身以防来自no-authenticated帧中存在的各种攻击很有必要。
Discovery thread:AC的Discovery thread负责接收、响应Discovery request消息。Figure 4中的state machine转换以数字表示。注意:Discovery thread不会单独为每一个WTP维护独立的context 信息,而只整体上维护一个state context。AC保护自身以防来自no-authenticated帧中存在的各种攻击很有必要。
Service Thread:AC的Service Thread负责处理每个WTP的状态并且每个WTP连接都存在这样一个线程。当到达(进入)授权状态后,Service Thread将会被listener thread创建。当被创建后,Service thread会从listener thread继承一份state machine context的一份信息拷贝。一旦与WTP的通信完成,service thread就会被终结。所有与其相关的资源都会被释放。Figure 4中的state machine transitions以字母和标点符号表示。
