当前位置:文档之家› FTP工作原理

FTP工作原理

FTP工作原理
FTP工作原理

FTP工作原理

拿下载文件为例,当你启动FTP从远程计算机拷贝文件时,你事实上启动了两个程序:一个本地机上的FTP客户程序:它向FTP服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的FTP服务器程序,它响应你的请求把你指定的文件传送到你的计算机中。FTP 采用“客户机/服务器”方式,用户端要在自己的本地计算机上安装FTP客户程序。FTP客户程序有字符界面和图形界面两种。字符界面的FTP的命令复杂、繁多。图形界面的FTP客户程序,操作上要简洁方便的多。

简单地说,支持FTP协议的服务器就是FTP服务器,下面介绍一下什么是FTP协议。(文件传输协议)

一般来说,用户联网的首要目的就是实现信息共享,文件传输是信息共享非常重要的一个内容之一。Internet上早期实现传输文件,并不是一件容易的事,我们知道Internet是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机,据统计连接在Internet 上的计算机已有上千万台,而这些计算机可能运行不同的操作系统,有运行Unix的服务器,也有运行Dos、Windows的PC机和运行MacOS的苹果机等等,而各种操作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所谓的FTP。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。

与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP 协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。

在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上载(下载)文件。

使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可下载或上传文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet 上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。

匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous, Internet上的任何人在任何地方都可使用该用户ID。

通过FTP程序连接匿名FTP主机的方式同连接普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous,该用户ID的口令可以是任意的字符串。习惯上,用自己的E-mail地址作为口令,使系统维护程序能够记录下来谁在存取这些文件。

值得注意的是,匿名FTP不适用于所有Internet主机,它只适用于那些提供了这项服务的主机。

当远程主机提供匿名FTP服务时,会指定某些目录向公众开放,允许匿名存取。系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP主机都允许用户从其下载文件,而不允许用户向其上传文件,也就是说,用户可将匿名FTP主机上的所有文件全部拷

贝到自己的机器上,但不能将自己机器上的任何一个文件拷贝至匿名FTP主机上。即使有些匿名FTP主机确实允许用户上传文件,用户也只能将文件上传至某一指定上传目录中。随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载,利用这种方式,远程主机的用户得到了保护,避免了有人上载有问题的文件,如带病毒的文件。

作为一个Internet用户,可通过FTP在任何两台Internet主机之间拷贝文件。但是,实际上大多数人只有一个Internet帐户,FTP主要用于下载公共文件,例如共享软件、各公司技术支持文件等。Internet上有成千上万台匿名FTP主机,这些主机上存放着数不清的文件,供用户免费拷贝。实际上,几乎所有类型的信息,所有类型的计算机程序都可以在Internet 上找到。这是Internet吸引我们的重要原因之一。

匿名FTP使用户有机会存取到世界上最大的信息库,这个信息库是日积月累起来的,并且还在不断增长,永不关闭,涉及到几乎所有主题。而且,这一切是免费的。

匿名FTP是Internet网上发布软件的常用方法。Internet之所以能延续到今天,是因为人们使用通过标准协议提供标准服务的程序。像这样的程序,有许多就是通过匿名FTP发布的,任何人都可以存取它们。

Internet中的有数目巨大的匿名FTP主机以及更多的文件,那么到底怎样才能知道某一特定文件位于哪个匿名FTP主机上的那个目录中呢?这正是Archie服务器所要完成的工作。Archie将自动在FTP主机中进行搜索,构造一个包含全部文件目录信息的数据库,使你可以直接找到所需文件的位置信息。

[编辑本段]FTP的用户分类及权限归属

在考虑FTP服务器安全性工作的时候,第一步要考虑的就是谁可以访问FTP服务器。在Vsftpd服务器软件中,默认提供了三类用户。不同的用户对应着不同的权限与操作方式。

一类是Real帐户。这类用户是指在FTP服务上拥有帐号。当这类用户登录FTP服务器的时候,其默认的主目录就是其帐号命名的目录。但是,其还可以变更到其他目录中去。如系统的主目录等等。

第二类帐户是Guest用户。在FTP服务器中,我们往往会给不同的部门或者某个特定的用户设置一个帐户。但是,这个账户有个特点,就是其只能够访问自己的主目录。服务器通过这种方式来保障FTP服务上其他文件的安全性。这类帐户,在Vsftpd软件中就叫做Guest 用户。拥有这类用户的帐户,只能够访问其主目录下的目录,而不得访问主目录以外的文件。

第三类帐户是Anonymous(匿名)用户,这也是我们通常所说的匿名访问。这类用户是指在FTP服务器中没有指定帐户,但是其仍然可以进行匿名访问某些公开的资源。

在组建FTP服务器的时候,我们就需要根据用户的类型,对用户进行归类。默认情况下,Vsftpd服务器会把建立的所有帐户都归属为Real用户。但是,这往往不符合企业安全的需要。因为这类用户不仅可以访问自己的主目录,而且,还可以访问其他用户的目录。这就给其他用户所在的空间带来一定的安全隐患。所以,企业要根据实际情况,修改用户所在的类别。[1]

[编辑本段]8UFTP客户端

ftp客户端。体积可以说是最小的了,只有330K,免费中文版不需要汉化和破解的缘故吧。功能也非常强大,应有尽有。可以支持多线程上传;还支持直接上传压缩包后在空间上直接解压。

[编辑本段]通过ftp传输文件的一般步骤

需要进行远程文件传输的计算机必须安装和运行ftp客户程序。在windows操作系统的安装过程中,通常都安装了tcp/ip协议软件,其中就包含了ftp客户程序。但是该程序是字符界面而不是图形界面,这就必须以命令提示符的方式进行操作,很不方便。

启动ftp客户程序工作的另一途径是使用ie浏览器,用户只需要在ie地址栏中输入如下格式的url地址:ftp://[用户名:口令@]ftp服务器域名[:端口号]

(在CMD命令行下也可以用上述方法连接,通过put命令和get命令达到上传和下载的目的,通过ls命令列出目录,除了上述方法外还可以在cmd下输入ftp回车,然后输入open IP来建立一个连接,此方法还适用于linux下连接ftp服务器)

通过ie浏览器启动ftp的方法尽管可以使用,但是速度较慢,还会将密码暴露在ie浏览器中而不安全。因此一般都安装并运行专门的ftp客户程序。

1.在本地电脑上登陆到国际互联网.

2.搜索有文件共享主机或者个人电脑(一般有专门的FTP服务器网站上公布的,上面有进入该主机或个人电脑的名称,口令和路径).

3.当与远程主机或者对方的个人电脑建立连接后,用对方提供的用户名和口令登陆到该主机或对方的个人电脑.

4.在远程主机或对方的个人电脑登陆成功后,就可以上传你想跟别人分享的东东或者下载别人授权共享的东东(这里的东东是指能放到电脑里去又能在显示屏上看到的东东).

5.完成工作后关闭FTP下载软件,切断连接.

为了实现文件传输,用户还要运行专门的文件传输程序,比如网际快车就有这方面的功能,其它还有很多专门的FTP传输软件,FlashFxp为其中的杰出软件。有兴趣的网友可以试试其他的软件,如LeapFTP总归各有各的特色.

FTP协议

TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。FTP协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联接的方式、甚至是是否使用相同的操作系统无关。假设两台计算机通过ftp协议对话,并且能访问Internet,你可以用ftp命令来传输文件。每种操作系统使用上有某一些细微差别,但是每种协议基本的命令结构是相同的。

FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。

1.ASCII传输方式:假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。

但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印字符)。在拷贝任何非文本文件之前,用binary 命令告诉ftp 逐字拷贝,不要对这些文件进行处理,这也是下面要讲的二进制传输。

2.二进制传输模式:在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。

如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢,也会损坏数据,使文件变得不能用。(在大多数计算机上,ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果你传输二进制文件,所有的位都是重要的。)如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。

5. FTP的工作方式

FTP支持两种模式,一种方式叫做Standard (也就是PORT方式,主动方式),一种是Passive (也就是PASV,被动方式)。Standard模式FTP的客户端发送PORT 命令到FTP服务器。Passive模式FTP的客户端发送PASV命令到FTP Server。

下面介绍一个这两种方式的工作原理:

Port模式FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。

Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port 命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。

很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。

FTP软件可以更好的帮助你管理FTP目录提供更系统的工具

FTP工具推荐使用cuteftp

主动和被动模式FTP有两种使用模式:主动和被动。主动模式要求客户端和服务器端同时打开并且监听一个端口以建立连接。在这种情况下,客户端由于安装了防火墙会产生一些问题。所以,创立了被动模式。被动模式只要求服务器端产生一个监听相应端口的进程,这样就可以绕过客户端安装了防火墙的问题。

一个主动模式的FTP连接建立要遵循以下步骤:

客户端打开一个随机的端口(端口号大于1024,在这里,我们称它为x),同时一个FTP 进程连接至服务器的21号命令端口。此时,源端口为随机端口x,在客户端,远程端口为21,在服务器。

客户端开始监听端口(x+1),同时向服务器发送一个端口命令(通过服务器的21号命令端口),此命令告诉服务器客户端正在监听的端口号并且已准备好从此端口接收数据。这个端口就是我们所知的数据端口。

服务器打开20号源端口并且建立和客户端数据端口的连接。此时,源端口为20,远程数据端口为(x+1)。

客户端通过本地的数据端口建立一个和服务器20号端口的连接,然后向服务器发送一个应答,告诉服务器它已经建立好了一个连接。

[编辑本段]FTP和网页浏览器

大多数最新的网页浏览器和文件管理器都能和FTP服务器建立连接。这使得在FTP上通过一个接口就可以操控远程文件,如同操控本地文件一样。这个功能通过给定一个FTP的URL实现,形如ftp://<服务器地址>(例如,ftp://https://www.doczj.com/doc/9e7449112.html, )。是否提供密码是可选择的,如果有密码,则形如:@ftp://:@。大部分网页浏览器要求使用被动FTP模式,然而并不是所有的FTP服务器都支持被动模式。[1][2]

