ルータの機能には、主に以下のものがあります。
機能 | 備考 |
---|---|
別ネットワークへのパケットの中継を行う。 | 宛先IPのネットワーク部分により、中継の可否を決定します。 自分自身が宛先IPが示すネットワークに直接接続されていない場合は、 そのネットワークへの経路を持つと思われる「次の」 ルータにパケットを転送します。 |
無駄なトラフィックを抑える | MACレベルのブロードキャスト・パケットを通さない事により、 トラフィックを抑える事ができます。なお、ユニキャスト・ パケット(宛先が1つであるパケット)を適切な範囲にだけ送る 事によりトラフィックを抑える事ができる、 ブリッジという装置もあります。 |
無限の中継を防ぐ。 | IPヘッダの中にはTTL(Time to Live --- パケット生存時間) というフィールドがあり、パケットがルータを通る際には このフィールドの値が1つ減らされます。 減らした結果が0になると、パケットがループしている (同じルータを何度も通っている)とみなし、 そのパケットを破棄します。その際、送信元に対してパケットが 破棄された旨の通知パケットを返します。 |
パケットの分割と再構成を行う。 | パケットを中継する際に、入ってきた側と出て行く側の ネットワークのMSS(MTU) が異なる場合、両方のネットワークに適したパケットの分割送信、 および受信パケットの再構築を行います。 |
(*1)…ブロードキャスト・パケットは以下の面でデメリットがあるので、 基本的には極力流さないというポリシーを持っておいたほうが良いと思います。
(再掲)
ルータは、ネットワーク1側から来たパケットの宛先IPを見て、 そのネットワーク・アドレスがネットワーク2のネットワーク・アドレスと 同じであれば、そのパケットをネットワーク2の方に送出します。 以下に、具体的な流れを示します。ちょっと長いですが、 じっくり追いかけてみてください。
フェーズ | ノードC | ルータ | ノードD | |||
---|---|---|---|---|---|---|
IPヘッダの生成 | 1. | 送信したい電文の先頭にIPヘッダを付加する。 | ||||
2. | 宛先IP(ノードD)と送信元IP(ノードC) をそれぞれセットする。 | |||||
イーサネット・ヘッダの生成 | 3. | ここで、宛先(ノードD)のMACがわからない。 | ||||
宛先MACの解決 | 4. | 宛先IP(ノードD)、送信元IP(ノードC) とサブネット・マスクにより、自ネットワーク(C’)および宛先の ネットワーク・アドレス(D’)を抽出。 | ||||
5. | 宛先ネットワーク(D’)が自ネットワーク(C’) と異なるので、誰かに中継を依頼したい。 | |||||
6. | ルーティング・テーブルを検索し、宛先ネットワーク へのルータ(のIPアドレス)を決定する。 | |||||
7. | そのルータへ送ろうとするが、ルータのMACがわからない。 | |||||
8. | ARP要求を送出。 | |||||
9. | ARP応答を返す。 | |||||
イーサネット・ヘッダの生成 | ARP応答を受け取って、 宛先MACにルータのMACアドレスを設定。 | |||||
パケットの送出 | パケットを送出し、ルータに対して ノードDへの中継を依頼する。 | |||||
パケットの中継 | MAC層は、宛先MACが 自分向けであるので、パケットを受信する。 | |||||
先頭のイーサネット・ヘッダを 取り除き、上位(IP層)にIPヘッダ以下を渡す。 | ||||||
IP層は、宛先IPが 自分向けでないので、中継するべきと判断する。 | ||||||
宛先IP(ノードD)、 送信元IP(ルータ自身)と サブネット・マスクにより、自ネットワーク(D’)および 宛先のネットワーク・アドレス(D’)を抽出。 | ||||||
宛先ネットワーク(D’) が自ネットワーク(D’)と等しいので、ノードDには 直接送信できることがわかる。 | ||||||
イーサネット・ヘッダの生成 | ここで、宛先(ノードD) のMACがわからない。 | |||||
宛先MACの解決 | ARP要求を送出。 | |||||
ARP応答を返す。 | ||||||
イーサネット・ヘッダの生成 | ARP応答を受け取って、 宛先MACにノードDのMACアドレスを設定。 | |||||
パケットの中継 | ノードDに対して直接パケット を送出する。 | |||||
パケットの受信 | MAC層は、 宛先MACが自分向けであるので、パケットを受信する。 | |||||
先頭のイーサネット ・ヘッダを取り除き、上位(IP層)にIPヘッダ以下を渡す。 | ||||||
IP層は、宛先IPが 自分向けであるので、最終目的地が自分自身であると判断する。 | ||||||
IPヘッダを取り除き、 実データ部をさらに上位に渡す(受信完了)。 |