in

Common Internet File System (CIFS) – A Deep Dive into the Foundational Protocol

As an IT professional, few technologies have been as foundational to modern networking as the Common Internet File System, or CIFS. While newer protocols have taken over today, understanding CIFS provides unique insights into how networked computing evolved. This comprehensive guide will unpack what CIFS is, how it works under the hood, the story of its development, and its lasting impact.

CIFS laid the groundwork for so much of what we take for granted – file sharing, permissions, opportunistic locking. My goal is to make this technical topic accessible and show why all tech geeks should appreciate the ingenuity behind CIFS!

CIFS – Enabling the Shared Files of Networked Computing

It‘s hard to imagine a world today without easy access to files stored on shared servers and drives across networks. But this was the problem CIFS first tackled back in the early 1980s.

At the time, personal computing was still in its infancy. The internet consisted of limited academic and government networks. LANs (local area networks) were just emerging in businesses, allowing connections between desktop PCs.

In this environment at IBM, innovative engineers like Barry Feigenbaum and Thomas R. Ashworth created what they called the "Common Internet File System." It offered a way for computers on primitive corporate networks to share files, directories, and printers.

The name itself provides a hint – CIFS was intended to provide seamless file access, whether computers were on a local LAN or across the fledgling internet. Of course, true internet integration would come later.

CIFS – The First Step Toward Network Integration

In those early networked computing days, accessing a remote file meant using inefficient "remote procedure calls" that transferred whole files between servers. There was no concept of simultaneous shared access.

CIFS introduced something revolutionary – a file system independent of the host computer. Shared files existed on the network itself. Programs could interact with them using familiar operations like open, read, write, and close.

This meant seamless access to remote files as if they were local. Even better, CIFS allowed file locking so multiple users could collaboratively edit documents across the network!

You can see why CIFS quickly became the standard for early LANs. It overcame huge barriers to bring distributed network computing closer to reality.

The SMB Connection – CIFS as a Dialect

Now if you‘ve heard of CIFS, you‘ve likely also heard of SMB – Server Message Block. The connection between them is critically important.

SMB was actually developed prior to CIFS in the mid 1980s. It provided a general framework for communication between clients and servers. But SMB alone had limitations for effective file and print sharing.

Enter CIFS. Microsoft incorporated CIFS as a dialect of SMB focused specifically on file system access. It was a set of improvements and extensions on top of SMB‘s messaging foundation.

You can think of it as SMB providing the basic language, while CIFS added the specialized vocabulary to handle file and print services. Together they formed the standard protocol for Windows networks that we now call CIFS/SMB.

A Tale of Two Standards – The Rise of CIFS

In the late 1980s and early 90s, CIFS and SMB battled another standard for supremacy over LAN file sharing – NFS (Network File System).

NFS was created by Sun Microsystems as part of the booming UNIX market. It competed directly with the IBM/Microsoft CIFS system. These "File Wars" continued through the 90s as the two protocols vied for market share.

But by the late 90s, CIFS/SMB had won out as the de facto standard. Microsoft‘s growing dominance in PC operating systems proved decisive. Almost all LAN traffic would soon rely on either CIFS or SMB.

Understanding the CIFS Architecture

Now that we‘ve covered the history behind CIFS, let‘s look under the hood at how it actually works from an architecture standpoint.

CIFS follows a client-server model. It relies on request-response message passing semantics. Here are the key components:

  • Client – The CIFS client makes requests and processes responses. It might send a request to open a file on a shared drive for example. Client software is implemented in operating systems like Windows.

  • Server – The CIFS server handles requests from clients. It manages file shares, printers, security, locking, and other shared resources. Popular CIFS server software includes Samba and Windows Server.

  • Network – The underlying network enables communication between clients and servers. CIFS can operate on top of multiple network protocols but mainly relies on TCP/IP and NetBEUI.

  • Application – Client applications like Word processors integrate with the CIFS client software to provide seamless access to remote shares. Users interact with the application interface.

Now let‘s walk through what happens in a typical CIFS file access scenario:

  1. A NetBIOS CIFS session initializes between client and server computers.

  2. An SMB dialect negotiation occurs – the systems agree on a common "language" like SMB 1.0.

  3. The client provides authentication credentials, usually a username and password.

  4. The server validates credentials and grants access if permitted.

  5. The client makes CIFS calls like OPEN to request a file on the server.

  6. The server opens the file, provides a handle back to the client for future requests.

  7. The client reads and writes data, closes the file when done.

  8. The server manages concurrency using locks to coordinate multi-user access.