[编辑本段]ftp 命令

1、FTP服务器的登陆

匿名用户:FTP 口令:FTP

用户:ANONYMOUS 口令:任何电子邮件

2、显示文件信息:DIR/IS

3、下载文件:GET 文件名(下载到当前目录)

4、上传文件:PUT 文件名

5、多文件下载:MGET

6、多文件上传:MPUT

7、退出:BYE

8、帮助:HELP

[编辑本段]用途

在本地主机和远程主机之间传送文件。

[编辑本段]语法

ftp [ -d] [ -g ] [ -i ] [ -n ] [ -v] [ -f ] [ -k realm] [-q[-C]][ HostName [ Port ] ]

[编辑本段]描述

ftp 命令使用“文件传送协议”(FTP) 在本地和远程主机或远程主机之间传送文件。

FTP 协议允许在使用不同文件系统的主机之间进行数据传送。尽管协议在传送数据中提供了很高的灵活度,它仍然不会尝试保留特定于某个文件系统的文件属性(如文件保护模式或修改时间)。而且,FTP 协议为文件系统的整体结构做了少许假设,且不提供或不允许诸如循环地复制子目录这样的函数。

请注意:如果您正在系统之间传送文件,且需要保存文件属性或递归地复制子目录,请使用rcp 命令。

[编辑本段]发布子命令

您可以在ftp> 提示符中输入子命令,执行类似这样的任务:列出远程目录、更改当前的本地和远程目录、在单一请求中传送多个文件、创建和除去目录,以及转义到本地shell 执行shell 命令。请参考子命令章节取得每个子命令的描述信息。

如果您执行ftp 命令而不为远程主机指定HostName 参数,ftp 命令会立即显示ftp> 提示符,等待ftp 子命令。要连接远程主机,请执行open 子命令。当ftp 命令连接到远程主机时,ftp 命令在再次显示提示符ftp> 之前会提示输入登录名和密码。如果远程主机中未定义登录名的密码,ftp 命令将不成功。

ftp 命令解释器(处理在ftp> 提示符处输入的全部子命令),会提供大多数文件传送程序没有的性能,如:

* 对ftp 子命令处理文件名参数

* 将一组子命令集中成一个单一的子命令宏

* 从$HOME/.netrc 文件中装入宏

这些性能会帮助您简化重复的任务,并允许您在unattended 方式使用ftp 命令。

命令解释器将按照下列规则处理文件名参数:

* 如果为此参数指定了-(连字符),则标准输入(stdin) 将用于读取操作,而标准输出用于写入操作。

* 如果未应用前面的检查,且文件名扩展已启用(请参考-g 标志或glob 子命令),则解释器将根据C shell 的规则扩展文件名。启用了文件名匹配替换以及在期待单一文件名的子命令中使用了模式匹配字符时,结果可能与期待的不一样。

例如,append 和put 子命令将拓展文件名,然后仅使用所生成第一个文件名。其它ftp 子命令,如cd、delete, get、mkdir、rename 和rmdir 不会执行文件名拓展,并从字面上接受模式匹配字符。

* 对于get、put、mget 和mput 子命令,解释器有能力在不同的本地和远程文件名语法样式之间进行翻译和映射(请参考case、ntrans 和nmap 子命令),并且在本地文件名不是唯一的情况下有修改它的能力(请参考runique 子命令)。另外,如果远程文件名不是唯一的,则ftp 命令可将指令发送到远程ftpd 服务器,以修改远程的文件名(请参考sunique 子命令)。

* 使用双引号(" ") 指定包含空字符的参数。

请注意:ftp 命令解释器不支持管道。也无需支持所有多字节字符文件名。

要在互动地运行的时候结束ftp 会话,请使用quit 或bye 子命令或ftp> 提示符处的End of File (Ctrl-D) 按键顺序。要在文件传送未完成之前结束它,请按中断按键顺序。其缺省“中断键”序列是Ctrl-C。stty 指令能用于重新定义该键系列。

ftp 命令在正常情况下会立即暂停正在发送(从本地主机到远端主机)的传输。ftp 命令通过将FTP ABOR 指令发送到远程FTP 服务器,来暂停正在接收的传输(从远程主机到本地主机),并废弃所有传入的文件传送包(直到远程服务器停止发送它们为止)。如果远程服务器不支持ABOR 指令,在远程服务器未发送所有请求的文件之前,ftp 命令不会显示ftp> 提示符。另外,如果远程服务器执行未期望的操作时,可能需要结束本地ftp 进程。

安全性和自动登录

如果“标准的”是当前认证方法:

ftp 命令也会通过将密码发送到远程主机来处理安全性,并许可自动登录、文件传送和注销操作。

如果您执行ftp 命令并指定远程主机的主机名(HostName), ftp 命令会尝试建立一个对于指定主机的连接。如果ftp 命令连接成功,ftp 命令会在当前目录或主目录中搜索本地的$HOME/.netrc 文件。如果文件存在,ftp 命令会在文件中搜索启动登录过程的入口,在命令宏定义中搜索远程主机。如果$HOME/.netrc 文件或自动登录项不存在,或是系统已使用securetcpip 命令保护起来,ftp 命令会提示用户输入用户名和密码。不论命令行中是否指定HostName 参数,该指令都会显示此提示。

请注意:排队系统不支持多字节主机名。

如果ftp 命令找到指定主机的$HOME/.netrc 自动登录项,ftp 会试图使用该登录项中的信息登录远程主机。ftp 命令也会载入任何在登录项中定义的命令宏。在某些情况(例如,所需的密码在自动登录项中没有列出来),ftp 命令会在显示ftp> 提示符之前提示输入密码。

一旦ftp 命令完成自动登录,如果宏是在自动登录项中定义的,ftp 命令就会执行init 宏。如果init 宏不存在或未包含quit 或bye 子命令,ftp 命令将显示ftp> 提示符并等待子命令。

请注意:在提示符或在$HOME/.netrc 文件中指定的远程主机名必须存在,并拥有在远程主机中定义的密码。否则,ftp 指令无效。

如果Kerberos 5 是当前的认证方法:

ftp 命令会按在IETF 草稿文挡"draft-ietf-cat-ftpsec-09.txt" 定义的那样将此拓展用于ftp 规范。FTP 安全性扩展将使用“Generic Security Service API (GSSAPI)”安全机制来实现。GSSAPI 提供对于基础的安全性和通信机制来说是独立的服务。GSSAPI 是在rfc 1508 和1509 中定义的。

ftp 命令将使用AUTH 和ADAT 命令验证ftpd 守护进程。如果两者都支持Kerberos 认证,则它们会使用本地用户DCE 凭证验证远程系统上的用户。如果这样失败了,且两个系统中都配置了“标准的”认证,则会使用上述的过程。

HostName 参数是传送文件的目的地主机名称。可选的Port 参数指定了端口的标识符,通过此端口进行传输。(/etc/services 文件指定了缺省端口。)

标志

-C 允许用户指定:通过send_file 命令发出的文件必须在网络高速缓冲区(NBC)中经过缓存处理。此标志必须在指定了-q 标志的情况下使用。只有当文件在无保护的情况下以二进制方式发送时此标志才适用。

-d 将有关ftp 命令操作的调试信息发送给syslogd 守护进程。如果您指定-d 标志,

您必须编辑/etc/syslog.conf 文件并添加下列中的一项:

https://www.doczj.com/doc/9e7449112.html, FileName

OR

user.debug FileName

请注意:syslogd 守护进程调试级别包含信息级别消息。

如果不编辑/etc/syslog.conf 文件,则不会产生消息。变更了/etc/syslog.conf 文件之后,请运行refresh -s syslogd 或kill -1 SyslogdPID 命令,以通知syslogd 守护进程其配置文件的变更。关于调试级别的更多信息,请参考/etc/syslog.conf 文件。也请参考debug 子命令。

-g 禁用文件名中的元字符拓展。解释元字符可参考为扩展(有时叫做文件名匹配替换)文件名。请参考glob 子命令。

-i 关闭多文件传送中的交互式提示。请参考prompt、mget、mput 和mdelete 子命令,以取得多文件传送中的提示的描述。

-n 防止在起始连接中的自动登录。否则,ftp 命令会搜索$HOME/.netrc 登录项,该登录项描述了远程主机的登录和初始化过程。请参考user 子命令。

-q 允许用户指定:send_file 子例程必须用于在网络上发送文件。只有当文件在无保护的情况下以二进制方式发送时此标志才适用。

-v 显示远程服务器的全部响应,并提供数据传输的统计信息。当ftp 命令的输出是到终端(如控制台或显示)时,此显示方式是缺省方式。

如果stdin 不是终端,除非用户调用带有-v 标志的ftp 命令,或发送verbose 子命令,否则ftp 详细方式将禁用。

-f 导致转发凭证。如果Kerberos 5 不是当前认证方法,则此标志将被忽略。

-k realm 如果远程站的域不同于本地系统的域,系统将允许用户指定远程站的域。因此,域和DCE 单元是同义的。如果Kerberos 5 不是当前认证方法,则此标志将被忽略。

[编辑本段]子命令

下列ftp 子命令在ftp> 提示符下输入。使用双引号(" ") 指定包含空格字符的参数。

![命令[参数]] 在本地主机上调用交互的shell。可通过shell 命令提供带有一个或多个可选参数的可选命令。

$>Macro [参数] 执行指定的宏(早先使用macdef 子命令定义的)。参数不被扩展。

?[ 子命令] 显示描述子命令的帮助消息。如果您不指定Subcommand 参数,ftp 命令将显示已知子命令的清单。

account [Password] 发送远程主机在授权对其资源进行访问之前可能需要的补充密码。如果密码不是命令提供的,将提示用户输入密码。密码不在屏幕上显示。

