SMB(Server Message Block)は、1980 年代後半に IBM によって開発されたファイル共有プロトコルであり、ディレクトリ、ファイル、プリンタ、シリアル ポートなどの共有ネットワーク リソースの構造が記述されています。 これは、要求/応答プロトコルです。
SMB プロトコルでは、ファイル システム アクセスおよびクライアントがファイルを要求する方法が規定されています。 また、SMB プロトコルのプロセス間通信も規定されています。 すべての SMB メッセージは共通の形式を使用します。 このフォーマットは、固定サイズのヘッダーと、それに続く可変サイズのパラメータおよびデータ コンポーネントを使用します。
SMB メッセージにより、次のことが可能になります。
- セッションを開始、認証、終了する
- ファイルおよびプリンタへのアクセスを制御する
- アプリケーションが別のデバイスとの間でメッセージを送受信する
SMB ファイル共有および印刷サービスは、Microsoft ネットワークの主要な機能になっています。 Windows 2000 ソフトウェア シリーズで、Microsoft は SMB を使用するための基本構造を変更しました。 Microsoft 製品の以前のバージョンでは、SMB サービスは非 TCP/IP プロトコルを使用して名前解決を実装していました。 Windows 2000 以降のすべての Microsoft 製品は DNS の命名を使用しているので、図 1 に示すように、TCP/IP プロトコルは SMB のリソース共有を直接サポートできます。 Windows PC 間の SMB ファイル交換プロセスを図 2 に示します。
FTP(File Transfer Protocol)でサポートされるファイル共有とは異なり、クライアントはサーバに長時間の接続を確立します。 接続が確立されると、クライアントのユーザは、リソースがクライアント ホストにローカルに存在するかのように、サーバのリソースにアクセスできます。
LINUX および UNIX OS でも、SMB の SAMBA と呼ばれるバージョンを使用して、Microsoft ネットワークとリソースを共有する方法が提供されます。 Apple Macintosh OS も、SMB プロトコルを使用するリソース共有をサポートします。