首页 理论教育文件传输与访问系统:下一代网络技术

文件传输与访问系统:下一代网络技术

【摘要】:控制连接在整个会话期间一直保持打开,FTP客户所发出的传送请求通过控制连接发送给控制进程,但控制连接并不用来传送文件,实际用于传输文件的是数据连接。NFS允许对文件进行加锁。

2.6.3.1 概述

文件传输是指在两台主机之间以文件为单位传输信息的服务方式。Internet上使用最广泛的文件传输协议是FTP(File Transfer Protocol),所以文件传输也被直接称为FTP。FTP是Internet最早提供的服务之一,目前也仍然被广泛使用。

文件共享协议中的另一大类是联机访问(on-line access),允许多个程序同时对一个文件进行存取。和数据库系统不同之处是用户不需要调用一个特殊的客户进程,而是由操作系统提供对远程共享文件进行访问的服务,就如同对本地文件的访问一样。这就使得用户可以使用远程文件作为输入和输出来运行任何应用程序,而操作系统中的文件系统则提供对共享文件的透明存取。透明存取的优点是:可以将原来处理本地文件的应用程序用来处理远程文件,而不需要对该应用程序作明显的改动。属于文件共享协议的有网络文件系统NFS(Network File System),这将在本节的最后一部分进行介绍。

2.6.3.2 FTP的主要工作原理

FTP是Internet上的一项基本应用,可以将文件从一台计算机复制到远程的另一台计算机。

FTP使用客户/服务器模式,工作过程如下:

(1)FTP服务进程工作在21号端口上,它在该端口监听客户进程的请求。FTP客户进程向服务器发起一个TCP连接,称为控制连接,双方将通过这条连接交换特定的控制信息。

(2)FTP服务程序接收并处理客户的请求,在收到FTP客户的文件传输请求后,就在端口20上与客户进程再建立一个数据连接。

(3)建立数据连接后,FTP服务进程通过这条数据连接向客户进程传输被请求的文件数据,传输完成后则关闭该连接。

(4)这时控制连接仍然保持,服务进程仍然可以继续接受并处理该客户进程的其他请求(如新的文件传输请求),直到控制连接被最终关闭。

在进行文件传输时,FTP客户和服务器之间要建立两个TCP连接:控制连接和数据连接,分别用来传递命令和数据。控制连接在整个会话期间一直保持打开,FTP客户所发出的传送请求通过控制连接发送给控制进程,但控制连接并不用来传送文件,实际用于传输文件的是数据连接。并且,控制连接是由客户主动发起,而数据连接则由服务器发起数据。

一个FTP实例的工作过程如下:

工作过程解释如下:

[01]用户要用FrP和远程主机建立连接*/

[02]本地FTP发出的连接成功信息*/

[03]从远程服务器返回的信息,220表示“服务就绪”*/

[04]本地FrP提示用户键入名字。用户键入的名字表示“匿名”。在Internet上有许多文件免费向公众提供。用户不需要键入自己的真实姓名而只需键入anonymous即可*/

[05]331表示“用户名正确”,需要口令*/(www.chuimin.cn)

[06]提示用户键入口令。这时可键入guest作为匿名的口令,也可以键入自己的电子邮件地址

[07]230表示用户已经注册完毕

[08]用户要求将名为readme.txt的文件复制到本地主机上,并改名为ftpinfo.txt

[09]PORT是FTP的标准命令,表示要建立数据连接。200表示“命令正确”

[10]150表示“文件状态正确,即将建立数据连接”

[11]226是“释放数据连接”。现在一个新的本地文件已产生

[12]用户键入退出命令。

[13]表明FTP工作结束。

2.6.3.3 简单文件传送协议TFTP

简单文件传送协议TFTP(Trivial File Transfer Protocol)是一个很小且易于实现的文件传送协议。虽然TFTP也使用客户服务器模式,但它使用UDP协议,因此TFTP要有自己的差错控制措施。TFTP只支持文件传输而不支持交互,且没有一个庞大的命令集。TFTP没有列目录的功能,也不能对用户进行身份鉴别。

TFTP的优点:第一,TFTP可用于UDP环境,例如当需要将程序或文件同时向许多机器下载时就往往需要使用TFTP;第二,TFTP代码所占的内存较小。这对较小的计算机或某些特殊用途的设备是很重要的。这些设备不需要硬盘,只需要固化了TFTP、UDP和IP的小容量只读存储器即可。这种方式增加了灵活性,也减少了开销。

TFTP每次传送512字节的数据块(但最后一次可不足512字节),每个块按序编号。TFTP的差错控制很像停止等待协议,每发送完一个文件块后就等待对方的确认,确认时应指明所确认的块编号。发完数据后在规定时间内收不到确认就要重发数据PDU。

2.6.3.4 网络文件系统NFS

网络文件系统NFS最初是在UNIX操作系统环境下实现文件和目录的共享。NFS可使本地计算机共享远程的资源,就像这些资源在本地一样。

NFS允许应用进程打开一个远程文件,并能够在该文件的某一个特定的位置上开始读写数据。这样NFS可使用户只复制一个大文件中的一个很小的片段,而不需要复制整个大文件。

为了使服务器上的文件可以被多个客户存取。NFS允许对文件进行加锁。当一个客户完成修改后就对文件解锁,从而使别的客户能够进行存取。

NFS对用户是透明的,它被集成在操作系统的文件系统中,用普通的系统调用即可访问NFS文件。通过对NFS的配置,可使计算机的文件系统创建一个特殊的目录与远程计算机相关联,所有在该目录中的文件都被认为是远程文件。每当一个应用程序请求一个文件操作时,计算机的文件系统根据被操作文件所在目录就知道应将此请求传递给本地文件系统或NFS客户软件。若属于后一种情况,NFS客户软件就通过网络对远程计算机文件系统进行操作。因此,只要安装和配置了NFS,任何一个应用程序都可以使用远程文件。