append LocalFile [RemoteFile] 将本地文件添加到远程主机文件中。如果远程文件名未指定,则将使用本地文件名,该文件名由ntrans 子命令或nmap 子命令生成的任何设置进行改变。添加文件的时候,append 子命令将为form、mode, struct、和type 子命令使用当前值。

ascii type ascii 子命令的同义词。

bell 每个文件传送过程完成之后响一声铃。

binary type binary 子命令的同义词。

block mode block 子命令的同义词。

bye 结束文件传送会话并退出ftp 命令。与quit 子命令相同。

carriage-control form carriage-control 子命令的同义词。

case 为文件名case 设置一个切换。当case 子命令开启的时候ftp 命令将全部远程文件名从大写改成小写(将它们写入本地目录时)。其缺省值为关闭(这样ftp 命令就会在本

地目录中按大写格式写入大写的远程文件名)。

cd RemoteDirectory 将远程主机中的工作目录改为指定的目录。

cdup 将远程主机中的工作目录改为当前目录的父目录。

close 结束文件传送会话,但不要退出ftp 命令。已定义的宏已被擦除。与disconnect 子命令相同。

copylocal 切换本地拷贝。copylocal 缺省值为关闭。ftp 通过向自身执行ftp 操作确认您未置零文件(如相同的主机名和相同的路径名)。将copylocal 打开绕过这一检查。

cr 在ASCII 类型文件传送期间接收记录时,从回车和line-feed 序列中除去回车字符。(ftp 命令在文件传送期间用回车和换行中止每一条ASCII 类型的记录。)远程主机(其操作系统与正在运行的操作系统不同)的记录可拥有内嵌于记录中的单一换行。要从记录定界符中区分这些内嵌的换行,请将cr 子命令设置为关闭。cr 子命令会在开启和关闭中间进行切换。

debug [0 | 1] 在调试记录保持开启和关闭之间进行切换。指定debug 或debug 1,以打印发送到远程主机的每一个命令,并保存重新启动的控制文件。重新指定debug 或debug 0,停止调试记录保持。Ctrl-C 键也会保存重新启动的控制文件。

指定debug 子命令将有关ftp 命令操作的调试信息发送给syslogd 守护进程。如果指定了debug 子命令,您必须编辑/etc/syslog.conf 文件并添加下列中的其中一项:https://www.doczj.com/doc/9e7449112.html, FileName

OR

user.debug FileName

请注意:syslogd 守护进程调试级别包含信息级别消息。

如果不编辑/etc/syslog.conf 文件,则不会产生消息。变更了/etc/syslog.conf 文件之后,请运行refresh -s syslogd 或kill -1 SyslogdPID 命令,以通知syslogd 守护进程其配置文件的变更。关于调试级别的更多信息,请参考/etc/syslog.conf 文件。也请参考ftp -d 标志。

delete RemoteFile 删除指定的远程文件。

dir [RemoteDirectory][LocalFile] 将所指定的远程目录的内容清单(RemoteDirectory) 写入指定的本地文件(LocalFile)。如果RemoteDirectory 参数未指定,dir 子命令将列出当前远程目录的内容。如果LocalFile 参数未指定或是一个-(连字符),则dir 子命令将显示本地终端上的清单。

disconnect 结束文件传送会话,但不退出ftp 命令。已定义的宏已被擦除。与close 子命令相同。

ebcdic type ebcdic 子命令的同义词。

exp_cmd 在常规的和试验性的协议命令中切换。其缺省值为关闭。

file struct file 子命令的同义词。

form [ carriage-control | non-print | telnet ] 指定文件传送的格式。form 子命令修改type 子命令,以便按指示的格式发送文件传送。有效的参数为carriage-control、non-print 和telnet。

carriage-control

将文件传送格式设置为carriage-control。

non-print

将文件传送格式设置为non-print。

telnet

将文件传送格式设置为Telnet。Telnet 是打开对系统的连接的传输控制协议/网间协议(TCP/IP)。

get RemoteFile [LocalFile] 将远程文件拷贝到本地主机。如果LocalFile 参数未指定,将在本地使用远程文件名,并由case、ntrans 和nmap 子命令生成的任何设置进行改变。ftp 命令在传送文件时,将使用type、form、mode 和struct 子命令的当前设置。

glob 切换mdelete、mget 和mput 子命令的文件名拓展(文件名匹配替换)。如果文件名匹配替换禁用,这些子命令的文件名参数将不会拓展。启用了文件名匹配替换以及在期待单一文件名的子命令中使用了模式匹配字符时,结果可能与期待的不一样。

例如,append 和put 子命令将拓展文件名,然后仅使用所生成第一个文件名。其它ftp 子命令,如cd、delete, get、mkdir、rename 和rmdir 不会执行文件名拓展,并从字面上接受模式匹配字符。

mput 子命令的文件名匹配替换在本地执行,其方式与csh 命令的方式一样。对于mdelete 和mget 子命令,每个文件名都是在远程机器上分别地进行扩展的,其清单也不会合并。根据远程主机和ftp 服务器的不同,目录名的拓展可与文件名的拓展不一样。

要预览目录名的扩展请使用mls 子命令。

mls RemoteFile

要传送文件的整个目录子树,请勿使用mget 或mput 子命令,而按二进制格式传送子树的tar 压缩文档。

hash 切换散列符号(#) 打印。当hash 子命令是开启的时候ftp 命令会为每个所传送的数据块(1024 字节)显示一个散列符号。

help [子命令] 显示帮助信息。请参考? 子命令。

image type image 子命令的同义词。

lcd [Directory] 更改本地主机中的工作目录。如果您未指定目录,ftp 命令将使用主目录。

local M type local M 子命令的同义词。

ls [RemoteDirectory] [LocalFile] 请将远程目录缩写的文件清单写入本地文件。如果RemoteDirectory 参数未指定,ftp 命令将列出当前远程目录。如果LocalFile 参数未指定或是一个-(连字符),则ftp 命令将显示本地终端上的清单。

macdef Macro 定义子命令宏。随后直到空行的行(两个连续的换行)将作为宏的文本保存。能为所有宏定义多达16 个宏,包含4096 个字符。在重新定义或执行close 子命令前,应将宏保持为已定义的宏。

$(美元符号)和\ (反斜杠) 是ftp 宏中的特殊字符。跟随一个或多个数字的$ 符号将被调用行中对应的宏参数所替换(请参考$ 子命令)。$ 符号后紧随字母i 表示将要循环该宏,$i 字符组合将被每一传递中连续的字符替换。

第一个参数用于第一个传递,第二个参数用于第二个传递,依此类推。\ 符号会防止下一个字符的特殊处理。请使用\ 符号关闭$ 和\.(反斜杠句点)符号的特殊意义。

mdelete RemoteFiles 扩展在远程主机上RemoteFiles 参数所指定的文件,并删除远程文件。

mdir [RemoteDirectories LocalFile] 扩展在远程主机上RemoteDirectories 参数所指定的目录,并将这些目录的内容清单写入在LocalFile 参数中定义的文件。如果RemoteDirectories 参数包含模式匹配字符,mdir 子命令将提示输入本地文件(如果没指定)。如果RemoteDirectories 参数是用空格隔开的远程目录清单,则清单中最后一个参数必须是一个本地文件名或-(连字符)。

如果LocalFile 参数是-(连字符),mdir 子命令将显示本地终端上的清单。如果交互式提示启用(请参考prompt 子命令),ftp 命令将提示用户验证最后一个参数是本地文件且不是远程目录。

mget RemoteFiles 请扩展在远程主机上RemoteFiles 参数,并将指示的远程文件拷贝到

本地主机的当前目录中。请参考glob 子命令,取得更多有关文件名扩展的信息。远程文件名在本地使用,并由case、ntrans 和nmap 子命令所生成的设置进行变更。在传送文件时,ftp 命令将使用form、mode、struct 和type 子命令的当前设置。

mkdir [RemoteDirectory] 创建在RemoteDirectory 参数(远程主机中)中指定的目录。

mls [RemoteDirectories LocalFile] 扩展在远程主机上在RemoteDirectories 参数中指定的目录,并将所指示的远程目录的缩写文件清单写入本地文件。如果RemoteDirectories 参数包含模式匹配字符,mls 子命令将提示输入本地文件(如果没指定)。如果RemoteDirectories 参数是用空格隔开的远程目录清单,则清单中最后一个参数应是一个本地文件名或-(连字符)。

如果LocalFile 参数是-(连字符),mls 子命令将显示本地终端上的清单。如果交互式提示启用(请参考prompt 子命令),ftp 命令将提示用户验证最后一个参数是本地文件且不是远程目录。

mode [ stream | block ] 设置文件传送方式。如果参数未提供,则缺省值为stream。

block

请将文件传送方式设置为block。

stream

将文件传送方式设置为stream。

modtime 显示远程机器中所指定文件的最后修改时间。如果ftp 命令未连接到执行前的主机,则modtime 子命令将带错误消息而终止。ftp 命令忽略第一个参数以外的参数。如果FileName 参数未指定,ftp 命令将提示输入文件名。如果未给出文件名,ftp 命令将把用法消息发送给标准输出,并终止该子命令。

如果远程主机中有FileName 参数指定的名称,且该名称指定一个文件,则ftp 命令将包含文件最后修改时间的消息发送给标准输出,并终止该子命令。如果FileName 指定一个目录,则ftp 命令将把错误消息发送给标准输出,并终止该子命令。

注意:modtime 子命令在允许的时候会解释元字符。

mput [LocalFiles] 扩展在主机的LocalFiles 参数中指定的文件,并将指示的本地文件复制给远程主机。请参考glob 子命令,取得更多有关文件名扩展的信息。本地文件名在远程主机中使用,并由ntrans 和nmap 子命令所生成的设置进行变更。ftp 命令会在传送文件时,使用type、form、mode 和struct 子命令的当前设置。

nlist [RemoteDirectory][LocalFile] 将所指定的远程目录的内容清单(RemoteDirectory) 写入指定的本地文件(LocalFile)。如果RemoteDirectory 参数未指定,nlist 子命令将列出当前远程目录的内容。如果LocalFile 参数未指定或是一个-(连字符),则nlist 子命令将显示本地终端上的清单。

nmap 打开或关闭文件名映射机制。如果未指定任何参数,文件名映射将关闭。如果参数已指定,在没有指定目标文件名的时候,将为mget 和mput 子命令以及get 和put 子命令映射源文件名。此子命令在本地和远程主机使用不同的文件命名约定和惯例时很有用。映射下列由InPattern 和OutPattern 参数设置的模式。

InPattern 参数为传入的文件名指定了模板,该文件名有可能已根据case 和ntrans 设置处理过。可将从$1 到$9 的模板变量包含进InPattern 参数。除$(美元符号)和\$ (反斜杠,美元符号)以外,InPattern 参数中的所有字符,都是按字面意义处理的,并用作InPattern 变量之间的定界符。例如,如果InPattern 参数是$1.$2 且远程文件名是mydata.dat,则$1 的值是mydata,$2 的值是dat。

此OutPattern 参数确定结果文件名。从$1 到$9 的变量将被它们从InPattern 参数获得的值替换,而变量$0 将由原文件名替换。另外,如果Sequence1 不为空,序列

[Sequence1,Sequence2] 将由Sequence1 替换;否则它将由Sequence2 的值替换。例如,子命令:

nmap $1.$2.$3 [$1,$2].[$2,file]

会从myfile.data 或myfile.data.old 中产生myfile.data,从myfile 中产生myfile.file,从.myfile中产生myfile.myfile。请使用\ (反斜杠) 符号防止OutPattern参数中$(美元符号)、[(左括号)、](右括号)和,(逗号)的特殊意义。

non-print form non-print 子命令的同义词。

ntrans ] 打开或关闭文件名字符翻译机制。如果未指定任何参数,字符翻译将关闭。如果参数已指定,在没有指定目标文件名的时候,将为mget 和mput 子命令以及get 和put 子命令翻译源文件名中的字符。

