ルーティングとは目的のホストまでパケットを送るとき、経路情報を交換しあいながら、効率的なパケットの転送を行うことができる経路を決定し制御することである。もっとわかりやすくいえばコンピュータ間でデータの送受信する際にデータを転送する経路を決定することである。
ルーティングを行うためのネットワーク機器がルーターである。ルーター本体がなくてもソフトウェア自体でルーティングを制御することもできる。
1:データリンク層のプロトコル(OSIの参照モデルでは、IPの下に位置する)が、受信したフレーム(データリンク層を流れるパケットのこと)からデータ部分を取り出して、IPデータグラムとして、上位のIPプロトコルモジュールに渡す。
2:IPはデータグラムのヘッダに書かれている宛先アドレスをチェックして、自分宛てのものであれば、上位のトランスポート層に渡す処理をする。
3:自分宛て出なかった場合は、別のホストに転送するための処理を行う。別のホストに転送するためには、まずルーティングテーブルと呼ばれる経路制御のためのデータバースを検索して、どのホストに送るか、またそのためのネットワークインターフェース(IPプロトコルモジュールとデータリンクのプロトコルモジュールを結ぶ接点と考えてください)は何かを調べて、適切なネットワークインターフェースに送るための処理を行う。
4:ルーティングテーブルを検索しても情報が得られなかった場合は、IPはデータグラムを転送することができないので、データグラムを捨ててしまう。
[補講]UNIXのTCPでは、ダイナミックルーティングがサポートされているが、その他のOSでは、ほとんどスタティックルーティングしかサポートされていません。