NFS Protocol
NFS protocol 是執行 remote file operations 的 RPC set。Mount protocol 先取得 initial file handle;之後 lookup、directory read、attribute access、file read/write 等由 NFS protocol 完成。這裡指課本的 NFS Version 3。
NFS v3 operations
支援 directory lookup、read directory entries、links / directories 操作、get/set attributes、read files、write files。這些 RPC 以 file handle 為主要定位 key。
No open / close
NFS v3 為了 stateless server,protocol 沒有 open / close。每個 request 必須帶足:file handle、operation、absolute offset、read/write size、credentials。Server 不保存 client open-file table,也不記 current offset。
Retry / idempotence
Network request 可能丟失,client 會 retry。NFS operations 需盡量 idempotent,或用 duplicate-detection information 避免同一 modifying request 被重複套用。這是 stateless recovery 能工作的條件。
Synchronous writes
Client flush writes 到 server 後,會假設 server 已安全保存。NFS v3 server 回覆前須把 modified data / metadata committed to stable storage 或 nonvolatile cache;這簡化 crash recovery,但降低 write performance。
Concurrency limitation
單一 NFS write RPC 可 atomic,但 application-level write() 可能被拆成多個 RPC,仍可能和其他 writers interleave。NFS v3 本身不提供完整 locking;locking 通常靠外部 lock service 或 application coordination。