T F T P协议需要客户进程向服务器进程的U D P熟知端口(6 9)发送第一个分组(R R Q或W R Q)。
之后服务器进程便向服务器主机申请一个尚未使用的端口( 1 0 7 7,见图1 5 - 2),服务器进程使
用这个端口来进行请求客户进程与服务器进程间的其他数据交换。客户进程的端口号(在这
个例子中为11 0 6)没有变化。t c p d u m p无法知道主机s r v 4上的1 0 7 7端口是一个T F T P服务器进
程。
服务器进程端口变化的原因是服务器进程不能占用这个熟知端口来完成需一些时间的文
件传输(可能是几十秒甚至数分钟)。相反,在传输当前文件的过程中,这个熟知端口要留出
来供其他的T F T P客户进程发送它们的请求。
在开始工作时,T F T P的客户与服务器交换信息,客户发送一个读请求或写请求给服务器。
在一个无盘系统进行系统引导的正常情况下,第一个请求是读请求( R R Q)。图1 5 - 1显示了5
种T F T P报文格式(操作码为1和2的报文使用相同的格式)。
T F T P报文的头两个字节表示操作码。对于读请求和写请求( W R Q),文件名字段说明客
户要读或写的位于服务器上的文件。这个文件字段以0字节作为结束(见图1 5 - 1)。模式字段
是一个A S C I I码串n e t a s c i i或o c t e t(可大小写任意组合),同样以0字节结束。n e t a s c i i
表示数据是以成行的A S C I I码字符组成,以两个字节—回车字符后跟换行字符(称为C R / L F)
作为行结束符。这两个行结束字符在这种格式和本地主机使用的行定界符之间进行转化。
o c t e t则将数据看作8 bit一组的字节流而不作任何解释。
每个数据分组包含一个块编号字段,它以后要在确认分组中使用。以读一个文件作为例
子,T F T P客户需要发送一个读请求说明要读的文件名和文件模式( m o d e )。如果这个文件能被
这个客户读取, T F T P服务器就返回一个块编号为1的数据分组。T F T P客户又发送一个块编号
为1的A C K。T F T P服务器随后发送块编号为2的数据。T F T P客户发回块编号为2的A C K。重复
这个过程直到这个文件传送完。除了最后一个数据分组可含有不足5 1 2字节的数据,其他每个
数据分组均含有5 1 2字节的数据。当T F T P客户收到一个不足5 1 2字节的数据分组,就知道它收
到最后一个数据分组。
在写请求的情况下,TFTP 客户发送W R Q指明文件名和模式。如果该文件能被该客户写,
TFTP 服务器就返回块编号为0的A C K包。该客户就将文件的头5 1 2字节以块编号为1发出。服
务器则返回块编号为1的A C K。
Tftp 向运行曰常文件传输协议 (TFTP) 服务或守护程序的远程计算机(尤其是运行 UNIX 的计算机)传输或接收文件。如果使用时不带参数,tftp 将显示帮助。 语法 tftp [-i] [Host] [{get | put}] [Source] [Destination] 参数 -i 指定二进制图像传送模式(也称为八进制模式)。在二进制图像模式下,文件以一个字节为单位进行传输。在传送二进制文件时使用该模式。如果省略了 -i,文件将以 ASCII 模式传送。这是默认的传送模式。该模式将行尾 (EOL) 字符转换为指定计算机的适当格式。传送文本文件时使用该模式。如果文件传送成功,将显示数据传输率。 Host 指定本地或远程计算机。 put 将本地计算机上的 Destination 文件传送到远程计算机上的 Source 文件中。因为 TFTP 协议不支持用户身份验证,所以用户必须登录到远程计算机,同时文件在远程计算机上必须可写。 get 将远程计算机上的 Destination 文件传送到本地计算机上的 Source 文件中。 Source 指定要传送的文件。 Destination 指定将文件送达的位置。如果省略了 Destination,将假定它与 Source 具有相同名称。 |
示例
要从本地计算机将文件 Users.txt 传送到远程计算机 vax1 上的 Users19.txt,请键入:
tftp vax1 put users.txt users19.txt