Difference between SMB1 SMB2 and SMB3

Troubleshooting SMB Performance

Troubleshooting SMB performance can be a complex undertaking in enterprise networks where thousands of users rely on timely access to shared files.

SMB-CIFS is a commonly used Protocol to:

  • Enable users to manipulate files
  • Allow application processes to exchange data

SMB is also:

  • Widely supported (Windows, Linux, OSX, BSD, Solaris, Samba, EMC, NetApp, etc.)
  • Extremely heterogeneous which drives a huge variety of use cases and… performance levels.

Before you get started, there are a certain number of facts you need to keep in mind, before you start troubleshooting any SMB / CIFS communications.

Five Challenges of Troubleshooting Smb Performance

1. SMB Has a Variety of Versions and Dialects

There are two major versions of SMB: SMB1 and SMB2.

Please note that SMB3 is actually NOT a version but a dialect that belongs to the SMB2 version.

Difference between SMB1 SMB2 and SMB3

2. The Dialect Used Depends on the Smb Support of Both Parties

Each system supports different SMB versions. The SMB dialect used for a Communication will be defined based on the supported versions / dialects by both the Client and the Server.

Difference between SMB1 SMB2 and SMB3

As an example, you will see in this matrix how Windows system will choose which SMB dialect is to be used to communicate, based on the corresponding version (and hence the SMB dialect support).

Difference between SMB1 SMB2 and SMB3

3. Different Versions of SMB May Use Different Communication Ports

Depending on which SMB version you have used, there are different communication options:

Difference between SMB1 SMB2 and SMB3

4. Any User/Application Operation Requires Several SMB Commands

This is one of the difficult parts of troubleshooting application performance for SMB: a user operation is split between a given number of commands. The number of commands may vary depending on the version and dialect. It is important to understand the relationships that exist between the different commands, in order to be able to rebuild the user’s operation.

These commands will correspond to a high number of packets.

Overall, you have to remember that SMB / CIFS commands in a real size environment can represent gigantic volumes. 

Difference between SMB1 SMB2 and SMB3

5. From SMB2 a Single Packet May Contain Multiple Requests/Responses

From SMB2 (most SMB communications will use this), several commands can be carried by a single packet. When considering your troubleshooting tools, you need to make sure that all commands contained in a packet are reporting back.

Here is an example:

Difference between SMB1 SMB2 and SMB3

Here is what you need to know before you get started, whichever tool it is that you use to troubleshoot your SMB communication performance (packet analyzer such as, Wireshark, or real-time transaction analysis like
Skylight™ , this mostly depends on the volume of data you have to analyze, and how much time you have to do so).

Is SMB2 the same as SMB3?

The original name for SMB3 (a.k.a. SMB v3) was SMB 2.2. The initial release of SMB3 is now known as SMB 3.0. Server 2012 and Windows 8 were the first Microsoft operating systems to support it. SMB v3 adds more performance and security enhancements to the protocol.

Which is faster SMB2 or SMB3?

SMB2 was faster than SMB3. SMB2 gave me about 128-145 MB/sec. SMB3 gave me about 110-125 MB/sec.

What is SMB3 used for?

SMB 3.0 (Server Message Block 3.0) is a protocol that provides a way for a computer's client applications to read and write to files and to request services from server programs in a computer network.

Is SMB3 backwards compatible?

Even better, those modern libraries are kept up to date, can handle SMB3, and have backward compatibility.