TR069協議小結

    也稱爲CWMP,是在Internet網上經過wan口控制通訊終端設備的協議。其協議流程以下圖所示: 數組

具體網上有不少資料。其主要的兩個內容是:HTTP Client模型、DATA模型。 session

 

    HTTP Client模型是精華,也是比較複雜的。目前較爲可靠的開源庫有libevent,網上有基於該開源庫編寫的Client模型,名字好像叫evcpe。在公司用的這套代碼,我只是大概學習了下,很複雜。 學習

    上圖所示的是協議的一個完整的session,該session由終端設備發起,且不停地重複循環該session。固然,若ACS端沒有指令(或終端沒有更新等),那麼session到Inform後就會終止。而後等待開始下一個session。 測試

終端設備主動發起協議session的方法有如下幾種:(如下client即終端設備) spa

  1. client週期性的主動發起,即一個週期發起一次session;
  2. client端的參數有更新(如LAN端配置、手動配置等),會主動發起session;
  3. client在另外一個端口上維護一個creq監聽,當ACS端要求配置時,迴向client的creq端口發請求,而後client被動發起session。
  4. 。。。。。。或者還有其餘的吧。。。。。。

把這些方法揉和在一塊兒,實現起來時很複雜的,那套event的代碼,我最終也沒能全看明白,之後有機會再看吧。從測試的結果看,好像有這幾種方法,不過也可能不對,姑且這樣認爲。 orm

 

DATA模型也是很重要的,大部分參數模型由TR098協議規定好了,只要照樣子作就行。要作的工做主要兩個方面: xml

  1. 在終端本地,用一種方式來表示數據,與ACS端的數據對應。這裏咱們用的是xml文件,按照tr098把參數寫在xml文件中,方便參看。系統啓動後,讀取該xml文件,並在內核中創建一個龐大的相似於數組的結構存儲這些參數。而且在該數組結構和xml文件間實現一種相似文件系統中的磁盤更新的機制。
  2. 是各類get/set做用到實際的系統中去。這裏要根據各平臺的特性來作了。

 

要講的也不多,有時間仍是去看看那個代碼,應該是頗有價值的。blog

相關文章
相關標籤/搜索