13.1 A Smattering of SMB Dialects

In keeping with tradition, the list of dialects is presented as a table with the dialect name in the left-hand column and a short description in the right, ordered from oldest to newest. Most of the references to these dialects seem to do it this way. Our list is not quite as complete as you might find elsewhere. The aim here is to highlight some of the better-known examples in order to provide a bit of context for the examination of the SMB_COM_NEGOTIATE message.

Where relevant, important differences between dialects will be noted. It would be very difficult, however, to try to document all of the features of each dialect and all of the changes between them. If you really, really need to know more (which is likely, if you are working on server code) see the SNIA doc, the X/Open doc, the expired IETF drafts, and the other old Microsoft documentation that is still freely available from their FTP server. [1]

[1] ...or was, last time I checked. Once again, that URL is: ftp://ftp.microsoft.com/developr/drg/CIFS/. See the References section for links to specific documents.

SMB dialects

Dialect Identifier

Notes

PC NETWORK PROGRAM 1.0

Also known as the Core Protocol . This is the original stuff, as documented in COREP.TXT . According to ancient lore, this dialect is sometimes also identified by the string " PCLAN1.0 ".

MICROSOFT NETWORKS 1.03

This is the Core Plus Protocol . It extends a few Core Protocol SMB commands, and adds a few new ones.

MICROSOFT NETWORKS 3.0

Known as the Extended 1.0 Protocol or LAN Manager 1.0 . This dialect was created when IBM and Microsoft were working together on OS/2. This particular variant was designed for DOS clients , which understood a narrower set of error codes than OS/2.

LANMAN1.0

Identical to the MICROSOFT NETWORKS 3.0 dialect except that it was intended for use with OS/2 clients, so a larger set of error codes was available. OS/2 and DOS both expect that the STATUS field will be in the DOS-style ErrorClass / ErrorCode format. Again, this dialect is also known as LAN Manager 1.0 or as the Extended 1.0 Protocol .

LM1.2X002

Called the Extended 2.0 Protocol ; also known as LAN Manager 2.0 . This dialect represents OS/2 LANMAN version 2.0, and it introduces a few new SMBs. The identifier for the DOS version of this dialect is " DOS LM1.2X002 ". As before, the key difference between the DOS and OS/2 dialects is simply that the OS/2 version provides a larger set of error codes.

LANMAN2.1

Called the LAN Manager 2.1 dialect (no surprise there), this version is documented in a paper titled Microsoft Networks SMB File Sharing Protocol Extensions, Document Version 3.4 . You can find it by searching the web for a file named " SMB-LM21.DOC ". You will likely need a conversion tool of some sort in order to read the file, as it is encoded in an outdated form of a proprietary Microsoft format (it's a word-processing file). The cool thing about the SMB-LM21.DOC document is that instead of explaining how LANMAN2.1 works it describes how LANMAN2.1 differs from its predecessor, LANMAN2.0. That's useful for people who want to know how the protocol has evolved.

Samba

You may see this dialect listed in the protocol negotiation request coming from a Samba-based client such as smbclient , KDE Konqueror (which uses Samba's libsmbclient library), or the Linux SMBFS implementation. No one from the Samba Team seems to remember when, or why, this was added. It doesn't appear to be used any more (if, indeed, it ever was).

NT LM 0.12

This dialect, sometimes called NT LANMAN, was developed for use with Windows NT. All of the Windows 9x clients also claim to speak it, as do Windows 2000 and XP. As mentioned above, this is currently the most widely supported dialect. It is, quite possibly, also the sloppiest with all sorts of variations and differing implementations .

CIFS

Following the release of the IETF CIFS protocol drafts, many people thought that Microsoft would produce a "CIFS" dialect, and many documents refer to it. No such beast has actually materialized, however. Maybe that's a good thing.

Section 3.16 of the SNIA CIFS Technical Reference, V1.0 provides a list of of SMB message types categorized by the dialect in which they were introduced. There is also a slightly more complete list of dialects in Section 5.4 of the SNIA doc.



Implementing CIFS. The Common Internet File System
Implementing CIFS: The Common Internet File System
ISBN: 013047116X
EAN: 2147483647
Year: 2002
Pages: 210

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net