コンピュータネットワークの知識の集大成 - ネットワーク層の知識のまとめ (コンピュータネットワーク入門リファレンスガイド)

第4章 ネットワーク層

4.1 ネットワーク層について何を学ぶ必要がありますか?

コンピュータネットワーク学習ではネットワーク層が中心となり、主に以下の内容を学習します。

  • ネットワーク層の機能: 異種ネットワーク相互接続、ルーティングと転送、ネットワーク層の輻輳制御、SDN を含む
  • ルーティング アルゴリズム: ルーティング アルゴリズムの関連概念と分類、距離ベクトル アルゴリズム、リンク ステート アルゴリズム
  • IPv4 と IPv6: IPv4 と IPv6、IP アドレス、3 つの IP アドレス指定方法、ARP、DHCP、および ICMP プロトコルの一連の関連概念
  • ルーティングプロトコル: RIP、OSPF、BGP
  • モバイル IP: モバイル IP の関連概念
  • ネットワーク層の機器: ルーター関連の概念

ネットワーク層については学ぶべきことがたくさんあり、ブロガーは徐々にコンテンツを整理して更新することになります...

4.2 ネットワーク層の機能

4.2.1 はじめに

ネットワーク層は 5 層構造の 3 番目の層で、主なタスクはパケットを送信元から宛先に送信し、パケット交換ネットワーク上のさまざまなホストにデータ通信サービスを提供することです。

その形式は、シンプル、柔軟、コネクションレス、ベストエフォート型のデータグラムサービスを上位層に提供するもので、主にIPプロトコルが使用されます。

ネットワーク層の主な機能には、異種ネットワーク相互接続の実現、ルーティング選択とパケット転送輻輳制御などがあります。

4.2.2 異種ネットワーク相互接続

4.2.2.1 異種ネットワークとは

異種ネットワークとは、異なるネットワーク アクセス メカニズム、ルーティング メカニズム、アドレス指定スキームなどを備えたネットワークを指します。

ユーザーのニーズは多様であるため (さまざまなネットワーク アクセス メカニズム、ルーティング メカニズムなど)、すべてのユーザーのニーズを満たすことができる単一のネットワークはなく、世界中にはさまざまな異種ネットワークが存在します。

4.2.2.2 ネットワーク相互接続とは

ネットワーク相互接続とは、2 つ以上のコンピュータ ネットワークを中間デバイス (中継システム) を介して相互に接続し、より大きなネットワークを形成することを指します。

リレー システムは、配置されているレベルに応じて、次の 4 つのタイプに分類されます。

  1. 物理層中継システム:リピータ、ハブ
  2. データリンク層中継システム:スイッチ
  3. ネットワーク層中継システム:ルータ
  4. ネットワーク層より上の中継システム:ゲートウェイ

前章の検討から、物理層とデータリンク層で、中継システムを介して 2 つの異なるネットワークを接続することは、ネットワークを拡張するだけであり、真のネットワーク相互接続ではないことがわかります。

したがって、ネットワーク相互接続は、一般にネットワーク層のルーターを介したネットワーク相互接続を指します。

4.2.2.3 ネットワーク層はネットワーク相互接続をどのように実現するのでしょうか?

TCP/IP システムを使用するインターネットは、ネットワーク相互接続を実現するために標準化されたプロトコル方式を採用しており、相互接続された各ネットワークは異種混在可能です。つまり、ルーターを介して仮想 IP ネットワークが構築され、IP プロトコルによってこれらの異種ネットワークが統合されたネットワークのように見えます。

ここに画像の説明を挿入します

仮想 IP ネットワークを構築する利点は、この仮想 IP ネットワーク上のホストが相互に通信するときに、それらが同じネットワーク上にあるように見えるため、異種ネットワークごとの具体的な違いや詳細を気にする必要がないことです。

4.2.3 ルーティングと転送

ルーティングの選択とパケット転送は、ルーターの 2 つの最も重要な機能です。

  • ルーティング

    複雑な分散アルゴリズムにより、各隣接ルータから得られるネットワーク全体のトポロジーの変化に基づいて、選択される経路が動的に変更されます。

    ルーターは特定のルーティング プロトコルに基づいてルーティング テーブルを構築し、隣接するルーターと定期的にルーティング情報を交換し、ルーティング テーブルを継続的に更新します。

  • パケット転送

    ルーターは、転送テーブルに従って、ユーザーの IP データグラムを正しいポートから転送します。

    ルーターは関連するデータ フローを処理し、その関連機能は、転送テーブルへのクエリ、データグラムの転送、キュー管理とタスク スケジューリングの実行などです。

ルーティング テーブルはルーティング アルゴリズムに基づいて計算され、フォワーディング テーブルはルーティング テーブルを通じて導出されます。ルーティング選択の原則を議論する場合、一般にフォワーディング テーブルとルーティング テーブルは特に区別されませんが、ルーティング テーブルはルーティング テーブルで使用されます。一般的な。

4.2.4 輻輳制御

4.2.4.1 輻輳の概要

通信サブネットにおいて、過剰なパケットによってネットワークのパフォーマンスが低下する現象を「輻輳」といいます。

例えば:

ルータ A があり、ルータが配置されているリンクの帯域幅が R(B/s)、IP パケットの受信に使用される受信ポートが 1 つだけあり、IP パケットの送信速度が r(B/ s). r= R の場合、リンクの帯域幅が完全に利用されていて、完全な状態であることを意味しますか? 答えは「いいえ」です。ルーターの受信ポートのバッファーには限りがあるためです。ルーターに到着するパケットのレートが R に近い場合、大量のパケットが破棄され、その結果、送信者から受信者までの平均遅延が発生します。無限に近づく。

パケット送信速度と遅延の関係を次の図に示します。

ここに画像の説明を挿入します

では、ネットワークが混雑しているかどうかをどのように判断すればよいのでしょうか?

ネットワーク スループットとネットワーク負荷の 2 つの指標を観察できます。ネットワーク負荷が増加するにつれてネットワーク スループットが通常のスループットより大幅に低下する場合、ネットワークは「軽度の輻輳」状態に入っている可能性があります。ネットワーク負荷が増加するにつれて、ネットワークは「軽度の輻輳」状態になることがあります。負荷が増加し、ネットワーク スループットが急激に低下すると、ネットワークは「重度の輻輳」状態になることがあります。ネットワーク負荷の増加に伴ってネットワーク スループットが 0 に低下すると、ネットワークは「重度の輻輳」状態になります。デッドロック状態。

4.2.4.2 輻輳制御により解決される課題と機能

輻輳制御とは、主にネットワーク内で発生する輻輳情報をどのように取得し、その情報を利用してパケットロスやデッドロックを回避するかを制御することです。

輻輳制御の役割は、ネットワークが受信したトラフィックを伝送するのに十分な容量を確保することです。

4.2.4.3 輻輳制御とフロー制御の違い

フロー制御とは、送信者と受信者間のポイントツーポイント通信の制御を指し、送信者がデータを送信する速度を抑制し、受信者が送信者によって送信されたデータを受信して​​処理するのに十分な時間を確保します。

輻輳制御は、通信サブネットが送信対象のデータを確実に送信できるようにすることであり、ネットワーク内のすべてのホストとルータ、およびネットワーク送信機能の低下を引き起こすすべての要因に関係する世界的な問題です。

つまり、フロー制御では両方のポイントツーポイント通信当事者のみを考慮する必要があるのに対し、輻輳制御では通信サブネット全体の送信能力に関連するすべての要素を考慮する必要があります。

4.2.4.4 輻輳制御方法

輻輳制御には、開ループ制御閉ループ制御という 2 つの一般的な方法があります。

  • オープンループ制御

    ネットワーク設計者は、ネットワークアーキテクチャを設計する際、輻輳の原因となる可能性のあるすべての要因を事前に考慮し、ネットワーク運用中の輻輳を回避するよう努める必要があります。これは静的メソッドであり、システムの実行後に変更することはできません。

  • 閉ループ制御

    ネットワーク設計者は、ネットワークを設計するときに輻輳に関連する要因を考慮する必要はありませんが、代わりにネットワーク検出システムを使用して、ネットワークがいつ実行されているかを検出します。これは、システムの実行中に輻輳情報を収集し、それに応じて処理する静的なメソッドです。

4.2.5 SDN関連の概念

ネットワーク層の主なタスクは転送とルーティングですが、ネットワーク層を制御レベルデータ レベルの2 つのレベルに抽象化します。

このうち、制御層はルーティング機能を実装しデータ層は転送機能を実装します

4.2.5.1 SDNとは

近年、新しいタイプのネットワーク アーキテクチャであるソフトウェア デファインド ネットワーク (SDN) が登場しました。これは、集中制御層と分散データ層を使用して、制御層とデータ層を分離しています。制御層は、データ上のルーターへのインターフェイスを使用します。飛行機は集中制御を行います。

ここに画像の説明を挿入します

4.2.5.2 SDN と従来のインターネットの違い

従来のインターネットでは、ルータには転送テーブルとルーティング ソフトウェアの両方が搭載されており、各ルータは相互にルーティング情報を交換します。

SDN アーキテクチャでは、ルーターは相互にルーティング情報を交換しなくなり、制御レベルに論理リモート コントローラーがあり、各ホストとネットワーク全体の状態を把握し、グループごとに最適なルートを計算し、Openflow を通過します。プロトコルは転送テーブルを各ルータに配信します。ルータはパケットの受信転送テーブルの検索、およびパケットの転送を行うだけです。

4.2.5.3 SDN の長所と短所
  • アドバンテージ
    1. SDN はプログラム可能であり、そのプログラミング インターフェイスはノースバウンド インターフェイスと呼ばれ、開発者がこれらのインターフェイスを通じてアプリケーションを開発できるように一連の API を提供します。
    2. グローバル集中制御と分散型高速転送により、制御層をグローバルに最適化できます。
  • 欠点がある
    1. コントロール プレーンは (全体として) 集中管理されているため、セキュリティ リスクがあり、コントロール プレーンが攻撃されて崩壊すると、ネットワーク全体が影響を受けます。
    2. コントロールプレーンは集中管理されているため、ネットワーク規模が拡大すると、コントローラーがネットワーク全体の性能のボトルネックになる可能性があります。

4.3 ルーティングアルゴリズム

4.3.1 ルーティングアルゴリズムとは

ネットワーク層では、ルーターはルーティング テーブルに基づいてパケットを転送します。ルーティング テーブルは、ネットワークのトポロジー ステータスに基づいて制御層によって計算されます。この計算処理で使用されるアルゴリズムをルーティング アルゴリズムと呼びます。

4.3.2 理想的なルーティングアルゴリズム

理想的なルーティング アルゴリズムには次の特徴があります。

  • アルゴリズムは正確かつ完全でなければなりません。

  • アルゴリズムは計算的に単純である必要があります。

  • アルゴリズムは、トラフィック量とネットワーク トポロジの変化に適応できる必要があります。つまり、適応性がある必要があります。

  • アルゴリズムは安定している必要があります。

  • アルゴリズムは公平でなければなりません。

  • アルゴリズムは最適である必要があります。

    注: ここでのいわゆる「最善」とは、絶対的な最善ではなく、特定の要件に基づいたより合理的な選択を指します。配線は非常に複雑な問題であるため、絶対に最適な配線アルゴリズムは存在しませんが、実際の作業では、アルゴリズムを可能な限り理想に近づける必要があります。

4.3.3 ルーティングアルゴリズムの分類

ルーティング アルゴリズムは、静的ルーティング アルゴリズム動的ルーティング アルゴリズムの2 つのカテゴリに分類されます

  • スタティックルーティングアルゴリズム(非適応ルーティングアルゴリズム)

    静的ルーティング アルゴリズムとは、ネットワーク管理者が手動で設定したルーティング情報を指します。

    利点: シンプルで信頼性が高く、負荷が安定しトポロジーの変化が少ないネットワークでうまく機能し、安全性の高い軍事ネットワークや小規模な商用ネットワークで広く使用できます。

    欠点: ルートの更新が遅く、大規模なネットワークには適していません。

  • 動的ルーティングアルゴリズム(適応ルーティングアルゴリズム)

    動的ルーティング アルゴリズムとは、ルーター間で情報を交換することにより、ルーターのルーティング テーブルのエントリが特定のアルゴリズムに従って最適化されることを意味します。7

    利点: ルート更新は高速で大規模ネットワークに適しており、リンク コストやネットワーク トポロジの変化にタイムリーに対応できます。

    短所: アルゴリズムが複雑で、ネットワークへの負担が増加します。

    動的ルーティング アルゴリズムは、距離ベクトル ルーティング アルゴリズムリンクステート ルーティング アルゴリズムの2 つのカテゴリにさらに分類できます。

