2009/07/24

ネットワークはなぜつながるのか 戸根勤著       (日経BP社)


 TCP/IPとは何か、断片的にネットで調べても分かったような分からないようなで気持ちが悪い。それでこの本を手に取ったものの、これまた私には難しく全体の10%程度しか理解できなかった。 そこで大手コンピューターメーカーが主催しているTCP/IPネットワーク基礎という一日講座に、新入社員らと席を並べて受講してみた。ようやく全体像が少し掴めてきて、理解度20%に上がった。

 TCP/IPとは何か。例えて言うなら、文法のひとつ。インターネットを現代の世界共通言語である英語だとすると、TCP/IPとは英語の文法と考えればいい。例えば戦争やパニック映画で出演者同士がトランシーバーで連絡を取り合う場面で、「・・・・です、どうぞ!」「・・・ですね、了解しました、どうぞ!」と、相手が言うことをいちいち繰り返して確認する場面がある。 これと同じことがTCP/IPという文法上の決まりごととして行われている。 以下、パソコンからネットワークを通してどうやってインターネットにつながり、データを取ってくるかを簡単にみていく。

I. パソコンのブラウザから指示を出す

(ア) パソコンのOSがマイクロソフト社であれば、すでにInternet Exploreというインターネットを見るためのソフトが搭載されている。 最近ではGoogle社のChrome。アップルのパソコンであればSafariがある。 これをブラウザと言う。

(イ) ブラウザを開くとURLを入れるボックスがある。 ふつうはここにアクセスしたいインターネットのアドレスを入れるとか、あるいは既にアイコンが出来ている場合はそのアイコンをクリックすることで見たいインターネットの情報につながる。URLとはUniform Resource Locatorの略で、http://ではじまるおなじみのアレ。 実はファイルをアップしたりダウンロードするだけの機能を持つftp:とかmail to:など。これらすべてをURLと呼ぶ。 ここで取り上げるのはhttp:。いわゆるインターネットと言うときは殆どこれをイメージしている。このアドレスはインターネットにつながっている特定のコンピューターにデータがたまっていて、それを探すための番地なのだが、このアクセスに利用する取り決めをHTTPプロトコルと言う。そしてデータがたまっているコンピューターのことをWebサーバーと言う。 (HTTP: Hypertext Transfer Protocol)

(ウ) 整理すると、パソコンのブラウザからインターネット上のwebサーバーにある、写真とか文章とか、動画とか・・、そういうデータをやり取りするときはHTTPという言語文法を使っていて、ブラウザがアレを見たいとwebサーバーに伝え、webサーバーは、はい、渡すよ、と言う具体にやり取りをしている。

(エ) ところで、このままだとパソコンは世界に何億台かあり、サーバーも何百万台かあって常にワイワイガヤガヤとやっているので会話が出来ない。渋谷のハチ公前で大勢の人だかりがして、せっかくのデートにA君とB嬢が出会えないでいる状態だ。 つまりお互いが広大なインターネットの海のどこにいるのかを特定する携帯電話と電話番号のような仕組みが必要になってくる。ここで登場するのがIPアドレス。Internet Protocolの略。これは世界に一つしかない住所だと思えばいい。 例えば192.168.255.255のように最大12桁の数字であらわされる。 直ぐ気づくのは、URLにアドレスを入れるときはこういう数字ではないということ。 普通はwww.sony.co.jp/というアルファベットのはずである。この理由は12桁の数字では、人間が使うときに間違えやすいことから来ていて、インターネットの仕組みを考えた人たちが作った工夫である。 実際、www.sony.co.jp/というサイトには211.125.132.134というIP アドレスがしっかりついている。ではどこでそれが分かるかというと世界中にDNSサーバー(Domain Name Server)にその対照表がある。 A君がうっかりB嬢の携帯番号を忘れてしまい、番号案内に問い合わせる、という作業をし、その上で改めて電話を掛ける。 その電話案内104DNSだ。

II. パソコンからインターネット、そしてパソコンに返るまで

(ア) ちょっと複雑になってくるのはここから。 ブラウザとネット上のwebサーバーの間にはパソコンだとか、ネットワークだとかが介在する。 実はそれぞれに別な言語の文法が存在していて、なおかつ、パソコン語、ネットワーク語、インターネット語と使い手によって違うことである。ブラウザとwebサーバーはそういう言葉と文法の壁を越えて会話しないといけない。どうするか。

