コンピュータネットワークのトップダウンアプローチノート03

「コンピュータネットワークトップダウン方式」学習記03:ネットワーク層。

ネットワーク層は、ホスト間の通信サービスを提供します。ネットワーク内のすべてのホストとルーターにはネットワーク層部分があります。ネットワーク層は、データ プレーンとコントロール プレーンの 2 つの部分に分類できます。

第 4 章 ネットワーク層: データプレーン

1。概要

ネットワーク層のタスクは、送信元ホストのメッセージ セグメントを取得し、それをデータグラムにカプセル化し、ルーターによる転送を通じてそのデータグラムを宛先ホストのネットワーク層に送信することです。ネットワーク層の役割は、あるホストから別のホストにパケットを移動することであると言えます。ネットワーク層の機能は、次の 2 つの部分に分けることができます。

  • 転送: パケットを入力リンクから適切な出力リンクに移動する、ルーターによるルーターローカルのアクション。これはデータ プレーンの主なタスクです。
  • ルーティング: パケットが移動するために通過するエンドツーエンドのパスを決定します。

この章では主にネットワーク層の転送機能について説明します。

2. ルーターの仕組み

ルーターは次のコンポーネントで構成されます。

  • 入力ポート
  • スイッチングファブリック
  • 出力ポート
  • ルーティングプロセッサ

入力ポートの処理

入力ポートの処理:

线路端接----->数据链路处理(协议,拆封)----->查找,转发,排队----->交换结构

入力ポートでは、ルーターは転送テーブルを使用して出力ポートを検索し、パケットをスイッチング ファブリックに渡します。転送テーブルはルーティング プロセッサによって計算および更新されます。転送テーブルはルーティング プロトコルによって計算されることも、リモート SDN コントローラからコンテンツを受信して​​ラインカードにコピーすることもできます。

交換

ルーターは、スイッチング ファブリックを介して、入力ポートから出力ポートにパケットを転送します。交換にはいくつかの方法があります。

  • メモリスイッチング: 初期のルータのスイッチングはルーティングプロセッサの直接制御下で完了しました. 入力ポートと出力ポートはIOデバイスに似ていました. パケットを受信した後, 信号は割り込みを通じてプロセッサに送信されました. プロセッサは抽出しました宛先アドレスを取得してプロセッサに転送し、パケットは出力ポートのバッファにコピーされます。最新のルータのルックアップと宛先アドレスのパケット ストレージは、入力ライン カードによって処理されます。
  • バスの切り替え: 入力ポートは、バスを介してパケットを出力ポートに直接送信します。入力ポートは、ローカル出力ポートを示すためにグループのラベルを事前に計画する必要があります。すべての出力ポートはバスからグループを受信できますが、ラベルに一致する出力ポートのみがグループを保存し、ラベルを削除します。
  • 相互接続ネットワークの切り替え: クロスバー ネットワークなど、より複雑な相互接続ネットワークの切り替え。

出力ポート処理

出力ポートは次のように処理されます。

交换结构----->排队(缓存管理)----->数据链路处理(协议,封装)----->线路端接

キューイングは、トラフィック負荷、スイッチング ファブリックのレートなどに応じて、入力ポートまたは出力ポートで発生することがあります。キューが増大し、ルーターのキャッシュ スペースが枯渇すると、パケット損失が発生します。

入力ポートで 2 つのパケットが同じ出力ポートに送信された場合、1 つのパケットはブロックされ、キュー内で待機する必要があります。待機パケットの後ろにキューイングされているパケットも、出力ポートが占有されていないにもかかわらず待機することになり、この現象を入力キューイングスイッチではラインフロントブロッキングと呼びます。

出力ポートでは、出力ポートの送信速度が制限されているため、キューが形成される場合もあります。パケットをキャッシュするのに十分なメモリがない場合は、到着したパケットを破棄するか、新しいパケット用のスペースを確保するために 1 つ以上のキューに入れられたパケットを削除する必要があります。場合によっては、バッファがいっぱいになる前にパケットをドロップすると、送信者に輻輳信号が送信される可能性があります。パケットのドロップとマーキングの戦略は、アクティブ キュー管理アルゴリズムと呼ばれます。

ルーターには、トラフィック負荷の変動を吸収するためにキャッシュが必要です。長年にわたり、キャッシュ長の経験値は RTT にリンク容量 C を乗算して求められてきました。最近の研究によると、大量の TCP がリンクを流れる場合、キャッシュの数は B=RTT*C*n^(-1/2) になります。

