ホームページ >運用・保守 >Linuxの運用と保守 >ルーターがパケットを転送する方法
まず、ルータがどのようにアドレス指定を実行するかという問題を考えてみましょう。方法は2つありますが、1つはGaode Mapのように、始点と終点を入力すると、始点から終点までの完全なルートがいくつか出てきます。もう 1 つは道路標識に似ており、完全なルートを示すものではありませんが、さまざまな交差点で次の目的地がどこにあるのかを示します。
最初の方法は実際の状況に準拠していないため、ルーターは 2 番目の方法を採用します。ネットワークは複雑かつ巨大すぎるため、ルータがすべてのネットワークのトポロジを把握することは不可能です。本当にすべてのネットワークのルートを保存したとしても、非常に非効率であり、膨大なストレージが必要になるだけでなく、ルートのクエリも非常に非効率になります。
したがって、ルーターは、接続されているネットワークの情報のみを保存します。このようにして、データ パケットがルーターを通過するとき、ルーターは宛先アドレスに基づいてネクスト ホップ アドレスを選択し、パケットを配信します。データ パケットは、最終的に宛先ホストに配信されるまでに、十数台のルーターによって転送される可能性があります。
ルーターには、パケットを転送するための独自のアルゴリズムがあります。ルーターがどのようにパケットを転送するかを見てみましょう:
(1) まず、宛先アドレスをデータ パケットから抽出する必要があります。
(2) 直接配送が可能かどうかを確認します。つまり、宛先アドレスが存在するネットワークがルーターに直接接続されているかどうか、接続されていれば、他のルーターを経由せずに直接配送することができます。それ以外の場合は 3 を実行します。
(3) ルーティングテーブルに対応する特定ホスト経路があるかどうかを確認し、存在する場合は特定ホスト経路で指定されたネクストホップアドレスに転送し、存在しない場合は4を実行します。
(4) ルールに一致する一般経路が存在するか確認し、存在する場合はルールに一致する一般経路で指定されたネクストホップアドレスを基に転送し、存在しない場合は手順5へ進みます。
(5) ルータのルーティングテーブルにデフォルトルートが設定されている場合はデフォルトルートで指定されたアドレスにパケットを転送し、そうでない場合は6
(6)を実行してパケットを破棄します。パケットを転送し、転送失敗を報告します。
推奨: "linux ビデオ チュートリアル "
以上がルーターがパケットを転送する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。