FTP

文件传输协议(File Transfer Protocol, FTP)是一个用于在两台装有不同操作系统的机器中传输计算机文件的软件标准。它属于网络协议组的应用层。

一,概述

FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unencode一样。但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间会非常长,并且不时的必需执行一些冗长的登陆进程。

FTP服务一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流,并且是命令通向ftp服务器的进口。当数据通过数据流传输时,控制流处于空闲状态。而当控制流空闲很长时间后,客户端的防火墙会将其会话置为超时,这样当大量数据通过防火墙时,会产生一些问题。此时,虽然文件可以成功的传输,但因为控制会话会被防火墙断开,传输会产生一些错误。

FTP实现的目标:1. 促进文件的共享(计算机程序或数据),2. 鼓励间接或者隐式的使用远程计算机,3. 向用户屏蔽不同主机中各种文件存储系统的细节,4. 可靠和高效的传输数据

缺点:1. 密码和文件内容都使用明文传输,可能产生不希望发生的窃听。,2. 因为必需开放一个随机的端口以建立连接,当防火墙存在时,客户端很难过滤处于主动模式下的FTP流量。这个问题通过使用被动模式的FTP得到了很大解决。,3. 服务器可能会被告知连接一个第三方计算机的保留端口。

FTP虽然可以被终端用户直接使用,但是它是设计成被FTP客户端程序所控制。

运行FTP服务的许多站点都开放匿名服务,在这种设置下,用户不需要帐号就可以登录服务器,默认情况下,匿名用户的用户名是: “anonymous”。这个帐号不需要密码,虽然通常要求输入用户的邮件地址作为认证密码,但这只是一些细节或者此邮件地址根本不被确定,而是依赖于 FTP服务器的配置情况。

二,主动和被动模式

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

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

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

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

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

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

三,FTP和网页浏览器

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

四,文件传输服务(FTP)

我们这里所说的FTP是指一项服务,一项允许我们从一台Internet主机向另一台Internet主机拷贝文件的服务。在讨论FTP时,经常可以听到:下载、上载。所谓“下载”(download)是指从远程计算机拷贝文件至自己的计算机上;“上载” (upload)是指将文件从自己的计算机中拷贝至远程计算机上。在使用FTP程序下载或上载文件时,首先应知道远程主机的地址以及相应的用户名和口令字。这种方法有一个基本限制:要想成功地存取,就必须具有相应的权限。要想同另一台计算机传送文件,就必须具有该计算机的适当授权。这就意味着必须能够注册登录到那一台计算机上,换言之,除非有用户名和口令字,否则便无法传送文件。

匿名FTP采用另外一种机制,用户可通过它连接到远程主机上,并从其下载文件,而无需成为其注册用户。匿名FTP服务器的系统管理员建立了一个特殊的用户名,名为anonymous,经过相应的配置, Internet上任何用户不需要口令字就可使用该用户名,在要求提供用户名时必须输入anonymous,系统还会要求用户键入口令字,此时可输入用户自己的电子邮件地址。

国外著名的大学和公司通常把研究成果、科研论文和实验软件存放在一个匿名文件传输服务器上,该服务器允许用户直接使用 anonymous这个帐号就可以利用FTP下载(DOWNLOAD)软件和各种文件。随着Internet技术的发展,各种交互式的基于客户机/服务器机制的信息服务不断涌现,如:信息鼠Gopher服务,文档查询Archie服务,广域信息服务WAIS服务等。近年来,环球信息网World  Wide Web(WWW)和图形界面的超文本、超媒体浏览器Mosaic、Netscape的出现为Internet的发展打开了一个新纪元。 

FTP服务的实现由FTP客户机和FTP服务器两个方面组成,根据服务开放程度的不同,FTP服务器分为两类:匿名FTP服务器和普通FTP服务器。

注意:在登录匿名FTP服务器时,一般有4种常用方法可以登录:

用户名

密码

Anonymous

Email地址或者直接回车

USER

PASS

FTP

Email地址或者直接回车

Guest

Email地址或者直接回车

在MS-Dos方式下输入:ftp ftp.netscape.com 可以访问Netscape公司的Ftp服务器。

FTP的两种文件传输方式:文本方式和二进制方式.文本方式适合传输普通的文本文件,如果用文本方式传输非文本文件,则得到的文件将不能正确打开,二进制方式可传送输出任何类型的文件,而且比文本方式快.

FTP服务器的使用:FTP服务器的使用方法与硬盘驱动器相似

用FTP下载和上传文件

FTP服务器包含不同种类的文件及数据。下载这些软件时,FTP客户程序会启动Get指令。即可。

用FTP上传文件时,需要一个客户机程序或是一个网络发行程序,还需要一个由FTP服务器管理者颁发的许可证。FTP客户机程序用put命令上传文件。

FTP命令

在windows系统中,我们还需要可以进入MS-DOS方式,用FTP客户机的命令行来上传达室文档。

注意:在FTP状态下键入?可以得到帮助(如下图所示),关于FTP命令的详细使用方法请参考附录一。

http://localhost/dokuwiki/lib/exe/fetch.php?tok=048140&media=http%3A%2F%2Fwww.neptnet.com%2Fstudents_c%2Fciw%2Ffoundations%2Finschool%2Fciwfd02032%2Fjiaoan4%2Fimage%2F1.jpg

参考:

IETE在RFC 0959上定义了此协议的标准,RFC0959文件传输协议。J.Postel, J.Reynolds. 1985.10(格式:文本,147316字节。http://www.ietf.org/rfc/rfc959.txt )。最早的RFC 114和之后的RFC 765已被废除。

中国协议分析网,这里关于FTP的中文协议比较全 http://www.cnpaf.net/class/ftp