無線通訊協議設計的幾點要素
對於無線通訊協議的設計要注意以下幾點:
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
相關文章
- 通訊協議協議
- 如何設計一個好的通訊網路協議協議
- Visual C++設計UDP協議通訊示例C++UDP協議
- Redis 通訊協議Redis協議
- HTTP通訊協議HTTP協議
- Mysql通訊協議MySql協議
- MQ通訊協議MQ協議
- web通訊協議Web協議
- HTTP協議的通訊框架HTTP協議框架
- WLAN常用的通訊協議協議
- 程式設計幾點建議程式設計
- 網路通訊協議協議
- Dubbo-通訊協議協議
- 串列埠通訊協議串列埠協議
- 基於 Netty 的可插拔業務通訊協議的實現「1」協議描述及基本訊息物件設計Netty協議物件
- 主流無線通訊技術盤點
- 網路通訊協議-ICMP協議詳解!協議
- 網路通訊協議-TCP協議詳解!協議TCP
- 網路通訊協議-HTTP協議詳解!協議HTTP
- 網路通訊協議-SMTP協議詳解!協議
- 基於Netty實現自定義訊息通訊協議(協議設計及解析應用實戰)Netty協議
- 無線通訊
- 輕量通訊協議 --- MQTT協議MQQT
- 通訊協議:HTTP、TCP、UDP協議HTTPTCPUDP
- 15. SPI通訊協議協議
- IIC通訊協議筆記協議筆記
- SPI通訊協議筆記協議筆記
- 陌陌通訊協議的學習協議
- 無線通訊模組透過TCP/IP協議實現與PC端的資料傳輸TCP協議
- 無線通訊在智慧公交系統上的設計應用
- 給新手程式設計師的幾點建議程式設計師
- 倍福ADS協議通訊協議
- 通訊協議之序列化協議
- 快速理解網路通訊協議協議
- 工業通訊協議(一)- CAN協議
- Modbus通訊協議的壓力測試協議
- 通訊協議protobuf的原理與實現協議
- Profibus協議轉profinet協議閘道器模組連線電磁閥通訊案例協議