(イ) A君とB嬢のラブレターのやり取りをしていると考える。いまどきは携帯メールで済ませてしまうのだろうから、ちょっと古風な例えだが。A君とB嬢は当然同じ言語で、同じ文字と文法を利用しているのでラブレターの会話が成り立つ。これはブラウザとwebサーバーの間で使われるHTTPである。 さて、二人はそれぞれ日本と南米あたりに離れて住んでいると仮定する。どうやってレターをやり取りするのか。 まずDNSサーバーで、相手の住所を確認する。その上で手紙を封筒に入れて宛名と住所を書く。海外に送るのだから当然、アルファベットで英語かスペイン語を使って書く。 A君が郵便ポストに入れて、はい終り。 ここまでがブラウザ、パソコン、ルーター(後で詳細説明)の作業。 

III. しかし実際の郵便の作業はここから始まる。 郵便業者はレターの中身まで分からないし、知る必要もない。封筒の宛名と住所を頼りに、まず国際郵便だと分かると空港に送る大きな袋にその封筒を入れるだろう。その袋には当然、xx空港局宛てと書いてある。 空港局に来たら南米のどこどこの国だから、どの飛行機にのせるか決め、同じ国宛ての他の郵便と一緒に空輸用のジェラルミンボックスに詰めていくだろう。そのボックスにはAirway billと言って、関税や航空会社で必要とする情報が書かれている。 送付元、送り先、飛行機の名前、日付、中身、重量、航空会社の管理番号、郵便事業者側の管理番号等々。先方に到着したら、逆に空港内から各地域向けに封筒の仕訳が行われ、送り先の住所に近い郵便局に届けられ、そこからB嬢にようやく届けられる。 この作業がインターネットの仕組でTCP/IPになる。

IV. データの通信とは

(ア) ここで根本的なことにもどる。データとは何か。 コンピューターの世界では常に、10かの2進法である。つまりonoffかしかない。その組み合わせで信号(データ)を表す。モールス信号を思い出すと良い。子供の時にSOSだけは覚えた。ツ・ツ・ツというのがS。ツー・ツー・ツーがO。だからSOSと言いたいときは、ツ・ツ・ツ・ツー・ツー・ツー・ツ・ツ・ツである。基本は全く同じ。 コンピューターのソフトウェアは膨大なプログラムで出来ているが、その基礎部分は全く同じでon, offの組み合わせで文字を表し、意味を持たせる。 それによってコンピューターへのさまざまな仕事の指示、命令、記録を行っている。

(イ) ではデータを通信する、送るというの何か。 パソコンの内部回路にせよ、ケーブルを経由するにしろ、ワイヤレス伝送にせよ、片側からon, offを繰り返すことでツ・ツ・ツーと送っている。 受け取る側はそのツ・ツ・ツーを以て、暗号を解読するように、これはどういう意味だと確認して、翻訳したデータを表示する。

(ウ) 一方データが野放図に長く送り続けられると、途中の通信回線の事情で不都合になることがある。一部のデータが消えてしまうと、せっかく長々と送り続けていたデーターが全部無駄になってしまう。その間の伝送時間、ふさがっていた回線、その間送るのを待っていた他のデータの遅延時間すべてに影響がでてくる。 そこで、データを一定のルールにもとづいて分割し、それによってデータが消えるリスクを低くし、回線内の交通量をコントロールしやすくしている。このように分割されたデータをパケットと呼ぶ。

V. イーサネット(Ethernet):パソコンからルーターまで

(ア) インターネットに出る前、つまり家庭のADSLや光回線のモデム(普通はルーターの機能がある)に接続されるまではLANという。Local Area Network。ちなみに企業の支店同士をつないだもっと大きなネットワークをWAN (Wide Area Network)という。 このLANは、お互いにデータのやりとりをするための通信路だが、この規格をEthernetと呼ぶ。 パソコンにはこのEthernetにつなげるケーブルの入り口がついているが、旧式パソコンだとEthernet cardを差し込んで、つなげる。 

(イ) EthernetIEEEというアメリカの電気通信団体で決められていて、伝送速度が10Mpbs10BASE5100Mbps100BASE-TX1Gbps1000BASE-SXなどの種類がある。 現在の主流は10BASE

(ウ) LANの中には複数のパソコンがあることが想定されているので、それぞれに識別番号を与えないといけない。 どこでどういう組み合わせのパソコン(あるいはEthernet card)が使われるか分からないので、世界にひとつしかない固有の名前でないと問題が出てしまう。 それがMACアドレスというのもで、12桁の数字で表されている。

(エ) LANの中だけの閉ざされた環境でデータをやり取りする場合はこのMACアドレスがつく。 前出の例だと、ラブレターの文章が実際にはon, offの信号に置き換えられてデータになっているが、それに送り主と宛先のデータを入れないといけない。 それがMACアドレスで、この12桁の情報が付加されて、送られる。

