FTP工做方式

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

 

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

 

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

 

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

 

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

 

  若是你在ASCII方式下传输二进制文件,即便不须要也仍会转译。这会使传输稍微变慢 ,也会损坏数据,使文件变得不能用。(在大多数计算机上,ASCII方式通常假设每一字符的第一有效位无心义,由于ASCII字符组合不使用它。若是你传输二进制文件,全部的位都是重要的。)若是你知道这两台机器是一样的,则二进制方式对文本文件和数据文件都是有效的。操作系统

 

  5. FTP的工做方式orm

 

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

 

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

 

  Port模式FTP 客户端首先和FTP服务器的TCP 21端口创建链接,经过这个通道发送命令,客户端须要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端经过本身的TCP 20端口链接至客户端的指定端口发送数据。 FTP server必须和客户端创建一个新的链接用来传送数据。(能够看到在这种方式下是客户端和服务器创建控制链接,服务器向客户端创建数据链接,其中,客户端的控制链接和数据链接的端口号是大于1024的两个端口号(临时端口),而FTP服务器的数据端口为20,控制端口为21)开发

 

  Passive模式在创建控制通道的时候和Standard模式相似,但创建链接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个临时端口(也叫自由端口,端口号大于1023小于65535)而且通知客户端在这个端口上传送数据的请求,客户端链接FTP服务器此端口,而后FTP服务器将经过这个端口进行数据的传送,这个时候FTP server再也不须要创建一个新的和客户端之间的链接。(能够看到这种状况下的链接都是由客户端向服务器发起的,与下面所说的“为了解决服务器发起到客户的链接的问题,人们开发了一种不一样的FTP链接方式。这就是所谓的被动方式”相对应,而服务器端的数据端口是临时端口,而不是常规的20)

 

  不少防火墙在设置的时候都是不容许接受外部发起的链接的,因此许多位于防火墙后或内网的FTP服务器不支持PASV模式,由于客户端没法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登录FTP服务器,由于从服务器的TCP 20没法和内部网络的客户端创建一个新的链接,形成没法工做。

相关文章
相关标签/搜索