普通文件传输协议tftp加速文件重试选项的制作方法

文档序号:7797478阅读:250来源:国知局
普通文件传输协议tftp加速文件重试选项的制作方法
【专利摘要】使用普通文件传送协议(TFTP)来传输数据的方法包括:将第一请求包从客户端发送到服务器,第一请求包请求传输第一文件;如果在客户端接收到来自服务器的第一确认包,则根据第一请求包传输第一文件,所述第一确认包指示了服务器能够接纳第一请求包的请求;如果第一文件的传输没有成功地完成,则将第二请求包从客户端发送到服务器,第二请求包包括TFTP选项,其指示了在响应于所述第一请求包而成功地传输的最后的块之后的第一块处开始重试所述第一文件的传输;并且如果在客户端接收到来自服务器的第二确认包,则根据第二请求包重试第一文件的传输,所述第二确认包指示了服务器能够接纳第二请求包的请求。
【专利说明】普通文件传输协议TFTP加速文件重试选项
【背景技术】
[0001]普通文件传输协议(TFTP)是广泛使用的简单文件传输协议。TFTP可以由第一TFTP代理(此处也被称作“TFTP客户端”)用来将文件写入第二 TFTP代理(此处也被称作“TFTP服务器”)。TFTP也可以由TFTP客户端用来读出来自TFTP服务器的文件。TFTP的细节被定义在各种互联网工程任务组(IETF)请求注解(RFC)文档中,包括RFC 783 (TFTP协议(版本1))、RFC 1350 (TFTP协议(版本2))、RFC 906 (使用TFTP的保护罩)、RFC 1785(TFTP选项协商分析)、RFC 2347 (TFTP选项扩展)、RFC 2348 (TFTP块大小选项)以及RFC2349 (TFTP超时时间间隔和传输大小选项)。在这种IETF RFC文档中描述的TFTP此处也被称作“标准TFTP”。一些航空电子标准(诸如,航空无线电公司(ARINC)标准615A)指定了标准TFTP可以用于将数据从存储在文件系统中的文件加载到目标装置的存储器中。该类型的传输此处也被称作“数据加载”。

【发明内容】

[0002]通过使用普通文件传送协议(TFTP)来传输数据的方法包括:将第一请求包从客户端发送到服务器,第一请求包请求传输第一文件;如果在客户端接收到来自服务器的第一确认包,则根据第一请求包传输第一文件,所述第一确认包指示了服务器能够接纳第一请求包的请求;如果第一文件的传输没有成功地完成,则将第二请求包从客户端发送到服务器,第二请求包包括TFTP选项,其指示了在响应于所述第一请求包而成功地传输的最后的块之后的第一块处开始重试所述第一文件的传输;以及如果在客户端接收到来自服务器的第二确认包,则根据第二请求包重试第一文件的传输,所述第二确认包指示了服务器能够接纳第二请求包的请求。
[0003]在附图和下面的描述中叙述了要求保护的发明的各种实施例的细节。根据说明书、附图和权利要求,其它特征和优点将变得明显。
【专利附图】

