TFTP和FTP的区别

作者:xchuaii

原作网址:http://blog.163.com/xchuaii@126/blog/static/133060217201256115524125/

TFTP:Trivial File Transfer Protocol,简单文件传输协议,它基于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其它传输协议完成的。

FTP:File Transfer Protocol,文件传输协议,FTP 使用TCP 生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输。

FTP通信过程

服务器首先运行一个本地主服务进程,当客户端用户输入open和ftp命令后,客户指定一个远程计算机,建立一个客户控制进程,本地应用成为一个FTP客户,建立了自己的半相关。
然后,客户用TCP建立与指定FTP服务器之间的控制连接。客户与服务器在控制连接进行通信时使用FTP协议。
服务器接收到客户连接请求后,开启一个服务器控制进程,该进程与客户控制进程建立起控制连接,即相关,双方进入会话状态。
通过控制连接,客户控制进程向服务器发出客户数据传输请求,服务器控制进程接收到后,开启一个服务器数据传输进程,该进程建立一个自己的半相关,并向客户控制进程发出连接请求。
客户控制进程接收到请求后,开启一个客户数据传输进程,并与服务器数据传输进程建立相关,双方建立数据传输。
数据传输结束后,关闭数据连接,双方的数据传输进程生命结束,但控制进程仍然存在,以后可以再重新发起新的数据传输服务。

TFTP用于从服务器请求文件然后传输文件。使用TFTP与使用电子邮件非常相似:首先由客户发出一个请求文件的消息,然后服务器把文件返回到本地客户系统上。

1、TFTP协议的优势

尽管与FTP相比TFTP的功能要弱得多,但是TFTP具有两个优点:

1)TFTP能够用于那些有UDP而无TCP的环境;

2)TFTP代码所占的内在要比FTP小。

尽管这两个优点对于普通计算机来说并不重要,但是对于那些不具备磁盘来存储系统软件的自举硬件设备来说TFTP特别有用。

2、TFTP协议与FTP协议的相同点

TFTP协议的作用和我们经常使用的FTP大致相同,都是用于文件传输,可以实现网络中两台计算机之间的文件上传与下载。可以将TFTP协议看作是FTP协议的简化版本。

3、TFTP协议与FTP协议的不同点

1)TFTP协议不需要验证客户端的权限,FTP需要进行客户端验证;

2)TFTP协议一般多用于局域网以及远程UNIX计算机中,而常见的FTP协议则多用于互联网中;

3)FTP客户与服务器间的通信使用TCP,而TFTP客户与服务器间的通信使用的是UDP;

4)TFTP只支持文件传输。也就是说,TFTP不支持交互,而且没有一个庞大的命令集。最为重要的是,TFTP不允许用户列出目录内容或者与服务器协商来决定哪些是可得到的文件。

FTP 是完整、面向会话、常规用途文件传输协议。而 TFTP 用作 bones bare – 特殊目的文件传输协议。

交互使用 FTP。 TFTP 允许仅单向传输的文件。

FTP 提供身份验证。而TFTP 不。

FTP 使用已知 TCP 端口号: 20 的数据和 21 用于连接对话框。 TFTP 用于 UDP 端口号 69 其文件传输活动。

因为 TFTP 不支持验证 WindowsNT ,所以FTP 服务器服务不支持 TFTP。

FTP 依赖于 TCP,是面向连接并提供可靠的控件。 TFTP 依赖 UDP,需要减少开销, 几乎不提供控件。

简单文件传送协议TFTP(Trivial File Transfer Protocol)是一个TCP/IP协议族中一个很小且易于实现的文件传送协议。TFTP也是使用客户服务器方式,但它使用UDP数据报,因此TFTP需要有自己的差错改正措施。

TFTP的主要特点是:

(1)每次传送的数据PDU中有512字节的数据,但最后一次可不足512字节。

(2)数据PDU也称为文件块(block),每个块按序编号,从1开始。

(3)支持ASCII码或二进制传送。

(4)可对文件进行读或写。

(5)使用很简单的首部。

(6)TFTP只支持文件传输而不支持交互;

(7)TFTP没有一个庞大的命令集;

(8)没有列目录的功能;

(9)也不能对用户进行身份鉴别。

TFTP的工作很像停止等待协议。例如:

(1)发送完一个文件块后就等待对方的确认,确认时应指明所确认的块编号。

(2)发完数据后在规定时间内收不到确认就要重发数据PDU。

(3)发送确认PDU的一方若在规定时间内收不到下一个文件块,也要重发确认PDU。这样就可保证文件的传送不致因某一个数据报的丢失而告失败。

TFTP在一开始工作时,客户进程发送一个读请求PDU或写请求PDU给TFTP服务器进程,其熟知端口号码为69。TFTP服务器进程要选择一个新的端口和TFTP客户进程进行通信。若文件长度恰好为512字节的整数倍,则在文件传送完毕后,还必须在最后发送一个只含首部而无数据的数据PDU;若文件长度不是512字节的整数倍,则最后传送数据PDU的数据字段一定不满512字节,这正好可作为文件结束的标志。

sftp是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。sftp 与 ftp 有着几乎一样的语法和功能。sFTP 为 SSH的一部份,是一种传输档案至 Blogger 伺服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol的安全文件传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。

发表评论

电子邮件地址不会被公开。 必填项已用*标注