4.3.4 距離ベクトルルーティングアルゴリズム

距離ベクトル ルーティング アルゴリズムでは、すべてのノードが直接接続されているルータールーティング テーブル全体の情報を定期的に交換します

ルーティング テーブルには、各経路の宛先と経路のコスト (距離) の 2 種類の情報が含まれています。

このアルゴリズムの各ノードは、次の状況下でルーティング テーブルを更新します。

  • ノードのルーティング テーブルに存在しない新しいルーティング情報を別のノードから受信すると、ルーターはそのルーティング情報をローカル ルーティング テーブルに追加します。
  • 他のノードが、ある宛先ノードに送信した経路情報を受信した場合、その宛先ノードへの経路情報は既にそのノードのルーティングテーブルに存在しており、新たに受信した経路情報のコストが小さい場合、ルータは、は、この新しいルーティング情報を使用して、宛先ノードへの元のルーティング情報を置き換えます。

距離ベクトル ルーティング アルゴリズムの本質は、特定の宛先ノードへのルーティング情報を継続的に反復し、それによって宛先ノードへの最短 (最小コスト) のルーティング情報を取得することです。距離ベクトル ルーティング アルゴリズムを使用する最も一般的なプロトコルはRIP プロトコルです。これについては、次のセクションで詳しく説明します。

  • 短所: 隣接するルーターは毎回ルーターのルーティング テーブル全体を交換するため、交換されるメッセージのサイズは通信サブネット内のノードの数に比例するため、距離ベクトル ルーティング アルゴリズムは大規模なネットワークには適していません (ノードが多いと、毎回交換されるメッセージ情報が非常に膨大になります)。

4.3.5 リンクステートルーティングアルゴリズム

リンク ステート ルーティング アルゴリズムでは、すべてのノードがネットワーク全体のトポロジ情報を持っています。各ノードはすべての隣接ノードのステータス(まだ接続できるかどうか) をアクティブにテストし、これらのリンク ステータスを他のすべてのノードに定期的に伝達します。

リンク ステータス メッセージがノードに到着するたびに、ノードはこのステータス情報を使用してネットワーク トポロジとステータス テーブルを更新します。リンク ステータスが変化すると、ノードはダイクストラ最短パス アルゴリズムを使用して到着時間を再計算します。他のすべてのノード。

リンク ステート ルーティング アルゴリズムの主な機能は次のとおりです。

  • フラッディングを使用して、現在の自律システム内の他のすべてのルーターにリンク状態情報を送信します。

    ルーター A はすべての隣接ルーターに情報を送信し、その後すべての隣接ルーターはすべての隣接ルーター (ルーター A を除く) にこの情報を送信し続けます。

  • 各ノードから送信される情報は、ノードに隣接するルータのリンク状態です。

  • ルーターは、リンクのステータスが変化した場合にのみ、この情報を他のすべてのルーターに送信します。

上記の特性から、リンクステート ルーティング アルゴリズムによって交換されるパケットは、隣接ルーターの数にのみ関係し、ネットワーク全体のノードの数とは関係がないことがわかります。大規模なネットワークに適していますリンク ステート ルーティング アルゴリズムを使用する最も一般的なプロトコルはOSPF プロトコルです。これについては、次のセクションで詳しく説明します。

距離ベクトルルーティングアルゴリズムとの違い

  • 距離ベクトル ルーティング アルゴリズムでは、各ノードは隣接ノードとのみメッセージを交換し、ネットワーク内の他のすべてのノードへの自身からの最小コスト推定値を隣接ノードに提供します。リンクステート ルーティング アルゴリズムでは、各ノードはブロードキャストを通じて他のすべてのノードとメッセージを交換し、ノードに直接接続されているノードのリンク コストのみを伝えます。
  • リンク ステート ルーティング アルゴリズムで交換されるメッセージは、ネットワーク全体のサイズとは無関係であり、大規模なネットワークに適しています。距離ベクトル ルーティング アルゴリズムで交換されるメッセージは、ネットワーク全体のノード数に比例し、小規模なネットワークに適しています。

4.4 IPv4プロトコル

IPv4 プロトコルは現在広く使用されている IP プロトコル (バージョン 4)

4.4.1 IPv4 データグラム形式

IP データグラムはヘッダーとデータ部で構成されており、ヘッダーが最初、データ部がヘッダーの後に続き、ヘッダーは 2 つの部分に分かれており、前者は固定 20B、後者は可変部分です。 IP データグラムにはヘッダーと固定部分が含まれている必要があります。IP データグラムのフォーマットを次の図に示します。

ここに画像の説明を挿入します

上図の各フィールドの意味は次のとおりです。

  • バージョン: IP プロトコルのバージョン番号を指します。このフィールドは、IPv4 プロトコルの場合は 4、IPv6 プロトコルの場合は 6 です。
  • ヘッダ長:4 ビットを占有し、表現可能な最大値は 15 単位(1 単位は 4 バイト)であるため、IP ヘッダ長の最大値は 60 バイトになります。
  • Differentiated Services: 8 ビットを占有し、このフィールドは通常は使用されません。
  • 全長: 16 ビット。ヘッダーとデータの長さをバイト単位で示します。したがって、データグラムの最大長は 65535 バイトです。上の章の説明から、イーサネット フレームの最大伝送単位 (MTU) は 1500B であることがわかりました。したがって、IP データグラムをフレームにカプセル化する場合、合計の長さは 1500B を超えることはできません。データグラムは断片化されます。IP データグラムのフラグメンテーションについては、後続のセクションで詳しく説明します。
  • 識別: 16 ビット、これはカウンターであり、このフィールドはデータグラムが生成されるたびに 1 ずつ増加します。ただし、これは「シーケンス番号」ではありません (IP はコネクションレス型サービスです) データグラムの長さが MTU を超えると断片化されます。このとき、各データグラムが識別できるように、各データ フラグメントに識別番号がコピーされます。フラグメントは正しい IP データグラムに再構築されます。
  • フラグ: 3 ビットを占めます。フラグ フィールドの最下位ビットは MF です。MF が 1 の場合は、さらにフラグメントが続くことを意味します。MF が 0 の場合、これが最後のフラグメントであることを意味します。フラグ フィールドの中間ビットは DF であり、断片化は DF が 0 の場合にのみ許可されます。
  • フラグメント オフセット: 13 ビット。IP データグラムがフラグメント化された後の、元のデータグラム内の特定のフラグメントの相対位置を指します。フラグメント オフセットは 8 バイト オフセット単位で、最後のフラグメントを除き、他のすべてのフラグメントの長さは 8 バイトの整数倍です。
  • Time to Live (TTL): 8 ビットで、データグラムがネットワーク内を通過できるルーターの最大数を示し、ネットワーク内でのデータグラムの寿命を識別し、データグラムがネットワーク内を循環しないようにするために使用されます。永遠に。データグラムがルーターを通過するたびに、このフィールドは 1 ずつ減ります。TTL が 0 の場合、ルーターはデータグラムを破棄します。
  • プロトコル: データグラムで伝送されるデータがどの上位層プロトコル (TCP/UDP) を使用しているかを示す 8 ビットを占め、6 の場合は TCP、17 の場合は UDP を意味します。
  • ヘッダー チェックサム: 16 ビット、データグラムのヘッダーを検証するためにのみ使用されます。
  • 送信元アドレス: 送信者の IP アドレスを示す 4 ビット。
  • 宛先アドレス: 受信者の IP アドレスを示す 4 ビット。

4.4.2 IP データグラムの断片化

  • なぜシャーディングが必要なのでしょうか?

    これまでの研究により、ネットワーク層の IP データグラム内のデータは、送信のためにリンク層のフレームにカプセル化する必要があることがすでにわかっています。リンク層には厳しい MTU 制限があるため、IP データグラムの長さがリンク層のMTUを超える場合、IP データグラム内のデータを複数の小さな IP データグラムに分割する必要があります。小さなデータグラムはフラグメントと呼ばれます。

  • 断片化後にターゲットホストに正しく再インストールするにはどうすればよいですか?

    宛先ホストでは、各 IP データグラムのヘッダーにある識別子、フラグ、およびフラグメント オフセット フィールドを通じて再組み立てが実行されます。

    ネットワーク層が IP データグラムを作成するとき、ソース ホストはデータグラムに識別番号を追加します。ルーターがデータグラムを断片化する必要がある場合は、形成されたそれぞれの小さなデータグラムが元のデータグラムの識別番号をコピーします。ターゲット ホストが同じホストから送信されたデータグラムの同じバッチを受信すると、これらのデータグラムの識別番号によってそれらをグループ化できます。

    IP ヘッダーには 3 つのフラグ ビットがありますが、意味があるのは最後の 2 ビット、MF ビットと DF ビットだけであり、DF が 0 の場合にのみ IP データグラムをフラグメント化できます。MF ビットは、この IP データグラムが元のデータグラムの最後のフラグメントであるかどうかをターゲット ホストに伝えるために使用されます。0 の場合は最後のフラグメントであることを意味し、1 の場合は後続のフラグメントがあることを意味します。

4.4.3 IPv4アドレス

4.4.3.1 IPアドレスの定義

注: この章では、IPv4 アドレスを指すために IP アドレスを使用します。

IP アドレスは、世界中で一意の 32 ビットの識別子であり、インターネットに接続されている各ホスト (またはルーター) に割り当てられますIP アドレスは現在、ICANN (Internet Corporation for Assigned Names and Numbers)によって割り当てられています。

4.4.3.2 IPアドレスの発展の歴史

インターネットにおける IP アドレスの発展の歴史は、次の 3 つの段階に分かれています。

  • 機密 IP アドレス。これは最も基本的なアドレス指定方法であり、対応する標準プロトコルが 1981 年に採用されました。
  • サブネットの分割。これは最も基本的なアドレス指定方法を改良したもので、標準 [RFC 950] が 1985 年に採用されました。
  • スーパーネットを構成します。これは、比較的新しい分類なしアドレス指定 (CIDR) 方式です。1993 年に提案されてからすぐに普及し、適用されました。
4.4.3.3 分類された IP アドレス

初期のインターネットでは、IP アドレスを分類する方法が使用されており、IP アドレスは 5 つのカテゴリ (A|B|C|D|E) に分類されていました。この方法でアドレス指定される IP アドレスは、ネットワーク番号ホスト番号の 2 つの部分で構成されます。ネットワーク番号は、ホスト (またはルータ) が接続されているネットワークを表し、各ホスト番号はインターネット全体で一意である必要があり、ホスト (またはルータ) を表します。したがって、IP アドレスはインターネット全体で一意です。

5種類のアドレスと、それぞれのホスト番号およびネットワーク番号の桁数を次の図に示します。

ここに画像の説明を挿入します

分類された IP アドレスの中には、比較的特殊な IP アドレスがあり、これらの IP アドレスはホストの IP アドレスとして使用されません。詳細は下表のとおりです。

ネットワーク番号 ホスト番号 送信元アドレスとして 宛先アドレスとして 意味
すべて0 すべて0 できる できない (0.0.0.0) は、このネットワーク上のホストを示します
すべて0 ホストID できる できない このネットワーク上のホストのホスト ID
全部1 全部1 できない できる TCP/IPネットワーク全体のブロードキャストアドレスを表します。
ネットID 全部1 できない できる net-id ネットワーク上のブロードキャスト アドレスを表します。
127 すべて0またはすべて1ではない任意の数値 できる できる 任意のホスト自体を表すループバック セルフテスト アドレス

注記:

ネットワーク番号とホスト番号がすべて 1 (255.255.255.255) の場合、TCP/IP ネットワーク全体のブロードキャスト アドレスを表しますが、ルーターによってブロードキャスト ドメインが分離されているため、このアドレスは基本的にブロードキャストと同等になります。このネットワークのアドレス。

宛先アドレスがループバック セルフテスト アドレス 127.xxx である IP データグラムは、どのネットワークにも表示されずローカル ソフトウェアのテストにのみ使用されます