キューに入れられたパケットが出力リンクを介して送信される方法には、パケット スケジューリング戦略を使用する必要があります。一般的に使用される戦略には次のものがあります。

  • 先入先出
  • 優先キューイング
  • 循環キューイング
  • Weighted Fair Queuing (WFQ): ラウンドロビン キューイングに基づいて、各クラスに重みが割り当てられ、このクラスが受信するサービスは、この重み/すべてのクラスの重みの合計になります。しかし、実際には、あるパケットの送信を中断して別のパケットの送信を開始することはできないため、重みを保証することは非現実的です。

3.インターネットプロトコル

3.1 IPv4 データグラムヘッダー形式

  • バージョン: IP プロトコルのバージョンを示します。
  • ヘッダー長: IP データグラム ヘッダーの長さを示す 4 バイト。このフィールドの値は 4 バイト単位です。最小値は 5、20 バイトの固定部分のみであることを示します。最大値は 15はIPデータを示し、ヘッダには20バイトの固定部と最大40バイトの可変部が含まれます。
  • オプションのフィールド: デバッグ、測定、セキュリティなどをサポートするために使用されます。可変長は IP データグラムを処理するルーターのオーバーヘッドを増加させるため、実際にはほとんど使用されません。
  • パディング: パディングにより、IP データグラム ヘッダーが 4 バイトの整数倍になるようにします。
  • Differentiated Service フィールド: 数値を使用して、さまざまなレベルのサービス品質を提供します。このフィールドは通常は使用されません。
  • 全長フィールド: IP データグラムの全長 (ヘッダー + データ ロード) を示します。
  • IP データグラムの断片化には、識別子、フラグ、およびフラグメント オフセットが使用されます。IP データグラムの長さがフレームのデータ ペイロードの最大長 (最大送信単位 MTU) を超える場合、カプセル化できないため、フラグメント化する必要があります。
    • 識別: 同じデータグラムの断片化された各データグラムは同じ識別情報を持ちます。IP ソフトウェアはカウンタを保持しており、データグラムが生成されるたびにカウントが 1 ずつ増加し、その値が識別フィールドに割り当てられます。
    • フラグ:3ビット
      • DF ビット: 1 は断片化が許可されていることを意味します
      • MF ビット: 1 はまだフラグメントが存在することを意味し、0 はこれが最後のフラグメントであることを意味します
      • 予約ビット: 0 でなければなりません
    • スライスオフセット:8バイト単位。断片化されたデータグラムのデータ ペイロード部分が元のデータグラムの位置からオフセットされていることを示します。
  • ライフタイム TTL: 最初は秒単位で測定され、最大ライフスパンは 255 秒から、ルーターによる転送時にこのルーターで費やされた時間を差し引いたものです。ルーターによって転送されるときのホップ数は -1 になります。
  • プロトコルフィールド:データ部分がどのような種類のプロトコルデータユニットであるかを示します
    • 1: ICMPメッセージ
    • 6: TCPメッセージ
  • ヘッダー チェックサム: インターネット チェックサムを使用して、送信中のヘッダー エラーを検出します。IP 層は信頼性の高い伝送サービスを提供しないため、IPv6 ではルーターはヘッダー チェックサムを計算しなくなりました。

3.2 IPv4 データグラムの断片化

リンク層フレームが伝送できるデータの最大量は、最大伝送単位 MTUと呼ばれます。各 IP データグラムのサイズは MTU によって制限されます。送信中、リンクごとに MTU が異なる場合があるため、IP データグラムを複数の部分に分割する必要があります。ルーターのパフォーマンスへの影響を避けるために、IPv4 の設計者は、データグラムの再組み立て作業をエンドシステムに組み込みました。宛先ホストのネットワーク層が一連のデータグラムを受信すると、IP データグラム ヘッダーの識別子、フラグ、およびフラグメント オフセット フィールドを通じて IPv4 データグラムを再構築します。

3.3 IPv4 アドレス指定

ホストと物理リンクの間の境界はインターフェイスと呼ばれ、ルーターとリンクの間の境界もインターフェイスと呼ばれます。すべてのホストとルーターは IP データグラムを送受信できるため、各インターフェイスには独自の IP アドレスがあります。各 IP アドレスは 32 ビット長で、ドット付き 10 進数表記で表されます。例: 192.32.216.9/24。/24 はサブネット マスクを表します。これは、サブネットの最初の 24 ビットが同じであり、最後の 8 ビットがサブネット内のホストを区別するために使用されることを意味します。ルーターインターフェースもサブネットを形成できることに注意してください。

初期の IP アドレスでは、ネットワーク部分は 8、16、24 ビットに制限されていたため、サブネットは 3 種類のネットワーク (A、B、C) に分割されていました。この種類のアドレス指定は、 分類されたアドレス指定 と呼ばれます分類されたアドレス指定は十分な柔軟性がないため、分類は 3 つだけになり、CIDR クラスレス ドメイン間ルーティングが使用され、IP アドレスは abcd/x で表現されます。

各インターフェースには IP アドレスが必要ですが、このアドレスはデバイスの製造時に割り当てられるのではなく、取得されます。まず、組織がアドレスを取得したい場合は、ISP に要求する必要があります。ISP の IP アドレスの割り当ては、Internet Assigned Names and Numbers Corporation によって管理されます。組織がアドレスのブロックを取得すると、組織内のホストとルーター インターフェイスに IP アドレスを 1 つずつ割り当てることができます。ルーターの IP アドレスは、多くの場合、管理者によって手動で設定されます。ホスト アドレスの構成は手動で行うこともできますが、主に動的ホスト構成プロトコル DHCP を使用して行われます。DHCP を使用すると、ホストは一時的な IP アドレスを自動的に取得できるほか、サブネット マスク、ファーストホップ ルーター アドレス (デフォルト ゲートウェイ)、DNS サーバー アドレスなどの情報も取得できます。DHCP は、ホストをネットワークに自動的に接続する機能があるため、プラグ アンド プレイ プロトコルまたはゼロ構成プロトコルと呼ばれます。各サブネットには DHCP サーバーまたはリレー エージェントがあります。ホストが DHCP 経由で IP アドレスを取得するプロセスは次のとおりです。

  • DHCP サーバー検出: ホストは、UDP パケットでDHCP 検出メッセージをポート 67 に送信します送信元 IP アドレスは 0.0.0.0、宛先 IP アドレスはブロードキャスト アドレス 255.255.255.255 です。
  • DHCP サーバーから提供: DHCP ディスカバリーメッセージを受信した DHCP サーバーは、IP アドレス、リース期間などを含む応答メッセージをブロードキャストします。
  • DHCP リクエスト: 顧客は、選択した DHCP サーバー (複数の DHCP サーバーがあり、顧客は最適なものを選択できます) に DHCP リクエスト メッセージを送信し、設定パラメータをエコーし​​ます。
  • DHCP ACK: サーバーは DHCP ACK メッセージで要求に応答します。

3.4 ネットワークアドレス変換

サブネットは、ISP からアドレスを取得した後、アドレスを管理して割り当てることができますが、家庭内にますます多くの電子デバイスがある場合など、サブネットは拡大する可能性があります。この場合、ネットワーク アドレス変換 (NAT)という簡単な方法を使用してアドレスを管理できますホーム ネットワーク内のアドレス指定は 10.0.0.0/8 にすることができます。これは、ホーム ネットワークや専用アドレスを持つ領域などのプライベート ネットワーク用に RFC によって予約されている IP アドレス空間の一部です。これらのアドレスは特定のネットワーク内でのみ使用でき、より大きなネットワーク空間では使用できません。NAT 対応ルーターの機能は、ホーム ネットワーク内のプライベート アドレスを変換し、ネットワークの内部詳細を外部から隠すことです。ホーム ネットワークから出るすべてのアドレスは同じであり、ネットワークに入るすべての宛先 IP アドレスも同じです。NAT ルーターには、内部ホスト IP アドレス、送信元ポート番号、および新しいポート番号を関連付けるNAT ルーティング テーブルがあります。NAT ルーターは、内部ネットワークへのデータグラムの転送を完了します。

このように、内部ネットワークのポート番号とIPはNATによって新しいIPと新しいポート番号に変換されますが、内部ネットワークでサーバーが稼働している場合、待機用のウェルノウンポートが決まりません。 NATトラバーサルツールとユニバーサル プラグ アンド プレイ プロトコルを使用します。

3.5 IPv6

IPv4 アドレス空間の枯渇の問題に対処し、IPv4 の実践における問題を最適化するために、IPv6 がリリースされました。IPv6 には 128 ビットのアドレス容量があるため、アドレスが枯渇することはありません。IPv4 と比較すると、IPv6 はフラグメンテーションと再構成をサポートしておらず、データグラムを直接破棄し、ICMP メッセージを使用して送信者に小さい IP データグラムを送信するように通知します。トランスポート層とデータリンク層が検証操作を提供しているため、ヘッダーのチェックサムは存在しなくなり、IP データグラムの検証が削除され、パケットの処理時間も短縮されます。ヘッダーには TTL フィールドがあるため、それぞれの元のチェックサムを再計算する必要があります。現在、IPv4 から IPv6 への移行が進められており、トンネルの構築などの方法が実用化されていますが、完全な移行にはまだ多くの困難と時間を解決する必要があります。

