rfc1094.txt
来自「著名的RFC文档,其中有一些文档是已经翻译成中文的的.」· 文本 代码 · 共 1,515 行 · 第 1/4 页
TXT
1,515 行
These are the sizes, given in decimal bytes, of various XDR structures used in the protocol: /* * The maximum number of bytes of data in a READ or WRITE * request. */ const MAXDATA = 8192; /* The maximum number of bytes in a pathname argument. */ const MAXPATHLEN = 1024; /* The maximum number of bytes in a file name argument. */ const MAXNAMLEN = 255; /* The size in bytes of the opaque "cookie" passed by READDIR. */ const COOKIESIZE = 4; /* The size in bytes of the opaque file handle. */ const FHSIZE = 32;3.6. Setting RPC Parameters Various file system parameters and options should be set at mount time. The mount protocol is described in the appendix below. For example, "Soft" mounts as well as "Hard" mounts are usually both provided. Soft mounted file systems return errors when RPC operations fail (after a given number of optional retransmissions), while hard mounted file systems continue to retransmit forever. The maximum transfer sizes are implementation dependent. For efficient operation over a local network, 8192 bytes of data are normally used. This may result in lower-level fragmentation (such as at the IP level). Since some network interfaces may not allow such packets, for operation over slower-speed networks or hosts, or through gateways, transfer sizes of 512 or 1024 bytes often provide better results.Sun Microsystems, Inc. [Page 21]RFC 1094 NFS: Network File System March 1989 Clients and servers may need to keep caches of recent operations to help avoid problems with non-idempotent operations. For example, if the transport protocol drops the response for a Remove File operation, upon retransmission the server may return an error code of NFSERR_NOENT instead of NFS_OK. But if the server keeps around the last operation requested and its result, it could return the proper success code. Of course, the server could be crashed and rebooted between retransmissions, but a small cache (even a single entry) would solve most problems.Sun Microsystems, Inc. [Page 22]RFC 1094 NFS: Network File System March 1989 Appendix A. MOUNT PROTOCOL DEFINITIONA.1. Introduction The mount protocol is separate from, but related to, the NFS protocol. It provides operating system specific services to get the NFS off the ground -- looking up server path names, validating user identity, and checking access permissions. Clients use the mount protocol to get the first file handle, which allows them entry into a remote filesystem. The mount protocol is kept separate from the NFS protocol to make it easy to plug in new access checking and validation methods without changing the NFS server protocol. Notice that the protocol definition implies stateful servers because the server maintains a list of client's mount requests. The mount list information is not critical for the correct functioning of either the client or the server. It is intended for advisory use only, for example, to warn possible clients when a server is going down. Version one of the mount protocol is used with version two of the NFS protocol. The only information communicated between these two protocols is the "fhandle" structure.A.2. RPC Information Authentication The mount service uses AUTH_UNIX and AUTH_NONE style authentication only. Transport Protocols The mount service is supported on both UDP and TCP. Port Number Consult the server's portmapper, described in RFC 1057, "RPC: Remote Procedure Call Protocol Specification", to find the port number on which the mount service is registered.A.3. Sizes of XDR Structures These are the sizes, given in decimal bytes, of various XDR structures used in the protocol: /* The maximum number of bytes in a pathname argument. */ const MNTPATHLEN = 1024;Sun Microsystems, Inc. [Page 23]RFC 1094 NFS: Network File System March 1989 /* The maximum number of bytes in a name argument. */ const MNTNAMLEN = 255; /* The size in bytes of the opaque file handle. */ const FHSIZE = 32;A.4. Basic Data Types This section presents the data types used by the mount protocol. In many cases they are similar to the types used in NFS.A.4.1. fhandle typedef opaque fhandle[FHSIZE]; The type "fhandle" is the file handle that the server passes to the client. All file operations are done using file handles to refer to a file or directory. The file handle can contain whatever information the server needs to distinguish an individual file. This is the same as the "fhandle" XDR definition in version 2 of the NFS protocol; see section "2.3.3. fhandle" under "Basic Data Types".A.4.2. fhstatus union fhstatus switch (unsigned status) { case 0: fhandle directory; default: void; } The type "fhstatus" is a union. If a "status" of zero is returned, the call completed successfully, and a file handle for the "directory" follows. A non-zero status indicates some sort of error. In this case, the status is a UNIX error number.A.4.3. dirpath typedef string dirpath<MNTPATHLEN>; The type "dirpath" is a server pathname of a directory.A.4.4. name typedef string name<MNTNAMLEN>; The type "name" is an arbitrary string used for various names.Sun Microsystems, Inc. [Page 24]RFC 1094 NFS: Network File System March 1989A.5. Server Procedures The following sections define the RPC procedures supplied by a mount server. /* * Protocol description for the mount program */ program MOUNTPROG { /* * Version 1 of the mount protocol used with * version 2 of the NFS protocol. */ version MOUNTVERS { void MOUNTPROC_NULL(void) = 0; fhstatus MOUNTPROC_MNT(dirpath) = 1; mountlist MOUNTPROC_DUMP(void) = 2; void MOUNTPROC_UMNT(dirpath) = 3; void MOUNTPROC_UMNTALL(void) = 4; exportlist MOUNTPROC_EXPORT(void) = 5; } = 1; } = 100005;A.5.1. Do Nothing void MNTPROC_NULL(void) = 0; This procedure does no work. It is made available in all RPC services to allow server response testing and timing.A.5.2. Add Mount Entry fhstatus MNTPROC_MNT(dirpath) = 1;Sun Microsystems, Inc. [Page 25]RFC 1094 NFS: Network File System March 1989 If the reply "status" is 0, then the reply "directory" contains the file handle for the directory "dirname". This file handle may be used in the NFS protocol. This procedure also adds a new entry to the mount list for this client mounting "dirname".A.5.3. Return Mount Entries struct *mountlist { name hostname; dirpath directory; mountlist nextentry; }; mountlist MNTPROC_DUMP(void) = 2; Returns the list of remote mounted filesystems. The "mountlist" contains one entry for each "hostname" and "directory" pair.A.5.4. Remove Mount Entry void MNTPROC_UMNT(dirpath) = 3; Removes the mount list entry for the input "dirpath".A.5.5. Remove All Mount Entries void MNTPROC_UMNTALL(void) = 4; Removes all of the mount list entries for this client.A.5.6. Return Export List struct *groups { name grname; groups grnext; }; struct *exportlist { dirpath filesys; groups groups; exportlist next; }; exportlist MNTPROC_EXPORT(void) = 5;Sun Microsystems, Inc. [Page 26]RFC 1094 NFS: Network File System March 1989 Returns a variable number of export list entries. Each entry contains a filesystem name and a list of groups that are allowed to import it. The filesystem name is in "filesys", and the group name is in the list "groups". Notes: The exportlist should contain more information about the status of the filesystem, such as a read-only flag.Author's Address: Bill Nowicki Sun Microsystems, Inc. Mail Stop 1-40 2550 Garcia Avenue Mountain View, CA 94043 Phone: (415) 336-7278 Email: nowicki@SUN.COMSun Microsystems, Inc. [Page 27]
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?