Introduction to SMB (Server Message Block) Protocol [MiniTool Wiki]
What Is SMB?
To begin with, what is SMB? It is short for Server Message Block in computer networking and one version of SMB was also called as Common Internet File System (CIFS). It is a client-server communication protocol that is used to share access to files, printers, serial ports, and other resources on a network. It can also carry transaction protocols for inter-process communication.
Most usage of SMB involves computers running Microsoft Windows, which was called “Microsoft Windows Network” before the introduction of Active Directory. The corresponding Windows services are the LAN Manager server for server components and the LAN Manager workstation for client components.
What is SMB’s definition? This part has given you specific information and the next part MiniTool will tell you the features of SMB.
Features of SMB
What is SMB’s feature? The SMB protocol depends on lower-level protocols for transport. SMB supports the opportunistic locking of files (a special locking mechanism) to improve performance. SMB is the foundation of Microsoft's Distributed File System implementation.
The Microsoft SMB protocol was commonly used with NetBIOS over TCP/IP (NBT) over UDP, using port numbers 137 and 138, and TCP port numbers 137 and 139. Windows Server 2003, Windows XP, Windows 2000, Windows NT, and Windows Me/98/95 support NBT used by NetBIOS.
Windows Vista, Windows Server 2008 and subsequent versions of Windows do not support NetBIOS. The SMB/NBT combination is usually used for backward compatibility.
NetBIOS through NetBEUI protocol provides NetBIOS support for NetBEUI protocol. This protocol is also called NetBIOS frame (NBF). Windows 2000, Windows NT and Windows Me/98/95 support NBF. Windows XP and later versions no longer support NetBEUI.
However, it is also possible to use the SMB protocol without a separate transport protocol directly through TCP port 445. NetBIOS was also supported through various legacy protocols such as IPX/SPX.
History of SMB
What is SMB’s history? There are several variants of SMB protocol, which have improved the original implementation’s capabilities, scalability, security, and efficiency. Now let’s take an overview of the variants.
- SMB 1.0 (1984): It was created by IBM and aimed at turning DOS INT 21h local file access into a networked file system. Opportunistic locking (OpLock) is introduced as a client-side caching mechanism aimed at reducing network traffic. Microsoft would later include the SMB protocol in its LAN Manager product.
- CIFS (1996): The SMB dialect developed by Microsoft first appeared in Windows 95. It added support for larger file sizes, could be transported directly over TCP/IP, and could use symbolic and hard links.
- SMB 2.0 (2006): It was introduced with Windows Vista and Windows Server 2008. It reduced chattiness to improve performance, enhance scalability and resiliency, and added support for WAN acceleration.
- SMB 2.1 (2010): It was released with Windows Server 2008 R2 and Windows 7. The client's Oplock leasing model replaces OpLock to improve caching and enhance performance.
- SMB 3.0 (2012): It appeared with Windows 8 and Windows Server 2012. Some important upgrades were added to improve availability, performance, backup, security, and management. Notable new features contained SMB Multichannel, SMB Direct, transparent failover of client access, Remote VSS support, SMB Encryption, and so on.
- SMB 3.0.2 (2014): It was introduced with Windows 8.1 and Windows Server 2012 R2. It included performance updates and the ability to fully disable CIFS/SMB 1.0 support, including deleting related binaries.
- SMB 3.1.1 (2015): It was released with Windows 10 and Windows Server 2016. Added support for advanced encryption, pre-authentication integrity to stop man-in-the-middle attacks and cluster dialect fencing, and other updates.
Implementation of SMB
SMB works through a client-server approach, where the client makes a specific request and the server responds accordingly. One part of the SMB protocol deals specifically with access to the file system so that clients can make requests to the file server, but some other parts of the SMB protocol specialize in inter-process communication (IPC).
The use of the SMB protocol is usually associated with a significant increase in broadcast traffic on the network. Nevertheless, SMB itself does not use broadcasts - the broadcast problems usually related to SMB originate from the NetBIOS service location protocol.
If you want to get more information about the implementation of SMB, click this link.
What is SMB? This post has gathered the SMB’s definition, features, history as well as implementation. There are multiple variants of SMB and each of them was released in different Windows versions.