21.PCIのIRQ共有    目 次

Windows95OSR2以後、PCIのIRQ共有が実装され、これでIRQに悩まされることは無くなると、喜んだのも束の間、実際、使ってみるとなかなか共有されない。仕方ないので、その構造を少し調べてみたところ、PCIの仕様では出来るはずでも、M/Bの実装はそうなっていないので色々制約があり、その制約の度合いはM/Bに依存するという訳がわからないものである事が分かった。結局、拡張カードをあちこちのPCIスロットに収めて試行錯誤を繰り返す以外に手はなさそうである。実装では、PCIスロットごとに割り当てられるIRQが異なるからである。

この事を理解するには、以下のPCI仕様を知っておく必要がある;

 ・PCIの割り込みは、PC/ATのIRQ アーキテクチャとは独立である。
 ・各スロットには、INT#A〜INT#Dの4本の割り込み線が用意されている。
  (IRQと言わないでINTという辺りが、如何にもPC/ATアーキとは違うといっているようで面白い)
 ・PCIの各スロットのINTはスロット独立である;PCI1のINT#Aは、PCI2のINT#A
  と結線されている訳ではない。
 ・拡張カードは、マルチファンクションカードでなければ、通常、INT#Aを使う。
 ・INTは、ルーティング機構によりIRQに結合される;
  つまり、こうなっている;ルーティング機構とは、論理的にはロータリ式切り替えスイッチである。


          Routing;    PCI-n のINT
          RotarySW

     IRQ0 ○
     IRQ1 ○
      ・・・   ←○−−−−−INT#A
     IRQ14○
     IRQ15○


     IRQ0 ○
     IRQ1 ○
      ・・・   ←○−−−−−INT#B
     IRQ14○
     IRQ15○


     IRQ0 ○
     IRQ1 ○
      ・・・   ←○−−−−−INT#C
     IRQ14○
     IRQ15○


     IRQ0 ○
     IRQ1 ○
      ・・・   ←○−−−−−INT#D
     IRQ14○
     IRQ15○


各スロットのINT#nはバス接続ではなくスロット独立である。上記の構造によれば、PCI1のINT#AはIRQ5に、PCI2のINT#Aは、IRQ10にというような事が可能である。逆に、PCI1のINT#AはIRQ5に、PCI2のINT#Bは、IRQ5にというような事も可能である。実に自由度がある。従って、「INTは4本しかないから、5本目以上のPCIスロットはIRQが使えない」は正しくないはずである。

所が、実装はそうはなっていない。上記をそのまま実装しようとすると、PCI回りがかなり煩雑になる。従って、「INTはスロット独立で、バス結線はされていない」は、守られておらず、バス結線されている。どのようにされているかがM/B依存なので、冒頭に書いたように一概に言えず困難を引き起こしている。しかし、素直にPCI1〜PCInのINT#Aが共通になってはいないようである。

           Routing
                 PCI1     PCI2    PCI3    PCI4
   IRQ0  ○ ←○−−INT#A−−INT#B−−INT#C−−INT#D
   ...     ←○−−INT#D−−INT#A−−INT#B−−INT#C
   IRQ14 ○ ←○−−INT#C−−INT#D−−INT#A−−INT#B
   IRQ15 ○ ←○−−INT#B−−INT#C−−INT#D−−INT#A

のように襷掛けにしておけば、全てのスロットがINT#Aを使っても、IRQへの出口はバラバラにすることができる。但し、PCI1のINT#AとPCI2のINT#BとPCI3のINT#CとPCI4のINT#Dは布線論理的にIRQ共有となり、PCIの仕様通り自由ではない。しかし、拡張スロットが仕様(推奨?)通り、INT#Aを使えば、4個のスロットは一応独立にIRQに結合(routing)される。5本目以上のスロットは、IRQが使えない訳ではないが、ハードワイアードでどれかと共有になってしまう。勿論、M/Bによっては、IRQと結ぶrouting機構に結線されておらず、IRQが使えない事も有る。

この実装をみると、Windowsで泣かされる、次の事態が何故起きるのかが良く理解できる; デバイスマネージャから、PCIのIRQを変えられない

        PCI1     PCI5
  IRQ5←INT#A−−−INT#A

INTが、このような実装になっていて、且つ、routingによりIRQ5に割り当てられていて、これを共有しているときに、共有が嫌でPCI1をIRQ12に移そうとしても、相棒のPCI5はIRQ5にいるのだから無理であり、Windowsのレベルで、デバイスマネージャのIRQの項を手では変えられなくしている。

AGP1の直ぐ下にある、PCI1と、PCI2をIRQ共有させようとしても出来ない事がある。 こんな状況であると、直ぐ理解できる;

   IRQ12○−−AGP−−PIC1
   IRQ10○−−PCI2

この場合、AGPにVGAカードが入っていて、PCI1と布線論理によって、強制的にIRQ共有になってしまっている。ここで、PCI1をPCI2と共有させるために、IRQ10に移そうとしても、AGPのIRQ10と矛盾が出てできない。こんな時、AGPごとIRQ10に移して、AGP,PCI1,PCI2の全てをIRQ10にして共有させてしまえばよさそうな物だが、Windowsはそれはしないようである。

さて、もう一つ問題がある。上記ルーティングはどのようにして行われるのか。デバイスマネージャのシステムデバイス項目のPCIバス項目に、ルーティンングテーブルの取得法が複数あって、普通のユーザには、何の事かわからず、どれにしたら良いか分からないものである。既定値にしておけば、良い。どうもPCI回りはバグだらけのようで、どのroutingが成功するか分からないので、総当りで出来る事は順に全部やるらしい。列記されている方法には優先順が有り、ルーティングテーブル取得に成功したらそこで止めるわけである。ルーティングテーブルの取得に失敗しても、スロットへのカード挿入を試行錯誤でやっている内にうまく行く場合がある。これで、汗掻き掻き日曜一日つぶした事がある。

ところで、IRQは、PnP部分は、まずBIOSが設定して、ESCD;ExtendedSystemConfigurationDataとして保存する。BIOSにPnP OSを使用するという項目がある場合(無いということはWin95以前のBIOSであろう)、これを「yes」にしておくと、起動デバイス以外のIRQは、OSがPnP機能で調停した結果をESCDに書き戻す。OSとBIOSの連携がうまく行かないと(バグである)、ESCDへの書き戻しに失敗して次回起動時、ESCDの内容と拡張カードのConfigurationRegisterの内容に矛盾が生じ、ハングアップする場合がある。というより、こんな無茶苦茶な事態に陥れば、必ずハングアップする気がするのだが。。。

こんな時は、BIOSで、PnP OSを使用するを、「no」にすれば、BIOSがPnPデバイスの全てを設定してESCDに書き込むので、OSとの間で矛盾が生じない。あるいは、デバイスマネージャ→システムデバイス→プラグアンドプレイBIOSのNVRAM/ESCDのアップデートを使用しないにしておけば、これもESCDに書き込まないが、それだけでは書き込めないと同じ事注21 )であるので、その他、矛盾が起きないように何かしているのだろうか?

注21
ESCDはBIOSが起動デバイスを設定しただけであるし、拡張カードのConfigurationRegisterとの矛盾は抱えたままである。

NVRAM:NonVolatile RAM:不揮発性RAM:BIOSパラメータ格納に使われているCMOSのこと

