無線通訊協議設計的幾點要素
對於無線通訊協議的設計要注意以下幾點:
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
相關文章
- 如何設計一個好的通訊網路協議協議
- 通訊協議協議
- 程式設計幾點建議程式設計
- modbus通訊協議協議
- web通訊協議Web協議
- HTTP通訊協議HTTP協議
- Redis 通訊協議Redis協議
- WLAN常用的通訊協議協議
- HTTP協議的通訊框架HTTP協議框架
- 基於Netty實現自定義訊息通訊協議(協議設計及解析應用實戰)Netty協議
- 網路通訊協議協議
- Dubbo-通訊協議協議
- 串列埠通訊協議串列埠協議
- 網路通訊協議-ICMP協議詳解!協議
- 網路通訊協議-TCP協議詳解!協議TCP
- 網路通訊協議-HTTP協議詳解!協議HTTP
- 網路通訊協議-SMTP協議詳解!協議
- IIC通訊協議筆記協議筆記
- SPI通訊協議筆記協議筆記
- 輕量通訊協議 --- MQTT協議MQQT
- 15. SPI通訊協議協議
- 倍福ADS協議通訊協議
- 無線通訊在智慧公交系統上的設計應用
- 【無線通訊篇 | Zstack協議棧】CC2530 Zigbee Zstack協議棧組網專案及詳細講解篇協議
- Profibus協議轉profinet協議閘道器模組連線電磁閥通訊案例協議
- 無線通訊模組透過TCP/IP協議實現與PC端的資料傳輸TCP協議
- UDP協議網路Socket程式設計(java實現C/S通訊案例)UDP協議程式設計Java
- 通訊協議protobuf的原理與實現協議
- 工業通訊協議(一)- CAN協議
- 快速理解網路通訊協議協議
- TCP協議服務端和客戶端的連線與通訊TCP協議服務端客戶端
- 通訊協議和網路協議有什麼區別協議
- WebRTC點對點通訊架構設計Web架構
- Java:基於TCP協議網路socket程式設計(實現C/S通訊)JavaTCP協議程式設計
- 工業4G插卡無線路由器解決方案串列埠轉網口通訊TCP/IP協議與UDP協議的區別路由器串列埠TCP協議UDP
- Java程式設計架構深入解析-RPC訊息協議設計Java程式設計架構RPC協議
- QT使用 http 協議通訊的實現示例QTHTTP協議
- zmq通訊協議的實現,又稱zeromqMQ協議