分類された IP アドレスの特徴:

  • IP アドレスはネットワーク番号とホスト番号の 2 つの部分から構成されており、階層的なアドレス構造になっています。

    グレーディングの利点:

    • IPアドレス管理機関はIPアドレスを割り当てる際にネットワーク番号のみを割り当て、残りのホスト番号はネットワーク番号を取得する装置が割り当てます。これにより、IP アドレスの管理が容易になります。
    • ルーターは、 (宛先ホスト番号を考慮せずに) 宛先ホストが接続されているネットワーク番号に基づいてパケットのみを転送するため、ルーティング テーブルの項目数が大幅に削減され、ルーティング テーブルが占有する記憶領域が削減されます。
  • IP アドレスは、ホスト (またはルーター) とリンクのインターフェイスを識別します。ホストが 2 つのネットワークに同時に接続する場合、ホストは同時に 2 つの IP アドレスを持っている必要があり、2 つの IP アドレスのネットワーク番号は、それらが配置されているネットワークのネットワーク番号と同じである必要があります。 2 つの IP アドレスのネットワーク番号は相互に排他的であり、同じではありません。

  • IP アドレスには、ネットワークの番号と同じネットワーク番号が割り当てられます。

  • 同一 LAN 上のホストの IP アドレスのネットワーク番号は同じである必要があります。

4.4.3.4 サブネット化
  • なぜサブネット化するのでしょうか?

    2 レベルの IP アドレスには、2 つの重大な欠点があります。それは、IP アドレス空間の使用率が非常に低い場合があることと、柔軟性が十分ではないことです。

    たとえば、次のような企業です。したがって、現時点ではスペースの無駄が生じています。(なぜこの企業はクラスCネットワークを直接申請できないのでしょうか?これは、企業が将来的に大規模な開発の可能性を考慮しているためと考えられます。クラスCネットワークを申請した場合、さらに発展した場合、クラスCネットワークは、 C ネットワークだけでは不十分です。クラス B ネットワークにアップグレードするのはさらに複雑なので、会社は申請時にクラス B ネットワークを申請しました)。

    このことから、IP アドレスのスペース使用率が非常に低く、柔軟性が十分でない場合があることがわかります。

    そこで、この問題を解決するために、1985年からIPアドレスに「サブネット番号フィールド」を1つだけ追加できるようになり、2層のIPアドレスが3層のIPアドレスに、つまりサブネットが分割されるようになりました。

  • サブネット化の基本的な考え方

    1. サブネット化は特定のユニット内の内部の問題であり、そのユニットは外部からはサブネットのないネットワークとして見えます。

    2. ホスト番号からいくつかのビットをサブネット番号として借用します。つまり、第 3 レベルの IP アドレスの構造は次のようになります: {<ネットワーク番号>, <サブネット番号>, <ホスト番号>}

      ここに画像の説明を挿入します

    3. 他のネットワークからユニット内のホストにデータが送信された場合でも、まずデータの宛先ネットワーク番号に基づいてユニットのネットワークに接続されているルーターが検索され、次にルーターは宛先ネットワーク番号とサブネット番号に基づいて宛先サブネットを検索します。最後に、データグラムは宛先ホストに転送されます。

      知らせ:

      サブネット化は、IP アドレスのホスト番号をさらに分割するだけであり、IP アドレスのネットワーク番号は変更されません。したがって、IP アドレス自体からはサブネット化が行われているかどうかを判断することはできません。

    質問と回答:

    ここでは、企業 X がネットワーク番号を申請して IP アドレス空間を無駄に使用するという前述の問題が、なぜサブネットを分割することで解決できるのかという疑問に答えてみましょう。企業の実際のホスト数に基づいて、クラス B ネットワーク番号をいくつかの小さなサブネットにさらに分割できます。これらのサブネットは、Enterprise X と同じ規模の複数の企業に割り当てることができるため、IP アドレスのスペース使用率が向上します。

  • サブネットマスク

    サブネット マスクは、ネットワークがサブネットに分割されていることをホストまたはルーターに伝えるために使用されます。

    サブネット マスクは、IP アドレスに対応する 32 ビットのバイナリ文字列で、1 の文字列とその後に続く 0 の文字列で構成されます。このうち、1はIPアドレスのネットワーク番号とサブネット番号に対応し、0はホスト番号に対応します。IP アドレスとそれに対応するサブネット マスクに対して「AND」演算を少しずつ実行するだけで、対応するサブネットのネットワーク アドレスを取得できます。

    例: 特定のホストの IP アドレスは 192.168.5.56 で、サブネット マスクは 255.255.255.0 です。ビットごとの「AND」演算の後、ホストによって記述されたネットワークのネットワーク番号は 192.168.5.0 であると結論付けることができます。

    現在のインターネット標準では、すべてのネットワークで サブネット マスク を使用する必要があると規定されている、つまり、サブネット マスクがインターネットの標準仕様になっていることに言及する価値があります。

    ネットワークがサブネット化されていない場合は、デフォルトのサブネット マスクが使用されます。

    クラス A ネットワークのデフォルトのサブネット マスクは 255.0.0.0 です。

    クラス B ネットワークのデフォルトのサブネット マスクは 255.255.0.0 です。

    クラス C ネットワークのデフォルトのサブネット マスクは 255.255.255.0 です。

    すべてのネットワークにはサブネットマスクがあるため、インターネット上のルーター同士は、経路情報を交換する際に、宛先ネットワークやルーティングテーブルの各項目に加えて、所属するネットワークのサブネットマスクも通知しなければなりません。ネクスト ホップ アドレスに加え、宛先ネットワークのサブネット マスクも含まれます。

    要約すると、ネットワークが契約に従ってサブネット マスクを使用すると、次のような状況が発生します。

    1. ホストの IP アドレスを設定するときは、サブネット マスクを設定する必要があります (デフォルトのサブネット マスクの場合があります)。
    2. 同じサブネットに属するすべてのホスト (またはルーター) の対応するポートは、同じサブネット マスクに設定する必要があります。
    3. ルーターのルーティング テーブルには、宛先ネットワーク アドレス、ネクスト ホップ アドレス、および宛先ネットワークのサブネット マスクが含まれている必要があります。
4.4.3.5 CIDR
  • CIDRとは

    CIDRとは、Classless Inter-Domain Routingの英語略称で、可変長のサブネットマスクをベースに提案されており、従来のクラスA、B、Cのネットワーク分割をなくし、ソフトウェア支援でスーパーネット構築を実現できる方式です。 IPアドレスの分割について。

    CIDRは、サブネットの概念に代わって「ネットワークプレフィックス」の概念を使用します。従来の分類されたIPアドレスとの最大の違いは、ネットワークプレフィックスの桁数が固定されず、任意に選択できることです。 CIDR の使用は * *{<ネットワーク プレフィックス>,<ホスト番号>}** として記録されます。

    ここに画像の説明を挿入します

    CIDR は、CIDR 表記とも呼ばれる「スラッシュ表記」を使用します。つまり、IP アドレスにスラッシュ「/」を追加し、ネットワーク プレフィックスが占める桁数を書き込みます (この値は、IP アドレスの 1 の数に対応します)。レベル 3 アドレッシングのサブネット マスク)。CIDR は、同じネットワーク プレフィックスを持つ連続する IP アドレスを「CIDR アドレス ブロック」に結合します。CIDR アドレス ブロックは多くのアドレスを表すことができ、そのようなアドレスの集約はルート集約と呼ばれ、スーパーネットを形成します

    たとえば、128.14.32.0/20 で表されるアドレス ブロックには、合計 212 個のアドレスがあります (スラッシュの後の 20 はネットワーク プレフィックスの桁数であるため、このアドレスのホスト番号は 12 桁になります)。このアドレスから次の結論が導き出されます。

    • このアドレス ブロックの開始アドレスは 128.14.32.0 です。
    • アドレスブロックの開始アドレスを示す必要がない場合、このようなアドレスブロックを略して「/20アドレスブロック」と呼ぶこともある。
    • 128.14.32.0/20 アドレス ブロックの最小アドレス: 128.14.32.0
    • 128.14.32.0/20アドレスブロックの最大アドレス:128.14.47.255
    • すべて 0 またはすべて 1 のホスト番号アドレスは通常は使用されません。
  • CIDRを使用する理由

    インターネットの発展に伴い、世界中のネットワーク機器がインターネットに接続されるようになり、1992 年にはクラス B アドレスがほぼすべて割り当てられ、この時点でクラス B アドレスのルーティング テーブル エントリも非常に多くなりました。大きくて維持が難しい。したがって、IP アドレス不足の問題をさらに解決するために、IP アドレス指定に CIDR を使用し始めました。

  • CIDR 最長一致ルール

    CIDR を使用する場合、ルーティング テーブルの各エントリは「ネットワーク プレフィックス」と「ネクスト ホップ アドレス」で構成され、ルーターがルーティング テーブルを検索すると、複数の一致が得られることがあります (ネットワークとのビットごと)。 (ルーティング テーブルのマスク)。「AND」演算)、この場合、ネットワーク プレフィックスが長いほどアドレス ブロックが小さくなり、より具体的になるため、最も長いネットワーク プレフィックスを持つルートが一致結果から選択される必要があります。ルート。

    たとえば、ルーターが受信したパケットの宛先アドレスが 206.0.71.130 の場合、ルーティング テーブルには 206.0.68.0/22 と 206.0.71.128/25 の 2 つのエントリがあります。

    206.0.71.130 をドット付き 10 進数に変換 =11001110 00000000 01000111 10000010 (D として記録)

    206.0.68.0/22のアドレスマスクをドット10進数に変換 =11111111 11111111 11111100 00000000 (Aとして記録)

    206.0.71.128/25 のアドレス マスクはドット 10 進数に変換されます =11111111 11111111 11111111 10000000 (B として記録されます)

    D と A および B に対してそれぞれビット単位の AND 演算を実行します。

    D AND A = 11001110 00000000 01000100 00000000 = 206.0.68.0/22 (アドレス ブロック A と一致、ネットワーク プレフィックスの桁数は A と一致し、22 としても記録されます)、この時点でターゲット アドレスは 206.0.68.0/ と一致します。 22.

    D AND B = 11001110 00000000 01000111 10000000 = 206.0.71.128/25 このとき、宛先アドレスも 206.0.71.128/25 と一致します。

    2 番目のエントリのプレフィックスは最初のエントリのプレフィックスより長いため、ルータは 2 番目のエントリを選択します。

  • CIDRの二分探索

    ルーティングテーブルの項目数が多い場合、ルーティングテーブルの検索時間をいかに短縮するかが非常に重要な問題となりますが、より効率的な検索を行うために、通常、アドレス指定が未分類のルーティングテーブルは階層構造で格納されます。 . データ構造内で上から下へ階層的に検索します。ここで最も一般的に使用されるのは、バイナリ手がかりです。

    IP アドレスの左から右のビット値によって、ルート ノードから下位層までのパスが層ごとに決定され、バイナリ キュー内の各パスがルーティング テーブルに格納されている各アドレスを表します。バイナリ手がかりの検索速度を向上させるために、さまざまな圧縮技術が広く使用されています。

4.4.4 ネットワーク層でのパケット転送プロセス

IP アドレスのさまざまなアドレス指定方法を学習した後は、ネットワーク層でパケットがどのように転送されるかを学習します

4.4.4.1 ネットワーク層転送とリンク層転送の違い

データリンク層では、データはスイッチを介して転送され、スイッチはデータリンク層のフレームを MAC アドレスに基づいて特定のインターフェイスに転送しますが、ネットワーク層では、インターネット上のネットワークの数はその数よりはるかに少ないため、ホストのネットワーク層 パケット転送は、宛先ホストが存在するネットワークに基づいて行われますパケットがルーターに到達すると、ルーターは宛先 IP アドレスのネットワーク プレフィックスに基づいて転送テーブルを検索し、次のホップがどのルーターに送信されるかを決定します。IP データグラムが最後のルーターに到達すると、ルーターはそれを宛先ホストに直接配信しようとします。

4.4.4.2 CIDR アドレス指定を使用する場合の特別な処理

CIDR アドレス指定が使用されている場合、転送テーブルのクエリを高速化するために、ルーターはプレフィックスの長さに応じて最も長いプレフィックスを最初に配置します。一致が成功した場合は、後続のエントリを一致させる必要はありません。(最長プレフィックス マッチング ルールであるため)

4.4.4.3 特別なルーティング

