基礎プロジェクト2:見学2レポート

トップページ >> 授業概要 >> 基礎プロジェクト2 >>
提出:2003/05/31

画像付きのPDFファイル(91KB)はこちら

シミュレーション基礎プロジェクト2
科学未来館レポート
浅井 圭介 助教授

〜インターネット物理モデルに関する解説書〜

30777 梅城 崇師

1 題材について
 世間に広く浸透し続けているインターネット。その仕組みを通常とは違う、物理的なモデルとして理解するという、インターネット物理モデルについて、調べてみた。
 日本科学未来館では、このインターネット物理モデルの動作挙動に引かれ、一通り館内を一周したあと、集合時刻までの間の1時間以上、この物理モデルに張り付いていたため、自分が一番興味を引かれた上に、自分自身、コンピュータやインターネットに興味があるため、これを題材とするのが適当と考えた。


2 原理・解説
 インターネットの仕組みをそのまま再現することは不可能なので、ここでは、宛先を付加したパケット通信の、ごく簡単な仕組みを物理的モデルに表したにすぎない。しかし、この物理モデルを考察するだけでも、インターネットの奥深さが見て取れるのである。

2−1 2進数表現
 まず、デジタルで必須の2進数であるが、通常は電気のONが1、OFFが0としたり、電圧が閾値以上の場合を1、それ未満の場合を0としたりしている。この物理モデルでは、右図のように、2進数の表現は、直径37mm、重さ34gのプラスチック製の玉を使用し、白玉で0、黒玉で1を表現している。
 また、この2進数情報の読み取りには、赤外線LEDとセンサーを組み合わせることで、白色と黒色を見分けている。センサーからの読み取り結果は、センサーに接続された、赤と緑のLEDの点滅により目視で確認することができる。
 これらに見られるように、このインターネット物理モデルでは、原始的・物理的なモデルの中に、適度に電子機器を導入しており、完全な物理モデルのみで動いているのではない。これは、完全に物理モデルのみで動作をさせることを考えた場合、非常に複雑な機器が必要となり、故障率や製作の観点から考えて不可能に近いからという理由があるだろ。また、この物理モデルの目的は、パケットがルータなどを介して送信されるところを体験させることであり、その目的の部分のみをより理解させやすくするために、それ以外の部分は適度に電子化して、理解を助けようとしているとも思える。

2−2 パケット
 この物理モデルは、16ビットのパケットを送受信することにより成立している。16ビットの前半8ビットは宛先アドレス(ヘッダー)、後半8ビットは送信情報(ボディ)である。この16ビットが1つのパケットを構成している。

2−2−1 宛先アドレス情報
 実際のインターネットで使われる宛先情報として最も有名なものはIPアドレスであろう。IPアドレスは、32ビットのうち、サブネットマスクに指定されている部分をネットワークアドレス、サブネットマスク以下をホストアドレスとして使用している。
 この物理モデルでは端末は5つ存在し、それぞれの8ビットのアドレスは次のようになっている。
A:○○○● ○○○●
B:○○○● ○○●○
C:○○●○ ○○○●
D:○●○○ ○○○●
E:●○○○ ○○○●
このように、宛先アドレスのうち、前半4ビットをネットワークアドレス、後半4ビットをホストアドレスとして使用している。また、ネットワークアドレス部分は2進数ではなく、4ビットのうち、どこに「1」があるかでネットワークを判別している。つまり、4ビットあっても使用できるネットワーク数は4つである。ホストアドレス部分は、2進数表現であり、4ビットあって使用できるホスト数は16個であるが、IPと同様に、ブロードキャストアドレス等の特殊アドレスが存在するとした場合、使用できるホスト数は14個になる。
 結局、AとBは同じネットワークに属しているが、それ以外は全て別のネットワークに属しているのである。
 また、OSI階層モデルを参照するとわかるように、実際のインターネットでは、階層に応じて下位を抱合するような形式で、48ビットのMACアドレスや、16ビットのポート番号等の種々の宛先情報がIPの他にも使用されているが、この物理モデルでは、簡略化のためかそこまでは実装されていない。

