定义- 简单文件传输协议(SFTP)是什么意思?
简单文件传输协议(SFTP)是文件传输协议(FTP)的不安全的轻量级版本,它在传输控制协议端口号115上运行。它具有一些有用的功能,在普通FTP(TFTP)中不存在,但功能不那么强大作为FTP。
镭速(Raysync)解释了简单文件传输协议(SFTP)
如果协议是面向8位字节流的,则SFTP可以使用任何协议来实现。它是在RFC 913中定义的,并且在TFTP和FTP之间表现出中等的复杂度。SFTP有11个命令集。有时将它与安全版本协议Secure Shell FTP混淆。
可以通过打开到远程主机端口115的TCP连接来实现SFTP。SFTP支持诸如用户访问控制,文件传输,目录列表,目录更改,文件重命名和删除之类的功能。SFTP没有像TFTP一样受到关注,并且在Internet上没有得到广泛的接受。现在,协议状态由IETF标记为历史记录。
SFTP支持三种类型的数据传输:
1、美国信息交换标准代码(ASCII):ASCII字节通常从源系统文件中提取并通过连接传输并存储在目标系统文件中。
2、二进制:8位字节取自源系统中的文件,通过连接传输并存储在目标系统文件中。
3、连续:这些位是从源系统文件中提取的,并通过打包成8位字节的连接传输而忽略字边界。目标系统以连续方式接收这些位,没有字边界。
SFTP支持用户身份验证,用户必须输入用户名和密码才能登录服务器。它还具有分层文件夹和文件管理功能。
镭速传输提供一站式文件传输加速解决方案,旨在为IT、影视、生物基因、制造业等众多行业客户实现高性能、安全、稳定的数据传输加速服务。传统文件传输方式(如FTP/HTTP/CIFS)在传输速度、传输安全、系统管控等多个方面存在问题,而镭速文件传输解决方案通过自主研发、技术创新,可满足客户在文件传输加速、传输安全、可管可控等全方位的需求。
了解更多,欢迎访问镭速传输官网https://www.raysync.cn/
FTP服务器,全称File Transfer Protocol Server,是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。FTP,文件传输协议(File Transfer Protocol)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。FTP是专门用来传输文件的协议。
FTP是一个客户机/服务器系统,用户通过使用一个支持FTP协议的客户端,连接到远程主机上的服务器程序上。用户在客户端发出命令,远程主机服务器接收到命令后执行用户所发出的命令,同时将执行结果返回到客户端。简单来说,就是用户对服务器发出一条命令,要求服务器向用户发送一份文件,服务器响应并发送文件到客户端,用户收到文件将其放置于用户工作目录中,这一过程就是FTP服务器进行的文件交流。
FTP服务器工作原理
FTP基于TCP协议服务,是互联网中进行文件传输的协议,默认使用20、21号两个端口,一个数据端口和一个命令端口,端口20是数据端口,用于文件在客户端和服务器之间传输数据流。端口21是命令端口,用于传输控制流,接受客户端发出的相关FTP命令与参数。
如图中FTP服务的工作原理所示。FTP客户端在计算机网络中向FTP服务器发送服务请求,FTP服务器接收与响应FTP客户机的请求,并向FTP客户机提供所需的文件传输服务。根据TCP协议的规定,FTP服务器使用熟知端口号20、21来提供服务,FTP客户机使用临时端口号来发送请求。FTP协议为控制连接与数据连接规定不同的熟知端口号,为控制连接规定的熟知端口号是21,为数据连接规定的熟知端口号为20。FTP协议采用的是。
持续连接的通信方式,它所建立的控制连接的维持时间通常较长。
讲完FTP的工作原理的主要连接方式,接着讲解FTP工作原理中两种数据连接的建立类型:主动模式和被动模式。FTP的主动模式是指客户端从任意一个非特权端口连接FTP服务器的熟知端口,即端口21。FTP服务器在收到命令后从数据端口连接客户端又一临时端口,返回数据;被动模式是指客户端开启两个任意非特权端口提交命令,FTP服务器被动开启任意非特权端口发送命令给客户端,客户端接收命令后从本地端口向FTP服务器发起建立连接的传送数据通道,在这一模式内,命令连接和数据连接都由客户端发起,解决服务器发起到客户的连接的问题。
通俗来讲,我们如果把服务端作为判断标准。
主动模式:服务端从20端口主动向客户端发起连接。
被动模式:服务端在指定范围内的某个端口被动等待客户端发起连接。
FTP的实现目标
1、实现文件共享,即计算机客户端通过FTP客户端和互联网能连接到世界各地的FTP服务器,实现文件共享及资源共享。
2、实现信息交互户,即其他计算机客户端能通过互联网访问你的计算机上面搭建的FTP服务器,使你的信息资料能够传播到世界各地。
3、进行有效的数据传输。不同类型、不同系统、不同格式的电脑之间能够互换文件。
FTP和TFTP都是文件传输协议,名字只相差一个字母,但实质上他们有很大区别,FTP是基于TCP协议,而TFTP是基于UDP协议,实际应用中他们的区别如下:
1、FTP
FTP(File Transfer Protocol)协议在TCP/IP协议族中属于应用层协议,主要向用户提供远程主机之间的文件传输,FTP协议基于相应的文件系统实现。
系统提供的FTP服务包括:
(1)FTP Server服务,用户可以运行FTP客户端程序登录到路由器上,访问路由器上的文件。
(2)FTP Client服务,用户在微机上通过终端仿真程序或Telnet程序建立与路由器的连接后,可以输入FTP命令建立与远程FTP Server的连接并访问远程主机上的文件。
2、TFTP
TFTP(Trivial File Transfer Protocol)是一种简单文件传输协议。相对于另一种文件传输协议FTP,TFTP不具有复杂的交互存取接口和认证控制,适用于客户机和服务器之间不需要复杂交互的环境,例如在系统启动时使用TFTP协议来获取系统的内存映像。TFTP协议一般在UDP的基础上实现。
TFTP协议传输是由客户端发起的。当需要下载文件时,由客户端向TFTP服务器发送读请求包,然后从服务器接收数据包,并向服务器发送确认;当需要上传文件时,由客户端向TFTP服务器发送写请求包,然后向服务器发送数据包,并接收服务器的确认。
TFTP传输文件有两种模式:一种是二进制模式,用于传输程序文件;另一种是ASCII码模式,用于传输文本文件。
3、XModem
除了FTP和TFTP以外还有一种常见协议:XModem。
XModem因其简单性和较好的性能而被广泛应用。XModem协议是通过串口传输文件,支持128字节和1K字节两种类型的数据包,并且支持一般校验和、CRC两种校验方式,在出现数据包错误的情况下支持多次重传(一般为10次)。
XModem协议传输由接收程序和发送程序完成。先由接收程序发送协商字符,协商校验方式,协商通过之后发送程序就开始发送数据包,接收程序接收到完整的一个数据包之后按照协商的方式对数据包进行校验,校验通过之后发送确认字符,然后发送程序继续发送下一包;如果校验失败,则发送否认字符,发送程序重传此数据包。
HTTP和FTP都是用于在客户端和服务器之间传输数据的文件传输协议,但它们之间还是存在差异的。在介绍HTTP和FTP之间的区别之前,我们首先来了解一下HTTP和FTP。
什么是HTTP?
HTTP是超文本传输协议,是用于在万维网上传输文件(文本,图形图像,声音,视频和其他多媒体文件)的规则集。它是互联网中数据通信的基础,数据通信以客户端发送的请求开始,并以从Web服务器接收的响应结束。
只要Web用户打开Web 浏览器,就会间接的使用HTTP。HTTP是一种在TCP / IP协议套件(Internet的基础协议)之上运行的应用程序协议。
什么是FTP?
FTP是文件传输协议,用于使用TCP在FTP服务器和网络中的客户端计算机之间上传和下载文件,可以将文件从一个主机复制到另一个主机。
FTP使用TCP的服务在客户端和服务器之间传输文件,会建立两个连接,一个用于TCP端口号20上的数据传输,另一个用于TCP端口号21上的控制信息(命令和响应)。
HTTP和FTP之间的区别
1、功能上的区别
HTTP用于访问Internet上的不同网站,将网页内容从Web服务器传输到客户端的Web浏览器,被称为单向系统。
FTP用于在FTP服务器和FTP客户端之间上传和下载文件,可以将文件从一个主机传输到另一个主机,被称为双向系统。
2、连接上的区别的区别
HTTP仅建立一个链接:数据连接。
FTP建立两个链接:数据连接和控制连接。
3、使用端口的区别
HTTP使用TCP的80端口,而FTP使用TCP的20和21端口。
4、传输的文件大小的区别
HTTP可以有效地传输较小的文件,如网页;而FTP则可以有效地传输大文件。
5、验证区别
HTTP不需要身份验证;而FTP使用密码进行身份验证。
6、数据储存的区别
使用HTTP传输到设备的网页或数据内容不会保存在该设备的内存中,而使用FTP传送到设备的数据会保存在该设备的内存中。
7、显示的区别
如果用户使用HTTP,http将显示在网站的URL中;如果用户使用的是FTP,则会在URL中显示ftp。
FTP工作在TCP/IP模型的应用层,基于的传输协议是TCP,FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。
FTP的主要特征:
1.控制连接是建立在客户协议解释器和服务器协议解释器之间用于交换命令与应答的通信链路。
2.数据连接是传输数据的全双工连接。传输数据可以发生在服务器数据传输过程DTP和客户DTP之间,也可以发生在两个服务器的DTP之间。
文件类型:
1.ASCII码文件类型(默认选择),以NVT ASCII码形式通过数据连接传输;
2.EBCDIC文件类型。该文本文件传输方式要求两端都是EBCDIC系统;
3.图像文件类型(也成为二进制文件类型),数据发送形式呈现为一个连续的比特流。
数据结构:
1.文件结构(File Structure)字节流,无结构;
2.记录结构(Record Structure)文件被划分为记录,用于文本文件;
3.页结构(Page Structure)文件被划分为页,每页有页号和页头。可以进行随机存取或顺序存取。
传输方式:
FTP的传输模式有流模式、块模式和压缩模式:
1.流模式:数据以字节流的形式传送
-记录结构
-文件结构
2.块模式:文件以块的形式传送,块带有自己的头部分。头字节包括16位计数域和8位描述子代码
3.压缩模式:压缩模式中,因为数据是压缩过的,对于增加带宽有很多好处。
块模式头字节的结构
描述子代码在描述子字节中的位标记说明
FTP中的客户端-服务器模型
FTP客户端与服务器之间要建立双重连接,一个是控制连接,一个是数据连接。
控制连接:NVT ASCII
数据连接:文件类型、数据结构、传输方式
建立双重连接的原因是:FTP是一个交互式会话系统,某客户每次调用FTP,便与服务器建立一次会话,会话以控制连接来维持。
客户端每提出一个请求,服务器与客户端建立一个数据连接,进行实际的数据(比如文件)传输,一旦数据传输结束,数据连接相继撤销,但控制连接依然存在,客户端可以继续发出命令。
客户可以撤销控制连接(close命令),也可以退出FTP会话(quit命令)。
FTP服务器的实现是由一组FTP进程完成的。
服务器FTP进程:由协议解释器PI和数据传输过程DTP组成。
客户端FTP进程:由PI、DTP和用户接口组成。
传输和控制采用独立的连接方式 具有以下三方面的优点:
1.使FTP协议更加简单并且更容易实现,例如控制连接可以直接采用Telnet协议实现,FTP数据连接不会与FTP命令混淆起来;
2.在数据连接结束后,控制连接仍然保留着,它能够在新的传输连接时被使用;
3.发送方与接收方在所有的数据都到达时可以在数据连接上用文件结束来通知另一方,从而达到命令传输的功能。
FTP使用Telnet协议进行控制连接。
通信:
FTP使用客户端/服务器模式,涉及到五个进程和两个相关。
服务器首先运行一个本地FTP主服务进程,当客户端用户输入open或ftp命令后,客户端指定一个远程计算机时,建立一个客户端控制进程,本地应用成为一个FTP客户端,建立了与自己的半相关。
然后,客户端用TCP建立与指定计算机上的FTP服务器之间的控制连接。
服务器接收到客户端的请求后,派生一个服务器控制进程,该进程与客户端控制进程建立起控制连接,即相关,双方进入会话状态。
客户端要进行数据传输时,派生一个客户端数据传输进程,并在一个非默端口上被动打开,通过控制连接,客户端用port将端口号发送给服务器控制进程。
服务器控制进程接收到后,派生一个服务器数据传输进程,该进程建立一个自己的半相关(20),并向客户端数据进程发出连接请求,与客户端数据传输进程建立相关,双方建立数据传输。
数据传输结束后,关闭数据连接,双方数据传输进程结束,但控制进程仍然存在,然后可以再重新发起新的数据传输服务。
FTP命令与响应
FTP命令主要用于控制连接,可以直接采用Telnet协议实现,所以FTP命令同Telnet命令包括中断进程、Telnet的同步信号、查询服务器、带选项的Telnet命令等。
命令以NVT ASCII码形式传送,要求在每行结尾都要CR、LF对。
FTP响应都是ASCII码形式的3位数字,响应也是以NVT ASCII码形式传送,要求在每行结尾都要返回CR、LF对。
匿名FTP的用途:
从前面的讲解可知,使用FTP时必须首先利用Telnet协议登录,获得远程主机相应的权限,才能上传和下载文件。
本地主机必须具有用户ID和口令,获得远程计算机的适当授权,否则便无法传送文件,Internet上的FTP主机很多,不可能要求每个用户在每一台主机上拥有帐号。
匿名FTP无需本地主机成为远程计算机的注册用户,从而解决了这个问题。
匿名FTP机制:
远程计算机建立了名为anonymous的用户特殊ID,这样Internet上的任何人在任何地方都可使用该用户ID,下载文件,而无需成为其注册用户。
匿名FTP主机的连接使用方式同连接普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous,其口令可以是客户端自己喜欢的任意字符串。
之前已经了解了TCP/IP这种低级别的协议,还有一些网络协议包括文件传输(FTP,STP)、阅读Usenet新闻组(NNTP)、电子邮件发送(SMTP)、从服务器上下载电子邮件(POP3、IMAP)等。
一、文件传输
1.文件传输网际协议
因特网中最流行的事情就是文件交换。
文件交换无处不在。有很多协议可以供因特网上传输文件使用。
最流行的有文件传输协议(File Transfer Protocol,FTP)、Unix-to-Unix复制协议(Unix-to-Unix Copy Protocol,UUCP)
和网页的超文本传输协议(Hypertext Transfer Protocol,HTTP)。
另外还有(Unix下的)远程文件复制命令rcp(以及更安全更灵活的scp和rsync)。
迄今为止,HTTP、FTP和scp/rsync还是非常流行的。HTTP主要用于网页文件的下载和访问web服务上。
它一般不要求用户输入登陆的用户名密码就可以访问服务器上的文件和服务。
HTTP文件传输请求主要是用于获取网页(文件下载)。
相对的,scp和rsync要求用户登录到服务器,否则不能上传和下载文件。
至于FTP,跟scp/rsync一样,可以上传或下载文件,还采用了Unix的多用户的概念,用户一定要输入有效的用户名和密码才能使用。不过,FTP也允许匿名登陆。
二、文件传输协议(FTP)
文件传输协议最早主要用于匿名下载公共文件,也可以用在两台电脑之间传输文件,尤其是在使用Unix系统作为文件存储系统,使用其他机器来工作的情况。
在网络流行之前,FTP就是在因特网上文件传输、软件和源代码下载的主要手段之一。
FTP要求输入用户名和密码才能访问远程的FTP服务器,但它也允许没有账号的用户以匿名用户登陆。
不过,管理员要先设置FTP服务器允许匿名用户登陆。这时,匿名用户的用户名是“匿名”(anonymous),密码一般是用户的电子邮件地址。
与特定的用户拥有特定的账户不同,这有点像把FTP公开出来让大家访问。匿名用户通过FTP协议可以使用的命令与一般的用户相比来说,限制更多。
下图展示了FTP协议的工作流程:
(1)客户端连接远程的FTP服务器;
(2)客户端输入用户名和密码(或“匿名”和电子邮件地址);
(3)客户端做各种文件传输和信息查询操作;
(4)客户端登出远程FTP服务器,结束通讯。
当然,这只是一个大致流程。有时,由于网络两边电脑的崩溃或是网络问题,会导致整个事务在完成之前被中断。
一般在客户端超过超过15分钟(900秒)不活动之后,连接就会被关闭。
在底层上,FTP只使用TCP——它不使用UDP。而且,FTP是客户端/服务器编程中很“与众不同”的例子。
客户端和服务器都使用两个套接字来通讯:一个是控制和命令端口(21号端口),另一个是数据端口(有时是20号端口)。
我们说“有时”是因为FTP有两种模式:主动和被动。
只有在主动模式服务器才使用数据端口。在服务器把29号端口设置为数据端口后,它“主动”连接客户端的数据端口。
而被动模式中,服务器只是告诉客户端它的随机端口号码,客户端必须主动建立数据连接,在这种模式下,你会看到,FTP服务器在建立数据连接时是“被动的”。
python已经支持il包括FTP在内的大多是数据网际协议。
三、python和FTP
下面会介绍如何用python写FTP客户端程序,回顾一下简要的流程:
(1)连接到服务器
(2)登陆
(3)发出服务请求(可能有返回信息)
(4)退出
在使用python的FTP支持时,你所需要做的就是导入ftplib模块,并实例化一个ftplib.FTP类的对象,所有的FTP操作(如登陆,传输文件和登出等)都要使用这个对象来完成。
1、ftplib.FTP类的方法
下面列出了一些最常用的方法。
也就是说,你不一定要使用其他的方法,因为它们或者是辅助函数,或者是管理函数,或者是被API调用的。
FTP介绍
在互联网时代,如果您要将文件传输给朋友,您可以将其附加到电子邮件中并将其发送出去。如果您需要立即将文件传输给某人,该怎么办?没有延迟,它必须很快,且你传输的文件可能非常大。在这种情况下,电子邮件很可能不够用。这是因为大多数电子邮件提供商限制了服务器上的邮箱大小,您无法上次大型邮件,并且无法保证您在发送电子邮件时收件人接收邮件需要多长时间,或者甚至是到达那里,这就是FTP的用武之地。
FTP是什么?
FTP代表文件传输协议,用于在FTP服务器和另一台计算机之间传输文件。在过去,FTP比现在更常见,并且是互联网上主要的文件传输机制。如果您需要在两台计算机之间传输文件,则可以使用FTP执行此操作。如今,当一项服务需要托管大量文件供其他人下载时,FTP仍然非常流行。FTP也往往比其他现代传输文件的方法更快,因为它的目的是为了实现这一目的。
更重要的是,FTP支持自动恢复。这意味着如果您正在下载超过1G的最新新游戏演示,并且由于某种原因下载在传输过程中停止,则ftp客户端将尝试在下次下载同一文件时在上次停止的时候继续进行下载。此功能可以节省大量时间,但通常只能在专门的FTP客户端软件中找到,而不能在浏览器软件中找到。
如何连接到FTP服务器?
连接到FTP服务器有两种方法。首先是让所有人都可以匿名登录,也称为匿名FTP,或者您可以将用户名和密码分配给他们必须用来登录服务器的人。
连接到FTP服务器的两种最常用方法是使用Web浏览器或FTP客户端(如FileZilla)。要使用浏览器连接到FTP服务器,可以使用ftp://协议语句为要连接的主机名添加前缀。例如,ftp://www.raysync.cn。然后它会尝试匿名连接。如果您尝试连接的服务器需要用户名和密码,您需要输入用户名和密码。
另一种方法是使用专门设计用于连接FTP服务器的FTP客户端。这些类型的软件通常是最好的,因为它们已经简化了速度并支持许多高级功能,如自动恢复。您应该浏览FTP客户端列表并找到您喜欢的。
如何传输文件?
无论您是通过Web浏览器还是FTP客户端连接到FTP服务器,都会看到一个文件夹和文档列表,其中包含可以下载到计算机的文件。如果您使用的是Web浏览器,则会单击要下载的文件,它将提示您保存或打开它。除非你真的知道你正在下载它是什么,否则你应该将它保存到一个你将知道如何找到的目录,并从那里打开它。
如果您使用的是FTP客户端,则会显示您可以下载的文件列表。您应该首先指定要保存到的下载位置,然后双击该文件以开始下载。下载完成后,您可以关闭FTP客户端并从存储位置打开文件。
在一个典型的FTP(File Transfer Protocol,文件传输协议)会话中,用户坐在一台主机(本地主机)前面,向一台远程主机传输(或接收来自远程主机的)文件。
用户通过一个FTP用户接口与FTP交互。
用户首先提供远程主机的主机名,使本地主机的FTP客户机进程建立一个到远程主机FTP服务器进程的TCP连接。
然后,为使用户能访问远程主机的账户,用户必须提供一个用户标识和口令,作为FTP命令的一部分在该TCP连接上传送。一旦该服务器向该用户授权,用户就能从本地文件系统向远程文件系统传送文件,反之亦然。
FTP与HTTP的相同点
都是运行在TCP上的应用层协议
FTP与HTTP的相异点
HTTP是超文本传输协议,是面向网页的;FTP是文件传输协议,是面向文件的。
HTTP协议默认端口:80号端口。FTP协议默认端口:21号端口。
FTP使用两个并行的TCP连接来传输文件,一个是 控制连接(control connection),一个是 数据连接(data connection)。
控制连接用于在两个主机之间传输控制信息,如用户标识、口令、改变远程目录的命令以及“put”和“get”文件的命令。
数据连接用于实际传输一个文件。
HTTP协议是在传输文件的TCP连接中发送请求和响应首部行的。
FTP服务器必须在整个会话期间保留用户的状态(state)信息,而HTTP是无状态的。
FTP的控制连接是持久连接,数据连接是非持久连接;而HTTP既可以使用非持久连接,也可以使用持久连接,默认方式下,HTTP使用持久连接。
热搜关键词
udp传输大数据|服务器数据迁移|高速文件传输解决方案|FTP传输|aspera替代方案|跨境传输|传输系统|传输数据|远程传输|数据迁移|大文件传输解决方案|大数据传输|跨国文件传输|远程大文件传输|高速传输|加速传输|文件共享传输|文件数据|文件共享|传输大文件|数据传输软件|TLS|媒体行业|传输文件|跨境数据传输|文件传输|影视传输|文件传输系统|数据同步|同步传输|小文件传输|安全文件传输|发送大文件|共享文件|mft|sftp|ftps|aes|数据管理|文件直传|快速文件传输|电子邮件文件传输|传输解决方案|超大文件传输|文件传输软件|文件同步|文件同步软件|大数据传输|文件传输工具|文件传输协议|安全文件同步|高速文件传输|高速传输软件|传输软件|SD-WAN|极速传输|远程办公|外贸行业|文件管理|云计算|云存储|安全传输|网络|高速缓存|SOCKS5|断点续传|aspera|高速传输协议|传输加密|高可用|跨国传输|文件同步传输|高速数据传输|企业级文件传输软件|大文件传输软件|tcp传输|传输协议|AD域|LDAP|数据传输|镭速传输|镭速云传|文件传输|大文件传输|文件管理平台|镭速软件|镭速|镭速云|文件传输解决方案|跨境文件传输|点对点传输|数据交换|企业网盘私有化部署|UDP文件传输工具|文件分享|企业大文件传输|海量文件传输|内网文件传输工具|私有化部署|ftp传输替代方案|跨网文件交换|替代FTP|文件传输校验|远距离传输大型文件|快速传输大文件|文档安全外发|局域网文件传输工具