SMB 2.0

I was just looking at SMB2.0 ,Microsoft's own SMB protocol.

There are significant changes in the protocol : the most popular features being
1. Support for sending multiple SMB commands within the same packet. This reduces the number of packets sent between an SMB client and server, a common complaint against SMB 1.0.
2. Support for much larger buffer sizes compared to SMB 1.0.
3. Increases the restrictive constants within the protocol design to allow for scalability. Examples include an increase in the number of concurrent open file handles on the server and the number of file shares that a server can have.
4. Support for durable handles that can withstand short interruptions in network availability.
5. Support for symbolic links.
6. Stronger end-to-end data integrity protection, using the SHA256 hash algorithm.
7. Improved throughput across networks that have disparate characteristics.
8. Higher scalability of the number of files that a client may open simultaneously, as well as the number of shares and user sessions that servers may maintain.
9. Quality of Service guarantees from the server for the number of requests that can be outstanding against a server at any specified time.


REDUCED NO OF COMMANDS

The newer protocol has just 18 commands which can be split in the foll. categories:
 Protocol negotiation (SMB2 NEGOTIATE).
 User authentication (SMB2 SESSION_SETUP, SMB2 LOGOFF).
 Share access (SMB2 TREE_CONNECT, SMB2 TREE_DISCONNECT).
 File access (SMB2 CREATE, SMB2 CLOSE, SMB2 READ, SMB2 WRITE, SMB2 LOCK, SMB2 IOCTL, SMB2 QUERY_INFO, SMB2 SET_INFO, SMB2 FLUSH, SMB2 CANCEL).
 Directory access (SMB2 QUERY_DIRECTORY, SMB2 CHANGE_NOTIFY).
 Volume access (SMB2 QUERY_INFO, SMB2 SET_INFO).
 Cache coherency (SMB2 OPLOCK_BREAK).
 Simple messaging (SMB2 ECHO).


Please find the official SMB2.0 spec here
http://msdn.microsoft.com/en-us/library/cc212614.aspx


Only Vista and Win2k8 machines are SMB 2.0 compatible. So the protocol of conversation falls back to SMB 1.0 with other non compatible OS'es.


Registry Settings for SMB2.0 (Disclaimer : taken from another source)

SMB 2.0 registry settings
Both SMB 1.0 and 2.0 are enabled by default on Windows Vista and Windows Server 2008.In some testing and troubleshooting scenarios it may be necessary to disable either SMB 1.0 or SMB 2.0. However, it should be noted that this is not a recommended practice. To disable SMB 1.0 for Windows Vista or Windows Server 2008 systems that are the “client” systems (accessing the network resources), run the following commands:
sc config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc config mrxsmb10 start= disabled
To disable SMB 1.0 on a Windows Vista or Windows Server 2008 system that is acting as the “server” system (hosting the network resources), a registry modification is required. Navigate to the HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters key. If there is no REG_DWORD value named Smb1, you will need to create it. This value does not exist by default. Once the value is created, set the value to 0 to disable SMB 1.0 or 1 to enable SMB 1.0.
Finally, to disable SMB 2.0 on Windows Vista or Windows Server 2008 systems that are acting as the “server”, navigate to the registry key listed above. Instead of creating the Smb1 REG_DWORD value, you would create a REG_DWORD value called Smb2. Set the value to 0 to disable SMB 2.0 and 1 to enable SMB 2.0.

Comments

Popular posts from this blog

White water rafting at Dandeli

Melkote : The temple town

Kodachadri : A fabulous weekend !!!