OpenCAPWAP在AC上采用多线程对AP进行管理,如下图所示
1、AC在启动后创建一个receiver线程用于接收WTP的数据包;
2、该线程获取报文的源地址并核查是否是一个已经存在的会话,如果是个未知的WTP发送的报文且是Discovery Request,直接回复Discovery Response消息;
3、如果该消息是Clinet Hello,创建一个线程用于建立DTLS会话,也就是说一个WTP会话对应一个线程;
4、如果是个已经存在的会话,直接把消息送到对应的线程进行处理。
OpenCAPWAP在AP上采用三个线程完成业务处理,如下图所示:
1、在Discovery阶段,只有一个主线程和AC进行通信;
2、在接收到Discovery Response消息并选择了一个AC后,另一个Receiver线程被创建,这个线程发送Client Hello建立DTLS会话,其它消息不在该线程中发送;
3、主线程和接收线程共享和WTP和AC交互的数据链表;
4、第三个线程用于接收来自STA的消息;