転送テーブルには、2 つの特別なルートがあります。

  • ホストルーティング

    特定の宛先ホストの IP アドレスへのルートを専用にすると、管理者によるネットワークの制御とテストが容易になります。

  • デフォルトルート

    デフォルト ルートを表すには、特別なプレフィックス 0.0.0.0/0 を使用します。すべて 0 のマスクと任意の宛先アドレスを使用して、ビットごとの「AND」演算を実行します。結果は 0 である必要があります。つまり、すべての宛先アドレスがデフォルト ルートと一致する必要があります。宛先ネットワークが転送テーブルにない限り、デフォルト ルートが選択されます。

4.4.4.4 ネットワーク層パケット転送アルゴリズム

上記のセクションの概要から、ルーターによって実行されるパケット転送アルゴリズムは次のように要約できます。

  1. ルーターは、受信した IP パケットのヘッダーから宛先ホスト (D とマーク) の IP アドレスを抽出します。
  2. アドレス D に基づいて特定のホスト ルートを検索します。見つかった場合は、ルートのネクスト ホップに従ってパケットを転送します。見つからない場合は、転送テーブル (ネットワーク プレフィックスの長さでソート) の次のホップからチェックを開始し、ステップ 3 に進みます。
  3. この行のサブネット マスクと宛先アドレスDに対してビット単位の AND 演算を実行します。操作結果がこの行のプレフィックスと一致する場合、一致は成功し、パケットは行のネクスト ホップに従って転送されます (または、このネットワーク内の宛先ホストに直接配信されます)。一致しない場合は、次のホップが行われます。行がチェックされ、次のエントリ行が存在しない場合は、宛先ネットワークが転送テーブルに存在しないことを意味し、ステップ 4 が実行されます。
  4. 転送テーブルにデフォルト ルートがある場合は、パケットをデフォルト ルートに転送します。それ以外の場合は、パケット転送時にエラーを報告します。

知らせ:

  • 転送テーブルは、特定のネットワークへの完全なパスを指定するのではなく、宛先ネットワークへのネクスト ホップ アドレスのみを指定します。パケットがネクスト ホップ ルータに到達すると、引き続き転送テーブルを検索してネクスト ホップ アドレスを見つけます。これは、段階的に転送を繰り返すことによってのみ、最終的に宛先ネットワークに到達することができます。
  • ルータはネクストホップルートのIPアドレスを取得する際、送信するデータグラムに直接アドレスを記入するのではなく、IPアドレスをMACアドレスに変換し、MACフレームヘッダーに入れて、次に、この MAC アドレスに基づいてネクスト ホップ ルーターを検索します。(つまり、ネットワーク層がネクストホップルーターを見つけた後、データをリンク層に転送します)

4.4.5 ARP、DHCP、および ICMP

4.4.5.1 IP アドレスとハードウェア アドレス

IP アドレスはハードウェア アドレスとは異なります。

  • 層の観点から見ると、IP アドレスはネットワーク層で使用されるアドレスであり、ハードウェア アドレスはデータリンク層と物理層で使用されるアドレスです。

ここに画像の説明を挿入します

  • IP アドレスは IP データグラムのヘッダーに配置され、ハードウェア アドレスは MAC フレームのヘッダーに配置されます。フレーム カプセル化により、IP データグラム パケットが MAC フレームにカプセル化された後、データ リンク層は「見えなくなります」データグラム パケット内の IP アドレス。つまり、ネットワーク層は MAC アドレスを認識できず、データリンク層は IP アドレスを認識できません

  • IP パケットをルーター経由で転送する場合、IP パケットは各ネットワークのルーターによってカプセル化解除および再カプセル化され、MAC フレーム ヘッダーの送信元アドレスと宛先アドレスは常に変化します。

  • 相互接続されたネットワークのハードウェア アドレス システムは異なりますが、インターネットの IP 層の抽象化により、下位層の複雑な詳細が保護されます。ネットワーク層で問題を議論する限り、統一された抽象的な IP アドレスを使用して研究することができます。ホストとホストまたはルーター間の通信。

    ルーターは複数のネットワークを相互接続するため、ルーターは複数の IP アドレスだけでなく、複数の MAC アドレスも持ちます。

4.4.5.2 ARP
  • ARPとは

    ARP は、Address Resolution Protocolの英語の略語で、IP アドレスを MAC アドレスにマッピングするために使用されるプロトコルです。各ホストには、ローカル エリア ネットワーク上の各ホストおよびルーターの IP アドレスから MAC アドレスへのマッピング テーブルを保存する ARP キャッシュがあります。このマッピング テーブルは ARP テーブルと呼ばれます。各ホストおよびルーターは、ARP プロトコルを使用して、 ARP テーブルを動的に維持します。

    ARP エントリの構造: <IP アドレス、MAC アドレス、TTL>

    TTLは有効時間を表します

  • ARPを使用する理由

    前の章からわかるように、ネットワーク層がパケットを転送するとき、宛先 IP アドレスを通じてネクスト ホップ ルーターの IP アドレスを見つけた後、IP データグラムを MAC フレームにカプセル化し、データグラムに渡します。パケットの送信を継続するには、リンク層を使用します。MAC フレームのグループ化とカプセル化のプロセスでは、宛先 MAC アドレスを知っている必要があります。したがって、ネクストホップ ルーターの IP アドレスを対応する MAC に変換する方法が必要です。住所を確認してくださいそこでARPがあります。

  • ARP の仕組み

    • ホスト A がローカル エリア ネットワーク上のホスト B に IP データグラムを送信したい場合、ホスト A はまず ARP キャッシュにホスト B の IP アドレスがあるかどうかを確認します。

    • その場合は、対応するハードウェア アドレスを見つけて、このハードウェア アドレスを MAC フレームに書き込み、LAN 経由で MAC フレームをこのハードウェア アドレスに送信します。

    • そうでない場合、ARP プロセスはローカル エリア ネットワーク上で ARP 要求パケットをブロードキャストします。ARP 応答パケットを受信した後、取得した IP アドレスとハードウェア アドレスのマッピングが ARP キャッシュに書き込まれ、照会された MAC アドレスに従って MAC フレームが送信されます。

      ARP 要求パケット (ブロードキャスト送信) : 送信者のハードウェア アドレス/送信者の IP アドレス/ターゲットのハードウェア アドレス (不明の場合は 0 を記入)/ターゲットの IP アドレスが含まれます。

      ARP応答パケット(ユニキャスト送信):送信元ハードウェアアドレス/送信元IPアドレス/ターゲットハードウェアアドレス/ターゲットIPアドレスが含まれます。

    :

    ARP は、同じ LAN 上のホストまたはルーターの IP アドレスと MAC アドレス間のマッピングの問題を解決するために使用されます探しているホストと送信元ホストが同じ LAN 内にない場合は、ARP を通じてローカル エリア ネットワーク内にある別のルーターのハードウェア アドレスを見つけ、そのルーターにパケットを転送してから、そのパケットを次のルーターに転送する必要があります。次のネットワークに移動し、引き続き ARP を使用して次のネットワーク内のターゲット ルータを見つけます。

  • ARP の 4 つの典型的なシナリオ

    次に、例を使用して、ARP を使用するときに遭遇する可能性のある 4 つの古典的なシナリオを説明します。現在、次の図に示すようなネットワーク状況があります。

    ここに画像の説明を挿入します

    • 送信者はホスト (H1) で、このネットワーク (ネットワーク 1) 上の別のホスト (H2) に IP データグラムを送信したいと考えています。このとき、ARP を使用して、このネットワーク (ネットワーク 1) 上の宛先ホスト (H2) のハードウェア アドレスを見つけます。
    • 送信者はホスト (H1) で、別のネットワーク (ネットワーク 2) 上のホスト H3 に IP データグラムを送信したいと考えています。このとき、ARP を使用して、このネットワーク (ネットワーク 1) 上のルーター (R1) のハードウェア アドレスを見つけます。残りの作業はこのルーター (R1) によって実行されます。
    • 送信者はルーター (R1) で、IP データグラムをこのネットワーク (ネットワーク 2) 上のホスト (H3) に転送したいと考えています。このとき、ARP を使用して、このネットワーク (ネットワーク 2) 上の宛先ホスト (H3) のハードウェア アドレスを見つけます。
    • 送信者は、IP データグラムを別のネットワーク (ネットワーク 3) 上のホスト (H4) に転送するルーター (R1) です。このとき、ARP を使用して、このネットワーク (ネットワーク 2) 上の別のルータ (R2) のハードウェア アドレスを見つけます。残りの作業はこのルーター (R2) によって実行されます。

    ARP はユーザーに対して透過的であり、ARP 解決プロセスは自動的に実行されます。ホストまたはルーターがネットワーク上の既知の IP アドレスを持つ別のホストまたはルーターと通信している限り、ARP は自動的に実行され、IP アドレスを解決します。 Macアドレス。

    では、通信に MAC アドレスを使用すればよいのではないでしょうか?

    これは、世界中にさまざまなネットワークがあり、使用するハードウェア アドレスが異なるためです。これらの異種ネットワークが相互に通信できるようにするには、非常に複雑なハードウェア アドレス変換を実行する必要があるため、それはほとんど不可能です。IP アドレス指定は、この複雑な問題を解決します。インターネットに接続されたホストは、それぞれ固有の IP アドレスを持つだけでよく、 ARP を呼び出す上記の複雑なプロセスがコンピュータ ソフトウェアによって自動的に実行されるため、ホスト間の通信は、あたかも同じネットワークに接続されているかのように簡単で便利です。この呼び出しプロセスはユーザーには見えません。したがって、仮想 IP ネットワーク上の通信に IP アドレスを使用すると、大多数のコンピュータ ユーザーに大きな利便性がもたらされます。

4.4.5.3 DHCP
  • IPアドレスをホストに割り当てる方法

    現在、ホストに IP アドレスを割り当てる方法は 2 つあり、1 つは静的、もう 1 つは動的です。

    静的方法とは、ネットワーク管理者が現在のネットワーク内の各ホストの IP アドレスを手動で指定することを意味します。この方法は、学校のコンピューター室などの小規模なローカル エリア ネットワークでよく使用されます。

    動的方式とは、IP アドレスをホストに割り当てるプロセスが動的であり、手動介入を必要としないことを意味します。ネットワークによって自動的に割り当てられます。IP アドレスを動的に割り当てるこの方式は、DHCP プロトコルに基づいています。

  • DHCPとは

    DHCP は、Dynamic Host Configuration Protocol の英語の略語で、IP アドレスをホストに動的に割り当てるために使用されるプロトコルで、プラグ アンド プレイのネットワーク メカニズムを提供します。

    注: DHCP はアプリケーション層プロトコルであり、UDP ベースのプロトコルです。

  • DHCP の仕組み

    DHCP プロトコルは C/S モードを使用し、その具体的なワークフローは次のとおりです。

    1. ホスト A が特定のネットワークに接続すると、すぐにDHCP 検出メッセージをネットワークにブロードキャストします。ネットワーク内のすべてのホストがこのメッセージを受信し、DHCP サーバーのみがこのメッセージに応答します。

      DHCP 検出メッセージの送信元アドレスは 0.0.0.0、宛先アドレスは 255.255.255.255 です。

      ホストがネットワーク内で「DHCP サーバーはありますか?」と尋ねていることがわかります。

    2. DHCP サーバーが検出メッセージを受信すると、DHCP サーバーはまずホスト A の構成情報をデータベースで検索し、見つかった場合はその情報を返し、見つからない場合は次からアドレスを選択します。次に、DHCP サーバーは、割り当てられる IP アドレスをDHCP オファー メッセージにカプセル化し、DHCP オファー メッセージをブロードキャストします。

      DHCP オファー メッセージの送信元アドレスは DHCP サーバーの IP アドレスで、宛先アドレスは 255.255.255.255 です。

      DHCP サーバーがネットワーク内で「私はここにいます!」と応答していることがわかります。

    3. ホスト A がオファー メッセージを受信した後、IP アドレスを受け入れる場合は、IP アドレスの使用を要求するDHCP 要求メッセージをブロードキャストします。

      DHCP 要求メッセージの送信元アドレスは 0.0.0.0、宛先アドレスは 255.255.255.255 です。

      ホストがネットワーク内で「割り当てられた IP アドレスを使用したい!」とブロードキャストしていることがわかります。

    4. DHCP 要求メッセージを受信した後、DHCP サーバーはDHCP 確認メッセージをブロードキャストし、IP アドレスをホストに正式に割り当てます。

      DHCP 確認メッセージの送信元アドレスは DHCP サーバーの IP アドレス、宛先アドレスは 255.255.255.255 です。

      DHCP サーバーがネットワーク内で「問題ありません、使用できます!」とブロードキャストしていることがわかります。

    では、なぜ DHCP は対話するためにブロードキャスト メッセージを使用する必要があるのでしょうか?

    その理由は、HDCP 実行の初期段階ではホストは DHCP サーバーの IP アドレスを知らず、実行プロセス中にホストには IP アドレスが割り当てられないため、両者間の通信はブロードキャストを使用します。

    注: DHCP を使用すると、ネットワーク上に複数の DHCP サーバーを構成できます。ホストが DHCP 検出メッセージを送信すると、複数の応答メッセージを受信することがあります。このとき、ホストはそのうちの 1 つだけを選択します (通常は最初に到着したもの)。

4.4.5.4 ICMP
  • ICMPとは何ですか

    ICMP は、Internet Control Message Protocolの英語の略称で、IP データグラムをより効率的に転送し、配信成功の可能性を高めるためにネットワーク層で使用されるプロトコルです。ICMP を使用すると、ホストまたはルーターはエラー状態を報告し、異常な状態に関するレポートを提供できます。

  • ICMP メッセージ

    ICMP メッセージのフォーマットを次の図に示します。

    ここに画像の説明を挿入します

    I CMP メッセージは、IP データグラムのデータ部分とデータグラムのヘッダーとして送信され、IP データグラムを形成します。

  • ICMP メッセージの分類

    ICMP メッセージは、ICMP エラー レポート メッセージと ICMP クエリ メッセージの 2 種類に分類されます。

  • ICMPクエリメッセージ

    ICMP クエリ メッセージには、エコー要求および応答メッセージ、タイムスタンプ要求および応答メッセージ、アドレス マスク要求および応答メッセージ、ルータ クエリおよびアドバタイズメント メッセージの 4 種類があります。このうち、アドレス マスク要求メッセージと応答メッセージ、およびルーティング クエリメッセージとアドバタイズメント メッセージは使用されなくなったため、主に最初の 2 つのメッセージを紹介します。

    • 要求メッセージと応答メッセージを返す

      ホストまたはルーターによって特定の宛先ホストに送信されるクエリ。このメッセージを受信したホストは、送信元ホストまたはルーターに ICMP エコー メッセージを送信する必要があります。この種のメッセージは主に、宛先ホストが到達可能かどうかをテストするために使用されます。

    • タイムスタンプ要求メッセージと応答メッセージ

      ホストまたはルーターに現在の日時を応答するよう要求します。このタイプのメッセージは、主に時計の同期と時間の測定に使用されます。

    ICMP クエリ メッセージの適用

    要求メッセージと応答メッセージを送り返します。PINGコマンドでよく使用されます。

  • ICMPエラーメッセージ

    ICMP エラー メッセージには、宛先到達不能、送信元抑制、時間超過、パラメータの問題、ルート変更 (リダイレクト) の 5 種類があります。ソース抑制は使用されなくなりました。

    • 目的地に到達できません

      ルーターまたはホストがデータグラムを配信できない場合、送信元に宛先到達不能メッセージを送信します。

    • 時間が超過する

      ルーターは、生存時間 (TTL) が 0 のデータグラムを受信すると、そのデータグラムを破棄するだけでなく、送信元に時間超過メッセージも送信します。

      エンドポイントは、所定の時間内にデータグラムのすべてのデータグラム フラグメントを受信できない場合、受信したデータグラム フラグメントを破棄するだけでなく、時間超過メッセージをソース ポイントに送信します。

    • パラメータの問題

      ルーターまたは宛先ホストが受信したデータグラムのヘッダー内の一部のフィールドの値が正しくない場合、データ パケットが破棄されるだけでなく、パラメーター問題メッセージが送信元ポイントに送信されます。

    • ルーティング変更(リダイレクト)

      ルーターは、ルート変更メッセージをソース ポイントに送信して、ソース ポイントのホストに、データグラムを次回別のルーターに送信する必要があることを知らせます (より良いルーティング)。

    エラー メッセージが送信される上記の状況に加えて、次のシナリオでは ICMP エラー レポート メッセージは送信されません

    1. ICMP エラー レポート メッセージは、ICMP エラー レポート メッセージとして送信されなくなりました。
    2. 最初の断片化されたデータグラム フラグメントの後続のすべてのデータグラム フラグメントについては、ICMP エラー レポート メッセージは送信されません。
    3. マルチキャスト アドレスを持つデータグラムに対しては、エラー レポート メッセージは送信されません。
    4. ICMP エラー レポート メッセージは、特別なアドレス (127.0.0.0 や 0.0.0.0 など) を持つデータグラムに対しては送信されません。

    ICMP エラー レポート メッセージの適用

    エラー レポート メッセージは、Traceroute コマンドでよく使用されます(このコマンドは UNIX コマンドで、Windows のコマンドは Tracert です)。このコマンドは、現在のホストから宛先ホストに渡されたルーターを追跡するために使用できます。

    原則として、このコマンドを使用すると、最初のメッセージの TTL は 1、2 番目のメッセージの TTL は 2 というように、一連のメッセージが連続して送信されます。最初のルーターが最初のメッセージを受信すると、TTL が 1 ずつ減ります。この時点では、メッセージの TTL は 0 であり、ルーターはエラー レポート メッセージを送信元ポイントに送信します。このフィードバック メカニズムに基づいて、2 番目のメッセージは 2 番目のホップ ルーターのソース ポイントにフィードバックされます。同様に、現在のホストと送信元ホストの間を通過するルーターに関する情報を取得できます。

4.4.6 NAT

4.4.6.1 関連概念
  • プライベートアドレスとプライベートネットワーク

    プライベートアドレスとは、LAN 専用に特別に分割された IP アドレスのことで、宛先アドレスがプライベートアドレスのデータグラムはインターネット上のすべてのルータで転送されるわけではありません。プライベートアドレスを使用したネットワークをプライベートネットワークと呼びます。

    プライベートアドレスは再利用可能

    プライベート IP アドレスのネットワーク セグメントは次のとおりです。

    住所の分類 番号 ネットワークセグメント
    カテゴリーA 1 10.0.0.0~10.255.255.255
    カテゴリーB 16 172.16.0.0~172.31.255.255
    カテゴリーC 256 192.168.0.0~192.168.255.255
  • NATとは何ですか

    NAT は、Network Address Translation の英語の略語で、プライベート ネットワーク アドレスをパブリック ネットワーク アドレスに変換することで、内部で管理されている IP アドレスを外部から隠すことを指します。

  • NATルーター

    NATを利用するにはルーターにNATソフトウェアをインストールする必要があり、NATソフトウェアがインストールされたルーターをNATルーターと呼びます。NAT ルーターには、有効な外部グローバル ILP アドレスが少なくとも 1 つあります。

  • NAT変換テーブル

    NAT ルーターは、NAT 変換テーブルを使用してプライベート IP アドレスをグローバル IP アドレスに変換します。

    NAT 変換テーブルのエントリの構造は次のとおりです: [{ローカル IP アドレス: ポート番号}, {グローバル IP アドレス: ポート番号}]

4.4.6.2 NAT の原理

NAT の原理を説明するための例を見てみましょう。たとえば、プライベート ネットワークには NAT ルーターがあり、NAT 転送テーブルは次の表のようになります。

WAN端 LAN側
139.76.12.7:4550 192.168.0.5:6650
139.76.12.7:4560 192.168.0.6:1554

ルーターは、送信元 IP とポート番号 192.168.0.5:6650 を持つ IP データグラムを LAN ポートから受信すると、それを 139.76.12.7:4550 にマッピングし、WAN ポートからインターネットに転送します。ルータは、宛先 IP と宛先ポート番号 139.76.12.7:4560 を持つ IP データグラムを WAN ポートから受信すると、それを 192.168.0.6:1554 にマッピングし、LAN ポートから対応するローカル ホストに転送します。

ここでの xxxIP へのいわゆるマッピングとは、IP アドレスを xxx に変更することを意味します。

これにより、グローバル IP アドレスを複数のローカル ホストで共有できるようになります。

注: 通常のルーターはデータグラムを転送するときに送信元 IP アドレスと宛先 IP アドレスを変更しませんが、NAT ルーターはデータグラムを転送するときに必ず IP アドレスを変更します。

4.4.6.3 NAT の長所と短所
  • アドバンテージ:
    1. IP アドレスを保存して、グローバル IP アドレスを複数のローカル ホストで共有できるようにします。
    2. 内部管理の詳細を外部ネットワークから隠す
  • 欠点:
    1. パフォーマンスに影響を与えるため、NAT ルーターは通常のルーターと比較して、より多くの IP アドレス変換操作を実行します。
    2. 実際、NAT を使用すると、各ホストの IP アドレスはグローバルに一意であるという規則に違反し、グローバル IP アドレスが複数のホストで共有されることになり、エンドツーエンドの IP トレーサビリティが失われます。

4.5 IPv6プロトコル

4.5.1 IPv6によって解決される問題点

前章では、IPv4アドレスが割り当てられていることがわかりましたが、IPv4アドレス枯渇の問題を解決するために、次の3つの対策が講じられています。

  • CIDRを使用してIP アドレスの割り当てをより合理的にする
  • NATを使用してグローバル IP アドレスを保存する
  • より大きなアドレス空間を持つIPv6プロトコルを採用

最初の 2 つの方法はどちらも「症状は治療できますが、根本的な原因は治療できません」であり、IPv4 アドレス枯渇の問題を根本的に解決できるのは 3 番目の方法だけです。

例えば:

120 平方メートルの家を購入したとします。家により多くの物を収めるために、家の中にたくさんの収納キャビネットを追加し、隅々まで合理的に利用することを選択できます (これが CIDR と NAT の機能です)。案件)。しかし、あなたの部屋はいつか必ず使われてしまいます。

サッカー場全体を購入して、それを保管場所として使用できれば、もっと多くのものを収納できるでしょう...

学生は上記の例を比較して理解できますが、大げさになりすぎないようにしてください~

このことから、IPv6 は主に IPv4 アドレス空間の枯渇の問題を解決するためのものであると結論付けることができます。

4.5.2 IPv6 データグラム形式

IPv6 データグラム構造図を以下に示します。

ここに画像の説明を挿入します

IPv6 データグラムは、基本ヘッダーペイロードの 2 つの部分で構成されます。

4.5.2.1 IPv6の基本ヘッダ

IPv6 では、ヘッダー長が基本ヘッダーと呼ばれる固定の 40 バイトに変更され、IPv4 ヘッダーからいくつかの不必要なフィールドが削除され、IPv6 データグラムには 8 つのヘッダー フィールドのみが残ります。

IPv6 ヘッダーのフィールドは次のように調整されます。

  • ヘッダー長は 40 バイトに固定されているため、ヘッダー長フィールドは削除されます。
  • サービスタイプフィールドがキャンセルされました
  • 合計長フィールドはキャンセルされ、代わりにペイロード長フィールドが使用されました。
  • TTL フィールドの名前をホップ制限フィールドに変更します。
  • プロトコル フィールドはキャンセルされ、代わりに次のヘッダー フィールドが使用されます。
  • チェックサムフィールドがキャンセルされました
  • オプションフィールドはキャンセルされ、拡張ヘッダーを使用してオプション機能が実装されます。

IPv6 の基本的なヘッダー構造図を以下に示します。

ここに画像の説明を挿入します

主要なフィールドについては以下で説明します。

  • バージョン

    4箇所を占めます。これはプロトコルのバージョンを示します。IPv6 の場合は常に 6 です。

  • トラフィッククラス

    8か所を占めます。これは、さまざまな IPv6 データグラム カテゴリまたは優先順位を区別するためです。さまざまなトラフィック クラスのパフォーマンスに関する実験が現在進行中です。

  • ストリームラベル

    20箇所を占めます。「フロー」は、インターネット上の特定の送信元から特定の宛先への一連のデータグラムであり、「フロー」が通過するパス上のルーターは、指定されたサービス品質を保証します。同じフローに属するすべてのデータグラムには、同じフロー ラベルが付けられます。

  • ペイロードの長さ

    16か所を占めています。基本ヘッダーを除く IPv6 データグラムのバイト数 (すべての拡張ヘッダーはペイロードに含まれます) を指定し、その最大値は 64 KB です。

  • 次の章

    8か所を占めます。IPv4のプロトコルフィールドまたはオプションフィールドに相当します。

    次の拡張ヘッダーまたは上位層プロトコル ヘッダーを指すために使用されます。

  • ホップ制限

    8か所を占めます。送信元ステーションは、データグラムの送信時にホップ制限を設定します。ルータは、データグラムを転送するときに、ホップ制限フィールドの値を 1 ずつ減らします。
    ホップ制限の値がゼロの場合、データグラムは破棄されます。

  • 送信元アドレス

    128のポジションを占めています。データグラムの送信ステーションの IP アドレスです。

  • 宛先アドレス

    128のポジションを占めています。データグラムの受信ステーションの IP アドレスです。

