42←  home  →44
43 2000年2月25日

WWWの謎
 

いやあ、前々回の内容は難しかったという便りがあったにも関わらず、さらに迷路に分け入る今回の更新でありましょうか?

前々回の「サブネットマスクの謎」をおさらいしておきますと、例えば、

192.168.45.170

というIPアドレスを貰ったコンピュータがあったら、それは、192.0.1.x〜223.255.254.xの範囲内であるからして、Cクラスということになり、Cクラスははじめの3セグメント(この場合は、192.168.45)が「ネットワークアドレス」で、最後の1セグメントが「ホストアドレス」である(この場合は170)。

ということになっている。のに関わらず、サブネットマスクが何故いるのか?

というのが謎であったのであります。

で、その結論は、既存のクラス分けを取り払うために、サブネットマスクを使うというものでした。

つまり、サブネットマスク、255.255.255.0を使うと、最初の3セグメント(255の部分)は元の192.168.0がそのまま取り出されることによって、「旧来のクラス分け」と互換を取ることができます。
これに、サブネットマスクを、例えば、255.255.255.240としますと、え〜っと・・・
 

IPアドレスの、192.168.45.170は2進法で表すと

11000000.10101000.101101.10101010となります。

サブネットマスクの255.255.255.240は、11111111.11111111.11111111.11110000となりますから、

11000000.10101000.00101101.10101010と
11111111.11111111.11111111.11110000とでAND演算する

と、この下の行の1の部分は上の行がそのまま移されることになり、0の行はすべて0になります。で、結果

11000000.10101000.00101101.10100000

となります。これが「ネットワークアドレス」になり、10進法に直すと、192.168.45.180となります。

「ホストアドレス」は「サブネットマスク」をNOT演算したものつまり11111111.11111111.11111111.11110000の逆なんだから、
00000000.00000000.00000000.00001111(10進法では、0.0.0.15)でAND演算する。

11000000.10101000.00101101.10101010と
00000000.00000000.00000000.00001111とでAND演算する

つまりは、最末尾の1010 だけが生きることになる(10進法に直すと10)。これが「ホストアドレス」でである、とまあこういう仕組みだそうでありました。

つまり、サブネットマスクの数値によって「ネットワークアドレス」「ホストアドレス」は変化しうる。255.255.255.0を指定することによってのみ、旧来のCクラスの切り方でお願いします、と頼むことが可能になる、のでありました。

前回の復習でした。
 
 

@@@@






で、その後、論理演算とは、これまた私が無知蒙昧だっただけで、コンピュータのしくみの基礎中の基礎だったのでありました。

AND (0,0) = 0
AND (0,1) = 0
AND (1,0) = 0
AND (1,1) = 1
 

と言われても分からない!とか書いてますが、ここでのANDは「そして」の意味ではなく「かつ」の意味らしいです。(あるいは「ともに」でしょうか?)

AND (X,Y) = Zとします。これは、「Xが成り立つ」かつ「Yが成り立つ」場合「Zが成り立つ」

という意味だそうです。(「X,Yともに成り立つ」場合「Zもなりたつ」と言ってもいいような・・・)

そして「成り立つ」場合(「真」)を1で、「成り立たない」場合(「偽」)を0で表します。

と考えて、もう一度
 

AND (0,0) = 0
AND (0,1) = 0
AND (1,0) = 0
AND (1,1) = 1

を見ると、X,Yともに成り立っているのは、最下位の場合だけです。なあるほど・・・。で、このAND演算を「論理積」ともいうようで、「かけ算する」という説明もそれはそれで正しいのでしょう。

で、何でこれがコンピューターの基礎になるかというと、これを電気回路として実現するから、だそうです。と言っても原理は簡単でスイッチを直流につなぐと、2つのスイッチの2つともONになっていないと電流は流れませんので、そんだけのようです。

ORの方は「論理和」という名前がついているそうですが、
 

OR (0,0) = 0
OR (0,1) = 1
OR (1,0) = 1
OR (1,1) = 1

となります。「XあるいはYが成り立てばZはなりたつ」ということで結果「和」に近いことになっています。(和というのなら最下位は2にならなきゃおかしいのですが・・・ここらへんよく分かりません)
これは電気的にはスイッチを並列にならべれば、どちらかのスイッチがONであれば電流は流れます。

あと、NOT。

NOT(0) = 1
NOT(1) = 0

いちばん単純明快ですが、電気回路は難しいようです。何らかの仕掛けで、ONだったらOFFにする、またその逆をするのでしょう。私が立ち読みした本ではコイルが描いてありましたが、CPU内部でコイル巻いてるわけでもあるまいに〜?!?
 

けど複雑怪奇なCPUもこのAND回路、OR回路、NOT回路の3つの回路の組み合わせでできているのだそうです。本当かいな?だけれども、コンピューターは2進法で動くんだから本当なんでしょう。CPUの設計する人ってどうゆう頭なんでしょうねえ? わがんね〜!
 

ということで前々回のフォローでした。
 
 

@@@@





熊さん:で、ご隠居、どっと混むの謎は?

ご隠居:は?・・・・・

熊さん:ご隠居!