PnP OSでないWindowsNT4.0と、Windows95をdual boot(BIOSは、PnP OSを使用する/しない両方を試行)にして、PnPLANカードを差しておいて、NTでどうしてもこのNICを使えない事があった。上の論理に従えば、

 ・Win95で起動;このNICはWindows95がリソース割り当てしてESCDに書き戻す。
 ・次にWinNTで起動。ESCDを読んで起動する。NICのConfigurationRegisterの情報も
  矛盾しないので、動くはずである。

が、どうしても動かなかった。勿論、ドライバはきちんとしてある。NTが非PnP OSであるので、NICのConfigurationRegisterを読む能力がなく、CR内のリソース情報をドライバががうまく読み出せないのだろうか?そうならば、どこへ割り込みを掛けたら良いかドライバが分からないので稼動しない事は理解できる。



22.Time sliceを調整する    目 次

Win9xは一応プリエンプティブなマルティタスクOSだから、タイムスライスが存在する。これがどうもi486のころから変わっていないらしい。それで、Pentium!!!の時代にはもっとタイムスライスを細かくできてキビキビとコンテキストスイッチングさせることもできる。

c:\windows\system.ini→[386Enh] に

MinTimeslie=x

という項を入れる。
ここに、
x=
   8 for P75MHz〜P166MHz
   4 for P166〜PII400
   3 for PII 400〜


しかし、ホームユーザがコンテキストスイッチングを速くして何かいい事があるかといえば、よくわからない。HDbenchや、Superπが速くなるとも思えないし。。。




23.1枚のFDにLinux    目 次

PlamoLinuxというSlackware系のLinuxがあるが、このinstallerは、Linuxがむき出しで、1−FD−Linuxを簡単に作ることができる。ここ に置いておく。

これがあると、Linuxで作ったパーテションがWindowsから消せないという問題 も簡単に解決する;

ダウンロードしたら、mkFD.batをダブルクリックするだけで、Linuxとしてブートするフロッピが出来上がる。

loginは、「root」ででき、パスワードは聞いて来ない。

ただ、 ERR 0x10 が出てブートできない場合もある。
Rawrite.exeの書き込みタイミングは微妙なのか、こういう事がままあるので、もう一度、mkFD.batを実行してフロッピを作ってみる。




24.CD−ROMが読めるFDの作り方    目 次

1)自分のPCのリカバリーCD起動用FDから、
  CD-ROM ドライバ
  mscdex.exe

 の2つのプログラムを探し出す。
 (最近のCDブートのPCにはこんなFDはありませんが、こんなことをしなくても、CDドライバーが入った起動FDを作ってくれます)

 CD−ROMドライバは、「メーカ名cd.sys」のようになっていることがあるが、一番簡単なのは、config.sysを調べること。

    DEVICE=XXXXXcd.SYS /D:YYYY

のような行が見つかれば、XXXXXcd.SYS がCDROMドライバです。大体それとわかる名前になっています。

2)起動FDを作り、上の2つのプログラムをコピーします。
  入りきらなかったら、以下のものを消しましょう;

  debug.exe  drvspace.bin  regedit.exe

3) config.sysに次の2行を追加;

   DEVICE=XXXXXCD.SYS /D:YYYY
   LASTDRIVE=Z

  ここに、XXXXXCD.SYS はCD-ROMのドライバ名。

 autoexec.batに次の一行を追加;

  MSCDEX.EXE /E /D:YYYY /L:O

 ここに、
/E のEは自分のCD-ROMのドライブ文字にあわせて書き換える。
 /D:YYYY はautoexec.batの/D:YYYYと同じにしておけば何でもよい。面倒ならこのままでよいでしょう。
自分のPCのリカバリーCD起動用FDの中のconfig.sys、autoexec.batを真似ておくのが一番よい方法です。




25.Win9xの極簡単なバックアップ/レストア方再考    目 次

この方法は、13 後半で示したHDDイメージではなくファイルシステムを用いますので、イメージの時のような制約がなくなります。イメージをバックアップする場合、Windowsは、HDD中に(正確にはパーテション中に)ファイルを散らかしますので、1GBの300MBしか使っていない状態でも、下手をすると、1GBのイメージを作らなければなりません。Defragは大体うまく働かず、あちこちに散らかったファイルを残したままです(win386.swpも位置を動かせないファイルなので、D:ドライブがあれば、swap領域を、マイコンピュータ右クリック→プロパティ→パフォーマンス→仮想メモリ、でそちらに設定し、再起動後、再度defragすれば、多少ましになります。win386.swpは、バックアップの必要はなく、なければ、Winowsが必要に応じて作ります)。そんな訳で、ここで述べる方法はうまく行けばかなり良いのです。

I.もっとも簡単な方法;2台のHDDを使う方法

  0.準備;HDDが2台付いていることが前提。
       1台目にはC:があり、Windowsが入っている。
       2台目はFdiskで基本MS-DOS領域を作り、
       formatしておく。

  1.Windows9xを立ち上げる
  2.DOSプンプトを開き、次の様に入力して、1台目のWindowsを
    2台目のHDDにコピーする;

    xcopy c:\ d:\ /c/h/e/q/k/r

     /c;エラーが起きても続行、/h;隠しファイル、システムファイルもコピー
     /r;read-onlyファイルのコピー /e;(空の)サブディレクトリーもコピー
     /q;コピー中、ファイル名を表示しない /k;属性をコピー

  3.1台目のHDDが壊れた場合、2台目のHDDを
    Primary/Masterにジャンパ設定し、fdiskでactiveに
    するだけで、復活。

    1台目は適当に処理する。(捨てる。Primary/Slave
    にして、formatし再利用、等)

この辺りで勉強できます;

      http://www.tkcity.net/~nobusan/

ここでは、2台目のHDDはD:としました。ご自分の環境でどうぞ。確認は,Win95だけです。xcopyの機能しか使っていませんのでWin98でも出来ると思いますが,論理的にはそうでも実装はそうなっていないかもしれないので保証はできません。

C:\Windowsには、win386.swpというswapファイルが入っていて、これはWindowsを稼動しながらコピーすることはできませんのでエラーメッセージがでますが、それでokなのです。(不要だから、それでいいのですね)。ファイルには、隠し、システムなど色々な属性がついていて、コピーの邪魔をしたりします。そんな困難を全て解消してくれるのが、上に書いた絶妙なoptionなのです。 ちなみにこのoptionは、太古の昔、UNIXmagazineに載っていたものです。UNIXの雑誌です!

それなら、DOSのFDから、xcopyを起動FDに入れれば、万能起動FDができそうな気がします。でも、WindowsのDSプロンプトで動くxcopyはコマンドラインからはxcopyで呼び出していても、実態は、xcopy32です。Windows95は、FATじゃなく、VFATですから、ただのxcopyでは、長いファイル名に対応できませんね。じゃ、xcopy32をwindowsフォルダーからコピーしようと不屈の精神を発揮してもだめです。VFATは、ファイルシステムですから、xcopy32だけコピーしてもだめなのですね。単なるxcopyと同じ動作しかしません。

 因みにこの2台目のHDDを異なる機種のPCへ持って行ってはいけません。著作権うんぬん以前に、大変な事になり、最初からインストールした方が速くなります。何が大変か?せっかくのバックアップが壊れるのを覚悟で(本当です)実験してみて下さい。かなり勉強になります。

