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的消息;