2−2−2 データ情報
 メッセージデータ本体の情報であるパケット後半の8ビットは、2進数によって表現されている。この2進数は、英数字に関しては右表のASCIIコードに半角カナのJISコードを加えたものに、特殊記号を加えたものである。
 例えば、「A」は、ASCIIコードで、41(16)=01000001(2)であり、物理モデルでは、「○●○○○○○●」と表されることになる。

2−2−3 パケット送信
 パケットは右図のような送出機にセットしておくることになる。この送出機は、送り先端末と、送信文字をレバーを回して選択すると、送信部分に玉の並べ方が表示され、それに従って玉を並べることでパケットを構成し、手動で送信する。このとき、玉の並びが正しいかどうかをチェックするような、エラー訂正機能はない。

2−2−4 パケット受信
 受信したパケットは、先頭の8ビットのアドレス部を破棄し、後ろ8ビットのデータ部のみを、下図のような受信機にバッファされる。上にある列ほど最新のデータである。送られてきたビットデータは、受信機により2−2−2のデータ情報に従って解読され、その結果はLEDにて表示される。
 パケットの送信をうまく組み合わせることで、黒色と白色の玉で作った、最大8×8の白黒画像を送信することもできる。これは、合計64ビットのバイナリデータを送っていることに相当する。ただしこの場合、途中に別の端末からのデータを受信しないことが前提とされるのは当然である。実際のインターネットでは、受信ポート番号を変更したり別スレッドで処理したりすること等により、この問題を解決している。

2−3 パケット送信方法
 データは16ビットを1パケットとして送られることは今までに話した。
 実際のネットワークではデータは銅線の中を電気が流れたり、光ファイバーの中に光が流れたりすることで実現しているが、この物理モデルでは、基本的には右図のように玉が自重で転がることにより、データが流れることになっている。
 では実際にどのような経由(ルーティング)で送信されるかということをこれから述べることにする。

2−3−1 全体図
 端末、ローカルルータ、ネットワークルータ、及びそれらを結ぶ線によって構成されている。
 それらの構成は次ページの通りである。
 図の説明をすると、赤色の●が高さ160cmのネットワークルータ、白色の○が高さ130cmのローカルルータである。各端末には、ローカルルータが1基接続されている。ネットワークルータに記載している黄色の文字は、説明のためにつけた、ネットワークルータ番号である。また、矢印でつながれたものは配線を表し、矢印の方向は傾斜の方向、つまりその方向に玉が転がることを表す。
 また、黒色の文字は各端末のアドレスを表す。赤色の文字は各ルータに接続された順番を表し、数字が若いほど、ルータの上部に繋がっていることを表す。緑色の文字は、ルータに設置されている経路判別装置に記された判別基準であるリファレンスビットを表す。



<ネットワーク図>


2−3−2 ネットワーク
 インターネットでは、ネットワークを単位として、ネットワーク同士が結びつくことにより構成されている。この物理モデルでは、前述したように、A・B、C、D、Eの4つのネットワークによりインターネットモデルが構成されている。
 インターネットとしてネットワークを繋ぐための仕組みがルータであり、ルータは送信して来られたデータ(パケット)のあて先アドレスに応じて適切な行き先に振り分ける機能を持つ。この仕組みを持つものが、ネットワークルータである。
 ルータによって振り分けられ、目的のネットワークへと到着したデータは、ネットワーク内を流れることになる。同一ネットワーク内では、実際のLANにおいては、ハブや、スイッチングハブなどの種々の方法があるが、ここでは、玉が各端末に接続されているローカルルータを順番に回り、データの宛先がローカルルータの持つ端末のアドレスと一致した場合は、データを端末へと誘導し、一致しない場合は、次の端末へと回す仕組みを持つ。

