CSDN博客

img coolriver

ftp简略翻译

发表于2002/11/18 9:13:00  1589人阅读

                           FTP  工作原理

一:FTP的目标

1)      扩大文件共享;

2)      鼓励对远程计算机的间接使用;

3)      使用户免受不同主机之间不同文件存储系统的困扰;

4)      可靠,高效的数据传输;

二:主要术语

1)  控制连接(control connection :用户和服务器之间的通信路径之一,用于交换命令和响应信息。采用TELNET协议规则。

2)  数据连接(data connection):采用全双工工作模式,以特定的模式和类型传输数据。传输的内容可以是一个文件的一部分,一个完整的文件,或多个文件。传输路径可位于用户_DTP和服务器_DTP之间,或是两个服务器之间。

3)  数据传输进程(data transfer process ):建立,管理数据连接,可以是主动的,也可以是被动的。

4)  响应(reply):由服务器经由控制连接发给用户的响应其FTP命令的确认信息。

响应通常的形式是包括错误代码,文本字符串在内的编码。代码由程序处理,本文信息提供给用户使用。

5)  服务器数据传输进程(server_ DTP) server_DTP通常处于“主动”状态,它在用于侦听的数据端口建立连接。他负责建立用于传输和存储的参数集,并依靠它的协议解释器接收的命令传输数据。

6)  服务器_FTP进程(server_FTP  process):是一个或多个进程,它们执行与用户FTP进程或另一个服务器进程通信的文件传输功能。这些功能包括协议解释和数据传输处理。

7)  服务器-协议解释器(server—protocol interpreterserver_PI):它在端口’L’上侦听来自客户的连接信息并建立控制通信连接。他接收来自用户的标准的FTP命令,发送响应信息,并管理服务器_DTP;

8)  用户_DTPuser_DTP):用户_DTP在数据端口上侦听来自服务器_FTP进程的连接信息。

9)  用户_FTP 进程(user_FTP process):是包括PI, DTP和一个用户接口在内的功能集合,它们共同执行与一个或多个FTP服务器进程进行文件传输的功能。

三:工作模式

1

    用户协议解释器(user_PI) 启动控制连接,控制连接遵守TELNET协议规则,用户初始化好之后,由user_PI生成标准FTP命令,并经控制连接将它传送给服务器,由server_PIuser_PI经控制连接发出对用户命令的响应信息。

FTP命令指定建立数据连接所需的参数,和对文件系统要作的操作。

user__DTP在指定的数据端口进行侦听,服务器启动数据连接和执行指定参数的数据传输。

    其工作原理图如图所示:

 

 

 

Data connection

FTP commands

FTP replies

Server_PI

Server_DTP

文件系统

  user interface

  User

  PI

   User

  DTP

File

System

User

 Server  FTP

User  FTP


 


2

   另一种情况是用户想在两个主机之间传输数据,这两个主机都不是本地的。用户与两个主机建立控制连接,并安排它们之间的数据连接。在这种模式下,控制信息由user_PI发出,但数据在两个server_DTP之间传递。工作原理图如下:

Server_FTP

   “A”

Server_FTP

   “B”

User_FTP

User_PI

Control

Control

Data connection


 



      

命令分类

1)  存取控制命令 access control commands):设置登录帐户和密码,使用权限。

例:USER--- user name ;    PASS—password ;     ACCT ---account; 

CWD---change working directory;  CDUP---change to parent directory

SMNT—structure mount(设置新的传输结构);  REIN---reinitialize(更换登录帐号);      QUIT---logout

2)  设置传输参数命令( transfer  parameter  commands):所有的数据传输参数都有默认值,在想改变默认值时,用这些命令设定自己的值;

例:PORT—data port(改变默认数据端口) ; 

PASV—passive (server_DTP设置为被动状态,使其在数据端口进行侦听数据连接,而不是启动一个数据连接);

TYPE---represention type (设置文件的表示类型);

STRU---file structure(设置文件结构)

 MODE---transfer  mode (设置传输模式)

3)  FTP 服务命令(FTP service commands):定义文件传输和文件系统功能,通常需要的

       参数是路径名(pathname)

      例:RETR—retrieve:该命令使服务器_DTP传输路径名指定的文件副本到数据连接另一端的服务器或用户DTP;

          STOR---store:该命令使服务器DTP接收经数据联接传输过来的数据,并将其作为文件存在服务器上。

          APPE---append ; ALLO—allocate ;  REST---restart(重传)RNFR—rename from;

          RNTO---rename to ; ABOR---abort ;  DELE---delete; REM—remove directory;

          MKD---make directory;PWD---print working directory; LIST—list ;

NLST—name list; SITE---site parameters ; SYST---system; STAT---status;

HELP---help;

  六:传输参数介绍

1:数据类型(data types):用于TYPE命令,即presention type

1)  ASCII 类型;

这是默认的值,所有FTP执行程序必须可接收该值,它一般用于传输文本文件。发送端将数据从内部字符表示类型转换为标准的8NVT-ASCII类型,然后接收端再将它转换为本机内部格式。

2)  EBCDIC 类型:

这种类型适用于在两个都采用EBCDIC作为其内部格式的主机之间的高效传输。在传输过程中,数据使用8位的EBCDIC字符表示。

3)  IMAGE 类型:

采用这种类型时,数据打包成8位传输字节作为连续位进行传送。接收方必须将这些数据作为连续的位进行存储。该类型适用于高效存储,文件恢复和二进制数据传输,推荐这种类型应被所有FTP执行程序接受。

4)  LOCAL类型:

采用这种类型时,数据以指定的逻辑字节大小传输时,必须在第二个参数上指定字节大小。表示字节大小的值必须是十进制整数。逻辑字节大小不一定和传输字节大小相同。当它们不同时,数据将以逻辑字节进行连续打包,而不管传输字节的边界,并在结尾进行必要的填充。

2:数据结构(data structure):用于STRU命令。

   作为表示类型的补充,FTP必须指定文件结构。在FTP中定义有三种文件结构:

1)  file-structure :文件被看作连续的数据字节序列,没有内部结构。

2)  record-structure:文件由连续的记录组成。

3)  page-structure:文件由独立的索引页组成。

3:传输模式(transmission modes):用于MODE命令。

   有三种传输模式:流模式,块模式和压缩模式。所有数据传输必须以EOF结尾,它可以明示或暗示关闭数据联接。

   1):流模式(stream mode)

数据以字节流的形式传送时,对使用的表示类型没有限制,允许文件使用记录结构。如果使用了文件结构,则传输结尾的EOF标示将表示关闭数据联接。

   2):块模式(block mode):

       在该模式下,文件以一系列数据块形式传送,每个数据块都有头字节,头字节可以是一个或多个字节。头字节包括一个值域和描述编码。值域指明该数据块有多少个字节,从而也就表明了下一个数据块的起始位。描述编码定义的内容有:128—数据块的结尾是EORend of record;64--数据块的结尾是EOFend of file;32—数据块中可能有错误的数据;16—数据块是重传标示符。

4)  压缩模式( compressed mode)

该模式有三种传送形式:

 

 


 

如果表示形式是ASCIIEBCDIC码,则填充字节是<SP>即空格。如果是图象类型(image type)或本地类型(local type) 则填充字节是0(零)。

0 0

相关博文

我的热门文章

img
取 消
img