ServerMessageBlock, usually only referred to by its abbreviated form SMB, is a client/server Protocol similar to remote procedure calls (RPC), but specialised for file system access. It was developed by Intel, Microsoft, and IBM in the early 1980s, and also had input from Xerox and 3Com. It is the native method of file and print sharing for Microsoft's operating systems, where it is called Microsoft Networking, and is also used by OS/2, Lan Manager and Banyan Vines. Windows for Workgroups, Windows 95, and WindowsNT all include SMB clients and servers. SMB originally ran on top of the lower level Protocols NetBEUI and NetBIOS, but now typically runs over TCP/IP.
There are SMB servers and clients for Unix, as well. The most popular one is a reverse-engineered OpenSource implementation of the Protocol called Samba. It allows Unix machines integrate networks consisting of Windows clients. Samba can even act as a "domain controller", removing the need for expensive Windows server licences.
While it is mainly used for file and printer sharing between computers, SMB is a presentation layer Protocol with provisions for much more. It is structured as a large set of commands (called "Server Message Blocks", hence the name) to support sharing of files, printers, and serial ports, and also user authentication, resource browsing, communications abstractions such as named pipes and mail slots, as well as other miscellaneous functions. Clients and servers may implement different versions ("dialects") of the Protocol, and will negotiate the version to use before starting a session. A redirector packages SMB requests into a network control block (NBC) structure that can be sent across the network to a remote device.