2.5.6 CAPWAP状态机详解
2.5.6.1 Start to Idle
这个状态变迁发生在设备初始化完成。
¢ WTP: 开启CAPWAP状态机。
¢ AC: 开启CAPWAP状态机。
2.5.6.2 Idle to Discovery
这个状态变迁发生是为了支持CAPWAP发现进程。
¢ WTP:
WTP进入发现状态是为了优先去传输第一个Discovery Request message。在进入这个状态之前,WTP设置发现DiscoveryInterval timer,将DiscoveryCount counter为0.同时清理以前的发现过程中可能会从AC收到的所有信息。
¢ AC:
由发现线程执行,且发生在收到一个发现请求报文的时候。此时,AC需要给这个报文响应一个Discovery Response message 。
2.5.6.3 Discovery to Discovery
在这个发现状态,WTP决定连接哪个AC。
¢ WTP:
这个状态变迁发生在发现DiscoveryInterval timer触发的时候。对于这个事件的每次变迁,DiscoveryCount counter会递增。一旦WTP发送了Discovery Request message,WTP重启DiscoveryInterval timer。
¢ AC:
对于AC来说,这个状态变迁是无效的。
2.5.6.4 Discovery to Idle
当发现过程完毕的时候,AC的发现线程将会触发这个变迁。
¢ WTP:
对于WTP来说,这个状态变迁是无效的。
¢ AC:
这个状态变迁由AC发现线程执行,当发现线程传输了一个给Discovery Request回送了一个Discovery Response的时候,就会触发这个过程。
2.5.6.5 Discovery to Sulking
当WTP发现AC失败的时候会触发这个状态变迁。
¢ WTP:
发生在DiscoveryInterval timer超时的时候。 且此时DiscoveryCount变量等于MaxDiscoveries 。在进入这个状态之前,WTP必须开启SilentInterval timer 。当在Sulking状态的时候,所有收到的CAPWAP协议报文都会被忽略。
¢ AC:
对于AC来说,这个状态变迁是无效的。
2.5.6.6 Sulking to Idle
这个状态变迁发生在WTP需要重新启动发现过程的时候。
¢ WTP:
当SilentInterval timer触发,WTP进入到这个状态。FailedDTLSSessionCount, DiscoveryCount和FailedDTLSAuthFailCount计数器被清零。
¢ AC:
对于AC来说,这是一个无效的状态变迁。
2.5.6.7 Sulking to Sulking
sulking状态提供安静时段,最小化DOS攻击的危险。
¢ WTP:
在sulking状态收到的所有来自AC得报文都会被忽略。
¢ AC:
对于AC来说,这是一个无效的状态变迁
2.5.6.8 Idle to DTLS Setup
这个状态变迁发生在跟对端建立安全的DTLS会话的时候。
¢ WTP:
WTP通过调用DTLSStart命令来初始化这个状态变迁,开始与选定AC进行DTLS会话,且开启WaitDTLS timer。此时,忽略了发现过程,假设WTP有本地配置的AC。
¢ AC:
从start状态进入Idle状态,监听线程自动变迁至DTLS Setup状态,调用DTLSListen命令,并且开启WaitDTLS timer。
2.5.6.9 Discovery to DTLS Setup
¢ WTP:
WTP调用DTLSStart命令来初始化这个变迁,开始与指定AC建立DTLS会话。
¢ AC:
对于AC来说,这是一个无效的状态变迁。
2.5.6.10 DTLS Setup to Idle
当DTLS连接失败的时候发生这个状态变迁。
¢ WTP:
此时WTP接收到DTLSEstablishFail通知,并且FailedDTLSSessionCount或者FailedDTLSAuthFailCount counter 没有达到MaxFailedDTLSSessionRetry值。这个错误通知终止了DTLS会话的建立。当接收到这个通知,FailedDTLSSessionCount计时器会递增。
这个状态变迁也会发生在WaitDTLS timer超时的情况下。
¢ AC:
对于AC来说,这是一个无效的状态变迁。
2.5.6.11 DTLS Setup to Sulking
当重复尝试建立DTLS连接失败的时候,会发生此状态变迁。
¢ WTP:
当FailedDTLSSessionCount或者FailedDTLSAuthFailCount到达最大值MaxFailedDTLSSessionRetry的时候,WTP进入此状态变迁。进入这个状态,WTP必须开启SilentInterval定时器,且所有接收到的CAPWAP和DTLS协议报文将会被忽略。
¢ AC:
对于AC来说,这是一个无效的状态变迁。
2.5.6.12 DTLS Setup to DTLS Setup