This simplified workflow shows how CIFS introduces network transparency – the file access semantics appear local to client applications.

Key Advantages of the CIFS Protocol

At its introduction, CIFS offered many groundbreaking advantages:

File Access Semantics

Client applications could access remote files using open, read, write, close operations like on a local disk. This was far simpler than previous remote file methods.

Concurrent Multi-User File Access

Unlike earlier systems, CIFS supported simultaneous shared file access between multiple clients. This enabled early "collaborative computing".

Interoperability

The CIFS protocol imposed little restriction on the underlying network transport protocol. This enabled flexibility and interoperability.

Security Contexts

CIFS allowed clients to access files based on various security contexts – e.g a user‘s individual credentials or those of a department.

Legacy Compatibility

Servers could present older resources like IBM mainframe files as CIFS shares. This aided transition from legacy platforms.

As you can see, for the era CIFS delivered groundbreaking capabilities. It overcame significant technology barriers to usher in modern network-based computing.

CIFS – Scaling Early Networks with Opportunistic Locking

Innovations like simultaneous multi-user file access made CIFS powerful, but introduced major challenges like concurrency control. How could collisions from multiple clients editing the same file be prevented?

To address this, CIFS introduced a new strategy – opportunistic locking. Clients would request a lock while accessing a file. But if denied, they could still read and cache locally. The file was only locked during writeback.

This avoided strict locking that limited concurrency. With opportunistic locking, clients remained in sync during reads, then saw lock denials at update time. Scaling network file shares suddenly became feasible.

Opportunistic locking was just one of many advances that set CIFS apart from predecessors. It enabled critical performance and reliability improvements as networks scaled up in the 90s.

The Market Embraces CIFS – Rapid Growth in the 1990s

Given its advantages over earlier protocols, CIFS adoption exploded in the 1990s alongside rapid growth in Windows PCs, networks, and the Internet:

  • By 1990, over 1 million PCs connected to networks – up from 150,000 in 1987.

  • Windows 3.x, Windows NT, and Windows 95 sent the installed base soaring – from 30 million in 1990 to 100 million PCs running Windows by 1995.

  • CIFS emerged as the standard filing sharing protocol, included in ever major operating system.

  • By 1999, Microsoft estimated over 100 million PCs were accessing files daily via CIFS/SMB shares.

CIFS powered file sharing during the PC revolution through the 90s. It represented true technology innovation that aligns with real market demand.

The CIFS Legacy – Building the Foundations

While modern protocols have superseded CIFS, its legacy profoundly impacted networked computing:

  • Introduced universal network file system concept later realized globally via HTTP, cloud storage.

  • Powered early collaborative computing by enabling remote file sharing.

  • Drove standardization – CIFS along with NFS proved two standards better than many.

  • Innovations like opportunistic locking improved performance, reliability as networks scaled.

  • Inspired and informed future protocols like SMB 2, 3 and modern Windows file sharing.

CIFS arrived at a pivotal time – personal computing required networks, and networks needed file systems. It fueled incredible technology advances.

Even today, glimpses of that heritage remain… That shared Windows drive? Under the hood, CIFS is still hard at work.

CIFS – Lessons Learned for Modern Protocols

While CIFS itself is fading into history, reexamining its early design sheds light on our modern networked world:

  • Timing matters – CIFS hit the sweet spot as PCs and LANs proliferated. Timing is often the difference between breakout success and obscurity.

  • Build for scale – Innovations like opportunistic locking were key to accommodate early network growth. Protocols must scale up gracefully.

  • User focus – Abstractions like network file systems resonated with end users. Technologists must align to user needs.

  • Foundation matters – CIFS still relies on the SMB foundation today. Base protocols enable extensions and improvements.

  • Standardization – CIFS formed a standard that still dominates Windows networks today. Avoid fragmentation.

There are countless lessons technology innovators can draw from the CIFS story even today. This retrospective reminds us how far we‘ve come in a relatively short window.

The next time you open a shared network file without a thought, take a moment to appreciate how we got here. And remember – that magic happens because of CIFS.

AlexisKestler

Written by Alexis Kestler

A female web designer and programmer - Now is a 36-year IT professional with over 15 years of experience living in NorCal. I enjoy keeping my feet wet in the world of technology through reading, working, and researching topics that pique my interest.