本发明涉及文件传输技术领域,尤其涉及一种占用资源少且具有高可靠性的文件传输系统及其方法。
背景技术:
TCP是一种传输可靠、无拥塞、无丢包的一种面相连接的传输协议,所以现在文件传输技术基本都是基于TCP协议的传输方式。但是TCP协议对系统资源要求多,对于很多特殊用途设备,硬件无法配备硬盘的情况下无法使用TCP协议架构。
而基于UDP的传输协议,占用资源小、速度快,且不需要挂载硬盘,只需要固化UDP和小容量只读存储器即可完成传输。但是UDP传输协议是一种无状态的传输协议,所以基于UDP的传输技术,例如TFTP协议,无法保证文件传输的完整性和正确性。为了保证这些的特殊设备正确传输文件,必须保证文件传输过程中无拥塞、无乱序、无丢包、完整性检查、可重传等要求。
可见传统的文件传输方式不能应用于某些场合,需要改进。
技术实现要素:
本发明的目的在于克服现有技术存在的缺点和不足,提供一种占用资源少且具有高可靠性的文件传输系统及其方法。
一、占用资源少且具有高可靠性的文件传输系统(简称系统)
本系统包括相互连通的客户端和服务器;
服务器包括客户端、接收单元、消息协议处理单元、数据处理单元、发射单元和调度单元;
其交互关系是:
客户端、接收单元、消息协议处理单元、数据处理单元、发射单元和客户端依次闭环交互;
调度单元分别与接收单元、消息协议处理单元和数据处理单元交互;
消息协议处理单元和发射单元交互。
二、占用资源少且具有高可靠性的文件传输方法(简称方法)
本方法包括下列步骤:
①接收单元收到客户端数据送给消息协议处理单元里处理
判断是客户端发送的建立连接请求,则调度单元安排发射单元给客户端发送准备监听指令;
判断是发送文件数据,则转发给数据处理单元;
判断是客户端发送的确认发送指令,则不作处理;
②数据处理单元收到数据后,处理模块判断是否掉帧,如果不掉帧,则调度单元调度发射单元发送确认收到消息,且把数据送给加解密模块;如果掉帧,则指示发射单元发送LOST消息;
③客户端处理模块判断如果收到确认信息,则继续发送数据;如果收到LOST或者ERROR消息,会通知重传模块重发上条信息;且每次发送数据最后附加自检结果给服务器作为校验标准;
④客户端的定时单元,如果客户端3秒都没有收到反馈消息,则重发上一条消息;
⑤接收单元收到重新发来的消息,重复步骤①②,处理模块判断发来的数据是否已经收到过,如果收到过则丢弃,且调度单元指示发射单元发送确认信息给客户端;如果收到的是不重复的数据块,则送入加解密模块;
⑥加解密模块对收到的数据块进行校验,并且与客户端同时发来的校验位进行比较,如果正确则给重组模块进行写入文件操作;如果不正确,调度单元指示发射单元发送ERROR给客户端,客户端继续按照步骤③进行处理。
本发明具有下列优点和积极效果:
①高可靠性:数据处理单元的重传模块、加解密模块可保证数据的连续性和正确性,同时客户端中也加入重传模块和定时器,保证数据中断时能继续传输未送达数据块。
②占用资源少:该方法是基于UDP的一种传输方法,占用内存小,不需要硬盘,只需要固化UDP和小容量只读存储器即可完成传输。
附图说明
图1是本系统的结构方框图;
图中:
00—客户端,
01—处理模块,02—重传模块,03—定时器;
A—服务器;
10—接收单元;
30—消息协议处理单元;
30—数据处理单元;
31—处理模块,32—重传模块,33—加解密模块,34—重组模块;
40—发射单元;
50—调度单元。
英译汉
1、TCP:Transmission Control Protocol,传输控制协议;
2、UDP:User Datagram Protocol,用户数据报协议;
3、TFTP:Trivial File Transfer Protocol,简单文件传输协议。
具体实施方式
以下结合附图和实施例详细说明。
一、系统
1、总体
如图1,本系统包括相互连通的客户端00和服务器A;
服务器A包括接收单元10、消息协议处理单元20、数据处理单元30、发射单元40和调度单元50;
其交互关系是:
客户端00、接收单元10、消息协议处理单元20、数据处理单元30、发射单元40和客户端00依次闭环交互;
调度单元50分别与接收单元10、消息协议处理单元20和数据处理单元30交互;
消息协议处理单元20和发射单元40交互。
工作机理:
客户端00发起通信请求,接收单元10将收到的消息送入消息协议处理单元20,消息协议处理单元20判断如果是数据消息,则把数据送入数据处理单元30进行处理:如果判断有掉帧或者有错误情况则通过发射单元40给客户端00发送对应指令,如果均没有错误重组模块34则写入文件;如果消息协议处理单元20是协议消息则发送对应协议消息返回给客户端00建立连接。
2、功能块
0)客户端00
其硬件配置:PC机。
其内嵌有处理模块01、重传模块02和定时器03;处理模块01和定时器03分别与重传模块02交互。
(1)处理模块01把发射器40发送来的消息进行分析判断,如果是消息协议则发送相应消息指令,如果是掉帧或者错误消息,则通知重传模块02。
(2)重传模块02:处理收到的消息指令并重发掉帧或发送错误的数据块。
(3)定时器03:以客户端发送数据块时间为起点,定时3秒,如果期间内没有收到发射器发送回来的反馈,则发送指令给重传模块02重发数据块。
1)接收单元10
其硬件配置:DSP芯片TMS320C6670。
接收客户端00发送的数据并转给消息协议处理单元20。
2)消息协议处理单元20
其硬件配置:DSP芯片TMS320C6670
处理数据消息,如果是协议消息则反馈给接收单元10,如果是数据块则把数据交给数据处理单元30。
3)数据处理单元30
其硬件配置:DSP芯片TMS320C6670
其内嵌有依次交互的处理模块31、重传模块32、加解密模块33和重组模块34。
(1)处理模块31:收到数据块是否掉帧,如果无掉帧则通过发射器40给客户端00发送确认信息,且把数据交给加解密模块33;如果掉帧则告知重传模块32。
(2)重传模块:若得知掉数据则通过发射器40给客户端00发送掉帧指令。
(3)加解密模块:对收到的数据块进行校验,并且与客户端00同时发来的校验位进行比较,如果正确则给重组模块34;如果不正确,调度器50指示发射器40发送ERROR给客户端00。
(4)重组模块:对数据排序后进行写入文件操作。
4)发射单元40
其硬件配置:DSP芯片TMS320C6670。
接收消息协议处理单元20和数据处理单元30发来的数据并转发给客户端00。
5)调度单元50
其硬件配置:DSP芯片TMS320C6670.
调度各个模块数据交互过程中的处理。
二、方法
1、客户端00通过接收单元10与消息协议处理单元20建立“三次握手”,建立起文件发送专用通道;
2、建立完成后,客户端00发来的数据块传送给数据处理单元30进行处理:
A)步骤②的具体流程如下:
数据处理单元30会记录当前已保存的数据块的帧号,客户端00发送数块中有携带帧号的数据段;数据处理单元30收到数据后,将帧号与处理模块31保存的帧号对比判断是否存在掉帧或者重复发送的情况。
B)客户端反馈信息后 ,步骤⑤具体流程如下:
处理模块31判断发来的数据是否已经收到过,如果收到过则丢弃,且调度单元50指示发射单元40发送确认信息给客户端00;如果收到的是不重复的数据块,则送入加解密模块33。
C)确认不掉帧后,步骤⑥具体流程如下:
加解密模块33对收到的数据块进行校验,并且与客户端00同时发来的校验位进行比较,如果比对一致则转给重组模块02进行写入文件操作;如果不正确,调度单元50指示发射单元40发送ERROR给客户端00。