各章の題名をクリックすると、この目次に戻ります。
計算機の間を物理的に接続するには、いくつかの異なった方法がある:シリアル
ポート、パラレルポート、特殊な媒体用カード。特殊な媒体には、イーサネット
Ethernet、トークンリング Token Ring、ISDN、などがある。シリアルポートを
利用する場合も、直接ヌルモデムケーブルで接続することやモデムを介すること
ができる(後者の場合、両方のモデムの間に電話回線を介在させることも可能で
あろ)。私が思ってもみなかった他の方法もありうるだろう。
物理的な媒体を選んでも、まだ選ばなければならないものがある。プロトコルで
ある。プロトコルはネットワークメッセージの書式のような物事を決める規則の
集まりである。私は詳しく調べたことがないが、OS/2にはいくつかの異なったプ
ロトコルをサポートしていることは知っている。ネットワークサポートを導入す
る際、使いたいと思うプロトコルを指定する(訳注:複数指定できる)。
ネットワーク関係のソフトウェアはほとんど常に複数のレイヤ(層)に分けられ
る。そうするには、少なくとも2つの理由がある:
- 信頼性が高く誤りのないソフトウェアを書こうとする場合、仕事を独立し
たモジュールに分ける必要がある。低レベルの(訳注:ハードにより近い、
という意味)細かい部分に関係したプログラマ(個人またはチーム)は、
上位の部分を心配しなくてよい。逆も真である。レイヤに分けることは、
複雑な仕事を扱いやすいモジュールに分けるための、優れた方法の一つで
ある。
- もしデバイスに依存する部分を全て最低レベルのレイヤに押し込めるなら、
より上位の部分は、どんなネットワークが稼働しているのかによらない、
という意味で「汎用」にできる。新しい媒体、新しいプロトコルを加えた
場合でも、ソフトウェアのわずかな部分だけを修正し、残りはそのままに
できる。
私に判る範囲では、OS/2のネットワーク関係ソフトウェアは4つのレイヤに分け
られるようだ。(4というのは十分とはいえない数であるが、レイヤの中に、更
に階層分けがあるのだと思う。) それらのレイヤは:
- ネットワークレイヤ:デバイスドライバ、SLIPの実装などの細かな機能。
金物とお話する部分である。
- インターネットワークレイヤ:インターネットプロトコル(IP)、インター
ネットコントロールメッセージプロトコル Internet Control Message Protocol
(ICMP)、アドレスリゾリューションプロトコル Address Resolution Protocol
(ARP)。このレイヤの主な仕事は、メッセージをネットワークが要求する
書式にすること、やってきたメッセージを解読することである。特に、「こ
れは自分宛のメッセージか」を調べることが重要である。
- トランスポートレイヤ:トランスミッションコントロールプロトコル
Transmission Control Protocol (TCP)、ユーザデータグラムプロトコル
User Datagram Protocol (UDP)。ここでは経路 routing の問題を解く事
に大きな努力が払われる:いかにしてソースからメッセージを得、宛先に
送るか、である。
- アプリケーションレイヤ:ユーザに直接使われる各種プログラムである。
例えばFTP、Telnetなど。
TCP/IPという言葉は、ネットワークの実装法の一つを指し、TCPを上位の部分に、
IPを低位の部分に利用するものである。これが最もよく知られたネットワークの
実装であるので、OS/2の設計者はTCP/IPという名前をネットワーク用パッケージ
全体を指す「一般的」な名前として利用している。厳密に言えばこれは言葉の濫
用である;しかしそれになれてしまっても問題はない。文書全体が指すものがそ
れだからである。
この文書では、OS/2のネットワークが提供するものを概観することにする。私自
身の経験は2つの場合に限られる:イーサネット上でのTCP/IP、モデムとPPPと
によるダイヤルアップである。もっと詳しいことを知りたいなら、3つの優れた
サイトがあるので、そこを見るとよい:
- John Summerfield
には家庭内LANの設置を含む、実際的で詳細な構成法がたくさん集められて
いる。ここからリンクを辿ってTony Rallのページに行くべし。彼はOS/2の
ネットワーク機能の中でもよく理解されていない側面についてのエキスパー
トである。
-
John Silvia はアプリケーションについて際めて有用な情報を置いて
いる。例えばUltimail Liteを動かす方法である。
- ニューズグループの記事から判断すると、多くの人々がWarp 4はWarp 3に
比べ遥かに多くのオンライン情報を持っていることを理解していない。デ
スクトップの「情報」フォルダを調べてみれば、いくつかのTCP/IPに関す
る本があるだろう;これらにはたくさんの有用な情報が含まれる。
世界規模のネットワークには、それに繋がった全ての機械が固有のアドレスを
持つことが必要である。これを確実にするために、アドレスを管理する中央調
整機構(InterNIC)がある。
ネットワークアダプタを導入する時、アドレスを入力する。アダプタはそのア
ドレスに応答し、それ以外には応答しないよう設定される。(より正確には、
アダプタは一台一台異なる48ビットのアドレスに応答する。LANのソフトウェア
が48ビットの金物アドレス(訳注:MACのことだと思う)と32ビットのIPアド
レスとの翻訳を行う)。アドレスを得るの
にInterNICに直接交渉する必要はない。企業や他の大きな組織にはある範囲の
アドレスが割り当てられ、その組織のユーザは割り当てられた範囲の中で自分
のアドレスをもらうのが普通である。
それらのアドレスは32ビットの数である。(疑いなくいつの日か、もっと長い
アドレスに切り換えなければならない時が来る - 電話番号を長くする必要が
あった国と、全く同様である - が、いまのところは32ビットでなんとかなっ
ている。) 読みやすくするため、普通8ビット毎に4つに分け、それぞれの間
を点で区切り、それぞれの8ビットは10進数で表記するソフトウェアによって
は、そのように書かないと受付けてくれないのもある。これが 159.87.6.215
といった数を見かける理由である - 単に32ビット数を符号にする便利なやり
方の一つである。
(なお、これは私が無作為に選んだ数である。このアドレスに誰が属するか
私は全く知らない;これを読んでいる人の中に、くだらないメッセージをこ
のアドレスに送ってやろうなどと思う人が出ないことを切に願う)。
アドレスは「サブネットマスク」で決められる階層性をもっている。例えば、
私の計算機の一つは255.255.254.0というサブネットマスクを持ったLANに繋がっ
ている。これは私の機械の32ビットアドレスは23ビットのサブネット識別子と
9ビットのローカルなアドレスからなっていることを意味する。最初の23ビット
が私の機械と同じアドレスを持つ全ての機械は、同じサブネットに属する。ブ
ロードキャストメッセージ、つまりそのサブネット内の全ての機械に送られる
メッセージを扱う時などに影響がある。また、経路決定にも役に立つ。「ロー
カル」な機械ともっと遠くにある機械とをソフトウェアで区別できるからだ。
モデムからダイヤルし、ネットワークアダプタを使わない時はどうか。この場
合、加入しているプロバイダ Internet Service Provider (ISP)、つまり、
ダイヤルインサーバを走らせている会社が、「自分の」アドレス溜めの中から
IPアドレスを割り当てる。通常ISPは会員全員分のIPアドレスを持ってはおらず、
「IPの動的割り当て」という仕掛けを使う。ダイヤルインする度にアドレスを
割り当てるので、次回のダイヤルインでは異なったアドレスが割り当てられる
可能性がある。
第3の可能性は、外部世界に接続されていない、ローカルなネットワークを使
う場合である。例えば3台計算機を家に持っていて、それらの間でやりとりし
たいとする。こんな場合は、他の機械のアドレスと重複する危険性がないので
IPアドレスを好きなように付けていい。この場合でも将来ネットワークが拡大
する可能性を考えてInterNICが割り当てた正当なアドレスを使うのがよい。
(訳注:ローカルに使っていいアドレスが決められている。例えば192.168.0.0
から192.168.0.255まではローカルなIPとして自由に使っていい)
32ビットのノード識別子はソフトウェアにとっては便利だが、人間にとっては
決して読みやすいと言えない。ユーザにとって便利なように、各ノードに、読
める文字列で名前をつける。
ノード番号と違い、この名前はアダプタには蓄えられない。ローカルのネーム
サーバの表の形で(通常LANの管理者によって)維持される。ネームサーバの話
題は後に触れる。
LANは小さな土地に - 一つの部屋かも、幾つかの隣接した建物かも - 限局し
たネットワークである。LANというからには、それは一様でなければならない。
同じ通信プロトコルがLAN全体で使われていなければならない。
LANは典型的には単純なトポロジを持っている:リング、バス、スターなど
単純なものである。単純なトポロジのお陰で、経路問題も簡単になる。LAN上の
いかなる機械も、同じLANの別の機械に容易にメッセージを送る事ができる。例
えばリング状ネットワークでは、リングに沿ってメッセージを送りさえすれば
よい。宛先の機械がメッセージのヘッダに添付されたアドレスを認識した時点で
メッセージはLANから取り出され、消滅する。もちろんメッセージが無限に回っ
てしまうことがないように手を打たなければならないし、これもエラーからの
回復の一つの面に過ぎない。エラー回復はどのような種類のネットワークでも
複雑なものになりがちである。
LANを別のLANに接続することができる。このためには、ゲートウェイ(ないし
はブリッジ)と呼ばれる一つのノードを用意して、これを両方のLANの共通の
ノードとする。ゲートウェイにあたる機械は、経路決定にとって重要である。
通過するメッセージの宛先ノード番号を見て、それ自身のLANに置いておいて
いいのか、それとももう一つのLANに移すべきか決める。二つのLANが異なった
通信プロトコルを使っている場合、ゲートウェイはメッセージの書式を変換し
なければならない。
時として扱うネットワークが大きく、「ローカルエリア(狭い地域の)」
ネットワークとは呼べないことがある。この場合用語は異なってくるが、
原理は大体同じである。
いくつもの異なったLANを扱う場合大変良く行われる構成が、全てのLANを一
つの共通な「バックボーン(背骨)」ネットワークに繋ぐ事である。複数の
部門から成っている会社などでは標準的であるし、複数の学部を持つ大学も
また他の例である。
そこで、このバックボーンネットワーク自身もゲートウェイを持ってもっと
広域なネットワークに繋がることができる。これを続けていくと、全世界に
広がる「ネットワークのネットワーク」に行き着くのである。
あなたが私に電子メールを送ろうと思えば、peter@ee.newcastle.edu.au宛
で届く。あなたが地球の裏側にいても全く同じだ。あなたの機械はどうやっ
て私の機械を見つけだすのだろうか。
まず必要な最初の一歩は、ee.newcastle.edu.auをIPノード番号に変換する
ことである。
- まず、あなたの機械のソフトウェアはオプションのHOSTSファイルを探
す(Warp4では通常¥TCPIP¥ETCディレクトリにある。ただし、ユーザ自
身が指示しない限り作られない。) このファイルには「よく行く」
ノードの番号が表になっている(通常は短いものだ)。
- これで見つからなければ - 大抵はそうなる - 近くのネームサーバ
と呼ばれる機械に要求を出す(ネットワークソフトウェアを設定する時
ローカルなネームサーバのIP番号を指定しなければいけない)。ネーム
サーバはノード名とノード番号の大きな表を持っている。
もちろん、世界中の全ての機械のノード番号を知っているようなネームサーバ
は存在しない。普通はローカルな機械とよくアクセスされる遠隔ホストをカ
バーしているだけである。この遠隔サイトの幾つかはそれ自体ネームサーバ
である。ローカルに処理しきれない要求は他のネームサーバに送られる。
センスのあるネットワーク管理者は機械を階層的に名付ける。ee.newcastle.edu.au
をネームサーバが知らなくても、少なくともオーストラリアの国別コード
で終わっていることはわかるだろう。そうすれば.auドメインの名前について
知っているネームサーバに問い合わせ、.edu.auドメインの名前について知っ
ているネームサーバを見つけることがができる;こうやって目的に近づいて
いく。わずかな回数の繰り返しで検索は終了するわけである。
今やソフトウェアはノード番号を知った;しかしそこに辿り着く経路はまだ判
らない。この問題を解くにはルータと呼ばれるローカルな機械に接続する。ルー
タはそれが知っているノードの表を持っている。自分には判らないノードにつ
いては他のルータに要求を渡す。これは「誰かこのノードを知らないかい?」
という質問を雪崩のように引き起こす;誰かが最終的には答えに到達するだろ
う。
これはやっかいな手続きに見えるかもしれないが、実際には極めて速い。経路
要求はねずみ講が破綻するより速く世界中に到達する(訳注:この辺の動作は
訳者の知識外である。訳文が悪いのもその所為である。さて、ねずみ講だが、
原文は Make Money Fast、つまり「手っとり早く稼げ」となっている。この手
の題名をNetNewsで見かけた人は多いだろう。最近ネットねずみ講の勧誘が盛ん
である。多少の知能があれば、ねずみ講やそれもどきのが「最初に騙した奴だ
けもうかる」仕掛けであることがわかるはずだ。あんなのに参加するのは、
「私はこんなにお人よしで騙されやすい愚物です」と公言しているようなもの。)
OS/2を導入する時にネットワークサポートを入れることもできるし、「選択
インストール」で後から導入することもできる。プログラムは「システム設定」
の「インストール、削除」フォルダにある。
モデムからしかネットワークに繋ぐには、手順は極めて容易である。TCP/IPを
導入して、「ネットワークアダプタを導入しない」を選ぶ。他の細かい点は、
後でダイヤラを設定する時設定できる。
LANに接続するなら、もっと多くの詳細を指定しなければならない。ネットワー
クアダプタはほとんどの場合自動的にインストーラが検出するので、ユーザは
気にする必要がない。(しかし、割り込みとI/Oポートの矛盾については意識
していないといけない。私の場合も、何回か導入に失敗した後でやっとサウン
ドカードとイーサネットカードとが同じI/Oポートを使っていることに気づい
た。) それでも、導入を始める前に、幾つかの必要な情報をメモしておくこ
とが勧められる:
- 接続しようとしているネットワークの種類。場合によってことなるだろう。
これを勝手に選んではいけない;ネットワークと互換なものを選ぶべし。
- ネットワークアダプタのIP番号とノード名。
- 一番近いルータのIP番号及び少なくとも一つのローカルネームサーバのIP
番号。
- サブネットマスク。ローカルのIPアドレスを遠隔のと区別するため必要な
4バイトの数字。
これらの情報は全てネットワーク管理者から知らされているはずである。(も
あなた自身が管理者なら、私に書ける程度の、こういう簡単なノートなどより
もっとよくネットワークを知っている必要がある。もし途方に暮れたら、誰か
似たネットワークを導入した人に相談するのが一番である)。
この章はもっぱらモデムでの接続を扱う。
ダイヤルイン接続を使うには、プロバイダ(ISP)のアカウントを持っていなけ
ればならない。Advantis(訳注:IBMのプロバイダ、ibm.netの事だと思う)を
ISPとするなら、ダイヤルしてしまえばそれでアカウントが得られる。でも、他
のISPと料金の比較をしてからの方がいいと思う。住んでいる地域の競争の程度
によって、Advantisより高い所も安い所もあるだろう。
ダイヤラは「プログラム」−「インターネット(モデム)」フォルダにある。
IBMダイヤラ(訳注:「青ダイヤラ」)はAdvantisに接続するためのものである。
これを試してみたのは相当前だが、ほとんど迷わず導入操作をできたのを覚え
ている。
Advantis以外のISPを使うなら、IBMダイヤラは役に立たない。その代わり「そ
の他のプロバイダ」(訳注:白ダイヤラ)を使わなければならない。これを起
動して「追加」を押す。そうすると4ページのノートが開くのでログイン名や
パスワードなどを記入する。それら詳細はISPから伝えられているはずである。
SLIP (Serial Line Interchange Protocol)とPPP (Point to Point Protocol)
のどちらを選ぶかも決めなければならない。似たようなものだが、PPPの方が
若干高級である。ISPはどちらか一方をサポートしているのが普通で、そちら
を使えと言ってくる。
ダイヤラの設定で問題があったら、os2ppp.zipを取って
きてほしい。あるISP用のダイヤラ設定が詳細に説明してある(たまたま、私
のである)。他のISPでは詳細が異なるであろうが、作業の見本にはなるだろ
う。
ほとんどのネットワークアプリケーションはクライアント−サーバ流で動いて
いる。クライアントのプログラムは通常ユーザ側である。ユーザはクライアン
トに命令を発し、今度はそれがユーザの命令を、他の機械で動いているにサー
バに対する要求として送り出す。サーバは要求された動作を返す;典型的には
ユーザの機械にデータを返すことになる。
よく使われるネットワーククライアントの一覧である。
- FTP。ファイル転送プロトコル file transfer protocolのことである。
リモートマシンとファイルをやり取りすることができる。原則的には、
リモートマシンにアカウント(ログイン名とパスワード)を持っていな
いといけない。実際には膨大な数のFTPサーバが匿名 anonymous FTPを許
している。これは全ての人に解放されたものである。匿名FTPを利用する
には、「anonymous」という名前でログインして、パスワードとして電子
メールアドレスを入れる(訳注:入れないからといってftpさせてくれな
いというものでもないが、礼儀である)。(当然、匿名ユーザには、一定
の制限が課せられる)。
- Telnet。これはユーザの計算機を遠隔端末に接続するためのプログラム
である。匿名ログインは普通許可されないので、ちゃんとしたアカウン
トをもった計算機に対してだけ役に立つ(訳注:例えば、UNIX端末に接
続すれば、ホストでUNIXコマンドを実行できる。OS/2端末に接続すれば、
OS/2のコマンドラインやVIOアプリを実行できる)。
- WWWブラウザ。これを読んでいるなら、それが何か既に知っているわけ
だ。反対側にいるのはWWWサーバ - もっと正確にはHTTPサーバ - とい
うものである。HTTPとは ハイパーテクスト転送プロトコル Hypertext
Transfer Protocol。
- Gopher。GopherサーバはHTTPサーバに多くの点で似ている。HTTPがこん
なに流行している現在、Gopherサーバは時代遅れになりつつあるようだ。
でも、少しは残っている。
- 電子メールクライアント。電子メールの送受を行う。
- ニューズリーダ。ニューズサーバに蓄えられているメッセージを読み、
新しいメッセージを投稿する。ニューズサーバは隣のニューズサーバと
データを交換する;時間が経てば(数時間かも知れないし、数週間かも
知れない)、ローカルのニューズサーバに投稿されたメッセージは全世
界の数千のニューズサーバに現れることになる。
- ファイルと印刷のクライアント。他の機械のディスクやプリンタをほと
んど自分の機械に接続されているように使える。明らかにこれらは部局
内の同じLANに繋がっている機械専用である(訳注:世界の果てまで印
刷結果を取りにいくのも楽しいかも知れないが)。できる事は、正確に
は接続しているLANの種類に依存する。(私の場合、プリンタの共有は
行っているが、ファイルの共有はやっていない)。
OS/2 Warp(Warp3以降)には十分なクライアントが付いてくる。上記のプログ
ラムは、TCP/IPサポートを導入した場合、全て含まれる。それらが気に入らな
ければ、サードパーティ製品がたくさんある - フリーソフトもシェアウェア
も商業製品もある。
ネットワークサーバを走らそうと決める前に、本当にそれが必要か確認すると
いい。サーバを使うと、遠隔ユーザがあなたの機械のデータにアクセスできる
ようになる;自分が何をしようとしているのかよくわからないでサーバを走ら
すと、セキュリティホールを作ることになる。更に、サーバソフトウェアはメ
モリとCPU時間を消費する。平均的なOS/2ユーザはサーバを走らす必要がない
と思う。
とはいうものの、確かにサーバプログラムを走らすだけの意味がある状況もあ
る。私もやっている。何といっても、家と職場の計算機間のファイルコピーが
楽である。
組み込み済みのサーバを動かすには「TCP/IPの構成(LAN)」を動かし、「自動
始動」のページに行く。そうすると以下のプログラムを設定できる。
- inetd: 特殊なので後で論議する。
- telnetd: Telnetのサーバ。これを走らす時は、セキュリティページで
必ずパスワードを設定すること。
- ftpd: FTPサーバ。セキュリティページのTRUSERS表に項目を加えると、
アクセスを許可するユーザを指定することができる。「情報」フォルダ
の「TCP/IPのReadme」を参照されたい。他には書かれていない新しい機
能があることがある。
- tftpd: FTPの機能限定版。パスワードによる保護がないので、信用でき
ないユーザが物理的に計算機に触れられない場合にのみ使うといいだろ
う。
- rexecd: 遠隔ユーザがREXEC(リモート実行)コマンドを使えるように
する。コマンドが発行されると、あなたの機械でプログラムが始動する。
- rshd: rexecdに似ているが、パスワードによる保護がない。
- lpd: 他の機械のユーザがあなたの機械に印刷ジョブを遅れるようにする。
- lprportd: lpdの相棒。これを実行すると、他の機械(当然、その機械
の持ち主がリモート印刷を有効にしていないといけない)に印刷ジョブ
を送る事ができる。
- routed: あなたの機械をルータにする。本当に必要な時以外実行しては
いけない。ほとんどの場合、LANには既にルータが存在する。その場合、
わざわざ機能を重複させてオーヴァヘッドを大きくする必要はない。
- portmap: クライアントがあなたの機械で現在走っている全てのサーバ
のポート番号を調べられるようにする。「ポート番号」とはI/Oポート
のことではない。サーバを区別するための識別番号という方が近い。
ほとんどのサーバは「良く知られたポート番号」 - 例えばFTPサーバ
はほとんど常に21番のポートに何か来ないか聞いている - を使うよう
に設定されている。標準のポート番号だけを使う分には、portmapは不
要である。
- sendmail: 渡されたパラメタにより、サーバにもクライアントにもなる。
サーバとしては、メールが到着するのや、送り出そうとするメールがキュー
に入れられるのを聞いている。sendmailクライアントは、メールを出す時
使うプログラムである。ほとんどの人は、sendmailを直接使うことはない。
電子メールソフトウェアが細かいことの面倒をみてくれる。
- talkd: talkデーモン。2つの計算機の間でタイプした通りのメッセージ
をやりとりする(訳注:2台で行うチャットみたいなもの)。talkは新
しいユーザには人気があるようだが、経験を積むと、急ぎでもない用事
で仕事をじゃまされたくないということでしばしば不可にされる。
ネットワークサーバを走らす上での一つの問題は、CPU時間とメモリを消費す
ることである。サーバ用の機械ならそれでもいいが、個人用の機械をサー
バにしている場合はいらいらすることがあるかもしれない。その状況を改善す
るために「inetdスーパサーバ」をつかうことができる。これは、やってくる
要求に対する「聞き役」のプログラムであり、要求に応じて本来のサーバ
(ftp、telnetなど)を起動する。上記のサーバのいくつかにはinetdから起
動するようなオプションがある。不利な点は、要求があってからサーバが起
動するまでのちょっとした間、クライアントが待たされることである。利点
はサーバソフトウェアが実際に使われない時は資源を消費しないことである。
注意:サードパーティのサーバをinetdから動かしている場合は、忘れずに
¥MPTN¥ETC¥INETD.LSTのバックアップをとること。TCP/IPの設定を走らすと、
このファイルに保存されたユーザの設定が消えてしまう。後で手動でそれを
加える必要がある。
OS/2にはHTTPサーバは含まれないが、望むなら簡単に入れられる。いくつか
優秀な(ほとんど只の)HTTPサーバがある(訳注:ICSを入れてもいいし、
J-Pocket2のを入れてもいい)。
[ 第一部 | 第二部 | 第三部 ]
この情報は
Peter Moylanによりまとめられたものです。なんだお前、こんなのなってない、本当にすばらしい、ここが変だ、こうするとよい、などは
peter@ee.newcastle.edu.auまで。
オリジナル: 17, April, 1997
訳: 29, May, 1997