FileTransferandAccess协议.ppt
,了解常见的两种网络文件访问方式理解FTP协议的基本原理了解FTP命令与应答的结构,熟悉常见的命令与应答了解TFTP与NFS协议,目的在于通过网络存取、共享文件,包括的主要协议有:FTP(File Transfer Protocol,文件传输协议)TFTP(Trivial File Transfer Protocol,简单文件传输协议)NFS(Network File System,网络文件系统)FTP是Internet传统的服务之一,其功能主要是在主机间高速、可靠地传输文件,通常可将网络文件访问方式分为两类:一类主要实现文件的传输功能,通常称为“文件传送”。特点是传输与处理完全分开,可提高在本地进行信息处理的效率。实现协议如FTP另一类则需要实现即时访问(读写)网络上文件的功能,而且能够处理并行访问的情况,通常称为“文件存取”。特点是文件做的修改能够立即生效,即访问远程文件就好像访问本地文件一样。常见的实现有两种:采用专门的数据库服务器或使用NFS。,FTP是在可靠的TCP连接基础上,来实现文件传输服务的最主要的规范,除了最主要的传输功能以外,FTP还提供了以下功能:交互方式:命令行方式或图形用户界面数据表示:允许客户端程序指定传输数据的类型及格式 身份验证:用户访问FTP服务器需要提供经过授权的用户名与密码,以保证数据安全,特殊的匿名访问方式则取消了这种限制,FTP使用客户端服务器模式用户执行FTP程序,客户端程序先与远程服务器建立连接用户登录到远程服务器向远程服务器发出命令服务器在收到命令后就给予响应,并执行正确的命令一个FTP服务器进程可同时为多个客户进程提供服务。FTP的服务器进程由两大部分组成:一个主进程,负责接受新的请求;若干个从属进程,负责处理单个请求。,FTP在工作过程中会建立两种类型的连接:控制连接。传送客户端发出的命令和服务器返回的响应信息,在与服务器建立连接时即创建,在整个会话期间一直续存。数据连接。传输文件、目录等内容。在需要传输数据时创建,数据传输完毕后释放。,FTP模型示意图,数据类型ASCII类型:默认的数据类型,使用NVT ASCII码形式来传输文本文件。EBCDIC类型(扩充的二进制编码的十进制交换码):是一种类似于ASCII的规范,主要在IBM计算机上使用,用于传输文本文件。IMAGE类型:即二进制文件类型,数据打包成8位的传输字节,以连续比特流的方式发送文件,通常用于传输二进制文件。LOCAL类型:本地文件类型,用于不同字长主机间传输二进制文件。,数据结构文件结构:文件由连续的字节流组成,不存在内部结构。记录结构:文件由记录构成。文本文件中的一行为一条记录。页结构:文件由一组独立的、带编号的页组成。,FTP协议规范中规定了三种传输模式 STREAM模式(流模式):文件传输的默认模式,文件以字节流方式传输。文件结构文件,发送方以EOF结束文件传输记录结构文件,使用专门的控制代码来表示文件的结束BLOCK模式(块模式):文件以数据块方式进行传输。每个块带有一个或多个报头COMPRESSED模式(压缩模式):采用全长编码压缩算法,压缩连续出现的字节,FTP协议规范中定义了许多FTP命令,用于登录FTP服务器、设置传输参数、浏览服务上的文件与目录列表、获取服务器上的文件、存储文件到服务器上,并管理服务器与客户端之间文件的传输过程。注意:这里所说的FTP命令,指的是FTP协议中定义的标准FTP命令,要特别注意不能与FTP程序所提供给的用户使用的操作命令混为一谈。,FTP客户端程序,用户,用户操作命令,FTP命令,TCP/IP网络,UNIX下ftp工具提供给用户使用的命令,FTP协议中将标准FTP命令分为三类:存取控制命令传输参数命令FTP服务命令,存取控制命令主要提供了用户身份验证功能和目录切换功能,传输参数命令传输参数设置后一直有效,除非用新的命令改变传输参数,或者新建立了数据连接,FTP服务命令定义了一系列文件传输及文件系统操作相关的命令,这些命令的参数通常是pathname(路径名),路径名的书写必须符合服务器端的规范,FTP服务命令,服务器接收客户端命令并处理之后,会返回给客户端相应的命令响应信息,这种返回响应的方式称作FTP应答FTP应答保证了文件传输过程中请求与行为的同步,并使得用户进程总是能了解服务器的状态每条FTP命令可以产生一条或多条响应,但多数情况下,每条命令只返回一条响应,FTP响应与FTP命令一样,都是在客户端与服务器之间的控制连接上以NVT ASCII码形式传送,并在每行末尾以CR-LF标志行结束FTP响应由一个3位的数字代码(应答码),一个字符串形式的表示命令执行成功与否的文本,以及命令执行成功后的输出组成。FTP响应的格式:为3位数字的应答码表示空格是一行提供给用户阅读的文本信息是行结束符,FTP应答码中第1位和第2位的含义,进行通信时,FTP需要建立两个TCP连接控制连接(端口号默认值为21):用于发送指指令给服务器及接收服务器响应数据连接(端口号默认值为20,仅PORT模式):数据传输的通道FTP协议中规定了两种连接模式PORT(主动模式)PASV(被动模式),PORT(主动)模式数据连接由服务器初始化完成客户端选择一个大于1024的端口连接服务器的21端口需传输数据时,客户端会送出PORT命令告诉服务器连接到自己的某一端口来建立数据连接,同时侦听该端口。比如:PORT 61,144,1,2,4,104 即:IP=61.144.1.2 端口=4*256+104=1128服务器收到PORT命令时,会使用20端口连接客户端在PORT命令中指定的IP地址和端口号,然后传输数据,使用PORT模式的FTP连接示意图,Client,Server,FTP工作过程(实线:控制连接,虚线:数据连接),Client,Server,PASV(被动)模式数据连接由客户端初始化客户端选择一个大于1024的端口连接服务器的21端口需传输数据时,客户端向服务器发送PASV命令,通知服务器自己希望连接到服务器的某一个端口。服务器通过应答码为227的响应返回一个IP地址和端口号,通知客户端可以连接到指定的地址,以进行数据传输。,使用PASV模式的FTP连接示意图,在命令行窗口中输入命令:telnet ftp.cs.cuhk.edu.hk 21然后以匿名方式登录到该服务器。220 ftp.cse.cuhk.edu.hk FTP server(Version make(1)Wed May 25 19:18:53 HKT 2005)ready.USER anonymous331 Guest login ok,send your complete e-mail address as password.,在服务器显示欢迎信息后,输入命令:PASV以进入被动模式。服务器的响应如下:227 Entering Passive Mode(137,189,91,191,123,173)即:服务器在137.189.91.191:31661等待客户端数据连接请求的到达。31661=123*256+173输入以下命令,要求从数据连接上发送服务器当前目录信息:LIST从控制连接上收到信息:150 Opening ASCII mode data connection for/bin/ls.此时服务器进入到等待客户建立数据连接的状态。,在另一个命令行窗口中输入以下命令,与服务器建立数据连接:telnet 31661这时,在窗口中会看到服务器当前目录信息。total 36drwxr-xr-x 14 root daemon 512 Jul 28 2011.drwxr-xr-x 14 root daemon 512 Jul 28 2011.-rw-r-r-1 root daemon 0 Oct 16 2002.notar.(以下省略)目录信息传输完毕后,在控制连接上收到信息:226 Transfer complete.,PORT和PASV的注意事项,所有FTP服务器软件都支持PORT方式。至于PASV方式,大部分FTP服务器软件都支持。支持PASV方式的FTP服务器软件,也可以设置为只工作在PORT方式上。为了PASV方式能正常工作,需要在FTP服务器软件上为PASV方式指定可用的端口范围。此外,还要在服务器的防火墙上打开这些端口。选择用PASV方式还是PORT方式登录FTP服务器,选择权在FTP客户端,而不是在FTP服务器。,PORT和PASV的注意事项,若客户端只有内网IP,没有公网IP,那么,客户端只能使用PASV方式与FTP服务器建立数据连接。极少数的NAT网关也支持内网中的FTP客户端以PORT方式访问服务器。这些NAT网关能够对TCP报文段中封装的应用层数据进行扫描,扫描到 PORT指令后会用自己的IP地址和端口号替换PORT方式的IP地址和端口号。这些网关只扫描目的端口号为21的数据包,如果FTP 服务器不是使用默认的21号端口,内网中的客户端也无法使用PORT方式与服务器建立数据连接。,TFTP是TCP/IP协议族中的一个用于在网络上的计算机之间进行文件传输的协议,提供功能单一、开销不大的文件传输服务。TFTP的主要特征如下:基于UDP协议(用户数据报协议),使用超时重传方式来保证数据的到达只提供文件的上传与下载功能,不提供获取文件和目录列表的功能不提供存取授权与用户认证机制多用于局域网以及远程UNIX计算机中(FTP则多用于互联网中),TFTP报文的封装,5种TFTP报文的格式,TFTP报文的封装,5种TFTP报文的格式,TFTP报文的封装,5种TFTP报文的格式,块号从1开始编码每发送1个数据块,块号增加1,TFTP报文的封装,5种TFTP报文的格式,块号字段用于确认接收到的报文该字段的取值与被确认报文的块号相同。对写请求的确认块为0,TFTP报文的封装,5种TFTP报文的格式,在TFTP中文件传输的过程如下:客户端向服务器的69端口发送一个读请求或者写请求分组,同时建立一个连接,客户端使用的端口是随机产生的。如果服务器同意请求,则连接成功,接着就是文件数据的传输过程。除了最后一个TFTP数据分组,每个数据分组包含固定512字节长度的文件数据在发送下一个数据分组之前,必须得到确认响应,如果未收到确认,则必须一直等待(停止等待方式)如果分组在网络中丢失,发送端在计时器超时之后会重新发送分组如果传输过程中出现错误,就通过差错报文分组来通告错误发生,读取数据时序,写数据时序,TFTP中的Sorcerers Apprentice Bug(魔法师徒弟错误)示意图,NFS(网络文件系统)最初是由Sun Microsystems公司设计开发的,目前已经成为Internet网络上进行分布式访问的一种事实上的标准NFS主要具有以下特点:共享文件访问 信息访问的透明性 简化管理工作 良好的扩展性 可靠性 操作的简易性,RPC(Remote Procedure Call,远程过程调用)和XDR(External Data Representation,外部数据表示)为NFS提供所需的网络连接及解释基于这些连接发送的数据格式RPC运行在OSI模型的会话层,它提供一组过程,使远程计算机系统可像调用本地过程一样调用这些过程XDR运行在OSI模型的表示层,负责在不同的计算机系统间转换RPC数据,FTP是实现文件传输的最基本的应用层协议FTP使用户能在两个联网的计算机之间传输文件,是互联网上文件传输的主要方式FTP提供身份验证服务,用户需要提供有效的用户名与密码,匿名FTP取消了这种限制,允许所有用户访问TFTP是一种很简单的文件传输协议,只提供文件的上传与下载功能,不提供获取文件和目录列表的功能,也不提供用户验证机制TFTP工作在UDP上,用超时重传方式来保证数据的到达利用NFS可以建立一个分布式的文件系统,提供在多机环境中对网络的透明访问。用户可以像存取本地计算机上的文件一样,方便快捷地访问网络上其他计算机中的文件,P119 一;二;三:2、3、4,