インターネットは、ネットワークとネットワークがつながってできている。ここでは、ネットワークをまたいで行なわれる「間接通信」について、クライアントの視点で見ていきたい。重要なキーワードは「ルーティング」だ。
パケットを届ける「ルーティング」
データの送信元のクライアントは、宛先のホストとネットワークアドレスを比較して、通信相手のホストが異なるネットワークに所属していると判断すると、パケットをルータに送るようになっている(図1)。このように、パケットの送信先を決めることを「ルーティング」という。
ルーティングの目的は、パケットを宛先ホストが所属するネットワークに届けることである。ルーティングはおもにルータやレイヤ3スイッチの役割だが、実際にはクライアントレベルでもルーティングが行なわれている。ルータによるルーティングと比較してシンプルな動作をするので、ルーティングの基本動作を知るにはちょうどよい素材である。そこでまずは、クライアントの内部でどのような考えでルーティングをしているのか見ていこう。
クライアントのルーティングテーブル
まず、通信相手のホストが異なるネットワークに所属しているとわかると、「そのネットワークにパケットを送るには、どうしたらよいのか」を考えなければならない。このときの判断基準になる情報が、「ルーティングテーブル」と呼ばれるデータベースだ。
クライアントに保存されているルーティングテーブルの例は、画面1のようになる。クライアントのルーティングテーブルで注目するべき情報は、おもに「デフォルトゲートウェイ」(1行目)と、自身が所属するネットワークのネットワークアドレス(3行目)だ。デフォルトゲートウェイは、同じネットワーク上のルータ(家庭内LANであれば、ブロードバンドルータ)のIPアドレスである(デフォルトゲートウェイのIPアドレスは、DHCPサーバからIPアドレスの割り当てを受ける際に同時に通知される)。クライアントのルーティングテーブル上では、デフォルトゲートウェイの情報は、ネットワークアドレスとサブネットマスクともに「0.0.0.0」すなわち「0.0.0.0/0」となっていることがわかる。一方自身のネットワークに関する情報は、3行目から「ネットワークアドレスが192.168.1.0で、ネットマスクが255.255.255.0」であることが見て取れる。ちなみに自身のIPアドレスは「192.168.1.4」だ。
では、これらのルーティングテーブルを使って、クライアントはパケットの送信先をどのように判断するのだろうか。まず、一番左の列の「Network Destination」に注目してほしい。これは文字通り「宛先ネットワーク」に関する情報だ。つまり、宛先のホストが持つIPアドレスが、この宛先ネットワークに所属すると判断できれば、右から2番目の列の「Interface」から3番目の列の「Gateway」に向けて送信する。
デフォルトゲートウェイに任せる
しかし、このルーティングテーブルをよく見ると、自分が所属するネットワークに関する情報を除けば、ローカルループバックアドレス(2行目)やマルチキャストアドレス(6行目)などしか登録されていない。とはいえ、この状態でも問題なくインターネットにアクセスできる。これはなぜなのか。結論からいえば、これはデフォルトゲートウェイに任せているのだ。
デフォルトゲートウェイとは、ルーティングテーブルに登録されていない「その他」のネットワーク宛のパケットの送り先である。クライアントにとってルータがデフォルトゲートウェイなので、とりあえずルータに転送する(デフォルトゲートウェイとは直接通信なので、ARPによってMACアドレスを取得してパケットを送る)。あとはルータにお任せで、ルータが目的のネットワークまでルーティングしてくれるだろう、という考え方なのだ。
では、パケットの転送を任せられたルータはどうするのだろうか。こちらも当然、自身に登録されているルーティングテーブルにしたがって、パケットの転送先を判断する(画面2)。
(次ページ、「ルータ同士が会話するルーティングプロトコルの仕組み」に続く)
この連載の記事
-
第8回
ネットワーク
HTTP、FTP、SMTP、SIPはどう動くの? -
第7回
ネットワーク
帯域を効率的に利用するTCPの仕組みとは? -
第6回
ネットワーク
TCPのコネクションとはなんですか? -
第5回
ネットワーク
TCPのキモはコネクションとポート番号 -
第3回
ネットワーク
特別なIPアドレスって知っていますか? -
第2回
ネットワーク
TCP/IPはどのように普及していったの? -
第1回
ネットワーク
TCP/IPの基礎の基礎を理解していますか? -
ネットワーク
TCP/IPまるわかり - この連載の一覧へ