とは言え,多少のヒントは書いておきます。Windowsに新しい拡張カード,例えばLANカードを差すと,PnPで認識して,勝手にドライバなどを入れてくれますが,マザーボード上の各種チップも実はOSのインストール時に同じようにドライバが入れられているのですね。デバイスマネージャで見ると、「システム デバイス」に現れています。典型的には,チップセットで,PCI-ISAブリッジとか,PCIバスとかがみえています。PCによって、普通、マザーが違いますので、これらのチップも違い、従って、他のPCのインストール後のWindowsのイメージを別のPCにもってくると、PnPは新しいチップセットを見つけてどんどんドライバを入れてくれるのです。何度も再起動させられる位です。で、PnPが完全なら、古い使われないドライバは捨て、この新しいドライバで動いてくれるのですけれど、なかなかそうもいかなくて、新規インストールした方が良い気分になります。

II.任意の2基のドライブを用いてバックアップ/レストアする方

尚、上記xcopyで、「d:¥」は、実は、別のディスクである必要はなく、ドライブ≒パーテションであればいいし(だから、DOSプロンプトから見えさえすれば、MOでも良い!SCSI機器でも良い)、更に「d:¥BKUP(但し、フォルダー/ファイル名は8文字以下、は厳守した方がいいでしょう)」などフォルダーでいいわけなので、レストアの方法さえあれば、こんな便利なバックアップ方はないのですが、Windowsだけの世界では、Win95を起動したDOSプロンプトのxcopyでしかレストアできないので、Windowsをレストアする為にはWindowsが動いていなくてはならず、あまり意味がありませんね。

 ここに、そのような状況を打破する方法があります;

★★★お薦めの方法

  DOSでVFATを使えるフリーソフト「vftool」を用いる

 DOSからWindows9xをバックアップしようとすると、8文字を越える長いファイル名が問題になります。唯一、これだけの為にレストアが困難なのです。で、それを解決しようと試みたソフトもフリーでインターネットに上がっています。

  「VFAT対応各種ツール」というものです。

   http://www.valley.ne.jp/~kazu-ma/  にあります。

ここにある、「vfxcopy」だけを用います 。

  ・起動FDを作り、vfxcopyをその中にいれPCを起動。
  ・d:¥win95にバックアップが入れてあるとして;
     vfxcopy -R -H  -S  -N d:\win95  c:\

以上です。

補足

バックアップなど、OS外の世界にいますと、色々厄介な問題を起こします。 大体、バックアップが欲しくなるような場面には、PC−UNIXを入れた、あるいは、WindowsNT系のOSを入れた、が元に戻したいなどの場合も結構あります。 これらの場合には、MBR、PBRが改造されていますので、元に戻さなくてはなりません。

PC−UNIXによるMBRの改造への対処

 MBRをDOS系(Windowsを含む)に戻したい時、インストールされているWindowsの起動FDで立ちあげて、

    fdisk /MBR

WindowsNT系によるPBRの改造への対処

PBRをDOS系(Windowsを含む)に戻したい時、インストールされているWindowsの起動FDで立ちあげて、

   sys c:

で、素なWindows(DOS)環境に戻ります。(つまり、PC−Unixや、WindowsNTで書き換えてしまったMBRやPBRを戻せます)

パーテッションの削除

Windowsのfdiskは、パーテションを削除できないことがあります。その場合、Linuxか、FreeBSDをインストールする手順を踏むと途中でパーテションを操作するステージになりますから、そこで開放作業をして下さい。1MBをDLするつもりがありましたら、このOne FD Linux が便利です。

FreeBSDの場合、パーテションをDで削除したら、すぐWでMBRにその情報を書き込みます。Wは使っていけないという注意が出ますが構いません。Wしたら、電源を切って終わりです。

この場合、Windowsのパーテッションに影響を与えることなくLinux、FreeBSDのパーテッションだけ消す事ができますが、でも、下手をするとWindowsのパーテッションも消し、全てのファイルが無くなることは覚えておいて損は無いですね。

パーテッション情報は、HDDの先頭セクターの内の64byteに格納されていて、その表のエントリーは4つあります。この4つのエントリーがfdiskで書き換えられるのです。パーテションを削除するとは、そのパーテションの項目(の内容)だけを消すことなのです。

ここ にもほとんど同じ事ですが、多少違うことが書いてあります。




26.ネットワークは難しくない    目 次

ネットワークの簡単な解説
ネットワークのトラブル;FAQ
ネットワークの診断

ネットワークは難しいと思われています。基本を知らないで、闇雲にpingを打ったり、ネットワークコンピュータを覗いているというのでは確かに難しい、と言いますか、それは単に五里霧中の状態に過ぎません。ネットワークといえども所詮は人間が自分の世界からの類推で作ったもの、実世界の構造と異なることはありません。ここでは、その構造を解説してみます。正確さではなく、考え方を中心にしました。

こんなたとえ話しから入りましょう。

今、小包(英語でパケットです)を友達に送ろうと思っています。これを郵便局に持って行ました。さて、この先この小包には何が起こるでしょうか?小包は何段階もの手続きを経て相手の元に届きます。この段階の事を、ネットワークでは「」と言っています。国際標準機関のISOでは、7層に分けていますが、何層に分けるかは、小包の配送システムをどのようにみるかですから、見る人の勝手でもあります。尤も、分け方によって、奇麗、汚いの差は出てきます。Windowsのネットワークは、三層--物理層(例;イーサネット)、プロトコル層(例;TCP/IP)、アプリケーション層(例;IE)--しかユーザに見せていません。これは一般ユーザにとっては、なかなか分かりやすくて良い分け方です。さて、ではこの層の考え方ですが、所詮、そこいらに幾らでも居る普通の人間の考えたことですから、至って簡単です。難しいと思われるのは、勝手な造語が氾濫しているからでしょうが、中味はコケオドシですから大したことはありません。

第1層:物理層
郵便局では、宛て先によって、大型トラックで送るか、JR貨物便で送るか、あるいは、船便、航空便で送るか、振り分けます(実際とは違うでしょうが、そういう事にしましょう)。つまり、このパケットを載せる交通機関が、「物理層」です。個々の交通機関(物理層)により、載せ方、送り方などの手続き(英語でプロトコル)が違います。直接我々の目には触れませんが、局員は、なにやら一杯書類を書いています。いつ、誰が、どこの誰に宛ててどんな手段でだしてなどです。この中には貴方が書いた情報--宛て先とか、中身の種別とか、そんなもの--も有りますが、郵便局独自の情報もあります。更に、実際に郵便局から宛て先の郵便局に送るには、小包は貴方が郵便局に出した包装のままではなく、鉄道ならコンテナ、トラックならトラック用の段ボールの大きな箱のような、それぞれの交通機関に独自の入れ物(これも一種のパケットですが、そうは呼びません。パケットというのは、固有名詞と思ってください。他に、フレーム、セルなど小包なのですが、使われる設備、状況の違いで呼び名が違うものがあります)に入れて送られます。ネットワークでは、物理層は、イーサネットや、電話網になります。

第2層:データリンク層
このように、交通機関で、パケットが送られるますが、その時の送り方を指示した部分--配送指示書のようなもの--がデータリンク層と(MAC:Media Access Control層とも)よばれます。名前がいかめしいだけで、たいしたものではありません。物理層はハードですが、データリンク層はその上で実際にハードを使うソフトです。物理層を制御してその上でパケットを送るドライバみたいなものと思えばいいでしょう。

