420 likes | 740 Views
第 9 章 文件传输和访问协议. 主讲人:刘正华. 了解 FTP 命令与应答的结构,熟悉常见的命令与应答. 3. 理解 FTP 协议的基本原理. 2. 了解常见的两种网络文件访问方式. 1. 4. 了解 TFTP 与 NFS 协议. 本章学习目标. 文件传输与存取协议. 目的在于通过网络存取、共享文件,包括的主要协议有: FTP (File Transfer Protocol ,文件传输协议 ) TFTP (Trivial File Transfer Protocol ,简单文件传输协议 )
E N D
第9章 文件传输和访问协议 主讲人:刘正华
了解FTP命令与应答的结构,熟悉常见的命令与应答了解FTP命令与应答的结构,熟悉常见的命令与应答 3 理解FTP协议的基本原理 2 了解常见的两种网络文件访问方式 1 4 了解TFTP与NFS协议 本章学习目标
文件传输与存取协议 • 目的在于通过网络存取、共享文件,包括的主要协议有: • FTP (File Transfer Protocol,文件传输协议) • TFTP (Trivial File Transfer Protocol,简单文件传输协议) • NFS (Network File System,网络文件系统)
文件传输与存取协议 • FTP是Internet传统的服务之一,其功能主要是在主机间高速、可靠地传输文件
9.1 文件传输与访问 • 通常可将网络文件访问方式分为两类: • 一类主要实现文件的传输功能,通常称为“文件传送” 。特点是传输与处理完全分开,可提高在本地进行信息处理的效率。实现协议如FTP
9.1 文件传输与访问 • 另一类则需要实现即时访问(读写)网络上文件的功能 ,而且能够处理并行访问的情况,通常称为“文件存取” 。 特点是文件做的修改能够立即生效,即访问远程文件就好像访问本地文件一样。常见的实现有两种:采用专门的数据库服务器或使用NFS。
9.2 FTP协议 • FTP是用于实现文件传输服务的最主要的规范,除了最主要的传输功能以外,FTP还提供了以下功能: • 交互方式:命令行方式或图形用户界面 • 数据表示:允许客户端程序指定传输数据的类型及格式 • 身份验证:用户访问FTP服务器需要提供经过授权的用户名与密码,以保证数据安全,特殊的匿名访问方式则取消了这种限制
9.2.1 FTP的工作原理 • FTP使用客户端–服务器模式,用户执行FTP程序,客户端程序先与远程服务器建立连接,用户登录到远程服务器后,向远程服务器发出传输命令,服务器在收到命令后就给予响应,并执行正确的命令 • FTP会建立两种类型的连接:控制连接与数据连接。控制连接传送客户端发出的命令和服务器返回的响应信息,数据连接则负责传输文件的内容
FTP模型示意图 9.2.1 FTP的工作原理
9.2.2 FTP的数据表示与传输模式 • 数据表示包括数据类型和文件结构两个方面
9.2.2 FTP的数据表示与传输模式 • 数据类型 • ASCII类型 • EBCDIC类型 • IMAGE类型 • LOCAL类型
9.2.2 FTP的数据表示与传输模式 • 数据结构 • 文件结构 • 记录结构 • 页结构
9.2.2 FTP的数据表示与传输模式 • FTP协议规范中规定了三种传输模式 • STREAM模式(流模式) • BLOCK模式(块模式) • COMPRESSED模式(压缩模式)
9.2.3 FTP命令 • FTP协议规范中定义了许多FTP命令,用于登录FTP服务器、设置传输参数、浏览服务上的文件与目录列表、获取服务器上的文件、存储文件到服务器上,并管理服务器与客户端之间文件的传输过程。 • 这里所说的FTP命令,指的是FTP协议中定义的标准FTP命令,要特别注意不能与FTP程序所提供给的用户使用的操作命令混为一谈。
UNIX下ftp工具提供给用户使用的命令(例子) 9.2.3 FTP命令
9.2.3 FTP命令 • FTP协议中将标准FTP命令分为三类: • 存取控制命令 • 传输参数命令 • FTP服务命令
9.2.3 FTP命令 • 存取控制命令 主要提供了用户身份验证功能和目录切换功能 常用FTP命令(1) 存取控制命令
9.2.3 FTP命令 • 传输参数命令 传输参数设置后一直有效,除非用新的命令改变传输参数,或者新建立了数据连接 常用FTP命令(2) 传输参数命令
9.2.3 FTP命令 • FTP服务命令 定义了一系列文件传输及文件系统操作相关的命令,这些命令的参数通常是pathname(路径名),路径名的书写必须符合服务器端的规范
9.2.4 FTP应答 • 服务器接收客户端命令并处理之后,会返回给客户端相应的命令响应信息,这种返回响应的方式称作FTP应答 • FTP应答保证了文件传输过程中请求与行为的同步,并使得用户进程总是能了解服务器的状态
9.2.4 FTP应答 • 每条FTP命令可以产生一条或多条响应,但多数情况下,每条命令只返回一条响应
9.2.4 FTP应答 • FTP响应与FTP命令一样,都是在客户端与服务器之间的控制连接上以NVT ASCII码形式传送,并在每行末尾以CR-LF标志行结束 • FTP响应由一个3位的数字代码(应答码),一个字符串形式的表示命令执行成功与否的文本,以及命令执行成功后的输出组成。
9.2.4 FTP应答 • FTP响应的格式:<3-digit code><SP><one line of text><CR-LF> • <3-digit code>为3位数字的应答码 • <SP>表示空格 • <one line of text>是一行提供给用户阅读的文本信息 • <CR-LF>是行结束符
9.2.4 FTP应答 FTP应答码中第1位和第2位的含义
9.2.5 FTP连接管理 • 进行通信时,FTP需要建立两个TCP连接 • 控制连接(端口号默认值为21):用于发送指指令给服务器及接收服务器响应 • 数据连接(端口号默认值为20,仅PORT模式):数据传输的通道 • FTP协议中规定了两种连接模式 • PORT(主动模式) • PASV(被动模式)
PORT模式 • 数据连接由服务器初始化完成 • 客户端选择一个大于1024的端口连接服务器的21端口 • 需传输数据时,客户端会送出PORT命令告诉服务器连接到自己的某一端口来建立数据连接,同时侦听该端口 • 服务器收到PORT命令时,会使用20端口连接客户端在PORT命令中指定的端口号,然后传输数据
使用PORT模式的FTP连接示意图 PORT模式
PASV模式 • 数据连接由客户端初始化 • 客户端选择一个大于1024的端口连接服务器的21端口 • 需传输数据时,客户端向服务器发送PASV命令,通知服务器自己希望连接到服务器的某一个端口 • 如果服务器上这个端口是空闲可用的,则服务器返回ACK作为确认信息,然后返回用户所需的信息;若端口已被占用,服务器会返回UNACK的信息,FTP客户端会再次发送PASV命令重复上述过程
使用PASV模式的FTP连接示意图 PASV模式
9.3 TFTP • TFTP是TCP/IP协议族中的一个用于在网络上的计算机之间进行文件传输的协议,提供功能单一、开销不大的文件传输服务。
9.3 TFTP • TFTP的主要特征如下: • 基于UDP协议(用户数据报协议),使用超时重传方式来保证数据的到达 • 只提供文件的上传与下载功能,不提供获取文件和目录列表的功能 • 不提供存取授权与用户认证机制 • 多用于局域网以及远程UNIX计算机中(FTP则多用于互联网中)
9.3.1 TFTP协议 ←TFTP报文的封装 5种TFTP报文的格式 →
9.3.1 TFTP协议 • 在TFTP中文件传输的过程如下:客户端向服务器的69端口发送一个读请求或者写请求分组,同时建立一个连接,客户端使用的端口是随机产生的。如果服务器同意请求,则连接成功,接着就是文件数据的传输过程。 • 除了最后一个TFTP数据分组,每个数据分组包含固定512字节长度的文件数据
9.3.1 TFTP协议 • 在发送下一个数据分组之前,必须得到确认响应,如果未收到确认,则必须一直等待(停止等待方式) • 如果分组在网络中丢失,接收端在计时器超时之后会重新发送分组 • 如果传输过程中出现错误,就通过差错报文分组来通告错误发生
TFTP中的Sorcerer’s Apprentice Bug示意图 9.3.2 TFTP规范中的问题
9.4 NFS • NFS (网络文件系统)最初是由Sun Microsystems公司设计开发的,目前已经成为Internet网络上进行分布式访问的一种事实上的标准 • NFS主要具有以下特点: • 共享文件访问 • 信息访问的透明性 • 简化管理工作 • 良好的扩展性 • 可靠性 • 操作的简易性
9.4 NFS • RPC(Remote Procedure Call,远程过程调用)和XDR(External Data Representation,外部数据表示)为NFS提供所需的网络连接及解释基于这些连接发送的数据格式
9.4 NFS • RPC运行在OSI模型的会话层,它提供一组过程库,使远程计算机系统可像调用本地过程一样调用这些过程,无需了解于远程系统的底层细节,才使得NFS与平台无关。 • XDR运行在OSI模型的表示层,负责在不同的计算机系统间转换RPC数据,XDR设计了一种标准的数据表示,使得所有计算机均可理解
小结 • FTP是实现文件传输的最基本的应用层协议 • FTP使用户能在两个联网的计算机之间传输文件,是互联网上文件传输的主要方式 • FTP提供身份验证服务,用户需要提供有效的用户名与密码,匿名FTP取消了这种限制,允许所有用户访问
小结 • TFTP是一种很简单的文件传输协议,只提供文件的上传与下载功能,不提供获取文件和目录列表的功能,也不提供用户验证机制 • TFTP工作在UDP上,用超时重传方式来保证数据的到达 • 利用NFS可以建立一个分布式的文件系统,提供在多机环境中对网络的透明访问。用户可以像存取本地计算机上的文件一样,方便快捷地访问网络上其他计算机中的文件