当前位置:文档之家› 文件传输协议

文件传输协议

文件传输协议

从Wikipedia,自由的百科全书

文件传输协议(FTP)是一个标准的网络协议,用来在一个基于TCP的网络从一台主机到另一主机传输文件,如互联网。它经常被用来上传到一个公共的Web 托管服务器的网页和其他文件,由私人发展机。FTP是建立在客户端- 服务器架构,并在客户端和服务器之间使用单独的控制和数据连接。[1]在协议中,FTP 用户可能使用明文自己的身份标志,通常以用户名和密码的形式,但如果服务器被配置为允许匿名也可以连接。为了隐藏(加密)您的用户名和密码,以及加密内容的安全传输,您可以尝试以客户端使用SSH文件传输协议。

第一个FTP客户端应用程序是交互式的命令行工具,执行标准的命令和语法。在今天使用的许多流行的桌面操作系统的图形用户界面的客户,至今已开发包括一般的网页设计方案,如Microsoft Expression Web中,如CuteFTP的专业FTP 客户端。

内容

1协议概述

▪1.1与HTTP的差异

▪1.2通信和数据传输

▪1.3登陆

▪1.4 匿名FTP

▪1.5穿越NAT和防火墙

2 FTPmail

3 Web浏览器支持

▪3.1句法

4 安全

4.1 安全的FTP

4.1.1 FTPS

4.1.2 SFTP

4.1.3 通过SSH到达FTP (不从SFTP)

▪ 5 FTP命令的列表

▪ 6 FTP 回应码

▪7 参见

▪8 参考文献

▪9 进一步阅读

▪10 外部链接

协议概述

与HTTP的区别

FTP运行在OSI模型的应用层,用于使用TCP / IP传输文件。要做到这一点,FTP服务器必须正在运行,并等待传入的请求。然后客户端的计算机能够沟通服务器上的端口21。就此,称为控制连接,在会议期间仍然开放。第二个连接,称为数据连接,可以由服务器从20端口打开谈判的客户端端口(主动模式),或从任意端口到客户谈判的服务器端口(被动模式)传输文件数据。控制连接用于会议管理,示例命令,识别和使用像一个telnet协议的客户端和服务器之间交换的密码。例如“RETR命令名”从服务器到客户端传输指定的文件。由于这两个端口结构,FTP被认为是一个彻头彻尾的带协议,而不是如HTTP协议波段。

通信和数据传输

该协议在RFC959中指定,这里总结。

服务器响应超过三位数的状态代码的ASCII控制连接与可选的文本消息。例如“200”(或“200 OK”)意味着最后一个命令是成功的。数字代表的响应代码,而可选的文本代表一个人可读的解释或要求(如Need帐户的)。通过控制连接发送中断消息,可以中止正在进行传输文件数据的数据连接。

使用端口21开始被动连接的插图

FTP可以运行在主动或被动模式下,它决定了如何建立数据连接。在主动模式下,客户端创建一个TCP控制连接到服务器,把客户端的IP地址和任意一个客户端的端口号发送给服务器,然后等待,直到服务器启动通过TCP数据连接到客户端的IP地址和客户端的端口号。在客户端在防火墙后面,无法接受传入的TCP连接的情况下,可以使用被动模式。在这种模式下,客户端使用控制连接发送PASV命令到服务器,然后接收服务器的IP地址和从服务器的服务器的端口号,然后客户端使用打开数据连接任意客户端端口收到的服务器的IP地址和服务器的端口号。这两种模式在1998年9月进行了更新,以支持IPv6。下面将介绍了当时的被动模式,更新扩展的被动模式。

在网络上传输数据,可用四个数据表示:

▪ASCII mode: 用于文本。数据转换,如果需要的话,在传输之前从发送主机的字符变成“8位ASCII”,(再次,如果有必要)到接收主机的字符表示。

因此,这种模式相比于纯文本数据文件包含不适当的数据。

▪图像模式(一般称二进制模式):发送机发送文件的字节,收件人一旦接受,存储接受的的字节流。(图像模式已建议为实现所有的FTP).

▪EBCDICmode:使用主机之间使用EBCDIC字符集的纯文本。否则这种模式类似于ASCII模式。

▪本地模式:允许两台电脑使用相同的设置发送专有格式的数据,而无需将其转换为ASCII

对于文本文件,可提供不同的格式控制和记录结构选项。这些功能旨在协助包含Telnet或ASA的格式的文件。

数据传输,可以做到在任何三种模式:

▪流模式:数据作为一个连续的数据流发送,减轻FTP做任何处理。相反,所有的处理是留给到TCP。无尾的文件指标是必要的,除非数据被划分成记录。

▪块模式:FTP分解成若干块(块头,字节数,数据字段)的数据,然后传送到TCP。

▪压缩模式:使用一个单一的算法(通常运行长度编码)对数据进行压缩。

登陆

FTP登录使用正常的用户名和密码授权访问方案。使用USER命令发送到服务器,用户名和密码发送PASS命令。如果服务器接受由客户提供的信息,服务器将发送一个问候到客户端,会议将开始。如果服务器支持的话,用户可能会在没有提供登录凭据的情况下登陆进,但服务器可能批准此类会议的机会有限。

匿名FTP

提供FTP服务的主机提供匿名FTP访问。在提示用户名时,用户通常以“无名氏”(在一些FTP服务器小写和大小写是敏感)帐户登录进入服务。虽然用户通常被要求发送他们的电子邮件地址代替密码,但实际执行上所提供的数据没有验证。许多以提供软件更新为目的的FTP主机将提供匿名登录。

穿越NAT和防火墙

当FTP服务器连接到客户端,由客户端发送PORT命令后正常传输数据。这是NAT和防火墙,不允许从Internet对内部主机的连接问题。对于NAT,是一个额外的并发症,在PORT命令中的IP地址和端口号的代表性,是指内部主机的IP地址和端口,而不是公共的IP地址和端口的NAT。

对这个问题有两种方法。一个是FTP客户端和FTP服务器使用PASV命令,这将构成从FTP客户端向服务器建立数据连接。这被广泛用于现代的FTP客户端。另一种方法是为NAT的PORT命令改变的价值观,为此目的而使用应用级网关。

FTPmail

FTP访问受到限制时,一个ftpmail服务可以用来规避问题。ftpmail服务器,解析传入的电子邮件发送到列印电子邮件包含要执行的FTP命令,执行请求的FTP命令,并传回任何下载的文件作为附件的电子邮件。

这个服务不如FTP客户端灵活,因为它不可能交互式的查看目录或发出任何修改命令。此外,也有邮件服务器的大文件附件通过不了的问题。在未来的日子,当一些用户的唯一的互联网接入是通过BBS或在线服务,如网关通过电子邮件服务。这时,因为大多数互联网用户随时访问到FTP,此过程将不再广泛使用。Web浏览器支持

最常见的网页浏览器可以检索FTP服务器上的文件,虽然他们可能不支持FTPS 协议,如扩展。当提供的FTP的URL而非HTTP的URL时,访问远程服务器上的内容的方式类似于访问其他Web内容。一个全功能的FTP客户端可以以一种称作FireFTP的扩展形式运行在Firefox上。

句法

FTP URL语法描述在RFC1738中,采取的形式:

ftp://[[:]@][:]/[13](The bracketed parts are optional.) For example:

ftp:///mydirectory/myfile.txt

or:

ftp://user001:secretpassword@/mydirectory/myfile.txt

更多指定的用户名和密码的详细资料,可在浏览器的文档中找到,例如,Firefox

相关主题