服务器消息块协议 (SMB协议)

17 Mar 2025 | 4 分钟阅读

什么是服务器消息块协议?

服务器消息块协议(SMB协议)是一种客户端-服务器通信机制,用于共享网络资源,包括文件、打印机、串行端口和其他资源。此外,它还可以承载用于进程间通信的事务协议。SMB历史上一直用于连接Windows计算机,而大多数其他操作系统,包括Linux和macOS,也包含允许它们连接到SMB资源的客户端组件。

Server Message Block protocol (SMB protocol)

SMB协议由IBM的一支团队于20世纪80年代创建。自那时以来,该协议产生了多种变体或方言,以适应不断变化的网络需求。SMB在此期间得到了广泛的应用,并且仍然被认为是办公室中最常用的文件共享选项之一。

SMB协议是如何实现的?

通过使用SMB协议,应用程序及其用户可以访问远程服务器上的文件,从而连接到打印机、邮件槽、命名管道和其他资源。客户端程序可以在远程服务器上安全地、有控制地访问、读取、移动、创建和更新文件。此外,设置为处理SMB客户端查询的服务器程序也可以与该协议进行交互。

SMB协议,有时被称为请求-响应协议,是网络通信最广泛使用的技术之一。在这种方法中,客户端向服务器发送SMB请求来建立连接。服务器在收到请求后,通过提供SMB响应来响应客户端,从而打开了双向交换所需的通信通道。

Server Message Block protocol (SMB protocol)

尽管SMB协议在传输时使用较低的网络层,但它在应用层运行。SMB以前曾运行在Internetwork Packet Exchange和NetBIOS Extended User Interface等旧协议之上,以及通过传输控制协议/Internet协议的网络基本输入/输出系统(NetBIOS over TCP/IP,或NBT)之上,尽管程度较小。使用NBT时,SMB依赖端口137、138和139进行传输。如今,SMB使用端口445,并在TCP/IP上本地运行。

如今,为了与不支持SMB在TCP/IP上本地运行的设备进行通信,NetBIOS必须通过TCP/IP等传输协议进行使用。

Microsoft Windows操作系统自Windows 95起就支持SMB协议。SMB在Linux和macOS中也默认支持。基于Unix的计算机还可以使用Samba来提供SMB对文件和打印服务的访问。

客户端和服务器可能实现不同的SMB方言。如果它们这样做,在会话开始之前,系统必须解决版本之间的差异。

什么是SMB协议方言?

自SMB协议首次发布以来,已经提供了许多SMB方言,它们改进了初始实现,并提供了更高的可伸缩性、安全性、效率和功能。以下是主要方言的简要概述:

  • SMB 1.0 (1984):IBM为DOS文件共享开发了SMB 1.0。为了减少网络流量,它添加了机会锁定(OpLock)作为客户端缓存方法。后来,微软会将SMB协议集成到其LAN Manager软件中。
  • CIFS (1996):Windows 95发布了CIFS,这是微软创建的一个SMB方言。CIFS是Common Internet File System的首字母缩写,它引入了对更大文件大小、TCP/IP直接传输以及硬链接和符号链接的支持。
  • SMB 2.0 (2006):SMB 2.0随Windows Server 2008和Vista一起发布。它提供了对广域网(WAN)加速的支持,提高了可伸缩性和弹性,并减少了“话痨”以提高性能。
  • SMB 2.1 (2010):SMB 2.1随Windows Server 2008 R2和Windows 7一起推出。为了增强缓存和提高速度,OpLock被替换为客户端OpLock租约模型。此外,还进行了改进,如提高了能源效率和对大最大传输单元的支持,允许与SMB服务器有开放文件的客户端进入睡眠模式。
  • SMB 3.0 (2012):2012年,SMB 3.0随Windows Server和Windows 8一起发布。它进行了一些重要的补充,以增强管理、安全、备份、可用性和性能。其中包括SMB Multichannel、SMB Direct、透明客户端访问故障转移、对远程卷影复制服务(Remote Volume Shadow Copy Service)的支持、SMB加密以及其他值得注意的新功能。
  • SMB 3.02 (2014):SMB 3.02随Windows 8.1和Windows Server 2012 R2一起推出。还增加了性能改进,以及禁用CIFS/SMB 1.0支持的选项,并删除了相关的二进制文件。
  • SMB 3.1.1 (2015):SMB 3.1.1随Windows Server 2016和Windows 10一起发布。除其他升级外,它还引入了对群集方言隔离、用于阻止中间人(MitM)攻击的预认证完整性以及改进的加密的支持。