FileTransferandAccess协议

上传人:pu****.1 文档编号:588807718 上传时间:2024-09-09 格式:PPT 页数:48 大小:1.38MB
返回 下载 相关 举报
FileTransferandAccess协议_第1页
第1页 / 共48页
FileTransferandAccess协议_第2页
第2页 / 共48页
FileTransferandAccess协议_第3页
第3页 / 共48页
FileTransferandAccess协议_第4页
第4页 / 共48页
FileTransferandAccess协议_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《FileTransferandAccess协议》由会员分享,可在线阅读,更多相关《FileTransferandAccess协议(48页珍藏版)》请在金锄头文库上搜索。

1、n了解常见的两种网络文件访问方式n理解FTP协议的基本原理n了解FTP命令与应答的结构,熟悉常见的命令与应答n了解TFTP与NFS协议n目的在于通过网络存取、共享文件,包括的主要协议有:nFTP (File Transfer Protocol,文件传输协议)nTFTP (Trivial File Transfer Protocol,简单文件传输协议)nNFS (Network File System,网络文件系统)nFTP是Internet传统的服务之一,其功能主要是在主机间高速、可靠地传输文件 n通常可将网络文件访问方式分为两类:n一类主要实现文件的传输功能,通常称为“文件传送” 。特点是传

2、输与处理完全分开,可提高在本地进行信息处理的效率。实现协议如FTPn另一类则需要实现即时访问(读写)网络上文件的功能 ,而且能够处理并行访问的情况,通常称为“文件存取” 。 特点是文件做的修改能够立即生效,即访问远程文件就好像访问本地文件一样。常见的实现有两种:采用专门的数据库服务器或使用NFS。nFTP是在可靠的TCP连接基础上,来实现文件传输服务的最主要的规范,除了最主要的传输功能以外,FTP还提供了以下功能:n交互方式交互方式:命令行方式或图形用户界面n数据表示数据表示:允许客户端程序指定传输数据的类型及格式 n身份验证身份验证:用户访问FTP服务器需要提供经过授权的用户名与密码,以保证

3、数据安全,特殊的匿名访问方式则取消了这种限制nFTP使用客户端服务器模式n用户执行FTP程序,客户端程序先与远程服务器建立连接n用户登录到远程服务器n向远程服务器发出命令n服务器在收到命令后就给予响应,并执行正确的命令n一个FTP服务器进程可同时为多个客户进程提供服务。FTP的服务器进程由两大部分组成:n一个主进程,负责接受新的请求;n若干个从属进程,负责处理单个请求。nFTP在工作过程中会建立两种类型的连接:n控制连接。传送客户端发出的命令和服务器返回的响应信息,在与服务器建立连接时即创建,在整个会话期间一直续存。n数据连接。传输文件、目录等内容。在需要传输数据时创建,数据传输完毕后释放。F

4、TP模型示意图 n数据类型nASCII类型:默认的数据类型,使用NVT ASCII码形式来传输文本文件。nEBCDIC类型(扩充的二进制编码的十进制交换码):是一种类似于ASCII的规范,主要在IBM计算机上使用,用于传输文本文件。nIMAGE类型:即二进制文件类型,数据打包成8位的传输字节,以连续比特流的方式发送文件,通常用于传输二进制文件。nLOCAL类型:本地文件类型,用于不同字长主机间传输二进制文件。n数据结构n文件结构:文件由连续的字节流组成,不存在内部结构。n记录结构:文件由记录构成。文本文件中的一行为一条记录。n页结构:文件由一组独立的、带编号的页组成。nFTP协议规范中规定了三

5、种传输模式 nSTREAM模式(流模式):文件传输的默认模式,文件以字节流方式传输。n文件结构文件,发送方以EOF结束文件传输n记录结构文件,使用专门的控制代码来表示文件的结束nBLOCK模式(块模式):文件以数据块方式进行传输。每个块带有一个或多个报头nCOMPRESSED模式(压缩模式):采用全长编码压缩算法,压缩连续出现的字节nFTP协议规范中定义了许多FTP命令,用于登录FTP服务器、设置传输参数、浏览服务上的文件与目录列表、获取服务器上的文件、存储文件到服务器上,并管理服务器与客户端之间文件的传输过程。n注意:这里所说的FTP命令,指的是FTP协议中定义的标准FTP命令,要特别注意不

6、能与FTP程序所提供给的用户使用的操作命令混为一谈。FTP客户端程序客户端程序用户用户用户操作用户操作命令命令FTP命令命令TCP/IP网网络络UNIX下ftp工具提供给用户使用的命令nFTP协议中将标准FTP命令分为三类:n存取控制命令n传输参数命令nFTP服务命令 n存取控制命令主要提供了用户身份验证功能和目录切换功能n传输参数命令传输参数设置后一直有效,除非用新的命令改变传输参数,或者新建立了数据连接 nFTP服务命令定义了一系列文件传输及文件系统操作相关的命令,这些命令的参数通常是pathname(路径名),路径名的书写必须符合服务器端的规范FTP服务命令n服务器接收客户端命令并处理之

