计算机网络 文件传输协议
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• FTP协议要求数据传输在处理时打开控制连
接。尽管数据连接频繁地出现并消失,但是 控制连接却在整个会话中一直保持着。在完 成FTP服务后由用户发出中止控制连接命令。
• 控制连接用NVT ASCII传命令和响应。
• 客户向服务器发出请求命令,形成控制连接。
FTP数据连接
数据连接是传输数据的全双工连接。 1.数据连接机制
FTP支持两种传输模式:
–主动传输模式 (也就是 Active, Standard模式) –被动传输模式 (也就是Passive模式)。
FTP主动传输模式:客户端首先和FTP Server的TCP 21端口建立连接,通过这个通道发送命令。在建立 数据连接时,客户数据传输进程成为连接的接收者, 而服务器数据传输进程成了连接的请求者。
文件传输协议
• 文件是计算机系统中信息存储、处理和传输的主要形 式,大多数计算机系统都支持网络文件访问功能。 对网络文件访问的需求来自四个方面:
– – – – 不同应用程序之间的数据共享; 利用远程存储介质存储后备文件; 无盘站点通过网络访问服务器上的文件信息; 以文件形式进行的数据交换。 远程文件
数据连接 客户
FTP控制连接 • 控制连接是建立在用户协议解释器和服务器协 议解释器之间用于交换命令与应答的通信链路。 FTP仅仅在发送命令并接收应答时使用控制连 接。 • 用户在两台主机间建立控制连接,然后进行数 据连接,客户与服务器为每个文件传输建立一 个单独的数据连接。 • 如果用户请求另一个传输,那么客户与服务器 将建立一个新的数据连接。为了避免在控制与 数据连接之间发生冲突,FTP对于两者使用不 同的协议端口号。
• 建立双重连接的原因:FTP是一个交互式会 话系统,某客户每次调用FTP,便与服务器 建立一个会话,会话以控制连接来维持。
• 客户每提出一个数据传输请求,服务器与客 户建立一个数据连接,进行实际的数据(比如 文件)传输。一旦数据传输结束,数据连接相 继撤消,但控制连接依然存在,客户可以继 续发出命令。 • 客户可以撤消控制连接
命令 PORT<address> PWD QUIT REIN REST<offset> RETR<filename> RMD<directory> RNFR<oldpath> RNTO<newpath> SITE<params> SMNT<pathname> STAT<directory> STOR<filename> STOU<filename> STRU<type> SYST TYPE<datatype> USER<username>
端口号计算
• 在主动模式下,客户用PORT命令通告客户 的数据端口号:PORT(X.X.X.X,m,n) • 是在被动模式下,服务器用227应答PASV 命令,通告服务器的数据端口号: (X.X.X.X,m,n)
• 端口号由两个字节m和n来表示
• 实际端口号= m×256+n
• 在IIS4和IIS5里面端口的范围是1024-5000,但是许 多FTP Server的端口范围达到了1024-65535,如果 IIS也要设置成开放的端口为1024-65535,具体方法 如下: 1. regedt32 2. 找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentContr olSet\Services\Tcpip\Parameters 3. 编辑-添加-数值 Value Name: MaxUserPort Data Type: REG_DWORD Value: 65534
3.FTP的几个概念
1)控制连接是建立在用户协议解释器和服务器协 议解释器之间用于交换命令与应答的通信链路。
客户端
协议解释器PI (控制进程) 控制连接 命令/应答 服务器 协议解释器PI (控制进程)
2)数据连接是传输数据的全双工连接。传输数据可 以发生在服务器数据传输进程DTP和用户DTP之间 也可以发生在两个服务器DTP之间。
客户端
控制连接 数据连接
服务器
FTP被动模式工作过程
发起FTP会话打 开高端端口
要求以被动模式工作 客户 响应中带地址和端口 PASV 227(地址,端口)
打开熟知端口
服务器
控制进程
1442
控制连接
21
控制进程
数据传输进程 1443 打开高端端口 打开高端地址
数据连接
2394
数据传输进程
• 很多防火墙在设置的时候都不允许接受外 部发起的连接(出于安全考虑),当FTP客 户在防火墙内访问防火墙之外的FTP服务器 时,需要使用被动传输模式。(为什么?) • 当位于防火墙内的FTP客户与在防火墙外的 FTP服务器以主动传输模式工作时候,因为 从服务器的TCP 20无法和内部网络的客户 端建立一个新的连接,造成无法工作。
4)数据结构 文件结构(File structure)字节流,无结 构。 记录结构(Record structure )文件被划 分为记录,用于文本文件。 页结构(Page structure )文件被划分为 页,每页有页号和页头。可以进行随机 存取或顺序存取。
5) 传输方式 FTP的传输模式有流模式、块模式和压缩模式: (1) 流模式 数据以字节流的形式传送
描述 中断数据连接程序 系统特权账号 为服务器上的文件存储器分配字节 为服务器上同名文件附加数据 改变到服务器上的父目录 改变服务器上的工作目录 删除服务器上的指定文件 请求帮助信息 列表显示文件或目录 传输模式 在服务器上建立指定目录 列出文件或子目录(不带属性) 获得服务器的确认,了解服务器是否活动 系统登录密码 被动模式,服务器等待数据连接的请求
控制连接 客户端 数据连接 服务器
FTP主动模式工作过程
将端口告诉服务器
打开熟知端口
客户 发起FTP会话 打开高端端口 PORT 1443 1442 控制连接 21 服务器
控制进程
控制进程
数据传输进程 1443 打开高端端口 打开高端地址
数据连接20数据传输程• FTP被动传输模式:当FTP的控制连接建立, 客户提出目录列表、传输文件等请求时, 客户端发送PASV命令使服务器处于被动传 输模式,FTP服务器等待客户与其联系。 FTP服务器打开一个临时端口等待客户端对 其进行连接。 客户端向服务器发起一个用 于数据传输的连接。客户端的连接端口是 发起该数据连接请求时使用的端口。 • 在被动传输模式下,FTP的数据连接和控制 连接方向一致。
返回
FTP命令与响应
1.FTP命令 • FTP命令主要用于控制连接。 • 命令以NVT ASCII码形式传送,要求在每 行结尾都要有CR、LF对。 • 这里的命令是两端控制进程之间的部分 命令,由客户发往服务器。
命令 ABOR ACCT<account> ALLO<bytes> APPE<filename> CDUP CWD<dirpath> DELE<filename> HELP<command> LIST<name> MODE<mode> MKD<directory> NLST<directory> NOOP PASS<password> PASV
控制连接 客户端 防 火 墙 无法建立数据连接 服务器
• 几乎所有的ftp客户端软件都支持主动传输 模式和被动传输模式。特殊的典型例子是 IE,IE默认是用PORT方式的。如果要在 IE里启用PASV方式,请打开IE,在菜单里 选择:工具 → Internet选项 →高级,在 “使用被动ftp ”前面打上钩(需要IE6.0以 上才支持)。
4.FTP的客户—服务器模型 下图表示 FTP客户—服务器模型,客户和服务 器之间利用TCP建立连接。 FTP客户与服务器之间要建立双重连接,一个是 控制连接,一个是数据连接。 控制连接:NVT ASCII 数据连接:文件类型、数据结构、传输方式
端口 21 FTP 服务器 端口 20
控制连接 FTP 客户 数据连接
– Close 命令
– Quit 命令
返回
FTP 进程模型
FTP服务的实现是由一组FTP进程完成的。 服务器FTP进程:由协议解释器PI(控制进程) 和数据传输进程DTP组成。 用户FTP进程:由PI、DTP和用户接口组成。
用户接口 用户
控制进程 文件 系统 数据传输进程 服务器
控制连接
控制进程 数据传输进程 文件 系统
12.5 简单文件传送协议(TFTP) ★
12.6 TFTP报文
TCP/IP文件传输协议(FTP)
1. FTP的特点: – FTP工作在应用层 – 基于的传输协议是TCP – 客户和服务器模式 – 面向连接,可靠。 2.FTP的目标: – 主机之间可靠和高效地传输程序或数据; – 向用户屏蔽不同主机中各种文件存储系统的 细节。
网络文件访问包括两种独立的形式:
•文件传输:本地文件 •文件访问允许多个(远地)程序同时访问单个文件,任何一个 程序都不需要被访问文件的拷贝,直接在原文件上进行操作, 某程序对原文件的修改立即在原文件上表现出来,并为访问 它的其他程序所感知。
文件传输协议
12.1 TCP/IP文件传输协议(FTP)★ 12.2 FTP 进程模型 ★ 12.3 FTP命令与响应 12.4 匿名FTP
2.FTP响应
• 响应都是ASCII码形式的3位数字,响应也是以 NVT ASCII码形式传送,要求在每行结尾都要返回 CR、LF对。 • 响应由服务器发往客户端。 • 第一位=1:服务器动作已开始,在接受新命令前,还 会有响应; • 第一位=2:服务器动作已完成,将接受新命令; • 第一位=3:命令已接受,需要客户端提供进一步的 信息; • 第一位=4:服务器动作未完成,暂时错,发送还 可以重发命令; • 第一位=5:服务器未接受命令, 命令不可重发。
2.数据连接管理 默认数据连接端口:FTP服务器在主动模式下必 须使用默认数据连接端口(20)。 非默认数据端口:在主动模式下,用户PI可以使 用PORT命令指定客户的非默认端口。 在被动模式下,服务器用227应 答通告服务器的非默认端口。 3.数据连接的关闭 关闭连接的条件: – 用户端发送ABORT命令 – 服务器通过EOF终止要求,表示结束发送数据 – 控制连接关闭 – 发生不可恢复错误
客户端 数据传输进程 DTP 数据连接 数据 服务器 数据传输进程 DTP
3)文件类型
(1) ASCII码文件类型(默认选择),以NVT ASCII码形式通过数据连接传输。 (2) EBCDIC文件类型。该文本文件传输方式 要求两端都是EBCDIC系统。
(3) 图像文件类型(也称为二进制文件类型)。 数据发送形式呈现为一个连续的比特流。 ASCII码文件类型和EBCDIC文件类型还要加 上文件是否可打印的属性(Noprint/TELNET)
客户端 控制连接 数据连接 服务器
• 过程:客户在需要进行数据传输时,其数据传 输进程在一个自由端口上发出被动打开,然后 客户在控制连接上通过PORT命令将该自由端 口告诉服务器控制进程,服务器数据传输进程 在端口20上主动打开并与客户数据传输进程 的自由端口建立连接。 • 数据连接机制还包括建立连接选择数据参数。
描述 主动模式,带 IP 地址和两字节的端口 ID 显示当前工作目录 从 FTP 服务器上退出登录 重新初始化 由特定偏移量重启文件传递 从服务器上复制文件到客户端 在服务器上删除指定目录 指定要重命名的路径 重命名为新路径 定义服务器相关的命令 安装文件系统 返回当前文件或目录的状态信息 储存(复制)文件到服务器上 储存文件到服务器上(不覆盖同名文件) 数据结构(F=file,R=record,P=page) 返回服务器使用的操作系统 文 件 类 型 ( A = A S C I I , E = E B C DIC,I=binary) 系统登录的用户名
– 记录结构(EOR,EOF) – 文件结构,接收到的所有数据就是文件内容。(EOF)
(2) 块模式 文件以块形式传送,块带有自己的头部分。头字节 包括16位计数域和8位描述子代码。 (3) 压缩模式 压缩模式中,因为数据是压缩过的,对于增加带宽 有很多好处。
• 块模式头字节的结构
• 描述子代码由在描述子字节中的位标记说明