4.5.2.2 IPv6拡張ヘッダー

IPv6 では、元の IPv4 ヘッダーのすべてのオプションが拡張ヘッダーに組み込まれ、拡張ヘッダーはパスの両端の送信元ホストと宛先ホストによって処理されるように残されます。データグラムが通過するルーターは、これらの拡張ヘッダーを処理しません(1 つのヘッダー、ホップバイホップ オプションの拡張ヘッダーを除く) この設計により、ルーターの処理効率が大幅に向上します

各拡張ヘッダーは複数のフィールドで構成されており、それらの長さは異なります。ただし、すべての拡張ヘッダーの最初のフィールドは8 ビットの「次のヘッダー」フィールドですこのフィールドの値は、拡張ヘッダーに続くフィールドを示します

4.5.3 IPv6アドレス

4.5.3.1 IPv6 アドレス形式

IPv6 の各アドレスは 128 ビットであり、アドレス空間は 3.4*10^38 より大きいため、IPv6 アドレスの表記をより簡潔にするために、コロン 16 進表記が使用されます。

  • コロンの 16 進表記

    各 16 ビット値は、コロンで区切られた 16 進値で表されます。例: 68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF

  • ゼロ圧縮表記

    コロン 16 進表記では、数値の前の 0 を省略できます。たとえば、0000 の最初の 3 つのゼロを省略し、1 つのゼロとして書き込みます。また、コロン 16 進表記ではゼロ圧縮が可能です。つまり、一連の連続するゼロをコロンのペアで置き換えることができます。たとえば、FF05:0:0:0:0:0:0:B3 を FF05 に圧縮できます。 ::B3。

    注: ゼロ圧縮は、どの IPv6 アドレスでも 1 回のみ使用できます。

  • ドット10進表記とコロン16進表記の組み合わせ

    コロン 16 進表記は、ドット付き 10 進表記のサフィックスと組み合わせることができます。これは、IPv4 から IPv6 への移行中に特に役立ちます。

    例: [0:0:0:0:0:0:128.10.2.1]、ゼロ圧縮を使用して IPv6 アドレス [::128.10.2.1] を取得します。

    また、CIDR のスラッシュ表記も引き続き使用できます。

    例: 60 桁のプレフィックス 12AB00000000CD3 は、[12AB:0000:0000:CD30:0000:0000:0000:0000/60] として記録できます。

    または 12AB::CD30:0:0:0:0/60 (ゼロ圧縮) または 12AB:0:0:CD30::/60 (ゼロ圧縮)

4.5.3.2 IPv6アドレスの種類と分類

IPv6 アドレスの宛先アドレスには、ユニキャストマルチキャスト、およびエニーキャストの 3 つの基本的なタイプがあります。

  • ユニキャスト

    従来のポイントツーポイント通信で使用されるアドレスのタイプ。

  • マルチキャスト

    ポイントツーマルチポイント通信に使用されるアドレスのタイプ。

  • エニーキャスト

    IPv6で追加されたタイプです。エニーキャストの宛先はコンピュータのグループですが、データグラムはそのうちの 1 台 (通常は最も近いコンピュータ) にのみ配信されます。

IPv6 アドレスの分類は次の表に示されています。

アドレスの種類 バイナリプレフィックス
不特定の住所 00…0 (128 ビット)、::/128 として記録できます。
ループバックアドレス 00…1 (128 ビット)、::1/128 として記録できます。
マルチキャストアドレス 11111111 (8 ビット)、FF00::/8 として記録できます。
リンクローカルユニキャストアドレス 1111111010 (10 桁)、FE80::/10 として記録できます。
グローバルユニキャストアドレス (上記の 4 つを除く他のすべてのバイナリ プレフィックス)
  • 不特定の住所

    これは 16 バイトのすべて 0 のアドレスで、2 つのコロン「::」で省略できます。標準 IP アドレスが設定されていないホストの送信元アドレスとしてのみ使用でき、これが唯一のアドレスです。そのようなアドレス。

  • ループバックアドレス

    つまり、0:0:0:0:0:0:0:1 (::1 として記録) は、IPv4 ループバック アドレスと同じ機能を持ち、そのようなアドレスは唯一のものです。

  • マルチキャストアドレス

    機能はIPv4と同様で、IPv6アドレスの総数の1/256を占めます。

  • リンクローカルユニキャストアドレス

    一部の組織のネットワークでは TCP/IP プロトコルが使用されていますが、インターネットには接続されていません。このようなネットワークに接続されたホストは、このローカル アドレスを使用して通信できますが、インターネット上の他のホストとは通信できません。このタイプのアドレスは、IPv6 アドレス全体の 1/1024 を占めます。

  • グローバルユニキャストアドレス

    このタイプの IPv6 のユニキャスト アドレスは、最も一般的に使用されるタイプです。

4.5.4 IPv6 と IPv4 の違い

  • IPv6 では、アドレスが 32 ビット (4B) から 128 ビット (16B) に拡張され、より大きなアドレス空間が得られます。

  • IPv6 では、IPv4 のチェックサム フィールドが完全に削除され、各ホップの処理時間が短縮されます。

  • IPv6 では、IPv4 のオプション フィールドがヘッダーから削除され、拡張ヘッダーに変換されますが、ルーターは通常、拡張ヘッダーをチェックしないため、ルーターの処理効率が大幅に向上します。

  • IPv6 はプラグ アンド プレイ (つまり、自動構成) をサポートしており、DHCP プロトコルを使用する必要はありません。

  • IPv6 ヘッダーの長さは 8B の整数倍である必要があり、IPv4 ヘッダーの長さは 4B の整数倍である必要があります。

  • IPv6 はホストでのみフラグメント化でき、IPv4 はルーターとホストでフラグメント化できます。

    ルーターが受信した IPv6 パケットが大きすぎる場合、ルーターはパケットを破棄し、送信元ホストに ICMPv6 メッセージ (パケットが大きすぎるメッセージ) を送信することしかできません。

  • IPv6 はリソースの事前割り当てをサポートし、リアルタイム ビデオやその他の要件をサポートし、特定の帯域幅と遅延アプリケーションを保証します。

  • IPv6 はプロトコル フィールドをキャンセルし、代わりに次のヘッダー フィールドを使用します。

  • IPv6 では、全長フィールドがキャンセルされ、代わりにペイロード長フィールドが使用されます。

  • IPv6 では、サービス タイプ フィールドがキャンセルされます。

4.5.5 IPv4 から IPv6 への移行方法

IPv4 と IPv6 自体は相互に互換性がないため、IPv4 を IPv6 (過去のバージョンと互換性のある) に移行する方法を検討する必要があります。

現在、IPv4 から IPv6 への移行戦略として最も一般的に使用されているのは、デュアル プロトコル スタックトンネル テクノロジーの 2 つです。

4.5.5.1 デュアルプロトコルスタック

デュアル プロトコル スタックとは、一部のホスト (またはルーター) が、IPv6 に完全に移行する前に、IPv4 と IPv6 の 2 つのプロトコル スタックを備えていることを意味しますデュアルスタック ホスト (またはルーター) はIPv6/IPv4としてマークされ、同時に2 つの IP アドレス(IPv6 アドレスと IPv4 アドレス)を持っていることを示します。デュアルプロトコル ホストは、IPv6 ホストと通信する場合は IPv6 アドレスを使用し、IPv4 ホストと通信する場合は IPv4 アドレスを使用します。DNS から返されたアドレスの種類に応じて、IPv4 アドレスを使用するか IPv6 アドレスを使用するかを決定できます。

DNS (ドメイン ネーム システム) については後の章で紹介します。

次の図は、デュアル プロトコル スタックを使用して IPv4 から IPv6 への移行を実装するプロセスを示しています。

ここに画像の説明を挿入します

上図のように、ホスト A が IPv6 プロトコルで送信したデータを受信したルータ B は、IPv6 データグラムのデータ部分を IPv4 データグラムにカプセル化し、IPv4 ネットワーク内で IPv4 プロトコルを使用して通信します。ルータ E は、ルータ D が IPv4 プロトコルを通じて送信した IPv4 データグラムを受信した後、データ部分を IPv6 データグラムに再カプセル化し、ホスト F に送信します。

4.5.5.2 トンネル技術

トンネル テクノロジは、IPv4 プロトコルをトンネルとして使用し、IPv6 データグラムの送信を担当します。IPv6 データグラムがIPv4 ネットワークに入ると、IPv6 データグラムは IPv4 データグラムにカプセル化されます。IPv6 データグラム全体が IPv4 データグラムのデータになります。IPv4 データグラムが IPv4 ネットワークのトンネルから出ると、データ部分 (つまり、元の IPv6 データグラム) がホストの IPv6 プロトコル スタックに渡されます。

次の図は、トンネリング技術を使用した IPv4 から IPv6 への移行プロセスを表しています。

ここに画像の説明を挿入します

上図からわかるように、ホスト A が送信した IPv6 データグラムを受信したルータ B は、IPv6 データグラム全体をデータ部分として新しい IPv4 データグラムにカプセル化し、この IPv4 データグラムを IPv4 ネットワークに送信します。ルーター E は、IPv4 データグラムを受信した後、データ部分の IPv6 データグラムをカプセル化解除して、ホスト F に送信します。

4.5.6 ICMPv6

ICMPv6 は IPv6 で使用される ICMP プロトコルです。つまり、IPv6 は ICMPv6 を通じてエラー情報をフィードバックします。

ICMPv6 には、アドレス解決プロトコル ARP とインターネット グループ管理プロトコル IGMP の機能が含まれており、新旧バージョンのネットワーク層のプロトコル比較を次の図に示します。

ここに画像の説明を挿入します

注: IPv6 関連の知識だけを理解してください。

4.6 ルーティングプロトコル

4.6.1 ルーティング プロトコルの関連概念

4.6.1.1 インターネットで使用されるルーティング プロトコル

インターネットは階層型ルーティング プロトコルを使用します。

  • 階層型ルーティングプロトコル

    インターネットはインターネットを多数の小さな自律システムに分割しており、各自律システムはシステム内で使用されるルーティング プロトコルを独立して決定する権利を持っています。さまざまな自律システムを継続的に分割して階層化の目的を達成することで、過剰なネットワーク規模によって引き起こされるパフォーマンスの問題を軽減できます。

  • 階層型ルーティング プロトコルを使用する理由は何ですか?

    • インターネットの規模は非常に大きいです。すべてのルーターがすべてのネットワークに到達する方法を知っている場合、ルーティング テーブルは非常に大きくなり、処理に時間がかかりすぎます。これらすべてのルーター間でルーティング情報を交換するために必要な帯域幅は、インターネットの通信リンクを飽和させてしまいます。
    • 多くのユニットは、ユニットのネットワークのレイアウトの詳細や部門で使用されているルーティング プロトコル (これは部門の内部問題です) を外部に知られることを望んでいませんが、同時にインターネットへの接続も望んでいます。 。
4.6.1.2 自律システム

自律システム (AS) は、AS 内ルーティング プロトコルと共通のメトリックを使用して AS 内のパケットのルーティングを決定する、単一の技術管理の下にあるルーターのグループを指します。また、AS 間ルーティング プロトコルも使用します。 AS 間のパケットのルーティングを決定します。

自律システムを使用したインターネットの概略図は次のとおりです。

ここに画像の説明を挿入します

4.6.1.3 ドメイン内ルーティングとドメイン間ルーティング
  • ドメイン内ルーティング

    自律システム内で使用されるルーティング プロトコルは、ドメイン内ルーティングと呼ばれます

  • ドメイン間ルーティング

    複数の自律システム間で使用されるルーティング プロトコルは、ドメイン間ルーティングと呼ばれます。

4.6.2 内部ゲートウェイプロトコル

4.6.2.1 はじめに

Interior Gateway Protocol (IGP) は、自律システム内で使用されるルーティング プロトコルであり、インターネット内の他の自律システムで使用されるルーティング プロトコルとは何の関係もありません。

