LINEスタンプ制作代行サービス・LINEスタンプの作り方!

お電話でのお問い合わせ:03-6869-8600

stampfactory大百科事典

Server Message Block

Server Message Block (SMB) は、主にWindowsで使用されているOSI参照モデル第7層アプリケーション層部分の独自通信プロトコルの総称。LANを通じてファイル共有やプリンタ共有などの実現に使用される。認証つきプロセス間通信機構としても動作する。SMBを論じるにあたって、以下の事柄を区別する必要がある。下位層のプロトコルとしてNetBEUIを使用していた時代には、サブネットを越えるルーティングはできず、中大規模のネットワークには向かないとされた。その後、や、NetBIOSも必要としないCIFS(Common Internet File System)により、大規模ネットワークでも使用可能となっている。もともとのSMBはIBMのBarry Feigenbaumが設計したもので、DOSのローカルファイルアクセス用「割り込み 33」(21h) をネットワーク上のファイルシステム向けに変えることを目標としていた。マイクロソフトはこれにかなりの修正を施した。1990年ごろ、マイクロソフトはSMBプロトコルをスリーコムと共同開発していた LAN Manager製品に組み込んだ。さらにその後のWindows製品でもSMBプロトコルに機能を追加していった。SMBは当初の設計段階からNetBIOS / NetBEUI API上で動作することを想定していたが(通常、NetBIOS Frames、NetBIOS over IPX/SPX、NetBIOS over TCP/IP で実装)、Windows 2000ではTCP上で直接動作させる機能も導入された(その場合サーバがTCPポート445番で待機)。サン・マイクロシステムズがを発表したころ、マイクロソフトは1996年にSMBをCommon Internet File System (CIFS) と改称し、さらなる機能追加を行った。例えば、シンボリックリンク、ハードリンク、より大きなファイルの操作、NetBIOSを使わずにTCPポート445番で直接接続する方式(実験的な試みであり、さらなる改良が必要だった)などへの対応である。マイクロソフトは部分的仕様をいくつかインターネットドラフトとしてIETFに提出したが、いずれも有効期限切れとなっている。SMBプロトコルは広く使われている Windowsプラットフォームとの通信で重要であり、またそれらプラットフォームでのSMB実装は公開されているCIFSから大きく拡張されていたため、マイクロソフト以外のオペレーティングシステムをSMBの互換クライアントや互換サーバとして使うためのフリーソフトウェア実装を提供するべく、リバースエンジニアリングを目的としてSambaプロジェクトが誕生した。Visuality Systemsは、組込みデバイス及びストレージシステム向けに、最新のSMB方言をサポートする、移植可能なSMB実装を開発した。 Windows VistaおよびWindows Server 2008ではSMB 2.0に対応している。サーバ・クライアント共にSMB 2.0対応の場合のみ、SMBのコマンドをまとめて発行できるためオーバーヘッドの軽減に貢献する。SMBはPeer to Peer方式の動作をし、クライアントが何らかの要求を送ると、サーバがそれに対応して応答する。SMBプロトコルの一部は特にファイルシステムへのアクセスを扱っており、クライアントはファイルサーバとの通信にその部分を使う。しかし、SMBプロトコルにはプロセス間通信 (IPC) に特化した部分もある。SMBプロトコルはローカルなサブネットでの使用に最適化したが、インターネット経由で他のサブネットとの間でSMBを使うこともできる。Windowsのファイル共有やプリンタ共有に関わるエクスプロイトは、そのような使用法を主なターゲットとしている。SMBサーバはファイルシステムや他のリソースに、ネットワーク上のクライアントがアクセスできるようにする。クライアントはサーバ上の共有ファイルシステムやプリンタにアクセスする。このような用法・機能としてはSMBは最も有名で最も広く使われている。しかし、SMBのファイルサーバとしての面には、NTドメインを構成するプロトコル群が重要であり、それらによって少なくともNT式のドメインベースの認証を提供している。NTドメインプロトコルはSMBのIPCである名前付きパイプのためだけにMSRPCサービスを提供し、SMBサーバの実装のほとんどはリソースへのユーザーアクセスの妥当性を検証するのにNTドメインの認証を使う。NQは、Visuality Systemsによって開発された、移植可能なSMB/CIFS実装。Visuality Systemsは、1998年に元Siemens Data CommunicationsのCEO、Sam Widermanによって設立されたイスラエル企業である。NQ製品は、組込み向けSMBスタック及びストレージ向けSMB実装によって構成され、最新のSMBバージョンをサポートしている。NQは、Linux、VxWorks、 Integrity、 iOS、 Androidといったすべての非Windows系OSプラットフォームに、Microsoft Windowsのファイル及びプリンター共有へのアクセスを提供している。SMBプロトコルでは、各クライアントが自身の存在を知らせるためにサブネット全体にブロードキャストするため、ネットワークの帯域幅を占有しすぎると思われている。しかし、実はSMB自体はブロードキャストを使わない。SMBと結び付けられているブロードキャスト問題は、実際にはNetBIOSのサービス・ロケーション・プロトコルのせいである。デフォルトでは、WindowsのサーバはNetBIOSを使ってサービスの告知と発見を行う。NetBIOSは特定ホスト上で利用可能なサービスを一定間隔でブロードキャストすることで機能する。ホストが20台以下のネットワークではそのような設定でも十分だが、それ以上にホスト台数が増えるとブロードキャストのトラフィックが問題を生じるようになる。NetBIOS Name Server (NBNS) を適切に実装すると、この問題を緩和できる。例えばWindows Internet Naming Service (WINS) はマイクロソフトのネットワーク環境では適切な解決策を提供する。WINSはサービス要求の集中管理と登録のためのシステムを提供するが、ネットワークの設計と保守がより複雑化する。マイクロソフトは、Active Directory環境でのダイナミックDNSの利用を推奨している。ネットワークを設計する際には、SMBプロトコルの性能はレイテンシに大きく影響されることを考慮しなければならない。SMBを使ってディレクトリを渡り歩いてファイルを探すような操作をしたとき、このレイテンシの影響が見た目にも明らかになる。例えばインターネット経由のVPNコネクションではレイテンシが大きくなることが多く、そのような環境ではディレクトリの中身(ファイル一覧)がなかなか表示されないということになる。マイクロソフトはSMB実装にいくつかの拡張を加えている。例えば、認証プロトコルである NTLMv1(もともとのSMB仕様では、IBMのLAN Managerのパスワードを使うことになっていて、そこから生まれたプロトコル)ではDESを間違った形で使っていたため、NTLMv2を追加した。さらに、NT 4.0のドメインログイン用プロトコルでは、アメリカ合衆国以外では40ビットの暗号を使っている(128ビットの暗号は輸出規制されていたため)。マイクロソフトは2006年、SMBの新バージョン SMB 2.0 (SMB2) をWindows Vistaで導入した。SMB2では、コマンド/サブコマンドの種類が100以上あったものを19にまとめ、プロトコルのやりとりを集約した。パイプライン化機構があり、前の要求への応答を受け取る前に次の要求を送信できる。複雑な動作を1つの要求にまとめることができ、クライアントとサーバ間のやり取りの回数を劇的に減らすことができ、結果として性能が向上する。従来のSMBプロトコルにも同様な機能がありAndXと呼ばれていたが、マイクロソフトのクライアントは滅多にAndXを使わなかった。SMB2ではより大きなバッファをサポートしており、大きなファイルの転送や高速なネットワークでの性能向上が見込まれる。また、「永続性ファイルハンドル」と呼ばれるものを導入している。これは、ネットワーク接続が切れてもSMBサーバとのコネクションが継続できるようにするもので、無線LANなど接続が切れやすい環境で新たなセッションを構築する必要をなくす。SMB2はシンボリックリンクもサポートしている。他にもファイル属性のキャッシング、HMAC SHA-256ハッシュアルゴリズムによるメッセージ署名強化、ユーザー数・共有ファイル数などが増加した際のスケーラビリティ強化などの拡張がなされている。従来のSMBプロトコルは16ビットで各種サイズを表していた。SMB2ではそれらの多くを32ビットや64ビットに拡張しており、ファイルハンドルの場合は16バイトとしている。Windows Vistaとそれ以降のオペレーティングシステムでは、通信相手もWindows Vistaかそれ以降であれば、SMB2を使って通信する。従来のSMBは古いWindowsやSambaとの通信に使われ続ける。Samba 4ではSMB2を実験的にサポートした。SMB2はマイクロソフトにとって具体的に次のような利益をもたらした。Windows Server 2008 R2でSMB 2.1が搭載され、Windows Server 2008のSMB 2.0と比べてさらにファイル転送の速度が向上している。特に複数のクライアントから同時にアクセスされた際は約3.5倍の向上が図られている。Windows 8とWindows Server 2012で搭載された。SMB ダイレクト、SMB マルチチャネル、SMB 暗号化などの機能が追加された。開発段階ではSMB2.2と呼ばれていた。Windows 8.1とWindows Server 2012 R2で搭載された。透過フェイルオーバー使用時の自動リバランス、SMB ダイレクトの性能向上などの更新にとどまる。Windows 10で搭載された。認証の耐タンパ性の向上とSMB暗号化使用時のAES-128-GCMの追加が含まれる。CIFSはWindows NT 4.0時代のSMBをベースにインターネット標準とすべく、1997年マイクロソフトから提案された規格である。しかし、インターネット標準となることはなく、1998年には期限切れ(expire)となった。CIFSはSMBの方言(dialect)として扱われるが、Windows 2000時代に制定されたSMB 1.0と同じ「NT LM 0.12」を識別子として用いるため、運用上は同一のものと見なされる。SMB 1.0(MS-SMB)とCIFS(MS-CIFS)の概要についてはSMB 2.0発表後、マイクロソフトから公表されている。SMBプロトコルとSMB2プロトコルの仕様は、マイクロソフトのMSDN Open Protocol Siteから無料でダウンロードできる。SMBプロトコルに関する仕様はいくつかある。以下の一覧は、SMBクライアント、SMBサーバ、SMBプロトコルの各種拡張(Network Neighborhood スイートやNTドメインスイートなど)である。以下に示したのは主なもので、拡張版、再実装版、移植版などは省いている。

出典:wikipedia

LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。