Understanding NetBIOS
In order to fully understand SMB you must understand NetBIOS, as most current implementations use SMB directly over NetBIOS, and Samba is no exception. A NetBIOS name is a 16 character service identifier. Note that this is not necessarily a computer name. Most vendors implement a 15 character computer name, reserving the 16th character to complete the service identifier. On Windows, a list of the full computer names can be attained by typing [nbtstat –n] as seen below;
Note the 15 positions allocated for the computer name “cossaboom”, and the character in positions 16-19. This character is a hexadecimal representation of the service that is running. Because the hexadecimal number space allows for 16 bits, there are approximately 65000 possible service identifiers. A list of common identifiers can be found in the Microsoft Knowledge Base in article Q163409. If you have Internet Explorer, type [mskb Q163409] in the address bar.
It is important to note that most vendors consider NetBIOS obsolete and are making steps toward removing it entirely and moving toward pure IP based applications. One example of this is CIFS, the Common Internet File System. Virtually all vendors implement some form of CIFS for file sharing. It’s what allows otherwise incompatible file systems such as NTFS, ext3, FAT, and Netware to work together. CIFS was first written by IBM in 1984, and is a core part of the file sharing software in Windows. CIFS traditionally requires support for NetBIOS, which has the effect of limiting the development of CIFS, and extending the life of NetBIOS. The IETF and SNIA (Storage Network Industry Association) are currently working on the CIFS 1.0 specification. This specification would define CIFS, and includes specifications for running CIFS natively over TCP/IP, thus eliminating the need for NetBIOS. This would allow pure IP based file sharing.