現在、最も広く使用されている IGP プロトコルは、RIP プロトコルOSPF プロトコルです。

4.6.2.2 RIPプロトコル
  • 導入

    ルーティング情報プロトコル (RIP) は、距離ベクトル アルゴリズムに基づく分散ルーティング プロトコルです。

    距離ベクトル アルゴリズムはセクション 4.3.4 で紹介されています。

  • 規則

    1. ネットワーク内の各ルーターは、それ自体から他のすべての宛先ネットワークまでの距離を維持します。
    2. 距離はホップ数とも呼ばれ、RIPではルーターから直接接続されているネットワークまでの距離を1と規定しており、ルーターを通過するごとに距離は1ずつ増えていきます。
    3. RIP では、良いルートとは通過するルーターの数が少ない、つまり「距離が短い」と考えています。
    4. RIP では、パスに最大 15 台のルーターを含めることができ、距離が 16 の場合は、宛先ネットワークに到達できないことを意味します。RIP は小規模なネットワークにのみ適していることがわかります。
    5. デフォルトでは、RIP は RIP を使用して 2 台のルータ間で RIP ルーティング更新情報を 30 秒ごとにブロードキャストし、それによりルーティング テーブルを動的に維持します。
    6. RIP は 2 つのネットワーク間で同時に複数のルートを使用できません。
    7. RIP は、より多くのルーターを備えた高速 (低遅延) ルートが存在する場合でも、最も少ないルーターを備えたルート (最短ルート) を選択します。
  • 特徴

    • RIP プロトコルを使用するルーターは、隣接するルーターとのみ情報を交換します。
    • RIP プロトコルを使用してルータ間で交換される情報は、ルータのルーティング テーブル、つまりすべての既知のルーティング情報です。
    • RIP プロトコルを使用するルーターは、ルーティング テーブルを動的に維持するという目的を達成するために、一定の間隔でルーティング情報を交換します。
    • RIP プロトコルを使用するルータは、最初は直接接続されている隣接ルータのルーティング情報しか知りません。30 秒ごとの RIP ブロードキャストを通じて、隣接ルータは相互にルーティング テーブルを同期するなど、最終的にはすべてのルータが同期します。最終的な「収束」を達成するために、ネットワーク全体のルーティング テーブルを知っています
  • 動作原理

    RIP プロトコルでは、各ルーティング テーブル エントリには、<宛先ネットワーク N、距離 D、ネクストホップ ルーター アドレス X> という 3 つのキー データがあります。

    たとえば、次のようなネットワーク構造があります。

    ここに画像の説明を挿入します

    ルーター 1 のルーティング テーブルは次のとおりです。

    宛先ネットワーク 距離 ネクストホップルーターアドレス
    ネットワーク1 1 直送
    ネットワーク2 1 直送
    ネットワーク3 2 ルーター2

    注: 宛先ネットワークを直接配信できる場合、距離も 1 になります。

    RIP プロトコルを使用するルーターは、隣接ルーターから送信された各 RIP パケットに対して次の手順を実行します。

    1. アドレス X の隣接ルータによって送信された RIP パケット内のすべての項目を変更して、変更されたエントリを取得します。変更の原則は、すべての「ネクスト ホップ ルーター アドレス」を X に変更し、「距離」フィールドの値に 1 を追加することです。
    2. 独自のルーティング テーブルと変更された RIP パケット内のエントリを比較し、次の手順を実行します。
      • 元のルーティング テーブルに宛先ネットワーク N が存在しない場合、エントリはルーティング テーブルに直接追加されます。
      • 元のルーティング テーブルに宛先ネットワーク N があり、次ホップ ルータのアドレスが X の場合、元のルーティング テーブルの対応するエントリが、メッセージ内の対応するエントリで更新されます。
      • 元のルーティングテーブルに宛先ネットワーク N があり、ネクストホップルータのアドレスが X ではない場合、さらに「距離」フィールドの値を比較し、元のルーティングテーブルの距離がルーティングテーブルの距離 d より大きい場合、 RIP メッセージ内のエントリ。その後、元のルーティング テーブル内のエントリが RIP パケット内のエントリで置き換えられます。それ以外の場合、更新は実行されません。
    3. 隣接ルータからの RIP メッセージ情報が 180 秒以内に受信されなかった場合 (デフォルトの RIP タイムアウトは 180 秒)、隣接ルータまでの距離は 16 として記録され、到達不能を意味します。
    4. 仕上げる

    RIP がどのように機能するかを説明する例を示します。

    既知のルータ R1 のルーティング テーブルは次の表のとおりです。

    宛先ネットワーク 距離 ネクストホップルーターアドレス
    ネット2 3 R3
    ネット3 4 R4
    ネット1 1 直送

    ルーター R1 は、次の表に示すように、ルーター R3 によって送信されたルーティング更新情報を受信しました。

    宛先ネットワーク 距離 ネクストホップルーターアドレス
    ネット2 3 R2
    ネット3 1 直送
    ネット5 4 R6

    次に、R1 のルーティング テーブル情報を更新します。まず、R3 から受信したルーティング情報を変更します。変更されたエントリは次の表に示されています。

    宛先ネットワーク 距離 ネクストホップルーターアドレス
    ネット2 4 R3
    ネット3 2 R3
    ネット5 5 R3

    上記の変更されたテーブルに基づいて、R1 の元のルーティング テーブルと比較すると、R1 の更新されたルーティング テーブルは次の表に示すとおりであると結論付けることができます。

    宛先ネットワーク 距離 ネクストホップルーターアドレス
    ネット2 4 R3
    ネット3 2 R3
    ネット1 1 直送
    ネット5 5 R3

    更新プロセス:

    宛先ネットワーク Net2 では、2 つのルーティング テーブルのエントリを比較すると、変更されたルーティング テーブルと R1 の元のルーティング テーブルのネクスト ホップ ルータ アドレスが R3 であることがわかり、R1 は変更されたルーティングのエントリに直接置き換えられます。 table. 元のルーティング テーブルの対応するエントリ。

    宛先ネットワーク Net3 では、2 つのルーティング テーブルのエントリを比較すると、変更されたルーティング テーブルのエントリの距離 2 が、R1 の元のルーティング テーブルの対応するエントリの距離 4 よりも小さいことがわかります。ルーティング テーブルが使用される このエントリは、R1 の元のルーティング テーブルの対応するエントリを置き換えます。

    宛先ネットワーク Net1 では、2 つのルーティング テーブルのエントリを比較すると、変更されたルーティング テーブルにはこのエントリがないことがわかり、処理は実行されません。

    宛先ネットワーク Net5 については、2 つのルーティング テーブルのエントリを比較すると、R1 の元のルーティング テーブルに対応するエントリがないことがわかり、そのエントリが R1 のルーティング テーブルに追加されます。

  • RIPメッセージフォーマット

    ここに画像の説明を挿入します

    • RIP メッセージはヘッダーとルーティング部分で構成されます。

    • ルーティング部: 複数のルーティング情報から構成されます。各ルーティング情報には 20 バイトが必要です。

    • アドレス ファミリ識別子: アドレス カテゴリとも呼ばれ、使用されるアドレス プロトコルを識別するために使用されます。

    • ルーティングラベル: 自律システムの番号を記入します RIP が自律システム外の経路情報を受信できるようにすることを考慮しています。

    • ネットワークアドレス: RIP メッセージに対応する宛先ネットワークアドレスを示します。

    • サブネットマスク: 宛先ネットワークアドレスに対応するサブネットマスク。

    • 下一跳路由器地址:到该目的网络地址的下一跳路由器地址。

    • 距离:到该目的网络的距离。

    注意:由上图可以看出,RIP报文是封装在UDP数据报的数据部分中,因此RIP协议是应用层协议,依托于UDP进行数据传输。

  • 优点

    • 实现简单
    • 开销小
    • 收敛过程较快
  • 缺点

    • 限制了网络规模,它能使用的最大距离为15。

    • 路由器之间交换的是整个路由表,因此网络规模越大,开销也越大。

    • “坏消息传的慢”,即当网络出现故障时,会出现慢收敛现象。(当网络出现故障时,要经过比较长的时间 (例如数分钟) 才能将此信息传送到所有的路由器。)

      举例说明:

      已知有如下网络结构

      ここに画像の説明を挿入します

      • 正常情况下,路由器1会向路由器2发送RIP报文,其中表项为<网络1,1,直接交付>,路由器2收到该报文后就会更新其路由表,其中表项为<网络1,2,路由器1>。

        路由器1中的表项为<网络1,1,直接交付>,路由器2中的表项为<网络1,2,路由器1>

      • 此时如果网络1出现故障

      • 第二次RIP广播时,路由器1得知网络1不可达,会将其表项更新为<网络1,16,直接交付>,由于此时路由器2还未收到路由器1发送的最新的RIP报文,因此它还会按照自己的路由表信息向路由器1发送路由表信息,其中的表项为<网络1,2,路由器1>。由于路由器1收到了路由器2发送的RIP报文,其中包含表项<网络1,2,路由器1>,根据RIP表项的更新规则,将该路由器表项进行修改后为<网络1,3,路由器2>,此时路由器1就会误以为可以通过路由器2到达网络1,它就会更新自己的路由表的表项为<网络1,3,路由器2>。

      • 第三次进行RIP广播时,路由器1会向路由器2发送RIP报文,表项为<网络1,3,路由器2>,路由器2收到该表项后,会更新自己的路由表表项为<网络1,4,路由器1>。

      • 以此类推,直到路由器1和路由器2的路由表中的到达网络1的表项中的距离都增大到16时,路由器1和路由器2才知道网络1是不可达的。

4.6.2.3 OSPF协议
  • 简介

    开放最短路径协议(OSPF)是基于分布式链路状态路由算法的一种协议,该协议是为克服 RIP 的缺点在 1989 年开发出来的。“开放”表明OSPF协议不是受某一家厂商控制,而是公开发表的。“最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法SPF。

    链路状态算法,在4.3.5小节已经为各位读者介绍过了。

    注意:OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。

  • 链路状态数据库

    由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库,这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)。

  • OSPF区域

    为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围,叫做区域。每一个区域都有一个 32 位的区域标识符(用点分十进制表示),区域不能太大,在一个区域内的路由器最好不超过 200 个。

    OSPF区域示意图如下图所示

    ここに画像の説明を挿入します

    OSPF使用层次结构的区域划分。在上层的区域叫做主干区域,主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。

    划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。

  • OSPF的分组

    OSPF分组结构如下图所示

    ここに画像の説明を挿入します

    OSPF协议中,路由器会使用五种不同类型的报文,来实现信息交换。

    • 问候分组(Hello)

      用于发现和维持邻站的可达性。

    • 数据库描述分组(Database Description,DD)

      向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。

    • 链路状态请求分组(Link State Request,LSR)

      向对方请求发送某些链路状态项目的详细信息。

    • **链路状态更新分组(Link State Update,LSU) **

      用洪泛法对全网路由器更新链路状态。

    • 链路状态确认分组(Link State Acknowledgment,LSA)

      对链路更新分组的确认。

  • 工作原理

    1. 每个10秒,每两个相邻的路由器要通过问候分组来发现并了解邻居结点的网络地址以及可达性。
    2. 设置每个路由器到自己的每个邻居路由器的度量。
    3. 每个路由器使用数据库描述分组和其相邻的路由器交换各自数据库中已有的链路状态摘要信息。
    4. 每个路由器收到相邻路由器的数据库描述分组后,与自己的链路状态数据库进行对比,如果分组中的摘要信息自己有,则不做处理;如果没有或者信息有所更新,则向对方发送链路状态请求分组,请求自己缺少或者需要更新的链路状态项目信息。
    5. 当路由器收到相邻路由器发送的链路状态请求分组后,发送链路状态更新分组
    6. 当路由器根据链路状态更新分组更新完信息后,会向发送链路状态更新分组的路由器发送链路状态确认分组,进行更新确认。
    7. 使用Dijkstra算法根据自己的链路状态数据库构造出其到各个路由器的最优路径,以此构造路由表。

    注意

    在网络运行的过程汇总,只要有一个路由器的链路状态发生变化,就会使用洪泛法向全网的路由器发送链路状态更新分组,收到该链路状态更新分组的路由器,在更新完自己数据库信息后,就会返回一个链路状态确认分组

    这里使用的洪泛法,其实是路由器A给相邻路由器B发送数据后,其相邻的路由器B继续给相邻的路由器C发送数据,以此达到全网其他的各个路由器都收到该数据的效果。

    虽然使用Dijkstra算法能够的到本身到其他所有路由器的最优路径,但是路由表中并不会存储完整路径,而是只存储“下一跳路由器地址”,到了下一跳路由器后,才会知道再下一跳的地址。

    为了确保链路状态数据库与全网的状态保持一致,OSPF规定每隔一段时间(30分钟)就刷新以此数据库中的链路状态。

  • 与RIP协议的区别

    1. OSPF通过洪泛法向本自治系统中的所有路由器发送信息,RIP仅向自身相邻的路由器发送信息。
    2. 使用OSPF协议的路由器发送的信息是与本路由器相邻的所有路由器的链路状态,所谓的链路状态就是指该路由器与哪些路由器相邻以及对应链路的“度量”。RIP中发送的信息是路由器的整个路由表。
    3. OSPF协议规定只有当链路状态发生变化时,路由器才使用洪泛法向所有路由器发送此信息,并且收敛过程快,不会出现“坏消息传递的慢”的问题。RIP协议无论网络拓扑是否发生变化,路由器之间都会定期地交换信息。
    4. OSPF是网络层协议,直接使用IP数据报传送。RIP是应用层协议,使用UDP传送。
  • 特点

    1. OSPF对于不同链路可以根据IP分组的不同服务类型设置成不同的代价。
    2. OSPF协议可以实现多路径间的负载均衡,如果到同一个目的网络有多条相同代价的路径,可以将通信量分配给这几条路径,从而达到负载均衡的效果。
    3. 使用OSPF协议的路由器之间交换的分组具有鉴别功能。
  • 优点

    适用于大型网络,没有“坏消息传播得慢”的问题。

  • 缺点

    实现较为复杂。