第 5 章 ネットワーク層: コントロール プレーン

1。概要

ネットワーク層の制御機能には、ルーターが送信元ホストから宛先ホストへのエンドツーエンド パスに沿ってデータグラムを転送する方法の制御や、ネットワーク層のコンポーネントとサービスの構成と管理の方法の制御が含まれます。これらの制御機能を実現するには 2 つの方法があります。

  • ルーターごとの制御: 各ルーターには転送機能とルーティング機能が含まれており、各ルーターには他のルーターと通信して転送テーブルの値を計算するルーティング コンポーネントがあります。
  • 論理集中制御: 論理集中コントローラは、各ルーターが使用する転送テーブルを計算して配布します。

2. ルーティングアルゴリズム

ルーティング アルゴリズムは、送信者から受信者までの最適なパスを選択するアルゴリズムです。最良のパスは通常、コストが最小のパスを指しますが、コストはさまざまな要因によって決まりますが、ルーティング アルゴリズムを検討する際には、コストが与えられているものと仮定します。ルーティング アルゴリズムを分類するには、さまざまな方法があります。

集中と分散に応じて分類:

  • 集中ルーティング アルゴリズム: 完全なグローバル ネットワーク ステータス情報を使用して、最低コストのパスを計算します。このタイプのアルゴリズムは、リンク ステート アルゴリズム LS と呼ばれることがよくあります。
  • 分散型ルーティング アルゴリズム: ルーターは、反復的かつ分散的な方法で最低コストのパスを計算します。ノードは、反復計算と隣接ノードとの情報交換を通じて、最小コストのパスを徐々に計算します。たとえば、距離ベクトル アルゴリズム DV は、分散型ルーティング アルゴリズムです。

静的および動的による分類:

  • 静的ルーティング アルゴリズム: 通常は手動で調整されます。
  • 動的ルーティング アルゴリズム: ネットワーク負荷とトポロジの変化に応じてパスを変更します。

負荷に敏感かどうかに応じて分けられます。

  • 負荷依存アルゴリズム: リンクのオーバーヘッドは、基礎となるリンクの輻輳レベルを反映して動的に変化し、ルーティング アルゴリズムは輻輳リンクを回避する傾向があります。
  • 負荷が遅いアルゴリズム: オーバーヘッドは変わりません。オーバーヘッドは輻輳レベルを明示的に反映していないため、今日のルーター選択アルゴリズムは負荷に影響されません。

2 つのルーティング アルゴリズム
リンクステート ルーティング アルゴリズム:
各ルーターは、接続されているリンクとコストを含むリンクステート パケットをネットワーク内の他のすべてのルーターにブロードキャストします。各ルーターはネットワークを完全に把握し、リンクステート ルーティング アルゴリズムを通じて最低コストのパスを計算します。発振の問題が発生する可能性があります。

距離ベクトル ルーティング アルゴリズム:
ノードが隣接ノードのリンク コストの変化を検出すると、ルーティング テーブル全体を直接隣接するノードに転送し、隣接ノードはそれに応じて自身の距離テーブルを更新します。距離テーブルは反復を通じて計算されます。 最小距離パス。ルーティング ループが発生する可能性があります。

3. インターネット自律システム内のルーティング アルゴリズム: OSPF

すべてのルーターに同じルーティング アルゴリズムを実装させることは不可能です。一方で、インターネットの規模は非常に大きいため、すべてのホストにすべての経路情報を保存することは現実的ではありません。一方、各 ISP は独自のルータ ネットワークを持ち、ルータを思いどおりに実行したり、ネットワークの内部構成を外部から隠したりしたいと考えています。したがって、ルーターは通常、自律システム (AS) に編成され、各 AS は同じ管理制御下にあるルーターのグループで構成されます。同じ AS 内のルーターは同じルーティング プロトコルを実行し、相互に関する情報を持っています。自律システム内で実行されるルーティング アルゴリズムは、自律システム内ルーティング プロトコルと呼ばれます。

