はてなブックマーク Yahoo!ブックマークに登録  印刷
   
連載
基礎から学ぶWindowsネットワーク

2.共有ファイルのアクセスを追跡してみる

デジタルアドバンテージ
2002/06/12


 それでは、Windowsネットワーク・レイヤの構成がおおよそ分かったところで、これらを踏まえて、実際のWindowsネットワークにおいて、共有ファイルをアクセスしたときに何が起こるのかを追跡してみよう。具体例を使って各部の働きを再確認することで、より直感的にWindowsネットワーク・レイヤの働きについて理解していただけるだろう。

 例としては、前回もご紹介した最も単純なワークグループ・ネットワークを例にとる。確認の意味を込めて、前回掲載したネットワーク構成図を以下に再掲しよう。ただし、前回は最も身近なTCP/IPネットワークを想定したが、今回はNetBEUIネットワークだと仮定して、図中にあったIPアドレスは削除した。

最も単純なワークグループ・ネットワークの例
このような環境を想定し、クライアント・コンピュータであるPC01からサーバであるSV01の共有ファイルにアクセスするケースを考える。

 ここで、ワークグループ・サーバである「SV01」の共有フォルダである「usr」の中にある「a」という名前のフォルダ以下の「text.txt」という名前のテキスト・ファイルを、「PC01」からネットワークを経由してオープンするとしよう。このような場合、普通ならエクスプローラを開いて、「ネットワーク コンピュータ」で「SV01」アイコンをダブルクリックし、共有フォルダの中身を一覧表示して当該ファイルのアイコンをダブルクリックするところだろうが、ここでは次のように、[スタート]メニューの[ファイル名を指定して実行]から表示されるダイアログで、

\\sv01\usr\a\text.txt

と直接コンピュータ名と共有ファイル名を指定する。このようにWindowsでは、「\\」の直後にコンピュータ名を表記し、続けてそのコンピュータがネットワークに公開している共有フォルダや共有ファイルの名前を通常のディレクトリ指定と同様に行うことができる(この表記法はUNC:Universal Naming Conventionと呼ばれる)。の前にこのように回りくどい操作をするのは、「ネットワーク コンピュータ」でのコンピュータ一覧では、「ブラウジング(browsing)」と呼ばれる別の機能が使われるからだ。このブラウジングについては次回以降で説明する予定である。つまりここでは、説明を簡単にするために、ブラウジングの説明を後回しにしたいということだ。

[ファイル名を指定して実行]で目的の共有ファイルを指定する
説明を簡単にするために、ここではこの[ファイル名を指定して実行]ダイアログでコンピュータ名と共有ファイル名を直接指定した。こうして[OK]ボタンをクリックすると、メモ帳が起動され、ネットワークを介してtext.txtファイルがオープンされるはずだ。

 こうして共有ファイルを公開しているコンピュータの名前(SV01)と共有フォルダ名(usr)、サブフォルダ名(a)、共有ファイル名(text.txt)を指定して[OK]ボタンをクリックすると、エクスプローラからWindowsのカーネル・モードにあるリダイレクタが呼び出される。

ワークステーション側の流れ
クライアント側でファイル・アクセスを実行すると、エクスプローラからカーネル・モード内のリダイレクタが呼び出される。このリダイレクタでは、そのファイル・アクセスがローカルの資源か、ネットワーク資源かを判定し、内部的な処理を切り替える。

 クライアント側である「PC01」でファイル・アクセスを実行すると、まず最初にエクスプローラから、Windowsのカーネル・モードにあるリダイレクタが呼び出される。「リダイレクタ」とは「redirector」のことで、「redirect=転送する」ということから分かるとおり、実行されたファイル・アクセスのアクセス先を調査し、適当なデバイスへのアクセスに切り替える。

 例えば、ファイル・アクセスがローカル・ハードディスクやローカルのCD-ROMなどに対するものなら、リダイレクタはファイル・アクセスをそれぞれのデバイスへのアクセスに切り替える。具体的には、対応するボリュームのファイル・システム・ドライバ(NTFSFATCDFSなど)を呼び出す。CDFSはCompact Disc File Systemの略で、CD-ROM向けのファイル・システムである。

 しかし今回アクセスするファイルはネットワークの先にあるので、リダイレクタはアクセス先をネットワーク処理モジュール(図の「ネットワーク・プロトコル」)に切り替える。実は「ネットワーク・プロトコル」の中身こそ、すでにご紹介したWindowsのネットワーク・レイヤなのである。

 従ってリダイレクタから呼び出されるのはSMBである。前述したとおり、SMBは共有ファイル/共有プリンタを実現するためのアプリケーション・プロトコルである。SMBは、NetBIOSのセッション指向の通信機能を用いて、サーバ側のSMBサーバとの間に通信用のセッションを確立し、そこを通じてファイル・アクセスのためのコマンドやデータをやり取りする。例えばファイルをアクセスしたければ、SMBのファイル・オープンやファイル読み出し要求を送信し、その結果としてファイルの内容のデータを受け取る。

 NetBIOS経由で送信されたコマンドやデータは、実際には、その下位にあるNetBEUIやTCP/IP(の持つセッションやデータグラム通信機能)を使って、相手のコンピュータまで届けられる。そして、これはさらに下位にあるNDISを通って、ネットワーク・インターフェイスから送信され、それがサーバ側のネットワーク・カードへと届く。

