Let me put on my “grumpy old storage guy” hat for a moment: CIFS is not the network storage protocol used by Microsoft Windows, and many other clients. CIFS is dead, and has been for many years. The protocol used to share files over a LAN by the majority of personal computers is called SMB. I wish everyone in the industry would get that through their heads.
Dear marketers: If you worked for Ford, would you off-handedly call your latest car “the Edsel”? And if you did, would you expect to still have a job the next day? It’s time to stop saying “CIFS”.
What Exactly Is CIFS And Why Was It So Bad?
Way back in prehistoric times (the mid-1980’s), IBM invented the protocol to share files over a local area network (LAN). Microsoft took this protocol, known as “server message block” (SMB), and merged it with LAN Manager, which had been codeveloped with 3Com, and released it as the preferred network storage mechanism in Windows for Workgroups.
With the Internet gaining prominence in the mid-1990’s, many companies scrambled to adopt Internet protocol (IP) rather than older standards like IPX/SPX and the NetBIOS API. As part of the Windows 95 push, Microsoft rebranded an updated version of SMB as “Common Internet File System” or CIFS. Much of the protocol was also submitted to the IETF as an Internet draft, and many other operating systems and implementations sprouted up.
“CIFS” is pronounced as “sifs”, which sounds like a communicable disease
By the year 2000, most operating systems had some sort of CIFS client support, and many included a CIFS server as well. One notable product was Samba, an open source reverse engineering of CIFS and SMB and associated protocols for UNIX systems. Other companies licensed Microsoft’s client or server source code or develop their own implementations.
SMB2 is not CIFS
Over the years, CIFS gained a bad reputation. Buggy client/server interactions, proprietary extensions, and poor performance over high latency networks (especially, ironically, the Internet) sullied its reputation. Much of this was deserved: CIFS just wasn’t intended for this kind of use, and the many and frequent modifications made by Microsoft and others didn’t help matters.
Microsoft set about writing an entirely new version of server message block (SMB), releasing the result with Windows Vista in 2006. The resulting protocol, SMB 2.0 is radically different from CIFS. SMB2 is dramatically streamlined, with much of the tacked-on cruft removed. Pipelining allows multiple requests to be batched, improving performance over high latency links, and durable file handles survive brief network outages, a frequent occurrence with wireless networks.
SMB 2.0 also adds important functionality: Symbolic links are introduced, 128 bit file handles improve performance and allow larger files, security is improved, and file properties can be cached by the client. As Windows clients adopted Vista, and Windows Server 2008 was implemented, SMB 2.0 gradually took over the Windows world.
Although the various CIFS implementations continued in widespread use, their days were numbered. SMB 2.0 was simply too good to ignore, and Microsoft released sufficient implantation details to allow fully-compatible third-party clients and servers to appear.
Today, the vast majority of NAS servers and clients support SMB 2.0, although CIFS is usually still offered as a fallback. Apple made waves when Mac OS X 10.7 “Lion” unceremoniously dumped CIFS support, but most devices were fully capable of supporting SMB 2.0 anyway. Microsoft has since introduced SMB 2.1 (in Windows 7 and Server 2008 R2) and will soon release SMB 2.2 as part of Windows 8 has released SMB 3 as part of Windows 8 and Windows Server 2012, but that is a story for another day.
Why You Should Stop Saying “CIFS” and Start Saying “SMB”
I cringe every time I hear someone in the enterprise storage industry say the word, “CIFS”. They are almost certainly using the word incorrectly, and instead mean to refer to SMB in general or SMB 2.0/2.1 in particular. Enterprise storage marketers and engineers ought to know the difference between these protocols by now, but there’s an even more important reason for them to get the nomenclature right.
Put simply, CIFS sucks. Everyone who knows anything about storage can relate to the pain and suffering of heterogeneous CIFS implementations. Even those who have only experienced it in a homogenous Windows network have experienced slowness, incompatibility, and server disconnects. Everyone hates CIFS, so why do allegedly-technical people continue to use that inappropriate name?
Just ask yourself, “does CIFS make me look stupid?”
I imagine that many people just aren’t aware of the great strides taken in SMB 2.0, but they are really doing themselves, their companies, and the products a disservice by using that old name. This is not a minor semantic matter: By clinging to the “CIFS” moniker, the industry is holding back adoption of a much-needed and much improved alternative, SMB 2.0. When customers hear that name, they assume it will suck and start looking for alternatives, even though the alternative is already at hand.
Stephen’s Stance
You may think I’m overreacting, or perhaps even overacting, but I’m deadly serious: It’s time to bury CIFS once and for all. The CIFS protocol was terrible, the implementations were worse, and it’s a crime to continue using that name for something as good as SMB 2.0.
Andrew vonNagy says
But what about all those Windows 2003 servers and Windows XP clients still deployed and in use in enterprises? Yes, they are a-plenty!
Just playing devil’s advocate 🙂
Andrew vonNagy
Dan Lah says
Couldn’t agree more. I’ve found myself in meetings reverting back to SMB shares instead of CIFS shares because it does bother me a bit to use the term, and there are still a lot of people who don’t use NAS that don’t understand the acronym. But, until EMC and NetApp change the terminology in their GUIs, it will persist.
Mark says
Even Microsoft calls the family “CIFS/SMB/SMB2” in SDC and elsewhere (I suspect the EU oversight is somewhat in play here), so why not use that as that is what everyone but Apple actually supports….
— mark
Anthony Vandewerdt says
Great blog post!
Sadly IBM GUIs also continue to use the term CIFS despite the fact that SAMBA is the code base.
Colin B says
When people stop referring to disk arrays as “SANs” you might stand a chance.
As to CIFS being evil and SMB being wonderful…SMB 2.0/2.1 and their persistent handles and compound operations had an impact but it was the network stack rewrite that provided the biggest boon to Windows file shares. Once people are all finally off XP and we get to see 2.2 (Win8) in the data center maybe you’ll get over the performance and availability stigma attached but for now you would just convince the world that SMB also stinks. ;).
sfoskett says
Considering how many “storage people” don’t know what “NAS” is, I refuse to bow to the will of the masses on CIFS! 🙂
Brian J. Greenberg says
Thank you Stephen — I feel the same way about the term ‘dark fiber’. Remember when it meant fiber that wasn’t used – there was no light going through it? Kind of meaningful wasn’t it.
sfoskett says
We’ve got @NetApp on board. Now let’s have @IBMStorage change their naming, too! Down with CIFS!
Dan Lah says
I disagree with you to some degree on that one – Iomega and Buffalo have helped make NAS a much more well-known name than CIFS. That being said, I have still encountered plenty of SMB-Mid-Market companies that are a little fuzzy sometimes on SAN vs. NAS.
PghMike4 says
For years, MSFT updated the SMB / CIFS implementations without releasing updated specifications. As a matter of fact, I think you can argue that they’ve never released a spec that matched any version of SMB 1 or CIFS accurately enough to use without a lot of reverse engineering.
Once upon a time, MSFT’s goal was to destroy any Internet standards by
making non-standard extensions to them, forcing people into using the
MSFT implementations of those standards. Perhaps they’ve really changed their stripes, and SMB 2’s spec is both accurate, and will be updated over time. But it’s too early to say that MSFT really understands what a protocol specification is, much less knows how to maintain the validity of one. Or that, should a little light bulb go off in their heads, and this understanding magically appears in their heads, that they even want to do so.
And of course, we have the issue of whether anyone can implement SMB 2 without requiring a license from MS, and if a license is required, what type of license is required. None of that is specified by MS today.
In short, its way too early to declare SMB 2 anything more than another rev of CIFS. Time will tell.
Jason Boche says
I get your stance on CIFS, but aren’t you the same person who spear headed the Fibre Channel over Token-Ring movement? 🙂
Nick Howell says
I’m a NetApp’er, and I approve this message.
(did that sound political enough?)
Roger Luethy says
Just great ! Thanks !
Darren Ehrlich says
This is absolutely tops!!
Rock Solid IT says
Great article, thanks for sharing.
Dantalion says
SMB2 this aritcle is one year old and the most recent version of Samba is now 3.0.23 can you imagen.
Obdurodon says
People use “CIFS” because for years they got beaten over the head when they said “SMB”. This, in turn, happened because SMB was proprietary and CIFS was supposedly a standard. Blame Microsoft’s marketing – and perhaps their legal department – for that. Others have spent years trying to accommodate them, and it will take a while for their own insistence on “CIFS” to be undone.
Skywalker says
@fc2b6bfdc72d531e23e4e14f617e0dbf:disqus SMB2 != Samba 2.x. The reference is to the protocol, not an implementation of said protocol.
Alex G says
Great post. And i’m only an year late reading it. Now get off my lawn!
Pete says
I second Obdurodon’s comments. I used nothing but “SMB” for most of my IT career, but the combination of the above, as well as Solution Providers, Manufacturers, burning in “CIFS” into the IT lexicon forced me to reluctantly adapt. Just like it sounds silly now to hear someone say, “open up the DOS prompt in Windows…” There are many definitions that get mangled in IT. Some are funny, and others are frustrating. Great article though. Keep up the good work.
Don Montalvo says
Only misguided curmudgeons recommend CIFS.
Most IT folks know better. Or they should. 😉
Heck, most lowly Mac IT guys know to use SMB.
Don Montalvo, TX
Johann says
Thank you for this history! Just edited the first line on the Wikipedia article for SMB to clarify, since it misguidingly called CIFS the “modern dialect” of SMB.
Jason Hall says
Who ever named it “Fibre Channel” was an idiot.
John says
It’s 2016, hate that I’m going to get your panties all bunched up, but there are still people actually using CIFS for various dumb or archaic/legacy implementations.
Frank Underboob says
Wait, are you saying that it means something different now?
Prithu Ganguli says
O hi, I had to use ‘Sifs’ up until recently because I was working for an Infra which had like 70% of it still lagging behind (at least 40% legacy). EMC Celerra tied (literally) to Win 2003 DCs. It was a horror show with Some Sev 1 Apps still stuck in NT and then 2003 DCs, etc. Then there were some new 2012 DCs installed all of a sudden and then in under a month they linked up with Azure! I bailed. Screw migration experience. Better save myself a headache for now.
Lorenzo_G says
Surely SMB means it’s only for Small and Medium Businesses (as for WfW), while CIFS is THE Common Internet File System?
Besides, in the Linux/Unix world, smb/cifs is implemented with packages named cifs. Getting that changed will take quite some time.
Rachel K says
As an IT Technician, I had issues using SMB on a iMac connecting to a server of a PC, as it kept dropping the connection. The solution was to use CIFS and it worked fabulously. Just sayin’!
NetWorker says
Exactly. NAS4Free and FreeNAS both use the term as of 2018.
k3gsie says
We are in this predicament right now. We have a server set up with ZFS over SMB and photoshop files disappear when you edit the psd file. They are working on the fix but in the meantime the only workaround was to use CIFS.
martin0641 says
Necro! Yes, today, it’s also used for fiber that is not part of the “regular” internet.
Like, if it’s between two datacenters for replication over the 10 network, or if the NSA uses some strands for their intranet purposes.
Not saying I agree with it, but thats how people us it.
Frank Underboob says
Eesh. That’s just stupid. So basically, the same idiocy as the whole “Dark Net” thing?
nora says
Recently deployed a NetApp A800; still called CIFS at the end of 2019.
palevelmode says
Like to necro this in memory of dark fiber 😀
palevelmode says
How about SMB1?
Frank Underboob says
Amen!
Reeko says
Yet, how do you auto-mount without CIFS?
Bonaventure says
Hilarious!
Ridiculous!
This is comparing apples with oranges.
First, learn that there is an OLD Microsiph protocol called CIFS based on the early SMB1.
Which is OBSOLETE also on Windoze boxes since Vista (the glorious OS following NT ROTFL)
Second, when linuxxers are talking about cifs, they mean the FILE SYSTEM, which is UP-TO-DATE,
while the samba file system (smbfs) is deprecated.
So we “mount -t cifs” and feel well with this.
On linux, cifs-utils implements the cifs file system, while samba-client implements the SMB protocol(s).
See?