Open Shortest Path First (OSPF)アルゴリズムは、インターネット上の AS 内部ルーティングの選択に広く使用されているアルゴリズムです。OSPF は、フラッディング リンク状態情報とダイクストラの最短パス アルゴリズムを使用します。リンクのコストはネットワーク管理者によって設定されます。たとえば、リンク コストが 1 に設定されている場合、最小ホップ数ルーティングが実装されます。OSPF を使用する場合、ルータは自律システム内の他のすべてのルータにルーティング情報をブロードキャストし、リンク ステータスが変化したとき、または特定の期間が経過したときに、ルータはリンク ステータス情報をブロードキャストします。OSPF の利点は次のとおりです。

  • セキュリティ: 認証を使用すると、信頼されたルータのみが AS 内の OSPF プロトコルに参加できます。
  • 同じコストの複数のパス: 同じコストの複数のパスの場合、OSPF では複数のパスの使用が許可されます。
  • ユニキャストおよびマルチキャスト ルーティングの包括的なサポート。
  • 単一 AS での階層構造のサポート: OSPF 自律システムは複数のエリアを階層的に構成でき、各エリアは独自の OSPF リンク ステート ルーティング アルゴリズムを実行し、ルーターはエリア内でのみブロードキャストし、1 つ以上の境界ルーターが外部に流れるパケットにルーティング オプションを提供する役割を果たします。エリア。

4.ISP間ルーティング:BGP

上記のOSPFはAS内のルーティングプロトコルであり、パケットが複数のASにまたがる場合には、異なるAS間のルーティングプロトコルを使用する必要がある。インターネットでは、AS はボーダー ゲートウェイ プロトコル BGPと呼ばれる同じ AS 間ルーティング プロトコルを実行します。

BGP の場合、パケットがパケットのターゲット ネットワークに送信される限り、ターゲット ホストへの送信の問題を考慮する必要はありません。したがって、BGP では、宛先はアドレス プレフィックス、つまりネットワークになります。BGP は、次の 2 つの手段を通じてパケットをターゲット ネットワークに送信します。

  • 近隣 AS からプレフィックス到達可能性情報を取得します。BGP を使用すると、各サブネットがその存在をインターネットの他の部分にアドバタイズできるため、AS はサブネットの存在を認識し、このサブネットにパケットを配信できます。
  • 最適なルーティング パスを決定する: ポリシーと到達可能性情報に基づいて、ルーターはパケットを送信するための最適なルーティング パスを選択します。

以下では、これら 2 つの側面から BGP の動作原理を分析します。

4.1 アドバタイズメントBGP経路情報

ルーターは常に AS 内または AS のエッジにあるため、ゲートウェイ ルーターまたは内部ルーターのいずれかになります。ゲートウェイ ルーターは AS のエッジにあり、別の AS のルーターに接続されています。ネットワークの存在とそこに到達するパスは、ルーターによって BGP メッセージを送信することによって通知されます。ルーターは、ポート 179 上の半永続的な TCP 接続を使用してルーティング情報を交換します。各ルーターと送信される BGP メッセージ間の接続は、BGP 接続と呼ばれます。2 つの AS にまたがる BGP 接続は外部 BGP (eBGP) であり、AS 内のルーターの BGP セッションは内部 BGP (iBGP) です。ゲートウェイルータは、まず他の AS のゲートウェイルータに eBGP で自分の存在と到達可能性情報(パス)を通知し、その情報を受け取ったルータは iBGP を使って同じ AS 内の他のルータに情報を通知し、AS 内のすべてのルータに通知します。別の AS へのパスを知ることができます。

4.2 ルーティングの選択

BGP ルーティング戦略を検討する前に、AS-PATH と NEXT-HOP について理解する必要があります。AS-PATH は、現在の AS から AS へのパスです。もちろん、他の AS にアドバタイズする場合は、パス自体も追加する必要があります。たとえば、AS1 から AS10 へのパスは AS2-AS5-AS10 であり、アドバタイズされるパスは AS1-AS2-AS5-AS10 となります。1 つの AS へのパスが複数ある場合があり、したがって複数の AS-PATH が存在する場合があります。NEXT-HOP は、AS-PATH 開始アドレスのルーター インターフェイス IP アドレスです。ルーティングアルゴリズムとは、複数のAS-PATHの中から適切な経路を選択するためのアルゴリズムである。BGP は次のルールを使用して、パスが 1 つだけ残るまでルートを選択します。

  • ルーターのローカル設定が優先されます。ローカル設定はネットワーク管理者によって設定されます。
  • 残りのルートのうち、距離ベクトル アルゴリズムを使用して、ルーターのホップ数ではなく AS のホップ数が最も短い AS を持つルートが選択されます。
  • 残った経路のうち、NEXT-HOPルータに最も近い経路を選択します。
  • 複数の経路が残っている場合は、BGP 識別子を使用して経路を選択します。

おすすめ

転載: blog.csdn.net/Aaron503/article/details/130906496