文件传输是运维工程师必备的技能之一,今天给大家分享文件传输协议相关的知识。希望对大家能有所帮助!
一、FTP
简介
FTP是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层,提供一种在服务器和客户机之间上传和下载文件的有效方式。
![图片](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/91da319dde7445ef9aaebce2b4303f79~tplv-k3u1fbpfcp-zoom-in-crop-mark:3024:0:0:0.image)
特点
基于TCP的传输
FTP采用双TCP连接方式
多用于Windows操作系统系统
支持授权与认证机制,提供目录列表功能
FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息
注意:否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。FTP传输模式:ASCII模式和二进制模式ASCII模式:用于传输文本。发送端的字符在发送前被转换成ASCII码格式之后进行传输,接收端收到之后再将其转换成字符。二进制模式:常用于发送图片文件和程序文件。发送端在发送这些文件时无需转换格式,即可传输。FTP采用两种数据传输方式:主动方式和被动方式主动方式:也称为PORT方式,是FTP协议最初定义的数据传输连接方式。主动方式特点:1、FTP客户端通过向FTP服务器发送PORT命令,然后告诉服务器该客户端用于传输数据的临时端口号。2、当需要传送数据时,服务器通过TCP端口号20与客户端的临时端口建立数据传输通道,完成数据传输;在建立数据连接的过程中,由服务器主动发起连接,因此被称为主动方式。工作交互过程如下: 被动方式也称为PASV方式,被动方式的主要特点是:1、FTP客户端通过向FTP服务器发送PASV命令,告诉服务器进入被动方式。服务器选择临时端口号并告知客户端2、当需要传送数据时,客户端主动与服务器的临时端口号建立数据传输通道,完成数据传输;在整个过程中,由于服务器总是被动接收客户端的数据连接,因此被称为被动方式。工作交互过程如下:![图片](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/55b3c523e85f48dc8d16a4357851650f~tplv-k3u1fbpfcp-zoom-in-crop-mark:3024:0:0:0.image)
二、TFTP
TFTP属于简单文件传输协议,也是采用客户机/服务器模式的文件传输协议;TFTP基于在UDP之上,默认端口号69。 特点
TFTP封装:Ethernet 2/IPv4/UDP/FCS
TFTP适用于客户端和服务器之间不需要复杂交互的环境
TFTP仅提供简单的文件传输功能(上传、下载)
TFTP不提供存取授权与认证机制,不提供目录列表功能
TFTP协议传输是由客户端发起的
三、安全文件传送协议SFTP
可以为传输文件提供一种安全的网络的加密方法。SFTP 其实是SSH的其中一部分,是一种客户端传输文件至服器的安全方式。其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用ssh守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。
![图片](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/259bfc4ac258456796477a7ded922b30~tplv-k3u1fbpfcp-zoom-in-crop-mark:3024:0:0:0.image)
SFTP同样是使用加密传输认证信息和传输的数据,使用SFTP是非常安全的。由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低一些,SFTP一般用于Linux操作系统,作为使用最广泛的文件传输协议。
四、FTP与SFTP对比
FTP和SFTP区别如下图:
![图片](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1ab957f9b25c40ea80effab691cc27d4~tplv-k3u1fbpfcp-zoom-in-crop-mark:3024:0:0:0.image)
五、总结
对安全性要求比较高的话,推荐使用SFTP协议,对传输速度要求比较高的话推荐采用FTP协议。SFTP常用于Linux操作系统需要有一定的Linux基础,FTP主要用于Windows操作系统,配置比较简单。TFTP协议目前用的比较少,了解就行了。
|