CN100571266C - 一种数据传输方法和系统 - Google Patents
一种数据传输方法和系统 Download PDFInfo
- Publication number
- CN100571266C CN100571266C CNB2005101158193A CN200510115819A CN100571266C CN 100571266 C CN100571266 C CN 100571266C CN B2005101158193 A CNB2005101158193 A CN B2005101158193A CN 200510115819 A CN200510115819 A CN 200510115819A CN 100571266 C CN100571266 C CN 100571266C
- Authority
- CN
- China
- Prior art keywords
- client
- server
- filedl
- message
- frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
一种数据传输方法和系统。客户端需要传输文件时,首先给服务器发送文件传输请求;服务器监听到客户端文件传输请求后,建立文件传输进程,并响应文件传输请求;启动文件传输过程:服务器给客户端发送的帧数据报文消息;或者是收到客户端消息确认已收到帧数据报文后发送下一帧数据报文;或者是因超时未收到客户端消息确认,重发未收到客户端消息确认帧数据报文;客户端在接收到消息,确认服务器向客户端发送帧数据报文后,给服务器发送本帧消息;或者客户端在设定的时间内未接收到数据,给服务器发送上一帧消息;重复上述过程,如果客户端收到某一帧字节数小于定义的帧长,文件传输结束;完成与客户端的文件传输结束退出。
Description
技术领域
本发明涉及通信领域,特别是涉及一种第三代通信系统设备多处理器间的数据传输系统和方法。
背景技术
第三代移动通信系统(3G)设备一般为多处理器单元分布式体系结构,单元与单元间需要传输程序文件和数据文件,这些程序文件和数据文件的传输,主要通过基于TCP/IP协议集FTP或者TFTP来实现的。
TCP/IP协议网络结构分为:
1、网络接口层(Network Interface Layer)
该层与开放系统互连参考模型(Open System Interconnet,OSI)中的物理层和数据链路层以及网络层的一部分功能相对应,它负责接收从IP层交来的IP数据报,并将IP数据报通过底层网络,即能够支持TCP/IP高层协议的物理网络,如以太网、高速局域网、FDDI、X.25、ATM等,发送出去,或者从低层物理网络上接收数据帧,抽出IP数据报,交给上层网络互连层。
2、网络互连层(Network Layer)
网络互连层在TCP/IP参考模型中占有非常重要的地位。它作为通信子网的最高层,负责相邻节点之间的分组数据报的传送,提供不可靠、面向无连接的传输服务。它的主要协议为无连接的IP协议。网络互连层把传输层送来的消息封装成IP数据包,并使用路由算法来选择是直接把数据发送到目的地还是先交给中间路由器,然后交给下层(网络接口层)去发送;同样,该层对接收到的IP数据包还要进行类似的处理,包括校验其正确性,使用路由算法来决定对IP数据包的格式,以消除各通信子网的差异,这样即使采用不同的物理技术的网络也可以在网络互连层上达到统一。
3、传输层
在TCP/IP网络体系结构中,传输层的作用与OSI参考模型中传输层的作用是一样的,即在不可靠的互连网络上,实现可靠的端到端字节流的传输服务,以增强网络层提供的服务质量(Quality of Service,QoS)。它提供了两个重要协议:传输控制协议TCP和用户数据报协议(User Data Protocol,UDP)
4、应用层
由于应用层是面向用户的协议层,根据不同的应用场合,对网络的需求也各有差异,因此,应用层上对应的协议是最为丰富和复杂的,早期的应用层有远程登录协议(Telnet)、文件传输协议(File Transfer Protocol,FTP)和简单邮件传输协议(Simple Mail Transfer Protocol,SMTP),新的应用层协议有:用于将网络中的主机名映射成IP网络地址的域名服务协议(Domain NameService,DNS);用于网络新闻的传输协议(Network News Transfer Protocol,NNTP);以及用于从WWW网上读取页面信息的超文件传输协议(Hyper TextTransfer Protocol,HTTP)。
文件传输协议(FTP)是国际互联网(Internet)上使用非常广泛的一种通讯协议。它是由支持国际互联网文件传输的各种规则所组成的集合,用于管理计算机之间的文件传送,国际互联网用户可以把文件从一个主机拷贝到另一个主机上。
FTP和其它国际互联网服务一样,也是采用客户机/服务器(Client/Server)方式,使用时启动FTP客户端程序先与主机建立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给予响应,并执行正确的命令。
FTP可用多种格式传输文件,通常由系统决定,大多数系统(包括UNIX系统)只有两种模式;文本模式(ASCII)和二进制模式(BIN/IMAGE)。
FTP建立在传输层TCP协议之上,而TCP是面向连接的协议,负责保证数据从源计算机到目的计算机的传输。TCP采用校验、确认接收和超时重传等一系列措施提供可靠的传输,所以在传输过程中FTP程序如果没有提示错误,就无需担心传输问题。
根据是使用Port模式还是Passive模式,FTP使用不同的TCP端口传输文件:
Port模式的FTP步骤如下:
1、客户端发送一个TCP同步(TCP SYN)包给服务器众所周知的FTP控制端口21,客户端使用暂时的端口作为它的源端口;
2、服务器发送同步确认(SYN ACK)包给客户端,源端口为21,目的端口为客户端上使用的暂时端口;
3、客户端发送一个确认(ACK)包;客户端使用这个连接来发送FTP命令,服务器使用这个连接来发送FTP应答;
4、当用户请求一个列表(List)请求或者发起一个要求发送或者接受文件的请求,客户端软件使用PORT命令,这个命令包含了一个暂时的端口,客户端希望服务器在打开一个数据连接时候使用这个暂时端口;PORT命令也包含了一个IP地址,这个IP地址通常是客户自己的IP地址,而且FTP也支持第三方(third-party)模式,第三方模式是客户端告诉服务器打开与另一台主机的连接;
5、服务器发送一个同步(SYN)包给客户端的暂时端口,源端口为20,暂时端口为客户端在PORT命令中发送给服务器的暂时端口号;
6、客户端以源端口为暂时端口,目的端口为20发送一个同步确认(SYNACK)包;
7、服务器发送一个确认(ACK)包;
8、发送数据的主机以这个连接来通过一些命令,如STOR(表示客户端要发送数据),RETR(表示服务器发送数据发送数据),数据以TCP段形式发送,这些TCP段者需要对方进行确认(ACK);
9、当数据传输完成以后,发送数据的主机以一个FIN命令来结束数据连接,这个FIN命令需要另一台主机以确认(ACK),另一台主机也发送一个FIN命令,这个FIN命令同样需要发送数据的主机以确认(ACK);
10、客户端以在控制连接上发送更多的命令,这可能打开和关闭另外的数据连接;有时候客户端结束后,客户端以FIN命令来关闭一个控制连接,服务器以确认(ACK)包来确认客户端的FIN,服务器同样也发送它的FIN,客户端确认(ACK)。
作为TCP/IP主要的文件传输协议,FTP是完善的和功能强大的,但太复杂,不适合在存储空间有限的多处理器间的ROM中使用;
TFTP协议是TCP/IP在性能与开销之间作的一个折衷,适用于某些特殊场合,他仅提供单纯的文件传输,没有权限限制,也不支持客户与服务器之间的复杂交互过程。TFTP是建立在UDP数据报基础上,利用确认与超时重传保证传输的可靠性;提供对称性重传,客户与服务器都运行超时重传机制。
但是,对于一些没有采用TCP/IP层,并且内部数据链路层实现方法多种多样,又要求高速传输的第三代移动通信系统设备,目前没有一个比较成熟的文件传输协议可采用。
发明内容
本发明的目的在于提供一种数据传输的方法和系统,其基于多处理器的实现框架,采用非对称性重传机制,用于不同处理器单元间进行文件数据传输。
为达到本发明的目的而提供的一种数据传输的方法,包括下列步骤:
步骤A:将一块带有文件存储设备的处理器单元作为服务器,其它处理器单元作为客户端,服务器存储着可向客户端单元传输的文件;
步骤B:客户端如果需要传输文件,首先给服务器发送文件传输请求FILEDL_REQ消息;
服务器上电以后处于监听状态,监听到客户端文件传输请求后,建立文件传输进程,并向客户端发送FILEDL_RES消息响应文件传输请求;
步骤C:服务器和客户端在建立文件传输进程后,启动文件传输过程:
服务器给客户端发送的帧数据报文的FILEDL_DATA消息;或者是收到客户端的FILEDL_ACK消息确认已收到帧数据报文后发送下一帧数据报文;或者是因超时未收到客户端的FILEDL_ACK消息确认,退出,传输结束;
客户端在接收到FILEDL_DATA消息,确认服务器向客户端发送帧数据报文后,给服务器发送本帧的FILEDL_ACK消息;或者客户端在设定的时间内未接收到数据,给服务器发送上一帧的FILEDL_ACK消息;
重复上述过程,如果客户端收到某一帧字节数小于定义的帧长,文件传输结束;
步骤D:完成与客户端的文件传输,传输完毕结束退出。
所述步骤C中还可以包括以下步骤:客户端在接收文件过程中出现任何不可再继续的错误时,向服务器发送FILEDL_ABORT消息;或者在接收到服务器发送来的FILEDL_ABORT消息后,删除正在下载的文件,释放资源,文件下载进程结束退出;
服务器在接收文件过程中出现任何不可再继续的错误时,向客户端发送FILEDL_ABORT消息;或者在接收到客户端发送来的FILEDL_ABORT消息后,释放资源,文件下载进程结束退出。
所述的任何不可再继续的错误可以是客户端磁盘异常或没有空闲空间,不允许再写文件;或者硬件有故障,下载此文件已没有意义等情况。
进一步地,所述步骤C还可以包括下列步骤:
客户端给服务器发送FILEDL_ACK消息确认已收到帧数据报文后,如果判断此帧是最后一帧数据,就将临时文件改名为正确的文件名并保存,并直接退出传输状态;
服务器收到FILEDL_ACK消息后,判断上一帧的字节数是否小于定义的帧长,如果是,则认为文件最后一帧传输完毕,退出传输状态。
本发明的数据传输方法中所述FILEDL_REQ消息可以包括客户端识别号,用户名,密码,服务器源文件路径,服务器源文件名。
所述步骤B可以进一步包括下列步骤:
B1)服务端收到FILEDL_REQ消息后,首先验证用户名和密码,如果用户名或者密码不对,则拒绝传送,结束文件传输进程,重新回到监听状态;如果用户名和密码都是正确的,则进行下一步;
B2)服务器在系统中查找源路径和源文件是否存在,如果没有,则返回结束文件传输进程,重新回到监听状态;否则,向客户端发送FILEDL_RES消息响应,FILEDL_RES消息通知客户端可以下载文件,同时还反馈文件名称、文件长度、修改日期、读写属性消息给客户端。
所述步骤C可以进一步包括下列步骤:
C1)服务器设定定时T1,防止客户端断开,长期收不到FILEDL_ACK消息响应而一直等待;
客户端收到服务器的FILEDL_RES消息应答后,创建一个新的临时文件,准备接收从服务器向客户端发送的文件数据;同时设定定时器T2,用于防止服务器断开,客户端不知道而一直等待,准备接收数据报文;客户端收到服务器发送来的数据包后,首先判断收到的帧的帧号是否为客户端需要的帧的帧号,然后判断检验和是否正确,如果这两者都正确,则顺序写到客户端临时文件中。
所述步骤C1可以包括下列步骤:
C11)如果客户端判断收到的帧的帧号不是客户端需要的帧的帧号,或者检验和不正确,客户端发送FILEDL_ACK消息应答,指明错误类型,通知服务器帧号或者校验和错误;
服务器收到客户端发送FILEDL_ACK消息后判断,如果是帧号错误则服务器调整帧号为客户端已正确接收的最后一帧的帧号,并且服务器调整发送下一帧帧号及相应的数据为客户端已正确接收的最后一帧的下一帧帧号及相应的数据,重新发送;如果是校验和错误,则服务器重发这一帧的所有数据;
C12)否则,在C1步骤完成后,客户端发送FILEDL_ACK消息给服务器,所述FILEDL_ACK消息包括本帧帧号,校验和正确;
服务器在明确收到客户端已经收到正确数据以后,开始传输下一帧数据,并且帧号加1。
本发明还提供一种数据传输系统,有服务器与客户端,包括:
FILEDL_REQ消息单元,存储在客户端上,用于客户端需要传输文件时,给服务器发送文件传输请求的FILEDL_REQ消息;
FILEDL_RES消息单元,存储在服务器上,用于服务器收到客户端发来的FILEDL_REQ消息请求传输文件时,向客户端发送传输文件的FILEDL_RES消息响应客户端请求;
FILEDL_DATA消息单元,存储在服务器上,用于服务器向客户端发送FILEDL_DATA消息向客户端发送帧数据报文;或者在收到客户端的FILEDL_ACK消息确认后发送FILEDL_DATA消息向客户端发送的下一帧数据报文;或者在超时未收到客户端的FILEDL_ACK消息确认,退出,传输结束;
FILEDL_ACK消息单元,存储在客户端上,用于当服务器发送帧数据报文,客户端接收到FILEDL_DATA消息后,给服务器发送一条本帧的FILEDL_ACK消息确认,或者客户端在设定的时间内没有接收到数据,给服务器回的上一帧的FILEDL_ACK消息确认。
FILEDL_ABORT消息单元,存储在客户端和服务器上;
在客户端上,用于客户端在接收文件过程中出现任何不可再继续的错误时,向服务器发送FILEDL_ABORT消息;或者在接收到服务器发送来的FILEDL_ABORT消息后,删除正在下载的临时文件,释放资源,文件下载进程结束退出;
在服务器上,用于服务器在接收文件过程中出现任何不可再继续的错误时,向客户端发送FILEDL_ABORT消息;或者在接收到客户端发送来的FILEDL_ABORT消息后,释放资源,文件下载进程结束退出。
所述FILEDL_REQ消息包括客户端识别号,用户名,密码,服务器源文件路径,服务器源文件名。
所述FILEDL_RES消息包括服务器进程识别号,服务器源文件名,服务器源文件长度,服务器源文件修改时间,响应结果。
所述FILEDL_DATA消息包括服务器进程识别号,校验和,帧号,帧长,内容。
所述FILEDL_ACK消息包括服务器进程识别号,帧号,响应结果。
所述FILEDL_ABORT消息包括服务器进程识别号,中止原因。
本发明的有益效果是:本发明所述的文件传输协议是基于目前3G设备多处理器的实现框架,其采用非对称性重传机制,用于不同单元间文件传输。对各种链路类型具有很好的兼容性。其提供了一种不采用TCP/IP层,并且可以在内部数据链路层实现方法多种多样,又要求高速传输的第三代移动通信系统设备中实现的文件传输协议。例如:单元间采用ATM、SOCKET、HDLC、HPI通信等均可使用此协议;复用单元间通信链路,不占用额外链路,减小对带宽的需要;允许多处理器并行下载,文件传输速度快,实用性强;按固定帧长传输文件,每帧附带帧号、校验和,具有很强的容错性、纠错性。采用非对称性重传机制,客户运行超时重传机制,而服务器一旦超时,就退出,其缓解了服务器的压力,异常处理比较完善,提供了文件传输的健壮性。
附图说明
图1是本发明数据传输系统结构示意图;
图2是本发明数据传输流程图。
具体实施方式
下面结合附图进一步详细描述本发明。
如图1所示,在本实施例中,本发明的数据传输系统是基于物理层中的系统控制单元、协议处理单元、用户管理单元、业务处理单元。
数据链路层为ATM(异步传输模式)、SOCKET(套接字)、HDLC(高级数据链路控制协议)、HPI(主机接口,Host port interface)中的一种或者一种以上的组合。
本发明的文件传输系统也和FTP及其它国际互联网服务一样,采用客户机/服务器(Client/Server)方式,使用时启动客户端程序先与服务器建立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给予响应,并执行正确的命令。
服务器与客户端之间交互传输消息的本发明文件传输系统包括:
FILEDL_REQ消息单元;
FILEDL_RES消息单元;
FILEDL_DATA消息单元;
FILEDL_ACK消息单元;
FILEDL_ABORT消息单元;
其中:
FILEDL_REQ消息单元:存储在客户端上,用于客户端需要传输文件时,给服务器发送文件传输请求的FILEDL_REQ消息;
服务器上电以后处于监听状态,它监听其它单元即客户端有无文件传输请求,一旦服务器收到FILEDL_REQ消息,就建立(Fork)一个文件传输进程,服务器通过该进程向客户端发送响应(FILEDL_RES)消息。FILEDL_REQ消息格式如表1所示:
表1 FILEDL_REQ消息格式
内容 | 所占字节数 |
客户端识别号 | 4bytes |
用户名 | 20bytes |
密码 | 20bytes |
服务器源文件路径 | 250bytes |
服务器源文件名 | 40bytes |
客户端识别号:用于服务器区分是哪个客户端,可以是任务号、端口号或连接号等,只要服务器能唯一识别即可,其占用4字节(bytes)。
用户名、密码:用于服务器进行鉴权,如果鉴权不通过可以拒绝给此客户端下载,其各占用20字节。
服务器源文件路径:待下载的文件存放在服务器的路径,可以是绝对路径,也可以是相对路径,只要服务器能识别即可,其占用250字节。
服务器源文件名:待下载的文件存放在服务器的文件名,其占用40字节。
FILEDL_RES消息单元:存储在服务器上,用于服务器收到客户端发来的FILEDL_REQ消息请求传输文件时,向客户端发送传输文件的FILEDL_RES消息响应客户端请求;
FILEDL_RES消息格式如表2所示:
表2 FILEDL_RES消息格式
内容 | 所占字节数 |
服务器进程识别号 | 4bytes |
服务器源文件名 | 40bytes |
服务器源文件长度 | 4bytes |
服务器源文件修改时间 | 20bytes |
服务器源文件读写属性 | 2bytes |
响应结果 | 2bytes |
服务器进程识别号:用于客户端区分是哪个服务器进程为自己服务,可以是任务号、端口号或连接号等。客户端下一步可以依据此识别号与服务器自己的专用服务进程传文件,其占用4字节。
服务器源文件名:待下载源文件的文件名,可以与FILEDL_REQ中的相同。客户端可以用此字段校验是否与自己发出去的文件名相同,其占用40字节。
服务器源文件长度:待下载源文件的字节长度,其占用4字节。
服务器源文件修改时间:待下载源文件的修改时间,其占用20字节。
响应结果:-1:用户名、密码错误,拒绝下载。-2:服务器没有此文件;-3:禁止下载。0:允许下载;如果响应结果是非0,则消息字段只填源文件名、响应结果即可,其它可不填,其占用2字节。
服务器如果发送的响应结果是允许下载,则紧接着就发送FILEDL_DATA数据报文消息,而客户端收到允许下载的响应消息后,也准备接收第一帧数据,同时设置定时T2,防止数据报文接收超时。
FILEDL_DATA消息单元:存储在服务器上,用于服务器向客户端发送FILEDL_DATA消息向客户端发送帧数据报文;或者在收到客户端的FILEDL_ACK消息确认后发送FILEDL_DATA消息向客户端发送的下一帧数据报文;或者在超时未收到客户端的FILEDL_ACK消息确认,重新发送FILEDL_DATA消息向客户端发送未收到客户端的FILEDL_ACK消息确认的帧数据报文;
FILEDL_DATA消息格式如表3所示:
表3 FILEDL_DATA消息格式
内容 | 所占字节数 |
服务器进程识别号 | 4bytes |
校验和 | 2bytes |
帧号 | 4bytes |
帧长 | 4bytes |
内容 |
服务器进程识别号:用于客户端区分是哪个服务器进程为自己服务,可以是任务号、端口号或连接号等,其占用4字节。
校验和:用于对每帧数据进行校验,校验和算法采用TCP/IP标准协议中的16位checksum算法,计算从帧号到内容的校验和,。其占用2字节。
帧号:用于标示每个数据帧的编号,此编号每个文件从1开始顺序往上加,其占用4字节。
帧长:此数据帧的字节长度,其占用4字节,其可能相等也可能不相等,如果文件长度是帧长的整数倍,最后发送一个零长度的帧,客户端在收到这个帧后,判断文件传输结束。文件传输使用固定帧长,并且带帧号(帧号连续)和校验,客户端对每帧数据必须回应答(ACK),应答(ACK)中附带接收正确或接收错误等信息。
内容:每帧所带的内容,长度为帧长。
服务器发送完每帧FILEDL_DATA后,设定定时T1,防止接收客户端的确认(ACK)超时。客户端收到FILEDL_DATA报文后删除定时器T2,按相同的校验和算法再次计算检验和,并与报文中所带的相比较,如果不一致,则认为此帧在传送过程中有错误。如果正确,则按顺序写入文件中。任何情况下,如果需要服务器继续传数据,重新设定时T2,准备接收下一帧数据报文。
FILEDL_ACK消息单元:存储在客户端上,用于当服务器发送帧数据报文,客户端接收到FILEDL_DATA消息后,给服务器发送一条本帧的FILEDL_ACK消息确认,或者客户端在设定的时间内没有接收到数据,给服务器回的上一帧的FILEDL_ACK消息确认。
当服务器发送一帧数据报文,客户端接收到FILEDL_DATA消息后,给服务器发送一条本帧的FILEDL_ACK消息;或者客户端在设定的时间T2内没有接收到数据,给服务器回的上一帧的ACK消息。
FILEDL_ACK消息格式如表4所示:
表4 FILEDL_ACK消息格式
内容 | 所占字节数 |
服务器进程识别号 | 4bytes |
帧号 | 4bytes |
响应结果 | 2bytes |
服务器进程识别号:用于客户端区分是哪个服务器进程为自己服务,可以是任务号、端口号或连接号等,其占用4字节。
帧号:客户端接收到的数据帧编号,其占用4字节。
响应结果:0:成功,可以传下一帧;-1:往客户端文件写失败,传输终止;-2:此数据帧校验错误,需重传,其占用2字节。
当服务器收到此消息后,首先删除定时T1,如果响应结果为客户端出现写文件失败时,服务器文件下载进程结束退出;如果校验和失败,则根据ACK发过来的帧号重传此帧;如果成功,则传送下一帧。重新设定定时T1。
FILEDL_ABORT消息单元:存储在客户端和服务器上;
在客户端上,用于客户端在接收文件过程中出现任何不可再继续的错误时,向服务器发送FILEDL_ABORT消息;或者在接收到服务器发送来的FILEDL_ABORT消息后,删除正在下载的文件,释放资源,文件下载进程结束退出;
在服务器上,用于服务器在接收文件过程中出现任何不可再继续的错误时,向客户端发送FILEDL_ABORT消息;或者在接收到客户端发送来的FILEDL_ABORT消息后,释放资源,文件下载进程结束退出。
当服务器在传输文件或客户端在接收文件过程中出现任何不可再继续的错误时,向对方发送FILEDL_ABORT消息。客户端发送或接收到此消息时,删除正在下载的文件,释放资源,文件下载进程结束退出。服务器发送或接收到FILEDL_ABORT消息时,释放资源,为此客户端服务的文件下载进程结束退出。
任何不可再继续的错误是指客户端磁盘异常或没有空闲空间,不允许再写文件;硬件有故障,下载此文件已没有意义等情况。
FILEDL_ABORT消息格式如表5所示:
表5 FILEDL_ABORT消息格式
内容 | 所占字节数 |
服务器进程识别号 | 4bytes |
中止原因 | 2bytes |
服务器进程识别号:用于客户端区分是哪个服务器进程为自己服务,可以是任务号、端口号或连接号等,其占用4字节。
中止原因:可以是正整数也可以是负整数,其列举自己出错的原因,比如读文件错误,写文件错误,被其它进程要求中止等。一旦发出此消息后,己方就可以终止传输,对方收到此消息也终止,其占用2字节。
如图2所示,本文提出的文件传输方法描述如下:
步骤A:将一块带有文件存储设备的处理器单元作为服务器,其它处理器单元作为客户端,服务器存储着可向客户端单元传输的文件;
步骤B:客户端如果需要传输文件,首先给服务器发送文件传输请求FILEDL_REQ消息;
FILEDL_REQ消息包括客户端识别号,用户名,密码,服务器源文件路径,服务器源文件名。
服务器上电以后处于监听状态,监听到客户端文件传输请求后,建立文件传输进程,并向客户端发送FILEDL_RES消息响应文件传输请求;
所述FILEDL_RES消息包括服务器进程识别号,服务器源文件名,服务器源文件长度,服务器源文件修改时间,响应结果。
步骤B还包括下列步骤:
步骤B1:服务端收到FILEDL_REQ消息后,首先验证用户名和密码,如果用户名或者密码不对,则拒绝传送,结束文件传输进程,重新回到监听状态;如果用户名和密码都是正确的,则进行下一步;
步骤B2:服务器在系统中查找源路径和源文件是否存在,如果没有,则返回结束文件传输进程,重新回到监听状态;否则,向客户端发送FILEDL_RES消息响应,FILEDL_RES消息通知客户端可以下载文件,同时还反馈文件名称、文件长度、修改日期、读写属性消息给客户端。
步骤C:服务器和客户端在建立文件传输进程后,启动文件传输过程:
服务器给客户端发送的帧数据报文的FILEDL_DATA消息;或者是收到客户端的FILEDL_ACK消息确认已收到帧数据报文后发送下一帧数据报文;或者是因超时未收到客户端的FILEDL_ACK消息确认,重发未收到客户端的FILEDL_ACK消息确认帧数据报文;
所述FILEDL_DATA消息包括服务器进程识别号,校验和,帧号,帧长,内容。
帧长,即每帧的长度,可能相等也可能不相等,如果文件长度是帧长的整数倍,最后发送一个零长度的帧,客户端在收到这个帧后,判断文件传输结束。文件传输使用固定帧长,并且带帧号(帧号连续)和校验,客户端对每帧数据必须回应答(ACK),应答(ACK)中附带接收正确或接收错误等信息。
所述FILEDL_ACK消息包括服务器进程识别号,帧号,响应结果。
客户端在接收到FILEDL_DATA消息,确认服务器向客户端发送帧数据报文后,给服务器发送本帧的FILEDL_ACK消息;或者客户端在设定的时间内未接收到数据,给服务器发送上一帧的FILEDL_ACK消息;
客户端在接收文件过程中出现任何不可再继续的错误时,向服务器发送FILEDL_ABORT消息;或者在接收到服务器发送来的FILEDL_ABORT消息后,删除正在下载的文件,释放资源,文件下载进程结束退出;
服务器在接收文件过程中出现任何不可再继续的错误时,向客户端发送FILEDL_ABORT消息;或者在接收到客户端发送来的FILEDL_ABORT消息后,释放资源,文件下载进程结束退出;
如果在T1时间内服务器未收客户端应答的消息,就认为客户端出现故障,即死循环,服务器自动中断向客户端发送数据,服务器恢复到监听状态。
如果客户端在一定时间(T2)内未收到服务器发来的数据帧,则重发上一帧的应答(ACK)。连续X次未收到,则认为链路或服务器故障,下载结束。如果服务器在一定时间(T1)内未收到客户端发来的确认(ACK),则认为链路或客户端故障,进程结束退出,其中T1>T2*X。
所述FILEDL_ABORT消息包括服务器进程识别号,中止原因。
重复所述过程,如果客户端收到某一帧字节数小于定义的帧长,文件传输结束;
客户端给服务器发送FILEDL_ACK消息确认已收到帧数据报文后,如果判断此帧是最后一帧数据,就将临时文件改名为正确的文件名并保存,并直接退出传输状态;
服务器收到FILEDL_ACK消息后,判断上一帧的字节数是否小于定义的帧长,如果是,则是最后一帧,退出传输状态。
所述步骤C进一步还包括下列步骤:
步骤C1:服务器设定定时T1,防止客户端断开,长期收不到FILEDL_ACK消息响应而一直等待;
客户端收到服务器的FILEDL_RES消息应答后,创建一个新的临时文件,准备接收从服务器向客户端发送的文件数据;同时设定定时器T2,用于防止服务器断开,客户端不知道而一直等待,准备接收数据报文;客户端收到服务器发送来的数据包后,首先判断收到的帧的帧号是否为客户端需要的帧的帧号,然后判断检验和是否正确,如果这两者都正确,则顺序写到客户端临时文件中。
所述步骤C1包括下列步骤:
步骤C11:如果客户端判断收到的帧的帧号不是客户端需要的帧的帧号,或者检验和不正确,客户端发送FILEDL_ACK消息应答,指明错误类型,通知服务器帧号或者校验和错误;
服务器收到客户端发送FILEDL_ACK消息后判断,如果是帧号错误则服务器调整帧号为客户端已正确接收的最后一帧的帧号,并且服务器调整发送下一帧帧号及相应的数据为客户端已正确接收的最后一帧的下一帧帧号及相应的数据,重新发送;如果是校验和错误,则服务器重发这一帧的所有数据;
步骤C12:否则,在C1步骤完成后,客户端发送FILEDL_ACK消息给服务器,所述FILEDL_ACK消息包括本帧帧号,校验和正确;
服务器在明确收到客户端已经收到正确数据以后,开始传输下一帧。
步骤D:完成与客户端的文件传输,传输完毕结束退出。
在3G设备的文件传输中,安全、可靠、快速是必需的,在本发明中的数据传输方法与系统具有:
1、并行处理:服务器可以同时建立(Fork)多个文件下载进程,满足多处理器并行处理的功能;
2、纠错功能:应答(ACK)的帧号回退、CRC校验同时保证了文件的顺序性,防止文件丢失;
3、非对称性超时机制:客户运行超时重传机制,而服务器,一旦超时就退出,缓解了服务器的压力。
与目前各种文件传输协议相比,本发明所提出的这种方法及系统具有较强的纠错性,允许多处理单元并行下载,文件传输速度快,其实用性强,更能满足3G设备中文件传输的需要。
本实施例是为了使本领域普通技术人员理解而对本发明所进行的详细描述,但本领域普通技术人员可以想到,在不脱离本发明的权利要求所涵盖的范围内还可以做出其它的变化和修改,其均在本发明的保护范围内。
Claims (17)
1.一种数据传输的方法,其特征在于,包括下列步骤:
步骤A:将一块带有文件存储设备的处理器单元作为服务器,其它处理器单元作为客户端,服务器存储着可向客户端单元传输的文件;
步骤B:客户端如果需要传输文件,首先给服务器发送文件传输请求FILEDL_REQ消息;
服务器上电以后处于监听状态,监听到客户端文件传输请求后,建立文件传输进程,并向客户端发送FILEDL_RES消息响应文件传输请求;
步骤C:服务器和客户端在建立文件传输进程后,启动文件传输过程:服务器给客户端发送的帧数据报文的FILEDL_DATA消息;或者是收到客户端的FILEDL_ACK消息确认已收到帧数据报文后发送下一帧数据报文;或者是因超时未收到客户端的FILEDL_ACK消息确认,退出,传输结束;
客户端在接收到FILEDL_DATA消息,确认服务器向客户端发送帧数据报文后,给服务器发送本帧的FILEDL_ACK消息;或者客户端在设定的时间内未接收到数据,给服务器发送上一帧的FILEDL_ACK消息;
重复上述过程,如果客户端收到某一帧字节数小于定义的帧长,文件传输结束;
步骤D:完成与客户端的文件传输,传输完毕结束退出。
2.根据权利要求1所述的数据传输方法,其特征在于,所述步骤C中还包括以下步骤:
客户端在接收文件过程中出现任何不可再继续的错误时,向服务器发送FILEDL_ABORT消息;或者在接收到服务器发送来的FILEDL_ABORT消息后,删除正在下载的文件,释放资源,文件下载进程结束退出;
服务器在接收文件过程中出现任何不可再继续的错误时,向客户端发送FILEDL_ABORT消息;或者在接收到客户端发送来的FILEDL_ABORT消息后,释放资源,文件下载进程结束退出。
3.根据权利要求2所述的数据传输方法,其特征在于,所述任何不可再继续的错误为客户端磁盘异常或没有空闲空间,不允许再写文件;硬件有故障,下载此文件已没有意义。
4.根据权利要求3所述的数据传输方法,其特征在于,所述步骤C还包括下列步骤:
客户端给服务器发送FILEDL_ACK消息确认已收到帧数据报文后,如果判断此帧是最后一帧数据,就将临时文件改名为正确的文件名并保存,并直接退出传输状态;
服务器收到FILEDL_ACK消息后,判断上一帧的字节数是否小于定义的帧长,如果是,则认为文件最后一帧传送完毕,退出传输状态。
5.根据权利要求4所述的数据传输方法,其特征在于,所述FILEDL_REQ消息包括客户端识别号,用户名,密码,服务器源文件路径,服务器源文件名。
6.根据权利要求5所述的数据传输方法,其特征在于,所述步骤B包括下列步骤:
B1)服务端收到FILEDL_REQ消息后,首先验证用户名和密码,如果用户名或者密码不对,则拒绝传送,结束文件传输进程,重新回到监听状态;如果用户名和密码都是正确的,则进行下一步;
B2)服务器在系统中查找源路径和源文件是否存在,如果没有,则返回结束文件传输进程,重新回到监听状态;否则,向客户端发送FILEDL_RES消息响应,FILEDL_RES消息通知客户端可以下载文件,同时还反馈文件名称、文件长度、修改日期、读写属性消息给客户端。
7.根据权利要求6所述的数据传输方法,其特征在于,所述步骤C包括下列步骤:
C1)服务器设定定时T1,防止客户端断开,长期收不到FILEDL_ACK消息响应而一直等待;
客户端收到服务器的FILEDL_RES消息应答后,创建一个新的临时文件,准备接收从服务器向客户端发送的文件数据;同时设定定时器T2,用于防止服务器断开,客户端不知道而一直等待,准备接收数据报文;客户端收到服务器发送来的数据包后,首先判断收到的帧的帧号是否为客户端需要的帧的帧号,然后判断检验和是否正确,如果这两者都正确,则顺序写到客户端临时文件中。
8.根据权利要求7所述的数据传输方法,其特征在于,所述步骤C1包括下列步骤:
C11)如果客户端判断收到的帧的帧号不是客户端需要的帧的帧号,或者检验和不正确,客户端发送FILEDL_ACK消息应答,指明错误类型,通知服务器帧号或者校验和错误;
服务器收到客户端发送FILEDL_ACK消息后判断,如果是帧号错误则服务器调整帧号为客户端已正确接收的最后一帧的帧号,并且服务器调整发送下一帧帧号及相应的数据为客户端已正确接收的最后一帧的下一帧帧号及相应的数据,重新发送;如果是校验和错误,则服务器重发这一帧的所有数据;
C12)否则,在C1步骤完成后,客户端发送FILEDL_ACK消息给服务器,所述FILEDL_ACK消息包括本帧帧号,校验和正确;
服务器在明确收到客户端已经收到正确数据以后,开始传输下一帧数据,并且帧号加1。
9.根据权利要求7所述的数据传输方法,其特征在于,所述步骤C还包括下列步骤:
如果客户端在一定时间T2内未收到服务器发来的数据帧,则重发上一帧的应答ACK,连续X次未收到,则认为链路或服务器故障,下载结束;
如果服务器在一定时间T1内未收到客户端发来的确认ACK,则认为链路或客户端故障,进程结束退出,其中T1>T2×X。
10.一种数据传输系统,有服务器与客户端,其特征在于,包括:
FILEDL_REQ消息单元,存储在客户端上,用于客户端需要传输文件时,给服务器发送文件传输请求的FILEDL_REQ消息;
FILEDL_RES消息单元,存储在服务器上,用于服务器收到客户端发来的FILEDL_REQ消息请求传输文件时,向客户端发送传输文件的FILEDL_RES消息响应客户端请求;
FILEDL_DATA消息单元,存储在服务器上,用于服务器向客户端发送FILEDL_DATA消息向客户端发送帧数据报文;或者在收到客户端的FILEDL_ACK消息确认后发送FILEDL_DATA消息向客户端发送的下一帧数据报文;或者在超时未收到客户端的FILEDL_ACK消息确认,退出,传输结束;
FILEDL_ACK消息单元:存储在客户端上,用于当服务器发送帧数据报文,客户端接收到FILEDL_DATA消息后,给服务器发送一条本帧的FILEDL_ACK消息确认,或者客户端在设定的时间内没有接收到数据,给服务器回的上一帧的FILEDL_ACK消息确认。
11.根据权利要求10所述的数据传输系统,其特征在于,还包括:
FILEDL_ABORT消息单元,存储在客户端和服务器上;
在客户端上,用于客户端在接收文件过程中出现任何不可再继续的错误时,向服务器发送FILEDL_ABORT消息;或者在接收到服务器发送来的FILEDL_ABORT消息后,删除正在下载的临时文件,释放资源,文件下载进程结束退出;
在服务器上,用于服务器在接收文件过程中出现任何不可再继续的错误时,向客户端发送FILEDL_ABORT消息;或者在接收到客户端发送来的FILEDL_ABORT消息后,释放资源,文件下载进程结束退出。
12.根据权利要求11所述的数据传输系统,其特征在于,所述任何不可再继续的错误为客户端磁盘异常或没有空闲空间,不允许再写文件;硬件有故障,下载此文件已没有意义。
13.根据权利要求12所述的数据传输系统,其特征在于,所述FILEDL_REQ消息包括客户端识别号,用户名,密码,服务器源文件路径,服务器源文件名。
14.根据权利要求13所述的数据传输系统,其特征在于,所述FILEDL_RES消息包括服务器进程识别号,服务器源文件名,服务器源文件长度,服务器源文件修改时间,响应结果。
15.根据权利要求14所述的数据传输系统,其特征在于,所述FILEDL_DATA消息包括服务器进程识别号,校验和,帧号,帧长,内容。
16.根据权利要求15所述的数据传输系统,其特征在于,所述FILEDL_ACK消息包括服务器进程识别号,帧号,响应结果。
17.根据权利要求16所述的数据传输系统,其特征在于,所述FILEDL_ABORT消息包括服务器进程识别号,中止原因。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101158193A CN100571266C (zh) | 2005-11-09 | 2005-11-09 | 一种数据传输方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101158193A CN100571266C (zh) | 2005-11-09 | 2005-11-09 | 一种数据传输方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1964348A CN1964348A (zh) | 2007-05-16 |
CN100571266C true CN100571266C (zh) | 2009-12-16 |
Family
ID=38083238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101158193A Active CN100571266C (zh) | 2005-11-09 | 2005-11-09 | 一种数据传输方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100571266C (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102201903A (zh) * | 2011-06-07 | 2011-09-28 | 合肥华云通信技术有限公司 | 一种简单可靠的远程文件传输方法 |
CN102255753B (zh) * | 2011-06-28 | 2015-09-23 | 迈普通信技术股份有限公司 | 一种业务配置同步方法和系统 |
CN102355480B (zh) * | 2011-07-21 | 2017-03-08 | 中兴通讯股份有限公司 | 基于tftp的文件传输方法、系统、客户端和服务器 |
WO2014194493A1 (zh) * | 2013-06-05 | 2014-12-11 | 华为技术有限公司 | 一种减少传输控制层确认报文的方法、装置和系统 |
CN103971500B (zh) * | 2014-05-08 | 2017-07-28 | 福建工程学院 | 一种远程设备故障信息采集系统数据压缩传输方法 |
CN105323283A (zh) * | 2014-07-25 | 2016-02-10 | 中兴通讯股份有限公司 | 文件传输方法、装置及系统 |
CN105245512B (zh) * | 2015-09-29 | 2018-08-03 | 深圳市云舒网络技术有限公司 | 一种单向文件传输方法及实现该传输方法的服务器 |
CN106506690A (zh) * | 2016-12-06 | 2017-03-15 | 武汉虹旭信息技术有限责任公司 | 一种占用资源少且具有高可靠性的文件传输系统及其方法 |
CN107402814A (zh) * | 2017-07-07 | 2017-11-28 | 上海斐讯数据通信技术有限公司 | 一种在嵌入式系统中节省内存的方法及系统 |
KR101979671B1 (ko) * | 2018-01-02 | 2019-05-17 | (주)에프씨아이 | 빈번하게 변경되는 비콘 구성요소를 이용한 비콘 신호 처리 최소화 방법 및 장치 |
CN109379364B (zh) * | 2018-10-29 | 2021-01-22 | 深圳同耕科技股份有限公司 | 一种应用系统间的自动化网络数据传输方法及系统 |
CN109669634B (zh) * | 2018-12-17 | 2022-03-04 | 浪潮电子信息产业股份有限公司 | 一种数据落盘方法、装置、设备及可读存储介质 |
CN109992570A (zh) * | 2019-03-11 | 2019-07-09 | 上海博达数据通信有限公司 | 一种嵌入式系统的文件同步方法 |
CN110502584B (zh) * | 2019-08-28 | 2021-09-28 | 北京三快在线科技有限公司 | 数据同步的方法和装置 |
CN110995697B (zh) * | 2019-11-29 | 2023-01-03 | 济南慧天云海信息技术有限公司 | 一种大数据传输方法及系统 |
CN113132065A (zh) * | 2019-12-30 | 2021-07-16 | 西安诺瓦星云科技股份有限公司 | 数据通信方法、装置及系统、存储介质和视频处理设备 |
CN112689160B (zh) * | 2020-11-27 | 2022-12-09 | 烟台艾睿光电科技有限公司 | 一种应用于图像采集设备的视频传输方法及装置 |
CN113992307A (zh) * | 2021-10-28 | 2022-01-28 | 国网信息通信产业集团有限公司 | 数据报文的传输方法、装置、电子设备及计算机存储介质 |
CN114027598A (zh) * | 2021-11-04 | 2022-02-11 | 上海铼锶信息技术有限公司 | 智能穿戴设备及智能穿戴设备的消息提示方法 |
CN117370027A (zh) * | 2023-04-19 | 2024-01-09 | 哈尔滨商业大学 | 一种包含服务器的电子商务信息处理方法 |
-
2005
- 2005-11-09 CN CNB2005101158193A patent/CN100571266C/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN1964348A (zh) | 2007-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100571266C (zh) | 一种数据传输方法和系统 | |
Iren et al. | The transport layer: tutorial and survey | |
Stewart et al. | SCTP: new transport protocol for TCP/IP | |
AU2004217318B2 (en) | Using TCP to authenticate IP source addresses | |
Dreibholz et al. | Stream control transmission protocol: Past, current, and future standardization activities | |
EP1747644B1 (en) | Method and apparatus for group communication with end-to-end reliability | |
US7596802B2 (en) | Method and system for providing connection handling | |
CA2421665C (en) | Wireless provisioning device | |
US6273622B1 (en) | Data communication protocol for maximizing the performance of IP communication links | |
US7213063B2 (en) | Method, apparatus and system for maintaining connections between computers using connection-oriented protocols | |
US7965674B2 (en) | Sub-segment based transport layer protocol for wireless medium | |
EP3533162B1 (en) | Handling of data packet transfer via a proxy | |
Natarajan et al. | SCTP: An innovative transport layer protocol for the web | |
Ford et al. | TCP Extensions for Multipath Operation with Multiple Addresses, draft-ietf-mptcp-multiaddressed-09 | |
CN106685930A (zh) | 一种传输控制协议选项的处理方法及装置 | |
CN103475706A (zh) | 基于syn-ack双服务器反弹模式的伪tcp隐蔽通信方法 | |
US7564848B2 (en) | Method for the establishing of connections in a communication system | |
CN107277058A (zh) | 一种基于bfd协议的接口认证方法及系统 | |
US7978598B1 (en) | Connection replication | |
Postel | RFC0761: DoD standard Transmission Control Protocol | |
Kiesel | On the use of cryptographic cookies for transport layer connection establishment | |
TWI636701B (zh) | 在傳輸控制協議下穩定建立兩裝置端間網路連線的方法與系統 | |
JP2002312261A (ja) | ネットワークサービス中継方法及び中継装置 | |
Liqing et al. | TCP optimization implementation of a small embedded system | |
Ochiai et al. | IP over DTN: Large-delay asynchronous packet delivery in the internet |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |