図●SMBの歴史
図●SMBの歴史
[画像のクリックで拡大表示]

 SMB(Server Message Block)は、Windowsで主としてファイルとプリンターの共有に使われるリソース共有プロトコルである。基本はクライアントからの要求にサーバーが答えるクライアント-サーバー型の動作モデルで、サーバーにあるリソースをクライアントに向けて公開する。

 Windows 95/Windows NTでOS標準のプロトコルとして採用され、Windows 2000で「SMB 1.0」として一応の完成を見た。具体的には、それまで使っていたNetBIOS/NetBEUIを不要とし、TCP/IPだけでも通信できるようにした。

 さらに米マイクロソフトは、SMB 1.0を基にした規格「CIFS(Common Internet File System)」をIETFに提案したが、RFCとして標準化されずに終わっている。

 SMB 1.0は仕様の大きな変更なく長く使い続けられ、Windows XPまで標準だった。しかしWindows Vistaでは改良版のSMB 2.0が採用された(図)。その後のSMB 2.1/3.0と合わせて「SMB2」とも呼ばれる。

 SMB2.0はこれまでのSMB1.0が引きずっていた過去の互換性を切り捨て、新たに全体を見直して作られた。その第1が、NetBIOSとの完全なる決別。これまでもTCP/IPだけで通信できる設計に変更していたとはいえ、機能的にはNetBIOS環境下でも使えるようにしていたのである。同時にIPv6へも対応した。

 第2に、1.0にあったコマンドを大幅に削減した。旧来のコマンドをまとめて処理する形にしたためである。さらに、クライアントキャッシュ機能の搭載などにより、性能を向上し、ファイルサイズや取り扱えるファイル数なども大幅に高めた。

 Windows 7/Windows Server 2008 R2では、SMB 2.1がOS標準になった。MTUサイズを大きくし、占有するネットワーク帯域を減少させるなどによって性能向上を果たした。Windows 8/Windows Server 2012ではSMB 3.0になり、信頼性や可用性に関連する機能を強化した。

 こうした大きな変化があったため、ユーザーがWindows XPからWindows 7/8に切り替えたり、Windows Server 2003から同2012に切り替えたりした際には、ファイルサーバーにアクセスできなくなるトラブルの原因ともなった。