基於文件傳輸的UDP協議分析(1)

網絡通信與數據交換已經成爲現代軟件必備的基礎功能。

目前公司上下位機的網絡通信均採用TCP/ UDP協議進行數據交換和控制。這種低層次的網絡通信協議在小數據量,少互交的領域有着較大的優勢。但是隨着網絡功能需求的日趨旺盛,TCP/UDP協議日漸無法滿足需求,其弊端日漸明顯


*TCP/UDP通信編程可分爲:

1  通信控制層

通信控制層負責網絡的配置,連接,發送數據, 接受數據響應, 中斷等服務


2數據處理層

    數據處理層主要負責數據的封包,解包,校驗等工      作。簡稱: “數據協議的程序化過程”



1  操作數據       2 狀態數據
3 校驗數據        4 標示數據   
5  加密數據  (不常用)


TCP/UDP 協議的弊端

 十六進制數據協議包無法重用。每開發一個軟件,均需重新定義一次數據協議包,完成數據封包,解包的工作。處理過程非常抽象和繁瑣, 開發前學習成本極高

*通信控制程序與數據處理程序的高耦合性。可拓展性極差,軟件開發缺乏靈活性

*上位機開發與下位機開發過度依賴性。上位機與下位機程序耦合性過高, 導致出現問題難以理清責任,難以分析問題的原因和出處


大數據量, 多命令流的複雜性。 一旦通信數據量增減,命令規則增加, 軟件的開發難度急劇上升。調試分析bug難度過高



基於文件傳輸的UDP協議分析

問題一:數據協議過於複雜和抽閒,無法重用
由於TCP/UDP 通過字符流的方式進行通信,其可承載的數據信息量非常有限, 表達方式過於抽象。有什麼辦法解決這個問題呢?

方案:
借鑑web的數據通信方式,直接採用json文件傳輸的方式進行數據交換,徹底廢除需要人爲定製抽象數據協議的過程。

json 特性分析:

Json文件面向對象,易於閱讀的特性,讓數據的讀取寫入,以及通信過程中排錯 變得非常簡單
JSON是一種輕量級的數據交換格式。
易於人閱讀和編寫。同時也易於機器解析和生成JSON採用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C,C++, C#, Java,, Python等)。這些特性使JSON成爲理想的數據交換語言。



JSON建構於兩種結構
“名稱/值”對的集合。不同的語言中,它被理解爲對象,紀錄,結構,字典,哈希表,有鍵列表,或者關聯數組。



問題二:
網絡控制層和數據通信層高度耦合,軟件功能拓展,修改非常困難。 數據協議的增加, 會導致 網絡控制層的複雜度急劇增加

解決方案:

徹底廢除網絡控制層,直接將網絡控制層抽象爲網絡接口,將網絡控制直接封裝到json文件中,軟件接受json文件後,直接將更加json中提供的下一步操作命令,執行操作。  






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章