SMB Protocol Versions
SMB 1.0
SMB 2.0
SMB 3.x
SMB 1.0 (CIFS)
SMB 1.0, also known as CIFS (Common Internet File System), was the original implementation of the Server Message Block protocol introduced in the 1990s. It provides basic file sharing, printer sharing, and named pipe services.
Key Features
- File and printer sharing over LAN
- Simple authentication (LM, NTLM)
- Extended attributes via NTFS
Typical Use Cases
- Legacy Windows NT/2000 environments
- Embedded devices with limited resources
Sample Configuration
# Enable SMB1 on Windows Server
Set-SmbServerConfiguration -EnableSMB1Protocol $true
# Verify SMB1 status
Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol
⚠️ Microsoft recommends disabling SMB1 due to security vulnerabilities. See the FAQ for guidance.
SMB 2.0 / 2.1
Introduced with Windows Vista and Windows Server 2008, SMB 2.0 dramatically improved performance and added support for larger buffers, pipelining, and larger file sizes.
Enhancements Over SMB 1.0
- Reduced command overhead (compound requests)
- Support for 64‑KB buffers (up from 4 KB)
- Improved durability with durable handles (SMB 2.1)
Sample Code (PowerShell)
# Enable SMB2 only
Set-SmbServerConfiguration -EnableSMB2Protocol $true -EnableSMB1Protocol $false
# List active SMB dialects
Get-SmbServerConfiguration | Format-List EnableSMB2Protocol,EnableSMB1Protocol
Compatibility Matrix
| OS | SMB 2.0 Support | SMB 2.1 Support |
|---|---|---|
| Windows 7 / Server 2008 R2 | ✓ | ✓ |
| Windows 8 / Server 2012 | ✓ | ✓ |
| Windows 10 / Server 2016 | ✓ | ✓ |
SMB 3.0 – 3.1.1
SMB 3.x, introduced with Windows 8/Server 2012, adds security enhancements such as encryption, multi-channel, and improved resiliency for cloud and hyper‑V scenarios.
Major Features
- End‑to‑end encryption (AES‑128‑CCM)
- Multichannel – simultaneous use of multiple network interfaces
- Continuous availability (SMB 3.0) and transparent failover (SMB 3.0)
- SMB Direct (RDMA) for ultra‑low latency
- SMB 3.1.1 – pre‑authentication integrity (SHA‑256)
Enabling Encryption
# Require encryption on a specific share
Set-SmbShare –Name "SecureDocs" –EncryptData $true
# Verify encryption status
Get-SmbShare –Name "SecureDocs" | Select-Object Name,EncryptData
Performance Comparison
| Metric | SMB 2.1 | SMB 3.0 | SMB 3.1.1 |
|---|---|---|---|
| Max Throughput (Gbps) | 5 | 10 | 12 |
| Encryption Overhead | ~5% | ~3% | ~2% |
| Latency (us) | 120 | 80 | 70 |
For detailed migration guidance see the Migration Guide.