1. FTP传输协议:

  2. 1.介绍:
  3.     FTP的目标:
  4.     1)促进程序、数据文件按的共享;
  5.     2)鼓励使用远程计算机;
  6.     3)使用户不必面对不同主机上不同文件系统的差异;
  7.     4)对数据进行高效可靠的传输
  8.     
  9.     FTP的作用:
  10.         就是让用户连接上一个远程计算机,察看远程计算机有哪些文件,然后把文件从远程计算机山拷贝到本地计算机,或把
  11.         本地计算机的文件送到远程计算机去。
  12. 2.术语:
  13.     1)控制连接:
  14.         用户PI与服务器PI哟很难过来交换命令和响应的信息路径。
  15.     2)数据连接:
  16.         用规定的模式和类型进行数据传输的全双向连接。传输的数据可能是文件的一部分、整个文件或一些文件。传输路径、
  17.         可能是服务器DTP与用户DTP之间或服务器DTP之间。
  18.     3)DTP:
  19.         数据传输过程,用来建立并管理数据连接。DTP可以是被动或主动。
  20.     4)PI:
  21.         协议解析器。用户和服务器用来解析协议,他们的具体实现分别称为用户PI和服务器PI。
  22.     5)服务器DTP:
  23.         数据传输过程,在通常的“主动”状态下是用“监听”的数据端口建立数据连接。它建立传输和存储参数,并在服务器端
  24.         PI的命令下传输数据。服务器端DTP也可以用于“被动”模式,而不是主动在数据端口建立连接。
  25.     6)服务器PI:
  26.         服务器PI在L端口“监听”用户协议解析器的连接请求并建立控制连接。它从用户PI接收标准的FTP命令,发送响应,并管理服务器DTP;
  27.     7)用户DTP:
  28.         数据传输过程在数据端口“监听”服务器FTP过程的连接。如果两个服务器通过它来传输数据。
  29.     8)用户PI:
  30.         用户协议解析器用U端口建立服务器FTP过程的控制连接,并在文件传输时管理用户DTP。
  31.         
  32. 3.FTP模型:
  33.        FTP传输协议-LMLPHP
  34.     上图模型中,控制连接由用户PI发起。首先用户由用户PI产生标准FTP命令通过控制连接传输到服务器过程。标准响应由服务器
  35.     端PI通过数据连接发送到用户PI发送到用户PI作为命令的响应。
  36.     
  37.     FTP命令制定数据连接参数和文件系统操作种类。用户DTP则应在制定的数据接口“监听”,服务器用相应的参数发起数据连接并
  38.     传送数据。而数据接口主机不一定必须与发送FTP命令的主机一致,但用户或用户FTP过程要保证指定的端口处在“监听”下。
  39.     
  40. 4.数据传输功能:
  41.         文件只能通过数据连接传输。控制连接用来发送操作命令以及相应的命令响应。
  42.         4.1 数据类型:
  43.             1) ASCII 类型:
  44.                 缺省类型,必须被所有FTP实现支持。主要用来传输文本文件,除非主机双方认为EBCDIC类型方便。
  45.             2) EBCDIC 类型:
  46.                 这种类型用来在使用EBCDIC编码的主机间高效的传输。
  47.             3) 图像类项:
  48.                 数据以8位连续字节传输。接收端必须讲数据储存为连续位。
  49.                 目的:为了高效的存储和检索文件,以及传输二进制文件。
  50.             4)本地类型:
  51.                 数据以参数Byte size指定的逻辑字节长度传输。字节长度必须是十进制整数,并且没有缺省值。
  52.             5)格式控制:
  53.                 ASCII和EBCDIC 类型也支持第二个可选的参数。这代表了一种纵向的文件格式控制。
  54.             6)非打印
  55.                 一般被用在处理或存储。
  56.             7)TELNET格式控制:
  57.             8)CARRIAGECONTROL
  58.             
  59.         4.2数据结构:
  60.                 由于表示文件类型不同,FTP允许文件具有指定的结构.具有三种结构:
  61.                 
  62.                 1)文件结构:
  63.                     如果没有使用结构命令,我呢就爱你结构就默认使用。
  64.                     在文件结构中没有内部结构,文件被当作连续的字节流。
  65.                 2)记录结构:
  66.                     在记录结构中,问价由连续的记录组成。
  67.                 3)页结构:
  68.                     为了传输不连续的文件,FTP定义了页结构。
  69.         4.3建立数据连接:
  70.                     传输数据的过程包括在指定端口建立数据连接选择传输参数。用户和服务器DTP 都有缺省的端口号。
  71.                 用户过程缺省的数据端口与控制连接端口相同(也就是,端口U)。服务器过程的默认端口与控制连接的端口相邻(也就是L-1)。
  72.                     传输字节长度是8 位字节长。这个字节长度只与实际传输数据有关;而与主机文件系统
  73.                 的数据表示无关。
  74.                     被动数据传输过程(可能是用户DTP 或另一服务器DTP)应该在发送FTP 请求命令之前“监听”在数据端口。
  75.                 FTP 请求命令决定了数据传输方向。服务器在接到传输请求后将建立到指定端口的连接。当连接建立后,
  76.                 数据将在两端DTP 间传输,同时服务器PI 向用户PI 发送确认回复。
  77.                     每个FTP 实现必须支持使用缺省的数据端口,只有用户PI 可以使用变化的非缺省端口。
  78.                     用户可能会用PORT 命令指定一个其他的数据端口。用户可能想将文件下载到TAC 行
  79.                 式打印机或者从第三方主机下载。后种情况下,用户PI 同时建立到两服务器PI 的控制连接。
  80.                 一个服务器(用FTP 命令)等待连接,另一个服务器建立连接。用户PI 给一个服务器PI发送PORT 命令指示另一服务器的数据端口。
  81.                     最后,向两端发送合适的传输命令。
  82.         
  83.         4.4传输模式:
  84.             1)流模式:
  85.                 数据以字节流传输。对表示类型没有限制;
  86.             2)快模式
  87.                 文件以连续的带有数据头的数据块来传输。数据头包括一个计数域和描述码。计数域指示了数据块整个长度,由此可以计算出下一个
  88.                 数据块的开始位置。描述码定义了文件最后一块,记录最后块,重开始标记或怀疑数据。
  89.             3)压缩模式
  90.                 此模式下,有三种信息要发送:常规数据,以字节串发送;压缩数据,包括复本或填充;控制信息,以两字节的转移字符传送。
  91.             
  92.             
  93.         4.5 文件传送功能:
  94.                 从用户PI 到服务器PI 的传输通道是通过一个从用户到标准服务器端口的TCP 连接建
  95.                 立的。用户PI 负责发送FTP 命令并解析接收到的响应;服务器PI 解析命令,发送响应以
  96.                 及控制DTP 建立数据连接并传送数据。如果数据传输(被动传输过程)的另一端是用户DTP,
  97.                 则用户DTP 由用户FTP 主机的内部协议控制;如果另一端是另一个服务器DTP,则这个服
  98.                 务器DTP 由用户PI 通过发送命令来控制。

  99. 5. FTP 命令:
  100.         1)访问控制命令:
  101.             用户名:USER
  102.             密码:    PASS
  103.             账户: ACCT
  104.             改变工作目录: CWD
  105.             返回上层目录: CDUP
  106.             结构装备: SMNT
  107.             重新初始化: REIN
  108.             注销: QUIT
  109.         2)传输参数命令:
  110.             数据端口:PORT
  111.             被动: PASV
  112.             表示类型:TYPE
  113.             文件结构:STRU
  114.                 F- 文件
  115.                 R- 记录结构
  116.                 P-页结构
  117.             传输模式:MODE    
  118.                 S-
  119.                 B-
  120.                 C-压缩
  121.         3)FTP服务命令:
  122.             获得:RETR
  123.             保存:STOR
  124.             唯一保存:STOU
  125.             追加:APPE
  126.             分配:ALLO
  127.             重新开始:REST
  128.             重命名开始:RNFR
  129.             重命名为:RNTO
  130.             放弃:ABOR
  131.             删除:DELE
  132.             删除目录:RMD
  133.             新建目录:MKD
  134.             打印工作目录:PWD
  135.             列表:LIST
  136.             名字列表:NLST
  137.             站点参数:SITE
  138.             系统:SYST
  139.             状态:STAT
  140.             帮助:HELP
  141.             空操作:NOOP
  142. 6.FTP响应:
  143.         FTP 响应由3 位数字组成(以3 个数字字符传递)后面跟着一些文本。3 位数字的每一位都有特定的意义。允许用户进程将复杂的响应简化。
  144.         第一位数字标识了响应是好,坏或者未完成。
  145.         1)响应的第一位数字可能有以下五个值:
  146.             1yz,预备状态
  147.             2yz,完成状态
  148.             3yz,中间状态
  149.             4yz,暂时拒绝状态
  150.             5yz,永久拒绝状态
  151.         2)下面为第二位数字的功能:
  152.             x0z 语法- 这种响应指出了语法错误。给出的命令不存在、没有被实现、或多余。
  153.             x1z 信息- 对于请求信息的响应,比如对状态或帮助的请求。
  154.             x2z 连接- 关于控制连接和数据连接的响应。
  155.             x3z 身份验证和帐户- 对登陆过程和帐户处理的响应。
  156.             x4z 目前还未使用。
  157.             x5z 文件系统- 请求传输时服务器文件系统的状态或其他文件系统动作状态。
  158.         3)第三位数字为第二位数字指定的状态提供了更详细的意义。

  159. 7.最小实现:
  160.             为了让FTP 能够不出错误的工作,服务器必需具备以下最小实现:
  161.             类型- ASCII 非打印
  162.             模式- 流模式
  163.             结构- 文件结构,记录结构
  164.             命令- USER, QUIT, PORT,TYPE, MODE, STRU,相应的默认值,RETR, STOR,NOOP.
  165.             传输参数的默认值为:
  166.             类型- ASCII 非打印
  167.             模式- 流模式
  168.             结构- 文件结构
  169.             所有主机必需接受上面这些标准的默认值。
  170. RFC 959:http://www.ietf.org/rfc/rfc959.txt
    附件:FTP传输协议-LMLPHPRFC959_FTP传输协议(中文版).pdf

01-07 03:12