Penguin
Note: You are viewing an old revision of this page. View the current version.

ServerMessageBlock (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, but it 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, it has provisions for much more. SMB is a presentation layer protocol structured as a large set of commands (called "Server Message Blocks", hence the name). Clients and servers may implement different versions ("dialects") of the protocol, and will negotiate the version to use before starting a session. There are commands to support sharing of files, printers, serial ports, for user authentication, resource browsing, communications abstractions such as named pipes and mail slots, and other miscellaneous functions. A redirector packages SMB requests into a network control block (NBC) structure that can be sent across the network to a remote device.

Microsoft have extended SMB into CIFS, slated as a replacement of the protocol for the InterNet which runs only runs over TCP/IP.


CategoryProtocols