
之前已经了解了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使用持久连接。

文件传输协议是一种极为普遍的档案分享服务,让你可以将你的档案从储存装置传送到ASUSTOR NAS。ASUSTOR NAS 所支援的文件传输协议可分为:
CIFS
通常是指 SMB,SAMBA 或 Windows 档案服务,CIFS 主要被用在 Microsoft Windows 计算机,以及 Mac OS X 计算机。 这项服务通常为出厂时所内建的服务项目。
AFP )
AFP 是被用在 Mac OS 9 以及 Mac OS X 计算机来传输档案的方式。
NFS
NFS 是被用在 Linux 以及 Unix 计算机的文件传输服务。倘若有 Linux 或 Unix 的用户要登入你的 NAS,请开启此项服务。
FTP ) 以及 FTPS
FTP 是被广泛的用在公共档案的上传及下载。在启用 FTP 服务器的设定后,即可透过任一 FTP 客户端来登入你的 NAS。也可以采用具有安全及加密方式的 FTP 客户端来登入 NAS 以及数据传输。
WebDAV
WebDAV 是Web 档案管理的标准,是 web-based distributed authoring and versioning 的缩写。它是一种让你可透过 HTTP 网页浏览方式来进行拖拉式文件传输的方法。这种传输方式和你在标准 Windows 或是 Mac OS X 计算机上的文件传输方式相当雷同.
除了上述提及的通讯协议外,ASUSTOR NAS 也支援 SSH 及 Rsync。SSH 是一种安全的网络传输服务,透过数据封包加密技术,将等待传输的封包加密后再传输到网络上;而 Rsync 则是用在同步更新两处计算机的档案与目录,并适当利用增量备量以减少数据传输。
以下为各种传输通讯协议与 Windows、Mac OS X 及 Linux的兼容性比较一览表:

目前在网络上,如果你想把文件和其他人共享。最方便的办法莫过于将文件放FTP服务器上,然后其他人通过FTP客户端程序来下载所需要的文件。
1、FTP架构
如同其他的很多通讯协议,FTP通讯协议也采用客户机 / 服务器(Client / Server )架构。用户可以通过各种不同的FTP客户端程序,借助FTP协议,来连接FTP服务器,以上传或者下载文件。
2、FTP通讯端口知识
FTP服务器和客户端要进行文件传输,就需要通过端口来进行。FTP协议需要的端口一般包括两种:
控制链路--------TCP端口21。所有你发往FTP服务器的命令和服务器反馈的指令都是通过服务器上的21端口传送的。
数据链路--------TCP端口20。数据链路主要是用来传送数据的,比如客户端上传、下载内容,以及列目录显示的内容等。
3、FTP连接的两种方式
在数据链路的建立上,FTP Server 为了适应不同的网络环境,支持两种连接模式:主动模式(Port)和被动模式(Pasv)。其实这两种连接模式主要是针对数据链路进行的,和控制链路无关。
主动模式是这样工作的:客户端把自己的高位端口和服务器端口21建立控制链路。所有的控制命令比如Is或get都是通过这条链路传送的。当客户端需要服务器端给它传送数据时,客户端会发消息给服务器端,告诉自己的位置和打开的高位端口(一般大于1024的端口都就叫高位端口),等候服务器的20端口和客户端打开的端口进行连接,从而进行数据的传输。当服务器端收到信息后,就会和客户端打开的端口连接,这样数据链路就建立起来了。
采用主动模式连接服务器的客户端,当它位于NAT或者防火墙的保护之后时会碰到连接失败的问题。这是因为当防火墙接到服务器发送过来的信息的时候,并不知道应该发送给内部网络中的哪一台客户端造成的。
被动模式是这样工作的:当客户端发送数据请求后,服务器也会发信息给客户端,告诉客户端:服务器在本地打开了一个高位端口P,你现在来连接我吧。当客户端收到该信息时,就会去连接服务器端的端口P,连接成功后,数据链路就建立了。
从上面的解释中我们可以看到,两种模式主要的不同是数据连接建立的不同。对于Port模式,是客户端在本地打开一个端口等服务器去连接建立数据连接,而Pasv模式就是服务器打开一个端口等待客户端去建立一个数据连接。
2019-05-28文件传输