サーバ側の流れ
ネットワークから受け取ったファイルのアクセス要求は、ネットワーク・プロトコルを経由してサーバ・ドライバに渡り、ここでローカル・ファイルへのアクセスに変えられる。

 ネットワークからサーバが受け取ったファイルのアクセス要求は、ネットワーク・プロトコル・レイヤの下位から上位に順次送られ(具体的には、ネットワーク・インターフェイス→NDISドライバ→NetBEUIトランスポート・プロトコル→SMB)、最終的にはWindowsカーネル内でのファイル・アクセスをつかさどるサーバ・ドライバに渡される。サーバ・ドライバでは、これをローカル・ディスク(ハードディスクやCD-ROMなど)へのアクセスに変えて、ファイルのオープンや読み出しの結果を再度ネットワーク・プロトコルを通してクライアント側に返す。こうしてクライアント側では、メモ帳が起動され、「\\sv01\usr\a\text.txt」ファイルがオープンされて、その内容がメモ帳のウィンドウに表示される。このように内部的には、ローカル・ストレージとはまったく異なるルートを通ってファイルがアクセスされるのだが、メモ帳を起動したユーザーから見れば、両者の違いは分からない。

まとめ

 今回は、ネットワークの基本であるOSI参照モデルと、それに照らし合わせたWindowsネットワークの階層モデル(最も単純化したもの)をご紹介し、それらのネットワーク・プロトコル・レイヤを経由して、共有ファイルのサービスが実現されている様子について説明した。この際今回は、「ネットワーク・プロトコル・レイヤ」を1つのブラック・ボックスとして扱った。共有ファイルという最も分かりやすいケースを例にとったが、これを可能にするのがWindowsネットワークの大きな働きである。しかしネットワークを経由して正しく、効率的にデータをやり取りするには、そのための手続きが必要である。これを理解することこそ、Windowsネットワークを理解することにほかならない。

 これでほぼ外堀は埋まった。次回からは、いよいよ今回ブラック・ボックスとして扱った「ネットワーク・プロトコル・レイヤ」の内部へと本格的に足を踏み込むことにしよう。End of Article


 INDEX
  [連載]基礎から学ぶWindowsネットワーク
  第2回 Windowsネットワークのレイヤ・モデルとファイル共有
     1.ネットワークの基本中の基本、OSI参照モデルとは?
   2.共有ファイルのアクセスを追跡してみる
 
 連載
Windows Server Insider フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード


スキルアップ/キャリアアップ
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  New! “予防”と“発見”で強化する内部統制
――@IT主催内部統制セミナー詳細

  「番次郎さん、WSSが使えそうです!」
“いぶき”がついに、難題突破口を発見!

  ORACLE MASTER取得者へ林優子氏が指南!
「次に身に付けるべきスキルとは……」

  フロントシステムの4つの課題を解決!
企業システムでAjaxが実用化段階に

  サン&オラクル推奨のデータベース環境。
驚きのパフォーマンス性能に迫る!

  2008年:これが成功するITエンジニア像だ!
〜エンジニア・キャリア進化論(第2回)〜

  オープンソースのアプリケーションサーバ
GlassFishのレシピを紹介します!

  「地方のエンジニアも幸せにしたい」
その思いがニアショア開発へとつながった

  「学ぶ」だけで「経験」が身に付く?
ITエンジニアの私が大学に入学した理由

  ■ メール管理者の悩みを軽減する! ■
情報漏えい、スパム対策の最新アプローチ

  マーケティングのプロがSPSSを選んだ
理由:「プロでなくても使えるから」

  フリーエンジニアのための社会保険入門
万が一の時、リスクにどう備えるべきか?

  ■ボトルネックバスターズ 2■ 連載 第2話
「彗星寺先生」現る!――答えはどっちだ!?

  障害の発生前に事前通知!!復旧時間を
早める切札で、サーバ管理がラクになる!