CIFS NFSlinux
CIFS:windows
CIFS (Common Internet File System)浏览器
通用Internet文件系统服务器
在windows主机之间进行网络文件共享是经过使用微软公司本身的CIFS服务实现的。 网络
CIFS 是一个新提出的协议,它使程序能够访问远程Internet计算机上的文件并要求此计算机的服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器得到请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议如今是局域网上用于服务器文件访问和打印的协议。象SMB协议同样,CIFS在高层运行,而不象TCP/IP协议那样运行在底层。CIFS能够看作是应用程序协议如文件传输协议和超文本传输协议的一个实现。多线程
CIFS 可使您达到如下功能:并发
1.访问服务器本地文件并读写这些文件分布式
2.与其它用户一块儿共享一些文件块ide
3.在断线时自动恢复与网络的链接性能
4.使用西欧字符文件名
通常来讲,CIFS使用户获得比FTP更好的对文件的控制。它提供潜在的更直接地服务器程序接口,这比使用HTTP协议的浏览器更好。CIFS最典型的应用是windows用户可以从“网上邻居”中找到网络中的其余主机并访问其中的共享文件夹.
CIFS 是开放的标准并且已经被做为Internet应用程序标准被提交到IETF。
2.NFS:
2.1NFS由SUN公司开发,目前已经成为文件服务的一种标准(RFC1904,RFC1813)。其最大功能是能够经过网络让不一样操做系统的计算机能够共享数据,因此也能够将其看作是一台文件服务器,如图1-1所示。NFS提供了除Samba以外,Windows与Linux及UNIX与linux之间通讯的方法。
图1-1 NFS可做为文件服务 |
客户端PC能够挂载NFS服务器所提供的目录而且挂载以后这个目录看起来如同本地的磁盘分区同样,可使用cp、cd、mv、rm及df等与磁盘相关的命令。NFS有属于本身的协议与使用的端口号,可是在传送资料或者其余相关信息时候,NFS服务器使用一个称为"远程过程调用"(Remote Procedure Call,RPC)的协议来协助NFS服务器自己的运行。
2.2 为什么使用NFS
NFS的目标是使计算机共享资源,在其发展过程当中(即20世纪80年代),计算机工业飞速发展,廉价CPU及客户端/服务器技术促进了分布式计算环境的发展。然而当处理器价格降低时,大容量的存储系统相对而言价格仍居高不下。所以必须采用某种机制在充分发挥单个处理器性能的同时使计算机可共享存储资源和数据,因而NFS应运而生。
2.3 NFS协议
使用NFS,客户端能够透明地访问服务器中的文件系统,这不一样于提供文件传输的FTP协议。FTP会产生文件一个完整的副本;NFS只访问一个进程引用文件部分,而且一个目的就是使得这种访问透明。这就意味着任何可以访问一个本地文件的客户端程序不须要作任何修改,就应该可以访问一个NFS文件。
NFS是一个使用SunRPC构造的客户端/服务器应用程序,其客户端经过向一台NFS服务器发送RPC请求来访问其中的文件。尽管这一工做可使用通常的用户进程来实现,即NFS客户端能够是一个用户进程,对服务器进行显式调用,而服务器也能够是一个用户进程。由于两个理由,NFS通常不这样实现。首先访问一个NFS文件必须对客户端透明,所以NFS的客户端调用是由客户端操做系统表明用户进程来完成的;其次,出于效率的考虑,NFS服务器在服务器操做系统中实现。若是NFS服务器是一个用户进程,每一个客户端请求和服务器应答(包括读和写的数据)将不得不在内核和用户进程之间进行切换,这个代价太大。第3版的NFS协议在1993年发布,图1-2所示为一个NFS客户端和一台NFS服务器的典型结构。
图1-2 NFS客户端和NFS服务器的典型结构 |
(1)访问一个本地文件仍是一个NFS文件对于客户端来讲是透明的,当文件被打开时,由内核决定这一点。文件被打开以后,内核将本地文件的全部引用传递给名为"本地文件访问"的框中,而将一个NFS文件的全部引用传递给名为"NFS客户端"的框中。
(2)NFS客户端经过其TCP/IP模块向NFS服务器发送RPC请求,NFS主要使用UDP,最新的实现也可使用TCP。
(3)NFS服务器在端口2049接收做为UDP数据包的客户端请求,尽管NFS能够被实现为使用端口映射器,容许服务器使用一个临时端口,可是大多数实现都是直接指定UDP端口2049。
(4)当NFS服务器收到一个客户端请求时,它将这个请求传递给本地文件访问例程,而后访问服务器主机上的一个本地的磁盘文件。
(5)NFS服务器须要花必定的时间来处理一个客户端的请求,访问本地文件系统通常也须要一部分时间。在这段时间间隔内,服务器不该该阻止其余客户端请求。为了实现这一功能,大多数的NFS服务器都是多线程的--服务器的内核中实际上有多个NFS服务器在NFS自己的加锁管理程序中运行,具体实现依赖于不一样的操做系统。既然大多数UNIX内核不是多线程的,一个共同的技术就是启动一个用户进程(常被称为"nfsd")的多个实例。这个实例执行一个系统调用,使其做为一个内核进程保留在操做系统的内核中。
(6)在客户端主机上,NFS客户端须要花必定的时间来处理一个用户进程的请求。NFS客户端向服务器主机发出一个RPC调用,而后等待服务器的应答。为了给使用NFS的客户端主机上的用户进程提供更多的并发性,在客户端内核中通常运行着多个NFS客户端,一样具体实现也依赖于操做系统。
注:
NFS CIFS 都是经过网络实现数据文件共享。 文件共享 是核心。!!!!