TFTP传输方法

作为嵌入式开发程序猿,不可避免的经常需要从电脑、编译服务器和Linux开发板之间传输文件。Android有adb工具,不需要多说,本文介绍一种广泛应用于Linux的一种文件传输方法TFTP。

01   TFTP简介

TFTP(Trivial File Transfer Protocol,简单文件传输协议):TFTP是一个传输文件的简单协议,绝大多数情况下基于UDP协议而实现,也不排除有部分TFTP协议是基于其它传输协议完成的。用来在客户机与服务器之间进行简单文件传输,提供不复杂、开销不大的文件传输服务。端口号为69。

 

02   TFTP用法

我们以Windows电脑端作为服务端,Linux作为客户端为例,具体设置如下:

一、 设置服务端

服务端打开一个Tftpd32.exe的TFTP工具,选择Tftp Server按钮使其作为服务终端,如下图:

TFTP传输方法_第1张图片

 

说明:

CurrentDirectory: 当前服务端的路径,和客户端传输的文件都存储在这个路径下。包括客户端从服务端下载和上传的所有文件。此路径可以通过Browse按钮根据自己的情况设置。

Server interfaces:服务端传输数据网口IP地址,对于多个网口的设备,可以选择所需要传输数据网口对应的IP地址


二、 客户端(开发板))

一般情况下,Linux开发板都会带有busybox指令集,busybox中一般都集成有tftp命令,所以这就不需要我们在开发板客户端做任何设置。只需要在串口终端输入tftp即可使用,下图是小编开发板上的tftp信息:

TFTP传输方法_第2张图片

从上图可以看出,使用tftp命令传输文件时还是有一些参数的,具体常用参数的用法如下:

-g表示下载文件(get) 

-p表示上传文件(put) 

-l表示本地文件名(local file)

-r表示远程主机的文件名(remote file)

例如,我们要从小编服务端远程主机172.30.16.72上下载一个名为test.txt的文件,则应输入以下命令:

tftp -g -r test.txt 172.30.16.72

 

三、 客户端(Linux服务器)

除了开发板,在一些Linux服务器上,我们也可以使用tftp命令来传输文件。请看小编以下操作截图:

由上图可以看出,我们可以在Linux终端上输入

tftp 172.30.16.72 

这个行命令,就会进入到tftp的操作,用get test.txt命令从服务端下载文件。同样,用put 命令将文件上传服务端。这就实现了文件的传输功能。

 

进入TFTP操作说明:

connect:连接到远程tftp服务器

mode:文件传输模式

put:上传文件

get:下载文件

quit:退出

verbose:显示详细的处理信息

tarce:显示包路径

status:显示当前状态信息

binary:二进制传输模式

ascii:ascii 传送模式

rexmt:设置包传输的超时时间

timeout:设置重传的超时时间

help:帮助信息

? :帮助信息

TFTP传输方法_第3张图片

 

03   TFTP优缺点

优点:

1、TFTP可用于UDP环境;比如当需要将程序或者文件同时向许多机器下载时就往往需要使用到TFTP协议。

2、TFTP代码所占的内存较小,这对于较小的计算机或者某些特殊用途的设备来说是很重要的(比如我们一些简单的Linux嵌入式设备),这些设备不需要硬盘,只需要固化了TFTP、UDP和IP的小容量只读存储器即可。

3、不需要验证客户端的权限,在局域网中调试设备时传输文件就减少了很多步骤。

缺点:

TFTP是一个传输文件的简单协议,此协议设计的时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录。

 04  总结

在一些嵌入式局域网的软件调试过程中,我们可以用TFTP来传输我们调试过程中产生的文件,如一些临时验证的可执行文件,抓包文件,TFTP搭建传输环境简单,可以提高我们的调试效率。但是如果是一些比较大的文件并且是互联网传输的,小编我还是建议大家用FTP。

好了,TFTP暂时分享到这了,本文介绍的只是一些自己觉得重要的概念和用法,欢迎大家关注下面公众号和我们交流更多软硬件知识。

你可能感兴趣的:(TFTP传输方法)