从1971年A.K.Bhushan提出第一个FTP协议版本(RFC114)到现在,人们对FTP的应用已经历了40余年的时间,同时,许多基于FTP协议的数据传输软件也应运而生。如Windows操作系统下经常使用的支持FTP协议的软件有:CuteFTP、FlashFXP、迅雷(Thunder)、快车(FlashGet)、网络蚂蚁(NetAnts) 等;Linux操作系统中经常使用的支持FTP协议的软件有:FileZilla、gFTP、wget等,这些软件中有些是GUI图形界面的,有的只有简单的命令行界面;有些是开源免费的,有的是收费的商业软件,不管属于以上哪个类型,这些支持FTP协议的软件都有一个共同的特点:不支持断点续传。断点续传是指在文件传输或者下载的过程中,如果发生意外中断,在重新建立连接后,可以直接从未传输或未下载的部分继续传输任务,而不必重复传输已传输的内容,断点续传文件的功能需要 FTP服务器的支持。
大文件传输协议是针对大文件传输的网络协议,镭速作为在广域网上进行大文件传输的重要手段,在用户数据报协议(UDP)上进行了优化,支持断点续传,是大数据远距离传输的重要协议。
支持断点续传的大文件传输协议
然而,随着互联网的飞速发展,海量信息数据需要通过网络传输,企业经常需要向服务器传输以GB为单位的大文件,如多媒体文件网络共享等实际应用。提高大容量文件传输的效率对于多媒体文件的网络共享等应用显得越来越重要。但是,由于这些文件容量巨大,使用传统FTP传输的方式耗时长,而且在传输过程中,可能会发生意外断电或网络连接中断等不可预知的情况,导致文件重新传输的操作频繁,极大影响了数据共享的效率。 再如:利用某超级计算机中心(以下简称:超算中心)的计算机进行高性能相关的计算时,客户端的用户需要通过xxx传输大容量的计算数据,如果使用传统FTP传输,效率会很低,严重影响高性能计算的效率,不能完全体现超级计算机的性能优势。由此可见,大文件传输技术对于促进网络应用的发展有着重大的意义。
大文件传输协议(Raysync),是基于UDP协议进行的开发优化,可以支持断点续传,能尽量减少了数据的重复传输量。实际应用中,有时用户传输或者下载一个大文件需要数小时,网络中断或电脑死机、重启等不可预测的意外情况发生导致传输中断时,而具有断点续传功能的镭速服务器与客户端软件允许用户从传输或下载断线的地方继续传输,此时只需要传输之前还未传输的文件部分,减少了数据传输量,节约了时间,提高了企业的效率。

文件传输协议(FTP) 在RFC 959中定义,于1985年10月发布。文件传输协议 (FTP)被设计成为一个跨平台的、简单且易于实现的协议。文件传输协议 (FTP)有一个漫长的演化史,是互联网上最重要的应用之一,但时至今日,却已江河日下。本文作者从各方面列举了一些文件传输协议(FTP)为人诟病的缺点。
1、数据传输模式不合理
不考虑文件自身的内容,一味使用ASCII模式传输数据是不合理的。文件传输协议(FTP)应该具有自动检测功能,当然用户也可以进行自定义。
虽然现在许多Linux和Windows客户端已经支持自动传输模式,但多达数代的UNIX和Windows客户端都默认使用ASCII传输模式,这种传输模式甚至会造成文件损坏。
2、工作方式设计不合理
文件传输协议(FTP)可以在主动模式(PORT)或被动模式(PASV)下工作,这决定了数据链接建立的方式。
在主动模式下,客户端首先向服务器端发送IP地址和端口号,然后等待服务器端建立TCP链接。在被动模式下,客户端同样首先建立到服务器的链接,但服务器端会开启一个端口(1024到5000之间),等待客户端传输数据。
文件传输协议(FTP)中最让人不可思议的是,客户端会侦听服务器端!
3、与防火墙工作不协调
在文件传输协议(FTP)诞生在网络地址转换(NAT)和防火墙之前,那时的网络还不存在恶意攻击。今天大多数最终用户的IPv4地址已不可路由,这是因为防火墙的使用和IPv4地址的短缺。
这对FTP意味着什么呢?这意味着如果FTP客户端IP地址不可路由,或者位于防火墙之后,那么就只能使用被动传输模式进行数据传输。
如果服务器端的IP地址也不可路由,或者位于防火墙之后呢?FTP将无法进行数据传输!
现在,许多防火墙适用于NAT环境,可以使用一些特殊的技巧(hacks)允许FTP在防火墙之后正常工作。当然,这需要对防火墙进行配置。
4、密码安全策略不完善
在互联网早期,文件传输协议(FTP)并没有对密码安全作出规定。在FTP客户端和服务器端,数据以明文的形式传输,任何对通讯路径上的路由具有控制能力的人,都可以通过嗅探获取你的密码和数据。
我们当然可以使用SSL封装FTP,但FTP是通过建立多次链接进行数据传输的,我们即便是保护了密码安全,也很难保护数据传输的安全性。
自文件传输协议(FTP)发布以来,安全的数据传输也经历了长足发展,推荐使用SCP取代FTP进行文件传输。
5、FTP协议效率低下
从FTP服务器上检索一个文件,包含繁复的交换握手步骤:
客户端建立到FTP服务器端控制端口的TCP Socket链接,并等待TCP握手完成
客户端等待服务器端发送回执
客户端向服务器端发送用户名并等待响应
客户端向服务器端发送密码并等待响应
客户端向服务器端发送SYST命令并等待响应
客户端向服务器端发送TYPE I命令并等待响应
如果用户需要在服务器端切换目录,客户端仍然发送命令并等待响应
主动模式下,客户端需要发送PORT命令到服务器端,然后等待响应(被动模式与主动模式相反)
建立数据传输链接(需要经过三次握手,建立一条TCP Socket连接)
通过链接传输数据
客户端等待服务器端从控制连接发送2xx指令,以确保数据传输成功
客户端发送QUIT命令,并等待服务器响应
同样的情形,我们来看看HTTP协议:
HTTP客户端向HTTP服务器端建立一条TCP Socket连接
HTTP客户端向HTTP服务器端发送GET命令,包含URL、HTTP协议版本、虚拟主机名等等,并等待响应
HTTP服务器端的响应包含了所有想要的数据,完成!
传输一个文件,FTP需要往复10次,而HTTP只需要2次!如果传输多个文件,FTP可以省略发送用户名和密码的步骤,而HTTP则可以使用固定的套接字(Socket),在相同的TCP连接中传输文件。
综上所述,虽然文件传输协议(FTP)曾经显赫一时,但现在已经过时了,它是一个既不不安全,也不不友好,而且效率低下的协议,势必被取而代之。