7、后,会返回给客户端相应的命令响应信息,这种返回响应的方式称作FTP应答nFTP应答保证了文件传输过程中请求与行为的同步,并使得用户进程总是能了解服务器的状态n每条FTP命令可以产生一条或多条响应,但多数情况下,每条命令只返回一条响应nFTP响应与FTP命令一样,都是在客户端与服务器之间的控制连接上以NVT ASCII码形式传送,并在每行末尾以CR-LF标志行结束nFTP响应由一个3位的数字代码(应答码),一个字符串形式的表示命令执行成功与否的文本,以及命令执行成功后的输出组成。nFTP响应的格式:n为3位数字的应答码n表示空格n是一行提供给用户阅读的文本信息n是行结束符FTP应答码中第1位和第

8、2位的含义 n进行通信时,FTP需要建立两个TCP连接n控制连接(端口号默认值为21):用于发送指指令给服务器及接收服务器响应n数据连接(端口号默认值为20,仅PORT模式):数据传输的通道nFTP协议中规定了两种连接模式nPORT(主动模式)nPASV(被动模式)nPORT(主动)模式数据连接由服务器初始化完成n客户端选择一个大于1024的端口连接服务器的21端口n需传输数据时,客户端会送出PORT命令告诉服务器连接到自己的某一端口来建立数据连接,同时侦听该端口。比如:nPORT 61,144,1,2,4,104 n即:IP=61.144.1.2 端口=4*256+104=1128n服务器收

9、到PORT命令时,会使用20端口连接客户端在PORT命令中指定的IP地址和端口号,然后传输数据使用PORT模式的FTP连接示意图 PSH ACK 6:13(8) ack 40TYPE IrnClientServerPSH ACK 40:59(20) ack 14200 Type set to I.rnPSH ACK 14:38(25) ack 60PORT 140,252,13,66,4,99rnPSH ACK 39:50(12) ack 90RETR a.outrnPSH ACK 60:89(30) ack 39200 PORT command successful.rnSYN 277297

10、1521:2772971521(0)SYN ACK 1110564865:110564865(0)ack 2772971522,ACK 2772971522:2772971522(0)ack 110564866PSH ACK 90:155(66) ack 51150 Opening BINARY mode rnACK 51:51(0) ack 156建立数建立数据连接据连接FTP工作过程(实线:控制连接,虚线:数据连接)工作过程(实线:控制连接,虚线:数据连接)ACK 2772971522:2772971777 (256) ack 110564866ClientServerACK 110564

11、866: 110564866(0)ack 2772971778PSH ACK 156:179(24) ack 51226 Transfer complete.rnACK 51:51(0) ack 180ACK 2772971778:2772972033 (256) ack 110564866ACK 110564866: 110564866(0)ack 2772972034FIN ACK 2772987654:2772987654 (0) ack 110564866ACK 110564866: 110564866(0)ack 2772987655FIN ACK 110564866: 110564

12、866(0)ack 2772987655ACK 2772987655:2772987655 (0) ack 110564867PSH ACK 51:56(6) ack 180QUITrnPSH ACK 180:193(14) ack 57221 Goodbye.rn第第1个个数据段数据段第第2个个数据段数据段释放数释放数据连接据连接结束结束FTP会话会话nPASV(被动)模式数据连接由客户端初始化n客户端选择一个大于1024的端口连接服务器的21端口n需传输数据时,客户端向服务器发送PASV命令,通知服务器自己希望连接到服务器的某一个端口。n服务器通过应答码为227的响应返回一个IP地址和端口

13、号,通知客户端可以连接到指定的地址,以进行数据传输。使用PASV模式的FTP连接示意图 n在命令行窗口中输入命令:ntelnet ftp.cs.cuhk.edu.hk 21n然后以匿名方式登录到该服务器。n220 ftp.cse.cuhk.edu.hk FTP server (Version make(1) Wed May 25 19:18:53 HKT 2005) ready.nUSER anonymousn331 Guest login ok, send your complete e-mail address as password.n在服务器显示欢迎信息后,输入命令:nPASVn以进入

14、被动模式。服务器的响应如下:n227 Entering Passive Mode (137,189,91,191,123,173)n即:服务器在137.189.91.191:31661等待客户端数据连接请求的到达。n31661=123*256+173n输入以下命令,要求从数据连接上发送服务器当前目录信息:nLISTn从控制连接上收到信息:n150 Opening ASCII mode data connection for /bin/ls.n此时服务器进入到等待客户建立数据连接的状态。n在另一个命令行窗口中输入以下命令,与服务器建立数据连接:ntelnet 31661n这时,在窗口中会看到服务

