《第9章 FTP》由会员分享,可在线阅读,更多相关《第9章 FTP(48页珍藏版)》请在金锄头文库上搜索。
1、第9章 FTP (文件传输协议),文件传输协议-FTP,FTP(File Trsnsmission Protocal,文件传输协议),FTP为通过可靠的面向连接的传输协议(如TCP)传输文件提供了一 种方法,其主要功能: - 提供文件的共享 - 支持间接使用远程计算机 - 使用户不因各类主机文件存储器系统的差异而受影响 - 可靠且有效地传输数据,FTP只提供文件传送的一些基本的服务,它使用 TCP 可靠的传输服务。 FTP 的主要功能是减少或消除在不同操作系统下处理文件的不兼容性。 FTP 使用客户-服务器方式。一个 FTP 服务器进程可同时为多个客户进程提供服务。 FTP 的服务器进程由两大
2、部分组成:一个主进程,负责接受新的请求;另外有若干个从属进程,负责处理单个请求。,文件传输协议-FTP,文件传输协议-FTP,承载FTP的以太网帧,主进程的工作步骤如下,打开熟知端口(端口号为 21),使客户进程能够连接上。 等待客户进程发出连接请求。 启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即终止,但从属进程在运行期间根据需要还可能创建其它一些子进程。 回到等待状态,继续接受其他客户进程发来的请求。主进程与从属进程的处理是并发地进行。,两个连接,控制连接在整个会话期间一直保持打开,FTP 客户发出的传送请求通过控制连接发送给服务器端的控制进程,但控制连接不用来
3、传送文件。 实际用于传输文件的是“数据连接”。服务器端的控制进程在接收到 FTP 客户发送来的文件传输请求后就创建“数据传送进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。 数据传送进程实际完成文件的传送,在传送完毕后关闭“数据传送连接”并结束运行。,FTP 使用的两个 TCP 连接,控制进程,数据传送 进程,用户界面,控制进程,数据传送 进程,客户端,服务器端,因特网,控制连接,数据连接,建立双重连接的原因:FTP是一个交互式会话系统,某客户每次调用FTP,便与服务器建立一个会话,会话以控制连接来维持。 客户每提出一个数据传输请求,服务器与客户建立一个数据连接,进行实际的数据(
4、比如文件)传输。一旦数据传输结束,数据连接相继撤消,但控制连接依然存在,客户可以继续发出命令。 客户可以撤消控制连接 Close 命令 Quit 命令,FTP 使用的两个 TCP 连接,文件传输协议FTP,FTP数据连接,三个步骤: (1)客户机使用临时端口发出被动打开,从而启动连接。 (2)客户机将临时端口发送到使用PORT命令的服务器。 (3)服务器接收到这个临时端口后,将使用端口20和客户机提供 的临时端口号发出主动打开。 注意: 在传输文件以前,客户机必须指定它打算传输的文件类型、文件中 数据的结构以及使用的传输模式。,控制连接是建立在用户协议解释器和服务器协议解释器之间用于交换命令与
5、应答的通信链路。FTP仅仅在发送命令并接收应答时使用控制连接。 用户在两台主机间建立控制连接,然后进行数据连接,客户与服务器为每个文件传输建立一个单独的数据连接。 如果用户请求另一个传输,那么客户与服务器将建立一个新的数据连接。为了避免在控制与数据连接之间发生冲突,FTP对于两者使用不同的协议端口号。 FTP协议要求数据传输在处理时打开控制连接。尽管数据连接频繁地出现并消失,但是控制连接却在整个会话中一直保持着。在完成FTP服务后由用户发出中止控制连接命令,FTP 使用的两个 TCP 连接,当客户进程向服务器进程发出建立连接请求时,要寻找连接服务器进程的熟知端口(21),同时还要告诉服务器进程
6、自己的另一个端口号码,用于建立数据传送连接。 接着,服务器进程用自己传送数据的熟知端口(20)与客户进程所提供的端口号码建立数据传送连接。 由于 FTP 使用了两个不同的端口号,所以数据连接与控制连接不会发生混乱。,两个不同的端口号,FTP数据连接 FTP支持两种传输模式: 主动传输模式 (也就是 Active /PORT模式) 被动传输模式 (也就是Passive/PASV模式)。,主动传输模式- port模式,客户端从一个任意的非特权端口N(N1024)连接到FTP服务器的命令端口(即tcp 21端口)。 紧接着客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。
7、 最后服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1),这样客户端就可以和ftp服务器建立数据传输通道了。,FTP主动模式工作过程,当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N 1024和N+1)。第一个端口连接服务器的21端口, 与主动方式的FTP不同,客户端不提交PORT命令,而是提交 PASV命令。 服务器开启一个任意的非特权端口(P 1024),并发送PORT P命令给客户端。 客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。,被动传输模式- pasv模式,打开高端地址,FTP被动模式工作过程,很多防火墙在设置的时候都不允许接受外部
8、发起的连接(出于安全考虑),当FTP客户在防火墙内访问防火墙之外的FTP服务器时,需要使用被动传输模式。(为什么?) 当位于防火墙内的FTP客户与在防火墙外的FTP服务器以主动传输模式工作时候,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。,无法建立数据连接,防火墙,FTP访问,几乎所有的ftp客户端软件都支持主动传输模式和被动传输模式。 特殊的典型例子是IE,IE默认是用PORT方式的。如果要在IE里启用PASV方式,请打开IE,在菜单里选择:工具 Internet选项 高级浏览,在“使用被动ftp ”前面打上钩(需要IE6.0以上才支持)。,FTP被动模式
9、工作过程,FTP传输类型,在传输文件以前,客户机必须指定它打算传输的文件类型、文件中 数据的结构以及使用的传输模式。,- ASCII文件 ASCII文件默认以NVT ASCII形式传输。采用NVT ASCII码传输的 每一行都以一个回车和一个换行符结束。 采用ASCII文件类型传输,必须要求发送方将本地文本文件转换为 NVT ASCII码,而接收方将NVT ASCII码再还原为本地文本文件。 - EBCDIC文件 当两台主机内部使用的都是EBCDIC码时,就可以使用EBCDIC码 之间传输文件,FTP传输类型,- 图像文件(binary) 图像文件是传输连续位流的默认格式,位流在传输时将打包在
10、8位 字节中,因此,目的端必须将数据作为连续位存储。 传输图像文件不需要使用任何类型的代码转换,图像文件类型主要 用于二进制文件的有效存储和检索。,FTP响应命令说明,FTP命令,通常OS提供一个命令行的客户端软件。 连接命令:ftp,FTP登录,一些FTP支持匿名登录,用户名:anonymous 密码是一个邮件地址:IEUser (这是IE登录时用的标准PASS),列目录dir,进入子目录-cd,设置文件的传输格式,可以设成二进制的传输格式,也可以设成是文本传输模式。设成二进制是比较好的选择。 ftp-ascii 或 ftp-binary,下载文件,ftp-get filename 不支持通
11、配符,下载多个文件,ftp-mget 文件列表 列表可以是空格分开的文件或是通配符* ?匹配的当前目录下的文件。,上传文件,Put 与 mput 可以上传一个或多个文件,但是FTP通常不对匿名用户提供上传的权限。,IE的FTP功能,IE除了可以进行HTTP浏览以外,还有一些FTP功能。 在地址栏输入ftp:/220.202.93.10/,是最简单的FTP方式,不用其它软件支持,但是速度慢,没有断点续传功能,文件操作功能弱。只适合数量少,文件小的情况。,IE登录FTP界面介绍,如有密码,可以点右键登录FTP系统,FTP 的屏幕信息举例,01 ftp nic.ddn.mil 02 connecte
12、d to nic.ddn.mil 03 220 nic FTP server (Sunos 4.1)ready. 04 Name: anonymous 05 331 Guest login ok, send ident as password. 06 Password: abcxyz.math.yale.edu 07 230 Guest login ok, access restrictions apply. 08 ftp cd rfc 09 250 CWD command successful. 10 ftp get rfc1261.txt nicinfo 11 200 PORT comma
13、nd successful. 12 150 ASCII data connection for rfc1261.txt (128.36.12.27,1401) (4318 bytes). 13 226 ASCII Transfer complete. local: nicinfo remote: rfc1261.txt 4488 bytes received in 15 seconds (0.3 Kbytes/s). 14 ftp quit 15 221 Goodbye.,FTP 的屏幕信息举例,01 ftp nic.ddn.mil 02 connected to nic.ddn.mil 03
14、 220 nic FTP server (Sunos 4.1)ready. 04 Name: anonymous 05 331 Guest login ok, send ident as password. 06 Password: abcxyz.math.yale.edu 07 230 Guest login ok, access restrictions apply. 08 ftp cd rfc 09 250 CWD command successful. 10 ftp get rfc1261.txt nicinfo 11 200 PORT command successful. 12 1
15、50 ASCII data connection for rfc1261.txt (128.36.12.27,1401) (4318 bytes). 13 226 ASCII Transfer complete. local: nicinfo remote: rfc1261.txt 4488 bytes received in 15 seconds (0.3 Kbytes/s). 14 ftp quit 15 221 Goodbye.,02 本地 FTP 发出的连接成功信息。,FTP 的屏幕信息举例,01 ftp nic.ddn.mil 02 connected to nic.ddn.mil
16、03 220 nic FTP server (Sunos 4.1)ready. 04 Name: anonymous 05 331 Guest login ok, send ident as password. 06 Password: abcxyz.math.yale.edu 07 230 Guest login ok, access restrictions apply. 08 ftp cd rfc 09 250 CWD command successful. 10 ftp get rfc1261.txt nicinfo 11 200 PORT command successful. 12 150 ASCII data connection for rfc1261.txt (128.36.1