SMB(Server Message Block)プロトコルに関する詳細な情報を知りたい方は、この記事をよくお読みください。定義、特徴、歴史についてご紹介します。
SMBとは?
SMB は、コンピューターネットワークにおけるサーバーメッセージブロック(Server Message Block)の略称で、そのバージョンのうち1つは共通インターネットファイルシステム(CIFS)とも呼ばれていました。ネットワーク上でファイルやプリンター、シリアルポートなどのリソースへのアクセスを共有するために使用されるクライアントサーバー通信プロトコルです。プロセス間通信のためのトランザクションプロトコルを実装することもできます。
ほとんどのSMBの利用は、Active Directoryの導入前に「Microsoft Windows Network」と呼ばれていたMicrosoft Windowsを実行しているコンピューターに関連しています。それに該当するWindowsサービスは、サーバーコンポーネント用のLAN Managerサーバーと、クライアントコンポーネント用のLAN Managerワークステーションです。
SMBの定義について、このパートで具体的な情報をお伝えしました。次のパートで、MiniToolがSMBの機能について解説します。
SMBの機能
SMBの特徴は?SMBプロトコルはデータ転送のために、より低レベルのプロトコルに依存しています。SMBは、パフォーマンス向上のため、ファイルの日和見ロック(特別なロック機構)に対応しています。Mirosoftの分散ファイルシステム実装の基盤です。
MicrosoftのSMBプロトコルは、一般的にUDP上のTCP/IP (NBT) のNetBIOSで、ポート番号137と138、TCPポート番号137と139で使用されていました。Windows Server 2003、Windows XP、Windows 2000、Windows NT、Windows Me/98/95は、NetBIOSで使用されるNBTに対応しています。
Windows VistaやWindows Server 2008、そしてそれ以降のバージョンのWindowsはNetBIOSに対応していません。SMB/NBTの組み合わせは通常、後方互換性のために使用されます。
NetBEUIプロトコルを介したNetBIOSプロトコルは、NetBEUIプロトコルに対するNetBIOSサポートを提供します。このプロトコルはNetBIOSフレーム(NBF)とも呼ばれます。Windows 2000, Windows NT, and Windows Me/98/95はNBFに対応しています。Windows XPとそれ以降のバージョンでは、NetBEUIは非対応となりました。
ただし、TCPポート445経由で独立したトランスポートプロトコルを使用せずにSMBプロトコルを使用することも可能です。NetBIOSは、IPX/SPXなどのさまざまなレガシープロトコルを介してもサポートされていました。
SMBの歴史
SMBにはどんな歴史があるのでしょうか?SMBプロトコルには複数のバリエーションがあり、元の実装の機能、スケーラビリティ、セキュリティ、効率性を向上させています。では、バリエーションの概要を見ていきましょう。
- SMB 1.0 (1984):DOS INT 21hのローカルファイルアクセスをネットワークファイルシステムに変換することを目的として、IBMが作成しました。日和見ロック(OpLock)は、ネットワークトラフィックの削減を目的としたクライアント側のキャッシュメカニズムとして導入されました。Microsoftは後に、LAN Manager製品にSMBプロトコルを組み込むこととなりました。
- CIFS (1996):Microsoftが開発したSMB方言はWindows 95で初登場しました。大容量ファイルのサポートが追加され、TCP/IP経由の直接転送、そしてシンボリックリンクとハードリンクの使用が可能になりました。
- SMB 2.0 (2006):Windows VistaとWindows Server 2008で導入されました。パフォーマンスの向上、スケーラビリティと耐障害性の強化、不要な通信の削減がなされ、WANアクセラレーションのサポートが追加されました。
- SMB 2.1 (2010):Windows Server 2008 R2およびWindows 7とともにリリースされました。クライアントのOpLockリースモデルは、キャッシュの改善とパフォーマンスの向上を目的としてOpLockに代わり導入されました。
- SMB 3.0 (2012):Windows 8とWindows Server 2012で導入されました。重要なアップグレードが追加され、可用性、パフォーマンス、バックアップ、セキュリティ、管理が改善されました。主な新機能には、SMB Multichannel、SMB Direct、クライアントアクセスの透過的なフェイルオーバー、リモートVSSサポート、SMB暗号化などがあります。
- SMB 3.0.2 (2014):Windows 8.1とWindows Server 2012 R2で導入されました。これにはパフォーマンスの更新と、CIFS/SMB 1.0サポートを完全に無効化する機能が含まれており、関連するバイナリファイルの削除も可能です。
- SMB 3.1.1 (2015):Windows 10およびWindows Server 2016とともにリリースされました。高度な暗号化、事前認証整合性による中間者攻撃の防止、クラスター方言フェンシングなどの更新が追加されています。
SMBの実装
SMBはクライアントサーバーを通じて動作します。クライアントが特定の要求を送信し、サーバーがそれに応じて応答します。SMBプロトコルのうち、一部はファイルシステムへのアクセスに特化しており、クライアントがファイルサーバーに対して要求を送信できるようにしています。SMBプロトコルのその他の部分はプロセス間通信(IPC)に特化しています。
SMBプロトコルの使用は、ネットワーク上のブロードキャストトラフィックの著しい増加と関連していることがほとんどです。ただし、SMB自体はブロードキャストを使用しません。ブロードキャストに関連する問題は、主にNetBIOSのサービスロケーションプロトコルから発生します。
より詳細情報については、SMBに関するこの記事を参照してください。
最後に
SMBとは?この記事では、SMBの定義、特徴、歴史、実装についてまとめました。SMBのバリエーションは複数あり、それぞれ異なるWindowsバージョンでリリースされました。