Wait you thought Samba and SMB and CIFs are all the same thing? Well kind of. The are all part of the same protocol that allows file sharing, and gives you the ability to create shares (and also printer sharing, but I dont think anyone does that anymore)

They all provide a thing that looks like this (a folder looking thing that you cant select or copy, but you can go in there and copy/read/write everything – if you have the permissions to do so – and of course everything in that folder is not on your computer but on a different remote pc; unless your doing a local view to see/troubleshoot how your shares would look to others):


Samba is made by linux/unix

SMB/CIFS is made by windows/microsoft

NOTE: when people say I have a “CIFS share”, its better to say I have a “SMB share “or a “Samba share” – more on this below

They use the same protocols to talk to each other.

Samba was originally made to emulate SMB, so that linux pcs could share files with Windows PCs. Now MACs also have samba, so they support SMB. So MACS Windows and Linux can all happily talk via Samba & SMB.

With each new version of Windows, a new SMB version comes out. Then Samba team has to be ready to update their code to support the new features in SMB.


The breakdown:

  • SMB 1 introduced in DOS days, and was also called CIFS in its later version (think of it like SMB 1.1). First versions of Samba 1.x supported SMB and CIFS
  • SMB 2.0 / SMB2.02 introduced with Windows Vista/2008 is supported with Samba 3.6
  • SMB 2.1 introduces with Windows 7 / Windows 2008 R2 is supported with Samba 4.0.0
  • SMB 3.0 introduced with Windows 8 / Windows 2012 is supported by Samba 4.2
  • SMB 3.02 introduced in Windows 8.1 / Windows 2012 R2 is not yet supported by any version of Samba (its in the works I assume)
  • SMB 3.11 introduced in Windows 10 is not yet supported by any version of Samba (its in the works I assume)

Here is a link showing what each version of SMB supports (feature list): https://en.wikipedia.org/wiki/Server_Message_Block

Here is more information about samba: https://en.wikipedia.org/wiki/Samba_(software)


Brief History:

SMB -> CIFS -> SMB2 -> SMB2.1 -> SMB3 -> SMB 3.02 -> SMB3.11

* SMB – 1980s – used by PC-DOS 1984, LAN Manager – 1988, Implemetned on Unix and other operating systems (part of the OS or as a suite like Samba version 1)
* CIFS – 1996 – used by Windows NT 4.0 in 1996, IETF draft – Common Internet Filesystem in 1997, SNIA Technical Specification in 1999
* Back to SMB – 2000
* SMB 2.0 (or SMB2) – 2008
* SMB 2.1 (or SMB2.1) – 2010
* SMB 3.0 (or SMB3) – 2012
* SMB 3.0.2 (or SMB3.02)
* SMB 3.11 (or SMB3.11)


Why its wrong to use the word Cifs:

Why CIFS is commonly used and its incorrect to used

* CIFS means SMB as it existed in Windows NT 4 (old SMB1)
* However, the term CIFS is comomnly used incorrectly to refer to more recent version of SMB like SMB2, SMB2.1 or SMB3
* Cifs is sometimes used as a marketing term to identify specific products, indepent of the SMB version implemented
* Using the term “CIFS” to refer to SMB2.0 or SMB 3.0 is the equivalent to
– using POP to refer to IMAP (in email protocols)
– using WEP to refer to WPA (in wireless security)

Source: http://www.snia.org/sites/default/education/tutorials/2012/fall/file/JoseBarreto_SMB3_Remote_File_Protocol_revision.pdf

Another interesting read, why its wrong to use the word cifs: http://blog.fosketts.net/2012/02/16/cifs-smb/



Excerpt from samba website showing how smb and samba relate:

Here is a link showing which versions of samba, implement which versions of SMB.


Excerpt from that site (2015-03-10):

  • SMB 2.0 (SMB2.02 dialect) was introduced with Windows Vista/2008.
    • Samba 3.6 added basic support for SMB2.0. This support was essentially complete except for one big item:
      • durable file handles (Added in Samba 4.0.0)
  • SMB 2.1 was introduced with Windows 7/Windows 2008R2.
    • Basic support for SMB 2.1 was added in Samba 4.0.0
    • Features done:
      • multi credit/large MTU (Added in Samba 4.0.0)
      • dynamic reauthentication (Added in Samba 4.0.0)
      • writethrough (Added in Samba 4.0.0)
      • leases (Added in Samba 4.2.0)
    • Features TODO:
      • resilient file handles
      • branch cache
  • SMB 3 (previously known as SMB2.2 dialect) was introduced with Windows 8 and Windows Server 2012. SMB3 dialect defines the following features:
    • Basic support for SMB3 is included in Samba 4.0.0 and later.
    • security improvements (Added in 4.0.0)
      • improved faster more secure packet signing
      • secure negotiate protection against downgrade attacks
      • share level encryption
    • directory leases
    • persistent file handles
    • multi channel
    • witness notification protocol (a new RPC service)
    • interface discovery (a new FSCTL)
    • SMB direct (SMB 3 over RDMA)
    • Support for a misc. set of loosely related storage features for virtualization (new fsctls, T10 block copy offload, TRIM etc.)
    • remote shadow copy support
    • branch cache v2
  • SMB3.02 was introduced in Windows 8.1 (Windows ‘Blue’) and Windows Server 2012 R2. Among the new protocol features are those particularly useful for virtualization (HyperV):
    • SMB3.02 dialect is not yet negotiated by Samba servers
    • SMB3.02 dialect can be requested by the Linux cifs client (“vers=3.02” on mount) but the new optional features, unique to SMB3.02, are not requested.
    • Unbuffered I/O flags (ie a ‘no cache flag’ which may be sent on read or write)
    • New RDMA remote invalidate flag
    • MS-RSVD (a set of remoteable FSCTLs that improve “SCSI over SMB3”)
    • Asymmetric Shares (extensions to Witness protocol to allow moving users of one share to a different server, eg for load balancing or maintenance – previously witness protocol could only do this on a per server rather than per-share basis).
  • SMB3.11 is expected to be introduced in Windows 10. Among the new features defined so far are:
    • Improvements to security negotiation (“negotiate contexts”) and dynamically selectable Cipher and Hash Algorithms. Implemented in the Samba client libraries (in master branch) but not in Samba server yet.
    • New FSCTL for server side copying of file ranges (implementation waiting on Windows server to test against)

Leave a Reply

Your email address will not be published. Required fields are marked *