首页 > 其他分享 >NFS协议分析 - rfc1813

NFS协议分析 - rfc1813

时间:2023-01-05 14:58:03浏览次数:47  
标签:协议 请求 rfc1813 NFSPROC3 NFS FH 数据 服务端 客户端

Introduction

NFS协议实现基于RPC(Remote Procedure Call)和XDR(eXternal Data Representation)

XDR:a standard way of representing a set of data types on a network

该文档定义了NFSv3协议;mount协议;NLM(Network Lock Manager)v3和v4的差异

 

NFSv3较v2的几点重要变化:

1、NFSv3协议扩展支持64位的文件和文件系统大小

2、支持异步读写

RPC Information

基本数据类型说明,包括错误码等

         

Server Procedures

描述了NFSv3协议下的22种操作,分别是

0 NFSPROC3_NULL

客户端连接服务端时,首先尝试test,测试连通性

1 NFSPROC3_GETATTR

客户端获取指定FH(file handle)的元数据信息

2 NFSPROC3_SETATTR

客户端设置指定FH(file handle)的元数据信息

3 NFSPROC3_LOOKUP

客户端通过路径或者文件名称查询FH,服务端返回FH和FH对应的元数据信息

4 NFSPROC3_ACCESS

客户端想要获取FH对应的权限,服务端返回是否可以获取到

 

 

6 NFSPROC3_READ

客户端读取数据,发送FH、数据大小、数据偏移量到服务端。客户端等待服务端返回具体数据。

7 NFSPROC3_WRITE

客户端写入数据,发送FH、数据大小、数据偏移量、stable(FILE_SYNC(元数据和数据)、DATA_SYNC(仅数据)或者UNSTABLE),服务端负责写入数据

file_wcc是什么东西?

8 NFSPROC3_CREATE

客户端请求服务端创建一个普通文件,发送目录的FH,文件名称等参数。其中mode(One of UNCHECKED, GUARDED, and EXCLUSIVE)有待进一步研究

尤其是verifier的概念?

9 NFSPROC3_MKDIR

客户端请求服务端创建一个目录

11 NFSPROC3_MKNOD

 客户端请求创建特殊文件,比如socket,管道FIFO等,NAS业务一般不关心

12 NFSPROC3_REMOVE

客户端请求删除一个目录下的entry(文件或者目录等)

13 NFSPROC3_RMDIR

客户端请求删除一个目录

14 NFSPROC3_RENAME

16 NFSPROC3_READDIR

17 NFSPROC3_READDIRPLUS

18 NFSPROC3_FSSTAT

 客户端获取文件系统的相关信息(volatile)如挂载点FH,文件系统总大小等,类似FSINFO

19 NFSPROC3_FSINFO

客户端获取文件系统的相关信息(novolatile)

20 NFSPROC3_PATHCONF

21 NFSPROC3_COMMIT

客户端通知服务端强制下刷之前WRITE后没有落盘的数据,Procedure COMMIT forces or flushes data to stable storage that was previously written with a WRITE procedure call with the stable field set to UNSTABLE

支持下刷文件的部分偏移量数据,即使下刷部分数据,但是该文件对应的元数据均要下刷后服务端才能返回

Implementation issues

重传请求

服务端需要解决客户端发起的多次非幂等请求(多次操作的结果不一致,如创建文件,删除文件),大多数会使用缓存最近请求的方式(called the duplicate request cache)

最近相同请求返回第一次处理的原始结果

缓存策略

详细讨论见论文:Synchronization and Caching Issues in the Andrew File System [ML Kazar]

MOUNT协议

包含消息:NULL, MNT, DUMP, UMNT, UMNTALL, EXPORT

NLM(Network Lock Manager)协议

NFSv3协议配套使用NLM version 4版本

+----------+-----------+
|   NFS    |   NLM   |
| Version | Version |
+=============+
|     2       |    1, 3    |
+----------+-----------+
|     3       |      4      |
+----------+-----------+

包含的消息有:

 

 

 

标签:协议,请求,rfc1813,NFSPROC3,NFS,FH,数据,服务端,客户端
From: https://www.cnblogs.com/oldmanold/p/17027513.html

相关文章

  • Oracle nfs集中备份替代NBU
    配置NFShttps://www.linuxprobe.com/basic-learning-12.htmlORACLE各节点挂载nfsmount -tnfs4-ominorversion=1,rsize=1048576,wsize=1048576,hard,timeo=600,retr......
  • NFS各个版本之间的比较
       NFS是一种网络文件系统,从1985年推出至今,共发布了3个版本:NFSv2、NFSv3、NFSv4,NFSv4包含两个次版本NFSv4.0和NFSv4.1。经过20多年发展,NFS发生了非常大的变化,最大的变......
  • SPI协议
    参考:征途pro《野火FPGA》 1SPI(SerialPeripheralInterface,串行外围设备接口)通讯协议,是Motorola公司提出的一种同步串行接口技术,是一种高速、全双工、同步通信总线......
  • 无线802.1x协议抓包
    工具准备sudoaptinstallmoreutilssudoaptinstalltcpdump正式工作开始抓包sudotcpdump-ieno1-w~/Desktop/capture.cap开始ping域管网关和路由网关(ts命令可以记录......
  • 轻松理解CORS协议规范
    1什么是CORS?CORS是Cross-OriginResourceSharing的缩写,意思是跨域资源共享。本质上,CORS是HTTP协议对浏览器中不同网站间AJAX请求的规范和限制。Web世界里有无数个网站......
  • FreeSWITCH学习笔记7(7-7.3.1) - SIP协议
    目录:   7.1、SIP协议基础 7.1.1、HTTP与SIP协议基础   7.1.2、SIP的基础概念和相关元素       7.1.3、SIP协议的基本方法和头域简介 ......
  • FreeSWITCH学习笔记7(7.3.2-结束) - SIP协议
    目录: 7.3.2、通过B2BUA呼叫 具体流程描述见7.3.2。  7.4、深入理解SIP7.4.1、SIPURI 7.4.2、SDP和SOASDP——(SessionDescriptionProtocol,会话描述......
  • AXI5原子操作一协议翻译
    AXI原子操作协议原文单拷贝原子大小AXI4协议引入单拷贝原子概念。这个术语定义了事务原子操作更新的最小字节数。AXI4协议要求一个大于单拷贝原子大小的事务,必须更新至......
  • 基于GA优化的OSPF协议网络路由matlab仿真
    up目录一、理论基础二、核心程序三、测试结果一、理论基础首先,传统的遗传优化算法,其标准的优化过程如下所示:步骤一:根据所需要处理的问题特点,选择问题解对应的......
  • 工控协议网关漏洞挖掘与攻击
    ​本文系原创转载请说明出处:信安科研人pleasesubscribemyofficialwechat:信安科研人获取更多安全资讯 原文:IndustrialProtocolGatewaysUnderAnalysis〇摘......