当前位置:文档之家› 第09章 文件传输和访问协议

第09章 文件传输和访问协议


… … … …
服务器
收到分组 k 发送 ACK(k)
再次收到分组 k 再次发送 ACK(k) 收到分组 k+1 发送 ACK(k+1)
再次收到分组 k+1 再次发送 ACK(k+1)
9.4 NFS NFS (网络文件系统)最初是由Sun Microsystems公司设计开发的,目前已经成为Internet网络 上进行分布式访问的一种事实上的标准 NFS主要具有以下特点:
IP 报头 UDP 报

5 种 TFTP 报文的格式
IP 数据
报 UDP
数据
报 TFTP 报

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