远程文件传输使用什么工具比较好?近距离的文件传输还可以通过U盘进行拷贝,虽然需要这么一个实物媒介,不过也还算是方便。但若是远距离的文件传输,U盘肯定是没有用了,微信这种通讯工具又不能传输大文件,想来想去,也只要网盘最适合远程文件传输了。
镭速云平台,它具备普通U盘的功能,又不像U盘一样有实体,而是通过互联网建立了一个云存储空间,只要有网络就可以对里面的文件进行管理,这就弥补了U盘不能传输远程文件的遗憾。
我建议使用镭速云平台进行远程文件的传输,镭速云在传输文件的时候进行加密保存,文件上传下载使用HTTPS作为传输协议,传输过程中对文件本身进行了二次AES CTR 256算法流式分块加密,确保最终保存在云存储系统的文件均为密文,在传输以及存储过程中杜绝被窃取可能。
镭速云支持海外加速,支持加速全球范围内海外地区的访问,即使出差在海外也不用担心传输速度会受到影响。
热搜关键词
udp传输大数据|服务器数据迁移|高速文件传输解决方案|FTP传输|aspera替代方案|跨境传输|传输系统|传输数据|远程传输|数据迁移|大文件传输解决方案|大数据传输|跨国文件传输|远程大文件传输|高速传输|加速传输|文件共享传输|文件数据|文件共享|传输大文件|数据传输软件|TLS|媒体行业|传输文件|跨境数据传输|文件传输|影视传输|文件传输系统|数据同步|同步传输|小文件传输|安全文件传输|发送大文件|共享文件|mft|sftp|ftps|aes|数据管理|文件直传|快速文件传输|电子邮件文件传输|传输解决方案|超大文件传输|文件传输软件|文件同步|文件同步软件|大数据传输|文件传输工具|文件传输协议|安全文件同步|高速文件传输|高速传输软件|传输软件|SD-WAN|极速传输|远程办公|外贸行业|文件管理|云计算|云存储|安全传输|网络|高速缓存|SOCKS5|断点续传|aspera|高速传输协议|传输加密|高可用|跨国传输|文件同步传输|高速数据传输|企业级文件传输软件|大文件传输软件|tcp传输|传输协议|AD域|LDAP|数据传输|镭速传输|镭速云传|文件传输|大文件传输|文件管理平台|镭速软件|镭速|镭速云|文件传输解决方案|跨境文件传输|点对点传输|数据交换|企业网盘私有化部署|UDP文件传输工具|文件分享|企业大文件传输|海量文件传输|内网文件传输工具|私有化部署|ftp传输替代方案|跨网文件交换|替代FTP|文件传输校验|远距离传输大型文件|快速传输大文件|文档安全外发|局域网文件传输工具|内外网文件交换|wetransfer替代