tcp/ip学习笔记--第29章 NFS network file system
来源:互联网 发布:宋代权知开封府事 编辑:程序博客网 时间:2024/06/05 15:53
简介
NFS是一个广泛应用的提供透明的远程存取文件的程序。透明的意思是说,应用程序在操作文件时,并不感知这个文件是在远程主机上,由系统内核检测发现文件在远程主机上,并远程进行操作,将结果返回给应用程序。NFS应用的一个重要的基础RPC。
RPC remote procedure call
作者不直接开始讲NFS,而是花了较大篇幅来讲RPC,说明这个RPC确实很重要。开始看了很久,看的一塌糊涂,完全没明白作者在讲什么,后面终于理出了一些思绪,感觉又挺简单。
直接说我的理解吧:
假设我们要在编写一个函数read,这个函数的作用是读取一个文件的内容:
public byte[] read(String file);
假如这个文件在本机器上,直接去读取相应的文件即可。
那么如果这个文件在远程机器上,应该怎么办呢?RPC的思路就是,将这个read这个函数调用发送到文件对应的远程主机上去执行,将执行的结果返回。拿到函数结果之后,read函数再将结果返回给调用read函数的应用程序。这其中当然会涉及到,怎么对程序编号,函数编号,怎么表示参数,怎么表示结果,怎么将请求发送到对应主机。这就是系统RPC要解决的问题。
SUN RPC
讲的是一些关于具体怎么表示的细节,由于我们并不在此处进行编程实践,略过不表。
Port Mapper
RPC程序可能会有很多,为每个RPC程序设置一个知名的端口号供客户端程序去访问并不是一个好的解决方案。解决方法是,使用临时端口。
port mapper就是用来专门管理RPC程序名字,版本,端口号的程序。当系统启动后,这个程序就会启动,它有知名的端口,TCP和UDP都是111。RPC server程序启动起来以后,就会去向port mapper注册自己的端口号,而且可以注册不同的版本。这样客户端程序就可以通过向port mapper查询,获得server端的端口号,然后进行访问。
NFS protocol
file Handles 句柄
NFS的客户端保存文件的句柄,要对文件进行相应的操作时,将句柄发送给服务端,唯一识别相应的文件。而且句柄对客户端来说是不透明的,并不知道句柄中存储的是些什么内容。
Mount Protocol
应用程序要像能够操作本地文件一样操作远程主机上的文件的前提是这个文件被挂载到了本地机器上。
挂载程序也是一个RPC程序,独立于NFS程序。
NFS proredures
NFS提供了15个程序,分别提供不同的功能。比如GETATTR,SETATTR,LOOKUP,READ,WRITE,LINK,READLINK。
虽然NFS被设计成可以在任意系统之间工作,但是这有些程序只为unix系统所特有。
Examples
略
- tcp/ip学习笔记--第29章 NFS network file system
- TCP-IP详解卷1-29:NFS(Network File System):网络文件系统
- NFS, Network File System
- Install NFS(network file system)
- NFS服务器----Network File System
- NFS(Network File System) Configuration
- tcp/ip学习笔记--第25章 SNMP simple network management
- tcp/ip学习笔记--第14章 DNS (the domain name system)
- IBM UNIX & LINUX -AIX 5L 系统管理技术 学习笔记1 -网络文件系统 NFS network file system
- tcp/ip学习笔记--第15章 Trivial File Transfer Protocol 简单文件传输协议
- tcp/ip学习笔记--第27章 FTP File Transfer Protocol
- linux --NFS-network file system,环境变量
- Redhat Network File System (NFS) Guide
- tcp/ip学习笔记--第22章 TCP persist timer
- tcp/ip学习笔记--第23章 TCP keepalive Timer
- 《TCP/IP详解》学习笔记-第3章 IP:网际协议
- 《TCP/IP详解》学习笔记-第1章 概述
- 《TCP/IP详解》学习笔记-第2章 链路层
- 【python数据挖掘课程】二十.KNN最近邻分类算法分析详解及平衡秤TXT数据集读取
- java tf-idf提取关键字
- 2017.12.07 进程间的通信方式
- 7-50 装箱问题(20 分)
- JAVA 代码块 继承
- tcp/ip学习笔记--第29章 NFS network file system
- JAVA 代码块 继承 final
- node,起航
- spring-web和spring-webmvc 版本冲突jar包冲突
- 几种常用排序算法和图论
- Python中理解进程(Process),线程(Thread)和协程(Coroutines)的感悟
- sql语句备份还原数据库
- SQL小结 增删改查 创建数据库 建表
- MIMXRT1050-EVK开发板在IAR环境下的下载问题