Server Message Block (SMB)

Definition of Server Message Block (SMB) in the Network Encyclopedia.

What is Server Message Block?

Server Message Block, also known as SMB, is a high-level file-sharing protocol jointly developed by Microsoft, IBM, and Intel for passing data between computers on a network. Microsoft Windows and OS/2 use Server Message Block (SMB). Many UNIX operating systems also support it.

Server Message Block communication sequence
Server Message Block (SMB)

How It Works

SMB is used between clients and servers to do the following:

  • Open and close connections between client redirectors and shared network resources
  • Locate, read, and write to files shared on a server
  • Locate and print to print queues that are shared on a server

SMB uses four types of messages:

  • Session control messages: Open or close a redirector connection to a shared resource on the server. The SMB redirector packages the requests sent to remote servers in an SMB-enabled network. 
  • File messages: Used by the redirector to gain access to files on the server. 
  • Printer messages: Used by the redirector to send data to a print queue and get status information about the queue. 
  • Message messages: Let applications exchange messages with another computer.

Common Internet File System (CIFS) Protocol

The Common Internet File System (CIFS) Protocol is a dialect of SMB. Both SMB and CIFS are also available on VMS, several versions of Unix, and other operating systems.

Most Windows clients support at least six different dialects of Microsoft SMB Protocol, so one of the first steps in establishing a connection between a client and a server using Microsoft SMB Protocol is to determine the dialect with the highest level of functionality that both the client and server support. This process is known as “negotiating the dialect.” The dialect strings mentioned above are included in the dialect negotiation request and response packets for this purpose.

Further Reading: