1.3 Overview

Client systems use the Common Internet File System (CIFS) Protocol to request file and print services from server systems over a network. CIFS is a stateful protocol, in which clients establish a session with a server and use that session to make a variety of requests to access files, printers, and inter-process communication (IPC) mechanisms, such as named pipes. CIFS imposes state to maintain an authentication context, cryptographic operations, file semantics, such as locking, and similar features. A detailed overview of how the CIFS Protocol functions is provided in [MS-CIFS] section 2.

The Server Message Block (SMB) Version 1.0 Protocol extends the CIFS Protocol with additional security, file, and disk management support. These extensions do not alter the basic message sequencing of the CIFS Protocol but introduce new flags, extended requests and responses, and new Information Levels. All of these extensions follow a request/response pattern in which the client initiates all of the requests. The base protocol allows for one exception to this pattern--oplock breaks--as specified in [MS-CIFS] section 3.2.5.42.

This document defines the SMB Version 1.0 Protocol extensions to CIFS, which provide support for the following features:

  • New authentication methods, including Kerberos. The Negotiate and Session Setup commands have been enhanced to carry opaque security tokens to support mechanisms that are compatible with the Generic Security Services (GSS).

  • Enumeration and access to previous versions of files. A new subcommand that uses a file system control (FSCTL) allows the client to query the server for the presence of older versions of files. If the server implements a file system with versioning, then this can be exposed to clients.

  • Client requests for server-side data movement operations between files without requiring the data to be read by the client and then written back to the server. As specified in [MS-CIFS], to copy a file on the server requires the client to read all of the data from the server and then write the data back to the server. The SMB Version 1.0 Protocol introduces a method by which such an operation can be done entirely on the server without consuming network resources.

  • SMB connections that use Direct TCP for the SMB transport. The CIFS Protocol supports the use of NBT for connections, as specified in [MS-CIFS] section 2.1.1.2. The SMB Version 1.0 Protocol includes a method to connect directly over TCP (see [RFC793]) without involving NetBIOS (see [RFC1001] and [RFC1002]). Information about NetBIOS is specified in [NETBEUI].

  • Support for retrieving extended information in response to share connect and file open operations. Certain server functionality and indicators (such as the need for the client to cache the contents of a share) are new in the SMB Version 1.0 Protocol and are returned to the client through these extensions to existing commands.

  • Additional SMB commands for the setting and querying of quotas by user. Provided the server supports quotas, the client can constrain the file system capacity consumed by the files of users.

Many of these capabilities are exposed in enhancements to the SMB_COM_NEGOTIATE (section 2.2.4.5) and SMB_COM_SESSION_SETUP_ANDX (section 2.2.4.6) command requests and responses.