15、器当前目录信息。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.(以下省略)n目录信息传输完毕后,在控制连接上收到信息:n226 Transfer complete.PORT和PASV的注意事项n所有FTP服务器软件都支持PORT方式。至于PASV方式,大部分FTP服务器软件都支持。支持PASV方式的FTP服务器软件,也可以设置为只工作在PORT方式上。n为了PASV方

16、式能正常工作,需要在FTP服务器软件上为PASV方式指定可用的端口范围。此外,还要在服务器的防火墙上打开这些端口。n选择用PASV方式还是PORT方式登录FTP服务器,选择权在FTP客户端,而不是在FTP服务器。PORT和PASV的注意事项n若客户端只有内网IP,没有公网IP,那么,客户端只能使用PASV方式与FTP服务器建立数据连接。 n极少数的NAT网关也支持内网中的FTP客户端以PORT方式访问服务器。n这些NAT网关能够对TCP报文段中封装的应用层数据进行扫描,扫描到 PORT指令后会用自己的IP地址和端口号替换PORT方式的IP地址和端口号。n这些网关只扫描目的端口号为21的数据包,

17、如果FTP 服务器不是使用默认的21号端口,内网中的客户端也无法使用PORT方式与服务器建立数据连接。nTFTP是TCP/IP协议族中的一个用于在网络上的计算机之间进行文件传输的协议,提供功能单一、开销不大的文件传输服务。nTFTP的主要特征如下:n基于UDP协议(用户数据报协议),使用超时重传方式来保证数据的到达n只提供文件的上传与下载功能,不提供获取文件和目录列表的功能n不提供存取授权与用户认证机制n多用于局域网以及远程UNIX计算机中(FTP则多用于互联网中) TFTP报文的封装 5种TFTP报文的格式 TFTP报文的封装 5种TFTP报文的格式 模式的取值:模式的取值:netascii

18、:多行多行ASCII字符组成的文件字符组成的文件octet:8位组的字节流位组的字节流 TFTP报文的封装 5种TFTP报文的格式 块号从块号从1开始编码开始编码每发送每发送1个数据块,块号增加个数据块,块号增加1 TFTP报文的封装 5种TFTP报文的格式 块号字段用于确认接收到的报文块号字段用于确认接收到的报文该字段的取值与被确认报文的块该字段的取值与被确认报文的块号相同。对写请求的确认块为号相同。对写请求的确认块为0 TFTP报文的封装 5种TFTP报文的格式 n在TFTP中文件传输的过程如下:客户端向服务器的69端口发送一个读请求或者写请求分组,同时建立一个连接,客户端使用的端口是随机

19、产生的。如果服务器同意请求,则连接成功,接着就是文件数据的传输过程。n除了最后一个TFTP数据分组,每个数据分组包含固定512字节长度的文件数据n在发送下一个数据分组之前,必须得到确认响应,如果未收到确认,则必须一直等待(停止等待方式)n如果分组在网络中丢失,发送端在计时器超时之后会重新发送分组n如果传输过程中出现错误,就通过差错报文分组来通告错误发生RRQ,文件名,模式文件名,模式DATA,块号块号=1,数据(数据(=512B)ACK,块号块号=1DATA,块号块号=N,数据(数据(512B)ACK,块号块号=N读取数据时序读取数据时序WRQ,文件名,模式文件名,模式ACK,块号块号=0DA

20、TA,块号块号=1,数据(数据(512B)DATA,块号块号=N,数据(数据(512B)ACK,块号块号=N写数据时序写数据时序ACK,块号块号=1TFTP中的Sorcerers Apprentice Bug(魔法师徒弟错误)示意图 nNFS (网络文件系统)最初是由Sun Microsystems公司设计开发的,目前已经成为Internet网络上进行分布式访问的一种事实上的标准nNFS主要具有以下特点:n共享文件访问 n信息访问的透明性 n简化管理工作 n良好的扩展性 n可靠性 n操作的简易性 nRPC(Remote Procedure Call,远程过程调用)和XDR(External D

21、ata Representation,外部数据表示)为NFS提供所需的网络连接及解释基于这些连接发送的数据格式nRPC运行在OSI模型的会话层,它提供一组过程,使远程计算机系统可像调用本地过程一样调用这些过程nXDR运行在OSI模型的表示层,负责在不同的计算机系统间转换RPC数据nFTP是实现文件传输的最基本的应用层协议nFTP使用户能在两个联网的计算机之间传输文件,是互联网上文件传输的主要方式nFTP提供身份验证服务,用户需要提供有效的用户名与密码,匿名FTP取消了这种限制,允许所有用户访问nTFTP是一种很简单的文件传输协议,只提供文件的上传与下载功能,不提供获取文件和目录列表的功能,也不提供用户验证机制nTFTP工作在UDP上,用超时重传方式来保证数据的到达n利用NFS可以建立一个分布式的文件系统,提供在多机环境中对网络的透明访问。用户可以像存取本地计算机上的文件一样,方便快捷地访问网络上其他计算机中的文件nP119 一;二;三:2、3、4

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号