SMB Dialects

The SMB protocol has been developed and enhanced since it was first introduced. The original version is known as the "core protocol" and is understood by systems implementing later versions which are supersets of the original. Systems using SMB negotiate which version i.e. dialect they will support.

The function SMBnegprot 0x72 is used at the beginning of a session to establish the dialect to be used. See the section called SMB Command Codes

When packets are being sent to negotiate the dialect, a string is used to indicate which dialects are supported. So just as the use of the string "SMB" within SMB packets makes identifying such packets easier, the use of readable strings makes understanding which dialects are used easier. Below is a table giving some of the strings used to identify dialects and the terms commonly used to refer to the given dialect.

Table 14. SMB dialects

string identifying dialect Reference
PC NETWORK PROGRAM 1.0 core protocol
MICROSOFT NETWORKS 1.03 core plus dialect
MICROSOFT NETWORKS 3.0 extended 1.0 protocol
LANMAN1.0 extended 1.0 protocol, first version of full LANMAN 1.0 protocol
Windows for Workgroups 3.1a  
LM1.2X002 extended 2.0 protocol
NT LM 0.12