Server message block (SMB) is a network protocol mainly applied to share files, printers, serial ports, and miscellaneous communications between nodes on a network. It is mainly used by Microsoft Windows equipped computers.
SMB was originally invented by IBM but the most common version is modified heavily by Microsoft. Microsoft renamed SMB to CIFS (Common Internet File System) in 1998 and added more features, including support for Symbolic Links, Hard Links, and larger file sizes.
SMB works through a client-server approach, where a client makes specific requests and the file server responds accordingly.
The SMB servers make their file systems and other resources available to clients on the network. Client computers may have their own hard disks, which are not publicly shared, yet also want access to the shared file systems and printers on the server.
SMB was originally designed to run on top of one of the various NetBIOS implementations (usually NetBEUI or NBT), though it can also run on top of TCP/IP directly since Windows 2000.
Microsoft has added several features to its own SMB implementation that are not part of the original SMB protocol.
Samba is a free reimplementation of the SMB protocol and the Microsoft extensions to it..