?文件传输协议(FTP) (RFC 959)是TCP/I中最常见的应用。标准的文件传输协议在ARPANET 时期就开始工作,逐渐发展到现在的FTP。
?由FTP提供的文件传输功能是将一个完整的文件从一个系统复制到另一个系统中。
?与TELNET类似,FTP也用于两台不同的主机,这两个主机可能运行在不同的操作系统下,使用不同的文件结构,并可能使用不同的字符集。但不同的是,TELNET是通过强制两端都采用同一个标准:使用7比特ASCII码的NVT,来解决这些异构性的。而FTP将采用另一种方法。
?除了传输功能,FTP还能提供其他一些服务:
–交互访问
–格式说明
–授权控制
…...
?FTP模型
?和其他一些服务相同的是:FTP也是基于TCP连接的。服务器以被动方式打开FTP端口( FTP周知端口21),等待客户连接。客户则以主动方式打开FTP端口,建立到服务器的连接。FTP允许到服务器的并发访问。主机服务进程在等待到一个连接后就创建一个从进程处理该连接,而主进程继续等待其他客户的连接。
?然后的过程与其他服务稍有差别,从进程并不执行所有必须的计算,它只是接收并处理从客户端来的控制连接,而使用其他一些进程来创建每一个独立的数据连接。即在FTP过程中,存在两种TCP连接:控制连接和数据连接(如下页图所示),数据传输连接以及使用该连接的传输进程可以在需要时动态创建,但控制连接在一次会话过程中是要保持的。一旦控制连接撤销了,会话终止,也就不可能再有数据连接了。
?数据表示
?FTP协议规范提供了控制文件传输与存储的多种选择。这些选择有四个方面:
–文件类型:不同的文件类型传输方式不同。
–格式控制:文件的格式控制符
–结构:
?文件结构
?记录结构
?页结构
–传输方式:规定文件再数据连接中如何传输
?流方式
?块方式
?压缩方式
?FTP命令
?FTP命令和应答在客户和服务器的控制连接上以NVT ASCII码形式传送。常用命令列表:
?FTP应答
?FTP应答均为3位ASCII码,每一位都有不同的含义:如下表说明第二位:
?FTP是设计用于一般目的、高吞吐量的文件传输,比较复杂(如需要建立多个连接)。在某些情形下并不需要,为此设计的还有一个简单的文件传输协议:简单文件传输协议(Trivial File Transfer Protocol)。
?
?
?简单文件传输协议的特点:
?简单,实现软件小,因而常被厂商放入无盘工作站的ROM,在系统自举时,获取远程服务器的配置信息(在BOOTP中曾提及过该协议,用于获得配置文件)。
?TFTP也无需可靠的数据流传输服务。运行在UDP上,使用超时重传来确保数据的可达性(使用停止-等待协议)。
?每个传输文件为固定的512K。
?TFTP有简单的规则:
?第一个报文发送一个文件传输请求,并在客户和服务器之间建立一个接口,包括指定要传输的文件名称、读写属性。而后文件块按编号次序从1连续地发送。,一个小于512K的文件标识传输的结束。
领取专属 10元无门槛券
私享最新 技术干货