Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

SMB(エスエムビー)とは | 意味や読み方など丁寧でわかりやすい用語解説

SMB(エスエムビー)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

エスエムビー (エスエムビー)

英語表記

Server Message Block (サーバーメッセージブロック)

用語解説

SMBとは、Server Message Block(サーバーメッセージブロック)の略であり、主にWindows環境において、ネットワーク上のコンピュータ間でファイルやプリンターなどのリソースを共有するために使われる通信プロトコルである。クライアント・サーバーモデルに基づいて動作し、クライアントからの要求に応じてサーバーがリソースを提供する仕組みとなっている。

SMBは、ネットワーク越しにファイルシステムにアクセスするための標準的な手段として、Windowsネットワークで広く利用されてきた。ユーザーは自分のコンピュータから、あたかもローカルドライブであるかのようにネットワーク上の共有フォルダにアクセスし、ファイルの読み書き、作成、削除といった操作が可能となる。また、ネットワークに接続されたプリンターを複数のユーザーで共有する際にもこのプロトコルが利用される。

SMBの歴史は古く、IBMが開発した初期のプロトコルにルーツを持つ。Microsoftがこれを採用し、Windows for Workgroups 3.11以降、Windowsネットワークの基盤として発展させてきた。初期のSMBは、その後CIFS(Common Internet File System)として拡張され、インターネットを意識した機能も盛り込まれた。しかし、CIFSはSMBのバージョンアップに伴い、性能やセキュリティ面で限界が見え始めた。

そこで、Windows VistaおよびWindows Server 2008でSMB 2.0が導入された。これは従来のSMBを大幅に改良し、プロトコルの複雑さを軽減し、効率的な通信を実現することで、特に大規模なファイル転送におけるパフォーマンスが向上した。SMB 2.0では、多数のコマンドをまとめて送信できる「複合要求」や、リクエストの非同期処理、より大きなバッファサイズなどがサポートされ、ネットワークの遅延が大きい環境や、多数のファイルを扱う場合にその恩恵が大きかった。さらに、SMB 2.1では、クライアント側のキャッシュ機能の強化や、大規模ファイルの効率的な転送を可能にする改善が加えられた。

Windows 8およびWindows Server 2012では、SMB 3.0が登場し、ファイル共有のパフォーマンスと信頼性、セキュリティが劇的に向上した。SMB 3.0の主要な機能の一つに「SMB Multichannel(マルチチャネル)」がある。これは、複数のネットワークインターフェースや、単一のインターフェース内の複数のNICチーム(チーミング)を利用して、同時に複数の経路でデータを転送することで、スループットを向上させ、ネットワーク接続に冗長性を持たせる機能である。これにより、単一のネットワーク経路がボトルネックになることを防ぎ、高帯域幅のネットワークを最大限に活用できるようになった。また、「SMB Direct(RDMA対応)」は、RDMA(Remote Direct Memory Access)対応のネットワークアダプターを使用することで、CPUを介さずに直接メモリ間でデータを転送し、非常に低いレイテンシと高いスループットを実現する。これは、特に高性能なストレージシステムやデータベースのバックエンドでの利用に適している。

SMB 3.0ではセキュリティ面も強化された。「SMB Encryption(暗号化)」は、ファイル共有で送受信されるデータをエンドツーエンドで暗号化する機能であり、盗聴のリスクを低減する。この暗号化はパフォーマンスへの影響が比較的小さく、容易に有効化できるため、企業のセキュリティポリシーに準拠した安全なファイル共有を可能にする。また、可用性を高める機能として「SMB Scale-Out(スケールアウト)」や「Transparent Failover(透過的フェールオーバー)」が導入された。これらは、クラスター構成されたファイルサーバーにおいて、クライアントの接続を維持したまま、サーバー障害時に自動的に別のノードへ切り替えることで、ダウンタイムを最小限に抑えることを目的としている。

その後のバージョンであるSMB 3.02やSMB 3.1.1では、さらに細かい改善や新機能が追加された。SMB 3.1.1では、セキュリティプロトコルとしてAES-GCM(Advanced Encryption Standard Galois/Counter Mode)や、Kerberosでの事前認証を強化するメカニズムが導入され、セキュリティレベルが一段と向上した。また、Windows 10のクライアントとWindows Server 2016以降のサーバー間で通信する際に、よりセキュアなハッシュアルゴリズムがデフォルトで利用されるようになっている。

SMBが動作する際には、通常TCPポート445番が利用される。クライアントはまずサーバーに対して接続要求を送り、確立されたTCPセッション上でSMBプロトコルメッセージをやり取りする。このメッセージには、ファイルのオープン、読み込み、書き込み、属性の取得、ディレクトリのリスト表示など、様々な操作が含まれる。サーバーは要求を受け取ると、認証情報(ユーザー名とパスワード)を確認し、クライアントが共有リソースへのアクセス権限を持っているかを検証する。認証に成功すれば、クライアントは指定された共有リソースへのアクセスが可能になる。

認証方式としては、Windows環境で主に利用されるActive Directoryと連携したKerberos認証が主流である。Kerberos認証は、ユーザー名とパスワードを直接ネットワーク上に流すことなく認証を行うため、セキュリティが高い。また、Active Directoryを使用しない環境やレガシーな環境では、NTLM(NT LAN Manager)認証も利用されることがあるが、セキュリティ上の懸念からKerberosへの移行が推奨されている。

SMBはWindowsだけでなく、LinuxやmacOSなどの他のオペレーティングシステムでも利用可能である。Linux環境では「Samba(サンバ)」と呼ばれるソフトウェアスイートが提供されており、これを導入することでLinuxサーバーをWindowsネットワークのファイルサーバーとして機能させたり、WindowsクライアントからLinuxサーバーの共有リソースにアクセスしたりできる。これにより、異なるOS間でのシームレスなファイル共有が実現される。

このようにSMBは、企業内ネットワークにおけるファイルサーバーの構築から、個人のPC間での手軽なファイル共有、さらにはNAS(Network Attached Storage)デバイスやクラウドストレージサービスにおけるファイルアクセスプロトコルとして、ITインフラの様々な場面で不可欠な役割を担っている。その進化は、常にパフォーマンス、信頼性、セキュリティの向上を追求し続けている。

関連コンテンツ

関連IT用語