CN101841570A - 一种文件传输方法 - Google Patents

一种文件传输方法 Download PDF

Info

Publication number
CN101841570A
CN101841570A CN201010179148A CN201010179148A CN101841570A CN 101841570 A CN101841570 A CN 101841570A CN 201010179148 A CN201010179148 A CN 201010179148A CN 201010179148 A CN201010179148 A CN 201010179148A CN 101841570 A CN101841570 A CN 101841570A
Authority
CN
China
Prior art keywords
server
tftp
file
client
value
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.)
Granted
Application number
CN201010179148A
Other languages
English (en)
Other versions
CN101841570B (zh
Inventor
刘靖非
范成龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Autelan Technology Co ltd
Beijing Hua Xinaotian Network Technology Co ltd
Original Assignee
AUTELAN TECHNOLOGY Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by AUTELAN TECHNOLOGY Inc filed Critical AUTELAN TECHNOLOGY Inc
Priority to CN 201010179148 priority Critical patent/CN101841570B/zh
Publication of CN101841570A publication Critical patent/CN101841570A/zh
Application granted granted Critical
Publication of CN101841570B publication Critical patent/CN101841570B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种文件传输方法,用于实现点对点文件传输机制,其特征在于,包括步骤:所述客户端向固定服务器端请求下载指定文件;所述固定服务器指示所述客户端从固定服务器或临时服务器下载所述指定文件,其中,所述临时服务器是指曾经作为客户端下载过并保存有所述指定文件,而且能够向所述客户端提供文件下载服务的其他客户端;所述固定服务器保存有临时服务器列表,所述临时服务器列表记录有所有构成临时服务器的所述其他客户端的互联网协议地址。

Description

一种文件传输方法
技术领域
本发明涉及文件传输方法,特别涉及基于简单文件传输协议(Trivial FileTransfer Protocol,TFTP)优化的文件传输方法。
背景技术
TFTP是一个传输文件的简单协议(参考RFC(Request For Comments)1350),其实现基于用户数据包协议(User Datagram Protocol,UDP),可以在不同网络的主机间进行文件传送。
下面对TFTP进行详细说明。
TFTP基于UDP实现,其协议分层从下至上依次为物理层、数据链路层、互联网协议(Internet Protocol,IP)层、UDP层、TFTP层。TFTP使用端口69作为服务器端口,其所支持的指令有如下5种。
opcode   operation
1        Read request(RRQ)
2        Write request(WRQ)
3        Data(DATA)
4        Acknowledgment(ACK)
5        Error(ERROR)
其中,opcode为1、2、3、5的报文是TFTP客户端所使用的报文,而opcode为3、4、5的报文是TFTP服务器所使用的报文。
更具体地,TFTP指令的opcode为1(RRQ)、2(WRQ)时,指令的报文格式如下。
  opcode  filename   0   mode   0
其中,opcode表示指令,占两个字节,具体地为“1”或“2”。filename表示文件名,是以0为终止符的ascii字符串。filename后紧接一个值为0的字节。mode表示传输模式,是以0为终止符的ascii字符串。TFTP支持两种传输模式,mode为字符串“netascii”,则表示数据是8位的ASCII码形式,而mode为字符串“octet”,则表示数据是8位的源数据类型。mode后紧接一个值为0的字节。
RRQ指令或WRQ指令只能由TFTP客户端发起。
TFTP指令的opcode为3(DATA)时,指令的报文格式如下。
  opcode   block#   data
其中,opcode表示指令,占两个字节,具体地为“3”。Block#表示文件数据块号,占2个字节,且1<=Block#<=65535。data表示文件数据,占0~512字节。如果不是最后一个数据块,则data必须为512字节,如果是最后一个数据块,data必须小于512字节(可以为0)。
如果TFTP客户端发起RRQ(读文件),则由TFTP服务器发送DATA。
如果TFTP客户端发起WRQ(,写文件),则由TFTP客户端发送DATA。
TFTP指令的opcode为4(ACK)时,指令的报文格式如下。
  opcode   block#
其中,opcode表示指令,占两个字节,具体地为“4”。Block#表示文件数据块号,占2个字节,且1<=Block#<=65535,用于对opcode为1或2的读或写文件指令进行确认。
每一个RRQ或WRQ指令必须对应一个确认字符、即ACK。如果TFTP客户端发起RRQ(读文件),则TFTP服务器发送DATA,TFTP客户端回应ACK。如果TFTP客户端发起WRQ(写文件),则TFTP客户端发送DATA,TFTP服务器回应ACK。
TFTP指令的opcode为5(ERROR)时,指令的报文格式如下。
  opcode   errorcode   errmsg   0
其中,opcode表示指令,占两个字节,具体地为“5”。errorcode表示错误号,占2个字节,errorcode的值以及其相应的含义如下。
0    未定义错误,错误原因参考errmsg
1    指定的文件不存在
2    指定的文件不允许访问
3    磁盘空间满
4    不可识别的TFTP opcode
5    IP报文的传输ID错误
6    指定的文件已经存在
7    没有指定的用户
errmsg表示错误消息,是以0为终止符的ascii字符串,用以提示用户有关错误的消息。errmsg后紧接一个值为0的字节。
图1为表示现有的典型的TFTP客户端从TFTP服务器获取文件的过程的图。
在步骤1010,TFTP客户端向TFTP服务器发送读文件指令,即opcode为1(RRQ);filename为指定要读取的文件名;mode为“octet”表示以二进制方式传输。
在步骤1021,TFTP服务器收到TFTP客户端的读指令后,TFTP服务器向TFTP客户端发送数据,即opcode为3(DATA);block#为1,表示本次发送的数据是指定文件的第一块512字节的数据;data为指定文件的第一块512字节的数据。
在步骤1022,TFTP客户端收到TFTP服务器发送的数据后,TFTP客户端向TFTP服务器发送确认指令,即opcode为4(ACK);block#为1,表示TFTP客户端已经收到步骤1021的数据。
在步骤1031,TFTP服务器收到TFTP客户端的确认指令后,TFTP服务器向TFTP客户端发送数据,即opcode为3(DATA);block#为2,表示本次发送的数据是指定文件的第二块512字节的数据;data为指定文件的第二块512字节的数据。
在步骤1032,TFTP客户端收到TFTP服务器发送的数据后,TFTP客户端向TFTP服务器发送确认指令,即opcode为4(ACK);block#为2,表示TFTP客户端已经收到步骤1031的数据。
以此类推,TFTP服务器与TFTP客户端依次发送第3块至第n-1块的数据及确认指令。每一个数据块的大小为512字节。这里,n为指定的要读取的文件的数据块数。
接着,在步骤10n1,TFTP服务器向TFTP客户端发送数据,即opcode为3(DATA);block#为n,表示本次发送的数据是指定文件的第n块数据(也是最后一块数据),数据长度小于512字节(也可以为0);data为指定文件的第n块数据(,也是最后一块数据)。
在步骤10n2,TFTP客户端向TFTP服务器发送确认指令,即opcode为4(ACK);block#为n,表示TFTP客户端已经收到步骤10n1的数据;整个文件传输过程结束。
TFTP协议设计的初旨是进行小文件的传输,因此很容易实现,但不具备通常的文件传输协议(File Transfer Protocol,FTP)所具有的许多功能,例如TFTP只能从文件服务器上下载文件或向文件服务器上载文件,而不能像FTP那样列出目录,也不具有FTP所具有的认证功能。尤其,最早的TFTP协议因太过简单,而有很多限制。比如,文件块只能是512字节,传输效率低,再则没有约定超时机制。为解决这些问题,对TFTP协议进行了扩展,具体地,RFC2347允许扩展选项,RFC2348允许文件块大小协商,RFC2349允许超时协商。
具体地,当TFTP指令的opcode为1、2时,指令的报文格式如下。
  opcode   filename   0   mode   0   op   0   value   0
其中,opcode、filename及mode的含义不变。mode后可以跟多个选项对。每个选项对由一个op和一个value构成,op和value后紧跟一个值为0的字节。op为自定义选项名称,是以“0”为终止符的ascii字符串。value为自定义选项值,是以“0”为终止符的ascii字符串。
比如在RFC2348中,允许协商data的大小,此时,op为“blksize”,value为字符串,该字符串为数字,单位为字节,比如“1428”表示1428字节。
而在RFC2349中,则允许协商重传时间。此时,op为“timeout”,value为字符串,该字符串表示数字,单位为秒,比如“30”表示30秒。并且,在RFC2349中,允许通告文件大小,此时,op为“tsize”,value为字符串,该字符串表示数字,单位为字节,比如“234567”表示234567字节。
而且,新增如下的TFTP指令。
opcode  operation
6       acknowledge the options(OACK)
上述OACK指令、即选项确认字符指令的报文格式如下
  opcode   op   0   value   0
其中,opcode表示指令,占两个字节,具体地为“6”。opcode后可以跟多个选项对。每个选项对由一个op和一个value构成,op和value后紧跟一个值为0的字节。op为自定义选项名称,是以“0”为终止符的ascii字符串。value为自定义选项值,是以“0”为终止符的ascii字符串。
TFTP服务器收到携带选项的RRQ或WRQ后,回应OACK。如果TFTP服务器支持TFTP客户端指定的选项,则OACK中携带对应的选项对,op为TFTP客户端发送的选项名,value为TFTP服务器支持的相应op选项的值。
通过TFTP客户端携带自定义选项,TFTP服务器回应OACK,TFTP服务器和客户端可以协商具体的选项。TFTP客户端收到TFTP服务器的OACK后,回应ACK(black#为0),表示接受TFTP服务器的选项值。
以下,将RFC2347、RFC2348、RFC2349中带有扩展选项op及value的TFTP指令称为TFTP扩展指令。
图2为以支持文件传输块大小协商的RFC2348为例,示出TFTP客户端从TFTP服务器获取文件的过程的图。
在步骤2011,TFTP客户端向TFTP服务器发送读文件指令,即opcode为1(RRQ);filename为指定要读取的文件名;mode为“octet”表示以二进制方式传输;第一个自定义选项关键字(op)为“blksize”,第一个自定义选项值(value)为1432。
在步骤2012,TFTP服务器收到步骤2011中由TFTP发送的指令后,发现有自定义选项“blksize”,TFTP服务器本身支持这个自定义选项(“blksize”)和自定义选项值(1432),则回应TFTP客户端OACK,即opcode为6(OACK);第一个自定义选项关键字(op)为“blksize”,第一个自定义选项值(value)为1432,表示确认支持TFTP客户端指定的自定义选项。
在步骤2013,TFTP客户端收到TFTP服务器发送的OACK,发现TFTP服务器支持自己(TFTP客户端)指定的自定义选项“blksize”及选项值“1432”,说明选项协商成功,回应TFTP服务器ACK,即opcode为4(ACK);block#为0,表示选项协商成功。
在步骤2021,TFTP服务器收到TFTP客户端的选项协商成功确认后,向TFTP客户端发送第一块数据,即opcode为3(DATA);block#为1,表示本次发送的数据是指定文件的第一块1432字节的数据;data为指定文件的第一块1432字节的数据。
在步骤2022,TFTP客户端向TFTP服务器发送确认指令,即opcode为4(ACK);block#为2,表示TFTP客户端已经收到步骤2021的数据。
接着,TFTP服务器与TFTP客户端依次发送第二块至第n-1块的数据及确认指令。每一个数据块的大小为1432字节。这里,n为指定的要读取的文件的数据块数。
接着,在步骤20n1,TFTP服务器向TFTP客户端发送数据,即opcode为3(DATA);block#为n,表示本次发送的数据是指定文件的第n块数据(也是最后一块数据),数据长度小于1432字节(也可以为0);data为指定文件的第n块数据(也是最后一块数据)。
在步骤20n2,TFTP客户端向TFTP服务器发送确认指令,即opcode为4(ACK);block#为n,表示TFTP客户端已经收到步骤20n1的数据;整个文件传输过程结束。
上述的RFC2347、RFC2348、RFC2349只是对TFTP协议进行扩展,优化了传输效率,但本质上还是客户机/服务器(Client/Server,CS)结构,无法消除TFTP服务器性能瓶颈的隐患。
发明内容
鉴于现有TFTP中存在的问题,本发明提供了一种文件传输方法,能够消除由于CS结构导致的TFTP服务器性能瓶颈。
为了实现上述目的,根据本发明的一种文件传输方法,其特征在于,包括步骤:所述客户端向固定服务器端请求下载指定文件;所述固定服务器指示所述客户端从固定服务器或临时服务器下载所述指定文件,其中,所述临时服务器是指曾经作为客户端下载过并保存有所述指定文件而且能够向所述客户端提供文件下载服务的其他客户端;所述固定服务器保存有临时服务器列表,所述临时服务器列表记录有所有构成临时服务器的所述其他客户端的互联网协议地址。
并且,上述的文件传输方法中,其特征在于,所述固定服务器指示所述客户端从一个固定服务器或临时服务器下载所述指定文件的全部,或从多个固定服务器或临时服务器分别下载所述指定文件的一部分,而组成整个所述指定文件。
并且,上述的文件传输方法中,其特征在于,所述客户端向所述固定服务器发送的简单文件传输协议(TFTP)的文件下载请求(RRQ)包含一对由自定义选项名称(op)和自定义选项值(value)构成的自定义选项对,所述自定义选项名称为“p2p”,用于表示所述客户端支持点对点文件传输机制;所述固定服务器向所述客户端回应选项确认指令(OACK),所述选项确认指令(OACK)包含所述自定义选项对,所述自定义选项名称为“p2p”,则表示所述固定服务器支持点对点文件传输机制。
并且,上述的文件传输方法中,其特征在于,所述文件下载请求(RRQ)中所包含自定义选项值(value)包含文件模式(file-mode)位,用于表示所述客户端可以从一个固定服务器或临时服务器下载所述指定文件的全部,或可以从多个固定服务器或临时服务器分别下载所述指定文件的一部分,而组成整个所述指定文件,或表示该两种模式均支持;所述选项确认指令(OACK)中所包含自定义选项值(value)包含文件模式(file-mode)位,用于指示所述客户端从一个固定服务器或临时服务器下载所述指定文件的全部,或从多个固定服务器或临时服务器分别下载所述指定文件的一部分,而组成整个所述指定文件,或指示任意选择该两种模式之一。
并且,上述的文件传输方法中,其特征在于,所述文件下载请求(RRQ)中所包含自定义选项值(value)还包含第一互联网地址(first-ip),所述第一互联网地址(first-ip)为所述固定服务器的互联网协议地址;所述选项确认指令(OACK)中所包含自定义选项值(value)还包含第一互联网地址(first-ip),所述第一互联网地址(first-ip)为所述固定服务器的互联网协议地址。
并且,上述的文件传输方法中,其特征在于,所述选项确认指令(OACK)中所包含自定义选项值(value)还包含计数(count)位,用于表示所述固定服务器指示所述客户端用于下载文件的固定服务器或临时服务器的个数。
并且,上述的文件传输方法中,其特征在于,当所述计数(count)位为“0”,表示所述固定服务器指示所述客户端从所述固定服务器下载完整的所述指定文件。
并且,上述的文件传输方法中,其特征在于,当所述计数(count)位为“1”,所述选项确认指令(OACK)中所包含自定义选项值(value)还包含一个第二互联网协议地址(ip)时,表示所述固定服务器指示所述客户端可以从所述固定服务器或所述第二互联网协议地址(ip)的临时服务器下载完整的所述指定文件。
并且,上述的文件传输方法中,其特征在于,当所述计数(count)位的值大于1,所述选项确认指令(OACK)中所包含自定义选项值(value)还包含多个第二互联网协议地址(ip)及多个下载开始位置(begin)、下载结束位置(end)时,表示所述固定服务器指示所述客户端从所述多个互联网协议地址(ip)的临时服务器分别下载所述指定文件的所述下载开始位置(begin)和下载结束位置(end)之间所对应的部分。
并且,上述的文件传输方法中,其特征在于,所述文件下载请求(RRQ)中所包含自定义选项值(value)包含工作模式(work-mode)位,使用值“1”表示所述客户端只能工作在客户端模式,或使用值“2”表示所述客户端在下载完毕所述指定文件后,还可以作为临时服务器向其他客户端提供文件下载服务;所述文件下载请求(RRQ)中所包含自定义选项值(value)包含工作模式(work-mode)位表示所述客户端在下载完毕所述指定文件后作为临时服务器工作时,所述固定服务器将所述客户端作为与所述指定文件相对应的临时服务器记录到所述临时服务器列表中。
并且,上述的文件传输方法中,其特征在于,所述选项确认指令(OACK)中所包含自定义选项值(value)还包含工作模式(work-mode)位,使用值“3”表示所述固定服务器的工作模式为固定服务器。
并且,上述的文件传输方法中,其特征在于,所述文件下载请求(RRQ)中所包含自定义选项值(value)包含时间(time)位,用于表示所述客户端能够工作在临时服务器模式的时间长度;所述固定服务器将所述时间(time)作为所述临时服务器的信息记录到所述临时服务器列表中。
并且,上述的文件传输方法中,其特征在于,所述选项确认指令(OACK)中所包含自定义选项值(value)还包含时间(time)位,使用无限大值表示所述固定服务器工作在固定服务器模式。
根据本发明的文件传输方法,文件传输设备并非固定为客户端或服务器端,而是即可以工作于客户端模式或服务器模式,也可以工作在客户端模式的同时,支持作为临时的服务器。因此能够实现点对点文件传输机制,消除了由于CS结构导致的TFTP服务器性能瓶颈。
附图说明
通过下面结合附图进行的描述,本发明的上述和其他目的和特点将会变得更加清楚,其中:
图1为表示现有的典型的TFTP客户端从TFTP服务器获取文件的过程的图;
图2为以支持文件传输块大小协商的RFC2348为例,示出TFTP客户端从TFTP服务器获取文件的过程的图;
图3为表示根据本发明实施方式的TFTP客户端1下载文件A的具体过程的图;
图4为表示根据本发明实施方式的TFTP客户端2下载文件A的具体过程的图;
图5为示出了根据本发明实施方式的TFTP客户端2从TFTP客户端1下载文件的具体过程的图;
图6为示出了根据本发明实施方式的TFTP客户端3从TFTP服务器1下载文件A的具体过程的图;
图7为示出了根据本发明实施方式的TFTP客户端3从临时服务器(即TFTP客户端1)下载文件的一部分的具体过程的图;
图8为示出了根据本发明实施方式的TFTP客户端3从临时服务器(即TFTP客户端2)下载文件A的剩余部分数据的具体过程的图。
具体实施方式
以下,参照附图及表格详细说明本发明的实施方式。
(实施方式)
根据本发明的实施方式的文件传输方法,是基于RFC2347对TFTP进行的优化,具体地,扩展TFTP选项,引入点对点(Peer-to-Peer,p2p)机制。
通过在文件传输设备之间引入p2p机制,文件传输设备并非固定为客户端或服务器端,而是即可以工作于客户端模式或服务器模式,也可以工作在客户端模式的同时,支持作为临时的服务器。
具体地,p2p机制是指客户端先从一个服务器(这里称为first)获取文件信息,文件信息中包含“文件大小”以及“表示哪些其它服务器(这里称为second,可能是多个)可以提供指定的下载文件的信息”等。
此时,自定义选项名称、即op为“p2p”,是以0为终止符的ascii字符串。该op选项只支持RRQ(即下载文件)和OACK指令指令。相应地,自定义选项值、即value为变长字节数值,其构成为work-mode+file-mode+first-ip+time+count+info-list。
<work-mode>
work-mode表示工作模式,为1字节数值,数值为“1”则表示文件传输设备工作在客户端模式,数值为“2”则表示文件传输设备工作在客户端模式,同时支持作为临时的TFTP服务器。数值为“3”则表示设备工作在服务器模式,即固定作为TFTP服务器。
<file-mode>
fle-mode表示文件获取模式,为1字节数值。bit0,对于TFTP客户端,表示支持从指定的一个TFTP服务器(包括临时或固定的TFTP服务器)下载完整文件,而对于TFTP服务器,表示允许一个TFTP客户端从自己这里下载指定的完整的文件。bit1,对于TFTP客户端,表示支持从指定的多个TFTP服务器(包括临时或固定的TFTP服务器)下载所述指定文件的不同部分;而对于TFTP服务器,表示允许一个TFTP客户端从自己这里下载所述指定文件的一部分数据,其它位保留。
bit0和bit1不冲突,可以同时置位,bit0和bit1同时置位时,对于TFTP客户端,表示既可以从指定的一个TFTP服务器(包括临时或固定的TFTP服务器)下载完整文件,也可以从指定的多个TFTP服务器(包括临时或固定的TFTP服务器)下载所述指定文件的不同部分。而对于TFTP服务器,则表示既允许一个TFTP客户端从自己这里下载指定的完整的文件,也允许一个TFTP客户端从自己这里下载所述指定文件的一部分数据。
<first-ip>
first-ip表示TFTP服务器IP地址,为4字节数值。
(1)当TFTP客户端向frst发起RRQ请求时,first-ip为first的IP地址。first收到TFTP客户端的RRQ请求后可以校验first-ip是否为自己的IP地址。Second收到TFTP客户端的RRQ请求后可以校验first-ip是否是自己信任的first推荐过来的。
(2)当TFTP服务器(包括临时TFTP服务器)回应OACK时,first-ip为前面RRQ请求中相应的first-ip。
<time>
time表示TFTP客户端下载完指定文件后作为临时TFTP服务器提供这个文件的下载服务的时间长度,为4字节数值,单位为秒。
(1)当TFTP客户端发起RRQ请求时,如果客户端支持临时TFTP服务器,则time表示自己支持作为临时TFTP服务器的时间长度;如果客户端支持固定TFTP服务器,time必须为0xffffffff,表示无限时间长度;如果客户端只支持客户端模式,则time必须为0。
(2)当固定TFTP服务器回应OACK时,time无意义。
(3)当临时TFTP服务器回应OACK时,time是临时TFTP服务器剩余的服务时间长度(承诺的时间长度减去已经工作的时间长度)。
<count>
count表示后面info-list的个数,为2字节数值。
(1)当TFTP客户端向固定TFTP服务器发起RRQ时,count必须为0。
(2)当TFTP客户端向临时TFTP服务器发起RRQ时,count必须为0或1。count为0表示希望从临时TFTP服务器下载指定的完整文件;count为1,表示下载info-list指定的部分文件。
(3)当固定TFTP服务器向TFTP客户端发送OACK时,如果固定TFTP服务器所存储的服务器列表表格中没有临时服务器,则count必须为0,表示TFTP客户端需要从自己(固定TFTP服务器)下载完整文件;而如果固定TFTP服务器所存储的服务器列表表格中有临时服务器,则count必须大于等于1。count为1,表示TFTP客户端需要从指定的临时TFTP服务器下载完整文件;count>1,表示TFTP客户端需要分别从多个临时TFTP服务器下载指定文件的不同部分。
(4)临时TFTP服务器向TFTP客户端发送OACK时,count和info-list必须与OACK对应的前面的RRQ中的count和info-list一致。
<info-list>
info-list由count个info组成,每个info的构成为ip+begin+end。
(1)其中,ip表示服务器IP地址,为4字节数值。begin表示数据块在文件中的起始位置(从0开始),即相对于文件第一个字节的偏移,为4字节数值。end表示数据块在文件中的结束位置(从0开始),即相对于文件第一个字节的偏移,为4字节数值。
(2)对于TFTP客户端,向first发起RRQ时,count必须为0。向second发起RRQ时,ip必须填充为second的IP地址,begin表示希望获取的所述指定文件起始位置,end表示希望获取的所述指定文件结束位置。
(3)对于TFTP服务器,当first回应RRQ时,count必须大于等于1,ip表示其它TFTP服务器的IP地址,该服务器拥有所述指定文件的begin和end之间的文件数据。这里,如果count为1,begin为文件起始,end为文件结束,则表示first推荐客户端从指定的ip(first或second)下载整个文件。
(4)second回应RRQ时,count和info-list必须与OACK对应的前面的RRQ中的count和info-list一致。
对于TFTP服务器,如果支持从指定的多个TFTP服务器下载文件的不同部分的模式,则需要本地记录相应文件的临时服务器信息,即哪些服务器上有相应的文件,如下表1为TFTP服务器所存储的服务器列表表格。
Figure GSA00000112031000121
表1
当TFTP客户端发起携带p2p的RRQ时,对于接收到携带p2p的RRQ请求的TFTP服务器,如果自己维护的服务器列表表格中没有指定的文件信息,则允许客户端从自己这里(一个服务器)处下载文件。同时如果客户端支持临时服务器,则向服务器列表表格中记录这个客户端IP地址及可以作为临时服务器的时间。
而如果接收到携带p2p的RRQ请求的TFTP服务器所维护的服务器列表表格中有指定的文件信息,则通知客户端从指定的文件信息中对应的临时服务器下载。即TFTP服务器通过Info-list告诉当前TFTP客户端从哪些临时TFTP服务器下载。
服务器根据临时服务器时间对表项进行老化处理。
下面对根据本发明的p2p机制的文件传输方法的具体的文件传输过程,进行举例说明。
在此例子中,有三个TFTP客户端,分别记为TFTP客户端1(IP地址为ip-1)、TFTP客户端2(IP地址为IP-2)、TFTP客户端3(IP地址为ip-3),这三个TFTP客户端均支持work-mode的值为2,均支持file-mode的值为0xC0(即bit0和bit1同时置位),支持作为临时服务器时的time的值均为3600秒(1小时)。同时在此例中,有1个TFTP服务器,记为TFTP服务器1(IP地址为ip-4),支持work-mode的值为3,支持file-mode的值为0xC0(即bit0和bit1同时置位),TFTP服务器1的IP地址为ip-4,TFTP服务器1上有文件A(二进制文件),文件大小为1000字节。
图3为表示根据本实施方式的TFTP客户端1下载文件A的具体过程的图。
首先在步骤3011,TFTP客户端1向TFTP服务器发送读文件指令,即opcode为1(RRQ);filename为“文件A”;mode为“octet”表示以二进制方式传输;第一个自定义选项关键字(即第一个op)为“p2p”。
第一个自定义选项值(即value)按照work-mode+file-mode+first-ip+time+count+info-list进行解释:work-mode值为2,表示TFTP客户端1工作在客户端模式,同时支持作为临时的TFTP服务器;file-mode值为0xC0(bit0和bit1同时置位),表示TFTP客户端1既可以从指定的一个TFTP服务器(临时或固定的TFTP服务器)下载完整文件,也可以从指定的多个TFTP服务器(临时或固定的TFTP服务器)下载指定文件的不同部分。first-ip值为ip-4,即TFTP服务器1的IP地址。time值为3600,表示TFTP客户端1下载完文件A后可以在1小时内作为临时TFTP服务器提供文件A的下载服务。count值为0,表示后面没有info-list。
接着在步骤3012,TFTP服务器1收到步骤3011的指令后,发现有自定义选项“p2p”,TFTP服务器1本身支持这个自定义选项(“p2p”),则回应OACK,opcode为6(即OACK);第一个自定义选项关键字为“p2p”;第一个自定义选项值(即value)按照work-mode+file-mode+first-ip+time+count+info-list进行解释:work-mode值为3,表示TFTP服务器1工作在服务器模式,作为固定TFTP服务器;file-mode值为0xC0(bit0和bit1同时置位),表示TFTP服务器1既允许一个TFTP客户端从自己这里下载指定的完整的文件,也允许一个TFTP客户端从自己这里下载指定文件的一部分数据;first-ip值为TFTP服务器1的IP地址ip-4;因为TFTP客户端1是第一个从TFTP服务器1上下载文件,TFTP服务器1上维护的服务器列表表格为空(临时TFTP服务器数量为0),即只能让TFTP客户端从自己这里下载完整的文件A。time值为0xffffffff,表示支持无限时间的下载服务。count值为1,表示后面有1份info-list。Info-list中各项如下。即ip为ip-4,即TFTP服务器1的IP地址ip-4。begin值为0,end值为999,表示TFTP服务器1希望TFTP客户端2从ip-4下载完整的文件A。
接着在步骤3013,TFTP客户端1收到TFTP服务器1发送OACK,发现TFTP服务器1支持自己(TFTP客户端1)指定的自定义选项“p2p”,选项值ip-4通知自己(TFTP客户端1)从TFTP服务器1上下载整个文件A。TFTP客户端1决定从TFTP服务器1上下载整个文件A,则向TFTP服务器1回应ACK,即opcode为4(ACK);block#为0,表示选项协商成功。
接着在步骤3021,TFTP服务器1收到TFTP客户端1的选项协商成功确认后,TFTP服务器1向TFTP客户端1发送第一份数据,即opcode为3(DATA);block#为1,表示本次发送的数据是指定文件的第一块512字节的数据;data为指定文件的第一块512字节的数据。
接着在步骤3022,TFTP客户端1向TFTP服务器1发送确认指令,即opcode为4(ACK);block#为1,表示TFTP客户端1已经收到步骤3021的数据。
接着在步骤3031,TFTP服务器1向TFTP客户端1发送最后一份数据,即opcode为3(DATA);block#为2,表示本次发送的数据是指定文件的第二块数据,长度为488字节,表示为最后一块数据;data为指定文件的第二块数据(488字节)。
接着在步骤3032,TFTP客户端1向TFTP服务器1发送确认指令,即opcode为4(ACK);block#为2,表示TFTP客户端1已经收到步骤3031的数据。
在完成步骤3032后,TFTP客户端1接着启动本地临时TFTP服务器,在后续1小时内提供文件A的下载服务,允许其它TFTP客户端从自己这里下载完整或部分文件A。
TFTP服务器1收到步骤3032的确认后,在自己维护的服务器列表表格中添加如下内容。
  文件名   文件大小   临时服务器地址   临时服务器时间
  文件A   1000字节   Ip-1   3600秒
表2
10秒钟后,TFTP服务器1上服务器列表表格刷新为如下内容,即临时服务器时间减少了10秒。
  文件名   文件大小   临时服务器地址   临时服务器时间
  文件A   1000字节   Ip-1   3590秒
表3
下面,说明TFTP客户端2下载文件A的具体过程的图。
接着,图4为表示根据本实施方式的TFTP客户端2下载文件A的具体过程的图。
首先,在步骤4011,TFTP客户端2向TFTP服务器1发送读文件指令,即opcode为1(RRQ);filename为“文件A”;mode为“octet”表示以二进制方式传输;第一个自定义选项关键字(即op)为“p2p”;第一个自定义选项值(即value)按照work-mode+file-mode+first-ip+time+count+info-list进行解释,work-mode的值为2,表示TFTP客户端2工作在客户端模式,同时支持作为临时的TFTP服务器;file-mode值为0xC0(bit0和bit1同时置位),表示TFTP客户端2既可以从指定的一个TFTP服务器(临时或固定的TFTP服务器)下载完整文件,也可以从指定的多个TFTP服务器(临时或固定的TFTP服务器)下载指定文件的不同部分;first-ip的值为TFTP服务器1的IP地址ip-4。time值为3600,表示TFTP客户端2下载完文件A后可以在1小时内作为临时TFTP服务器提供文件A的下载服务。count值为0,表示后面没有info-list。
接着在步骤4012,TFTP服务器1收到步骤4011的指令后,发现有自定义选项“p2p”,TFTP服务器1本身支持这个自定义选项(“p2p”),则回应OACK,即opcode为6(OACK);第一个自定义选项关键字为“p2p”;第一个自定义选项值按照work-mode+file-mode+first-ip+time+count+info-list进行解释,即work-mode值为3,表示TFTP服务器1工作在服务器模式,作为固定TFTP服务器;file-mode值为0xC0(bit0和bit1同时置位),表示TFTP服务器1既允许一个TFTP客户端从自己这里下载指定的完整的文件,也允许一个TFTP客户端从自己这里下载指定文件的一部分数据;first-ip值为TFTP服务器1的IP地址ip-4,time值为3600,表示支持无限时间的下载服务。count值为1,表示后面有一份info-list,按照ip+begin+end进行解释,即ip值为TFTP服务器1维护的服务器列表表格中的一个随机IP地址,假设选定为TFTP客户端1;begin值为0,end值为999,表示TFTP服务器1希望TFTP客户端2从ip-1下载完整的文件A。
接着在步骤4013,TFTP客户端2收到TFTP服务器1发送的OACK,发现TFTP服务器1支持自己(TFTP客户端2)指定的自定义选项“p2p”,选项值ip-1通知自己(TFTP客户端2)从TFTP客户端1上下载整个文件A。TFTP客户端2决定从TFTP客户端1上下载整个文件A,则回应TFTP服务器1ACK,结束与TFTP服务器1的协商,即opcode为4(ACK);block#为0,表示选项协商成功。
TFTP服务器1收到步骤4013的通知后,则认为TFTP客户端2会成功从TFTP客户端1下载文件A,将TFTP客户端2加入到自己维护的表中,服务器列表表格变为如下。
Figure GSA00000112031000161
表4
TFTP客户端2完成步骤4013后,得到临时服务器的信息,重新启动一次TFTP下载,从临时服务器(即TFTP客户端1)下载文件。
图5为示出了根据本实施方式的TFTP客户端2从TFTP客户端1下载文件的具体过程的图。
首先,在步骤5011,TFTP客户端2向TFTP临时服务器(TFTP客户端1)发送读文件指令,即opcode为1(RRQ);filename为“文件A”;mode为“octet”,表示以二进制方式传输;第一个自定义选项关键字为“p2p”;第一个自定义选项值按照work-mode+file-mode+first-ip+time+count+info-list进行解释,即work-mode值为2,表示TFTP客户端2工作在客户端模式,同时支持作为临时的TFTP服务器;file-mode值为0xC0(bit0和bit1同时置位),表示TFTP客户端2既可以从指定的一个TFTP服务器(临时或固定的TFTP服务器)下载完整文件,也可以从指定的多个TFTP服务器(临时或固定的TFTP服务器)下载指定文件的不同部分;first-ip值为ip-4,即TFTP服务器1的IP地址;time值为3600,表示TFTP客户端2下载完文件A后可以在1小时内作为临时TFTP服务器提供文件A的下载服务;count值为0,表示后面没有info-list。
接着在步骤5012,TFTP临时服务器(TFTP客户端1)收到步骤5011的指令后,发现有自定义选项“p2p”,TFTP客户端1本身支持这个自定义选项(“p2p”),则回应OACK,即opcode为6(OACK);第一个自定义选项关键字为“p2p”;第一个自定义选项值按照work-mode+file-mode+first-ip+time+count+info-list进行解释,即work-mode值为2,表示TFTP临时服务器(TFTP客户端1)工作在临时服务器模式,作为临时TFTP服务器;file-mode值为0xC0(bit0和bit1同时置位),表示TFTP临时服务器(TFTP客户端1)既允许一个TFTP客户端从自己这里下载指定的完整的文件,也允许一个TFTP客户端从自己这里下载指定文件的一部分数据;first-ip值为TFTP服务器1的IP地址ip-4;time值为3590,表示TFTP临时服务器(TFTP客户端1)上文件A还支持3590秒的下载服务。count值为0,与前面RRQ一致。
接着在步骤5013,TFTP客户端2收到OACK,发现TFTP临时服务器(TFTP客户端1)支持自己(TFTP客户端2)指定的自定义选项“p2p”,选项值ip-1表示允许自己(TFTP客户端2)从TFTP临时服务器(TFTP客户端1)上下载整个文件A。TFTP客户端2决定从TFTP临时服务器(TFTP客户端1)上下载整个文件A,则回应TFTP临时服务器(TFTP客户端1)ACK,即opcode为4(ACK),block#为0,表示选项协商成功。
接着在步骤5021,TFTP临时服务器(TFTP客户端1)收到TFTP客户端2的选项协商成功确认后,TFTP临时服务器(TFTP客户端1)向TFTP客户端2发送第一份数据,即opcode为3(DATA);block#为1,表示本次发送的数据是指定文件的第一块512字节的数据;data为指定文件的第一块512字节的数据。
接着在步骤5022,TFTP客户端2向TFTP临时服务器(TFTP客户端1)发送确认指令,即opcode为4(ACK4);block#为1,表示TFTP客户端2已经收到步骤5021的数据。
接着在步骤5031,TFTP临时服务器(TFTP客户端1)向TFTP客户端2发送最后一份数据,即opcode为3(DATA);block#为2,表示本次发送的数据是指定文件的第二块数据,长度为488字节,表示为最后一块数据;data为指定文件的第二块数据(488字节)。
接着在步骤5032,TFTP客户端2向TFTP临时服务器(TFTP客户端1)发送确认指令,即opcode为4(ACK);block#为2,表示TFTP客户端2已经收到步骤5021的数据。
TFTP客户端2完成步骤5032后,启动本地临时TFTP服务器,在后续1小时内提供文件A的下载服务,允许其它TFTP客户端从自己这里下载完整或部分文件A。10秒钟后,TFTP服务器1上服务器列表表格刷新为如下内容。
Figure GSA00000112031000181
表5
下面说明TFTP客户端3从TFTP服务器1下载文件A的过程。
图6为示出了根据本实施方式的TFTP客户端3从TFTP服务器1下载文件A的具体过程的图。
首先,在步骤6011,TFTP客户端3向TFTP服务器1发送读文件指令,即opcode为1(RRQ);filename为“文件A”;mode为“octet”表示以二进制方式传输;第一个自定义选项关键字为“p2p”;第一个自定义选项值按照work-mode+file-mode+first-ip+time+count+info-list进行解释,即work-mode值为2,表示TFTP客户端3工作在客户端模式,同时支持作为临时的TFTP服务器;file-mode值为0xC0(bit0和bit1同时置位),表示TFTP客户端3既可以从指定的一个TFTP服务器(临时或固定的TFTP服务器)下载完整文件,也可以从指定的多个TFTP服务器(临时或固定的TFTP服务器)下载指定文件的不同部分;first-ip值为TFTP服务器1的IP地址ip-4。time值为3600,表示TFTP客户端3下载完文件A后可以在1小时内作为临时TFTP服务器提供文件A的下载服务。count值为0,表示后面没有info-list。
接着在步骤6012,TFTP服务器1收到步骤6011的指令后,发现有自定义选项“p2p”,TFTP服务器1本身支持这个自定义选项(“p2p”),且自己维护的服务器列表表格中有临时服务器提供这个文件的下载服务,则回应OACK,即opcode为6(OACK);第一个自定义选项关键字为“p2p”;第一个自定义选项值按照work-mode+file-mode+first-ip+time+count+info-list进行解释,即work-mode值为3,表示TFTP服务器1工作在服务器模式,作为固定TFTP服务器;file-mode值为0xC0(bit0和bit1同时置位),表示TFTP服务器1既允许一个TFTP客户端从自己这里下载指定的完整的文件,也允许一个TFTP客户端从自己这里下载指定文件的一部分数据;first-ip值为TFTP服务器1的IP地址ip-4。time值为3600,表示支持无限时间的下载服务。count值为2,表示后面有两份info-list,按照ip+begin+end进行解释,即第一份info-list,ip值为ip-1(TFTP客户端1);begin值为0,end值为511,表示TFTP服务器1希望TFTP客户端3从ip-1下载文件A的前面部分。第二份info-list,ip值为ip-2(TFTP客户端2);begin值为512,end值为999,表示TFTP服务器1希望TFTP客户端3从ip-2下载文件A的后面部分。
接着在步骤6013,TFTP客户端3收到TFTP服务器1发送的OACK,发现TFTP服务器1支持自己(TFTP客户端3)指定的自定义选项“p2p”,自定义选项值通知自己(TFTP客户端3)从TFTP客户端1和TFTP客户端2上下载文件A。TFTP客户端3决定从TFTP客户端1和TFTP客户端2上下载整个文件A,则向TFTP服务器1回应ACK,结束与TFTP服务器1的协商,即opcode为4(ACK);block#为0,表示选项协商成功。
TFTP服务器1收到步骤6013的通知后,则认为TFTP客户端3会成功下载文件A,将TFTP客户端3加入到自己维护的服务器列表表格中,服务器列表表格变为如下。
Figure GSA00000112031000191
表6
TFTP客户端3完成步骤6013后,得到临时服务器的信息,重新启动一次TFTP下载,从临时服务器(即TFTP客户端1)下载文件A的一部分。
图7为示出了根据本实施方式的TFTP客户端3从临时服务器(即TFTP客户端1)下载文件的一部分的具体过程的图。
首先,在步骤7011,TFTP客户端3向TFTP临时服务器(TFTP客户端1)发送读文件指令,即opcode为1(RRQ;filename为“文件A”;mode为“octet”表示以二进制方式传输;第一个自定义选项关键字为“p2p”;第一个自定义选项值按照work-mode+file-mode+first-ip+time+count+info-list进行解释,即work-mode值为2,表示TFTP客户端3工作在客户端模式,同时支持作为临时的TFTP服务器;file-mode值为0xC0(bit0和bit1同时置位),表示TFTP客户端3既可以从指定的一个TFTP服务器(临时或固定的TFTP服务器)下载完整文件,也可以从指定的多个TFTP服务器(临时或固定的TFTP服务器)下载指定文件的不同部分;first-ip值为ip-4,即TFTP服务器1的IP地址。time值为3600,表示TFTP客户端3下载完文件A后可以在1小时内作为临时TFTP服务器提供文件A的下载服务。count值为1;info-list中ip为ip-1,begin为0,end为511,表示希望从ip-1下载文件A的0~511字节数据。
接着在步骤7012,TFTP临时服务器(TFTP客户端1)收到步骤7011的指令后,发现有自定义选项“p2p”,TFTP客户端1本身支持这个自定义选项(“p2p”),且有指定的文件A对应数据,则回应OACK,即opcode为6(OACK);第一个自定义选项关键字为“p2p”;第一个自定义选项值按照work-mode+file-mode+first-ip+time+count+info-list进行解释,即work-mode值为2,表示TFTP临时服务器(TFTP客户端1)工作在临时服务器模式,作为临时TFTP服务器;file-mode值为0xC0(bit0和bit1同时置位),表示TFTP临时服务器(TFTP客户端1)既允许一个TFTP客户端从自己这里下载指定的完整的文件,也允许一个TFTP客户端从自己这里下载指定文件的一部分数据;first-ip值为TFTP服务器1的IP地址ip-4;time值为3580;表示TFTP临时服务器(TFTP客户端1)上文件A还支持3580秒的下载服务;count值为1;info-list中的ip为ip-1,begin为0,end为511,表示提供文件A的0~511字节数据的下载服务。
接着在步骤7013,TFTP客户端3收到OACK,发现TFTP临时服务器(TFTP客户端1)支持自己(TFTP客户端3)指定的自定义选项“p2p”,选项值允许自己(TFTP客户端3)从TFTP临时服务器(TFTP客户端1)上下载文件A的0~511字节数据。TFTP客户端3决定从TFTP临时服务器(TFTP客户端1)上下载文件A的0~511字节数据,则向TFTP临时服务器(TFTP客户端1)回应ACK,即opcode为4(ACK);block#为0,表示选项协商成功。
接着在步骤7021,TFTP临时服务器(TFTP客户端1)收到TFTP客户端3的选项协商成功确认后,TFTP临时服务器(TFTP客户端1)向TFTP客户端3发送第一份数据,即opcode为3(DATA);block#为1,表示本次发送的数据是指定文件的第一块512字节的数据;data为指定文件的第一块512字节的数据。
接着在步骤7022,TFTP客户端3向TFTP临时服务器(TFTP客户端1)发送确认指令,即opcode为4(ACK);block#为1,表示TFTP客户端3已经收到步骤7021的数据。
接着在步骤7031,TFTP临时服务器(TFTP客户端1)向TFTP客户端3发送最后一份数据(0字节),即opcode为3(DATA);block#为2,表示本次发送的数据是指定文件的第二块数据,长度为0字节,表示为最后一块数据;data为指定文件的第二块数据(0字节)。
接着在步骤7032,TFTP客户端3向TFTP临时服务器(TFTP客户端1)发送确认指令,即opcode为4(ACK);block#为2,表示TFTP客户端3已经收到步骤7021的数据。TFTP客户端3完成从TFTP临时服务器(TFTP客户端1)下载文件A的0~511字节数据。
接着,TFTP客户端3再从临时服务器(即TFTP客户端2)下载文件A的剩余部分数据。
图8为示出了根据本实施方式的TFTP客户端3从临时服务器(即TFTP客户端2)下载文件A的剩余部分数据的具体过程的图。
首先,在步骤8011,TFTP客户端3向TFTP临时服务器(TFTP客户端2)发送读文件指令,即opcode为1(RRQ);filename为“文件A”;mode为“octet”表示以二进制方式传输;第一个自定义选项关键字为“p2p”;第一个自定义选项值按照work-mode+file-mode+first-ip+time+count+info-list进行解释,即work-mode值为2,表示TFTP客户端3工作在客户端模式,同时支持作为临时的TFTP服务器;file-mode值为0xC0(bit0和bit1同时置位),表示TFTP客户端3既可以从指定的一个TFTP服务器(临时或固定的TFTP服务器)下载完整文件,也可以从指定的多个TFTP服务器(临时或固定的TFTP服务器)下载指定文件的不同部分;first-ip值为ip-4,即TFTP服务器1的IP地址;time值为3600,表示TFTP客户端3下载完文件A后可以在1小时内作为临时TFTP服务器提供文件A的下载服务;count值为1;info-list中的ip为ip-2,begin为512,end为999,表示希望从ip-2下载文件A的512~999字节数据。
接着在步骤8012,TFTP临时服务器(TFTP客户端2)收到步骤8011的指令后,发现有自定义选项“p2p”,TFTP客户端2本身支持这个自定义选项(“p2p”),且有指定的文件A的相应数据,则回应OACK,即opcode为6(OACK);第一个自定义选项关键字为“p2p”;第一个自定义选项值按照work-mode+file-mode+first-ip+time+count+info-list进行解释,即work-mode值为2,表示TFTP临时服务器(TFTP客户端2)工作在临时服务器模式,作为临时TFTP服务器;file-mode值为0xC0(bit0和bit1同时置位),表示TFTP临时服务器(TFTP客户端2)既允许一个TFTP客户端从自己这里下载指定的完整的文件,也允许一个TFTP客户端从自己这里下载指定文件的一部分数据;first-ip值为TFTP服务器1的IP地址ip-4;time值为3590;表示TFTP临时服务器(TFTP客户端2)上文件A还支持3590秒的下载服务;count值为1;info-list:ip为ip-2,begin为512,end为999,表示提供文件A的512~999字节数据的下载服务。
接着在步骤8013,TFTP客户端3收到OACK,发现TFTP临时服务器(TFTP客户端2)支持自己(TFTP客户端3)指定的自定义选项“p2p”,选项值允许自己(TFTP客户端3)从TFTP临时服务器(TFTP客户端2)上下载文件A的512~999字节数据。TFTP客户端3决定从TFTP临时服务器(TFTP客户端2)上下载文件A的512~999字节数据,则回应TFTP临时服务器(TFTP客户端2)ACK,即opcode为4(ACK);block#为0,表示选项协商成功。
接着在步骤8021,TFTP临时服务器(TFTP客户端2)收到TFTP客户端3的选项协商成功确认后,TFTP临时服务器(TFTP客户端2)向TFTP客户端3发送第一份数据,即opcode为3(DATA);block#为1,表示本次发送的数据是指定文件的第一块512~999字节数据;data为指定文件的第一块512~999字节数据。
接着在步骤8022,TFTP客户端3向TFTP临时服务器(TFTP客户端2)发送确认指令,即opcode为4(ACK);block#为1,表示TFTP客户端3已经收到步骤8021的数据。TFTP客户端3完成从TFTP临时服务器(TFTP客户端2)下载文件A的512~999字节数据。从而TFTP客户端3获得完整文件A。
如上所述,根据本发明的文件传输方法,文件传输设备并非固定为客户端或服务器端,而是即可以工作于客户端模式或服务器模式,也可以工作在客户端模式的同时,支持作为临时的服务器。因此实现了网络设备之间的点对点式的文件传输,消除了由于CS结构导致的TFTP服务器性能瓶颈,能够提高文件传输的效率。
产业上的可利用性
本发明的文件传输方法适用于网络设备之间的点对点式的文件传输。

Claims (13)

1.一种文件传输方法,其特征在于,包括步骤:
所述客户端向固定服务器端请求下载指定文件;
所述固定服务器指示所述客户端从固定服务器或临时服务器下载所述指定文件,其中,
所述临时服务器是指曾经作为客户端下载过并保存有所述指定文件,而且能够向所述客户端提供文件下载服务的其他客户端;
所述固定服务器保存有临时服务器列表,所述临时服务器列表记录有所有构成临时服务器的所述其他客户端的互联网协议地址。
2.如权利要求1所述的文件传输方法,其特征在于,
所述固定服务器指示所述客户端从一个固定服务器或临时服务器下载所述指定文件的全部,或从多个固定服务器或临时服务器分别下载所述指定文件的一部分,而组成整个所述指定文件。
3.如权利要求1或2所述的文件传输方法,其特征在于,
所述客户端向所述固定服务器发送的简单文件传输协议(TFTP)的文件下载请求(RRQ)包含一对由自定义选项名称(op)和自定义选项值(value)构成的自定义选项对,所述自定义选项名称为“p2p”,用于表示所述客户端支持点对点文件传输机制;
所述固定服务器向所述客户端回应选项确认指令(OACK),所述选项确认指令(OACK)包含所述自定义选项对,所述自定义选项名称为“p2p”,则表示所述固定服务器支持点对点文件传输机制。
4.如权利要求3所述的文件传输方法,其特征在于,
所述文件下载请求(RRQ)中所包含自定义选项值(value)包含文件模式(file-mode)位,用于表示所述客户端可以从一个固定服务器或临时服务器下载所述指定文件的全部,或可以从多个固定服务器或临时服务器分别下载所述指定文件的一部分,而组成整个所述指定文件,或表示该两种模式均支持;
所述选项确认指令(OACK)中所包含自定义选项值(value)包含文件模式(file-mode)位,用于指示所述客户端从一个固定服务器或临时服务器下载所述指定文件的全部,或从多个固定服务器或临时服务器分别下载所述指定文件的一部分,而组成整个所述指定文件,或指示任意选择该两种模式之一。
5.如权利要求4所述的文件传输方法,其特征在于,
所述文件下载请求(RRQ)中所包含自定义选项值(value)还包含第一互联网地址(first-ip),所述第一互联网地址(first-ip)为所述固定服务器的互联网协议地址;
所述选项确认指令(OACK)中所包含自定义选项值(value)还包含第一互联网地址(first-ip),所述第一互联网地址(first-ip)为所述固定服务器的互联网协议地址。
6.如权利要求5所述的文件传输方法,其特征在于,
所述选项确认指令(OACK)中所包含自定义选项值(value)还包含计数(count)位,用于表示所述固定服务器指示所述客户端用于下载文件的固定服务器或临时服务器的个数。
7.如权利要求6所述的文件传输方法,其特征在于,
当所述计数(count)位为“0”,表示所述固定服务器指示所述客户端从所述固定服务器下载完整的所述指定文件。
8.如权利要求6所述的文件传输方法,其特征在于,
当所述计数(count)位为“1”,所述选项确认指令(OACK)中所包含自定义选项值(value)还包含一个第二互联网协议地址(ip)时,表示所述固定服务器指示所述客户端可以从所述固定服务器或所述第二互联网协议地址(ip)的临时服务器下载完整的所述指定文件。
9.如权利要求6所述的文件传输方法,其特征在于,
当所述计数(count)位的值大于1,所述选项确认指令(OACK)中所包含自定义选项值(value)还包含多个第二互联网协议地址(ip)及多个下载开始位置(begin)、下载结束位置(end)时,表示所述固定服务器指示所述客户端从所述多个互联网协议地址(ip)的临时服务器分别下载所述指定文件的所述下载开始位置(begin)和下载结束位置(end)之间所对应的部分。
10.如权利要求3所述的文件传输方法,其特征在于,
所述文件下载请求(RRQ)中所包含自定义选项值(value)包含工作模式(work-mode)位,使用值“1”表示所述客户端只能工作在客户端模式,或使用值“2”表示所述客户端在下载完毕所述指定文件后,还可以作为临时服务器向其他客户端提供文件下载服务;
所述文件下载请求(RRQ)中所包含自定义选项值(value)包含工作模式(work-mode)位表示所述客户端在下载完毕所述指定文件后作为临时服务器工作时,所述固定服务器将所述客户端作为与所述指定文件相对应的临时服务器记录到所述临时服务器列表中。
11.如权利要求10所述的文件传输方法,其特征在于,
所述选项确认指令(OACK)中所包含自定义选项值(value)还包含工作模式(work-mode)位,使用值“3”表示所述固定服务器的工作模式为固定服务器。
12.如权利要求10所述的文件传输方法,其特征在于,
所述文件下载请求(RRQ)中所包含自定义选项值(value)包含时间(time)位,用于表示所述客户端能够工作在临时服务器模式的时间长度;
所述固定服务器将所述时间(time)作为所述临时服务器的信息记录到所述临时服务器列表中。
13.如权利要求11所述的文件传输方法,其特征在于,
所述选项确认指令(OACK)中所包含自定义选项值(value)还包含时间(time)位,使用无限大值表示所述固定服务器工作在固定服务器模式。
CN 201010179148 2010-05-21 2010-05-21 一种文件传输方法 Active CN101841570B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010179148 CN101841570B (zh) 2010-05-21 2010-05-21 一种文件传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010179148 CN101841570B (zh) 2010-05-21 2010-05-21 一种文件传输方法

Publications (2)

Publication Number Publication Date
CN101841570A true CN101841570A (zh) 2010-09-22
CN101841570B CN101841570B (zh) 2013-05-08

Family

ID=42744689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010179148 Active CN101841570B (zh) 2010-05-21 2010-05-21 一种文件传输方法

Country Status (1)

Country Link
CN (1) CN101841570B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102201903A (zh) * 2011-06-07 2011-09-28 合肥华云通信技术有限公司 一种简单可靠的远程文件传输方法
CN102355480A (zh) * 2011-07-21 2012-02-15 中兴通讯股份有限公司 基于tftp的文件传输方法、系统、客户端和服务器
CN102651861A (zh) * 2011-02-24 2012-08-29 腾讯科技(深圳)有限公司 用于移动终端的下载方法、移动终端和代理下载服务器
CN103430506A (zh) * 2011-02-28 2013-12-04 交互式社交网络有限公司 网络通信系统和方法
CN103702186A (zh) * 2013-11-29 2014-04-02 康佳集团股份有限公司 一种基于互联网的机顶盒点对点升级的实现方法及系统
CN104010023A (zh) * 2013-02-26 2014-08-27 霍尼韦尔国际公司 普通文件传输协议tftp加速文件重试选项
CN106060166A (zh) * 2016-07-12 2016-10-26 安徽天达网络科技有限公司 一种多终端网络文件下载方法
WO2018082212A1 (zh) * 2016-11-03 2018-05-11 深圳市元征软件开发有限公司 一种资源下载方法、及服务器
CN109618011A (zh) * 2019-01-31 2019-04-12 深圳爱克莱特科技股份有限公司 提升景观照明云控平台文件传输效率的处理系统及方法
CN109728952A (zh) * 2018-12-29 2019-05-07 努比亚技术有限公司 一种通信方法、移动终端以及计算机可读存储介质
CN110912969A (zh) * 2019-11-04 2020-03-24 西安雷风电子科技有限公司 一种文件高速传输源节点、目的节点装置及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1956380A (zh) * 2006-10-19 2007-05-02 华为技术有限公司 系统软件获取方法和系统
US20100011435A1 (en) * 2008-07-08 2010-01-14 Asp Works Pte Ltd Method and System for Providing Guaranteed File Transfer in Corporate Environment Behind Firewall

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1956380A (zh) * 2006-10-19 2007-05-02 华为技术有限公司 系统软件获取方法和系统
US20100011435A1 (en) * 2008-07-08 2010-01-14 Asp Works Pte Ltd Method and System for Providing Guaranteed File Transfer in Corporate Environment Behind Firewall

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012113262A1 (zh) * 2011-02-24 2012-08-30 腾讯科技(深圳)有限公司 用于移动终端的下载方法、系统和设备
CN102651861B (zh) * 2011-02-24 2014-08-20 腾讯科技(深圳)有限公司 用于移动终端的下载方法、移动终端和代理下载服务器
CN102651861A (zh) * 2011-02-24 2012-08-29 腾讯科技(深圳)有限公司 用于移动终端的下载方法、移动终端和代理下载服务器
CN103430506B (zh) * 2011-02-28 2015-12-02 交互式社交网络有限公司 网络通信系统和方法
CN103430506A (zh) * 2011-02-28 2013-12-04 交互式社交网络有限公司 网络通信系统和方法
CN102201903A (zh) * 2011-06-07 2011-09-28 合肥华云通信技术有限公司 一种简单可靠的远程文件传输方法
CN102355480B (zh) * 2011-07-21 2017-03-08 中兴通讯股份有限公司 基于tftp的文件传输方法、系统、客户端和服务器
CN102355480A (zh) * 2011-07-21 2012-02-15 中兴通讯股份有限公司 基于tftp的文件传输方法、系统、客户端和服务器
CN104010023A (zh) * 2013-02-26 2014-08-27 霍尼韦尔国际公司 普通文件传输协议tftp加速文件重试选项
CN104010023B (zh) * 2013-02-26 2018-10-30 霍尼韦尔国际公司 普通文件传输协议tftp加速文件重试选项
CN103702186A (zh) * 2013-11-29 2014-04-02 康佳集团股份有限公司 一种基于互联网的机顶盒点对点升级的实现方法及系统
CN106060166A (zh) * 2016-07-12 2016-10-26 安徽天达网络科技有限公司 一种多终端网络文件下载方法
WO2018082212A1 (zh) * 2016-11-03 2018-05-11 深圳市元征软件开发有限公司 一种资源下载方法、及服务器
CN109728952A (zh) * 2018-12-29 2019-05-07 努比亚技术有限公司 一种通信方法、移动终端以及计算机可读存储介质
CN109618011A (zh) * 2019-01-31 2019-04-12 深圳爱克莱特科技股份有限公司 提升景观照明云控平台文件传输效率的处理系统及方法
CN109618011B (zh) * 2019-01-31 2020-10-13 深圳爱克莱特科技股份有限公司 提升景观照明云控平台文件传输效率的处理系统及方法
CN110912969A (zh) * 2019-11-04 2020-03-24 西安雷风电子科技有限公司 一种文件高速传输源节点、目的节点装置及系统

Also Published As

Publication number Publication date
CN101841570B (zh) 2013-05-08

Similar Documents

Publication Publication Date Title
CN101841570B (zh) 一种文件传输方法
JP5640649B2 (ja) データ通信方法及び情報処理装置
KR100592915B1 (ko) 원격 통신 시스템의 어플리케이션 데이터 동기화
CN103457993B (zh) 本地缓存装置和提供内容缓存服务的方法
CN100536416C (zh) 用于搜索网络连接的方法和装置
JP2015525505A (ja) 永続的ワイヤレスドッキングのためのシステムおよび方法
JP2008154035A (ja) 中継サーバおよびクライアント端末
KR20120049402A (ko) 피어 투 피어 네트워킹 디바이스를 위한 효율적인 서비스 검색
CN108093015B (zh) 文件传输系统
CN102271165B (zh) 互联网搜索资源的分享管理装置及方法
CN103117915A (zh) 一种消息发送的方法和设备
CN102594901A (zh) 一种电视机数据下载的方法、系统、电视机及服务器
JP6885736B2 (ja) 不均一ネットワークにまたがる統合されたデータ・ネットワーキング
US20160205278A1 (en) Information processing apparatus, system, and control method for information processing apparatus
US10331637B2 (en) Apparatus and method for transmitting and receiving files in general purpose device
JP2017201776A (ja) 不均一ネットワークにまたがるコンテンツ配送
US20150026123A1 (en) Size-based data synchronization
CN111131470B (zh) 终端设备及其数据处理方法以及数据处理系统
CN102904935B (zh) 基于家庭网关的下载方法、设备和系统
JP5454453B2 (ja) 通信装置及びコンピュータプログラム
US10476919B2 (en) System and method for reliable messaging between application sessions across volatile networking conditions
JP2012108909A (ja) モバイルメッセージングサービスにおけるファイル送信をサポートするファイル送信管理システム及びファイル送信管理方法
JP2015111330A (ja) 端末装置、通信システム及び通信プログラム
JP2009199281A (ja) データ送信装置
JP5025119B2 (ja) 情報処理装置及びその制御方法及びプログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 100193 Beijing city Haidian District Dongbeiwang West Road No. 8 Zhongguancun Software Park Building 5 Building 2 layer Hanvon Technology

Applicant after: BEIJING AUTELAN TECHNOLOGY Co.,Ltd.

Address before: 100085 Beijing City, Haidian District information industry base on the north power creative building D Building 8 layer

Applicant before: Beijing AUTELAN Technology Co.,Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: AUTELAN TECHNOLOGY INC. TO: BEIJING AUTELAN TECHNOLOGY CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: 100193, No. 1, building three, zone 9, Zhongguancun Software Park, 8 West Wang Xi Road, Beijing, Haidian District

Patentee after: Beijing AUTELAN Technology Co.,Ltd.

Address before: 100193 Beijing city Haidian District Dongbeiwang West Road No. 8 Zhongguancun Software Park Building 5 Building 2 layer Hanvon Technology

Patentee before: BEIJING AUTELAN TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right

Effective date of registration: 20151125

Address after: 100085 Beijing, East Road, No. 1, building on the north side of the building, room 313, room 3

Patentee after: Beijing Hua Xinaotian network technology Co.,Ltd.

Address before: 100193, No. 1, building three, zone 9, Zhongguancun Software Park, 8 West Wang Xi Road, Beijing, Haidian District

Patentee before: Beijing AUTELAN Technology Co.,Ltd.