SMB 【Server Message Block】
概要
SMB(Server Message Block)とは、構内ネットワーク(LAN)上の複数のWindowsコンピュータの間でファイル共有やプリンタ共有などを行うためのプロトコル(通信規約)および通信サービス。Windowsのネットワーク機能で利用される仕様で、LAN上の他のコンピュータで共有設定されたファイルやフォルダを読み書きできるファイル共有、他のコンピュータに接続されたプリンタにアクセスして印刷するプリンタ共有などを実現する。
標準では下位のプロトコルとしてNetBIOSを用い、NetBT(NetBIOS over TCP/IP)を介してTCP/IPを利用する。NetBTは標準ではTCPおよびUDPの137~139番ポートを使用する。現在ではNetBIOS/NetBTを介さず直接TCPを利用する「ダイレクトホスト」方式にも対応し、標準ではTCPの445番ポートを用いる。
歴代のWindowsはクライアント向け、Windows Server共に標準で対応しており、LinuxやmacOS(Mac OS X)など他の主要なオペレーティングシステム(OS)にもSMBクライアント機能を追加できる。Windows以外のSMBサーバとしてはオープンソースの「Samba」(サンバ)が有名で、UNIX系OSをファイルサーバにしてWindowsのファイル共有機能でアクセスすることができる。
歴史
最初期のSMBはWindowsよりも古い1982年に米IBM社によって開発され、当時のPC DOS(MS-DOSのIBM版)のファイル共有機能やLAN Manager、初期のWindowsなどに組み込まれた。この時代の仕様にはバージョン番号がない。
1996年に米マイクロソフト(Microsoft)社は初期のSMBを拡張しオープンな標準としてCIFS(Common Internet File System)を開発した。WindowsやNetBIOSに依存しない仕様で、他社製品でもWindowsコンピュータと接続してファイル共有などを利用することができるようになった。
2000年にはCIFSとほぼ同じ仕様のSMB 1.0をWindows 2000に採用した。同OSで導入されたActive DirectoryやKerberos認証に対応した。通常、「SMB1」「SMB 1.0」は最初期のものではなくこちらを指す。
2006年には複雑化した仕様を整理したSMB 2.0を発表し、Windows VistaおよびWindows Server 2008から導入した。複数の要求をまとめて送信したり、前の要求の処理中に次の要求を伝達できるパイプラインの導入により性能が大きく向上した。Windows 8/Windows Server 2012からはSMB 3.0が採用されている。