此子命令在本地和远程主机使用不同的文件名约定和惯例时很有用。字符翻译遵从InCharacters 和OutCharacters 参数设置的模式。匹配InCharacters 参数中字符的源文件名中的字符将由OutCharacters 参数中对应的字符替换。

如果InCharacters 参数指定的字符串比OutCharacters 参数指定的字符串长,而且其在OutCharacters 参数中无对应的字符,则InCharacters 参数中的字符将被删除。

open HostName [Port] 在由HostName 参数所指定主机中建立对FTP 服务器的连接。如果可选的端口号已指定ftp 命令将尝试连接该端口中的服务器。如果已设置自动登录功能(即,该-n 标志没有在命令行中指定), 则ftp 命令就会试图让用户登录到FTP 服务器。

您还必须拥有其中带有正确信息的$HOME/.netrc 文件和正确的许可集。.netrc 文件应在您的主目录中。

passive 切换文件传送的被动方式。在被动方式关闭的情况下调用文件传送命令(如get、mget 和put,或mput)时,ftp 服务器就会打开对客户机的数据连接。在被动方式下,客户机在发送和接收数据的时候打开对主机的数据连接。

private 请将保护级别设置为“private”。在此级别,数据的保护既完整而又机密。

prompt 切换交互式提示。如果交互式提示启用(缺省值)ftp 命令在检索、发送或删除文件(在mget、mput, 和mdelete)之前会提示进行验证操作。否则,ftp 命令会根据所有指定的文件来执行。

protect 此指令会返回保护的当前级别。

proxy [ 子命令] 在辅助控制连接中执行ftp 命令。此子命令允许ftp 子命令同时连接两个远程FTP 服务器,以便在两个服务器之间传送文件。第一个proxy 子命令应是建立次要控制连接的open 子命令。请输入proxy ? 子命令,查看其它在二级连接中可执行的ftp 子命令。

下列子命令在由proxy 子命令开头时的表现会不一样:

* open 子命令在自动登录过程中不定义新的宏。

* close 子命令不会擦除现存的宏定义。

* get 和mget 子命令从主连接中的主机上将文件传送到二级连接的主机上。

* put、mput 和append 子命令从第二连接中的主机上将文件传送到主连接的主机上。

* restart 子命令可由proxy 命令进行处理。

* status 子命令显示出准确的信息。

文件传送要求第二连接上的FTP 服务器必须支持PASV(passive)指令。

put LocalFile [RemoteFile] 将本地文件存储到远程主机中。如果您未指定RemoteFile 参数,ftp 命令将使用本地文件名命名远程文件,而远程文件名由ntrans 和nmap 子命令所生成的设置加以改变。ftp 命令会在传送文件时,将使用type、form、mode 和struct 子命令的当前设置。

pwd 显示远程主机中的当前目录名。

quit 关闭连接并退出ftp 命令。与bye 子命令相同。

quote 字符串逐字地将由String 参数指定的字符串发送到远程主机。执行remotehelp 或quote help 子命令,显示String 参数的有效值清单。

注意:涉及数据传输的“Quoting”命令会产生不可预见的结果。

record struct record 子命令的同义词。

recv RemoteFile [LocalFile] 请将远程文件拷贝到本地主机。与get 子命令相同。

reinitialize 通过刷新所有I/O 并允许完成传输操作来对FTP 会话进行重新初始化。按照用户已开始FTP 会话但未登录到远程主机的情况复位所有缺省值。

remotehelp [Subcommand] 请求从远程FTP 服务器获得帮助。

rename FromName ToName 重新命名远程主机上的文件。

reset 清除回复队列。此子命令将使命令分析重新同步。

restart get | put | append 请在生成上一个检查点的位置重新启动文件传送。要想顺利运行,该子命令应与异常终止子命令相同,包括结构、类型和格式。有效参数为get、put 和append。

rmdir RemoteDirectory 除去由远程主机中的RemoteDirectory 参数所指定的远程目录。

runique (ReceiveUnique) 在子命令get 和mget 期间,切换为本地目的文件创建唯一文件名称的功能。如果此功能为“关闭”状态(预设值),ftp 命令会覆盖本地文件。否则,如果本地文件名与为本地目的文件指定的名称相同,ftp 将使用.1 修改为本地目的文件指定的名称。如果本地文件已使用了新名称,ftp 将把后缀.2 添加给所指定的名称。如果本地文件已使用了此第二个名称,则ftp 命令会在找到唯一的文件名或未找到唯一文件名但到达.99 之前继续增加后缀。如果ftp 命令找不到唯一的文件名,ftp 会报告错误,传输过程也不会发生。请注意runique 子命令不会影响从shell 命令产生的本地文件名。

safe 将保护级别设置为“safe”。在此级别,数据的完整性会得到保护。

send LocalFile [RemoteFile] 将本地文件存储到远程主机中。其方式与put 子命令相同。

sendport 切换对于FTP PORT 指令的使用。根据预设,ftp 命令在为每个数据传输建立连接的时候会使用PORT 指令。当禁用PORT 指令时,ftp 不会在数据传输中使用PORT 命令。PORT 指令在处理某些FTP 服务器时很有用,那些服务器在未正确指示指令已被接受时会忽略PORT 指令。

site Args 使用chmod 命令显示或设置空闲超时周期、显示或设置文件创建umask 或更改文件的许可权。Args 参数可能的值是umask 和chmod。

size RemoteFile 以字节的方式显示RemoteFile 参数所指定的远程文件的大小。

status 显示ftp 命令的当前状态以及子命令的状态。

stream mode stream 子命令的同义词。

struct [ file | record ] 设置数据传送结构类型。有效的参数为file 和record。

file

将数据传送结构类型设置为file。

record

将数据传送结构类型设置为record。

sunique (Send/Store Unique) 在子命令put 和mput 期间,切换为远程目的文件创建唯一文件名称的功能。如果此功能为“关闭”状态(预设值),ftp 命令会覆盖远程文件。否则,如果远程文件名与为远程目的文件指定的名称相同,远程FTP 服务器会修改远程目的文件的名称。请注意远程服务器必须支持STOU 指令。

系统显示在远程机器上运行的操作系统类型。

telnet form telnet 子命令的同义词。

tenex type tenex 子命令的同义词。

跟踪切换包跟踪。

type [ ascii | binary | ebcdic | image | local M | tenex ] 设置文件传送类型。有效参数是ascii、binary、ebcdic、image,、local M 和tenex。如果参数未指定,则当前类型被显示。缺省类型为ascii;binary 类型可能会比ascii 更有效。

ascii

将文件传送类型设置为网络ASCII。此类型为缺省值。文件传送使用二进制映像传送可能会更有效。请参考binary 参数,以取得更多信息。

binary

文件传送类型设置为二进制映像。此类型可能比ASCII 传送更有效。

ebcdic

将文件传送类型设置为EBCDIC。

image

将文件传送类型设置为二进制映像。此类型可能比ASCII 传送更有效。

local M

将文件传送类型设置为本地。M 参数定义每计算机字位的十进制数。此参数没有缺省值。

tenex

将文件传送类型设置为TENEX 机器需要的类型。

user User [Password] [Account] 识别远程FTP 服务器的本地用户(User)。如果未指定Password 或Account 参数,而远程服务器需要它,则ftp 命令会提示输入本地的密码和帐户。如果Account 参数是必须的,则ftp 命令会在远程登录过程完成后将它发送到远程服务器。

注意:除非通过在命令行上指定-n 标志来禁用自动登录,否则ftp 命令将User、Password和Account 参数自动地发送给远程服务器用于初始连接。您亦需主目录中的.netrc 文件以便发布自动登录。

verbose 切换详细方式。如果详细方式启用(缺省值),ftp 命令将显示远程FTP 服务器的全部响应。另外,ftp 会在传输完成后显示所有文件传送的统计信息。