ご隠居:いや、はや、あの、これも奧が深かったのじゃ。ま原則的にはじゃな、人間用のURLを機械用のIPアドレスに変換するのがDNSサーバでな、これは皆もプロバイダーの設定をするときに、215.214.123.6とか今でたらめに言ったがそんなアドレスを打ち込んだじゃろ、DNS(Domain Name System)サーバにまず行って、そこでURLをIPアドレスに変換するのじゃ。で、じゃ、儂はのう、IPアドレスが最初次にURLと思っておったのじゃがそうでもなさそうなんじゃ。

日本のインターネットのドンと呼ばれておる、村井純の「インターネット」(岩波新書)によるとじゃな、最初のARPAネットの時にはコンピュータに勝手な名前をつければそれで事が足りていた。それがUSEネットと結ぶ時になって、例えばこれまでは単にberkleyという名前だったコンピュータに、barkley.arpaと.arpaを付けたのじゃそうじゃ。

この時はまだ、ARPAとUSEを結ぶだけじゃが、これがネットワーク間の接続じゃから「インターネット」の始まりじゃな。インターネットというと「インターナショナルなネットワーク」と思っている人が多いと思うが、元々は「ネットワークにまたがるネットワーク」のことじゃったのじゃ。

で、barkley.arpaにもどるが、最初のbarkleyがコンピュータ名、後ろのarpaがそれが属するネットワーク名じゃ。

さて、このページのURLがどうなっているかというとじゃ、http://ww3.tiki.ne.jp/であるな、これはww3という名前のコンピュータがtikiというネットワークに所属していると読めるな。

で、これでいいかのう?

インターネットのURLにはwwwで始まるのが多いが、http://www.apple.co.jp/なら、appleという名前のネットワークにwwwという名前のコンピュータが所属しているという意味じゃ。wwwという名前が多いのは、ワールド・ワイド・ウエッブ用のコンピュータにwwwという名前を付けるのが一般的、というだけのことじゃ。

後ろのco.jpのcoは、commercialらしい。(companyと思ってたけど・・)。neは手元の資料ではわからんがどうせnetworkぐらいでプロバイダーのことじゃろう。他に、大学はac、これはacademyじゃろう。政府はgo(vernment)、その他の組織はor(ganaization)じゃ。これは日本で決めたのじゃ。

で、つぎは「どっと混む」の謎じゃが、本家アメリカだけでかい顔して、最後の識別子は付けないんじゃ。例えば大学なら、edu(cation)、企業はcom(mercial)、政府はgov(ernment)じゃ。

で、このURLを決めたのは国別じゃが、別にアメリカのURLを取得するのにアメリカの企業・団体・個人である必要はないのじゃ。とくにcomは「野放し状態」だそうじゃ。
 

で、まあ、一応はそういうことになっているのじゃが、これがまた、実際はそうでもないようじゃ。

これも村井純の「インターネットII」じゃが、オリンピックなどのページでは世界中からアクセスが殺到する、というので、5カ所のミラーサイトを作り、それぞれを数十台のワークステーションで構成する。(ということは計100台前後のワークステーションであろうか?)で、
 

 実際には、たとえばわたしが「atlanta.olympic.org」というアドレスにアクセスしたとたん、世界に分散して置いてある五つのミラー・サイトのサーバーが一斉に、アクセスをしたわたしに向かって信号を出します。そして、信号がわたしに「反射」して返ってくる時間をレーダーのように五台が全部はかる。それで、いちばん短い信号で戻ってきたミラー・サイトのサーバーが担当になって、以後のデータのやりとりをする。わたしからは「atlanta.olympic.org」とデータのやりとりをしているように見えるけれど、実は最寄りのところと話をしている。
んだそうじゃ。通常なら「atlanta.olympic.org」なら、olympicというネットワークに繋がれたatlantaという名前のコンピュータであるところが、実際は世界5カ所の計100余りのワークステーションなんであった!!

し、しかも、

長野のときは、似たようなことを別の「シングルIPアドレス」という技術で行いました。これは、分散して置いたいくつかのミラー・サイトのサーバーみな同じIPアドレスを持つようにするというやりかたで、本来はやってはいけない「禁じ手」です。(略)そうすると世界中から長野へ流れ始めたトラフィックがミラー・サイトのそばを通ったときに、それに引きつけられてそこへ行ってしまう。これは、ちょっとむずかしいし、あまりきれいな方法とは言えない方法だったのですが、長野のときはスムーズに動いてしまいました。
口あんぐり、じゃろ。
 
 

@@@@





ところが、またまた、今度は「IPアドレス」は厳密には「コンピュータに与えられた」番号ではなく「インターフェイス」に与えられた番号である、という記述にお目にかかっりました。

しかし、これの方が分かり易い。つまり、アトランタの場合「一つのインターフェイス」を、(通常は一つのコンピュータが請け負うのだが)数十台のワークステーションでよってたかって請け負ったということでしょう。

また、UNIXでは、ローカルホストを表すローカルアドレスとして、127.0.0.1を指定するのですが、インターフェイスの番号と考えれば、外部とのやりとり窓口番号が、普通のIPアドレスで、内部窓口が、127.0.0.1ということになります。なんでこんなことをするかというと、単純化して言うと、外部・内部の区別無く扱うため、らしいです。(受付番号が違うだけで本質的な内部・外部の区別が不要)

ということで、UNIXでは(とくにX Winodw上のものらしいですが)そのマシン一台だけでもTCP/IPを使ってアプリが動いているらしくて・・・奥深い世界じゃ〜!
 

では、また。
 
 

      


42←  home  →44