尚、先走りますが、データリンク層は、自分の48bitのアドレスをもっています。MACアドレス等と呼ばれます。c:¥Windows¥winipcfg.exeをダブるクリックすると、アダプタアドレスという項がありますが、これがそのアドレスです。イーサカードのROMに工場で書き込まれているのです。第三層で出てくるIPアドレスは貴方が書いた相手の住所です。郵便屋さんは、自分の地図でそのアドレスの物理的場所を探して配送します。MACアドレスは、そのような最終的に相手の居所が分かる物理アドレスです。

第3層:ネットワーク層
さて、貴方は、パケットを郵便局の定める小包用の箱に入れて送ったのですが、この箱をIPパケットとしましょう。IPパケットはそのまま送られるわけではなく、第1層のところに出てきたように、交通機関(物理層)に即した入れ物に入れて送られました。でもそんな事は貴方の知る必要はない事で、貴方はIPパケットを送ったとだけ認識していれば良いわけです。この第3層をネットワーク層ともよびます。

インターネットでは、この層の処理は、IP:InternetProtocolを話すソフトが行います。IP層(ネットワーク層という名前は一般名です。IP層という呼び方はネットワーク層の一つの例です)のソフトはこの層しか見ていません。下の層に何が使われ--イーサか、電話線か--、どんな形式でデータが流れているかなどはIP層のソフトは知る必要は無いのです。ですから、同じIP層のソフトで、LANを使ったり、電話線を使ったり出来ているわけです。これが層で切り分けている最大の理由です。各層は他の層のことなど気にする必要はないのです。輸送トラックの中では貴方の送った小包がどんな入れ物に入れられているかなど知りませんね。それどころか、どんな交通機関で送られているかさえしりません。

第4層:トランスポート層
所で、郵便局としては、小包が本当に届いたかどうか、確認したいものです。もし、届いていなかったら、事故通知を出す必要があるでしょう。この確認などをおこなう層がトランスポート層で、インターネットでは、TCP:TransmissionControlProtocolでおこないます。実際の郵便局では、確認などしていないでしょうから、後述するUDP:UserDatagramProtocol的です。TCP層(のソフト)は、パケットの完全な輸送を保証します。

幾つもに分けて連番を振られてIP層によって送られてくるパケットは、連番通り到着する事をIP層では保証していません。インターネットの前身とも言えるARPANET(アーパネット;AdvancedResearchProjectAgency)は、軍事研究だったのです。通信線がどこか破壊されても、他を自動的に迂回して到着する研究でもあったのです。理論的にはパケットごとにバラバラの経路を通っても構わないのですから、到着順もバラバラになって構いません。

それどころか、途中のルータの故障などで消えてしまったパケットがあっても気にもしません。IP層は、ただただひたすら送り出すだけで、送り出した後はどうなっていようと全く関与しないのです。TCP層はIP層が送り出したパケット群が、相手に送り出したと同じ状態で付くように、相手のTCP層ソフトとTCPで話しながら管理し、出鱈目な順番で到着したパケットは連番になるよう並び替え、足りないものは再送して、通信の品質を保証しているのです。そうして、正しいパケット群を自分の上位層に引き渡すのです。

ここは、説明不足で少し分かり難いかもしれません。パケットの流れを説明します。例えば貴方が書いたメールを「送る」ボタンで送ると、6、7層のソフトであるメーラは、5層に頼んで、4層のトランスポート層にメールを渡します、トランスポート層は更に、IP層に渡し、IP層は、IPパケットとして、データリンク層に渡します。データリンク層は自分の管理下の物理層に合った形にIPパケットを変換して、物理層に渡します。こうして、直接相手に繋がっている物理層を電気信号としてパケットは送られていきます。

相手の物理層とデータリンク層の組はこれを受信し、ネットワーク層に渡します、ネットワーク層はこれをIPパケットにしてトランスポート層に渡します。トランスポート層はネットワーク層から受け取ったパケットを送信された状態に復元して、アプリ層のメーラに渡すのです。

もう一つの別な比喩
通常、具体的通信と言えるのは、以上の4層までですので、ここまでの更なる説明をしましょう。最初に小包を送る段階を層と呼ぶと言いましたが、この段階むしろ、会社の層で考えた方が分かり易いかもしれません。

部長(第4層)は、課長(第3層)に「誰それにこの小包を出しておいて」というだけです。課長は相手のアドレスを調べ、適当な封筒に入れて係長(第2層)に「では、頼むよ」と手渡す訳です。係長は(第2層)、どんな輸送手段(メディア)で送るのか--トラックか、航空便か--を調べてそれにあった箱にその封筒をいれて、平社員(第1層)のトラック運転手か、飛行機の運び屋さんにわたします。

こうしてみると、部長は楽なもので、第1層が一番大変です。でも、社会的に際立って見えるのは、部長(TCP)か課長(IP)ばかりです。しかし、実は、部長にはこの小包がきちんと相手に渡ったかを確認する責任があります。課長以下は、下の層に渡しただけで、相手が本当に受け取ったかを確認する義務がないのです(少なくとも、IPネットワークでは)出しっぱなしです。


        送り側PC                  受け側PC

  第7(&6)層;お客(アプリケーション層)        第7(&6)層;お客
        ↓                           ↑
  第5層;受付け(セッション層)             第5層;受付け
        ↓                           ↑
  第4層;部長(トランスポート層)            第4層;部長
        ↓                           ↑
  第3層;課長(ネットワーク層)             第3層;課長
        ↓                           ↑
  第2層;係長(データリンク層)             第2層;係長
        ↓                           ↑
  第1層;担当(物理層)−−−−−−−−−−−−−→
                LAN(あるいはインターネット)


↓→はデータの流れ。データは一定の大きさ(例2KB)に区切って、その単位で送られます。この単位毎に送り主、送り先などを記入したヘッダー(送付票)がつきます。この単位の事をパケットと呼びます。

上に出てきたトランスポート層などの呼び名は「層」の一般的な名称で、インターネットの場合には、そこで使われる主なプロトコルの名称を使って、TCP/IP(ティーシーピーアイーピー)層といわれることもあります。Windows9xのLANでは、必ずしも、TCP/IPは使われず、軽いNetBEUIが使われる事も多い。当然、IPアドレスなどはありません。

各層は、社内では下の層に仕事を委託していますが、送り先の相手とは同じ層としか話をしていません(自分の層専用のprotocolなのですから当然です)。相手側の他の層とは話はしないのです。したがって、各層は独立で、たとえば、4層なら、下記のような通信をしている事になる。

第4層;部長(トランスポート層) ←−−−−−−→ 第4層;部長




ネットワークの本を読んでいて、IP層はコネクションレス型通信で、相手に届こうが届くまいが、パケットは送りっぱなしで、相手に渡ったという保証はない。一方、TCP層はコネクション型通信であって、相手に渡る事を保証するということが書いてあって、分かり難いのですが、部長は、相手の部長にまず、「これから送りますよ、良いですか」という問いかけの信号を発信します。それで、「ok」が帰ってきたら、課長に、送りなさいと指示をして、パケットを渡すのです。相手とコネクションが取れているので、コネクション型通信と呼ばれるのです。

部長に言い付かった課長は、相手の課長に、「今からパケットを送るよ、受け取る準備は出来ていますか」などと聴きもせず、いきなり送付してしまっているのです。相手とコネクションがとれていないので、コネクションレス型といわれます。

実際のネットワークの1層、2層

