Close

SMB not CIFS – Why you should stop referring to CIFS

Information Technology should be approached with a scientific methodology and therefore our language should be exact when we’re discussing IT topics. It’s way past time to drop the term CIFS and use the correct acronym when we’re referring to SMB.

CIFS - You keep using that word. I do not think it means what you think it means.

Even Inigo Montoya knows not to use ‘CIFS’

CIFS has persisted well past its expiry date. No supported versions of Windows use CIFS and SMB has changed dramatically since the introduction of SMB 2.0 in Windows Vista and Windows Server 2008.

Why?

The versions of SMB that we discuss in relation to currently supported versions of Windows (and other products) are not the same as SMB 1.0 or CIFS; therefore you should not confuse your audience. Here’s another way of putting it – you are not your parents or grandparents and no-one refers to you with your father’s name. It’s the same with CIFS and SMB.

What is CIFS?

CIFS, or Common Internet File System, is a network protocol that provides clients access to files on remote servers. It is a dialect of SMB 1.0. From the Introduction section in [MS-CIFS]: Common Internet File System Protocol on MSDN:

The extended CIFS Protocol is known as the Server Message Block (SMB) Version 1.0 Protocol

CIFS is a dialect of the Server Message Block (SMB) protocol, which was originally developed by IBM Corporation and then further enhanced by Microsoft, IBM, Intel, 3Com, and others. There are several dialects of SMB. A standard for the SMB protocol, covering dialects prior to CIFS, was published by X/Open (now The Open Group) as [XOPEN-SMB].

The meaning of the term “CIFS” has changed since it was first introduced. It was originally used to indicate a proposed standard version of SMB based upon the design of the Windows NT 4.0 operating system and Windows 2000 operating system implementations. In some references, “CIFS” has been used as a name for the SMB protocol in general (all dialects) and, additionally, the suite of protocols that support and include SMB. In this document, the term “CIFS” is used specifically to identify the Windows NT LAN Manager (NTLM) dialect of SMB as designed for use with Windows: in particular, Windows NT Server 3.51 operating system and Windows NT Server 4.0 operating system, Windows NT Workstation 4.0 operating system, and Microsoft Windows 98 operating system.

So, unless you are specifically talking about Windows NT 3.x and 4.x, you should not use ‘CIFS’ and we can no longer interchangeably use CIFS and SMB.

What is SMB?

SMB, or Server Message Block, is a network protocol that provides clients access to files on remote servers. Originally developed by IBM, SMB has been extended by Microsoft and used in OS/2, LAN Manager and Windows. SMB has gone through several revisions and since SMB 2.0 (introduced with Windows Vista), is quite different to CIFS and SMB 1.0.

SMB 2.0 and above provide much-improved performance than SMB 1.0 or CIFS, have very different specifications and therefore cannot be considered the same as CIFS or SMB 1.0. If someone says ‘CIFS’ today, they’re most likely referring to SMB 2+; however, their terminology is incorrect.

History

The various versions of SMB available with Windows and other operating systems:

  • SMB 1.0 – [1980’s – 2007] LAN Manager for MS-DOS / OS/2, Windows for Workgroup 3.1.1, Windows NT 3.x, Windows 95, Windows NT 4.x, Windows 98, Windows 2000, Windows ME, Windows XP, Windows Server 2003
  • SMB 2.0 – [2007] Windows Vista, Windows Server 2008
  • SMB 2.1 – [2009] Windows 7, Windows Server 2008 R2
  • SMB 3.0 – [2012] Windows 8, Windows Server 2012
    • Originally called SMB 2.2
    • First version of Windows to make SMB 1.0 optional
  • SMB 3.0.2 – [2013] Windows 8.1, Windows Server 2012 R2
  • SMB 3.1.1 – [2015] Windows 10, Windows Server 2016

Stop Using SMB1

Here’s a really important article from Microsoft on why you should stop using SMB1 in your environments: Stop using SMB1

Further Reading

For further reading on why you should use ‘SMB’, see the following articles:

3rd Party Articles

Microsoft Articles and Documentation