2−3−3 ローカルルータ
 前述したとおり、ローカルルータは、通常ネットワークカード(NIC)が行っている機能である、端末とネットワークとの接続を行うものである。その性質上、一つのローカルルータは、一つの端末に対応することになる。逆に、ローカルルータを持たない端末はない。
 ローカルルータの機能としては、8ビットのリファレンスビットを持つ。このリファレンスビットは、接続している端末アドレスと一緒である。また、ローカルルータは、基本的に4本のラインを持つ。端末との出入力と、ネットーワークからの入出力である。さらに、同じネットワークに属しているローカルルータは、ネットワークという定義上、ネットワークルータを1つ以上含む経路で1本に繋がるはずである。
 実際の動作としては、ネットワーク又は端末からローカルルータに入力されたデータは、下までおりた後、ルータの中心にあるリフトにより、ルータ上部に持ち上げられる。そして、自重により、ルータ周囲の螺旋状の溝を順に下り、端末への入力へと分岐する部分で一度停止する。このとき、パケット先頭8ビットのネットワークアドレス部をリファレンスビットと照合し、全て合致していれば、端末への入力という経路を開き、一つでもビットが合致していなければ、そのまま螺旋を下り続けた後に、次のネットワークへと繋がる経路へと誘導される。
 例えば、自端末から自端末へと送ったデータは、ローカルルータへと送られ、ローカルルータ中心のリフトを上昇し、リファレンスビットと照合され、合致しているので、そのまま自端末へと送られることになるのである。

2−3−4 ネットワークルータ
 ネットワークルータは、パケットのアドレスのネットワークアドレスを確認し、目的のネットワークへと誘導するものである。
 仕組みとしては、入力されたデータは、ローカルルータと同様に、中心のリフトを上って螺旋状の通路を下りながらリファレンスビットと照合される。ただし、ここでの照合方法はローカルルータとは違い、保持しているリファレンスビットは4ビットである。この4ビットと、パケット先頭のネットワークアドレスを、ANDし結果を全てORする。それが、1であればそのリファレンスビットに接続された通路を開き、0であればそのままネットワークルータの通路を下らせる。このとき、分岐させるためのネットワークアドレス指定は4ビット中のどこに1があるかで指定されるため、一つのリファレンスビット中に複数の分岐先を指定できる。
 また、ネットワークルータの構造を工夫することにより、前述のように必ずリフトを通る経路ではなく、場合によってはリフトを通らないで済むようなネットワークルータも可能となる。

2−3−5 例:端末Eから端末Aへ
 端末Eから端末Aへとパケットが送信される例を考える。宛先アドレスは、00010001である、
 端末Eから、端末Eのローカルルータへとデータは送られる。ローカルルータのリフトを上り、リファレンスビットと照合されるが、合致しないため、4番のネットワークルータへと送信される。ネットワークルータのリフトをのぼり、リファレンスビット、0110と照合されるが、結果は0のため、2番のネットワークルータへと送信される。リフトを上った後、リファレンスビット0010と照合され、結果が0のため、次のリファレンスビット0001と照合される。この結果は1のため、1番のネットワークルータに送られる。1番のネットワークルータでは、端末間の「橋」の接続順によって、リフトを経由することなく、2番から送信されたデータはそのまま端末Bのローカルルータへと送信される。ローカルルータのリフトを上り、リファレンスビットと照合されるが、合致しないため、端末Aのローカルルータへと送信される。そして、リフトをのぼり、リファレンスビットと照合され、合致しているので、端末Aの受信機へと送信され、端末Aに取り込まれる。

3 考察
3−1 存在しないアドレス
 存在しないアドレスを指定した場合どうなるか。これは、論理的に考えると、ネットワーク部が存在しない場合とホスト部が存在しない場合に分けられる。

3−1−1 ホスト部が存在しない場合
 ホスト部が存在しない場合は、ネットワーク部が正しいので、ネットワークルータにおいては何事もなく通り過ぎる。しかしながら、ローカルルータにおいて、リファレンスビットがそのネットワークのいずれとも合致しないため、延々とローカルルータを回り続けることになる。
 これは、存在しないアドレスを破棄するという仕組み、または、インターネットでいうTTLという無限ループを防ぐために仕組みが存在しないためである。

3−1−2 ネットワーク部が存在しない場合
 今回の仕組みでは、ネットワークの判別はリファレンスビットとネットワーク部アドレスをAND演算してORするので、ネットワーク部が存在しないアドレスでも、ビット単位で見た場合にはそのビットは存在することになる。よって、これも3−1−1と同様に無限ループに突入してしまうのである。

3−1−3 実際
 しかし、実際に実験をしてみると次のようになる。ある端末から存在しないアドレスでパケットを送ると、ローカルルータにて一度リフトで持ち上げられたあと、どの分岐でも分岐せずに、ルータ下部に破棄される。ネットワークルータ4番から、ネットワークルータ5番に送信するパケットのアドレス部を存在しないアドレスにした場合も、同様に破棄される。
 これらの結果は、次のようなことを示していると思われる。このインターネット物理モデルは、実際に以上のような理論どおりに動いているのではなく、見かけ上、このように動いているようにみせかけているだけである。実際の使用者(来場者)には存在しないアドレスを指定する場合もあるだろうから、ローカルルータ・ネットワークルータの各ルータでアドレス部全体を見て破棄するかどうかを判別しているのではないかと推測される。

