ルーティングとは、2つ以上の異なるネットワーク間でデータを中継する処理のことです。通信プロトコルとしてIPが使われるようになってから普及し、膨大な数のネットワーク セグメントが相互接続することで成り立っているインターネットとって、必要不可欠な要素になっています。7層で構成されるOSI参照モデルの中では第3層であるネットワーク レイヤで動作し、IPパケットの通信経路を決定する重要な役割を担っています。ルーティングを行う機器をルータと言います。
ルータは最適な経路を決定するため、自分自身が持つルーティング テーブルを参照します。ルーティング テーブルは、ルータが受信したパケットをどこへ転送するべきかを決定するための、宛先ルートの一覧を保持しています。受信したパケットの宛先アドレスが、いずれかの宛先ルートに該当した場合には、ルータはその宛先ルートに対してパケットを送り出します。このような処理を複数のルータが「バケツ リレー」のように実行することで、異なるネットワーク セグメントに接続されたホストにまで、パケットが届くわけです。
パケットの宛先アドレスが、ルーティング テーブル上の宛先ルートのいずれにも該当しない場合には、ルータはそのパケットを破棄し、宛先到達不能メッセージをICMPパケットで送信元へと通知します。該当する宛先ルートが複数存在する場合には、その中から最適と判断される宛先ルートへとパケットを送り出します。
ルーティング テーブルへの宛先ルートの登録方法としては、管理者(人間)が設定を行う「スタティック ルーティング」と、ルータ自身が周囲のルータから情報を収集して動的に登録する「ダイナミック ルーティング」があります。ダイナミック ルーティングでは、ルータ間で情報を交換するために、ルーティング プロトコルと呼ばれるプロトコルが使用されます。
インターネットは複数のAS(Autonomous System:自律システム)の集合でできており、このAS間を接続するルーチングプロトコルをEGP(Exterior Gateway Protocol)、AS内のルーティングはIGP(Interior Gateway Protocol)と呼んでいます。現在では、EGPとしてBGP-4が、IGPとしてOSFPなどが広く使われています。