您的位置:首页 > 理论基础 > 计算机网络

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

2015-02-09 16:56 211 查看
网络通信与数据交换已经成为现代软件必备的基础功能。

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



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息