コンピュータネットワーク – トップダウンアプローチ (第 4 章 学習記録)

この章では、ネットワーク層、つまりデータプレーンについて学びます。

前の章では、トランスポート層がネットワーク層のホスト間通信サービスに依存し、さまざまな形式のプロセス間通信を提供することを学びました。この章では、トランスポート層やアプリケーション層とは異なり、ネットワーク内のすべてのホストとルーターにネットワーク層の一部が存在することを見ていきます。

ネットワーク層は、データ プレーンとコントロール プレーンという2 つの相互作用する部分に分類できますこの章では、最初にネットワーク層のデータ プレーン、つまりネットワーク層の各ルーターの機能について学習します。データ プレーンの機能は、データグラム (つまり、ネットワーク層のパケット) がどのようにルーターの 1 つに到着するかを決定します。入力リンクはルーターの出力リンクに転送されます。

ネットワーク層の概要

次の図は、2 つのホスト H1、H2 と、H1 と H2 の間のパス上にある複数のルーターからなる単純なネットワークを示しています。H1 が H2 に情報を送信すると仮定して、これらのホストと中間ルーターのネットワーク層の役割を考慮します。H1 のネットワーク層は、H1 トランスポート層からメッセージ セグメントを取得し、各メッセージ セグメントをデータグラムにカプセル化し、そのデータグラムを隣接ルータ R1 に送信します。受信側 H2 では、ネットワーク層が隣接ルータ R2 からデータグラムを受信し、トランスポート層セグメントを抽出し、H2 のトランスポート層まで受け渡します。各ルーターのデータ プレーンの主な役割は、入力リンクから出力リンクにデータグラムを転送することです。コントロール プレーンの主な役割は、データグラムが送信元と宛先に従うように、これらの各ローカル ルーターの転送アクションを調整することです。ルーター間のルーター パスは、最終的にエンドツーエンドの配信を実行します。

 

転送とルーティング: データ プレーンとコントロール プレーン 

 ネットワーク層の役割は表面的には単純で、あるホストから別のホストにパケットを送信することです。使用する必要がある重要なネットワーク層機能が 2 つあります。

  • 前へパケットがルーターの入力リンクに到着すると、ルーターはパケットを適切な出力リンクに移動する必要があります。転送は、データ プレーンに実装されている唯一の機能です。
  • ルーティングパケットが送信者から受信者に流れるとき、ネットワーク層はこれらのパケットが通過するルートまたはパスを決定する必要があります。これらのパスを計算するアルゴリズムは、ルーティング アルゴリズムと呼ばれますたとえば、上の図では、ルーティング アルゴリズムによって、パケットが H1 から H2 に流れるパスが決定されます。ルーティング アルゴリズムは、ネットワーク層のコントロール プレーンに実装されます。

転送とは、パケットを 1 つの入力リンク インターフェイスから適切な出力リンク インターフェイスに転送するルーティング ローカル アクションを指します。発生する転送イベントは非常に短く、通常はハードウェアに実装されます。

ルーティングとは、パケットが送信元から宛先までたどるエンドツーエンドのパスを決定するネットワーク全体のプロセスを指します。ルーティングは長い時間スケールで発生し、通常はソフトウェアで実装されます。

すべてのネットワーク ルーターの重要な要素は、そのルーターの転送テーブルです。ルーターは、到着したパケットのヘッダーにある 1 つ以上のフィールドの値をチェックし、これらのヘッダー値を使用して転送テーブルのインデックスを作成し、パケットを転送します。これらの値は、パケットが転送されることを示す転送テーブル エントリ。転送ルーターの出力リンク インターフェイス。

 コントロール プレーン: 従来のアプローチ (ルーター内に実装)

そもそもルーターの転送テーブルはどのように設定されたのでしょうか? この質問は、ルーティングと転送の間の重要な相互作用を明らかにします。ルーティング アルゴリズムは各ルーターで実行され、各ルーターに転送機能とルーティング機能の両方が含まれます。あるルータのルーティング アルゴリズムは、(ルーティング プロトコルに従ってルーティング情報を含むルーティング メッセージを交換することによって)他のルータのルーティング アルゴリズムと通信し、その転送テーブルの値を計算します。

コントロール プレーン: SDN アプローチ (リモート サーバーに実装) 

以下の図は、各ルータが使用する転送テーブルを計算して配布するために、ルータをリモート コントローラから物理的に分離する別の方法を示しています。

 

 図 4-2 と図 4-3 のデータ プレーン コンポーネントは同じです。ただし、図 4-3 では、コントロール プレーンのルーティング機能は物理ルータから分離されています。つまり、ルーティング デバイスは転送のみを実行し、リモート コントローラは転送テーブルを計算して配布します

ルーターとリモート コントローラーは、フォワーディング テーブルやその他のルーティング情報を含むメッセージを交換することによって通信します。上図のコントロール プレーン方式は、 Software Defined Networking (SDN)です。

Webサービスモデル

ネットワーク サービス モデルは、送信エンド システムと受信エンド システム間のパケットのエンドツーエンドのトランスポート特性を定義します。

ネットワーク層が提供できるサービスの一部。これらのサービスには次のものが含まれる場合があります。

  • 配達を確実にしますこのサービスは、パケットが最終的に宛先に到達することを保証します。
  • レイテンシの上限を設けた配信の保証このサービスは、パケットの配信を保証するだけでなく、指定されたホスト間の遅延の範囲内でパケットを配信します。
  • 整然としたグループ配送パケットが送信された順序で宛先に到着することを保証します。
  • 最小帯域幅を確保します送信ホストが指定されたビット レート未満のレートでビットを送信している限り、すべてのパケットは最終的に宛先ホストに配信されます。
  • セキュリティも万全ネットワーク層は、送信元ですべてのデータを暗号化し、宛先でこれらのパケットを復号化できます。 

インターネットのネットワーク層は単一のサービスを提供します。ベストエフォートサービスと呼ばれます配信されたパケットは、送信された順序で受信されることも、最終的に配信されることも保証されず、エンドツーエンドの遅延や最小帯域幅も保証されません。

パケット スイッチとは、パケットのヘッダー フィールドの値に従って、入力リンク インターフェイスから出力リンク インターフェイスにパケットを転送する一般的なパケット スイッチング デバイスを指します。一部のパケット スイッチは、転送の決定に基づいてリンク層スイッチと呼ばれますフィールドの値に基づいて作成されるため、これらのスイッチはリンク層デバイスと呼ばれます。他のパケット スイッチはルーターになり、ネットワーク層データグラムのデータ フィールド値に基づいて転送の決定を行い、ルーターはネットワーク層デバイスになります。

ルーターの仕組み

次の図は、一般的なルーターのアーキテクチャ図を示しています。ルーターの 4 つのコンポーネントを特定する

  •  入力ポート入力ポートで検索機能を実行し、転送テーブルを照会してルーターの出力ポートを決定し、到着したパケットはルーターのスイッチング構造を通じて出力ポートに転送されます。
  • 生地を交換しますルーターの入力ポートを出力ポートに接続します。このスイッチング構造はルーター内に完全に含まれています。つまり、ネットワークルーター内のネットワークです。
  • 出力ポートスイッチ ファブリックから受信したパケットを保存し、必要なリンク層および物理層の機能を実行することにより、これらのパケットを出力リンク上で送信します。
  • ルーティングプロセッサコントロールプレーン機能を実行します。従来のルーターでは、ルーティング プロトコルを実行し、ルーティング テーブルと関連するリンク状態情報を維持し、ルーターの転送テーブルを計算します。SDN ルーターでは、リモート コントローラーとの通信を担当し、受信することを目的としています。リモート コントローラーによって計算された情報を転送エントリとして作成し、これらのエントリをルータの入力ポートにインストールします。

入力ポート処理と宛先ベースの転送

次の図は、入力処理のより詳細な図を示しています。 

 交換

ルーターの中心となるのは、パケットが入力ポートから出力ポートに実際にスイッチング (転送) されるスイッチング ファブリックです。スイッチングはさまざまな方法で実行できます。

 

  •  メモリスワップ経由最も単純かつ初期のルーターは従来のコンピューターであり、入力ポートと出力ポート間の切り替えは CPU (ルーティング プロセッサ) の直接制御下で行われました。パケットが入力ポートに到着すると、ポートはまず割り込みを介してルーティング プロセッサに信号を送ります。次に、パケットは入力ポートからプロセッサ メモリにコピーされ、ルーティング プロセッサはヘッダーから宛先アドレスを抽出し、転送テーブルで適切な出力ポートを見つけて、パケットを出力ポートのキャッシュにコピーします。(各パケットはバスを 2 回通過します)
  • バスで交換します入力ポートは、ルーティング プロセッサの介入なしに、共有バスを介してパケットを出力ポートに直接転送します。各パケットは単一のバスを通過する必要があるため、ルーターのスイッチング ローンはバス速度によって制限されます。
  • インターネット経由で交換します単一の共有バスの帯域幅制限を克服する 1 つの方法は、より複雑な相互接続を使用することです。前の 2 つのアプローチとは異なり、クロスバー ネットワークは複数のパケットを並行して転送できます。

出力ポート処理 

出力ポート処理では、出力ポート メモリにすでに格納されているパケットをフェッチし、出力リンクに転送します。これには、送信用にキューに入れられたパケットの選択とフェッチ、必要なリンク層および物理層の送信機能の実行が含まれます。 

 

キューはいつ表示されますか? 

 パケット キューは、入力ポートと出力ポートの両方で形成できます。キューイングの場所と範囲は、トラフィック負荷、スイッチング ファブリックの相対速度、およびライン レートによって異なります (キューが増大すると、最終的にはルータのバッファ スペースが枯渇し、使用可能なメモリがないときに到着するパケットは落とされる

入力キューイング

スイッチング ファブリックが(入力回線速度と比較して)到着するすべてのパケットが遅延なく通過できるほど高速ではない場合、到着するパケットは入力ポートでキューに入れられて通過を待つ必要があるため、入力ポートでもパケット キューイングが発生します。スイッチ ファブリックは出力ポートに渡されます。

出力キューイング 

パケットキューは出力ポートで形成できます。 

グループスケジュール

キューに入れられたパケットは出力リンクを介してどのように送信されますか?

1. 先入れ先出し

次の図は、先入れ先出し(FIFO) リンク スケジューリング ルール モデルを示しています。私たちが毎日物を買うために列に並ぶのと同じように、パケットは出力リンク キューに到着するのと同じ順序に従って、リンク上で送信するために選択されます。

 以下の図は、動作中の FIFO キューを示しています。

2. 優先キューイング 

このルールに基づいて、出力リンクに到着するパケットは、出力キュー内の優先クラスに分類されます。通常、各優先クラスには独自のキューがあります。優先度の高いパケットを最初に送信します。優先度が同じ場合、通常は FIFO モードで送信されます。 

 3. ラウンドロビンと重み付けされた公平なキューイング

 ラウンドロビン キューイング ルールでは、パケットはプライオリティ キューイングを使用しているかのようにソートされますが、クラス間に厳密なサービス優先順位はなく、ラウンドロビン スケジューラがこれらのクラス間で順番にサービスを提供します。クラス 1 のパケットが送信され、続いてクラス 2 のパケットがループして送信されます。いわゆるキープワーク キューイング規則により、パケットが送信のためにキューに入れられている間、リンクがアイドル状態のままになることは許可されません。

ラウンドロビン キューイング (重み付け公平キューイング) の一般的な形式。到着したパケットは分類され、クラスごとに適切な待機エリアにキューイングされます。

 インターネットプロトコル: IPv4、アドレッシング、IPv6

IPv4データグラム形式

ネットワーク層のパケットはデータグラムと呼ばれます。 

 IPv4 データグラムのキー フィールドは次のとおりです。

  • バージョンナンバー)。これらの 4 ビットは、データグラムの IP プロトコル バージョンを指定します。バージョン番号を調べることで、ルータは IP データグラムの残りの部分を解釈する方法を決定できます。IP バージョンが異なれば、使用するデータグラム形式も異なります。
  • ヘッダーの長さ。IPv4 データグラムには可変数のオプションを含めることができるため (これらのオプションは IPv4 データグラム ヘッダーに含まれます)、IP データグラム内の実際のペイロードの開始位置を決定するには、これらの 4 ビットが必要です。ほとんどの IP データグラムにはオプションが含まれていないため、一般的な IP データグラムには 20 バイトのヘッダーがあります
  • サービスの種類。タイプ オブ サービス (TOS) ビットは、さまざまなタイプの IP データグラムを互いに区別できるように、IPv4 ヘッダーに含まれています。
  • データグラムの長さ。これは、IP データグラム (ヘッダーとデータ) の合計長 (バイト単位) です。このフィールドの長さは 16 ビットであるため、IP データグラムの理論上の最大長は 65535 バイトです。
  • ロゴ、ロゴ、スライスのオフセット。これら 3 つのフィールドは IP フラグメンテーションに関連します。(IPv6 ではルーター上でのパケットの断片化は許可されません)
  • 人生。ライフタイム (Time-To-Live、TTL) フィールドは、データグラムがネットワーク内で永久にループしないようにするために使用されます。ルーターがデータグラムを処理するたびに、このフィールドの値は 1 ずつ減分されます。TTL フィールドが 0 に減分された場合、データグラムは破棄されなければなりません
  • プロトコル。このフィールドは通常、IP データグラムが最終宛先に到着した場合にのみ存在します。このフィールドの値は、IP データグラムのデータ部分がどの特定のトランスポート層プロトコルに配信されるべきかを示します。プロトコル番号はネットワーク層をトランスポート層にバインドする接着剤であり、ポート番号はトランスポート層をアプリケーション層にバインドする接着剤です。
  • 最初のチェックサム。ルーターが受信した IP データグラム内のビット エラーを検出できるようにするために使用されます。
  • 送信元および宛先の IP アドレス。送信元がデータグラムを生成するとき、その IP アドレスを送信元 IP フィールドに挿入し、最終宛先のアドレスを宛先 IP アドレス フィールドに挿入します。通常、送信元ホストは DNS ルックアップを通じて宛先アドレスを決定します。
  • オプション。オプションフィールドを使用すると、IP ヘッダーを拡張できます。
  • データ(ペイロード)。最も重要なフィールド。データグラムが存在する最初の理由です。

IPv4 データグラムの断片化 

すべてのリンク層プロトコルが同じ長さのネットワーク層パケットを伝送できるわけではありません。リンク層フレームが伝送できるデータの最大量は、最大送信単位 (MTU) と呼ばれます各 IP データグラムは、あるルータから次のルータへのリンク層フレームにカプセル化されるため、リンク層プロトコルの MTU によって IP データグラムの長さが厳密に制限されます。

大きすぎる IP パケットをリンク層フレームのペイロード フィールドに押し込むにはどうすればよいでしょうか? 解決策は、IP データグラム内のデータを複数の小さな IP データグラムにフラグメント化し、これらの小さな IP データグラムを個別のリンク層フレームでカプセル化し、これらのフレームを出力リンク経由で送信することです。これらの小さなデータグラムのそれぞれはフラグメントと呼ばれますチップは、宛先のトランスポート層に到達する前に再組み立てする必要があります。TCP と UDP は両方とも、ネットワーク層から断片化されていない完全なパケットを受信することを期待しており、IPv4 の設計者は、データグラムの再構成をネットワーク ルーターではなくエンド システムに置くことにしました。

IPv4 アドレス指定

ホストとルーターはどのようにネットワークに接続しますか?

通常、ホストにはネットワークに接続されたリンクが 1 つだけあり、ホスト内の IP がデータグラムを送信したい場合は、そのリンク上でデータグラムを送信します。ホストと物理リンクの間の境界はインターフェイスと呼ばれます。 

各 IP アドレスは 32 ビット長 (4 バイトに相当) であるため、2^32 の可能な IP アドレスがあります。これらのアドレスは通常、ドット付き 10 進表記で書かれます。つまり、アドレスの各バイトは 10 進形式で書き込まれます。各バイトはピリオドで区切られます。グローバル インターネット内のすべてのホストとルーターのすべてのインターフェイスには、グローバルに一意の IP アドレスが必要です

次の図は、IP アドレスとインターフェイスの例を示しています (IP サブネットが 3 つあります)。

 3 つのホスト インターフェイスと 1 つのルーター インターフェイスからなるインターネット ネットワークは、サブネットを形成します。サブネットは、IP ネットワークまたは単にネットワークとも呼ばれます。IP アドレス指定では、このサブネットにアドレス 223.1.1.0/24 が割り当てられます。ここで、/24 表記はサブネット マスクと呼ばれることもあり、32 ビットの左端の 24 ビットがサブネット アドレスを定義することを示します。したがって、サブネット 223.1.1.0/24 は、3 つのホスト インターフェイス (223.1.1.1、223.1.1.2、および 223.1.1.3) とルーター インターフェイス (223.1.1.4)、223.1.1.0/24 ネットワークに接続されている他のホストで構成されます。アドレスが 223.1.1.XXX の形式である必要があります

サブネットを決定するには、ホストとルータの各インターフェイスを分離し、いくつかの分離されたネットワーク アイランドを作成し、これらの分離されたネットワークのエンドポイントをインターフェイスで終端します。これらの分離されたネットワークのそれぞれをサブネットと呼びます

上の図には 6 つのサブネットがあります

インターネットのアドレス割り当て戦略は、クラスレス ドメイン間ルーティング (CIDR) と呼ばれます。サブネット アドレス指定を使用する場合、32 ビットの IP アドレスは 2 つの部分に分割され、ドット付き 10 進数形式の abcd/ x になります (x はビット数を示します)。アドレスの最初の部分に。x の最上位ビットは IP アドレスのネットワーク部分を構成し、多くの場合、そのアドレスのプレフィックスと呼ばれます。組織外のルーターが宛先アドレスが組織内にあるデータグラムを転送する場合、アドレスの最初の x ビットのみを考慮する必要があります。

CIDR が採用される前は、IP アドレスのネットワーク部分の長さは 8、16、24 ビットに制限されており、これはそれぞれクラス A、B、および C ネットワークとして知られる機密アドレス指定の一種です。

IP ブロードキャスト アドレスは 255.255.255.255 です。ホストが宛先アドレス 255.255.255.255 のデータグラムを送信すると、メッセージは同じネットワーク内のすべてのホストに配信されます。

ホストアドレスの取得: 動的ホスト構成プロトコル

 組織がアドレスのブロックを取得すると、組織内のホスト ドメイン ルーター インターフェイスに IP アドレスを 1 つずつ割り当てることができます。ホスト アドレスは手動で構成できますが、現在は動的ホスト構成プロトコル (動的ホスト構成、DHCP) を使用して完了することが多くなっています。DHCP を使用すると、ホストは IP アドレスを自動的に取得できます。DHCP には、ホストをネットワークのネットワーク関連の側面に自動的に接続する機能があるため、プラグ アンド プレイ プロトコルまたはゼロ構成プロトコルと呼ばれることがよくあります

DHCP はクライアントサーバープロトコルです。通常、クライアントは新しく到着したホストであり、主に自身が使用する IP アドレスを含むネットワーク構成情報を取得します。特定のサブネットにサーバーがない場合は、DHCP リレー エージェントが必要になります。このエージェントは、サーバーに使用される DHCP サーバーを認識しています。ネットワークのアドレス

新しく到着したホストの場合、DHCP プロトコルは、上に示したネットワーク設定の 4 段階のプロセスです。

  • DHCP サーバーの検出。新しく到着したホストの最初のタスクは、対話する DHCP サーバーを検出することです。これは、クライアントが UDP パケットでポート 67 に送信するDHCP検出メッセージを使用して実行できます。UDP パケットは IP データグラムにカプセル化されますが、このデータグラムは誰に送信されるべきでしょうか? ホストは、ネットワークの DHCP サーバー アドレスはおろか、接続されているネットワークの IP アドレスも知りません。この場合、DHCP クライアントは、ブロードキャスト宛先アドレス 255.255 を使用する DHCP 検出メッセージを含む IP データグラムを生成します。 .255.255 および「このホスト」送信元 IP アドレス 0.0.0.0 を使用します。DHCP クライアントは IP データグラムをリンク層に渡し、リンク層はサブネットに接続されているすべてのノードにフレームをブロードキャストします。
  • DHCP サーバーによって提供されます。DHCP サーバーが DHCP 検出メッセージを受信すると、DHCPメッセージ 各サーバーが提供するメッセージには、受信したディスカバリ メッセージのトランザクション ID、クライアントに推奨する IP アドレス、ネットマスク、IP アドレスのリース期間が含まれます。
  • DHCP リクエスト。新しく到着したクライアントは、1 つ以上のサーバーから 1 つを選択し、選択したサーバーにDHCP 要求メッセージを提供して応答し、設定されたパラメーターをエコーし​​ます。
  • DHCP ACK。サーバーは、DHCP ACK メッセージで DHCP 要求メッセージに応答し、必要なパラメータを確認します。

 

 IPv6

新しいサブネットと IP ノードの追加により、32 ビットの IP アドレス空間が使い尽くされようとしており、大規模な IP アドレス空間の需要に対応するために、新しい IPv6 プロトコルが開発されました。

IPv6データグラム形式

  • アドレス容量が拡張されました。IPv6 では、IP アドレスの長さが 32 ビットから 128 ビットに増加します。これにより、世界中で IP アドレスが不足することがなくなります。
  • 簡素化され効率的な 40 バイトのヘッダー。 
  • ストリームラベル。

IPv6 で定義されているフィールドは次のとおりです。

  • バージョン。この 4 ビットのフィールドは、IP バージョン番号を識別するために使用されます。
  • トラフィックのタイプ。この 8 ビットのフィールドは、IPv4 フィールドと同様の意味を持ちます。
  • ストリームラベル。この 20 ビットのフィールドは、データグラムのストリームを識別するために使用され、ストリーム内の特定のデータグラムに優先順位を与えることができます。
  • ペイロードの長さ。この 16 ビット値は、符号なし整数として、IPv6 の固定長 40 バイトのデータグラム ヘッダーに続くバイト数を示します。
  • 次のヘッダー。このフィールドは、データグラム内のコンテンツを配信する必要があるプロトコル (TCP や UDP など) を識別します。
  • ジャンプ限界。データグラムを転送する各ルーターは、このフィールドの内容を 1 ずつ減らし、ホップ制限技術が 0 に達すると、データグラムは破棄されます。
  • 送信元アドレスと宛先アドレス。
  • データ。これは、IPv6 データグラムのペイロード セクションです。

IPv4 と比較すると、IPv6 のいくつかの部分が存在しなくなりました

  • 断片化/再構築。IPv6 では、中間ルーターでの断片化と再構築は許可されません。送信元と宛先でのみ実行できます。ルーターが受信した IPv6 データグラムが大きすぎて発信リンクに転送できない場合、ルーターはデータグラムを破棄し、「パケットが大きすぎます」という ICMP エラー メッセージを送信者に送信するだけで済みます。送信者は、より短い長さの IP データグラムを使用してデータを再送信できます。ネットワーク内のIP転送速度を大幅に高速化します。
  • 最初のチェックサム。インターネットのトランスポート層およびデータリンク層プロトコルが検証操作を実行するため、削除されました
  • オプション。オプションは標準 IP ヘッダーの一部ではなくなりました。ただし、消えるのではなく、IPv6 ヘッダーの「次のヘッダー」で示される位置に現れる場合があります。

 ユニバーサルフォワーディングとSDN

 

おすすめ

転載: blog.csdn.net/yangSHU21/article/details/131347325