[We’ve had several customers ask us about SMB 2.0. Many thanks to Navjot Virk and Prashanth Prahalad providing this post. –Jill]
Vista comes with a major revision of the SMB protocol identified as SMB 2.0. The existing SMB 1.0 protocol was built to support file-serving solutions a couple of decades ago and was based on the assumptions existing then. For the past decade or so, there have been some minor changes and tweaks to the protocol to support some new functionality.
With Vista, there was an opportunity to address some of the drawbacks of the existing protocol, build on the experiences of version 1, and also address some of the key requirements for the next generation of file servers. These are some of the key enhancements in SMB 2.0:
- SMB 2.0 supports an arbitrary, extensible way of compounding operations to reduce round trips. This makes the protocol less chatty as compared to SMB 1.0. Chattiness of SMB 1.0 has often been a major pain point.
- SMB 2.0 supports much larger buffer sizes compared to SMB 1.0.
- SMB 2.0 greatly grows the restrictive constants in the protocol, so we never need to worry about the protocol itself being the limiting factor for scalability. This includes increasing the number of concurrent open file handles on the server, and the number of shares that a server can share out, among other things.
- SMB 2.0 supports durable handles that can withstand short network glitches.
- SMB2.0 has support for symbolic links.
All these enhancements in SMB 2.0 will result in better performance and security over LAN and WAN. We do not have performance comparison numbers that we can post just yet but we will post them here in near future.
So, where does this leave the existing Windows clients/servers? Vistas clients will be compatible with all down-level machines. The protocol revision to be used for remote file operations is decided during the negotiation phase. A Vista client advertises to the server that it can understand the new SMB 2.0 protocol. If the server (Longhorn Server or otherwise) understands SMB 2.0, then SMB 2.0 is chosen for subsequent communication, otherwise they fall back to SMB 1.0. This preserves downward compatibility so that deploying Vista clients or Longhorn servers should be straightforward. The following chart describes what protocol will be used when communicating between different types of client and servers –
- Vista Client < – >Vista/Longhorn Server – SMB 2.0
- Non-Vista Client < – > Vista/Longhorn Server – SMB 1.0
- Vista Client < – > Non-Vista/Non-Longhorn Server – SMB 1.0
- Non-Vista Client < – > Non-Vista/Non-Longhorn Server – SMB 1.0
–Navjot and Prashanth