[编辑本段]示例

1. 要调用ftp 命令,请登录canopus 系统,显示本地帮助信息,显示远程帮助信息,显示状态,切换bell、prompt、runique、trace 和verbose 子命令,然后再退出,请输入:$ ftp canopus

连接https://www.doczj.com/doc/9e7449112.html,.

220 https://www.doczj.com/doc/9e7449112.html, FTP 服务器(4.1 版1991年11 月23 日周六12:52:09 CST)就绪。

名称(canopus:eric):dee

331 dee 所需要的密码。

密码:

230 用户dee 登录。

ftp> 帮助

Commands 可能为缩写。命令:

! delete mdelete proxy runique

$ debug mdir sendport send

account dir mget put size

append disconnect mkdir pwd status

ascii form mls quit struct

bell get mode quote sunique

binary glob modtime recv system

bye hash mput remotehelp tenex

case help nmap rstatus trace

cd image nlist rhelp type

cdup lcd ntrans rename user

close ls open reset verbose

cr macdef prompt rmdir ?

clear private protect safe

ftp> remotehelp

214 —识别下列命令(* => 未实施)。

USER PORT RETR MSND* ALLO DELE SITE* XMKD CDUP

PASS PASV STOR MSOM* REST* CWD STAT* RMD XCUP

ACCT* TYPE APPE MSAM* RNFR XCWD HELP XRMD STOU

REIN* STRU MLFL* MRSQ* RNTO LIST NOOP PWD

QUIT MODE MAIL* MRCP* ABOR NLST MKD XPWD

AUTH ADAT PROT PBSZ MIC ENC CCC

214 将意见发送给ftp-bugs@https://www.doczj.com/doc/9e7449112.html,。

ftp> 状态

连接https://www.doczj.com/doc/9e7449112.html,.

无代理连接。

方式:流;类型:ascii;表单:非打印的;结构:文件

详细:开;Bell:关;提示:开;文件名匹配替换:开

存储唯一:关;接收唯一:关

Case:关;CR stripping:开

Ntrans:关

Nmap:关

散列标记打印:关;PORT cmds 的使用:开

ftp> bell

Bell 方式开启

ftp> 提示符

交互方式关闭。

ftp> runique

接收唯一开启。

ftp> trace

包跟踪开启。

ftp> verbose

详细方式关闭。

ftp> quit

$

2. 要调用ftp 命令,请登录canopus 系统,打印工作目录,更改工作目录,将文件传

送类型设定为ASCII 向远程主机发送本地文件,将工作目录改为父目录,然后退出,请输入:

$ ftp canopus

连接https://www.doczj.com/doc/9e7449112.html,.

220 https://www.doczj.com/doc/9e7449112.html, FTP 服务器(4.1 版1991年11 月23 日周六12:52:09 CST)就绪。

名称(canopus:eric):dee

331 dee 所需要的密码。

密码:

230 用户dee 登入。

ftp> pwd

257 "/home/dee" 为当前目录。

ftp> cd 桌面

250 CWD 命令顺利完成。

ftp> 类型ascii

200 类型设置为A。

ftp> 发送typescript

200 PORT 命令顺利完成。

150 为typescript (128.114.4.99,1412) 打开数据连接。

226 传输完成。

ftp> cdup

250 CWD 命令顺利完成。

ftp> bye

221 再见。$

3. 要调用具有自动登录功能的ftp 命令(使用.netrc 文件),请打开与canopus 系统的会话,登入,将工作目录改为父目录,显示工作目录,列出当前目录的内容,删除文件,将当前目录的内容清单写入本地文件,关闭会话,然后退出,请输入:

$ ftp canopus

连接https://www.doczj.com/doc/9e7449112.html,.

220 https://www.doczj.com/doc/9e7449112.html, FTP 服务器(4.1 版1991年11 月23 日周六12:52:09 CST)就绪。

331 dee 所需要的密码。

230 用户dee 登入。

ftp> cdup

250 CWD 命令顺利完成。

ftp> pwd

257 "/home" 是当前目录。

ftp> dir

200 PORT 命令顺利完成。

150 为/usr/bin/ls (128.114.4.99,1407) 打开数据连接。

(0 字节)。

一共104

drwxr-xr-x 2 system 32 Feb 23 17:55 bin

Drwxr-xr-x 26 rios 4000 May 30 17:18 bin1

drwxr-xr-x 2 system 32 Feb 23 17:55 books

drwxrwxrwx 18 rios 1152 Jun 5 13:41 dee

-r--r--r-- 1 system 9452 May 17 12:21 filesystems

drwxr-xr-x 2 system 32 Feb 23 17:55 jim

drwxr-xr-x 5 system 80 Feb 23 17:55 krs

drwxrwxrwx 2 rios 16432 Feb 23 17:36 lost+found

-rwxr-xr-x 1 rios 3651 May 24 16:45 oldmail

drwxr-xr-x 2 system 256 Feb 23 17:55 pubserv

drwxrwxrwx 2 system 144 Feb 23 17:55 rein989

drwxr-xr-x 2 system 112 Feb 23 17:55 reinstall

226 传输完成。

ftp> 删除旧邮件。

250 DELE 命令顺利完成。

ftp> mdir /home/dee/bin binlist

output to local-file: binlist? y

200 PORT 命令顺利完成。

150 为/usr/bin/ls (128.114.4.99,1408)(0 字节)打开数据连接。

226 传输完成。

ftp> close

221 再见。

ftp> quit

$

[编辑本段]文件

/usr/samples/tcpip/netrc 包含.netrc 样本文件。

/etc/syslog.conf 包含syslogd 守护进程的配置信息。

FTP

abbr.

File Transfer Protocol , 文件传送[输]协议

FTP

FTP

AHD:[µf”t¶-p¶“]

D.J.[7efti86pi8]

K.K.[7Wfti6pi]

n.(名词)

A communications protocol governing the transfer of files from one computer to another over a network.

文件传输协议:网络上一种管理文件传输的通讯协议

v.(动词)

FTPed,FTP.ing,FTPs

v.tr.(及物动词)

To transfer (a file) using FTP.

以文件传输协议传输(文件)

v.intr.(不及物动词)

To transfer a file using FTP.

以文件传输协议传输文件

F(ile) T(ransfer) P(rotocol)

F(ile) T(ransfer) P(rotocol)

FTP

=Fracture Transition Plastic【冶】韧性断裂转变温度

FTP

FTP

AHD:[µf”t¶-p¶“]

D.J.[7efti86pi8]

K.K.[7Wfti6pi]

n.

A communications protocol governing the transfer of files from one computer to another over a network.

v.

FTPed,FTP.ing,FTPs

v.tr.

To transfer (a file) using FTP.

v.intr.

To transfer a file using FTP.

F(ile) T(ransfer) P(rotocol)

FTP(Funds Transfer Pricing :资金转移定价)

资金转移定价(FTP)最早诞生于生产企业,目的是核算生产流程每个环节所耗费的成本,以确定企业的最终利润来自哪个产品。20世纪八十年代美洲银行首次在银行业引入FTP,用于核算资金的成本或收益,识别银行利差的真正来源。目前,FTP 已经被国际商业银行所普遍使用,并在商业银行的绩效考核、利率风险管理、资源配置以及产品定价方面日益发挥着重要作用。

[编辑本段]FTP 进入银行业的背景

二十世纪八十年代,美洲银行首次采用FTP进行内部资金成本与收益的核算。当时美国的利率市场化改革基本完成,商业银行面临的主要压力是一方面存款成本迅速上升,另一方面是资产收益快速下降,银行净息差大幅收窄。

○存款成本迅速上升。金融自由化和混业经营使商业银行流失了许多长期稳定的低成本存款,为了防范流动性风险商业银行不得不通过提高资金成本获得资金来源。

○资产收益快速下降。直接融资渠道的开放,信用市场的扩展,使商业票据、企业债等成为企业新的融资渠道,信贷资产证券化促使资产的市场价格进一步走低。

息差收入大幅收窄,银行经营陷入困境,到底是存款更赚钱还是贷款更赚钱无从知晓,识别利润来源成为商业银行首先面临的课题——FTP 应运而入。

FTP工作原理及部署方案

FTP 工作原理及部署方案 1、FTP简介 FTP(File Transfer Protocol),是文件传输协议的简称。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。如果用户需要将文件从自己的计算机上发送到另一台计算机上,可使用FTP上传(upload)或(put)操作,而更多种的情况是用户使用FTP下载(download)或获取(get)操作从FTP服务器上下载文件。 2、FTP工作原理 完整的FTP文件传输需要建立两种类型的连接: 一种为文件传输命令,称为控制连接。 一种实现真正的文件传输,称为数据连接。 3、FTP控制链接 客户端希望与FTP服务器建立上传下载的数据传输时,它首先向服务器的TCP 21端口发起一个建立连接的请求,FTP服务器接受来自客户端的请求,完成连接的建立过程,这样的连接就称为FTP控制连接。 4、FTP数据连接 FTP控制连接建立之后,即可开始传输文件,传输文件的连接称为FTP数据连接。FTP 数据连接就是FTP传输数据的过程,它有两种传输模式:主动传输模式(PORT)和被动传输模式(PASSIVE,简称PASV)。主动传输模式下,FTP服务器使用20端口与客户端的暂时端口进行连接,并传输数据,客户端只是处于接收状态。被动传输模式下,FTP服务器打开一个暂态端口等待客户端对其进行连接,并传输数据,服务器并不参与数据的主动传输,只是被动接受。 5、FTP传输方式 ASCII传输方式,假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。 但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印字符)。在拷贝任何非文本文件之前,用binary 命令告诉ftp 逐字拷贝,不要对这些文件进行处理,这也是下面要讲的二进制传输。 二进制传输方式,在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢,也会损坏数据,使文件变得不能用。(在大多数计算机上,ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果你传输二进制文件,所有的位都是重要的。)如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。

