这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 综合技术» 基础知识» FTP、SFTP、TFTP三种文件传输协议怎么选?

共4条 1/1 1 跳转至

FTP、SFTP、TFTP三种文件传输协议怎么选?

高工
2023-11-29 10:08:04 打赏
在日常工作中,我们都离不开文件的上传和下载,那么在不同的文件系统之间传输文件,都有哪些协议?它们有啥区别?又该如何选择?

下面,我们就来了解一下常见的几种文件传输协议吧!01

FTP协议

FTP(File Transfer Protocol,文件传输协议)是用于在计算机网络中传输文件的标准协议。这是一种客户端/服务器协议,我们一般都通过FTP客户端软件将客户端连接到服务器,并使用FTP协议来上传和下载文件。

文件传输过程,如下图所示:

1701223543556.png


01

传输过程



  1. 服务器打开用于FTP控制连接的TCP(Transmission Control Protocol,传输控制协议)端口21(标准),等待FTP客户端的连接。当客户端需要登录FTP服务器时,与服务端(端口21)建立控制连接。该连接始终等待客户端和服务器之间的通信,将命令从客户端传递到服务器,并传回服务器的应答。
  2. 每当需要文件传输时,就创建一个数据连接。

举个例子:

寄件人“文档君”相当于FTP客户端,收件人相当于FTP服务器。

image.png

“文档君”需要寄快递,只需要在手机上操作,就可以让快递小哥上门取件,也可以随时取消取件订单,这个过程类似于控制连接。也就是说,控制连接用于传输控制指令,也可以在传输途中终止传输的指令。

快递小哥取到件之后,需要负责包裹(数据)的转运,直至派送。这个过程类似与数据连接,也就是说,数据连接用于实际的文件传输, 在传输完毕后关闭数据连接,结束整个文件传输流程。

02

特点



  • 安全性:FTP传输过程采用TCP明文传输,存在安全隐患,对于安全性要求较高的数据,不建议采用FTP服务。
  • 可靠性:FTP使用TCP作为传输层协议进行数据传输,保证了数据传输的可靠性。

  • 面向连接:FTP建立连接后会一直保持连接状态,直到连接被关闭。

  • 需要身份验证:FTP服务器通常需要用户进行身份验证后才能进行文件传输,以保护数据的安全性。

  • 支持的传输模式:支持二进制模式和ASCII模式,可以适应不同类型的文件传输。

    二进制模式应用场景:

image.png

  • ASCII模式应用场景:文本文件、HTML 文件、CGI 脚本、级联样式表文件、javascript 文件。

  • 支持文件列表:支持列出目录内容的操作。

  • 支持传输大文件:可以传输GB(Gigabyte,千兆字节)大小的文件。

02

SFTP协议

SFTP(Secure File Transfer Protocol,安全文件传输协议)是用于在计算机网络中安全传输文件的协议,其实就是加强版的FTP,专门采用了一个加密传输技术,来提高数据传输的安全性。

image.png


01

传输过程



  1. 客户端通过密钥对要传输的文件进行加密,然后发送给SFTP服务器。
  2. SFTP服务器使用密钥对加密文件进行解密,最终得到原文件。


02

特点



  • 安全性:SFTP使用SSH(Secure Shell,安全外壳协议)的加密机制,SSH可以在不安全的网络中对网络服务提供安全的传输环境,相当于给文件传输通道加上了一个保护罩,从而保证了数据的安全传输。
  • 可靠性:SFTP的传输过程是可靠的。如果传输中断,它可以从上一次中断的地方恢复,而无需重新传输整个文件。

  • 面向连接:SFTP建立连接后会一直保持连接状态,直到连接被关闭。

  • 需要身份验证:SFTP要求客户端用户必须由服务器进行身份验证。

  • 支持的传输模式:二进制模式和ASCII模式,可以适应不同类型的文件传输。

  • 支持文件列表:支持列出目录内容的操作。

  • 支持传输大文件:可以传输GB(Gigabyte,千兆字节)大小的文件。


03

TFTP协议

TFTP(Trivial File Transfer Protocol,简单文件传输协议)是一个用来在客户端与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务,它只能从服务器上获得或写入文件。

image.png


01

传输过程


TFTP客户端和TFTP服务器都是数据的发出者与接收者,一方传输数据接收应答,另一方发出应答接收数据。

举个例子:

类似于我们生活中和小伙伴打语音电话,一方发出语音请求,另一方可以接收语音。

image.png


02

特点



  • 安全性:TFTP不支持任何身份验证机制,因此安全性较差,需要在安全的网络中使用。
  • 可靠性:TFTP基于UDP(User Datagram Protocol,用户数据报协议)协议实现,没有错误恢复和重传机制,是不可靠的。

  • 面向无连接:TFTP是面向无连接的,即每个TFTP包都是独立的,不需要建立连接。

  • 不支持身份验证:TFTP不支持任何身份验证机制,因此安全性较差,需要在安全的网络中使用。

  • 支持的传输模式:支持二进制模式和ASCII模式,可以适应不同类型的文件传输。二进制模式和ASCII模式,可以适应不同类型的文件传输。

  • 不支持文件列表:TFTP不支持列出目录内容的操作,用户需要知道需要下载或上传的文件名。

  • 不支持传输大文件:TFTP只能传输较小的文件,因为它限制了数据包的大小。


04

三种协议适用场景

接下来,再说说这三个文件传输协议的适用场景,以帮助大家加深理解。假设我们需要将一份公司文件从你的电脑上传到公司服务器,这是一个常见的文件传输场景,可以用FTP、SFTP或TFTP协议进行传输。 image.png

  • 当我们需要传输团建VLOG视频文件时,可以使用FTP客户端连接到公司服务器,输入用户名和密码进行身份验证,然后上传文件。因为FTP传输不加密,如果VLOG视频中包含敏感信息,需要考虑其它安全性更高的协议。

  • 当我们需要传输机密会议录屏文件时,可以使用SFTP客户端连接到公司服务器,输入用户名和密码或SSH密钥进行身份验证,然后使用加密传输将文件上传到服务器。这种方式更加安全,适用于需要保护数据安全性的场合。

  • 当我们需要传输固件(固化在集成电路内部的程序代码)时,可以使用TFTP客户端通过公司内部的本地网络上传到公司服务器中。因为TFTP传输速度快,占用带宽少,因此可以快速完成上传过程。但需要注意的是,TFTP在安全性方面较弱,因此不适用于传输敏感信息。


结语

最后,给大家整理了一个表格,方便了解这三个协议之间的主要区别。

image.png





关键词: FTP SFTP TFTP 传输 协议

院士
2023-11-29 11:39:58 打赏
2楼

谢谢分享,学习了。


专家
2023-11-29 23:08:16 打赏
3楼

这个知识讲解的好,以前从来就没在意过这三个有什么区别。谢谢分享!


专家
2023-11-30 09:07:23 打赏
4楼

感谢楼主分享


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]