ルーティングテーブルはパンクしないのですか?

ルーティングテーブルはパンクしないのですか? どい ゆうほう 2005/09/16 02:57
表題 返信 削除
戸根先生、はじめて質問させていただきます。よろしくお願いいたします。
今、先生の「ネットワークの考え方」を読ませていただいております。
先生が、新しいネットワークモデルを苦心して作り出そうとしている姿に感銘しているひとりです。
小生、齢43にして全く0からコンピュータ及びネットワークの勉強を4月より夜間学校で始めたのですが、シスコアカデミーのカリキュラムは私の単純な頭ではなかなか理解できなくて、そんなとき担任の先生の薦めで戸根先生の著書に巡り会いました。
「信号伝送」「パケット配送」「エンド間通信」「補助的な仕組みとアプリケーション」というモデルはOSI参照モデルより、ど素人の私にはすっきりしていてわかりやすい気がします。
質問したいことはたくさんあるのですが、二点だけお願いいたします。

①  P113の3.6.3 方向を把握する考え方 の図3.25を見ると、ルータA.B.C.D.E.Fとどんどんルーティングテーブルのデータが増えていくように見えますが、これがG.H.I.J・・・とずっとつながっていくと世界中のインターネットにあるそれぞれのルータは膨大なルーティングテーブルのデータを記憶しなければならないような気がしますが、実際にはどう  なっているのでしょうか?

② P268で「スイッチングハブとルータはパケットを中継するという同じ役割を持った仲間であり、そこに本質的な違いはありません」とあります。私もそう思いますが、とするとイーサネットのパケットのヘッダーにMACアドレスをつけなければならない理由がよくわかりません。
自宅のLANには、2台のPCと1台のプリンタがありますが、PC→ブロードバンドルータ→PCあるいはPC→ブロードバンドルータ→プリンタ間の通信はTCP/IPプロトコルによるアドレス判別を行っていると解釈しています。
しかし一方で、1台のPCとプリンタは、スイッチングハブにぶら下がっているので、おそらくMACアドレスによるパケットの中継先判別が行われていることと思います。
つまり小規模のLANでは、IPアドレスによる配送だけではトラフィック分散ができないので、スイッチングハブがMACアドレスでパケットを分別中継してトラフィックの混雑緩和の役にたっているような気がします。
それでも素人考えで、MACアドレスは使わなくてもすむようになれば、ネットワークの理解も、もっとすっきりするんじゃないかなぁ、と考えてしまうのです。
イーサネットが純粋に「信号伝送」だけの技術になればと。
先生はどのようにお考えですか?

簡潔な質問ができなくて恐縮ですが、ご教示頂ければ幸いです。
これからも執筆活動がんばって下さい。他著作でもぜひ勉強させていただきます。

名前: 
どい ゆうほう
日時: 
05/09/16 02:57

コメント

どいさん,はじめまして。

>先生が、新しいネットワークモデルを苦心して作り出そうとしている姿に感銘しているひとりです。

拙著,お読みいただきありがとうございます。
OSI参照モデルを作ったときは,
世界の英知を集めて何年もの年月をかけたのですから,
ネットワーク全体をモデル化するのは大変なことです。
それを一人でやろうとしたのですから,苦労しました。
不十分な点も多々あるかと思います。
でも,その辺を感じとっていただけたようで,うれしいです。

>①...(省略)...ルータは膨大なルーティングテーブルのデータを記憶しなければならないような気がします...(略)

どいさんの想像は当たっています。
インターネットの規模になると,ルータは膨大な経路情報を持ちます。
最近の状況は調べていませんが,
インターネットの全経路(フルルート)は10数万くらいの数だと思います。
だから,全経路の情報を保持するプロバイダのルータは,
メモリ容量も大きくないとだめですね。

>②...(省略)...イーサネットのパケットのヘッダーにMACアドレスをつけなければならない理由がよくわかりません。

128ページの中ほどにある段落をもう一度読んでみてください。
『以上がカプセル化の典型的な用途ですが...(略)...』
っていうところです。
TCP/IPネットワークでは,普通,
図3.33の絵にあるような形でパケットが流れていきます。
IPパケットは,イーサネットや通信回線のパケットでカプセル化されて,
運ばれていく,っていうことですね。
で,イーサネットのMACヘッダは,この絵にある『方式B』とか『方式A』と書いてある
ヘッダに相当します。
まず,これを頭に入れておいてください。

>自宅のLANには、2台のPCと1台のプリンタがありますが、PC→ブロードバンドルータ→PCあるいはPC→ブロードバンドルータ→プリンタ間の通信はTCP/IPプロトコルによるアドレス判別を行っていると解釈しています。

このアドレス判別の動作をもう少し掘り下げて考えてみましょう。
IPは,IPアドレスをみて,次の中継点を判断するのですが,
中継先を判断した後,その中継点にパケットを運ぶ動作を,
イーサネットに依頼して実行してもらいます。
そのときに,IPパケットをイーサネットでカプセル化するわけですね。
PCをブロードバンドルータに直結するようなケースだと,
IPの仕組みで直接パケットを運ぶように思えるかもしれませんが,
そうではありません。
IPには信号の方式が定義されていませんから,
IPパケットを直接に変換して運ぶことはできません。
イーサネットや通信回線といった,何らかのパケット配送方式で,
カプセル化しないとパケットを運べない,ということです。
で,実際にパケットを運ぶ動作はイーサネットや通信回線が行いますから,
そのアドレス(イーサネットならMACアドレス)が必要になります。

こんな説明でわかるかしら?

それから,『ネットワークはなぜつながるのか』(戸根勤著,日経BP社)
の148~161ページにルータの内部動作の解説があります。
これが参考になると思います。

>イーサネットが純粋に「信号伝送」だけの技術になればと。
>先生はどのようにお考えですか?

私も,『ネットワークの考え方』を書くときに考えてみました。
今のイーサネットは,ほとんどがスイッチングハブを用いて全二重で動いています。
全二重ということは,2地点間を1本の線でつないだ,
ポイントツーポイントの構成だということですが,
ポイントツーポイントだと,一方から送った信号は否応なく,もう一方に届きます。
アドレスなんか要りません。
だから,イーサネットヘッダからMACアドレスをとってしまって,
信号伝送だけに絞り込んでもかまわないっていうことですね。

でも,あえてそうする必要性は低いかと思います。
今のイーサネットから,新しい信号伝送だけのイーサネットに変えたとしても,
実用面で変わるところはほとんどないといってよいでしょう。
新しいイーサネットを作るために開発の時間や費用をかけても,
そこから得られるものは何もないということですね。
それだったら,今のイーサネットでいいんじゃない?
と考える人が多いんじゃないかしら。

それから,もう一つ。
IPパケットをカプセル化するパケット配送方式はイーサネットだけではありません。
通信回線や無線LANといった方式もあります。
その中で,無線LANが特に曲者です。
無線LANはイーサネットとは違ってポイントツーポイントではありませんから,
信号伝送に絞り込むわけにはいきません。
無線LANもMACアドレスを使いますから,
MACアドレスそのものを全く使わないというわけにはいかない,ということです。
すると,イーサネットだけ変えてもネットワーク全体の考え方を
整理することはできないんですね。

まあ,そんなこんなで,いくつか理由はありますけど,
イーサネットを信号伝送に絞り込むというアイデアは
残念ながら現実的ではないという結論になるのではないかと...

戸根先生、ご回答ありがとうございます。
大変詳しく、わかりやすく説明していただき、疑問が融けました。
さっそく「ネットワークはなぜつながるのか」を購入し、P147~P161の所を読みました。LAN(イーサネット)の場合はARPによってMACヘッダーを付け、WANの場合は、例えばPPPヘッダー等を付けて、「信号伝送」の依頼先へ渡すのですね。
また「ネットワークの考え方」P128を読み直してみたら、納得が行きました。「IPは、イーサネットや無線LANや通信回線などのネットワークが既に存在している状況で、そうしたネットワークでカプセル化してパケットを運ぶことを前提にして作られた方式です。」
私は、TCP/IPはARPANETの頃から存在していたのではと誤解していたので、インターネットの初期にはIPヘッダーがパケットの先頭に付くものだと思い込んでいました。大きな勘違いです。
それに、IPアドレス判別(というか制御のため?)のためには必ずしもIPヘッダーが先頭に付かなくてもよいことを、「ネットワークはなぜつながるのか」 P160,161の専用線のケースで知りました。ポイントツーポイントならアドレスは必要ないということですね。イーサネットは小規模LANが前提なので、万が一アドレス判別ができない場合に、ブロードキャストして宛先を探すという奥の手を残してあるというというところでしょうか。
自分、遅読のためご返事遅くなりまして申し訳ありませんでした。
先生の著書のおかげで、だんだんネットワークの勉強が面白くなってきました。さらに読み進めて参ります。
またわからないことがありましたら、ご指導よろしくお願いいたします。
ありがとうございました。

訂正があります。
本を読み進めたら、自分の記述が間違っていたようでした。

>私は、TCP/IPはARPANETの頃から存在していたのではと誤解していたので、

TCP/IPプロトコル群は、さまざまなLANや通信回線を相互接続するために考え出されて、インターネットの初期にはもう存在していたのですね。(ネットワークの考え方 8.4.1)

>イーサネットは小規模LANが前提なので、万が一アドレス判別ができない場合に、ブロードキャストして宛先を探すという奥の手を残してあるというというところでしょうか。

PCやルータの場合、送り先IPアドレスに対応するMACアドレスがARPテーブル上になければ、IPパケット配送がブロードキャストしてMACアドレスを探すのであって、スイッチが宛先不明パケットをLAN全部にばらまくのとは全く意味が違うのですね。
もしARPして応答がなければ、そのIPパケットはイーサネット方式でカプセル化できないので、信号伝送に渡せないのですね(通信不可能なので捨てる)。とにかくイーサネットはMACアドレスがないと稼動しようがないと。

このように考え直しましたが、もし間違っていましたらご指摘いただければ幸いです。

>もし間違っていましたらご指摘いただければ幸いです。

これでいいと思います。
蛇足かもしれませんが,少し補足しておきましょう。

>TCP/IPプロトコル群は、さまざまなLANや通信回線を相互接続するために考え出されて、インターネットの初期にはもう存在していたのですね。

『ネットワークの考え方』の『7.1.5 インターネット技術の考え方』(254ページ)に
書いてありますが,
ARPANETなどの,インターネット以前にあったパケット交換ネットワークを
相互接続するために考案されたプロトコルがTCP/IPです。
そして,TCP/IPによって,いくつかのパケット交換ネットワークを相互接続してできた
大きなネットワークがインターネットです。
だから,インターネットの初期に存在していたというより,
TCP/IPによってインターネットが誕生したと考えた方がよいでしょう。

>スイッチが宛先不明パケットをLAN全部にばらまくのとは全く意味が違う

スイッチが宛先不明のパケットをばらまくのは次のように考えればよいでしょう。
 元々,イーサネットは全パケットを,LAN全体にばら撒いていた。
 しかし,宛先がどこに存在するかわかっている場合には,
 全体にばらまく必要はなく,宛先が存在する場所に向けて送ればよい。
 しかし,宛先がどこに存在するかわからないときは,
 そこに向けてパケットを送ることができないので,
 イーサネットの元々の考え方に従って,LAN全体にばらまく。

>IPパケット配送がブロードキャストしてMACアドレスを探す

こちらは次のように考えればよいでしょう。
 LAN上のどこかに探している通信相手が存在するはずだから,
 LAN全体に問い合わせメッセージをばらまけば,
 その相手に問い合わせメッセージが届くはず。
 そして,相手に届いたら,そこから応答が返ってくるはず。
 これで,相手のMACアドレスを調べるという目的を達成できるはず。

先生、何回も聞いてしまってすいませんでした。ありがとうございます。よくわかりました。またこの先、実際にルータ等いじって、実地で勉強すればより理解が深まっていくと思います。
例えていえば、LAN技術は現場で、TCP/IP技術は管理部門ですね。どちらが欠けてもインターネットは成り立たないですね。