码迷,mamicode.com
首页 > 其他好文 > 详细

基于文件传输的UDP协议分析(1)

时间:2015-02-09 18:29:53      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:c++   解决方案   大数据   网络   通信   

网络通信与数据交换已经成为现代软件必备的基础功能。

目前公司上下位机的网络通信均采用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中提供的下一步操作命令,执行操作。  

技术分享

技术分享


基于文件传输的UDP协议分析(1)

标签:c++   解决方案   大数据   网络   通信   

原文地址:http://blog.csdn.net/leos_blog/article/details/43672543

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!