什么是服务器消息块 (SMB)?


服务器消息块 (SMB)

称为 SMB(服务器消息块)的客户端/服务器协议控制对文件、整个目录和其他网络资源(包括打印机、路由器和网络接口)的访问。SMB 协议可用于处理系统中各种进程之间信息共享,有时称为进程间通信。

该协议由 IBM 的 IT 部门于 1983 年创建,并且多年来经历了多次修订和实施。SMB 最初作为 OS/2 LAN Manager 和 LAN Server 网络操作系统的功能提供给公众。由于 Windows 操作系统系列的网络服务与 SMB 向后兼容,因此它们一直是该协议的主要应用。

这使得运行较新版本 Microsoft 操作系统的设备可以轻松地与运行较旧版本的设备连接。此外,开源 Samba 项目提供了一种在 Linux 和 Unix 发行版中使用服务器消息块的方法,从而实现跨平台 SMB 通信。

SMB 设计用于在其上运行的网络基本输入/输出系统 (NetBIOS) 和 NetBIOS 扩展用户界面 (NetBEUI) 如下所示:

NetBIOS 帧

  • IPX/SPX,也称为通过互连网络数据包交换的 NetBIOS,

  • 传输控制协议/互联网协议 (TCP/IP) 和 NetBIOS

NetBIOS 的特点

  • 使用运行 Windows 的台式机和服务器

  • 包括适用于 Unix 和类似 Unix 系统的 Samba 协议守护进程

  • 支持跨旧版 Windows 进行 NetBIOS 传输

  • 利用称为网络邻居 (NetHood) 协议的 NetBIOS 传输服务。

  • 使用分布式计算环境/远程过程调用 (DCE/RPC) 服务来验证多进程通信通道。

SMB 如何工作?

客户端可以使用服务器消息块协议与同一网络上的其他用户交互,从而访问网络上对其提供的任何文件或服务。为了使这能够工作,另一台机器也必须安装网络协议并使用 SMB 服务器程序来接受和处理相关的客户端请求。但是,为了建立连接,双方必须首先相互发送等效的消息。

SMB 在 IP 网络中使用传输控制协议 (TCP),这使得在建立连接之前客户端和服务器之间进行三次握手成为可能。TCP 协议的规则管理后续数据的传输。

在哪里可以使用服务器消息块?

在本帖中,已经介绍了关键的 SMB 应用场景。该协议的主要优势在于计算机和文件服务器之间的客户端/服务器交互,因为访问文件系统是其主要重点。但是,两个设备或两个进程之间简单的信息交换也属于其应用范围,因为协议的其他元素显然是为了进程间通信而设计的。

除了包含在不同 Windows 版本中之外,服务器消息块还被纳入大量其他软件项目,以允许 Microsoft 家族以外的实体之间进行通信。以下是其中一些最著名的 SMB 实现:

  • Samba − 计算机程序 Windows 之外最著名的 SMB 实现可能是 Samba。程序员 Andrew Tridgell 于 1991 年开始创建此开源软件,该软件允许使用服务器消息块协议在 Unix/Linux 系统上进行通信。

  • Netsmb − SMB 客户端和服务器直接在 BSD 操作系统的内核中实现。它们最初是为 FreeBSD 4.4 提供的,但现在受许多 BSD 操作系统支持,包括 NetBSD 和 macOS。

  • YNQ − 自 1998 年以来,以色列软件初创公司 Visuality Systems Ltd. 一直在开发 YNQ。

  • FreeNAS − NAS 软件以 OpenZFS 文件系统和 FreeBSD 为基础。

  • ConnectedNAS − ConnectedNAS 高级软件用户可以使用他们的移动设备和其他 SMB 设备快速私下或在 SMB 设备之间传输数据。ConnectedNAS 支持的唯一 SMB 协议是版本 2 的协议。

SMB 版本

自 SMB 于 1983 年首次推出以来,网络标准已经过多次修改,这反映在不同的协议版本中。这些范围从 SMB 1.0 到最新的版本 SMB 3.1.1,微软与 Windows 10 一起发布了该版本。以下各部分概述了服务器消息块协议创建过程中的关键阶段。

SMB 的主要方言包括:

  • CIFS/SMB 1.0

  • SMB 2.0

  • SMB 2.1

  • SMB 3.0

  • SMB 3.02

  • SMB 3.1.1

SMB 加密

SMB 加密提供 SMB 数据的端到端加密,并防止在不安全的网络上窃取数据。SMB 加密可以轻松设置,尽管可能需要为专业硬件或软件支付少量额外费用。它不需要 WAN 加速器或互联网协议安全 (IPsec)。SMB 加密可以在数据通过不受信任的网络传输的多种情况下设置,并且可以针对每个共享或针对文件服务器整体进行配置。

更新于: 2022-08-05

533 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告