基于文件传输的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中提供的下一步操作命令,执行操作。

时间: 2024-08-01 22:45:22

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

TCP与UDP协议分析

1 案例1:TCP与UDP协议分析1.1 问题1.通过抓包分析TCP与UDP的封装格式2.通过抓包分析TCP三次握手1.2 方案1.实验环境由两台主机PC1和PC2组成,PC1使用宿主机,PC2使用VMWare虚拟机,确保两台主机通信正常(需要关闭PC2的防火墙)2.在PC1上运行科来进行抓包3.在PC1上通过远程桌面访问PC2,然后在PC1上分析数据包,如图-1所示.1.3 步骤实现此案例需要按照如下步骤进行. 1.第一次握手,如图-2所示. 2.第二次握手,如图-3所示.3.第三次握手,如图

OSI模型第四层传输层--UDP协议

1.udp协议 UDP是OSI参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成[2]  ,提供面向事务的简单不可靠信息传送服务.UDP 协议基本上是IP协议与上层协议的接口.UDP协议适用端口分别运行在同一台设备上的多个应用程序. UDP提供了无连接通信,且不对传送数据包进行可靠性保证,适合于一次传输少量数据,UDP传输的可靠性由应用层负责.常用的UDP端口号有: 应用协议 端口号DNS 53,TFTP 69,SNMP 161 2.tc

文件传输——TCP/IP协议介绍总结

一.链路层 数据链路层的工作特性: 1.为IP模块发送和接收IP数据报2.为ARP模块发送ARP请求和接收ARP应答(ARP:地址解析协议,将IP地址转换成MAC地址)3.为RARP发送RARP请求和接收RARP应答 链路层的主要工作就是对电信号进行分组并形成具有特定意义的数据帧,然后以广播的形式通过物理介质发送给接收方. 二.网络层 网络层引入了三个协议,分别是IP协议.ARP协议.路由协议.IP协议能判断发送者和接收者的两台主机是否属于同一个子网:ARP协议能使发送者知道接收者的MAC地址:

(传输层)UDP协议

目录 数据单位特点具体实现要求UDP首部格式发送UDP请求的客户端图释 数据单位 UDP 传送的数据单位协议是 UDP 报文或用户数据报 特点 UDP 是无连接的,即发送数据之前不需要建立连接 UDP 使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制 UDP 是面向报文的.UDP 没有拥塞控制,很适合多媒体通信的要求 UDP 支持一对一.一对多.多对一和多对多的交互通信 UDP 的首部开销小,只有 8 个字节 具体实现 发送方 UDP 对应用程序交下来的报文,在添加首部后就向下交付 I

TCP协议和UDP协议区别

tcp协议:可靠的.面向连接的协议(eg:打电话).传输效率低全双工通信(发送缓存&接收缓存).面向字节流.使用TCP的应用:Web浏览器:文件传输程序 udp协议:不可靠的.无连接的服务,传输效率高(发送前时延小),一对一.一对多.多对一.多对多.面向报文(数据包),尽最大努力服务,无拥塞控制.使用UDP的应用:域名系统 (DNS):视频流:IP语音(VoIP) 在tcp协议下,是基于连接的,为了保证数据安全,存在一个三次握手,四次挥手的过程,而udp协议无连接的,所以没有这过程. 三次握手:

MiS603开发板 第十四章 UDP协议网络传输

作者:MiS603开发团队 日期:20150911 公司:南京米联电子科技有限公司 论坛:www.osrc.cn 网址:www.milinker.com 网店:http://osrc.taobao.com EAT博客:http://blog.chinaaet.com/whilebreak 博客园:http://www.cnblogs.com/milinker/ MiS603开发板 第十四章 UDP协议网络传输 本实验将实现FPGA 芯片和PC 之间进行千兆以太网数据通信, 通信协议采用Ether

支持断点续传的大文件传输协议

文件传输协议(FTP)是一个被广泛应用的网络协议,FTP技术作为文件传输的重要手段,在数据通信领域一直发挥着举足轻重的作用,不支持断点续传,是Internet上最早也是最广泛使用的应用之一. 从1971年A.K.Bhushan提出第一个FTP协议版本(RFC114)到现在,人们对FTP的应用已经历了40余年的时间,同时,许多基于FTP协议的数据传输软件也应运而生.如Windows操作系统下经常使用的支持FTP协议的软件有:CuteFTP.FlashFXP.迅雷(Thunder).快车(Flash

TCP/UDP协议、理解三次握手四次挥手、Socket

一.什么是socket? 中文名叫套接字,是对底层的 TCP IP UDP 等网络协议进行封装,使得上层的应用程序开发者,不用直接接触这对复杂,丑陋的协议. 在程序员的言论,他就是一个封装好的模块,要完成网络通讯,只需要使用系统提供的socket模块就行,我们通过调用模块中已经实现的方法建立两个进程之间的 连接和通信. 了解socket层: 二.套接字的发展史 套接字起源于 20 世纪 70 年代加利福尼亚大学伯克利分校版本的 Unix,即人们所说的 BSD Unix. 因此,有时人们也把套接字

BT协议分析(1)—1.0协议

简述 BT下载是采用P2P的下载方式,下载的大致形式采用如下图所示,处于图示中心的称为Tracker服务器,其余称为Peer.   缺点 1.资源的安全性 2.资源的实效性(没有上传者则BT也将失效) 3.版权 协议分析 对BT协议(1.0)的分析主要包含4个部分: 1.种子文件的分析 2.同Tracker服务器的通讯(采用HTTP协议) 3.同其他peer(配合/协同者)的通讯(采用TCP协议) 4.总结 分析前的了解 在这些分析之前,需要先了解两点BT协议采用的基础: 1.BT协议中采用的单