What version of SMB2 am I using on my Windows file server?

Note: This post is now obsolete. Please refer to this newer post which includes coverage of  SMB 3.0:
http://blogs.technet.com/b/josebda/archive/2012/06/06/windows-server-2012-which-version-of-the-smb-protocol-smb-1-0-smb-2-0-smb-2-1-or-smb-3-0-you-are-using-on-your-file-server.aspx

 


 

I recently talked to a customer that was surprised to hear that their Windows 7 clients were not using the latest version of SMB2 to talk with their Windows Server 2003 file servers.

I explained to him that, in order to use SMB2, both sides of the connection have to support it. If not, they will negotiate down to the highest version that both support.

I also explained that Windows actually uses 2 different versions of SMB2:

  • SMB2 (technically SMB2 version 2.002) which is the version on Windows Vista SP1 (or later SP) and Windows Server 2008 (or any SP)
  • SMB2.1 (technically SMB2 version 2.1) which is the version on Windows 7 (or any SP) and Windows Server 2008 R2  (or any SP)

However, all versions offer the ability to negotiate the SMB client and server capabilities and they will talk to older versions at their level. This “negotiate” process happens automatically and it is transparent to end users and applications.

Here’s a table to help you understand what version you end up using, depending on what Windows client version is talking to what Windows Server version: 

Client / Server OS Previous versions of Windows Windows Vista SP1+ Windows Server 2008 Windows 7 Windows Server 2008 R2
Previous versions of Windows SMB 1 SMB 1 SMB 1
Windows Vista SP1+ Windows Server 2008 SMB 1 SMB2 (v2.002) SMB2 (v2.002)
Windows 7 Windows Server 2008 R2 SMB 1 SMB2 (v2.002) SMB2.1

 If you don’t know what changed from SMB1 to SMB2, I recommend that you read this blog post:
http://blogs.technet.com/b/josebda/archive/2008/12/09/smb2-a-complete-redesign-of-the-main-remote-file-protocol-for-windows.aspx

For details on what changed from SMB2 to SMB2.1, you can check this deck from SNIA’s Storage Developer’s Conference, delivered by David Kruse, Microsoft’s Developer Lead on the SMB2 team:
http://www.snia.org/events/storage-developer2009/presentations/tuesday/DavidKruse_SMBv21.pdf

 


Note 1: If you consider yourself an SMB2 geek and you actually want to understand the SMB NEGOTIATE command in greater details, you can read the MS-SMB2 protocol documentation:

Note 2: During the recent SNIA CIFS/SMB/SMB2 PlugFest, the T-shirt shown below was handed to every attendee. It’s a play on a diagram from the MS-SMB2 protocol documentation, with a few “customizations” from the original version.

clip_image002