LAN
さて、実際のネットワークで考えますと、LANでは、1層、2層は大抵はイーサネットです。1層はPCIバスに挿したあのLANカード(と、カテゴリ5のケーブルなど)です。あるいは、PCカードのLANカードかもしれません。これらのカードは、NIC:Network Interface Cardとか、ネットワークアダプタ、イーサアダプタと呼ばれます。2層は、WindowsではLANカードを組み込んだ時にひっそりと人知れず入っています。Windowsでは1層、2層をまとめて、アダプタといっています。ネットワークコンピュータを右クリックしてプロパティを選んで追加を押すと、「クライアント、アダプタ、プロトコル、サービス」と見えています。

ダイアルアップ
ダイアルアップでISPにつないでいる時には、また様子が違います。1層はモデムあるいは、TA(と電話線)です。2層はWindowsでも目に見えます。PPP:Point-to-Point Protocolというプロトコルです。マイコンピュータ→ダイアルアップアップネットワーク→新しい接続でダイアルアップアダプタを作り(既に存在するならそのアダプタの)、そのプロパティを開き、サーバの種類のタブを見ますと、
出ていますねちなみに、「詳細オプション」と「使用できるプロトコル」は普通このような設定にします。間違ってもNetBEUIや、ネットワークにログオンなどにチェックを入れてはいけません。ISPとNetBEUIで話すことは、ありませんし、ISPのネットワークにログオンすることもありません。ダイアルアップ時に不要な時間が掛かります。

1層にモデム、TAを使う時、Windowsでは、この1層、2層をまとめてダイアルアップアダプタと言っています。(イーサネットではネットワークアダプタなどです) この2層はLANの場合、設定することがないので、普通、あまり知る必要は有りませんが、ダイアルアップアダプタは、モデムの設定、PPPの設定など結構面倒です。ダイアルアップアダプタの設定はこれだけで良いでしょう。「情報」タブはモデムの設定の時にすんでいるでしょうし、「スクリプト」は触ることはありません。「サーバの種類」タブの右下にある「TCP/IP」の設定もISPがDHCPでやってくれるので何もしなくて良いでしょうが、ISPによっては設定が必要かも知れません。その場合は、ISPのマニュアルに必ず書いてあります。 DHCPネームサーバ など訳の分からない専門用語が出てきますが、気にしないで読み進んで下さい。後で説明します。

実際の第3層 ネットワーク層、名前解決、DNSなど
さて、いよいよ第3層、インターネットらしくなってきました。有名なプロトコルはIP:Internet Protocolです。多分、その他、にもICMP:Internet Control Message Protocolも知らずに使っているとおもいます;pingです。しかし、IPだけ知っていればいいのです。この層は、どんなアダプタがPCに刺さっているか、電線(メディア)はカテゴリ5か、電話線か、あるいは無線か、など気にする必要はありません。そんなことは、係長(2層)以下に任せておけばいいのです。宛て先と、内容だけを係長に言いつければいいのです。

ただ、「宛て先」というのが曲者です。神奈川県横浜市港区馬車道3丁目2番地(適当)といっただけで、届けられそうな気がします。それは我々が小学校の社会科で地理を習った結果であって、その知識無しにはこの住所が地球のどこにあるのかさっぱり分からないはずです。因みに、タンザニアのユートピア州エレフォン通り123といわれて、それは東経(西経)xx度、北緯(南緯)xx度と言える人は居ないですね。住所というものは、論理的な約束事ですから、本当の、といいますか物理的な位置は緯度/経度でないと分かりません。横浜がなんとなくどこにあるか分かっているつもりになっているのは、どうしてなのか考えてみることは、位置の性質を知るのに有用な事です。

さて、インターネットの宛て先でも同じ事が置きます。家族名番地国のようにドットで区切った書き方になります。一番左にコンピュータ名がきます。後は住所ですが、インターネットではこれをドメインと呼びます。mail.yahoo.co.jpなら、mailと言う名前のコンピュータ(サーバとか、ホストとか、恣意的に呼ばれ、初心者を混乱させます。要するにコンピュータなのです)が、yahoo.co.jpという住所にある事を表しています。jpは日本、coは企業です(coはcommerceの略です)。コンピュータ名は自由に付けて良いのですが、mailの様に何をしているか予測が付く名前が分かり易いです。
yahoo.co.jpはドメインと呼ばれます。インターネットにおける住所そのものです。

メールの場合、who@mail.yahoo.co.jpなどのように表します。これは普通の住所を模した方法です。jp(日本)の、co(企業)のyahooにあるmailという名前のサーバにあるwhoさん(の郵便箱)という意味です。@は「at」の省略記号--%がpercentの省略であるように--です。

しかし、ドメインネームは、人間が覚え易い様にインターネットに接続されている各サーバに付けられた住所に過ぎませんので、IP(層を実現しているソフト)には理解できません。ドメインは、上記の7層による通信の話しとは全く異なる次元の話しであり、全く別のサービスであることを理解しておかないと、トラブルがおきた時、むやみに、pingを打ったり、TCP/IPの設定を変えてみたりと、意味の無い操作をすることになります。

通信サービス ネームサービス コンピュータブラウジング
サービス(後述)
第7(&6)層;アプリケーション層
      ↓
第5層;セッション層
      ↓
第4層;トランスポート層
      ↓
第3層;ネットワーク層
      ↓
第2層;データリンク層
      ↓
第1層;物理層
Domain Name Systemを
用いて、ドメインネーム
から、IPアドレスに変換
するサービス
ネットワークコンピュータに
コンピュータ一覧を提供する
サービス


住所を緯度経度に変換しなければならないように、ドメインネームは、IPアドレス--133.xxx.192.55--に変換しないと、IP層はパケットを届けられません。この変換機構が、DNS:Domain Name Systemです。例えば、DOS窓で、ping myserver.mynet.com と打つと、pingはまず、myserver.mynet.comのIPアドレスを調べます。ネットワークにはDNS サーバ(単にネームサーバとも言う)というものが置いてありますので、それに問い合せてmyserver.mynet.comのIPアドレスを教えてもらうわけです。この処理には「名前解決」という大層な名前が付けられています。こうして、DNSサーバから、xxx.yyy.zzz.aaaというIPアドレスを受け取ると、pingは内部的には、ping xxx.yyy.zzz.aaaとするのです。

ping  myserver.mynet.comのようにドメイン名で打つと返事が来ないが、ping xxx.yyy.zzz.aaaのようにIPアドレスで打つと返事が来る場合、名前解決が出来ていない事がわかります。尤も、家庭内LANでは、こんな面倒な事は必要ありません。ルータが無い1セグメントだけのLANでは、何の設定も要らないbroadcastで自動的に名前解決が行われます。

名前など解決せずに、地球上の全ルータ--アメリカ人はこれをラウタと発音します。routeはQueen'sEnglishではルートと発音するんですが。言語に敏感なアメリカ人学者は、これをラウタと発音してはならない。それは別の意味(敗走)であると言っていますが、ネットワーク関係者は言語には疎いようで、あいかわらずラウタです。新たしい(あらたしい)が新らしいと発音されるようなものでしょう。「新たに」は「あらたに」と正しく発音されるのですが。--がドメインネームでルーティングすればいいのですが、歴史的、技術的理由でそうはなっていないので、面倒なことをしなくてはならず、トラブルの元になっています。

