计算机网络 文件传输协议

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

文件传输协议•文件是计算机系统中信息存储、处理和传输的主要形式,大多数计算机系统都支持网络文件访问功能。对网络文件访问的需求来自四个方面:–不同应用程序之间的数据共享;–利用远程存储介质存储后备文件;–无盘站点通过网络访问服务器上的文件信息;–以文件形式进行的数据交换。网络文件访问包括两种独立的形式:•文件传输:本地文件远程文件•文件访问允许多个(远地)程序同时访问单个文件,任何一个程序都不需要被访问文件的拷贝,直接在原文件上进行操作,某程序对原文件的修改立即在原文件上表现出来,并为访问它的其他程序所感知。文件传输协议12.1TCP/IP文件传输协议(FTP)★12.2FTP进程模型★12.3FTP命令与响应12.4匿名FTP12.5简单文件传送协议(TFTP)★12.6TFTP报文TCP/IP文件传输协议(FTP)1.FTP的特点:–FTP工作在应用层–基于的传输协议是TCP–客户和服务器模式–面向连接,可靠。2.FTP的目标:–主机之间可靠和高效地传输程序或数据;–向用户屏蔽不同主机中各种文件存储系统的细节。1)控制连接是建立在用户协议解释器和服务器协议解释器之间用于交换命令与应答的通信链路。协议解释器PI(控制进程)客户端控制连接服务器协议解释器PI(控制进程)命令/应答数据传输进程DTP客户端数据连接服务器数据传输进程DTP数据2)数据连接是传输数据的全双工连接。传输数据可以发生在服务器数据传输进程DTP和用户DTP之间也可以发生在两个服务器DTP之间。3.FTP的几个概念3)文件类型(1)ASCII码文件类型(默认选择),以NVTASCII码形式通过数据连接传输。(2)EBCDIC文件类型。该文本文件传输方式要求两端都是EBCDIC系统。(3)图像文件类型(也称为二进制文件类型)。数据发送形式呈现为一个连续的比特流。ASCII码文件类型和EBCDIC文件类型还要加上文件是否可打印的属性(Noprint/TELNET)4)数据结构文件结构(Filestructure)字节流,无结构。记录结构(Recordstructure)文件被划分为记录,用于文本文件。页结构(Pagestructure)文件被划分为页,每页有页号和页头。可以进行随机存取或顺序存取。5)传输方式FTP的传输模式有流模式、块模式和压缩模式:(1)流模式数据以字节流的形式传送–记录结构(EOR,EOF)–文件结构,接收到的所有数据就是文件内容。(EOF)(2)块模式文件以块形式传送,块带有自己的头部分。头字节包括16位计数域和8位描述子代码。(3)压缩模式压缩模式中,因为数据是压缩过的,对于增加带宽有很多好处。•块模式头字节的结构•描述子代码由在描述子字节中的位标记说明4.FTP的客户—服务器模型下图表示FTP客户—服务器模型,客户和服务器之间利用TCP建立连接。FTP客户与服务器之间要建立双重连接,一个是控制连接,一个是数据连接。控制连接:NVTASCII数据连接:文件类型、数据结构、传输方式FTP客户FTP服务器控制连接数据连接端口21端口20•建立双重连接的原因:FTP是一个交互式会话系统,某客户每次调用FTP,便与服务器建立一个会话,会话以控制连接来维持。•客户每提出一个数据传输请求,服务器与客户建立一个数据连接,进行实际的数据(比如文件)传输。一旦数据传输结束,数据连接相继撤消,但控制连接依然存在,客户可以继续发出命令。•客户可以撤消控制连接–Close命令–Quit命令返回FTP进程模型FTP服务的实现是由一组FTP进程完成的。服务器FTP进程:由协议解释器PI(控制进程)和数据传输进程DTP组成。用户FTP进程:由PI、DTP和用户接口组成。用户接口控制进程数据传输进程控制进程数据传输进程文件系统文件系统服务器客户控制连接数据连接用户FTP控制连接•控制连接是建立在用户协议解释器和服务器协议解释器之间用于交换命令与应答的通信链路。FTP仅仅在发送命令并接收应答时使用控制连接。•用户在两台主机间建立控制连接,然后进行数据连接,客户与服务器为每个文件传输建立一个单独的数据连接。•如果用户请求另一个传输,那么客户与服务器将建立一个新的数据连接。为了避免在控制与数据连接之间发生冲突,FTP对于两者使用不同的协议端口号。•FTP协议要求数据传输在处理时打开控制连接。尽管数据连接频繁地出现并消失,但是控制连接却在整个会话中一直保持着。在完成FTP服务后由用户发出中止控制连接命令。•控制连接用NVTASCII传命令和响应。•客户向服务器发出请求命令,形成控制连接。FTP数据连接数据连接是传输数据的全双工连接。1.数据连接机制FTP支持两种传输模式:–主动传输模式(也就是Active,Standard模式)–被动传输模式(也就是Passive模式)。FTP主动传输模式:客户端首先和FTPServer的TCP21端口建立连接,通过这个通道发送命令。在建立数据连接时,客户数据传输进程成为连接的接收者,而服务器数据传输进程成了连接的请求者。客户端服务器控制连接数据连接•过程:客户在需要进行数据传输时,其数据传输进程在一个自由端口上发出被动打开,然后客户在控制连接上通过PORT命令将该自由端口告诉服务器控制进程,服务器数据传输进程在端口20上主动打开并与客户数据传输进程的自由端口建立连接。•数据连接机制还包括建立连接选择数据参数。客户端服务器数据连接控制连接20控制连接控制进程数据传输进程客户控制进程数据传输进程服务器1442发起FTP会话打开高端端口21打开熟知端口1443打开高端地址打开高端端口PORT1443将端口告诉服务器数据连接FTP主动模式工作过程•FTP被动传输模式:当FTP的控制连接建立,客户提出目录列表、传输文件等请求时,客户端发送PASV命令使服务器处于被动传输模式,FTP服务器等待客户与其联系。FTP服务器打开一个临时端口等待客户端对其进行连接。客户端向服务器发起一个用于数据传输的连接。客户端的连接端口是发起该数据连接请求时使用的端口。•在被动传输模式下,FTP的数据连接和控制连接方向一致。客户端服务器控制连接数据连接控制连接控制进程客户控制进程服务器1442发起FTP会话打开高端端口21打开熟知端口打开高端地址1443打开高端端口PASV要求以被动模式工作数据连接FTP被动模式工作过程2394数据传输进程数据传输进程227(地址,端口)响应中带地址和端口•很多防火墙在设置的时候都不允许接受外部发起的连接(出于安全考虑),当FTP客户在防火墙内访问防火墙之外的FTP服务器时,需要使用被动传输模式。(为什么?)•当位于防火墙内的FTP客户与在防火墙外的FTP服务器以主动传输模式工作时候,因为从服务器的TCP20无法和内部网络的客户端建立一个新的连接,造成无法工作。客户端服务器无法建立数据连接控制连接防火墙•几乎所有的ftp客户端软件都支持主动传输模式和被动传输模式。特殊的典型例子是IE,IE默认是用PORT方式的。如果要在IE里启用PASV方式,请打开IE,在菜单里选择:工具→Internet选项→高级,在“使用被动ftp”前面打上钩(需要IE6.0以上才支持)。2.数据连接管理默认数据连接端口:FTP服务器在主动模式下必须使用默认数据连接端口(20)。非默认数据端口:在主动模式下,用户PI可以使用PORT命令指定客户的非默认端口。在被动模式下,服务器用227应答通告服务器的非默认端口。3.数据连接的关闭关闭连接的条件:–用户端发送ABORT命令–服务器通过EOF终止要求,表示结束发送数据–控制连接关闭–发生不可恢复错误端口号计算•在主动模式下,客户用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,但是许多FTPServer的端口范围达到了1024-65535,如果IIS也要设置成开放的端口为1024-65535,具体方法如下:1.regedt322.找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters3.编辑-添加-数值ValueName:MaxUserPortDataType:REG_DWORDValue:65534返回FTP命令与响应1.FTP命令•FTP命令主要用于控制连接。•命令以NVTASCII码形式传送,要求在每行结尾都要有CR、LF对。•这里的命令是两端控制进程之间的部分命令,由客户发往服务器。命令描述ABOR中断数据连接程序ACCTaccount系统特权账号ALLObytes为服务器上的文件存储器分配字节APPEfilename为服务器上同名文件附加数据CDUP改变到服务器上的父目录CWDdirpath改变服务器上的工作目录DELEfilename删除服务器上的指定文件HELPcommand请求帮助信息LISTname列表显示文件或目录MODEmode传输模式MKDdirectory在服务器上建立指定目录NLSTdirectory列出文件或子目录(不带属性)NOOP获得服务器的确认,了解服务器是否活动PASSpassword系统登录密码PASV被动模式,服务器等待数据连接的请求命令描述PORTaddress主动模式,带IP地址和两字节的端口IDPWD显示当前工作目录QUIT从FTP服务器上退出登录REIN重新初始化RESToffset由特定偏移量重启文件传递RETRfilename从服务器上复制文件到客户端RMDdirectory在服务器上删除指定目录RNFRoldpath指定要重命名的路径RNTOnewpath重命名为新路径SITEparams定义服务器相关的命令SMNTpathname安装文件系统STATdirectory返回当前文件或目录的状态信息STORfilename储存(复制)文件到服务器上STOUfilename储存文件到服务器上(不覆盖同名文件)STRUtype数据结构(F=file,R=record,P=page)SYST返回服务器使用的操作系统TYPEdatatype文件类型(A=ASCII,E=EBCDIC,I=binary)USERusername系统登录的用户名2.FTP响应•响应都是ASCII码形式的3位数字,响应也是以NVTASCII码形式传送,要求在每行结尾都要返回CR、LF对。•响应由服务器发往客户端。•第一位=1:服务器动作已开始,在接受新命令前,还会有响应;•第一位=2:服务器动作已完成,将接受新命令;•第一位=3:命令已接受,需要客户端提供进一步的信息;•第一位=4:服务器动作未完成,暂时错,发送还可以重发命令;•第一位=5:服务器未接受命令,命令不可重发。响应代码解释说明响应代码解释说明110新文件指示器上的重启标记332需要帐号名120在短时间内服务器准备就绪350未决的文件行为125数据连接已打开,在短时间内开始传输421关闭服务器150文件OK,数据连接将在短时间内打开425不能打开数据连接200成功426结束连接202不执行的命令450文件不可用211系统状态回复451本地错误212目录状态回复452磁盘空间不足213文件状态回复500无效命令214帮助信息回复501错误参数215系统类型回复502命令未执行220服务器准备就绪503错误指令序列221服务关闭504无效命令参数225数据连接打开530登录失败226数据连接关闭532需要存储文件说明227进入被动模式(发送IP地址、端口号)550不可用的文件230登录成功551不知道的页类型250完成的文件行为552超过了分配的存储空间257建立的路径名553不允许的文件名331用户名有效,需

1 / 47
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功