新闻动态大文件传输

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,其口令可以是客户端自己喜欢的任意字符串。
2019-05-30
文件传输网络协议FTP
之前已经了解了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调用的。
2019-05-30
文件传输协议:FTP与HTTP的区别
在一个典型的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使用持久连接。
2019-05-29
FTP文件传输协议简介
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客户端并从存储位置打开文件。
2019-05-29
FTP(文件传输协议)工作原理
目前在网络上,如果你想把文件和其他人共享。最方便的办法莫过于将文件放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
文件传输协议介绍
文件传输协议是一种极为普遍的档案分享服务,让你可以将你的档案从储存装置传送到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的兼容性比较一览表:
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协议进行的开发优化,可以支持断点续传,能尽量减少了数据的重复传输量。实际应用中,有时用户传输或者下载一个大文件需要数小时,网络中断或电脑死机、重启等不可预测的意外情况发生导致传输中断时,而具有断点续传功能的镭速服务器与客户端软件允许用户从传输或下载断线的地方继续传输,此时只需要传输之前还未传输的文件部分,减少了数据传输量,节约了时间,提高了企业的效率。
2019-05-27
文件传输协议(FTP)
文件传输协议(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)曾经显赫一时,但现在已经过时了,它是一个既不不安全,也不不友好,而且效率低下的协议,势必被取而代之。
2019-05-24

关注云语科技

wechat qrcode

微信扫一扫,获取最新资讯