ところで、この名前解決にはいろいろな方法があって、それらが四六時中トラブルのを起こしますので、ネットワークは難しいと思われてしまうのですね。上で、DNSを使うといいましたが、家庭内LANにはそんなものは普通ありません。

他の名前解決の方法を使っているのです。

 ・hostsファイル; c:\windows\hosts (拡張子は付けていけません)
 ・ブロードキャスト
です。

 c:\windows\hosts.sam というサンプルファイルがありますから、これをコピーして、hostsにリネームし、適切な内容を書きこめばよいのです。

  xxx.yyy.zzz.123   myserver.mynet.com

の様にIPアドレスとドメインネームを対にするだけです。DNSサーバ、hostsはダブッても構いません。名前解決は成功するまで、ある優先順で行われ、最終的にbradcastで行われます。これでも駄目なら、失敗−−相手の住所:居場所がわからない、となるのです。

DNSも、hostsも作ってない場合、broadcast(一斉同報)で、自分の所属するネットワークの全員に「myserverは居るかい?」って問い合せるのです。居れば、応えがかえってきて、IPアドレスを教えてくれます。ただし、ブロードキャストはルータを越えません(例外あり)。ルータというのは、2枚のNICが刺さっていて、ネットワークアドレスの異なる2つのネットワークに参加していて、こっちのネットのパケットをもう一方のネットに渡すことができる機能をもっている特殊なサーバです(これで分かるように、IPアドレスは厳密にはコンピュータに付くのではなく、イーサカードに付くのです。ルータとなるコンピュータは複数のIPアドレスを持っています)。broadcastが、もしルータを越えたら、その繰り返しで、全世界の隅々のサーバまで問い合せが行ってしまいます。そんな事になったら、世界中の小さなネットワークで常に発生しているbroadcastによって、インターネットは満杯になってしまうことでしょう。オフィスの様に少し大きいネットワークでは、同じ理由でオフィス内ネットワークがbroadcastで占領されることを恐れて、broadcastは、従って、broadcastを多用するで
NetBEUI:NetBIOS Extended User Interfaceは歓迎されません。しかし、家庭で、数台しかつないでいない場合、NetBEUIは軽くて、速くて、設定が簡単で優れたプロトコルです。

だいたいこんな所を理解していれば、ネットワークの動きは理解できるのです。

Windows9xのnetwork
Windows9xで家庭内LANを組む場合、TCP/IPは必ずしも必要ではありません。NetBEUIという3、4層を兼ねた、ということは、TCP/IPの組みに相当するプロトコルがあります。このばあい、IPを使っていないので、当然IPアドレスはありません。全ては broadcastによって行われます。ということは、NetBEUIによる通信は、ルータの内側に限られるということです。家庭内LANではルータは普通ないのですが、ダイアルアップすれば、ISPのルータがあります。その向こうにはデータは流れません。

その他の話題;UDP
4層にはTCP以外にもUDPというプロトコルがあります。このプロトコル、課長(IP)と同じ程度にいいかげんで、パケット垂れ流しで、確認などしません。途中でパケットが無くなって相手に届いていなくても知らぬ顔です。TCPはこれを相手に確認して、届いていない場合、再送します。でも、場合によっては、UDPも必要なのです。例えば、インターネットで動画を送ったとします。TCPでおくっていては、間にあいません。動画は、1秒にたとえば、15枚くらいの画面がきます(cf. TVでは30枚、映画では22枚)。時々、1枚位落ちても、人間にはまあ、わかりません。この場合、巧遅より拙速が圧倒的に重要なのです。TFTP;TrivialFleTransferProtocolという7層のプロトコルは、TCPではなく、UDPを使っています。少し、恐いですね。

5層:セッション層
これ以上の層は直接にはパケット転送には関係ありません。セッションとは、例えば、電話の場合、電話番号を回して、相手と接続、要件を終えて、電話を切る、この一纏まりをセッションと言います。要するに「相手と繋がって、切れるまでの間の事で、この間は、セッションが張られている」と言う訳です。この場合のセッションは、論理的なものであるという事に注意が必要です。例えば、ダイアルアップでISPに電話して、ネットサーフィンして、接続を切るのも、ダイアルアップのレベルでは1セッションです。

ところで、ブラウザで、http://wwww.dokoka.com としますと、そのホームページがブラウザに表示されます。この時、HTTPプロトコルは、ホームページを持って来るために、www.dokoka.comに接続し、ホームページを送ってもらい、接続を切ります。これは、HTTPの1セッションです。接続し、切っています。そのホームページの中のアイコンをクリックして、更に 別のページに行こうとすると、HTTPは、再び、クリックした所に書いて有るドメインのサーバに接続し、データを送ってもらい、接続を切るわけです。そんな訳で、httpのセッションは、一度のダイアルアップのセッションの中で何度も張り直されているのです。

さてセッションとはこういう通信の1単位ですが、5層はセッションを受け持ちます。NetBIOS、socket(Windowsでは、WinSock)というプログラムが相当します。7層はアプリケーション層と言いますが、たとえば、ブラウザでWebサーフィンをする時、7層のアプリケーションはIEとか、ネットスケープナビゲータのようなブラウザです。このブラウザの中にはHTTP:HyperTextTrasferProtcolという7層のプロトコルが実装されています。7層は、4層以下を使って通信するわけですが、その受付けをする層が5層です。アプリケーションが通信するために4層に5層を差すという比喩が使われ、5層のプログラムにソケットという名前が付けられているのです。丁度、エアコン(7層)を使う為に電線のコンセント(4層以下)にソケット(5層)を挿す事に比しているのです。

7層の良く知られた物には、他に、メールソフトがあります。メーラには、メールを送るためのSMTP;SimpleMailTransferProtocol、メールをISPの自分の郵便箱から取り出す為のPOP;PostOfficeProtocolというプロトコルが実装されています。

これらの7層のインターネット関連プロトコル群は、5層のWinsockを通して、4層以下の層に通信をしてもらって、パケット--この中にデータが入っている--を送ったり、受けたりしているのです。もうおわかりかと思いますが、5層以下は郵便局なのです。部長も、課長も郵便局の役割です。しかし、7層は違います。お客なのです。郵便局の受付けが5層でお客とのインタフェースになるわけです。

家庭内LANの場合、7層--アプリ--は、Microsoftネットワーククライアントと、Microsoftネットワーク共有サービスです。この2つのアプリで、ファイルとプリンタの共有をするのです。クライアントが、LAN上の他のPCのファイルを使う役割、サービスが、自分のPCのファイルを他の人に貸して上げるサーバの役割です。この場合、5層は、インターネットアプリ--HTTP、SMTP、POP、FTPなどの場合のSocket--とちがって、NetBIOSです。

6層はプレゼンテーション層(符号処理;encoding,暗号化など)ですが、インターネットでは、この層の機能は独立には存在せず、アプリ層の中に取り込まれています。

LMhosts、WINS
さて、LANの場合、Windowsのネットワークでは、もう少し知識がいります。なぜかといいますと、Microsoftの歴史的理由の為、TCP/IPを使わない独自プロトコルがLANで使われているのです。LAN Managerによるネットワークがそれで、そのためにc:\windows\LMhosts(cf. hosts)とかWINS(Cf.DNS):WindowsInternetNameService(これもネームサーバの一種ですが、ネームサーバと言う時は、普通はDNSの事で、WINSの事ではありません)とかいう物が存在して、我々を悩ませます。これについては
こちらを参照して下さい。簡単にいえば、ルータをおいていなければ、これらは無視=使わない、でかまいません。最悪、broadcastで解決されます。


