This article assumes you're familiar with: HTTP
Though based on the low-level file system implemented by Windows, CIFS is a platform-independent file sharing system.
The Internet is rapidly opening up new ways of communicating for individuals and organizations alike. Until now, most Internet usage has been limited to simple one-way file transfers or read-only browsing. However, the demand for greater interactivity on the Internet is exploding. Now, the Common Internet File System (CIFS) protocol has been introduced to support rich, collaborative applications over the Internet.
CIFS defines a standard remote file-system access protocol for use over the Internet, enabling groups of users to work together and share documents across the Internet or within corporate intranets. CIFS is an open, cross-platform technology based on the native file-sharing protocols built into Microsoft® Windows® and other popular PC operating systems, and supported on dozens of other platforms. With CIFS, millions of computer users can open and share remote files on the Internet without having to install new software or change the way they work.
CIFS in a Nutshell
CIFS enables collaboration on the Internet by defining a remote file-access protocol that is compatible with the way applications already share data on local disks and network file servers. CIFS incorporates the same high-performance, multiuser read and write operations, locking, and file-sharing semantics that are the backbone of today's sophisticated enterprise computer networks. CIFS runs over TCP/IP and utilizes the Internet's global Domain Naming Service (DNS) for scalability, and is optimized to support slower speed dial-up connections common on the Internet.
CIFS is an enhanced version of Microsoft's open, cross-platform Server Message Block (SMB) protocol, the native file-sharing protocol in the Windows 95, Windows NT®, and OS/2 operating systems and the standard way that millions of PC users share files across corporate intranets. CIFS is also widely available on Unix, VMS, and other platforms.
Microsoft is making sure that CIFS technology is open, published, and widely available for all computer users. Microsoft submitted the CIFS 1.0 protocol specification to the Internet Engineering Task Force (IETF) as an Internet-Draft document and is working with interested parties for CIFS to be published as an Informational RFC. SMB has been an Open Group (formerly X/Open) standard for PC and Unix interoperability since 1992 (X/Open CAE Specification C209).
Not intended to replace HTTP, CIFS complements HTTP while providing more sophisticated file sharing and file transfer than older protocols such as FTP. CIFS is designed to enable all applications, not just Web browsers, to open and share files securely across the Internet.
CIFS allows multiple clients to access and update the same file, while preventing conflicts with sophisticated file-sharing and locking semantics. These mechanisms also permit aggressive caching and read-ahead/write-behind without loss of cache coherency. CIFS also supports fault tolerance in the face of network and server failures.
The CIFS protocol has been tuned to run efficiently over slow dial-up lines. The effect is improved performance for the vast number of users who today access the Internet using a modem. CIFS servers support both anonymous transfers and secure, authenticated access to named files. File and directory security policies are easy to administer. Microsoft CIFS servers are highly integrated with the operating system, tuned for maximum system performance, and easy to administer.
File names can be in any character set, not just ones designed mainly for English or Western European languages. (They can even be in Klingon if you don't have a life.) Users do not have to mount remote file systems, but can refer to them directly with globally significant names instead of ones that have only local significance.
There is also significant industry support for the CIFS protocol. Industry leaders AT&T, Data General, Digital Equipment, Intel, Intergraph, Network Appliance, and SCO are working actively with Microsoft in support of the CIFS initiative. CIFS is already widely supported in commercial software products such as AT&T Advanced Server for Unix, Digital's PATHWORKS, HP Advanced Server 9000, IBM Warp Connect, IBM LAN Server, and Novell Enterprise Toolkit, among others. In addition, CIFS is the featured file and print-sharing protocol of Samba, a popular freeware network file system available for Linux and many Unix platforms, OS/2, and VMS.
Finding a File
CIFS is based on the SMB protocol widely in use by personal computers and workstations running a variety of operating systems. The full specification (at ftp://ietf.cnri.reston.va.us/internet-drafts/
draft-heizer-cifs-v1-spec-00.txt) runs 155 pages, so we'll only look at some of the pertinent info.
For any particular file, it is assumed that the client machine will be able to determine the name of the server and the relative name within the server. In the URL "file://fs.megacorp.com/users/fred/stuff.txt," the client should know how to parse the string so it knows that this represents a file on the server fs.megacorp.com, located at the path /users/fred/stuff.txt.
Once the server name has been determined, the client needs to resolve that name to a transport address. This s