4.6.2 外部网关协议

4.6.2.1 简介

外部网关协议(External Gateway Protocol,EGP),是指在不同自治系统之间交换路由信息的协议。

目前使用最多的外部网关协议是BGP-4协议

4.6.2.2 BGP协议
  • 简介

    **边界网关协议(Border Gateway Protocol,BGP)**是不同自治系统的路由器之间交换路由信息的一种外部网关协议,其常常被用于互联网的网关之间。

    BGP较新版本是 2006 年 1 月发表的 BGP-4(BGP 第 4 个版本),即 RFC 4271 ~ 4278。 可以将 BGP-4 简写为 BGP。

  • 目标

    由于互联网的规模太大,使得自治系统之间路由选择非常困难。对于自治系统之间的路由选择,要寻找最佳路由是很不现实的。

    当一条路径通过几个不同 AS 时,要想对这样的路径计算出有意义的代价是不太可能的。比较合理的做法是在 AS 之间交换“可达性”信息。

    自治系统之间的路由选择必须考虑有关策略,因此,BGP只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。

  • BGP发言人

    每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“ BGP 发言人” (BGP speaker) 。一般说来,两个 BGP 发言人都是通过一个共享网络连接在一起的,而 BGP 发言人往往就是 BGP 边界路由器,但也可以不是 BGP 边界路由器。

    下图表示了BGP发言人和AS的关系

ここに画像の説明を挿入します

每个BGP发言人除了要运行BGP之外,还必须运行所在的AS的内部网关协议,如OSPF或者RIP。

  • 工作原理

    1. BGP发言人与其他AS中的BGP发言人建立TCP连接。

    2. 在TCP连接上交换BGP报文以建立BGP会话。

    3. 通过BGP会话交换路由信息。

    4. 当所有BGP发言人都相互交换网络可达性的信息后,各BGP发言人就可以找出到达各个自治系统的较好路由。

      网络可达性信息就是要到达某个目的网络索要经过的一系列AS路径。

    下面两张图举例说明了BGP发言人之间交换路径向量

    ここに画像の説明を挿入します

    ここに画像の説明を挿入します

  • 特点

    • BGP交换路由信息的结点数量级是自治系统的数量级,比这些自治系统内的网络数量少很多。
    • 每个自治系统中的BGP发言人数目很少,使得自治系统之间的路由选择不至于过分复杂。
    • BGP支持CIDR,因此BGP的路由表也包括目的网络前缀、下一跳路由器以及到达该目的网络所要经过的各个AS序列。
    • 当BGP初次运行时,BGP的邻站交换整个BGP路由表。以后只需要在发生变化是更新有变化的部分。这种机制节省了网络带宽和路由器的处理开销。
  • BGP-4报文

    • BGP-4共使用4中报文

      • 打开 (OPEN) 报文,用来与相邻的另一个BGP发言人建立关系。
      • 更新 (UPDATE) 报文,用来发送某一路由的信息,以及列出要撤消的多条路由。
      • 保活 (KEEPALIVE) 报文,用来确认打开报文和周期性地证实邻站关系。
      • 通知 (NOTIFICATION) 报文,用来发送检测到的差错。
    • BGP-4的报文格式

      ここに画像の説明を挿入します

      由上图可以看出,BGP使用TCP协议来进行传输信息。

  • RIP、OSPF以及BGP的对比

    协议 RIP OSPF BGP
    类型 内部 内部 外部
    路由算法 距离-向量 链路状态 路径-向量
    传递协议 UDP IP TCP
    路由选择 跳数最少 代价最低 较好路由
    交换结点 和自身相邻的结点 本AS中的所有结点 和自身相邻的结点
    交换内容 当前路由器的整个路由表 当前路由器相邻的所有路由器的链路状态 首次交换整个路由表,非首次仅交换有变化的部分

4.7 IP多播

4.7.1 多播的相关概念

4.7.1.1 IP数据报的传输方式

IP数据报有三种传输方式:单播、广播以及多播。

  • 单播

    用于发送数据报到单个目的地并且每发送一份数据报都要使用一个单播IP地址作为目的地址,属于点对点传输方式。

  • 广播

    发送数据报到同一广播域或子网内的所有设备,属于点对多点传输方式

  • 多播

    当网络中的某些用户需要特定数据时,多播数据发送者仅发送以此数据,借助多播路由协议为多播数据报建立多播分发树,被传递的数据到达距离用户端尽可能仅的节点后才开始复制数据报以及分发,属于点对多点的传输方法。

    相较于广播,使用多播可以对数据接收者进行额外的筛选。

4.7.1.2 使用多播的目的

为了能够支持视频点播、视频会议等多媒体应用,网络必须要能够支持一点对多点的通信。虽然我们可以使用单播方式复制多份数据报来模拟一点对多点的通信,但是这样会大大的增加网络性能的开销。因此,多播技术就诞生了,使用多播技术可以在满足一点对多点通信的基础上大大地节约网络资源。

接下来,我将以视频分发为例,讲解多播是如何节约网络资源的。

例如,我们有90台主机在同时观看同一个视频节目,如果使用单播方式,则数据报分发情况如下图所示。

ここに画像の説明を挿入します

此时我们需要在源点复制出90份相同的数据报,发送90份单播数据报。

如果使用多播方式,则数据报分发情况如下图所示。

ここに画像の説明を挿入します

此时我们只需要在源点发送一个数据报,只有数据在传送路径上出现分岔时才需要将分组进行复制,因此对于发送者而言,指需要发送一次就可以发送到所有接收者,大大地减轻了网络的负载以及发送者的负担。

4.7.1.3 多播地址

使用IP多播时,需要使用IP多播地址,IP多播地址让源设备能够将一个分组发送给一组设备,属于同一个多播组的设备将被分配一个相同的多播地址。IP多播地址使用的D类地址格式,范围是224.0.0.0~239.255.255.255,该范围内的每一个D类IP地址代表着一个多播组。

4.7.1.4 多播数据报

多播数据报和一般的 IP 数据报的区别就是它使用 D 类 IP 地址作为目的地址,并且首部中的协议字段值是 2,表明使用网际组管理协议 IGMP。

其中需要注意的是:

  1. 多播数据报也是“尽最大努力交付”,不保证一定能够交付多播组内的所有成员。
  2. 多播地址只能用于目的地址,不能用于源地址。
  3. 对多播数据报不产生 ICMP 差错报文。因此,若在 PING 命令后面键入多播地址,将永远不会收到响应。
  4. 并非所有的D类地址都可以作为多播地址。

4.7.2 局域网中的硬件多播

4.7.2.1 多播的分类

IP多播可以被分为两种:因特网中的多播以及局域网中的硬件多播。

4.7.2.2 硬件多播的原理

在因特网上进行多播的最后阶段,需要把多播数据报在局域网上用硬件多播交付给多播组中的所有成员。

在局域网的硬件多播中,我们会将D类IP地址与MAC多播地址进行映射,通过映射关系以及路由器的多播路由算法,可以将多播报文转发给指定的主机。

D类IP地址与MAC多播地址的映射关系如下图所示。

ここに画像の説明を挿入します

互联网号码指派管理局 IANA 拥有的MAC地址块的高 24 位为 00-00-5E。因此 TCP/IP 协议使用的MAC地址块的范围是00-00-5E-00-00-00~00-00-5E-FF-FF-FF ,由此可以看出,在每一个地址中,只有23位可用作多播。D 类 IP 地址可供分配的有 28 位,在这 28 位中的前 5 位不能用来构成MAC地址。

由上图可以看出,由于多播 IP 地址与以太网硬件地址的映射关系不是唯一的,因此收到多播数据报的主机,还要在 IP 层利用软件进行过滤,把不是本主机要接收的数据报丢弃。

4.7.3 IGMP与多播路由选择协议

IP多播需要使用两种协议:网际组管理协议 IGMP (Internet Group Management Protocol)以及多播路由选择协议

4.7.3.1 IGMP

IGMP协议可以使路由器知道多播组成员的信息。

  • IGMP的使用范围

    IGMP 并非在互联网范围内对所有多播组成员进行管理。并且其 不知道 IP 多播组包含的成员数,也不知道这些成员都分布在哪些网络上。IGMP 协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组。

    ここに画像の説明を挿入します

    上图中显示了有四个主机加入了226.15.37.123这个多播组,此时如果在网络中有一个主机向多播组226.15.37.123发送了多播数据报,那么R1、R2、R3、R4这些路由器就可以通过IGMP来知道对应的局域网中是否有主机加入了该多播组。因此,此时只有R1、R2、R3会转发该数据报,R4不做处理。

  • IGMP工作的两个阶段

    1. 当某台主机加入新的多播组时,该主机向多播组的多播地址发送一个IGMP报文,声明自己想要成为该组的成员。当本地的多播路由器收到IGMP报文后,会利用多播路由选择协议将这组成员关系转发给因特网上的其他多播路由器。
    2. 由于多播组成员的关系是动态的,因此本地多播路由器需要周期性地探询本地局域网上的主机,以便知道这些主机是否仍然是多播组的成员。只要某个多播组中有一台主机响应,就表示该多播组是活跃的,当一个多播组经过几次探询后仍然没有主机进行响应时,多播路由器就不会再将该组的成员关系转发给其他的多播路由器里。
4.7.3.2 多播路由选择协议

マルチキャスト ルーティング プロトコルの目的は、送信元ホストをルート ノードとするマルチキャスト転送ツリーを見つけることです。このツリーでは、各パケットは各リンクで 1 回だけ送信されます (つまり、マルチキャスト転送ツリー上のルーターはマルチキャスト データグラムを重複して受信しません) )。異なるマルチキャスト グループは異なるマルチキャスト転送ツリーに対応し、同じマルチキャスト グループでも、異なるソース ポイントに対して異なるマルチキャスト転送ツリーを持ちます。

マルチキャスト転送ツリーの概略図を次の図に示します。

ここに画像の説明を挿入します

マルチキャスト データグラムを転送するときにマルチキャスト ルーティング プロトコルで一般的に使用される 3 つのアルゴリズム:

  1. リンクステートベースのルーティング
  2. 距離ベクトルベースのルーティング
  3. プロトコルに依存しないマルチキャスト (スパース/デンス)

最初の 2 つのアルゴリズムは上の章で紹介されていますが、3 番目のアルゴリズムに興味のある学生は自分で理解できます。IP マルチキャスト関連の知識を簡単に理解していれば十分です。

つづく…

参考文献

《计算机网络:自顶向下方法第七版》- Kurose
《计算机网络(第7版)》-谢希仁
《2023年计算机网络考研复习指导》-王道论坛

この記事がお役に立ちましたら、いいね、転送、保存していただければ幸いです~

おすすめ

転載: blog.csdn.net/weixin_42584100/article/details/126881057
おすすめ