無線通訊協議設計的幾點要素

mgoann發表於2020-04-06

對於無線通訊協議的設計要注意以下幾點:

1.儘量使用少量的內容表達大量的資訊。無線同步協議的一個特點就是要節省頻寬,因為對於PC和移動終端來說,致命的不足在於無線通訊的效率不高,對於傳輸大流量的內容或是多媒體資訊顯得力不從心。如下<Name></Name>標籤表達名字的含義,完全可以使用<N></N>來替代,只要能夠說明含義即可,但也不要過於簡潔,過於簡潔會使人難以理解或是帶來歧義。使用簡潔的標籤來表達含義,使得傳輸流量減小,提高效率。

2.需要有會話的概念。在終端與服務端進行互動,往往一次完整的互動需要傳送大量的訊息,而終端的處理能力有限,一下下發太多的資訊,會給終端的處理帶來困擾。所以大部分的終端在有限的能力下,會將一次互動的完成資訊分成多個步驟來完成,所以服務端必須支援會話,以便不同的終端能力識別自己的會話。具體的實現可以使用全域性唯一的sessinid來完成。終端初次請求不帶sessionid,後續會話應將sessionid帶上,以便伺服器區分會話。會話的格式應該是模組id+伺服器IP和時間來完成。伺服器每次響應應下發URL+sessionid。會話是否結束應該用特定的標籤來表達,如<Final></Final>。

3.保證會話的順序應使用<Msgid></Msgid>來區分會話的順序和階段。無線同步的特點導致多個資訊包,不會有序到達,所以需要使用msgid來標識訊息的順序,保證事務一致性。

4.終端應將裝置能力資訊上送服務端,以便服務端根據不同的裝置能力來合適處理。不同的終端的裝置能力是有很大的區別的,裝置的能力包括記憶體能力和最大解析訊息長度。

5.儘量使用GZIP壓縮方式傳輸。

6.資料無關性。即協議只負責雙方的互動過程,而不表達具體的資料。這樣的協議有利於擴充套件。如簡訊的上傳和下載協議,不應該將簡訊的表達定義到協議中。<UpDataSms></UpDataSms>這樣的協議定出來只適合傳輸簡訊,而如果後續要擴充套件傳輸視訊或者是圖片只能通過新增協議的方式來完成。<Sync><Sender></Sender><Receiver></Receiver><Time><Data></Data></Sync>這樣的協議很利於擴充套件,因為協議和具體資料的表達完全獨立,後續擴充套件很方便。

 

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/mgoann/archive/2010/01/03/5125406.aspx

相關文章