起初,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协议不需要端口作为HTTP协议的连接(默认情况下,HTTP端口为80,FTP端口为21)。
FTP协议需要两个端口。
一个端口用作控制连接端口,即FTP的21端口。
它用于向服务器发送命令并等待服务器响应。
另一个端口用于数据传输端口。
端口号为20(仅使用PORT。
模式)是建立数据传输通道。
主要功能是从客户端向服务器发送文件,从服务器向客户端发送文件,并从服务器向客户端发送文件或目录列表。
FTP协议的主要功能是让用户连接到远程计算机(FTP服务器程序在这些计算机上运行)以查看远程计算机上的文件,然后将文件从远程计算机复制到本地计算机,或者将本地计算机的文件发送到远程计算机。
FTP协议可以实现以下目标:1。
可靠,高效的数据传输2.鼓励间接或隐式使用远程计算机3.促进文件共享(计算机程序或数据)4。
保护用户不同的文件存储不同hosts系统的详细信息(文件系统)有两种传输FTP协议的方法:ASCII传输模式和二进制数据传输模式。
1. ASCII传输模式假定用户复制的文件包含简单的ASCII文本。
如果在远程计算机上不运行UNIX,则ftp通常会在传输文件时自动调整文件的内容,以便将文件解释为另一个计算机存储。
文本文件的格式。
但是通常情况下,用户传输的文件不包含文本文件,它们可能是程序,数据库,文字处理文件或压缩文件(尽管文字处理文件主要包含文本,其中也包含指示的页面大小)。
,非打印字符等信息字符)。
在复制任何非文本文件之前,请使用binary命令告诉ftp逐个副本的副本。
不要处理这些文件。
这也是下面的二进制转移。
2.二进制传输模式在二进制传输中,保存文件的位顺序,以便原始和副本一点一点地进行。
即使目标机器上包含位序列的文件没有意义。
例如,Macintosh以二进制模式将可执行文件发送到Windows系统。
在另一个系统上,此文件无法执行。
如果以ASCII模式传输二进制文件,即使不需要它们,它们仍将被翻译。
这将使传输速度变慢,并且还会破坏数据并使文件无法使用。
(在大多数计算机上,ASCII模式通常假定每个字符的第一个有效数字是无意义的,因为ASCII字符组合不使用它。
如果传输二进制文件,所有位都很重要。
)如果你知道这两个字符机器是相同的,二进制模式对文本文件和数据文件都有效。
FTP支持两种操作模式:一种称为标准(即PORT模式,活动模式),另一种称为被动(即PASV,被动模式)。
标准模式FTP客户端将PORT命令发送到FTP服务器。
标准模式FTP客户端首先与FTP服务器的TCP端口21建立连接,并通过该通道发送命令。
当客户端需要接收数据时,它会在此通道上发送PORT命令。
PORT命令包含客户端用于接收数据的端口。
在传输数据时,服务器通过自己的TCP端口20连接到客户端的指定端口以发送数据。
FTP服务器必须与客户端建立新连接以传输数据。
被动模式FTP客户端将PASV命令发送到FTPServer。
建立控制通道时,被动模式类似于标准模式,但是在建立连接后发送Port命令,但是Pasv命令。
FTP服务器收到Pasv命令后,随机打开一个临时端口(也称为自由端口,端口号大于1023且小于65535),并通知客户端在该端口上发送数据请求。
客户端连接到FTP服务器,然后连接到FTP服务器。
数据将通过此端口传输。
此时,FTP服务器不再需要与客户端建立新连接。