About feature additions in macOS for SMB 2 and 3

Learn which SMB features were added in each version of macOS. 

This article is intended for enterprise and education network administrators.

Microsoft creates and maintains the Server Message Block (SMB) Protocol. Here are notable features added to Apple's implementation of SMB in macOS when the Mac is a client. Unless stated otherwise, each feature described below was introduced in that version and maintained in later versions.

macOS Catalina 10.15

Feature Description
Adaptive pipelining improvements Pipelining allows for varying segment numbers and sizes, while retaining multithreading.
Pipelining writes, or uploads

Maximum number of segments: 6

Maximum segment size: 1 MB

Pipelining reads, or downloads

Maximum number of segments: 6

Maximum segment size: 1.25 MB

Persistent handles Continuously available servers use persistent handles. Continuously available servers appear to be a single server, but are in fact multiple nodes mirroring the data, allowing the share to remain up continuously. This is common in cloud and cluster setups. If any one node becomes unavailable, the persistent handle is used to connect to a different node.
Time Machine server requirements adjusted Any server that is continuously available can be used as a Time Machine backup destination.
Netbios name resolution deprioritised Name resolution now uses Bonjour, then DNS, then NetBios. macOS used to prioritise Bonjour, then NetBios, then DNS.
SMB 1 always uses signing bit The signing bit when connecting via SMB 1 used to be optional.

macOS Mojave 10.14

Feature Description
Adaptive pipelining improvements Pipelining is now multithreaded but uses a fixed number and size of segments.
Pipelining writes, or uploads

Number of segments: 4

Segment size: 1 MB

Pipelining reads, or downloads

Number of segments: 4

Segment size: 512 KB

macOS High Sierra 10.13

Feature Description
Simplified Finder browsing Finder can be adjusted to browse the contents of folders faster.
Directory leasing Directory leasing lets the client to better cache directory enumeration information.
File leasing File leasing lets the client to better cache file data locally and reopen files more quickly through deferred closure of files.
Adaptive pipelining Rather than using a set number of segments, macOS adjusts the number of segments dynamically to upload or download automatically based upon network conditions. macOS also adjusts the size of each segment automatically, improving performance.
Pipelining writes, or uploads

Maximum number of segments: 4

Maximum segment size: 512 KB

Pipelining reads, or downloads

Maximum number of segments: 4

Maximum segment size: 1 MB

masOS Sierra 10.12

Feature Description
Durable handle v2 and file lease v2

Durable handles and leasing let a client reconnect to a share and continue working on a file without losing data. The v2 of leasing and durable handles allows the reconnect feature set to be used more reliably.
Time Machine macOS can back up to servers that support the needed features.

macOS El Capitan 10.11

Feature Description
Load balancing servers via DNS In some environments, multiple servers are hosting the same data, and load balanced by round robin DNS. One DNS "A" record points to multiple IP addresses. macOS evaluates and uses currently mounted shares rather than remounting the same share repeatedly, once per IP address.
Pipelining writes, or uploads

Number of segments: 4

Maximum segment size: 512 KB

Pipelining reads, or downloads

Number of segments: 4

Maximum segment size: 1 MB

Directory caching macOS caches contents of a directory for up to one minute after ceasing to browse, which lets an end user browse out and back into a directory without having to redownload the contents.

masOS Yosemite 10.10

Feature Description
SMB 3 is introduced macOS adds support for the SMB 3.0 and 3.0.2 dialects.
Validate negotiate This is an additional security feature in SMB 3 that helps ensure that the initial negotiations aren't modified.
SMB 3 signing Security signatures are sent in each request.
SMB 3 encryption Traffic between the client and server can be encrypted.

macOS Mavericks 10.9

Feature Description
SMB 2 is introduced Before Mavericks, only SMB 1 is supported. Mavericks adds support for SMB versions 2.0.2 and 2.1. Mounting a share using "cifs://" will use SMB 1.
Symbolic link reparse points Symbolic link reparse points seamlessly redirect a user from a file or folder to another location.
Distributed File System (DFS) DFS lets users connect to multiple servers using only a single DNS name.
Compound requests and replies More than one related request or response can be sent in a single packet.
SMB 2 signing Security signatures are sent in each request.
Copy chunk The SRV_COPYCHUNK_COPY command is used to request that a server copy data from and to itself without macOS downloading the data first.
AAPL create context AAPL is Apple's extension to the SMB protocol to better support macOS semantics. Using the AAPL create context indicates that the extension is in use.
Durable Handles Durable handles let clients reconnect to shares without losing data.
Local Kerberos authentication (LKDC) If an SMB server is also the KDC (key distribution centre), macOS can authenticate using Kerberos without reaching out to additional servers. This is used primarily when macOS is authenticating to a macOS hosted share.
Pipelining Pipelining allows for asynchronously transferring sections of a file. If a file is 10 MB large, the file can be sent in ten different chunks, each 1 MB large. However, with pipelining, multiple segments may be sent at one time without waiting for a transfer to complete, which speeds up transfers. SMB 2.0 and earlier allows for segments up to 64 KB large. SMB 2.1 allows for larger segments.
Pipelining writes, or uploads

Number of segments: 2

Maximum segment size: 512 KB

Pipelining reads, or downloads

Number of segments: 4

Maximum segment size: 1 MB

More resources

View Apple's SMB directory.

Published Date: