3.2 基础知识
3.2.1 资源共享的含义
为了实现不同地理位置的计算机之间的资源共享,1969年11月,美国国防部高级研究计划管理局(Advanced Research Projects Agency,ARPA)开始建设世界上的第一个网络,即只有4个节点的ARPAnet网络。
计算机网络中的资源包括软件、硬件及数据等。通常来说,可以被一个以上任务使用的资源称为共享资源。现代网络中,资源共享是为了实现协同工作或为了共同爱好,而将自己的资源通过一些平台共享给其他人。网络中的共享资源一般包括:数据资源,如应用程序数据、文件等;硬件资源,如打印机、扫描仪等;软件资源,如应用程序等。
3.2.2 NFS服务
1.NFS服务简介
NFS最早是由Sun公司(已于2009年被甲骨文公司收购)于1984年开发出来的,其目的就是让不同计算机之间可以彼此共享文件。NFS采用了客户机/服务器工作模式,如图3-1所示。NFS服务器是输出一组文件的计算机,NFS客户机是访问文件的计算机。
图3-1 NFS工作模式
例如,NFS服务器将/nfs/share目录设置为共享输出目录后,客户机2可将该目录挂载到本地文件系统的/mnt/nfs目录。挂载成功后,客户机2即可通过操作/mnt/nfs目录,实现对NFS服务器的/nfs/share目录的访问。其他客户机挂载目录可能不尽相同,但挂载后都可以通过自己的挂载目录访问NFS服务器的输出目录。
2.NFS服务的工作过程
NFS需要依赖RPC(Remote Procedure Calls,远程过程调用)服务,NFS服务用来传输的端口是小于1024的随机端口,RPC的主要功能就是指定NFS服务所对应的端口,并且通知给客户机,让客户机能够正确连接到相应的端口。
NFS服务的工作过程如下。
1)NFS启动时,随机开放小于1024的端口(如1019端口),向RPC注册该端口。
2)NFS客户机要连接NFS服务器时,首先向RPC(111端口)查询NFS服务在哪个端口监听。
3)RPC响应客户机,告知NFS服务在1019端口监听。
4)客户机连接NFS服务器的1019端口。
5)客户机与NFS服务器建立连接。
3.2.3 Samba服务
1.Samba服务简介
Samba使用基于TCP/IP的SMB(Server Message Block,服务器信息块)协议,该协议是在局域网中共享文件夹和打印机的一种协议,是微软公司和英特尔公司于1987年制定的Microsoft网络通信协议。SMB协议是一个开放性的协议,支持协议扩展,能够应用于Linux、Windows等多种平台。
Samba有两个核心守护进程,即smbd和nmbd。Samba服务在未停止服务的情况下,smbd监听139 TCP端口,nmbd监听137和138 UDP端口。
2.Samba服务的工作过程
Samba通过Windows操作系统的NetBIOS和SMB这两个协议运行于TCP/IP通信协议之上,并使Windows操作系统能在网络中看到Linux主机的名称和共享资源,同时也能使用Linux操作系统上所共享的资源。客户机与服务器之间的通信过程如图3-2所示。
图3-2 Samba服务的工作过程
首先,客户机向Samba服务器发送一个SMB negprot请求数据报,并列出了它所支持的所有SMB协议版本;Samba服务器在接收到客户机的请求后,如果客户机所发出的协议版本与Samba服务器提供的版本不符合,则向客户机返回一个0XFFFFH数据报,并结束通信。
若客户机发出的SMB negprot请求数据报通过了Samba服务器的确认,则客户机向服务器发送SMB SesssetupX数据报,其中包括了用户共享的认证,即访问共享资源的用户名和密码。若不能通过Samba服务器的认证,则客户机与Samba服务器的通信结束。
若前两次的数据报都通过了Samba服务器的确认,客户机则向Samba服务器发送SMB TconX请求数据报,其中包括了客户机需访问的共享资源名称,Samba服务器确认其请求无误后,返回相应的共享资源列表。
最后,客户机与Samba服务器正常通信,进行文件操作。