当前位置:文档之家› 简述TFTP简单文件传输协议实现过程

简述TFTP简单文件传输协议实现过程

简述TFTP简单文件传输协议实现过程

通过本文,你可以了解到

◆什么是TFTP协议

◆TFTP作用及一般性用途

◆如何搭建TFTP并通过实例演示其工作过程

◆从协议角度分析TFTP传输过程

一、何为TFTP协议

TFTP协议,即为Trivial File Transfer Protocol,简单文件传输协议,它是TCP/IP 协议簇中被用来在服务器和客户机之间传输简单文件的协议,从名称上来看似乎和我们常见的FTP协议很类似,其实两者都是用来传输文件,但不同的是,TFTP较FTP在传输文件体积方面要小得多,比较适合在需要传送的小体积文件。比如在对CISCO设备进行IOS升级或备份时,就是通过此协议连接到CISCO的TFTP服务器进行相关操作。除此之外,TFTP操作也非常简单,功能也很有限,不能像FTP一样实现例如身份验证、文件目录查询等诸多功能。

二、搭建并测试TFTP

1、获取TFTP.EXE

这里通过一个实例来向大家演示如何在windows中搭建并使用TFTP服务器。

首先,我们需要获取tftp.exe(请见附件1)。有两个办法可以获得这个程序:

1> 大家可以在windows XP 系统光盘中的i386文件夹中,利用expand命令从tftp.ex_中提取tftp.exe程序。

2> 其实这个程序已经被内置在系统中,大家可以在C:WINDOWSsystem32中找到它。

2、搭建TFTP服务器

安装TFTP服务器?听上去似乎好困难,其实很简单,这里所谓的搭建TFTP服务器其实就是将TFTP.exe作为一个服务安装在系统中,使之成为系统内置的一个服务,这样为日后提供稳定的TFTP传输打好基础。

如何将一个程序变成Windows的服务呢?其实可以很多编程语言内置有特定的方法可以实现,但很显然,这样的办法不具备普遍性,这里我想大家推荐一个小工具,它内置于windows2000的Resource Kits,名为Srvinstw,是一个图形化的工具(请见附件2),操作也很简单。

我们就采用最通用的办法来安装TFTP服务。

具体安装过程:

找到Srvinstw

运行Srvinstw,在这里我们可以安装一个服务,或者是卸载系统中已存的服务,只要点选【卸载服务】即可。

选择【安装服务】,然后点击【下一步】

如果是想把服务安装在远程一台主机上,只需选择【远程主机】并输入主机名即可。这里我们选择【本地主机】,然后点击【下一步】

在【服务名称】中输入想在服务列表中显示的名称,我这里输入的是TFTP,然后点击【下一步】

这里点击【浏览】找到tftp.exe程序,然后点击【下一步】

默认选择【系统自带服务】,然后点击【下一步】

默认使用【系统帐户】登陆此服务即可,然后点击【下一步】

这里设置服务启动类型,我们选择【自动】,然后点击【下一步】

确认所安装的服务,点击【完成】即可。

OK,到此位置,已经将TFTP程序安装至windows的系统服务中。

我们打开services.msc查看一下

尽管服务已经安装完毕,但默认是停止状态,需要手工启动此服务。至此,TFTP服务器已搭建完毕,

3、测试TFTP服务器

测试TFTP服务器时需要用到TFTP命令,且该程序已经内置在XP系统中,所以我们可以直接通过命令行窗口运行TFTP命令。

大家可以看到,TFTP的命令参数很少,也很简单,一般命令格式如下

TFTP [-i] host [GET | PUT] source [destination]

参数详解

-i :表示使用二进制进行文件传输

host :指定TFTP服务器的主机名或IP地址

GET | PUT :即为下载或上传文件

最后两个参数自然是指定源文件和目标文件

测试环境很简单,安装TFTP的服务器IP为192.168.1.100,在本地的C盘上有一个1.txt 的文件,现在我们要将这个文件利用TFTP命令上传到192.168.1.100上去。在本地运行命令:

tftp -i 192.168.1.100 put c:1.txt

如下图:

可能有的朋友会产生一个疑问,这条命令里并未指定目的地,那这个文件会传到哪里呢,其实这里并不需要我们指定目的地,因为在命令结束后,TFTP服务器会自动在系统根目录,也就是C盘下建立一个tftpdroot的文件夹,上传的文件会自动保存在这个文件夹里。如下图:

当我们想从TFTP服务器上下载文件时,只需要把文件放到这个目录下,并用GET命令下载即可,命令如下:

tftp -i 192.168.1.100 get down.txt e:down.txt

如下图:

同样,这条命令也没有指定具体的源路径,只是指定了一个文件。

三、协议角度分析TFTP传输

从上面2个实例已经看出TFTP协议传输过程非常简单且,在传输小体积文件时候效率很高,下面我想从协议角度来分析TFTP上传的过程。

基本环境介绍:

客户机:192.168.1.50

TFTP服务器:192.168.1.100

上传文件:AAAA.TXT

协议分析工具:Wireshark 1.1.1

首先,运行此命令,如下图

从上图可以看到文件顺利传输,此时WIreshark已经抓到相应数据包,如下图:

下面是协议分析过程

第一个数据包:

第二个数据包:

第三个数据包:

第四个数据包:

通过分析这4个数据包,算是对TFTP上传过程的一个简短的描述。

我们可以看到,TFTP通过69号端口进行初始化连接,并依赖UDP协议进行数据传输,可见TFTP是一种无连接的协议类型。其实还有其他很多操作细节没有说到,包括TFTP的5种Opcode等等,如果想了解有关TFTP协议的更多细节,请参考编号为1350的RFC文档。

再次查看相关资料得知:TFTPD.EXE为服务端程序,而TFTP.EXE为客户端程序。

本文是基于tftp测试的。

原文连接:/news/wenzhang/w31/200906/156668_3.html

相关主题