以上の知識でWindowsのネットワークを解釈してみましょう
まず、LAN=ネットワークコンピュータ(MS用語)のネットワークの場合

「現在のネットワーク構成」をみると、次の3層に集約されています;

1、2層アダプタイーサカード
3、4層プロトコルTCP/IP,NetBUIE,IPX/SPX
6、7層アプリケーションネットワーククライアント/共有サービス
(第5層はNetBIOS。これはTCP/IPの設定のタブの中に統合)

尚、当然ながら、プロトコルとは、通信規約--通信ソフト同士で話す言葉--ですから、異なるprotocol間では通信できません。7層にLAN上の他のPCとは異なるクライアント/サービス、異なるプロトコルをインストールしたら、ネットワークコンピュータには、他のコンピュータは現れません。


以下、ルータの無い簡単なネットワークでのトラブルへの対処法です

1)トラブル解決の為の最大の原則は、上記のどの層まで機能しているかの
  切り分けをキチンとすることです。

例えば、自分のネットワークコンピュータが空っぽ、という場合、これだけでは、1層以上全てを疑わなければならず、何処から手を付けていいか分からず大変です。1層のイーサカードが壊れているのかもしれないし、7層のネットワーククライアントが壊れているのかもしれません。

しかし、他のPCから自分が見えていれば、7層のサービス側は動いている事になります。5層以下は共通ですから、ネットワークのほとんどは動いていることが分かります。こんな時に闇雲にイーサカードをはずして、1、2層をいじったり、プロトコルを入れなおしたりしてはかえって事態を紛糾させます。5層以下が動いていて、更に7層も一部うごいているのなら、自分のPCから他のPCを見るアプリ(7層)であるクライアントが機能していない事がわかりますから、これが機能していない理由は、インストールされていないか、設定が間違っているか、壊れているか、バグで動いていないか、のどれかです。

見える、見えないで4つの場合にの内不都合な3つの場合を考えてみます;

1.自分からは他のPCが見えないが、他からは自分が見える
 上記。クライアントが機能していない。

2.自分からは他の全ての正常なPCが見えるが、他の全部から自分が見えない
  1.の反対で、共有サービスが機能していない
共有サービスが機能していない場合、自分自身さえ、自分のネットワークコンピュータに現れませんので、すぐ分かります。

3.自分から他が見えないし、他から自分もみえない

・1層以上全滅の可能性から始めなければなりません。まず、デバイスマネージャでイーサカードが正常に動いている事を確認します。動いていて、
 ネットワークコンピュータを右クリック→プロパティ→「現在のネットワーク構成」
にこのカードがアダプタとして現れていれば1、2層は大丈夫です。

・次は3、4層の確認になります。「現在のネットワーク構成」にTCP/IPがある事を確認。他のPCからこのPCにpingを打って試ます。IPアドレスを指定して打ちましょう。DOS窓を開いて、 ping xxx.xxx.xxx.xxx です。

xxxが何の事か分からないならば、IPの設定がしてないのですね。「現在のネットワーク構成」のTCP/IPをダブルクリックして、
各種パラメータ を設定して下さい。ルータをもたない家庭内LANでは、DNSもWINSもゲートウェイもDHCPも、一切いりません。WINSの解決はしない、DNSは使わない、ゲートウェイには何も書き込まない、で良いのです。 IPアドレスと、ネットマスクは、DHCPが無いので自分で設定しましょう。 IPアドレスは、プライベートの192.168.0.xxx でxxx=1〜254、ネットマスク=255.255.255.0にしておけばとりあえず大丈夫ですが、オフィスなどで何か取り決めがある時は、それに従います。

TCP/IP設定が正確であるにもかかわらず、ping が通らなければ、これは重症です。ネットワークコンピュータのモジュール全体が壊れている可能性もありますが、それよりも、普通はIPの設定がおかしいのです。もう一度、良く見てみましょう。それでも駄目なら、TCP/IPはあきらめて、NetBEUIをいれましょう。「追加」で「プロトコル」を選び「Microsoft」からインストールします。NetBEIは設定項目が事実上ありませんので、それだけで充分です。他のPCにもいれないとだめですね。尚、pingはIPネットワークのプロトコルICMPですから、NetBEUIをいれても反応しません。NetBEUIは、pingとは異なる世界のプロトコルですからpingを打ってもしかたありません。

なお、プロトコルがどのアプリケーションで使われるかの指示はバインドで行います。ネットワークコンピュータを右クリック→プロパティ→現在のネットワーク構成で、プロトコルをダブルクリックして、バインドタブをみて、チェックが入っている事を確認して下さい。これが何かのはずみで外れている事もあります。バインドとは、各層を関連づける装置です。同様に、アダプタもプロトコルにバインドされているか、アダプタのプロパティを見て確認します。

・次に、6、7層のMicrosoftネットワーククライアント/共有サービスの2つのアプリがインストールされていることを確認。

尚、家庭では、デフォールトでインストールされているIPX/SPXは使いませんから、消しておいた方が軽くなってよいでしょう。これは一世を風靡したNovel社のNetwareネットワークのプロトコルです。



インターネットのネットワーク

第1、2層アダプタダイアルアップアダプタ:モデムとPPP
第3、4層プロトコルTCP/IP
第6、7層アプリケーションIE又はネットスケープなどのブラウザ

ダイアルアップアダプタは、マイコンピュータ→ダイアルアップネットワークから、新しいダイアルアップアダプタをダブルクリックして作ります。この時、2層にPPP がインストールされます。 イーサカードの時には、このような操作はありませんでした。イーサを入れればドライバと同時に自動的にはいったのでしょう。モデムの場合、電話線でどのようなプロトコルを使うか--明らかにLANとは違います--は明らかではないのです、PPPの他にも、SLIP、PLIPなどいろいろあるからです。尤も、今はPPPしか使うことはないでしょう。

ISPに接続する時は、普通、TCP/IP設定で、IPアドレスは自分では設定しません。DHCP:DynamicHostConfigurationProtocol(HostとはUnix用語でネットワーク上のコンピュータの事です)というプロトコルで、ISP側に居るDHCPサーバがIPアドレスを送ってくれるからです。IPアドレスを自動的に取得/サーバが割り当てたIPアドレスという項目にチェックをいれておきます。ダイアルアップネットワークは面倒なことに、

 (A)ダイアルアップアダプタの「サーバの種類」のタブと、
 (B)ネットワークコンピュータの「TCP/IP→ダイアルアップアダプタ」のプロパティ

の2個所にTCP/IP関係の設定があります。

ネームサーバという言葉がありましたが、DNS サーバの事です。ダイアルアップアダプタにはこれのIPアドレスを
設定する欄 がありますが、普通は一切何もしなくて良いのです。すべてDHCPサーバがやってくれます(「サーバが割り当てたIPアドレス」のサーバとは、DHCPサーバの事なのです)。ただ、ネットワークコンピュータ側のTCP/IPタブにあるTCP/IPとMicrosoftネットワーク共有サービス間のバインドだけは最低限切っておいた方がいいでしょう(ネットワークコンピュータを右クリック→プロパティ→現在のネットワーク構成→TCP/IP)。ISP側で対処していると思いますが、場合によっては、世界中に自分のファイルを共有させていることになります。