【附图说明】
[0004]图1是采用扩展TFTP功能来传输数据的系统的一个实施例的框图。
[0005]图2A图示了普通文件传输协议(TFTP)请求包的一个实施例,所述普通文件传输协议(TFTP )请求包已经附加了加速文件重试选项。
[0006]图2B-2C图示了 TFTP请求包的各种示例,所述TFTP请求包附加有加速文件重试选项。
[0007]图3A-3C图示了 TFTP选项确认(OACK)包的示例,所述TFTP选项确认(OACK)包响应于图2B所示的特别的示例TFTP请求包。
[0008]图4A-4D是用于实现本文中描述的加速文件重试选项的客户端侧和服务器侧的方法的一个实施例的流程图。
[0009]图5A-5B是采用扩展TFTP功能来使用加速重试选项传输文件的系统的示例性实施例的框图。[0010]图6是适合于与此处描述的扩展TFTP功能一起使用的航空电子系统的一个实施例的框图。
[0011]在各种附图中的相同的参考数字和标号指示了相同的元素。
【具体实施方式】
[0012]图1是采用扩展TFTP功能来传输数据的系统100的一个实施例的框图。系统100包括使用至少一个网络104通信地耦合至彼此的至少两个节点102,所述网络104可以通过使用有线和/或无线的通信链路来实现。每一个节点102包括适当的网络接口 106以将各自的节点102通信地耦合至网络104。在这种实施例的一个实现中,通过使用以太网局域网(LAN)来至少部分地实现网络104。如下面更详细描述的,节点102使用用户报协议/互联网协议(UDP/IP)协议套件来通过网络104进行通信。
[0013]在图1所示的实施例中,节点102中的每一个节点进一步包括用于执行软件110的一个或多个处理器108。在每一个节点102中的软件110包括在适当的存储媒介或介质112 (诸如闪存或其它非易失性存储器、磁盘驱动和/或光盘驱动)之上或之中存储(或以其它方式体现)的程序指令,由处理器108从所述存储媒介或介质112读出程序指令的至少一部分以供由此执行。虽然图1中将存储介质112示出为正被包含在各自的节点102中并且对于各自的节点102是本地的,但可以理解的是,也可以使用可移除介质和/或远程存储介质(例如,可通过网络104访问的存储介质)。每一个节点102也包括用于在由处理器108执行期间存储程序指令(以及任何相关的数据)的存储器114。在一个实现中,存储器114包括现在已知或稍后开发的随机访问存储器(RAM)的任何合适的形式,诸如动态随机访问存储器(DRAM)。在其它的实施例中,使用其它类型的存储器。
[0014]每一个节点102进一步包括通信地耦合至各自的处理器108的一个或多个输入装置116,通过所述输入装置116,用户能够将输入提供给该处理器108。输入装置的示例包括键盘、小键盘、触摸板、指示装置、按钮、开关和麦克风。每一个节点102也包括通信地耦合至各自的处理器108的一个或多个输出装置118。每一个处理器108能够在输出装置108中的一个或多个输出装置上或使用输出装置108中的一个或多个输出装置来将信息或数据输出给用户。输出装置118的示例包括诸如液晶显示器(LCD)或发光二极管(LED)的视觉输出装置或诸如扬声器的音频输出装置。
[0015]由在每一个节点102中的处理器108执行的软件110包括UDP/IP软件120 (此处也被称作“UDP/IP栈”)。UDP/IP软件120实现了 UDP/IP协议套件,并且使应用层软件122能够使用m)P/IP协议套件来通过网络104进行通信。在图1所示的实施例中,UDP/IP软件120包括TFTP软件124。一般地,TFTP软件124包括实现标准TFTP (如上面描述)的标准TFTP功能126以及实现没有在定义标准TFTP的文档中描述的TFTP特征的扩展TFTP功能128。例如,可以通过扩展或修改实现标准TFTP的软件以进一步包括此处描述的扩展TFTP功能128来实现TFTP软件124。
[0016]例如,TFTP软件124用来通过传输存储在特别的存储装置中的数据来变换该存储装置(例如,存储媒介112和/或存储器114)的状态。在一个示例中,文件121被从一个节点102传输到第二节点102,并且通过使用文件系统来被存储在第二节点102中的存储媒介112上。在另一个示例中,存储器映像123 (B卩,存储器114的内容)被从一个节点102传输到第二节点102,并且被存储在第二节点102的存储器114上。
[0017]为了说明的目的,图1所示的节点102中的仅一个节点此处被描述为充当TFTP服务器(并且此处也被称作“服务器”节点102),而图1所示的其它节点102此处被描述为充当TFTP客户端(并且此处也被称作“客户端”节点102)。然而,可以理解的是,根据系统100意在的特别的应用,节点102可以充当TFTP服务器和TFTP客户端两者。
[0018]服务器节点102中的TFTP软件124包括TFTP服务器软件130,其将TFTP协议的服务器侧实现为UDP/IP栈120的一部分。例如,可以将TFTP服务器软件130实现为后台程序(或其它后台服务或进程)。
[0019]客户端节点102中的TFTP软件124包括实现TFTP协议的客户端侧的TFTP客户端软件132。虽然TFTP客户端软件132逻辑上被认为是UDP/IP栈120的一部分,但是可以将TFTP客户端软件132的至少一部分直接集成到被认为以其他方式存在于UDP/IP栈120外部的软件项目(例如,应用层软件122)中。也可以将TFTP客户端软件132的至少一部分实现为其它软件(例如,应用层软件122)可以链接到的库(或其它类似机制),以便使用TFTP客户端软件132来执行TFTP协议的客户端侧。
[0020]TFTP服务器软件130和TFTP客户端软件132通过使用一个或多个UDP端口(通常UDP端口数69)经由网络104来与彼此进行通信。
[0021]在图1所示的实施例中,扩展TFTP功能128包括文件重试选项功能134。加速文件重试选项功能134用来实现用于在特别的块处开始重试文件传输的TFTP选项扩展。在成功地传输的最后的块之后的下一个块处重试文件传输。TFTP文件重试选项功能134使得在文件的传输没有成功地完成之后能够通过在文件的最后成功地传输的块之后的第一块处开始来重试文件(或数据的其它分组)的传输。该TFTP文件重试选项功能134在不要求使用TFTP软件126外部的其它软件的情况下运行以在文件传输停止的地方重试文件传输。
[0022]在该实施例中,通过使用在IETF RFC 2374 (TFTP选项扩展)中描述的选项协商机制来实现扩展TFTP功能128。如在IETF RFC 2374中提到的,其中描述的选项协商机制是对标准TFTP的向后兼容扩展。它允许在传输之前通过使用与用在标准TFTP中的请求包格式一致的机制来协商文件传输选项。
[0023]一般地,RFC2374中描述的选项协商机制涉及发送TFTP请求包到TFTP服务器的TFTP客户端,其中,TFTP请求包包含附加于其的一个或多个选项。该请求可以是读出请求(请求从TFTP服务器到TFTP客户端的数据传输)或者写入请求(请求从TFTP客户端到TFTP服务器的数据传输,所述TFTP服务器存储所传输的数据)。
[0024]如果TFTP服务器支持如IETF RFC 2347中定义的选项协商,并且TFTP服务器认出了在请求包中指定的选项中的一个或多个选项,则TFTP服务器用选项确认(OACK)包进行响应。在OACK中包含了服务器认出并接受其的值的每一个选项。如果服务器实现不支持选项协商,则服务器将很可能忽视附加于TFTP客户端的请求的任何选项。在这种情况下,TFTP服务器将返回用于读出请求(RRQ)的数据(DATA)包(如在标准TFTP中指定的)以及用于写入请求(WRQ)的确认(ACK)包(如在标准TFTP中指定的),在两种情况之后,继续进行正常的TFTP数据传输。如果TFTP服务器因为任何原因而拒绝了 TFTP客户端的请求,则TFTP服务器还将用错误(ERROE)包(如在标准TFTP中指定的)进行响应。
[0025]图2A图示了 TFTP请求包200的一个实施例,所述TFTP请求包200通过使用IETFRFC 2347中描述的扩展机制已经附加了加速文件重试选项202。图2A所示的加速文件重试选项202用来传输诸如文件或存储器映像的数据的更大分组的特别的片段。
[0026]TFTP请求包200包括操作代码字段204 (本文中被称作“opcode”或“opc”字段)、文件名称字段206以及模式字段208。以针对标准TFTP指定的方式使用opcode字段204、文件名称字段206以及模式字段208。例如,opcode字段204用来指示用请求包200做何种类型的请求。如在标准TFTP中定义的,如果正在做出文件读出请求,则将I存储在opcode字段204中,并且如果正在做出文件写入请求,则将2存储在opcode字段204中。将正被传输的文件的名称存储在文件名称字段206中。模式字段208用来指定将被用于请求的文件传输的特别的标准TFTP文件传输模式(B卩,“netaSCii”、“0Ctet”或“mail”)。
[0027]在模式字段208之后,可以将任何数量的选项附加于TFTP请求包200。结合TFTP请求包使用的术语“选项”指的是一对字段,其用来请求结合请求包中请求的传输使用特别的选项功能。
[0028]在该示例中,将加速文件重试选项202附加于TFTP请求包200。加速文件重试选项202包括选项字段210和值字段212。选项字段210包括预先确定的字符串,其识别了加速文件重试选项应当用来执行请求的文件传输。合适的预先确定的字符串的一个示例是“重试(retry)”。用于加速文件重试选项202的值字段212用来识别确认为成功地传输的最后的块或者在确认为成功地传输的最后的块之后的下一个块中的至少一个。在示例性实施例中,值字段212包括块数据,其定义了部分TFTP文件传输的部分文件特性。在示例性实施例中,值字段212包括多个子字段。图2A中示出了用于加速文件重试选项202的值字段212的格式化的一个示例性实施例(虽然理解的是,值字段212可以以不同的方式进行格式化)。在图2A所示的示例性实施例中,加速文件重试选项202的值字段212包括块号码子字段214和块数量子字段216,其中每一个子字段由“斜线”或其它字符分开。
[0029]块号码子字段214指示了开始文件传输所处的块号码或者成功地进行传输的最后的块号码。在示例性实施例中,块号码值是十进制值的ASCII表示。例如,“10”会指示块10,“100”会指示块100以及“1010”会指示块1010。在示例性实施例中,块号码值是十六进制值的ASCII表示。例如,“10”会指示块16,“100”会指示块256,并且“1010”会指示块4112。在块号码子字段214指示了成功地进行传输的最后的块号码的示例性实施例中,将下一个块设置为开始文件传输所处的块。在TFTP请求包200用来做出读出请求的情况下,块号码子字段214用来指定针对从TFTP服务器到TFTP客户端的文件传输重试,TFTP服务器应当开始读出文件的哪一个块。在TFTP请求包200用来做出写入请求的情况下,块号码子字段214用来指定针对从TFTP客户端到TFTP服务器的文件传输重试,TFTP服务器应当开始写入文件的哪一个块。
[0030]块数量子字段216指示了将从由块号码字段识别的块开始传输的块的总数量。在示例性实施例中,块数量值是十进制值的ASCII表示。例如,“I”会指示仅I个块,“10”会指示10个块,“100”会指示100个块等等。在示例性实施例中,块数量值是十六进制值的ASCII表示。例如,“I”会指示仅I个块,“10”会指示16个块,“100”会指示256个块等等。在将该字段设置为ASCII字符串“全部(all)”的示例性实施例中,该传输将包括在从由块号码字段识别的块开始的文件中所有剩下的TFTP块。
[0031]图2B-2C图示了 TFTP请求包200的各种示例,所述TFTP请求包200附加有加速文件重试选项202。在图2B所示的示例中,操作代码字段204包含1,其指示了它是读出请求,并且加速文件重试选项的值字段212包含字符串“ 5/全部(5/al I) ”,其指示了用于重试的文件的开始块号码是5且在块5之后的文件的所有剩下的块应当进行传输。在图2C所示的示例中,操作代码字段204包含2,其指示了它是写入请求;并且加速文件重试选项的值字段212包含字符串“8/1”,其指示了用于重试的文件的开始块号码是8且仅应当传输一个块(块8)。
[0032]图3A图示了用于响应于图2A的TFTP请求包200的TFTP选项确认(OACK)包300的一个实施例,所述图2A的TFTP请求包200附加有加速文件重试选项202。OACK包300附加有加速文件重试选项302。
[0033]TFTP OACK包300包括操作码字段304,对于其OACK包包含值“6”并指示了包300是OACK包。如上面提到的,OACK包300将包含用于附加于服务器认出并处置的对应请求的每一个选项的对应选项。如结合TFTP OACK包使用的术语“选项”是的是一对字段,其用来响应于结合请求包中请求的传输使用特别的选项功能的请求。
[0034]在图3A所示的特别的示例中,OACK包300包含单个选项(加速文件重试选项302),其对应于附加于请求包200的加速文件重试选项202。在示例性实施例中,OACK包300中的加速文件重试选项302具有与请求包200中的加速文件重试选项202相同的格式,虽然这是不要求的。
[0035]加速文件重试选项302包括选项字段310和值字段312。在示例性实施例中,选项字段310包括用在请求包200中的加速文件重试选项202中的相同的预先确定的字符串,以便请求使用加速文件重试选项来执行请求的文件传输。如上面提到的,在该示例中,使用字符串“重试(retry)”。如在具有请求包200中的加速文件重试选项202的情况下,OACK包300中的值字段312包括包含多个子字段的字符串。在图3A所示的示例性实施例中,力口速文件重试选项302的值字段312包括块号码子字段314和块数量子字段316,其中,每一个子字段由斜线或其它字符分开。除了如下面描述的,OACK包300的值字段312中的每一个子字段用来存储与请求包200中的相同的信息。
[0036]在TFTP服务器接收具有附加于TFTP请求包200的加速文件重试选项202的TFTP请求包200时,TFTP服务器进行检查以确保它可以支持加速文件重试选项202。如果就是这种情况,TFTP服务器用OACK包300进行响应,在所述OACK包300中,加速文件重试选项302包含与附加于对应的TFTP请求包的加速文件重试选项202相同的信息。
[0037]在发送OACK包302之后,TFTP服务器和TFTP客户端通过使用OACK包300的值字段312中指定的值来继续进行所请求的文件的传输的重试。具体地,TFTP服务器和TFTP客户端将在所识别的块处开始重试所请求的文件的传输,并仅可选地传输所定义的数量的块。
[0038]图3B-3C图示了响应于图2B-2C所示的特别的示例TFTP请求包的OACK包300的示例。图3B图示了 OACK包300,如果TFTP服务器可以支持图2B所示的对应的请求包200的加速文件重试选项,则发送所述OACK包300。如图3B所示,该OACK包300的加速文件重试选项302包含与附加于图2B所示的示例TFTP请求包的加速文件重试选项202相同的信息(即,“5/全部”)。
[0039]图3C图示了 OACK包300,如果TFTP服务器可以支持图2C所示的对应的请求包200的加速文件重试选项,则发送所述OACK包300。如图3C所示,该OACK包300的加速文件重试选项302包含与附加于图2C所示的示例TFTP请求包的加速文件重试选项202相同的信息(即,“8,I”)。
[0040]图4A和4B是用于实现上面描述的加速文件重试选项的客户端侧和服务器侧的方法400A-400B的一个实施例的流程图。方法400A-400D的实施例可以分别由客户端节点102中的TFTP客户端软件132和服务器节点102中的TFTP服务器软件130来实现。在示例性实施例中,当在客户端节点102与服务器节点102之间的不成功的TFTP文件传输之后用加速文件重试选项做出TFTP请求时,使用方法400A-400D。当用加速文件重试选项做出TFTP请求时,使待传输的数据在文件的最后成功地传输的块之后的第一块处开始传输。
[0041]图4A是用于实现上面描述的加速文件重试选项的客户端和服务器侧两者的第一方法400A的流程图。在块402处,将第一请求包从客户端发送到服务器,第一请求包请求传输第一文件。如上面提到的,存在可以发送的两种类型的请求——读出请求(其中,将待传输的数据从服务器节点102传输到客户端节点102)或者写入请求(其中,将待传输的数据从客户端节点102传输到服务器节点102)。
[0042]在块404处,如果服务器能够接纳第一请求包的请求,则响应于第一请求包将第一确认包从服务器发送到第一客户端。因此,TFTP服务器确定它是否支持加速文件重试选项并且如果它支持则确认。在块406处,如果在客户端接收到来自服务器的第一确认包,则根据第一请求包传输第一文件,所述第一确认包确认了服务器能够接纳第一请求包的请求。
[0043]在块408处,如果第一文件的传输没有成功地完成,则将第二请求包从客户端发送到服务器。第二请求包包括TFTP选项,其指示了在响应于第一请求包而成功地传输的最后的块之后的第一块处开始重试第一文件的传输。在块410处,如果服务器能够接纳第二请求包的请求,则响应于第二请求包将第二确认包从服务器发送到第一客户端。在块412处,如果在客户端接收到来自服务器的第二确认包,则根据第二请求包重试第一文件传输,所述第二确认包指示了服务器能够接纳第二请求包的请求。
[0044]在读出请求的情况下,TFTP服务器重试至客户端的文件的传输,其在如重试选项中指示的最后成功地传送的块之后的第一块处开始。在写入请求的情况下,TFTP客户端重试至服务器的文件的传输,其在如重试选项中指示的最后成功地传送的块之后的第一块处开始。如果TFTP服务器或TFTP客户端不支持加速文件重试选项,则忽视TFTP重试选项并通过使用标准TFTP来传送文件。在示例性实施例中,如果TFTP客户端没有接收到响应于请求包的0ACK,则客户端经由标准TFTP接收文件或用TFTP错误(ERROR)包终止传输。每当第一文件的传输没有成功地完成,重复上面结合块408至块412描述的处理。在图4A所示的特别的实施例中,第一文件的每一块串联地进行传输。即,在一块已经被传输之后,TFTP客户端检查是否存在要传输的任何剩下的块。如果不存在要传输的剩下的片段,则完成数据传输。
[0045]图4B是用于实现上面描述的加速文件重试选项的客户端侧的第二方法400B的流程图。方法400B包括如上面参考方法400A描述的客户端侧特定块402、406、408和412。
[0046]图4C是用于实现上面描述的加速文件重试选项的服务器侧的第三方法400C的流程图。方法400C包括如上面参考方法400A描述的服务器侧特定块404和410。[0047]图4D是除了由方法400A-400B中的任何一个方法实现的内容以外的用于实现上面针对第二客户端描述的加速文件重试选项的第二客户端侧的第四方法400D的流程图。方法400D在块414处着手,其中,将第三请求包从第二客户端发送到服务器,传输请求该第二文件的第三请求包。在块416处,如果在第二客户端接收到来自服务器的第三确认包,则根据第三请求包传输第二文件,所述第三确认包确认了服务器能够接纳第三请求包的请求。在块418处,如果第二文件的传输没有成功地完成,则将第四请求包从客户端发送到服务器。第四请求包包括第二 TFTP选项,其指示了在响应于所述第三请求包而成功地传输的第二最后块之后的第二块处开始重试第二文件的传输。在块420处,如果在客户端接收到来自服务器的第四确认包,则根据第四请求包重试第二文件的传输,所述第四确认包指示了服务器能够接纳第四请求包的请求。
[0048]虽然未在图4A-4D中示出,但可以理解的是,通常也在方法400A-400D中实现适当的错误检查。例如,如果TFTP客户端指定了不存在于文件中的块号码或者会超过文件中的剩下的块的长度的块数量,则TFTP服务器发送TFTP错误包。
[0049]图5A-5B是分别用系统500A和系统500B标注的系统500的示例性实施例的框图,所述系统500采用扩展TFTP功能,以便使用加速重试选项来传输文件。
[0050]图5是示例性系统500A的框图,所述示例性系统500A采用扩展TFTP功能,以便使用重试选项来传输文件。系统500A包括经由网络506通信地耦合至多个TFTP客户端504(包括TFTP客户端504-l、TFTP客户端504-2以及经过可选的TFTP客户端504-N的任何数量的附加TFTP客户端504)的TFTP服务器502,所述网络506可以通过使用有线和/或无线的通信链路来实现。每一个TFTP客户端504被配置为使用如上面描述的TFTP和加速重试选项来与TFTP服务器502通信。在TFTP客户端504请求至TFTP服务器502/来自TFTP服务器502的文件传送时,传送文件,但可能没有成功地完成。当许多TFTP客户端504都同时请求来自TFTP服务器502的传输时,这被加剧。当文件传送没有成功地完成时,加速的文件重试TFTP选项允许客户端和服务器就在较早的文件传送失败的地方继续传送,而非按照标准TFTP功能在文件的开头处重新开始。
[0051]图5B是示例性系统500B的框图,所述示例性系统500B采用扩展TFTP功能,以便使用重试选项来传输文件。系统500B包括经由网络506通信地耦合至TFTP网关508的TFTP服务器502,所述网络506经由网络512通信地耦合至多个目的地510 (包括目的地510-1,510-2以及经过可选的目的地510-M的任何数量的附加目的地510)。网络506和网络512中的每一个网络可以通过使用有线和/或无线的通信链路来实现。TFTP服务器502和TFTP网关508均被配置为使用如上面描述的TFTP和加速重试选项来与彼此通信。目的地510是TFTP数据的最终目的地。在示例性实施例中,TFTP网关508从TFTP服务器502接收数据块,从数据剥去TFTP特性,并且立即将数据有效载荷推到目的地510,而不在推进文件数据之前等待整个TFTP文件传输在TFTP服务器502与TFTP网关508之间完成。
[0052]在示例性实施例中,目的地510之一可能因为错误而丢失在文件的中部的数据有效载荷中的一些,但解决该错误,从而在有限数量的丢失的块之后使得数据有效载荷的剩下部分由目的地510之一正确地接收。在文件的中部仍丢失了有限数量的块。在该实施例中,具有块数量子字段216的加速重试选项可以用来特别地请求在块号码子字段214中的第一丢失块处开始丢失且具有在块数量子字段216中将覆盖丢失的有限数量的块的值的块,而不经历成功地传输的文件的整个剩余的块的剩下部分。
[0053]图6是适合于与上面描述的扩展TFTP功能一起使用的航空电子系统600的一个实施例的框图。航空电子系统600包括实现为网络604的分开的节点的数据加载器602A和飞行管理计算机(FMC) 602B。数据加载器和FMC602两者都包括适当的网络接口 606以通信地耦合至网络604。在该实施例中,网络604被实现来支持ARINC 615A标准,其使用以太网(ETHERNET)连网技术以及UDP/IP协议套件。
[0054]在图6所示的实施例中,数据加载器602A和FMC602B中的每一个进一步包括一个或多个处理器608,以执行软件610。数据加载器602A和FMC 602B中的软件610包括存储(或以其它方式体现)在适当的存储媒介或介质612 (诸如闪存或其它非易失性存储器、磁盘驱动、和/或光盘驱动)之上或之中的程序指令,由处理器608从所述存储媒介或介质612读出程序指令的至少一部分以供由此执行。虽然存储介质612在图6中被示出为被包含在数据加载器602A和FMC 602B中或对于数据加载器602A和FMC 602B是本地的,可以理解的是,也可以使用可移除介质和/或远程存储介质(例如,通过网络604可访问的存储介质)。数据加载器602A和FMC 602B也包括用于在由处理器604执行期间存储程序指令(和任何相关的数据)的存储器614。在一个实现中,存储器614包括现在已知或稍后开发的随机访问存储器(RAM)的任何合适的形式,诸如,动态随机访问存储器(DRAM)。在其它实施例中,使用其它类型的存储器。
[0055]数据加载器602A和FMC 602B进一步包括通信地耦合至各自的处理器608的一个或多个输入装置616,通过所述输入装置616,用户能够将输入提供给该处理器608。输入装置的示例包括键盘、小键盘、触摸板、指示装置、按钮、开关和麦克风。数据加载器602A和FMC 602B也包括通信地耦合至各自的处理器608的一个或多个输出装置618。每一个处理器608能够在输出装置608中的一个或多个输出装置上或使用其来将信息或数据输出给用户。输出装置618的示例包括诸如液晶显示器(IXD)或发光二极管(LED)的视觉输出装置或者诸如扬声器的音频输出装置。
[0056]在数据加载器602A和FMC 602B中的由处理器608执行的软件610包括UDP/IP软件620和实现各种飞行管理功能的飞行管理软件622。UDP/IP软件620包括TFTP软件624。TFTP软件624包括实现标准TFTP的标准TFTP功能626以及扩展TFTP功能628。数据加载器602A的TFTP软件624也包括TFTP服务器软件630,并且飞行管理计算机602B的TFTP软件624也包括TFTP客户端软件632。扩展TFTP功能628包括文件重试选项功能634。TFTP软件624、标准TFTP功能626、扩展TFTP功能628、以及文件重试选项功能634都与上面结合图1描述的TFTP软件124、标准TFTP功能126、扩展TFTP功能128、以及文件重试选项功能134相同。在示例性实施例中,FMC 602B也包括用于将FMC 602B通信地耦合至一个或多个传感器和/或致动器的适当的接口,FMC 602B (以及,例如,飞行管理软件622)与所述一个或多个传感器和/或致动器进行通信。
[0057]FMC 602B被部署在宇航飞行器(诸如飞机或直升飞机)内。在操作中,FMC 602B提供了用于该飞行器的飞行管理相关的服务,并且可以包括地形、导航和/或其它数据库。数据加载器602A包括用于地形、导航和/或其它数据库的更新的文件。这些更新的文件可能非常大,并且可能花费非常多的时间来通过在数据加载器602A与FMC 602B之间的相对慢的连接使用TFTP进行传送。当TFTP文件传输不成功时这被加剧,因为标准TFTP功能要求文件传输在开头处再次开始。在一些更大的文件的情况下,甚至文件完成的概率可能是低的,并且当被要求重新开始时完成传输所要求的时间可能是高的。在示例性实施例中,加速文件重试选项使得能够在TFTP文件传输不成功的地方继续其传输,从而使得不必在大文件的开头处重新开始。
[0058]在该实施例中,为了数据加载目的以其它方式提供的标准TFTP软件被扩展为包括扩展TFTP功能628 (包括加速文件重试选项功能634),其用来在文件传输停止所在的块处继续所述文件传输。因为用在航空电子系统中的软件通常需要由适当的管理机构(例如,美国联邦航空署(FAA))认证,所以TFTP软件624将需要被认证以供在航空电子应用中使用。然而,一旦经认证,具有扩展TFTP功能628的TFTP软件624可以与不同的航空电子系统一起使用。
[0059]在TFTP扩展特征的实现的另一个实施例中包括用于加载文件或将存储器映像传输到处理器板(例如,调试台)上的个人计算机。
[0060]此处描述的方法和技术可以以数字化电子电路来实现,或者用处理器(例如,专用处理器或诸如计算机的通用处理器)固件、软件、或其组合来实现。体现这些技术的设备可以包括适当的输入和输出装置、处理器以及有形地体现供处理器执行的程序指令的存储媒介。体现这些技术的处理可以由执行指令的程序的处理器来执行,以便通过对输入数据进行操作并生成适当的输出来执行期望的功能。该技术可以有利地在一个或多个程序中实现,所述一个或多个程序在包括至少一个处理器、至少一个输入装置和至少一个输出装置的系统上可执行,所述至少一个处理器进行耦合以从数据存储系统接收数据和指令,并且将数据和指令发送到数据存储系统。一般地,处理器将从只读存储器和/或随机访问存储器接收指令和数据。适合于有形地体现计算机程序指令和数据的存储装置包括非易失性存储器的所有形式,通过举例包括诸如EPROM、EEPROM和闪存存储器装置的半导体存储器装置;诸如内部硬盘和可移除盘的磁盘;磁光盘;以及DVD盘。前述的任何一个可以由专门设计的专用集成电路(ASIC)来补充或并入其中。
[0061]已经描述了由下面的权利要求定义的本发明的许多实施例。尽管如此,将理解的是,在不脱离要求保护的发明的精神和范围的情况下,可以对所描述的实施例做各种修改。因此,其它实施例在下面的权利要求的范围内。
[0062]示例实施例
示例I包括使用普通文件传送协议(TFTP)来传输数据的方法,所述方法包括:将第一请求包从客户端发送到服务器,第一请求包请求传输第一文件;如果在客户端接收到来自服务器的第一确认包,则根据第一请求包传输第一文件,所述第一确认包指示了服务器能够接纳第一请求包的请求;如果第一文件的传输没有成功地完成,则将第二请求包从客户端发送到服务器,第二请求包包括TFTP选项,其指示了在响应于第一请求包而成功地传输的最后的块之后的第一块处开始重试第一文件的传输;并且如果在客户端接收到来自服务器的第二确认包,则根据第二请求包重试第一文件的传输,所述第二确认包指示了服务器能够接纳第二请求包的请求。
[0063]示例2包括示例I的方法,其中,第一请求包包括至少一个读出请求和写入请求;根据第一请求包传输第一文件包括如果第一请求包是读出请求,则将第一文件从服务器传输到客户端;并且根据第一请求包传输第一文件包括如果第一请求包是写入请求,则将第一文件从客户端传输到服务器。
[0064]示例3包括示例1-2中的任何一个的方法,其中,TFTP选项包括重试开始块号码,其识别了在响应于第一请求包成功地传输的最后的块之后的第一块。
[0065]示例4包括示例1-3中的任何一个的方法,其中,TFTP选项包括重试块数量,其识别了将响应于第二请求包进行重试的块的数量,其中,块的数量少于在第一文件中剩余的未成功地传输的块的总数量。
[0066]示例5包括示例1-4中的任何一个的方法,其中,服务器是数据加载器的一部分,并且客户端是飞行管理计算机的一部分,并且其中,第一文件被从数据加载器加载到飞行管理计算机上。
[0067]示例6包括示例1-5中的任何一个的方法,进一步包括:将第三请求包从第二客户端发送到服务器,第三请求包请求传输第二文件;如果在第二客户端接收到来自服务器的第三确认包,则根据第三请求包传输第二文件,所述第三确认包指示了服务器能够接纳第三请求包的请求;如果第二文件的传输没有成功地完成,则将第四请求包从客户端发送到服务器,第四请求包包括第二 TFTP选项,其指示了在响应于所述第四请求包而成功地传输的第二最后块之后的第二块处开始重试所述第二文件的传输;并且如果在第二客户端接收到来自服务器的第四确认包,则根据第四请求包重试第二文件的传输,所述第四确认包指示了服务器能够接纳第四请求。
[0068]示例7包括示例6的方法,其中,第一文件和第二文件是相同的。
[0069]示例8包括实现普通文件传送协议(TFTP)的系统,所述系统包括:服务器,具有第一网络接口、第一处理器和储存装置;第一客户端,具有第二网络接口和第二处理器,第一客户端通信地耦合至服务器;其中,第一客户端被配置为将第一请求包发送到服务器,第一请求包请求传输第一文件;其中,第一客户端被配置为如果在第一客户端接收到来自服务器的第一确认包,则根据第一请求包传输第一文件,所述第一确认包指示了服务器能够接纳第一请求包的请求;其中,第一客户端被配置为如果第一文件的传输没有成功地完成,则将第二请求包发送到服务器,第二请求包包括TFTP选项,其指示了在响应于第一请求包而成功地传输的最后的块之后的第一块处开始重试第一文件的传输;并且其中第一客户端被配置为如果在第一客户端接收到来自服务器的第二确认包,则根据第二请求包并且在成功地传送的最后的块之后的第一块处开始重试第一文件的传输,所述第二确认包指示了服务器能够接纳第二请求包的请求。
[0070]示例9包括示例8的系统,进一步包括:其中,服务器被配置为如果服务器能够接纳第一请求包的请求,则响应于第一请求包将第一确认包发送到第一客户端;并且其中,月艮务器被配置为如果服务器能够接纳第二请求包的请求,则响应于第二请求包将第二确认包发送到第一客户端。
[0071]示例10包括示例8-9中的任何一个的系统,其中,第一请求包包括读出请求和写入请求中的至少一个;其中,第一客户端被配置为如果第一请求包是读出请求,则从服务器接收第一文件;并且其中,第一客户端被配置为如果第一请求包是写入请求,则将第一文件传输到服务器。
[0072]示例11包括示例8-10中的任何一个的系统,其中,TFTP选项包括重试开始块号码,其识别了在响应于第一请求包成功地传输的最后的块之后的第一块。[0073]示例12包括示例8-11中的任何一个的系统,其中,TFTP选项包括重试块数量,其识别了将响应于第二请求包进行重试的块的数量,其中,块的数量少于在第一文件中剩余的未成功地传输的块的总数量。
[0074]示例13包括示例8-12中的任何一个的系统,其中,服务器是数据加载器的一部分,并且客户端是飞行管理计算机的一部分,并且其中,第一文件被从数据加载器加载到飞行管理计算机上。
[0075]示例14包括示例8-13中的任何一个的系统,进一步包括:第二客户端,具有第三网络接口和第三处理器,第二客户端通信地耦合至服务器,其中,第二客户端被配置为将第三请求包发送到服务器,第三请求包请求传输第二文件;其中,第二客户端被配置为如果在第二客户端接收到来自服务器的第三确认包,则根据第三请求包传输第二文件,所述第三确认包指示了服务器能够接纳第三请求包的请求;其中,第二客户端被配置为如果第二文件的传输没有成功地完成,则将第四请求包发送到服务器,第四请求包包括第二 TFTP选项,其指示了在响应于所述第三请求包而成功地传输的第二最后块之后的第二块处开始重试第二文件的传输;并且其中,第二客户端被配置为如果在第二客户端接收到来自服务器的第四确认包,则根据第四请求包并且在成功地传送的第二最后块之后的第二块处开始重试第二文件的传输,所述第四确认包指示了服务器能够接纳第四请求包的请求。
[0076]示例15包括示例14的系统,其中,第一文件和第二文件是相同的。
[0077]示例16包括实现普通文件传送协议(TFTP)的客户端,所述客户端包括:网络接口,用来将客户端通信地耦合至服务器;处理器,通信地耦合至网络接口,处理器被配置为执行TFTP软件;其中,TFTP软件被配置为使客户端发送第一请求包到服务器,第一请求包请求传输第一文件;其中,TFTP软件被配置为如果在第一客户端接收到来自服务器的第一确认包,则使客户端根据第一请求包传输第一文件,所述第一确认包指示了服务器能够接纳第一请求包的请求;其中,TFTP软件被配置为如果第一文件的传输没有成功地完成,则使客户端发送第二请求包到服务器,第二请求包包括TFTP选项,其指示了在响应于第一请求包而成功地传输的最后的块之后的第一块处开始重试第一文件的传输;并且其中,TFTP软件被配置为如果在客户端接收到来自服务器的第二确认包,则使客户端根据第二请求包并且在成功地传送的最后的块之后的第一块处开始重试第一文件的传输,所述第二确认包指示了服务器能够接纳第二请求包的请求。
[0078]示例17包括示例16的客户端,其中,第一请求包包括读出请求和写入请求中的至少一个;其中,TFTP软件被配置为如果第一请求包是读出请求,则使客户端从服务器接收第一文件;并且其中,TFTP软件被配置为如果第一请求包是写入请求,则使客户端传输第一文件到服务器。
[0079]示例18包括示例16-17中的任何一个的客户端,其中,TFTP选项包括重试开始块号码,其识别了在响应于第一请求包成功地传输的最后的块之后的第一块。
[0080]示例19包括示例16-18中的任何一个的客户端,其中,TFTP选项包括重试块数量,其识别了将响应于第二请求包进行重试的块的数量,其中,块的数量少于在第一文件中剩余的未成功地传输的块的总数量。
[0081]示例20包括示例16-19中的任何一个的客户端,其中,服务器是数据加载器的一部分,并且客户端是飞行管理计算机的一部分,并且其中,第一文件被从数据加载器加载到 飞行管理计算机上。
【权利要求】
1.一种使用普通文件传送协议(TFTP)来传输数据的方法(400A、400B),所述方法包括:将第一请求包从客户端发送到服务器,所述第一请求包请求传输第一文件(402);如果在所述客户端接收到来自所述服务器的第一确认包,则根据所述第一请求包传输所述第一文件,所述第一确认包指示了所述服务器能够接纳所述第一请求包的请求(406);如果所述第一文件的传输没有成功地完成,则将第二请求包从所述客户端发送到所述服务器,所述第二请求包包括TFTP选项,其指示了在响应于所述第一请求包而成功地传输的最后的块之后的第一块处开始重试所述第一文件的传输(408 );以及 如果在所述客户端接收到来自所述服务器的第二确认包,则根据所述第二请求包重试所述第一文件的所述传输,所述第二确认包指示了所述服务器能够接纳所述第二请求包的所述请求(412)。
2.一种实现普通文件传送协议(TFTP)的系统(500A、500B),所述系统包括: 服务器(502),具有第一网络接口(106)、第一处理器(108)和储存装置(112); 第一客户端(504) ,具有第二网络接口(106)和第二处理器(108),所述第一客户端通信地耦合至所述服务器; 其中,所述第一客户端被配置为将第一请求包发送到所述服务器,所述第一请求包请求传输第一文件(402); 其中,所述第一客户端被配置为如果在所述第一客户端接收到来自所述服务器的第一确认包,则根据所述第一请求包传输所述第一文件,所述第一确认包指示了所述服务器能够接纳所述第一请求包的请求(406); 其中,所述第一客户端被配置为如果所述第一文件的所述传输没有成功地完成,则将第二请求包发送到所述服务器,所述第二请求包包括TFTP选项,其指示了在响应于所述第一请求包而成功地传输的最后的块之后的第一块处开始重试所述第一文件的传输(408);以及 其中,所述第一客户端被配置为如果在所述第一客户端接收到来自所述服务器的第二确认包,则根据所述第二请求包并且在成功地传送的所述最后的块之后的所述第一块处开始重试所述第一文件的所述传输,所述第二确认包指示了所述服务器能够接纳所述第二请求包的所述请求(412)。
3.权利要求2所述的系统(500A、500B),进一步包括: 第二客户端(504),具有第三网络接口( 106)和第三处理器(108),所述第二客户端通信地耦合至所述服务器; 其中,所述第二客户端(504)被配置为将第三请求包发送到所述服务器,所述第三请求包请求传输第二文件(414); 其中,所述第二客户端(504)被配置为如果在所述第二客户端接收到来自所述服务器的第三确认包,则根据所述第三请求包传输所述第二文件,所述第三确认包指示了所述服务器能够接纳所述第三请求包的请求(416); 其中,所述第二客户端(504)被配置为如果所述第二文件的所述传输没有成功地完成,则将第四请求包发送到所述服务器,所述第四请求包包括第二 TFTP选项,其指示了在响应于所述第三请求包而成功地传输的第二最后块之后的第二块处开始重试所述第二文件的传输(418);以及 其中,所述第二客户端(504)被配置为如果在所述第二客户端接收到来自所述服务器的第四确认包,则根据所述第四请求包并且在成功地传送的所述第二最后块之后的所述第二块处开始重试所述第二文件的所述传输,所述第四确认包指示了所述服务器能够接纳所述第四请求包的所述请求(420 )。
【文档编号】H04L29/08GK104010023SQ201410063392
【公开日】2014年8月27日 申请日期:2014年2月25日 优先权日:2013年2月26日
【发明者】N.J.辛克 申请人:霍尼韦尔国际公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1