|
|
1.7 Changes from the NFS Version 2 Protocol
Connected: An Internet Encyclopedia
1.7 Changes from the NFS Version 2 Protocol
Up:
Connected: An Internet Encyclopedia
Up:
Requests For Comments
Up:
RFC 1813
Up:
1. Introduction
Prev: 1.6 Philosophy
Next: 2. RPC Information
1.7 Changes from the NFS Version 2 Protocol
1.7 Changes from the NFS Version 2 Protocol
The ROOT and WRITECACHE procedures have been removed. A MKNOD
procedure has been defined to allow the creation of special
files, eliminating the overloading of CREATE. Caching on the
client is not defined nor dictated by the NFS version 3
protocol, but additional information and hints have been added
to the protocol to allow clients that implement caching to
manage their caches more effectively. Procedures that affect the
attributes of a file or directory may now return the new
attributes after the operation has completed to optimize out a
subsequent GETATTR used in validating attribute caches. In
addition, operations that modify the directory in which the
target object resides return the old and new attributes of the
directory to allow clients to implement more intelligent cache
invalidation procedures. The ACCESS procedure provides access
permission checking on the server, the FSSTAT procedure returns
dynamic information about a file system, the FSINFO procedure
returns static information about a file system and server, the
READDIRPLUS procedure returns file handles and attributes in
addition to directory entries, and the PATHCONF procedure
returns POSIX pathconf information about a file.
Below is a list of the important changes between the NFS version
2 protocol and the NFS version 3 protocol.
- File handle size
-
The file handle has been increased to a variable-length
array of 64 bytes maximum from a fixed array of 32
bytes. This addresses some known requirements for a
slightly larger file handle size. The file handle was
converted from fixed length to variable length to
reduce local storage and network bandwidth requirements
for systems which do not utilize the full 64 bytes of
length.
- Maximum data sizes
-
The maximum size of a data transfer used in the READ
and WRITE procedures is now set by values in the FSINFO
return structure. In addition, preferred transfer sizes
are returned by FSINFO. The protocol does not place any
artificial limits on the maximum transfer sizes.
Filenames and pathnames are now specified as strings of
variable length. The actual length restrictions are
determined by the client and server implementations as
appropriate. The protocol does not place any
artificial limits on the length. The error,
NFS3ERR_NAMETOOLONG, is provided to allow the server to
return an indication to the client that it received a
pathname that was too long for it to handle.
- Error return
-
Error returns in some instances now return data (for
example, attributes). nfsstat3 now defines the full set
of errors that can be returned by a server. No other
values are allowed.
- File type
-
The file type now includes NF3CHR and NF3BLK for
special files. Attributes for these types include
subfields for UNIX major and minor devices numbers.
NF3SOCK and NF3FIFO are now defined for sockets and
fifos in the file system.
- File attributes
-
The blocksize (the size in bytes of a block in the
file) field has been removed. The mode field no longer
contains file type information. The size and fileid
fields have been widened to eight-byte unsigned
integers from four-byte integers. Major and minor
device information is now presented in a distinct
structure. The blocks field name has been changed to
used and now contains the total number of bytes used by
the file. It is also an eight-byte unsigned integer.
- Set file attributes
-
In the NFS version 2 protocol, the settable attributes
were represented by a subset of the file attributes
structure; the client indicated those attributes which
were not to be modified by setting the corresponding
field to -1, overloading some unsigned fields. The set
file attributes structure now uses a discriminated
union for each field to tell whether or how to set that
field. The atime and mtime fields can be set to either
the server's current time or a time supplied by the
client.
- LOOKUP
-
The LOOKUP return structure now includes the attributes
for the directory searched.
- ACCESS
-
An ACCESS procedure has been added to allow an explicit
over-the-wire permissions check. This addresses known
problems with the superuser ID mapping feature in many
server implementations (where, due to mapping of root
user, unexpected permission denied errors could occur
while reading from or writing to a file). This also
removes the assumption which was made in the NFS
version 2 protocol that access to files was based
solely on UNIX style mode bits.
- READ
-
The reply structure includes a Boolean that is TRUE if
the end-of-file was encountered during the READ. This
allows the client to correctly detect end-of-file.
- WRITE
-
The beginoffset and totalcount fields were removed from
the WRITE arguments. The reply now includes a count so
that the server can write less than the requested
amount of data, if required. An indicator was added to
the arguments to instruct the server as to the level of
cache synchronization that is required by the client.
- CREATE
-
An exclusive flag and a create verifier was added for
the exclusive creation of regular files.
- MKNOD
-
This procedure was added to support the creation of
special files. This avoids overloading fields of CREATE
as was done in some NFS version 2 protocol
implementations.
- READDIR
-
The READDIR arguments now include a verifier to allow
the server to validate the cookie. The cookie is now a
64 bit unsigned integer instead of the 4 byte array
which was used in the NFS version 2 protocol. This
will help to reduce interoperability problems.
- READDIRPLUS
-
This procedure was added to return file handles and
attributes in an extended directory list.
- FSINFO
-
FSINFO was added to provide nonvolatile information
about a file system. The reply includes preferred and
maximum read transfer size, preferred and maximum write
transfer size, and flags stating whether links or
symbolic links are supported. Also returned are
preferred transfer size for READDIR procedure replies,
server time granularity, and whether times can be set
in a SETATTR request.
- FSSTAT
-
FSSTAT was added to provide volatile information about
a file system, for use by utilities such as the Unix
system df command. The reply includes the total size
and free space in the file system specified in bytes,
the total number of files and number of free file slots
in the file system, and an estimate of time between
file system modifications (for use in cache consistency
checking algorithms).
- COMMIT
-
The COMMIT procedure provides the synchronization
mechanism to be used with asynchronous WRITE
operations.
Next: 2. RPC Information
Connected: An Internet Encyclopedia
1.7 Changes from the NFS Version 2 Protocol
|
|
|
 |

|
 |
|
Protect yourself from cyberstalkers, identity thieves, and those who would snoop on you.
| |
Stop spam from invading your inbox without losing the mail you want. We give you more control over your e-mail than any other service.
| |
Block popups, ads, and malicious scripts while you surf the net through our anonymous proxies.
| |
Participate in Usenet, host your web files, easily send anonymous messages, and more, much more.
| |
All private, all encrypted, all secure, all in an easy to use service, and all for only $5.95 a month!
|
|
Service Details
|
|
 |
|