ftp工作原理

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,连接成功后,数据链路就建立了。

FTP协议原理和工作模式讲解

浅析FTP的PORT和PASV模式工作原理 摘要 通过阅读本文,您可以了解到FTP的基本的工作原理。作者以建立FTP连接到断开FTP连接的方式详细介绍了FTP会话全过程。如果您对PORT模式或者PASV模式的FTP工作原理有些疑惑,相信本文能使您了解更多的细节,使您更加从容的面对企业的网络流量以及安全的管理,特别是如果您的企业正准备在企业内部署ISA Server 2000,或许会给您发布内部服务器带来帮助! 目录 ?FTP协议概述 ?PORT模式 ?PASV模式 ?比较分析 ?图示 FTP协议概述 起初, FTP并不是应用于IP网络上的协议,而是ARPANEt网络中计算机间的文件传输协议,ARPANET是美国国防部组建的老网络,于1960-1980年使用。在那时, FTP的主要功能是在主机间高速可靠地传输文件。目前FTP仍然保持其可靠性,即使在今天,它还允许文件远程存取。这使得用户可以在某个系统上工作,而将文件存贮在别的系统。例如,如果某用户运行Web 服务器,需要从远程主机上取得HTML文件和CGI程序在本机上工作,他需要从远程存储站点获取文件(远程站点也需安装Web服务器)。当用户完成工作后,可使用FTP将文件传回到Web 服务器。采用这种方法,用户无需使用Telnet登录到远程主机进行工作,这样就使Web服务器的更新工作变得如此的轻松。 FTP是TCP/IP的一种具体应用,它工作在OSI模型的第七层,TCP模型的第四层上,即应用层,使用TCP传输而不是UDP,这样FTP客户在和服务器建立连接前就要经过一个被广为熟知的"三次握手"的过程,它带来的意义在于客户与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证。 下面,让我们来看看,一个FTP客户在和服务器连接是怎么样的一个过程(以标准的FTP端口号为例)。 首先,FTP并不像HTTP协议那样,只需要一个端口作为连接(HTTP的默认端口是80,FTP 的默认端口是21),FTP需要2个端口,一个端口是作为控制连接端口,也就是21这个端口,用于发送指令给服务器以及等待服务器响应;另一个端口是数据传输端口,端口号为20(仅PORT 模式),是用来建立数据传输通道的,主要有3个作用 ?从客户向服务器发送一个文件。 ?从服务器向客户发送一个文件。 ?从服务器向客户发送文件或目录列表。 其次,FTP的连接模式有两种,PORT和PASV。PORT模式是一个主动模式,PASV是被动模式,

FTP定义以及原理详解教程

FTP定义以及原理详解教程 网络上FTP下载链接比较常见,FTP常被运用于局域网共享、互联网软件下载、以及互联网共享,它的原理是怎么样的呢?笔者给大家做个详细介绍。 什么是FTP 1. FTP协议 什么是FTP呢?FTP 是TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写。该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载(download)”文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为“上载(upload)”文件。在TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。 2. FTP服务器和客户端 同大多数Internet服务一样,FTP也是一个客户/服务器系统。用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。依照FTP 协议提供服务,进行文件传送的计算机就是FTP 服务器,而连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。用户要连上FTP 服务器,就

要用到FPT 的客户端软件,通常Windows自带“ftp”命令,这是一个命令行的FTP 客户程序,另外常用的FTP 客户程序还有CuteFTP、Ws_FTP、Flashfxp、LeapFTP、流星雨-猫眼等。 3. FTP用户授权 3.1 用户授权 要连上FTP 服务器(即“登陆”),必须要有该FTP 服务器授权的帐号,也就是说你只有在有了一个用户标识和一个口令后才能登陆FTP服务器,享受FTP服务器提供的服务。 3.2 FTP地址格式(168字) foolish_tyu (216554)于2003/03/28(23:29:05).. FTP地址如下: ftp://用户名:密码@FTP服务器IP或域名:FTP命令端口/路径/文件名 上面的参数除FTP服务器IP或域名为必要项外,其他都不是必须的。如以下地址都是有效FTP地址: ftp://https://www.doczj.com/doc/9e7449112.html, ftp://list:list@https://www.doczj.com/doc/9e7449112.html, ftp://list:list@https://www.doczj.com/doc/9e7449112.html,:2003 ftp://list:list@https://www.doczj.com/doc/9e7449112.html,:2003/soft/list.txt

sftp-ftp区别工作原理

Sftp和ftp 区别、工作原理等 最近使用SecureFx,涉及了两个不同的安全文件传输协议: -sftp -ftp over SSH2 这两种协议是不同的。sftp是ssh内含的协议,只要sshd服务器启动了,它就可用,它本身不需要ftp服务器启动。ftp over SSH2则象一个二传手。 1、SFTP的工作模式: 图1显示了SFTP的工作模式,它是作为SSH2的一个子服务工作的。 图 1 SFTP工作模式 2、FTP over SSH2 此协议还是基于ftp协议的。在此协议中SSH2服务器起了一个桥梁作用,把数据在客户端和ftp之间转发。ftp协议本身包括两个通道,一个是控制通道,另一个是数据通道。 FTP over SSH2有两种情况,半安全连接(Less Secure Connection)和安全连接(Full Secure Connection)。在半安全连接时,ftp客户端先和SSH2服务器连接,在这个连接中无论控制通道和数据通道都是加密的。但是SSH2服务器和ftp服务器之间就不是加密的了,如果ftp服务器运行在另外一台机器上,SSH2服务器和ftp直接就是明文传输。见图2。

图2半安全连接 图3是安全连接模式的情形,SSH2服务器和FTP服务器在同一台服务器上。 图 3 安全连接 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)。其实这两种连接模式主要是针对数据链路进行的,和控制链路无关。 主动模式

FTP断点续传的原理

本文建立在你对socket知识有一点点的基础之上(有一点点就足够了:)) FTP客户端实现要建立两个通道,一个控制命令通道,让FTP服务器知道客户端要干什么,一个数据传输通道。所谓的两个通道只不过是两个调用了connect函数的连接,只是控制命令通道专门用来传输一些字符串命令信息,而数据通道则是用来传输文件。控制命令通道一定是由客户端向服务器的连接(默认的端口是21,也可以指定端口,这要看服务器的设置)。连接的过程完成了FTP的登录。数据通道则不一定啦,具体哪个连哪个,请看下面对PASV命令的解释。 其实FTP断点续传的原理很简单,可分为断点下载和断点上传。 客户端的实现步骤如下: 一、下载: 1、向服务器发送“REST + 本地文件长度”命令,告诉服务器,客户端要断点下载了。这时服务器还不知道客户端要下载哪个文件; 2、向服务器发送“RETR + 文件名”命令,通知服务器要下载的文件名,这时服务器开始定位文件指针读文件并发送数据。 3、客户端定位本地文件指针(文件末尾); 4、两端的准备工作都做完了以后,客户端创建socket,以被动或非被动方式建立数据通道,循环调用recv接收数据并追加入本地文件; 二、上传: 1、获取服务器上和本地要上传文件的同名文件大小; 2、向服务器发送“APPE +文件名”,通知服务器,接下来从数据通道发送给你的数据要附加到这个文件末尾。 3、定位本地文件指针(和FTP上文件大小相同的位置) 4、从文件指针处读数据并发送。 好了,FTP断点续传的原理就这么简单。代码里将断点上传和断点下载放到同一个函数(MoveFile)里,通过get参数说明是上传还是下载。当然,整个 FTP类的实现有800多行,包括登录、退出、获取FTP文件大小、删除FTP服务器上文件、响应服务器,解析响应信息等函数。相应的注释代码里都有,这里就不一一熬述了。

FTP原理、常见问题及解决办法

FTP原理、常见问题及解决办法 FTP是File Transfer Protocol(文件传输协议)的缩写,用来在两台计算机之间互相传送文件。FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动模式和被动模式。 PORT(主动)方式的连接过程是:客户端从一个任意的非特权端口N(N>1024)向服务器的命令端口(默认是21)发送连接请求,服务器接受连接。然后客户端开始监听端口N+1,并发送命令”PORT N+1”到FTP服务器。接着FTP服务器会用数据端口20连接到客户端指定的数据端口N+1建立一条命令链路,当需要传送数据时,服务器从20端口向客户端的空闲端口N+1发送连接请求,建立一条数据链路来传送数据。 对于FTP服务器前面的防火墙,必须允许以下通讯才能支持主动方式 1、任何端口到服务器的21端口(客户端的初始化的连接是S←C) 2、服务器的21端口到大于1024的端口(服务器响应S-->C) 3、大于1024的端口到服务器的20端口(客户端发送ACK响应到服务器的数据 端口S←C) 4、FTP的主动方式主要问题实际上在客户端,它并没有实际建立到服务器数据端 口的连接,它只简单的告诉服务器自己监听的端口号,服务器再回来连接这个指定的端口号,对于客户端的防火墙来说,这是从外部系统到内部客户端的连接,一般都会阻止。 PASV(被动)方式的连接过程中,命令连接器和数据连接都是由客户端发起的,这样就可以解决从服务器到客户端的数据流被防火墙阻止的问题。 当开启一个FTP连接时,客户端打开两个任意非特权端口(N>1024、N+1),第一个端口和服务器的21端口建立命令连接,客户端提交PASV命令,服务器会打开一个端口P(P>1024),客户端用第二个端口和服务器的端口P连接用来传送数据。 对于服务器上的防火墙来说,必须允许下面的通讯才能支持被动方式的FTP 1、从任何端口到服务器的21端口(客户端初始化的连接S←C) 2、服务器的21端口到任何大于1024的端口(服务器响应到客户端控制端口的连接 S→C) 3、从任意端口到大于服务器的大于1024的端口(客户端初始化数据端口到服务器的 任意大于1024端口的连接S←C) 4、服务器大于1024的端口到大于1024端口的连接(服务器发送ACK和数据到客户端 的数据端口的连接S→C) , 主动FTP对服务器管理有利,但是对客户端管理不利。因为FTP服务器企图于客户端的高位随机端口建立连接,而这个端口很可能被客户端的防火墙阻止了;被动FTP对客户端管理有利,但对服务器端的管理不利,因为客户端要跟服务器建立两个连接,其中一个连接到高位随机端口,而这个端口很可能被服务器端的防火墙阻止了。我们可以通过使用被动模式,FTP服务器来指定一个有效的端口范围来建立跟客户端的连接,这样大大降低了高位端口暴露的危险。 因为PORT方式在传送数据时,由服务器主动连接客户端,所以,如果客户端在防火墙或NAT网关后面,用PORT方式将无法与Internet上的FTP服务器传送文件。这种情况需要使用PASV方式。几乎所有的ftp客户端软件都支持这两种方式。特殊的典型例子是ie,ie 默认是用PORT方式的。如果要在ie里启用PASV方式,请打开ie,在菜单里选择:工具->

FTP数据包的详细分析

FTP协议分析与源码阅读 一、什么是FTP协议 FTP(File Transfer Protocal),是文件传输协议的简称。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。 FTP(File Transfer Protocol) 1、FTP的作用: 正如其名所示:FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。 2、FTP工作原理 拿下传文件为例,当你启动FTP从远程计算机拷贝文件时,你事实上启动了两个程序:一个本地机上的FTP客户程序:它向FTP服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的FTP服务器程序,它响应你的请求把你指定的文件传送到你的计算机中。FTP采用“客户机/服务器”方式,用户端要在自己的本地计算机上安装FTP客户程序。FTP 客户程序有字符界面和图形界面两种。字符界面的FTP的命令复杂、繁多。图形界面的FTP 客户程序,操作上要简洁方便的多。简单地说,支持FTP协议的服务器就是FTP服务器,下面介绍一下什么是FTP协议(文件传输协议) 一般来说,用户联网的首要目的就是实现信息共享,文件传输是信息共享非常重要的一个内容之一。Internet上早期实现传输文件,并不是一件容易的事,我们知道Internet是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机,据统计连接在Internet 上的计算机已有上千万台,而这些计算机可能运行不同的操作系统,有运行Unix的服务器,也有运行Dos、Windows的PC机和运行MacOS的苹果机等等,而各种操作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所谓的FTP。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。 与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP 协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。 在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上载"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上载"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上载(下载)文件。 使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可上载或下载文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet 上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。 匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无

FTP基础知识学习资料

FTP基础知识 学习重点: 什么是FTP? FTP用来做什么? FTP工作原理 C/S? B/S? FTP服务器 FTP传送方式 断点续传 断点续传的前提 PORT PASV 切换 操作 FTP链接三要素(FTP用户名,FTP密码,FTPip) 可以写成: ftp://用户名:密码@IP 站站对传 查找 改换传输模式 注意事项(文件名一致,上传到哪儿?) FTP对一个做网络的朋友是必会的工具,主要用到的功能就是上传编辑好的文件到服务器,或者从服务器上下载到本地修改,维护我们的站,多多少少都会用到它。 首先说一下什么是FTP? FTP是File Transfer Protocal 的缩写,中文的意思是文件传输协议,从字面上理解,就是一种协议,这种协议的主要功能就是”文件传输”,网络上的协议就好像我们生活种人和人之间定的约定,按照这个约定来执行。 下来讲一下FTP工作原理。 我们就拿下传文件为例,当你启动FTP从远程计算机拷贝文件时,你事实上启动了两个程序:一个本地机上的FTP客户程序,它向FTP服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的FTP服务器程序,它响应你的请求把你指定的文件传送到你的计算机中。FTP采用“客户机/服务器(c/s模式)”方式,在这里解释一下C/S(client srver) 模式和B/S(browser srver)模式,C/S模式就是客户端/服务器模式,一般常见的是网络软件为主,比如,Cuteftp,迅雷下载,QQ 等等。特点是要在客户端安装软件,然后和服务器传输、通讯。B/S就是浏览器/服务器模式,比如网站,都是基于浏览器和服务器的数据交互。那么什么是FTP服务器?提供FTP服务的服务器就

FTP的工作原理是什么

FTP的工作原理是什么 FTP工作原理 一般来说,用户联网的首要目的就是实现信息共享,文件传输是信息共享非常重 要的一个内容之一。Internet上早期实现传输文件,并不是一件容易的事,我们知道Internet是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机,据统计连接在Internet上的计算机已有上千万台,而这些计算机可能运行不同的操作系统,有运行Unix的服务器,也有运行Dos、Windows的PC机和运行MacOS的苹果机等等,而各种操作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所 谓的FTP。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守 同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获 得文件。 与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机 程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返 回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份 拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户 接收到这个文件,将其存放在用户目录中。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件 至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。 使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可下载或上传 文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet 的开放性,Internet上的FTP主机何止千万,不可能要求每个用户在每一台主机上都 拥有帐号。匿名FTP就是为解决这个问题而产生的。 匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件, 而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous, Internet上的任何人在任何地方都可使用该用户ID。 通过FTP程序连接匿名FTP主机的方式同连接普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous,该用户ID的口令可以是任意的字符串。习惯上,用自己的E-mail地址作为口令,使系统维护程序能够记录下来谁在存取 这些文件。

FTP工作原理

FTP工作原理 拿下载文件为例,当你启动FTP从远程计算机拷贝文件时,你事实上启动了两个程序:一个本地机上的FTP客户程序:它向FTP服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的FTP服务器程序,它响应你的请求把你指定的文件传送到你的计算机中。FTP 采用“客户机/服务器”方式,用户端要在自己的本地计算机上安装FTP客户程序。FTP客户程序有字符界面和图形界面两种。字符界面的FTP的命令复杂、繁多。图形界面的FTP客户程序,操作上要简洁方便的多。 简单地说,支持FTP协议的服务器就是FTP服务器,下面介绍一下什么是FTP协议。(文件传输协议) 一般来说,用户联网的首要目的就是实现信息共享,文件传输是信息共享非常重要的一个内容之一。Internet上早期实现传输文件,并不是一件容易的事,我们知道Internet是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机,据统计连接在Internet 上的计算机已有上千万台,而这些计算机可能运行不同的操作系统,有运行Unix的服务器,也有运行Dos、Windows的PC机和运行MacOS的苹果机等等,而各种操作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所谓的FTP。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。 与大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP 协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某一个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收到这个文件,将其存放在用户目录中。 在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上载(下载)文件。 使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可下载或上传文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。这种情况违背了Internet的开放性,Internet 上的FTP主机何止千万,不可能要求每个用户在每一台主机上都拥有帐号。匿名FTP就是为解决这个问题而产生的。 匿名FTP是这样一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。系统管理员建立了一个特殊的用户ID,名为anonymous, Internet上的任何人在任何地方都可使用该用户ID。 通过FTP程序连接匿名FTP主机的方式同连接普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous,该用户ID的口令可以是任意的字符串。习惯上,用自己的E-mail地址作为口令,使系统维护程序能够记录下来谁在存取这些文件。 值得注意的是,匿名FTP不适用于所有Internet主机,它只适用于那些提供了这项服务的主机。 当远程主机提供匿名FTP服务时,会指定某些目录向公众开放,允许匿名存取。系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP主机都允许用户从其下载文件,而不允许用户向其上传文件,也就是说,用户可将匿名FTP主机上的所有文件全部拷

FTP服务工作原理

FTP服务工作原理 一、FTP简介 文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,它工作在OSI 模型的第七层,TCP 模型的第四层,即应用层,使用TCP 传输而不是UDP,客户在和服务器建立连接前要经过一个“三次握手”的过程,保证客户与服务器之间的连接是可靠的,而且是面向连接,为数据传输提供可靠保证。 FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。然而,用户并不真正登录到自己想要存取的计算机上面而成为完全用户,可用FTP程序访问远程资源,实现用户往返传输文件、目录管理以及访问电子邮件等等,即使双方计算机可能配有不同的操作系统和文件存储方式。 FTP在对外提供服务时需要维护两个连接:一个是控制连接,负责监听21端口,用来传输控制命令;另一个是数据连接,在主动传输方式下监听20端口,用来传输数据。 二、FTP用户分类 基于FTP服务器安全性的考虑,可采用分用户访问FTP服务器的方式。FTP 的用户默认提供三类用户,不同的用户对应着不同的权限和操作方式。 (1)匿名用户:即Anonymous用户。当客户端访问FTP资源时,可以在没有服务器的账户名及密码的情况下,使用匿名用户访问FTP服务器的共享资源。 (2)实体用户:是指FTP服务器的本地账户,即当用户登录FTP服务器时,其默认的工作主目录就是以其账户命令的目录,也可变更其工作主目录。该用户不仅可以访问FTP共享资源,还可以访问系统下该用户的资源。 (3)虚拟用户:是指FTP建立专有的用户,将账号和密码保存在数据库中,采用非系统账户访问服务器资源。相对FTP的实体用户,虚拟用户只能访问FTP

ftp断点续传原理