(オ) コンピューターがたくさんLANの中にある場合はハブ(HUB)というものを入れることで複数のコンピューターをつなげることができる。ハブにはいくつか種類があるが、まず伝送距離を延長するために信号の波形を整形する機能がついている。いわゆるスイッチングハブは、それに加えて接続しているコンピューターのMACアドレスを自分で作ることが出来、言ってみれば小さな村の中だけの手紙を配達する郵便局のような機能を持っている。

VI. ルーターからアクセス回線、そしてwebサーバーへ

(ア) ルーターとはIPを住所番地として利用し、郵便物をどこに届けるための配送担当の役割を持っており、その意味でInternetへの入り口である。見た目はHUBと変わらずEthernetのソケットがいくつも付いている。それぞれにIPアドレスとMACアドレスが割り振られている。インターネットとLANの世界をつなぐゲートウェーであるのがルーター(Router)。ただし最近はHUBRouterの機能がひとつになっていたり、家庭用の光ファイバーモデム、ADSLモデムがRouterの機能を持っていたり、複合化が進んでいる。

(イ) ルーターには経路テーブル(routing table)があり、受け取ったデータの送り先IPアドレス(つまり宛先)に応じて、そのデータはどこどこ向けだから、そこに近い方向にあるゲートウエイ(別なルーター)はどれかが書かれている。磯子郵便局で受け取ったハガキに、送り先が東京都港区白金になっていた、だから港中央郵便局に送るか、直送する手段がないので、まずは横浜中央郵便局に送る、というようなテーブルである。 これはネットワーク管理者がひとつひとつ設定していくものだが、最近は自動で近くのゲートウェイを探し出し、設定できるようになっている。

(ウ) ルーターのもう一つの重要な機能がアドレス変換機能。いまのIPアドレスの仕組みは住所番地と違って、数の限界がある。また国際的管理機関により運営されてきているので、取得に時間とコストがかかる。ということで、LANの中だけで利用するために割り当てられたIPアドレスがある。これをプライベートアドレスと言い、インターネット上のアドレスは固定アドレスと言う。 例えば数十人から数百人以上の会社や団体は、固定アドレスを数個持つが、それの100倍のプライベートアドレスを持ち、社内の情報通信はプライベートアドレスを利用し、インターネットにつなげるときのみ固定アドレスを使いまわす。 この使いまわす際にプライベートアドレスをネット接続の際に固定アドレスに対応付ける作業をルーターがこなう。

(エ) ルーターからいよいよ回線業者(NTTとか、KDDIとか)の回線を通じて、そこからインターネットに入って行く。 この回線の中の通信はまたHTTPEthernetとは違う通信プロトコル(文法)をもっている。 例えばルーターからADSLモデムの間はPPPoEというプロトコルが重なる、回線内はまた別な独自プロトコルがある。 例に出したように、もともとのHTTPの恋文は、封筒に入り、運送手段に応じてそれを運ぶ包みや設備が違ってくるが、恋文自体は何も変わらずそのまま運ばれていく。

(オ) 最後にインターネットから、目的地のwebサーバーに届けられる。 コンテナーに入っていた恋文が、郵便箱ごと取りだされ、郵便箱から郵便袋に分けられ、最後は封筒の状態でサーバーに戻ってくる。 そしてサーバーの中で封筒が開けられ、恋文が読まれる。 そしてそこに書いてある指示文通りに、必要とされているsiteの画面、写真や資料をデータとして送る。 ここまでの説明の繰り返しが起こる。

 これを書いている098月に、9日間の盆休みを取った。すると仕事の疲れが出たか、いきなり風邪を引いて寝込んでしまった。 後半朦朧としながら書いている。 それはそれとして、技術の中身より、歴史背景などに興味が行ってしまうところがやはり文系の限界なのだろうが、改めてコンピューター、インターネットの世界というのはアメリカ主導であり、補佐的に欧州がいることを再認識した。1980-90年頃、もうアメリカを追い越した様な気になってバブルを謳歌していたときに、裾野の広いアメリカの若者や学者はこういうことをしていたのだなと、改めて技術革新の奥の深さを感じる。一人二人の発明家ではこういうものは出来ない。それこそモールスやベルの通信黎明期から120年以上も脈々とした蓄積の上に、さらに新たな革新性を加えて発展してきたもので、これは最早技術というよりも、文化そのものなのだろう。 
 この本は、ネットワークを本格的に勉強するための入門書として全体を俯瞰できる。 まだまだ詳細を説明している技術志向の人向けの本だが、お陰で勉強になった。ありがとう。