ネットワークが動かない時の診断法

上で典型的な場合を例示しましたが、もっとシステマテックな診断法が欲しいと思います。各層毎に診断出来ればいいのですが、そのような診断法がプロ用でもないWindows9xにはありません。強いて言えば;

イーサカードの場合

・1、2層;デバイスマネージャでNICが正常か調べる。これが正常なら2層までは大丈夫でしょう。


・3、4層;TCP/IPが動いているかどうかは、問題のPCに向けてpingをIPアドレスで打ってみることです。
  −反応があれば、両方のPCともIP層は生きています。
      WindowsではTCP/IPがペアで扱われるので、TCPも大丈夫でしょう。
      ついでに、pingを、相手のドメインネームで打ってみれば、名前解決が機能している
      かどうかも分かります。ここまでで、4層までがチェックできました。

  −相手から反応がなければ、
     こちらのIP層から、相手のIP層までのどこかがおかしいのです。

      −そこで、自分自身のIPアドレス(ネットワークコンピュータのTCP/IPの項目で入れた
        IPアドレス)にpingを打ってみます。pingは、自身のプロトコルスタックでは、
        3層から下に降りていくことを念頭におけば、;
         −反応があれば、IP層と、NICは生きています(IPアドレスはNICに付いている)
          従って、NICの向こう側(相手側)の問題です。RJ45コネクタが外れている
          かもしれないところから始まって、ケーブルの断線、相手のPCなどの問題です。
          −反応がなければ、こちらの問題です
             −次に、pingを 127.0.0.1 に対して打ってみます。
              これはループバックアドレスで、Windowsでどう扱われるかは分明では
              ありませんが、普通は、IP層の中で処理され、2層には降りません;
                −反応があれば、IP層は生きています。従ってNICを含めて、そこから
                  向こうのどこかが死んでいるでしょう。
                −反応がなければ、IP層(WindowsではTCP層も)を含めてそこから向こ
                 うが死んでいます

このチェックで分かることは、3段階のpingで、どれかが反応すれが、こちらのPCの3層から下へおり、相手のPCの1層から3層への上りのどこまでが生きているかということです。pingが一切反応しない時は、こちらのIP層以降全てが疑わしいことになります。つまり、最低、こちらのIP層は死んでいますが、その先のことは一切わかりません。生きているかもしれないし、死んでいるかもしれません。東海道線沿いで地震が起きて線路が破損したとしましょう。東京駅で列車が出ない場合、東京駅は少なくともいかれていることは分かります。しかし、東京駅が復旧したからといって、大阪まで開通しているとは限りません。名古屋で止まるかもしれないのです。

pingの経路は以下のはずであるが、実際には、WindowsではNICが壊れていても、自分自身のIPアドレス(下図の、192.168.0.1)に打ったPingに応答がある。127.0.0.1のLocalHostに打ったPingと同じである。

  ping 192.168.0.2
      PC1         PC2
     192.168.0.1      192.168.0.2

      3(IP)↓         ↑3
      2(NIC)↓        ↑2
      1(NIC)↓        ↑1
       |  →−−−−−  |
       |=========|
            UTP

  ping 192.168.0.1
      PC1
     192.168.0.1

      3(IP)↓  ↑3
      2(NIC)↓ ↑2
      1(NIC)↓→↑1


  ping 127.0.0.1
      PC1
     192.168.0.1

      3(IP)↓→↑3


・5層;セッション層は、windowsでは表に出てきませんのでとりあえず置いておきます。

・6、7層;アプリは、そのものずばりですから分かり易いです。ネットワークコンピュータに表示されるべきPCが全て表示されていないのなら、ネットワーククライアントが機能していませんし、逆に他のPCから自分のPCが見えないのなら、共有サービスが機能していません。上記で、4層までは正常なのに、クライアント/共有サービス両方共機能していなければ、5層を疑えますが、事実上は、ここは問題にはならないでしょう。5層は、ネットワークコンピュータのTCP/IPの設定のなかに統合されていますので、ネットワークコンピュータを右クリック→プロパティ→現在のネットワーク構成→TCP/IPの設定タブを調べてみましょう。といっても、何もする事がありません。

もう一つ、ネットワークコンピュータで見える、見えないといのは、共有サービスとは本来独立の
コンピュータブラウジングサービス というアプリの機能ですので、こちらも疑えます。しかし、Windows9xでは、このサービスは共有サービスの一部となっているようですので、このサービスを切り離してチェックすることはできません。

ついでながら、名前解決それ事体が一つのアプリであり、7層のどこか一つの機能ということではなかったように、コンピュータブラウジングも、一つのアプリケーションです。つまり、ネットワークコンピュータで見えると言うことは一つのアプリであり、その中のひとつのPCのファイルをこちらにコピーしてくるということは、また別のアプリなのです。これは、ネットワークコンピュータにPCが見えていなくても、そのPCと通信できる可能性がある、ということを意味します。例えば、オフィスなどNTの居る環境では、自分のWin9xを起動しても、すぐには他のPCのネットワークコンピュータに現れません。こんな時には、

   net use \\computername\c password
   dir \\computername\c
   xcopy /s "\\computername\c\My Documents" c:\temp

などの操作が可能です。
computernameは、当該PCのコンピュータ名=NetBIOS名です。但し、当該c:は共有設定されていなければならないのは当然です。passwordは、その時に設定したものです。無ければいりません。「¥¥」で始まるUNC:UniversalNameConvention内では、ドライブ名に「:」は付きません。「c」です。

クライアント/共有サービスの片方だけがうまく行かないのなら、5層までは大丈夫なのですから、そのうまく行かないアプリ自身を疑いましょう。正しいアプリか?例えば他の全てのPCはMicrosoftのクライアントを使っているのに、自分は異なるクライアントではないか?設定は正しいかなどです。

モデムの場合

・1層;モデムの場合は、デバイスマネージャが正常であるなら、1層だけが正常です。

・2層;ダイアルアップネットワーク→ダイアルアップアダプタをダブルクリックして、相手のモデムに接続します。たいていはISPが相手でしょう。これで、接続できればメッセージウィンドウが出ます。また、タスクトレーにアイコンが入って、点滅します。ISPに接続できなければ、2層のPPPが機能していません。電話して、ビーンビーン、ピーヒャララと相手のモデムとネゴシエーションを始めれば、PPPはほぼ大丈夫でしょう。ネゴが上手く言ってタスクトレーにアイコンが入って、点滅すれば、完璧に大丈夫です。途中で、 切断されたら、PPPの設定を調べましょう。

・3、4層;c:¥windows¥winipcfg.exeをダブルクリックします。Ethernetアダプタ情報の窓で、PPPアダプタを選択します。IPアドレスが0.0.0.0のままなら、IPが働いていません。ISPのマニュアルを参考に、PPPの設定を徹底的にしらべます。 ダイアルアップアダプタのプロパティにTCP/IPの設定などがあります。更に、winipcfg.exeの画面の「詳細」を押せば、ISPのDHCPサーバのアドレスも見えます。

・7層は、ブラウザ、メール、FTPなどですが、5層までが正常なのに、機能しなければ、それらに固有のネットワーク設定が間違っているのです。メーラなら、SMTPサーバのIPアドレスあるいは、サーバのドメイン名とPOPの(場合により、POPでなく、IMAPアドレス)の設定など。IEなら、プロパティの接続タブの設定です。



このページの先頭    目 次