第一,最重要的一点,断点续传需要服务器的支持,这个是必要条件。 传统的FTP SERVER是不支持断点续传的,因为它不支持REST指令,传统的FTP指令(我是指服务器端指令)并不包括REST指令。 第二,客户端要知道使用REST等一系列指令来作断点续传。 看看断点续传的详细过程(FTP SERVER): 首先客户端使用REST指令来告诉FTP SERVER它需要从文件的某个点开始传,接着用STOR或者RETR命令开始传文件,大概的命令的流程如下: TYPE I 200 Type set to I. PASV 227 Entering Passive Mode (204,48,18,69,98,250) REST 187392 350 Restarting at 187392. Send STORE or RETRIEVE to initiate transfer. RETR /pub/audio/pci/maestro-3/win2k/1056.zip 150 Opening BINARY mode data connection for /pub/audio/pci/maestro-3/win2k/1056.zip (936098 bytes). 首先使用TYPE命令告诉FTP SERVER使用BINARY模式传送文件; 然后使用PASV命令告诉FTP SERVER使用被动打开模式来传送文件; 接着使用REST 187392指令告诉FTP SERVER要从文件的187392字节开始传送; 最后使用RETR指令来传送文件。 从上面可以看出,这个FTP SERVER支持REST指令,有的FTP SERVER(特别的老的)是不支持这个指令的,这时即使FTP CLIENT支持断点续传也一点用都没有! 支持断点的FTP SERVER:Serv-U FTP,还有一系列的新出现的FTP SERVER; 不支持断点的:IIS4以前版本所带的都不行,IIS5 有,不家可以测试一下,登录进FTP SERVER,然后输入REST 1000命令,看服务器是否认识,认识就是支持断点。 上面说的是FTP SERVER的断点,HTTP的断点续传是这样的: 在以前版本的HTTP SERVER也是不支持断点的,HTTP/1.1开始就支持了,具体如下: 在HTTP请求的头部信息里面,通常是这样的: GET http://xxx.xxx.xxx.xxx/index.html HTTP/1.1 Host:https://www.doczj.com/doc/9e7449112.html, Accept:*/* 上面是HTTP请求头的主要内容,是浏览器等客户端发给HTTP SERVER的信息。 在这个请求头里面,第一行叫做Request Line,GET叫做请求方法(通常得到一个HTML

浅析FTP的工作原理

浅析FTP的工作原理 FTP协议概述 起初,FTP并不是应用于IP网络上的协议,而是ARPANEt网络中计算机间的文件传输协议,ARPANET 是美国国防部组建的老网络,于1960-1980年使用。在那时,FTP的主要功能是在主机间高速可靠地传输文件。目前FTP仍然保持其可靠性,即使在今天,它还允许文件远程存取。这使得用户可以在某个系统上工作,而将文件存贮在别的系统。例如,如果某用户运行Web服务器,需要从远程主机上取得HTML文件和CGI程序在本机上工作,他需要从远程存储站点获取文件(远程站点也需安装Web服务器)。当用户完成工作后,可使用FTP将文件传回到Web服务器。采用这种方法,用户无需使用Telnet登录到远程主机进行工作,这样就使Web服务器的更新工作变得如此的轻松。 FTP是TCP/IP的一种具体应用,它工作在OSI模型的第七层,TCP模型的第四层上,即应用层,使用TCP 传输而不是UDP,这样FTP客户在和服务器建立连接前就要经过一个被广为熟知的"三次握手"的过程,它带来的意义在于客户与服务器之间的连接是可靠的,而且是面向连接,为数据的传输提供了可靠的保证。 下面,让我们来看看,一个FTP客户在和服务器连接是怎么样的一个过程(以标准的FTP端口号为例)。 首先,FTP并不像HTTP协议那样,只需要一个端口作为连接(HTTP的默认端口是80,FTP的默认端口是21),FTP需要2个端口,一个端口是作为控制连接端口,也就是21这个端口,用于发送指令给服务器以及等待服务器响应;另一个端口是数据传输端口,端口号为20(仅PORT模式),是用来建立数据传输通道的,主要有3个作用 从客户向服务器发送一个文件。 从服务器向客户发送一个文件。 从服务器向客户发送文件或目录列表。 其次,FTP的连接模式有两种,PORT和PASV。PORT模式是一个主动模式,PASV是被动模式,这里都是相对于服务器而言的。为了让大家清楚的认识这两种模式,朗月繁星分别举例说明。 PORT模式 当FTP客户以PORT模式连接服务器时,他动态的选择一个端口号(本次试验是6015)连接服务器的21端口,注意这个端口号一定是1024以上的,因为1024以前的端口都已经预先被定义好,被一些典型的服务使用,当然有的还没使用,保留给以后会用到这些端口的资源服务。当经过TCP的三次握手后,连接(控制信道)被建立(如图1和图2)。现在用户要列出服务器上的目录结构(使用ls或dir命令),那么首先就要建立一个数据通道,因为只有数据通道才能传输目录和文件列表,此时用户会发出PORT指令告诉服务器连接自己的什么端口来建立一条数据通道(这个命令由控制信道发送给服务器),当服务器接到这一指令时,服务器会使用20端口连接用户在PORT指令中指定的端口号,用以发送目录的列表(如图3)。当完成这一操作时,FTP客户也许要下载一个文件,那么就会发出get指令,请注意,这时客户会再次发送PORT指令,告诉服务器连接他的哪个"新"端口,你可以先用netstat -na这个命令验证,上一次使用的6044已经处于TIME_WAIT状态(如图4)。当这个新的数据传输通道建立后(在微软的系统中,客户端通常会使用连续的端口,也就是说这一次客户端会用6045这个端口),就开始了文件传输的工作。

FTP协议及工作原理详解

FTP协议及工作原理详解 1. FTP协议 什么是FTP呢?FTP 是TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写。 该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载(download)”文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为“上载(upload)”文件。在TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。 2. FTP服务器和客户端 同大多数Internet服务一样,FTP也是一个客户/服务器系统。用户通过一个客户机程序连接至在远程计算机上运行的服务器程序。依照FTP 协议提供服务,进行文件传送的计算机就是FTP 服务器,而连接FTP服务器,遵循FTP协议与服务器传送文件的电脑就是FTP客户端。用户要连上FTP 服务器,就要用到FPT 的客户端软件,通常Windows自带“ftp”命令,这是一个命令行的FTP 客户程序,另外常用的FTP 客户程序还有CuteFTP、Ws_FTP、Flashfxp、LeapFTP、流星雨-猫眼等。

3. FTP用户授权 (1)用户授权 要连上FTP 服务器(即“登陆”),必须要有该FTP 服务器授权的帐号,也就是说你只有在有了一个用户标识和一个口令后才能登陆FTP服务器,享受FTP服务器提供的服务。 (2)FTP地址格式 FTP地址如下:ftp://用户名:密码@FTP服务器IP或域名:FTP命令端口/路径/文件名 上面的参数除FTP服务器IP或域名为必要项外,其他都不是必须的。如以下地址都是有效FTP地址: ftp://https://www.doczj.com/doc/9e7449112.html, ftp://list:list@https://www.doczj.com/doc/9e7449112.html, ftp://list:list@https://www.doczj.com/doc/9e7449112.html,:2003

各服务器工作原理

FTP(文件传输协议)服务器工作原理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端口和客户端打开的端口进行连接,从而进行数据的传输。当服务器端收到信息后,就会和客户端打开的端口连接,这样数据链路就建立起来了。

ftp上传下载原理

ftp上传下载原理 FTP客户端实现要建立两个通道,一个控制命令通道,让FTP服务器知道客户端要干什么,一个数据传输通道。所谓的两个通道只不过是两个调用了connect函数的连接,只是控制命令通道专门用来传输一些字符串命令信息,而数据通道则是用来传输文件。控制命令通道一定是由客户端向服务器的连接(默认的端口是21,也可以指定端口,这要看服务器的设置)。连接的过程完成了FTP的登录。数据通道则不一定啦,具体哪个连哪个,请看下面对PASV 命令的解释。 其实FTP断点续传的原理很简单,可分为断点下载和断点上传。客户端的实现步骤如下: 一、下载: 1、向服务器发送“REST+本地文件长度”命令,告诉服务器,客户端要断点下载了。这时服务器还不知道客户端要下载哪个文件; 要实现FTP的断点续传,FTP服务器必须支持REST指令,这条指令在FTP协议文本RFC959中就已经定义了,不过它不是FTP服务器必须支持的指令。一般,你可以在下载前使用REST100命令进行实验,如果服务器正常执行了这条命令,说明该服务器支持FTP断点续传。REST后面跟的数表示下载文件的起始位置,而REST0表示从文件最开始处下载。REST 命令本身并不执行下载功能,你仍需要使用RETR命令执行下载工作。 2、向服务器发送“RETR+文件名”命令,通知服务器要下载的文件名,这时服务器开始定位文件指针读文件并发送数据。 3、客户端定位本地文件指针(文件末尾); 4、两端的准备工作都做完了以后,客户端创建socket,以被动或非被动方式建立数据通道,循环调用recv接收数据并追加入本地文件; 二、上传: 1、获取服务器上和本地要上传文件的同名文件大小; 2、向服务器发送“APPE+文件名”,通知服务器,接下来从数据通道发送给你的数据要附加到这个文件末尾。 3、定位本地文件指针(和FTP上文件大小相同的位置) 4、从文件指针处读数据并发送。好了,FTP断点续传的原理就这么简单。代码里将断点上传和断点下载放到同一个函数(MoveFile)里,通过get参数说明是上传还是下载。当然,整个FTP类的实现有800多行,包括登录、退出、获取FTP文件大小、删除FTP服务器上文件、响应服务器,解析响应信息等函数。相应的注释代码里都有,这里就不一一熬述了。 这里重点说说PASV模式,即被动模式,这是FTP命令里比较不容易理解的一个,这条命令请求服务器在某个端口(非FTP默认端口或控制命令端口)创建一个监听socket,服务器创建的端口号会在客户端的控制命令通道上得到响应。得到这个端口号后,客户端就可以创建新的socket(数据通道)connect过去,并进行文件传输等工作。否则,如果为非被动模式,那么监听的socket由客户端创建,服务器connect过来。 对于这条命令的存在我是这么理解的,存在这么一种情况:客户端的IP是个内网的IP, 服务器的IP是个外网的,当进行数据传输时内网的IP对于服务器是不可见的,只有由服务器启动监听socket才能建立数据通道,所以必须以被动模式进行。

相关主题
文本预览
相关文档 最新文档