FTP模型:
FTP模型上图模型中,控制连接由用户PI发起。首先用户由用户PI产生标准FTP命令通过控制连接传输到服务器过程。标准响应由服务器端PI通过数据连接发送到用户PI发送到用户PI作为命令的响应。FTP命令制定数据连接参数和文件系统操作种类。用户DTP则应在制定的数据接口“监听”,服务器用相应的参数发起数据连接并传送数据。而数据接口主机不一定必须与发送FTP命令的主机一致,但用户或用户FTP过程要保证指定的端口处在“监听”下。数据传输功能:文件只能通过数据连接传输。控制连接用来发送操作命令以及相应的命令响应。4.1 数据类型:1) ASCII 类型:缺省类型,必须被所有FTP实现支持。主要用来传输文本文件,除非主机双方认为EBCDIC类型方便。2) EBCDIC 类型:这种类型用来在使用EBCDIC编码的主机间高效的传输。3) 图像类项:数据以8位连续字节传输。接收端必须讲数据储存为连续位。目的:为了高效的存储和检索文件,以及传输二进制文件。4)本地类型:数据以参数Byte size指定的逻辑字节长度传输。字节长度必须是十进制整数,并且没有缺省值。5)格式控制:ASCII和EBCDIC 类型也支持第二个可选的参数。这代表了一种纵向的文件格式控制。6)非打印一般被用在处理或存储。7)TELNET格式控制:8)CARRIAGECONTROL数据结构:由于表示文件类型不同,FTP允许文件具有指定的结构.具有三种结构:1)文件结构:如果没有使用结构命令,我呢就爱你结构就默认使用。在文件结构中没有内部结构,文件被当作连续的字节流。2)记录结构:在记录结构中,问价由连续的记录组成。3)页结构:为了传输不连续的文件,FTP定义了页结构。建立数据连接:传输数据的过程包括在指定端口建立数据连接选择传输参数。用户和服务器DTP 都有缺省的端口号。用户过程缺省的数据端口与控制连接端口相同(也就是,端口U)。服务器过程的默认端口与控制连接的端口相邻(也就是L-1)。传输字节长度是8 位字节长。这个字节长度只与实际传输数据有关;而与主机文件系统的数据表示无关。被动数据传输过程(可能是用户DTP 或另一服务器DTP)应该在发送FTP 请求命令之前“监听”在数据端口。FTP 请求命令决定了数据传输方向。服务器在接到传输请求后将建立到指定端口的连接。当连接建立后,数据将在两端DTP 间传输,同时服务器PI 向用户PI 发送确认回复。每个FTP 实现必须支持使用缺省的数据端口,只有用户PI 可以使用变化的非缺省端口。用户可能会用PORT 命令指定一个其他的数据端口。用户可能想将文件下载到TAC 行式打印机或者从第三方主机下载。后种情况下,用户PI 同时建立到两服务器PI 的控制连接。一个服务器(用FTP 命令)等待连接,另一个服务器建立连接。用户PI 给一个服务器PI发送PORT 命令指示另一服务器的数据端口。最后,向两端发送合适的传输命令。传输模式:1)流模式:数据以字节流传输。对表示类型没有限制;2)快模式文件以连续的带有数据头的数据块来传输。数据头包括一个计数域和描述码。计数域指示了数据块整个长度,由此可以计算出下一个数据块的开始位置。描述码定义了文件最后一块,记录最后块,重开始标记或怀疑数据。3)压缩模式此模式下,有三种信息要发送:常规数据,以字节串发送;压缩数据,包括复本或填充;控制信息,以两字节的转移字符传送。文件传送功能:从用户PI 到服务器PI 的传输通道是通过一个从用户到标准服务器端口的TCP 连接建立的。用户PI 负责发送FTP 命令并解析接收到的响应;服务器PI 解析命令,发送响应以及控制DTP 建立数据连接并传送数据。如果数据传输(被动传输过程)的另一端是用户DTP,则用户DTP 由用户FTP 主机的内部协议控制;如果另一端是另一个服务器DTP,则这个服务器DTP 由用户PI 通过发送命令来控制。FTP 命令:1)访问控制命令:用户名:USER密码: PASS账户: ACCT改变工作目录: CWD返回上层目录: CDUP结构装备: SMNT重新初始化: REIN注销: QUIT2)传输参数命令:数据端口:PORT被动: PASV表示类型:TYPE文件结构:STRUF- 文件R- 记录结构P-页结构传输模式:MODES-流B-块C-压缩3)FTP服务命令:获得:RETR保存:STOR唯一保存:STOU追加:APPE分配:ALLO重新开始:REST重命名开始:RNFR重命名为:RNTO放弃:ABOR删除:DELE删除目录:RMD新建目录:MKD打印工作目录:PWD列表:LIST名字列表:NLST站点参数:SITE系统:SYST状态:STAT帮助:HELP空操作:NOOPFTP响应:FTP 响应由3 位数字组成(以3 个数字字符传递)后面跟着一些文本。3 位数字的每一位都有特定的意义。允许用户进程将复杂的响应简化。第一位数字标识了响应是好,坏或者未完成。1)响应的第一位数字可能有以下五个值:1yz,预备状态2yz,完成状态3yz,中间状态4yz,暂时拒绝状态5yz,永久拒绝状态2)下面为第二位数字的功能:x0z 语法- 这种响应指出了语法错误。给出的命令不存在、没有被实现、或多余。x1z 信息- 对于请求信息的响应,比如对状态或帮助的请求。x2z 连接- 关于控制连接和数据连接的响应。x3z 身份验证和帐户- 对登陆过程和帐户处理的响应。x4z 目前还未使用。x5z 文件系统- 请求传输时服务器文件系统的状态或其他文件系统动作状态。3)第三位数字为第二位数字指定的状态提供了更详细的意义。最小实现:为了让FTP 能够不出错误的工作,服务器必需具备以下最小实现:类型- ASCII 非打印模式- 流模式结构- 文件结构,记录结构命令- USER, QUIT, PORT,TYPE, MODE, STRU,相应的默认值,RETR, STOR,NOOP.传输参数的默认值为:类型- ASCII 非打印模式- 流模式结构- 文件结构所有主机必需接受上面这些标准的默认值。