1、第12章 文件传输协议 文件是计算机系统中信息存储、处理和传输的主要形文件是计算机系统中信息存储、处理和传输的主要形式,大多数计算机系统都支持网络文件访问功能。式,大多数计算机系统都支持网络文件访问功能。对网络文件访问的需求来自四个方面:对网络文件访问的需求来自四个方面: 不同应用程序之间的不同应用程序之间的数据共享数据共享; 利用利用远程存储远程存储介质存储后备文件;介质存储后备文件; 无盘站点无盘站点通过网络访问服务器上的文件信息;通过网络访问服务器上的文件信息; 以文件形式进行的以文件形式进行的数据交换数据交换。 网络文件访问包括网络文件访问包括两种独立的形式两种独立的形式:文件传输:文
2、件传输:本地文件本地文件 远程文件远程文件文件访问文件访问允许多个允许多个(远地远地)程序同时访问单个文件,任何一个程序同时访问单个文件,任何一个程序都不需要被访问文件的拷贝,直接在原文件上进行操作,程序都不需要被访问文件的拷贝,直接在原文件上进行操作,某程序对原文件的修改立即在原文件上表现出来,并为访问某程序对原文件的修改立即在原文件上表现出来,并为访问它的其他程序所感知。它的其他程序所感知。第12章 文件传输协议 12.1 TCP/IP文件传输协议文件传输协议(FTP) 12.2 FTP 进程模型进程模型 12.3 FTP命令与响应命令与响应12.4 匿名匿名FTP 12.5 简单文件传送
3、协议简单文件传送协议(TFTP) 12.6 TFTP报文报文12.1 TCP/IP文件传输协议(文件传输协议(FTP)1. FTP的的特点特点:FTP工作在工作在应用层应用层基于的传输协议是基于的传输协议是TCP客户和服务器客户和服务器模式模式面向面向连接连接,可靠可靠。2FTP的的目标目标:主机之间主机之间可靠和高效地传输程序或数据可靠和高效地传输程序或数据;向用户屏蔽不同主机中各种文件存储系统的向用户屏蔽不同主机中各种文件存储系统的细节细节。 1)控制连接控制连接是建立在用户是建立在用户协议解释器协议解释器和服务器协和服务器协议解释器之间用于议解释器之间用于交换命令与应答交换命令与应答的通
4、信链路。的通信链路。 协议解释器PI(控制进程)客户端控制连接服务器协议解释器PI(控制进程)命令/应答数据传输进程DTP客户端数据连接服务器数据传输进程DTP数据2)数据连接数据连接是传输数据的全双工连接。传输数据可是传输数据的全双工连接。传输数据可以发生在服务器以发生在服务器数据传输进程数据传输进程DTP和用户和用户DTP之间之间也可以发生在两个服务器也可以发生在两个服务器DTP之间。之间。3FTP的几个概念的几个概念3)文件类型)文件类型(1) ASCII码文件类型(默认选择),以码文件类型(默认选择),以NVT ASCII码形式通过数据连接传输。码形式通过数据连接传输。(2) EBCD
5、IC文件类型。该文本文件传输方式文件类型。该文本文件传输方式要求两端都是要求两端都是EBCDIC系统。系统。(3) 图像文件图像文件类型(也称为类型(也称为二进制文件二进制文件类型)。类型)。数据发送形式呈现为一个连续的比特流。数据发送形式呈现为一个连续的比特流。ASCII码文件类型和码文件类型和EBCDIC文件类型还要加文件类型还要加上文件是否上文件是否可打印可打印的的属性属性(Noprint/TELNET)4)数据结构)数据结构文件结构文件结构(File structure)字节流,无结)字节流,无结构。构。记录结构记录结构(Record structure )文件被划)文件被划分为记录,
6、用于文本文件。分为记录,用于文本文件。页结构页结构(Page structure )文件被划分为)文件被划分为页,每页有页号和页头。可以进行随机页,每页有页号和页头。可以进行随机存取或顺序存取。存取或顺序存取。5) 传输方式传输方式 FTP的传输模式有流模式、块模式和压缩模式:的传输模式有流模式、块模式和压缩模式:(1) 流模式流模式 数据以字节流的形式传送数据以字节流的形式传送 记录结构(记录结构(EOR,EOF) 文件结构,接收到的所有数据就是文件内容。(文件结构,接收到的所有数据就是文件内容。(EOF)(2) 块模式块模式 文件以块形式传送,块带有自己的头部分。头字节文件以块形式传送,块
7、带有自己的头部分。头字节包括包括16位计数域和位计数域和8位描述子代码。位描述子代码。(3) 压缩模式压缩模式 压缩模式中,因为数据是压缩过的,对于增加带宽压缩模式中,因为数据是压缩过的,对于增加带宽有很多好处。有很多好处。 块模式头块模式头字节的结构字节的结构 描述子代码描述子代码由在描述子字节中的位标记说明由在描述子字节中的位标记说明 4FTP的客户的客户服务器模型服务器模型 下图表示下图表示 FTP客户客户服务器模型,客户和服服务器模型,客户和服务器之间利用务器之间利用TCP建立连接。建立连接。FTP客户与服务器之间要建立客户与服务器之间要建立双重连接双重连接,一个是,一个是控制连接控制
8、连接,一个是,一个是数据连接数据连接。控制连接:控制连接:NVT ASCII数据连接:文件类型、数据结构数据连接:文件类型、数据结构、传输方式传输方式 F FT TP P 客客户户 F FT TP P 服服务务器器 控控制制连连接接 数数据据连连接接 端端口口 2 21 1 端端口口 2 20 0 建立双重连接的建立双重连接的原因原因:FTP是一个是一个交互式会交互式会话系统话系统,某客户每次调用,某客户每次调用FTP,便与服务器,便与服务器建立一个会话,建立一个会话,会话以控制连接来维持会话以控制连接来维持。 客户每提出一个客户每提出一个数据传输数据传输请求,服务器与客请求,服务器与客户建立
9、一个数据连接,进行实际的数据户建立一个数据连接,进行实际的数据(比如比如文件文件)传输。传输。一旦数据传输结束,数据连接相一旦数据传输结束,数据连接相继撤消,但控制连接依然存在继撤消,但控制连接依然存在,客户可以继,客户可以继续发出命令。续发出命令。 客户可以撤消控制连接客户可以撤消控制连接 Close 命令命令 Quit 命令命令返回返回12.2 FTP 进程模型进程模型 FTP服务的实现是由一组服务的实现是由一组FTP进程完成的。进程完成的。服务器服务器FTP进程:由进程:由协议解释器协议解释器PI(控制进程)(控制进程)和和数据传输进程数据传输进程DTP组成。组成。用户用户FTP进程:由
10、进程:由PI、DTP和和用户接口用户接口组成。组成。 用用户户接接口口 控控制制进进程程 数数据据传传输输进进程程 控控制制进进程程 数数据据传传输输进进程程 文文件件 系系统统 文文件件系系统统 服服务务器器 客客户户 控控制制连连接接 数数据据连连接接 用用户户 12.2.1 FTP控制连接控制连接 控制连接控制连接是建立在用户协议解释器和服务器协是建立在用户协议解释器和服务器协议解释器之间用于交换命令与应答的通信链路。议解释器之间用于交换命令与应答的通信链路。FTP仅仅在仅仅在发送命令并接收应答发送命令并接收应答时使用控制连时使用控制连接。接。 用户在两台主机间建立控制连接,然后进行数用
11、户在两台主机间建立控制连接,然后进行数据连接,客户与服务器据连接,客户与服务器为每个文件传输建立一为每个文件传输建立一个单独的数据连接个单独的数据连接。 如果用户请求另一个传输,那么客户与服务器如果用户请求另一个传输,那么客户与服务器将建立一个新的数据连接。为了避免在控制与将建立一个新的数据连接。为了避免在控制与数据连接之间发生冲突,数据连接之间发生冲突,FTP对于两者对于两者使用不使用不同的协议端口号同的协议端口号。 FTP协议要求数据传输在处理时打开控制连协议要求数据传输在处理时打开控制连接。尽管接。尽管数据连接频繁地出现并消失数据连接频繁地出现并消失,但是,但是控制连接却在控制连接却在整
12、个会话中一直保持整个会话中一直保持着。在完着。在完成成FTP服务后由用户发出中止控制连接命令。服务后由用户发出中止控制连接命令。 控制连接用控制连接用NVT ASCII传命令和响应。传命令和响应。 客户向服务器发出请求命令,形成控制连接客户向服务器发出请求命令,形成控制连接。12.2.2 FTP数据连接数据连接数据连接是传输数据的数据连接是传输数据的全双工全双工连接。连接。1数据连接机制数据连接机制FTP支持支持两种传输模式两种传输模式:主动传输模式主动传输模式 (也就是也就是 Active, Standard模式模式)被动传输模式被动传输模式 (也就是也就是Passive模式模式)。 FTP
13、主动传输模式:主动传输模式:客户端首先和客户端首先和FTP Server的的TCP 21端口建立连接,通过这个通道发送命令。端口建立连接,通过这个通道发送命令。在建立在建立数据连接时,客户数据传输进程成为连接的接收者,数据连接时,客户数据传输进程成为连接的接收者,而服务器数据传输进程成了连接的请求者。而服务器数据传输进程成了连接的请求者。客户端客户端服务器服务器控制连接控制连接数据连接数据连接 过程:客户在需要进行数据传输时,其数据过程:客户在需要进行数据传输时,其数据传输进程在一个自由端口上发出传输进程在一个自由端口上发出被动打开被动打开,然后客户在控制连接上通过然后客户在控制连接上通过PO
14、RT命令命令将该自将该自由端口告诉服务器控制进程,服务器数据传由端口告诉服务器控制进程,服务器数据传输进程在端口输进程在端口20上主动打开并与客户数据传上主动打开并与客户数据传输进程的自由端口建立连接。输进程的自由端口建立连接。 数据连接机制还包括建立连接选择数据参数。数据连接机制还包括建立连接选择数据参数。客户端客户端服务器服务器数据连接数据连接控制连接控制连接20控制连接控制进程数据传输进程客户控制进程数据传输进程服务器1442发起FTP会话打开高端端口21打开熟知端口1443打开高端地址打开高端端口PORT 1443将端口告诉服务器数据连接FTP主动模式工作过程主动模式工作过程 FTP被
15、动传输模式:被动传输模式:当当FTP的控制连接建立,的控制连接建立,客户提出目录列表、传输文件等请求时,客户提出目录列表、传输文件等请求时,客户端发送客户端发送PASV命令使服务器处于被动传命令使服务器处于被动传输模式,输模式,FTP服务器等待客户与其联系。服务器等待客户与其联系。FTP服务器打开一个临时端口等待客户端服务器打开一个临时端口等待客户端对其进行连接。对其进行连接。 客户端向服务器发起一个客户端向服务器发起一个用于数据传输的连接。客户端的连接端口用于数据传输的连接。客户端的连接端口是发起该数据连接请求时使用的端口。是发起该数据连接请求时使用的端口。 在被动传输模式下,在被动传输模式
16、下,FTP的数据连接和控的数据连接和控制连接方向一致。制连接方向一致。客户端客户端服务器服务器控制连接控制连接数据连接数据连接控制连接控制进程客户控制进程服务器1442发起FTP会话打开高端端口21打开熟知端口打开高端地址1443打开高端端口PASV要求以被动模式工作数据连接FTP被动模式工作过程被动模式工作过程2394数据传输进程数据传输进程227(地址,端口)响应中带地址和端口 很多防火墙在设置的时候都不允许接受外很多防火墙在设置的时候都不允许接受外部发起的连接(出于安全考虑)部发起的连接(出于安全考虑),当当FTP客户在防火墙内访问防火墙之外的客户在防火墙内访问防火墙之外的FTP服服务器
17、时,需要使用务器时,需要使用被动传输模式被动传输模式。(。(为什为什么?么?) 当位于当位于防火墙内的防火墙内的FTP客户与在防火墙外客户与在防火墙外的的FTP服务器以主动传输模式工作时候,服务器以主动传输模式工作时候,因为从服务器的因为从服务器的TCP 20无法和内部网络的无法和内部网络的客户端建立一个新的连接,造成无法工作。客户端建立一个新的连接,造成无法工作。 客户端客户端服务器服务器无法建立数据连接无法建立数据连接控制连接控制连接防防火火墙墙 几乎所有的几乎所有的ftp客户端软件都支持主动客户端软件都支持主动传输传输模式和被动传输模式模式和被动传输模式。特殊的典型例子是。特殊的典型例子
18、是IE,IE默认是用默认是用PORT方式的。如果要在方式的。如果要在IE里启用里启用PASV方式,请打开方式,请打开IE,在菜单里,在菜单里选择:工具选择:工具 Internet选项选项 高级,高级,在在“使用被动使用被动ftp ”前面打上钩前面打上钩(需要(需要IE6.0以以上才支持)。上才支持)。 2数据连接管理数据连接管理默认数据连接端口:默认数据连接端口:FTP服务器在主动模式下必服务器在主动模式下必须使用须使用默认数据连接端口(默认数据连接端口(20)。非默认数据端口:在主动模式下,用户非默认数据端口:在主动模式下,用户PI可以可以使使用用PORT命令指定客户的非默认端口。命令指定客
19、户的非默认端口。 在被动模式下,在被动模式下,服务器用服务器用227应答通告服务器的非默认端口应答通告服务器的非默认端口。3数据连接的关闭数据连接的关闭关闭连接的条件关闭连接的条件: 用户端发送用户端发送ABORT命令命令 服务器通过服务器通过EOF终止要求,表示结束发送数据终止要求,表示结束发送数据 控制连接关闭控制连接关闭 发生不可恢复错误发生不可恢复错误12.2.3 端口号计算端口号计算 在主动模式下,客户用在主动模式下,客户用PORT命令通告客户命令通告客户的数据端口号:的数据端口号:PORT(X.X.X.X,m,n) 是在被动模式下,是在被动模式下,服务器用服务器用227应答应答PA
20、SV命令,通告服务器的数据端口命令,通告服务器的数据端口号号: (X.X.X.X,m,n) 端口号由两个字节端口号由两个字节m和和n来表示来表示 实际端口号实际端口号= m256+n 在在IIS4和和IIS5里面端口的范围是里面端口的范围是10245000,但是许,但是许多多FTP Server的端口范围达到了的端口范围达到了102465535,如果,如果IIS也要设置成开放的端口为也要设置成开放的端口为102465535,具体方法,具体方法如下:如下: 1. regedt32 2. 找到找到HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTc
21、pipParameters 3. 编辑添加数值编辑添加数值 Value Name: MaxUserPort Data Type: REG_DWORD Value: 65534 返回返回12.3 FTP命令与响应命令与响应1FTP命令命令 FTP命令主要用于控制连接。命令主要用于控制连接。 命令命令以以NVT ASCII码码形式传送,要求在每形式传送,要求在每行结尾都要有行结尾都要有CR、LF对。对。 这里的命令是两端控制进程之间的部分这里的命令是两端控制进程之间的部分命令,由命令,由客户发往服务器客户发往服务器。命命令令 描描述述 A AB BO OR R 中中断断数数据据连连接接程程序序 A
22、 AC CC CT T 系系统统特特权权账账号号 A AL LL LO O 为为服服务务器器上上的的文文件件存存储储器器分分配配字字节节 A AP PP PE E 为为服服务务器器上上同同名名文文件件附附加加数数据据 C CD DU UP P 改改变变到到服服务务器器上上的的父父目目录录 C CW WD D 改改变变服服务务器器上上的的工工作作目目录录 D DE EL LE E 删删除除服服务务器器上上的的指指定定文文件件 H HE EL LP P 请请求求帮帮助助信信息息 L LI IS ST T 列列表表显显示示文文件件或或目目录录 M MO OD DE E 传传输输模模式式 M MK K
23、D D 在在服服务务器器上上建建立立指指定定目目录录 N NL LS ST T 列列出出文文件件或或子子目目录录(不不带带属属性性) N NO OO OP P 获获得得服服务务器器的的确确认认,了了解解服服务务器器是是否否活活动动 P PA AS SS S 系系统统登登录录密密码码 P PA AS SV V 被被动动模模式式,服服务务器器等等待待数数据据连连接接的的请请求求 命命 令令 描描 述述 P P O O R R T T 主主 动动 模模 式式 , 带带 I I P P 地地 址址 和和 两两 字字 节节 的的 端端 口口 I I D D P P W W D D 显显 示示 当当 前前
24、 工工 作作 目目 录录 Q Q U U I I T T 从从 F F T T P P 服服 务务 器器 上上 退退 出出 登登 录录 R R E E I I N N 重重 新新 初初 始始 化化 R R E E S S T T 由由 特特 定定 偏偏 移移 量量 重重 启启 文文 件件 传传 递递 R R E E T T R R 从从 服服 务务 器器 上上 复复 制制 文文 件件 到到 客客 户户 端端 R R M M D D 在在 服服 务务 器器 上上 删删 除除 指指 定定 目目 录录 R R N N F F R R 指指 定定 要要 重重 命命 名名 的的 路路 径径 R R N
25、N T T O O 重重 命命 名名 为为 新新 路路 径径 S S I I T T E E 定定 义义 服服 务务 器器 相相 关关 的的 命命 令令 S S M M N N T T 安安 装装 文文 件件 系系 统统 S S T T A A T T 返返 回回 当当 前前 文文 件件 或或 目目 录录 的的 状状 态态 信信 息息 S S T T O O R R 储储 存存 ( 复复 制制 ) 文文 件件 到到 服服 务务 器器 上上 S S T T O O U U 储储 存存 文文 件件 到到 服服 务务 器器 上上 ( 不不 覆覆 盖盖 同同 名名 文文 件件 ) S S T T R
26、R U U 数数 据据 结结 构构 ( ( F F = = f f i i l l e e , R R = = r r e e c c o o r r d d , P P = = p p a a g g e e ) ) S S Y Y S S T T 返返 回回 服服 务务 器器 使使 用用 的的 操操 作作 系系 统统 T T Y Y P P E E 文文 件件 类类 型型 ( ( A A = = A A S S C C I I I I , E E = = E E B B C C D DI IC C, I I= =b bi in na ar ry y) ) U U S S E E R R 系
27、系 统统 登登 录录 的的 用用 户户 名名 2FTP响应响应 响应都是响应都是ASCII码形式的码形式的3位数字位数字,响应也是以,响应也是以NVT ASCII码形式传送,要求在每行结尾都要返回码形式传送,要求在每行结尾都要返回CR、LF对。对。 响应由响应由服务器发往客户端服务器发往客户端。 第一位第一位=1:服务器动作已开始:服务器动作已开始,在接受新命令前在接受新命令前,还还会有响应会有响应; 第一位第一位=2:服务器动作已完成:服务器动作已完成,将接受新命令;将接受新命令; 第一位第一位=3:命令已接受:命令已接受,需要客户端提供进一步的需要客户端提供进一步的信息;信息; 第一位第一
28、位=4:服务器动作未完成,暂时错,发送还:服务器动作未完成,暂时错,发送还可以重发命令;可以重发命令; 第一位第一位=5:服务器未接受命令,:服务器未接受命令, 命令不可重发。命令不可重发。响响应应代代码码 解解释释说说明明 响响应应代代码码 解解释释说说明明 1 11 10 0 新新文文件件指指示示器器上上的的重重启启标标记记 3 33 32 2 需需要要帐帐号号名名 1 12 20 0 在在短短时时间间内内服服务务器器准准备备就就绪绪 3 35 50 0 未未决决的的文文件件行行为为 1 12 25 5 数数据据连连接接已已打打开开,在在短短时时间间内内开开始始传传输输 4 42 21 1
29、 关关闭闭服服务务器器 1 15 50 0 文文件件 O OK K,数数据据连连接接将将在在短短时时间间内内打打开开 4 42 25 5 不不能能打打开开数数据据连连接接 2 20 00 0 成成功功 4 42 26 6 结结束束连连接接 2 20 02 2 不不执执行行的的命命令令 4 45 50 0 文文件件不不可可用用 2 21 11 1 系系统统状状态态回回复复 4 45 51 1 本本地地错错误误 2 21 12 2 目目录录状状态态回回复复 4 45 52 2 磁磁盘盘空空间间不不足足 2 21 13 3 文文件件状状态态回回复复 5 50 00 0 无无效效命命令令 2 21 1
30、4 4 帮帮助助信信息息回回复复 5 50 01 1 错错误误参参数数 2 21 15 5 系系统统类类型型回回复复 5 50 02 2 命命令令未未执执行行 2 22 20 0 服服务务器器准准备备就就绪绪 5 50 03 3 错错误误指指令令序序列列 2 22 21 1 服服务务关关闭闭 5 50 04 4 无无效效命命令令参参数数 2 22 25 5 数数据据连连接接打打开开 5 53 30 0 登登录录失失败败 2 22 26 6 数数据据连连接接关关闭闭 5 53 32 2 需需要要存存储储文文件件说说明明 2 22 27 7 进进入入被被动动模模式式(发发送送 I IP P 地地址
31、址、端端口口号号) 5 55 50 0 不不可可用用的的文文件件 2 23 30 0 登登录录成成功功 5 55 51 1 不不知知道道的的页页类类型型 2 25 50 0 完完成成的的文文件件行行为为 5 55 52 2 超超过过了了分分配配的的存存储储空空间间 2 25 57 7 建建立立的的路路径径名名 553 不不允允许许的的文文件件名名 3 33 31 1 用用户户名名有有效效,需需要要密密码码 返回返回12.4 匿名匿名FTP 1.匿名匿名FTP用途用途 从前面的讲解可知,使用从前面的讲解可知,使用FTP时必须首先利时必须首先利用用Telnet协议协议登录登录,获得远程主机相应的权
32、,获得远程主机相应的权限,才能上传或下载文件。限,才能上传或下载文件。 本地主机必需具有用户本地主机必需具有用户ID和口令,获得远地和口令,获得远地计算机的适当授权,否则便无法传送文件。计算机的适当授权,否则便无法传送文件。Internet上的上的FTP主机很多,主机很多,不可能要求每不可能要求每个用户在每一台主机上都拥有帐号个用户在每一台主机上都拥有帐号。 匿名匿名FTP无需本地主机成为远地计算机的注无需本地主机成为远地计算机的注册用户,从而解决了这个问题。册用户,从而解决了这个问题。2. 匿名匿名FTP机制机制 远程主机建立了名为远程主机建立了名为anonymous的用户特殊的用户特殊ID
33、,这样,这样Internet上的任何人在任何地方都可上的任何人在任何地方都可使用该用户使用该用户ID,下载文件,而无需成为其注,下载文件,而无需成为其注册用户。册用户。 匿名匿名FTP主机的连接主机的连接使用方式使用方式同连接普通同连接普通FTP主机的方式差不多,只是在要求提供用户标主机的方式差不多,只是在要求提供用户标识识ID时必须输入时必须输入anonymous,其口令可以是,其口令可以是客户自己喜欢的任意字符串。客户自己喜欢的任意字符串。3. 匿名匿名FTP的使用的使用匿名匿名FTP是是Internet网上网上发布软件发布软件和和其它信息其它信息内容的常用方法。内容的常用方法。4. 匿名
34、匿名FTP的安全的安全 当远程主机提供匿名当远程主机提供匿名FTP服务时,会服务时,会指定某些指定某些目录向公众开放目录向公众开放,允许匿名存取。系统中的,允许匿名存取。系统中的其其余目录则处于隐匿状态余目录则处于隐匿状态。 作为一种安全措施,大多数匿名作为一种安全措施,大多数匿名FTP主机都允主机都允许用户从其下载文件,而许用户从其下载文件,而不允许用户向其上传不允许用户向其上传文件文件。 即使有些匿名即使有些匿名FTP主机确实允许用户上传文件,主机确实允许用户上传文件,用户也只能将文件上传至某一用户也只能将文件上传至某一指定上传目录指定上传目录中。中。 系统管理员会去系统管理员会去检查检查
35、这些上传文件,会将这些这些上传文件,会将这些文件文件移至另一个公共下载目录中移至另一个公共下载目录中,供其他用户,供其他用户下载,同时也保护自己免受病毒破坏。下载,同时也保护自己免受病毒破坏。返回返回12.5 简单文件传送协议(简单文件传送协议(TFTP) 1简单文件传送协议简单文件传送协议TFTP简介简介简单文件传送协议简单文件传送协议TFTP(Trivial File Transfer Protocol)是网络是网络应用程序应用程序,它比,它比FTP简单简单也比也比FTP功能少。功能少。TFTP客户与服务器之间的传输层客户与服务器之间的传输层通信使用的是通信使用的是UDP。(服务器服务器6
36、9号端口号端口) TFTP服务器必须提供一定形式的服务器必须提供一定形式的并发并发。TFTP服服务器通过为每个客户提供一个务器通过为每个客户提供一个新的新的UDP端口端口来来提供并发。提供并发。 TFTP协议协议没有提供安全特性没有提供安全特性,很多安全特性都必很多安全特性都必需由需由TFTP服务器系统管理员来限制客户访问所服务器系统管理员来限制客户访问所指定的文件。指定的文件。 2TFTP的用途的用途 简单文件传送协议的应用包括:简单文件传送协议的应用包括: 1)为无盘工作站下载引导文件,下载初始化为无盘工作站下载引导文件,下载初始化代码代码到打印机、集线器和路由器。到打印机、集线器和路由器
37、。例如存在这样的设备,它拥有一个网络连接例如存在这样的设备,它拥有一个网络连接和小容量的固化了和小容量的固化了TFTP、UDP和和IP的只读存的只读存储器(储器(Read-Only Memory,ROM)。)。加电后,设备执行加电后,设备执行ROM中的代码,在网络上中的代码,在网络上广播一个广播一个TFTP请求。网络上的请求。网络上的TFTP服务器响服务器响应请求包含可执行二进制程序的文件,设备应请求包含可执行二进制程序的文件,设备收到文件后,将它载入内存,然后开始运行收到文件后,将它载入内存,然后开始运行程序。程序。2)路由器的信息设置)路由器的信息设置 路由器可以在指定的路由器可以在指定的
38、TFTP服务器上存储设置服务器上存储设置参数,如果这个路由器瘫痪了,正确的设置信参数,如果这个路由器瘫痪了,正确的设置信息可以从息可以从TFTP服务器上服务器上下载下载到一个到一个修复修复的路的路由器或者一个替代的路由器,这便为路由器提由器或者一个替代的路由器,这便为路由器提供了供了种容错能力。(种容错能力。(备份备份)返回返回12.6 TFTP报文报文 TFTP传输的数据使用固定长度(传输的数据使用固定长度( 512个个字节)的分组报文。如果一个分组报文少字节)的分组报文。如果一个分组报文少于于512字节,表明这是数据传输的字节,表明这是数据传输的最后一最后一个分组报文个分组报文。 当一个数
39、据的分组报文被发送到目标主机当一个数据的分组报文被发送到目标主机之后,数据将在一个之后,数据将在一个缓冲区域内保存缓冲区域内保存直到直到接收到一个接收到一个确认信号确认信号,它表明数据已经被,它表明数据已经被成功地接收了。成功地接收了。 如果超时,发送主机没有接收到确认信号,如果超时,发送主机没有接收到确认信号,则数据分组报文将被则数据分组报文将被重新发送重新发送。TFTP 协议的封装形式和协议的封装形式和五种消息格式五种消息格式: TFTP报文的头两个字节表示报文的头两个字节表示操作码操作码。 文件名文件名指明从指明从TFTP服务器上上传或下载的文件的名服务器上上传或下载的文件的名字,它使用
40、一个可变长的段,字,它使用一个可变长的段,0指明指明文件名结束文件名结束。 模式模式字段是一个字段是一个ASCII码串码串netascii或或octet,同样以,同样以0字节结束。字节结束。 netascii表示数据是以表示数据是以成行的成行的ASCII码字符码字符组成,组成,以两个字节以两个字节回车字符后跟换行字符(称为回车字符后跟换行字符(称为CR/LF)作为行结束符。)作为行结束符。 octet则将数据看作则将数据看作8bit一组的字节流一组的字节流而不作任何而不作任何解释。解释。 TFTP协议的五种消息格式分别是:读请求协议的五种消息格式分别是:读请求(RRQ)、写请求写请求(WRQ)
41、、数据、数据(DATA)、确认、确认(ACK)、出错、出错(ERR)。1)读请求)读请求(RRQ)和写请求和写请求(WRQ)读请求读请求(RRQ)和写请求和写请求(WRQ)都使用相同的格式。操都使用相同的格式。操作码:作码:1为读请求为读请求;2为写请求为写请求。2)数据)数据(DATA) TFTP传输实际数据时,使用传输实际数据时,使用DATA消息格式。操作消息格式。操作码被设置成码被设置成3,表明数据在以,表明数据在以TFTP消息传输。消息传输。 初始初始块号块号被设置成被设置成1,为初始的,为初始的DATA分组报文。每分组报文。每一个附加的分组报文将增加一个附加的分组报文将增加1,直到整
42、个文件传输结,直到整个文件传输结束。束。 数据段可有数据段可有512字节字节长。如果数据段长。如果数据段少于少于512字节字节(0-511),则表明来自文件的最后一个数据块,则表明来自文件的最后一个数据块。如果正好。如果正好是是512字节长,则说明要完成文件的传输必须传送额字节长,则说明要完成文件的传输必须传送额外的外的0长度数据块。长度数据块。3)确认)确认(ACK)ACK确认确认(ACK)分组报文的分组报文的操作码操作码值为值为4。块号块号段包段包含正在被确认的含正在被确认的DATA分组报文的块号。分组报文的块号。如果此确认信号是如果此确认信号是回答一个写请求回答一个写请求的,则这个块号将
43、的,则这个块号将被设置成被设置成0,从而表明数据的传输可以开始。,从而表明数据的传输可以开始。4)出错)出错(ERR)出错出错(ERR)操作码操作码设置为设置为5。出错代码出错代码给出出错类型给出出错类型值。值。出错消息出错消息以以NETASCII格式储存,以一个文本描格式储存,以一个文本描述帮助调试述帮助调试TFTP的差错。出错消息段是的差错。出错消息段是可变长可变长的,的,所以出错消息总是以一个所以出错消息总是以一个“0”来作为结尾来作为结尾标志。标志。出错代码描述:出错代码描述: 代码代码 描述描述 0 0 没有定义的错误,出错信息将提供其他附加信息没有定义的错误,出错信息将提供其他附加
44、信息 1 1 文件没有找到。所给的文件名有误文件没有找到。所给的文件名有误 2 2 访问非法。安全权限不足访问非法。安全权限不足 3 3 磁盘已满或者分区表溢出磁盘已满或者分区表溢出 4 4 非法的非法的 TFTPTFTP 操作操作 5 5 未知未知的传输的传输 ID(ID(端口号端口号) ) 6 6 文件已经存在文件已经存在 7 7 没有这个用户没有这个用户 TFTP与文件传输协议与文件传输协议FTP的比较的比较1TFTP协议的优势协议的优势尽管尽管TFTP比比FTP的功能要弱得多,但是的功能要弱得多,但是TFTP具有具有两个两个优点优点: TFTP能够用于那些有能够用于那些有UDP而无而无
45、TCP的环境。的环境。 TFTP代码所占的内存要比代码所占的内存要比FTP小。小。2TFTP协议与协议与FTP协议的协议的共同点共同点两个协议的作用大致相同,两个协议的作用大致相同,都是用于文件的传输都是用于文件的传输,可以实现网络中两台计算机之间的文件上传与下载。可以实现网络中两台计算机之间的文件上传与下载。可以将可以将TFTP协议看做是协议看做是FTP协议的简化版本。协议的简化版本。3TFTP协议与协议与FTP协议的协议的不同点不同点1)TFTP协议不需要协议不需要认证认证客户端的权限,客户端的权限,FTP需要进行需要进行客户端认证;客户端认证; 2)TFTP协议一般多协议一般多用于用于局
46、域网以及远程局域网以及远程UNIX计算机计算机中,而常见的中,而常见的FTP协议则多用于互联网中。协议则多用于互联网中。 3)TFTP客户与服务器之间的客户与服务器之间的通信通信使用的是使用的是UDP而非而非TCP。 4)TFTP只支持文件只支持文件传输传输。也就是说,。也就是说,TFTP不支持不支持交交互互,而且没有一个庞大的命令集。最为重要的是,而且没有一个庞大的命令集。最为重要的是,TFTP不允许用户列出目录内容不允许用户列出目录内容或者与服务器协商来或者与服务器协商来决定那些可得到的文件名。决定那些可得到的文件名。12.7 构建FTP服务器 搭建搭建FTPFTP服务器的软件有多种,其中
47、较常用的服务器的软件有多种,其中较常用的是是IISIIS中的中的FTPFTP功能与功能与ServServ-U FTP Server-U FTP Server。 IISIIS中的中的FTPFTP功能属于非专业的功能属于非专业的FTPFTP软件,但由软件,但由于它与于它与WindowsWindows集成,所以熟悉的人比较多。集成,所以熟悉的人比较多。 Serv-U 是一个可以运行于是一个可以运行于Windows95/98/2000/ME 和和 Windows NT4.0下的下的FTP服务器程序。用户以各种服务器程序。用户以各种FTP客户端软件(如客户端软件(如CuteFTP、WS_FTP等)上等)
48、上传或下载所需要的文件传或下载所需要的文件。 主动模式-1 主动模式-2 被动模式-1 被动模式-2本章要点本章要点 FTP客户和服务器之间的客户和服务器之间的连接是可靠的连接是可靠的,而且,而且是面向连接,为数据的传输提供了可靠的保是面向连接,为数据的传输提供了可靠的保证。证。 FTP客户与服务器之间要建立双重连接,一个客户与服务器之间要建立双重连接,一个是是控制连接控制连接,一个是,一个是数据连接数据连接。 FTP客户与服务器之间建立数据连接的模式有客户与服务器之间建立数据连接的模式有两种:两种:主动模式主动模式和和被动模式被动模式。 FTP服务的实现由一组服务的实现由一组FTP进程完成。
49、进程完成。服务器服务器FTP进程进程是和用户是和用户FTP进程一起工作的,它由进程一起工作的,它由协议解释器协议解释器PI和数据传输过程和数据传输过程DTP组成。组成。用户用户FTP进程进程则是由则是由PI、DTP和用户接口组成的。和用户接口组成的。 FTP命令和响应命令和响应主要用于控制连接。主要用于控制连接。 远程主机建立了名为远程主机建立了名为anonymous的用户的用户特殊特殊ID,而无需成为其注册用户。,而无需成为其注册用户。 简单文件传送协议简单文件传送协议TFTP是网络是网络应用程序应用程序,它,它比比FTP简单简单也比也比FTP功能少。功能少。 TFTP协议的协议的五种消息五
50、种消息分别是:读请求分别是:读请求(RRQ)、写请求写请求(WRQ)、数据、数据(DATA)、确认、确认(ACK)、出错出错(ERR)。 返回返回习题:习题:12-1 12-1 阐述简单文件传送协议阐述简单文件传送协议TFTPTFTP和文件传和文件传送协议送协议FTPFTP的不同点。的不同点。12-2 12-2 指出文件传送协议指出文件传送协议FTPFTP的文件类型。的文件类型。12-3 12-3 描述描述FTPFTP进程模型的五个进程和两个相进程模型的五个进程和两个相关。关。12-4 12-4 指出指出TFTPTFTP协议的五种消息。协议的五种消息。12-5 FTP12-5 FTP要实现要实