3−2 同時入力
 同一ルータにほぼ同時刻にデータが送信された場合、つまりデータコリジョンが起きた場合どうなるのかということであるが、データが壊れるのではないかと予想していた。
 しかし実際は、ルータへの入力の際に一時停止するのだが、その際に入力の優先順位を決めているらしく、データが壊れるといったことはなく、順番待ちをして、先のパケットが完全に処理が終わった後に、次のパケットの処理が開始されるといったものであった。
 また、仕様では、「もし分岐すべき経路が混雑してパケットを流せない場合は、他の分岐可能な経路に流す。全ての経路が混雑している場合は、そのパケットは破棄される。」ということであった。これは実装されているか確認していない。もし、この機能が実装されていた場合でも、破棄されたパケットを再送信される機能は装備されていない。

3−3 パケット長が異常なパケット
 ルータへの入出力は全て16ビット単位で行われる仕組みになっており、17ビットを入力した場合は、16ビットはルータへ入力されるが、残りの1ビットは残り、以後16ビットが送られてきた場合、全て1ビットずつずれるようになることが予想される。
 また、15ビットを入力した場合は、16ビットに達しないので送信されず、次に16ビット来たときに、15ビットパケットと16ビットパケットの最初の1ビットをあわせたものが1パケットとして扱われる。よって、これも以後1ビットずつずれることになることが予想される。
 実際には、これは完全には実験していないが、インタープリターが言うには実際にそうなるということである。

3−4 問題点
 このインターネット物理モデルは、パケット通信のごく単純化したものであるが、その分、実際のインターネットに比べて欠けているものも多々ある。これらは、再現性と、理解性のせめぎあいであるが、理解性の観点から見れば、その場で見て理解できる範囲はこの程度が限界であろう。
 実際に欠けている機能は挙げればきりがないが、
・TTLが存在しない(無限ループに陥る可能性もある)
・動的に経路が決定されない(経路の損傷や、ネットワークの追加削除に対応していない)
・パケットは一方向のみで通信ではない(エラー訂正機能や、パケット到着確認ができない)
・パケット長を調査する機能がない
・ポートがない(複数の端末からの受信ができない)

4 感想
 日本科学未来館は対象年齢が低めに設定されているが、展示されている物自体は大学生でも十分楽しめそうな気がする。展示されている解説文を見ると、対象年齢はそんなに低いとは思えない。子どもたちが科学に少しでも興味を持てば、目的が達成されたとするなら、これでもいいと思うが、理解までさせたいなら、もう少しパンフレットや展示をわかりやすくすべきだと思う。
 個人的には非常に興味深かった。インターネット物理モデルに張り付いていたのでそれについて述べると、玉の動作は十分に目で追える速度で、適当だったと思われるが、物理モデルの説明が、インタープリターしかいないような状態で、パネルによる詳しい説明がなかった。インタープリターに聞きにくい人もいるので、今回のレポートのようなパネルによる解説文をもう少し付け加えてくれるとよかったのではないかと思う。
 そのほかの展示物もある程度は見たが、特にGeo−Cosmosの綺麗さと、エントランスのLightOnTheNetが興味深かった。Geo−Cosmosに自分の好きな映像を写せたら面白いとも思うし、エントランスのライトのインターネット上からの反応がもう少し早ければいいとも思う。
 また、ボランティアが多く、高齢者も、見かけによらず知識が豊富であることに驚いた。このようなボランティアを、うまく利用していることは、今後、何か企画等をする際の参考になると感じた。
 以上、思いつきではあるが、感想とする。


参考文献
サイト:http://www.watch.impress.co.jp/internet/www/article/2001/0710/miraican.htm
ボールの流れでInternetの仕組みを表現した「インターネット物理モデル」の構築
(http://eto.com/2001/PhysicalInternet/0201IPSJ-paper.htm)

administrated by umekkii -> admin@umekkii.jp