コンピュータネットワークを深く理解する-8 ネットワークレイヤー5

目次

1. ネットワークの輻輳制御

(1) 輻輳制御とフロー制御

1. 混雑の主な原因

2. 混雑を解消する方法

(2) デッドロックとその防止

1. ストアアンドフォワードデッドロックとその防止

2. リロードデッドロックとその防止

2. レイヤ3スイッチとレイヤ3スイッチング

(1) 3層スイッチのハードウェア構成

1. 純粋なソフトウェアルーティングモジュールを備えたレイヤー3スイッチ

2. 純粋なハードウェアルーティングモジュールを備えたレイヤー3スイッチ

3. ソフトウェアとハ​​ードウェアをルーティングモジュールと組み合わせたレイヤー3スイッチ

(2) 3層スイッチング原理


1. ネットワークの輻輳制御

ネットワークの輻輳は、通信サブネットの特定の部分に到着するデータグラムが多すぎて時間内に処理できない場合(サブネットの負荷がネットワークのスループット容量(パケット数/秒)を超える)、この部分で問題が発生する場合に発生します。ネットワーク全体でもパフォーマンスが低下する現象。混雑がひどい場合には、ネットワーク通信サービスが停止し、デッドロックが発生する場合もあります。

輻輳のあるネットワークでは、特定のノードに到着したデータグラムは利用可能なバッファがない状況に遭遇して破棄されるため、これらのデータグラムは送信元ノードによって再送信されなければならず、その結果、通信サブネットが実効スループットの低下を引き起こします。これによりループが発生し、通信サブネットの一部またはすべてがデッドロック状態になり、最終的にはネットワークの実効スループットがゼロに近くなります。

(1)輻輳制御とフロー制御

輻輳制御は、ユーザーが送信したトラフィックを通信サブネットが確実に伝送できるようにする必要があります。これは世界的な問題であり、ホスト、ルーターの設計、およびネットワーク伝送パフォーマンスの低下に関連するすべての要素が関係します。

フロー制御はポイントツーポイント通信に関連しています。主に、送信側が速く、受信側が遅いという問題を解決します。これはローカルな問題です。制御方法は、受信側が時間を確保できるように送信側のデータ送信速度を抑制することです。一般的にはフィードバックベースの制御です。

1. 混雑の主な原因

ノードのバッファ容量が小さすぎる、出力リンクの通信帯域幅が十分でない、プロセッサの速度が十分でないという 3 つの側面があります。

2. 混雑を解消する方法

次の 3 つのタイプがあります。

1.バッファ事前割り当て方法Buffer Preallocation

仮想回線パケット交換ネットワークで一般的に使用されます。仮想回線が確立されると、通話要求パケットが通過する各ノードは、この仮想回線に 1 つ以上のデータ バッファを事前に割り当てる必要があります (つまり、各ノードには割り当て用のバッファが必要です)。現在ノードに使用可能なバッファがない場合 (応答信号が「ビジー」である場合)、仮想回線を確立するときに、通話要求パケットは仮想回線を確立するために他のパスを選択できます。このようにして、パスを通過する各ノードは、仮想回線ごとに永続的なバッファを設定でき (仮想回線が削除されるまで)、データグラムを受信および転送するためのスペースが常に存在します。ノードがデータグラムを受信して​​転送すると、ノードは送信ノードに確認メッセージを返します (データグラムが送信され、別のデータグラムを送信できることを送信ノードに通知します)。この確認メッセージは、一方ではデータグラムが正しく受信されたことを受信ノードに伝え、他方では送信ノードに次のデータグラムの受信に備えてノードがバッファを空にしたことを伝えます。

ノード間のプロトコルで複数の未処理データグラムの存在が許可されている場合、輻輳を完全に排除するために、各ノードは、実際のトラフィックがあるかどうかに関係なく、仮想回線ごとにウィンドウ サイズのバッファを予約する必要があります。このように、将来的には特定の接続に多くのリソースが占有され、ネットワーク リソースの有効利用率が低くなります。

この輻輳制御方法は、主にデジタル音声などの高帯域幅、低遅延の状況で使用されます。

2.パケットドロップ_

データグラム用のバッファを事前に予約する必要はなく、ルータのバッファがいっぱいになると後続のデータグラムは破棄され、バッファのスペースが空いた後でのみデータ パケットが再受信されます。

ネットワークがデータグラム サービスを使用している場合 (確認応答は必要ありません)、輻輳を防ぐためにこの方法を使用しても大きな影響はありません。 データグラム サービスの各パケットには完全なルーティング アドレス情報があり、個別に選択できるためです。 最適なルーティングが見つかった場合は、元のパスのパフォーマンスが悪い場合は、他のより良いパスに自動的に切り替えてパケット交換を行います。さらに、データグラムサービスでは、受信ノードはパケット受信後の確認を行う必要がないため、タイムリーに行うことができます。破棄しても送信ノードは確認応答を長時間待たされることはありません。

ネットワークが仮想回線サービス(確認応答が必要) を使用している場合、輻輳が解決された後に再送信できるように、破棄されたデータグラムのバックアップを前のノードに保存する必要があります。

3. クォータ制御方法。

これは、通信サブネットに「ライセンス」と呼ばれる特別な情報を適切な数設定することで実現されます。ライセンスの一部は、通信サブネットが動作し始める前に特定の戦略に従って各ソース ノードに事前に割り当てられ、残りの部分はサブネットが動作し始めた後に Wang Zhong を中心に循環されます。ソース ノードがソース システムからデータグラムを送信したい場合は、まずライセンスを取得し、送信されるデータグラムごとにライセンスをキャンセルする必要があります。宛先ノードは、データグラムを受信するたびにライセンスを生成し、それを宛先システムに送信します。これにより、サブネット内のデータグラム数がライセンス数を超えないようになり、輻輳の発生が防止されます。ただし、ネットワークの伝送効率は最適ではない可能性があります。

この制御方法は、トークン リング ネットワークにおける中程度の競合ソリューションに似ています。トークン リング ネットワークでは、ソース ノードはデータを送信するためにネットワーク内で一意のトークンを取得する必要がありますが、違いは、証明書は一意ではなく、多数存在する可能性があることです (データは確実です)。

(2) デッドロックとその防止

デッドロックとは、一部のノードに空きバッファがないためにデータグラムの受信および転送ができないことを意味します (転送時には一定量のバッファ スペースも必要です)。その結果、ノードは互いに待機し、データグラムの受信または転送ができなくなります。このデッドロックは維持されており、深刻な場合にはネットワーク全体が麻痺する可能性もあります。

よくあるデッドロックの状況と防止方法

1. ストアアンドフォワードデッドロックとその防止

最も一般的なデッドロックは、2 つのノード間で発生する直接ストア アンド フォワード デッドロックです。たとえば、A\B\C のバッファ領域がすべて満杯です。A は B に送信します。B が満杯の場合、送信前にスペースを空けるためにいくつかのパケットを送信する必要があります。B は C に送信し、C も満杯です。 C が A に送信します。A もいっぱいです。このように、AはBがバッファをクリアするのを待ち、BはCを待ち、CはAを待つことになります。しかし、実際には現状ではこの3つのノードのバッファをクリアすることができません。ノードがデッドロック状態になると、そのノードに接続されているすべてのリンクが完全に輻輳します。

解決:

1. 各ノードに m+1 個のバッファを設定し、それらに順番に番号を付けます。m は通信サブネットの直径、つまり、ソース ノードから宛先ノードまでのリンク セグメントの最大数です。各ソース ノードは、そのバッファ番号 0 が使用可能な場合にのみソース システムからデータグラムを受信でき、このデータグラムは空きバッファ番号 1 を持つ隣接ノードにのみ転送できます。その後、ノードはデータを転送します。レポートは転送されます。バッファNo.2が空いている隣接ノードに送信します。などなど。最終的に、データグラムは宛先ノードに正常に到達するか、ある時点で m 番のバッファに到達して転送できなくなりますが、この時点でループが発生しているはずです。各データグラムには増加する数の規則に従ってバッファが割り当てられるため、ノードは空きバッファを求めてお互いを待つことができず、デッドロックが発生します。この方法の欠点は、ノードがアイドル バッファによってバッファリングされているにもかかわらず、特定の番号の必要なバッファがたまたま存在しないにもかかわらず、データグラムが依然として待機する必要があり、結果としてバッファとリンクが無駄になることです。

2. 各データグラムは、グローバルに一意の「タイムスタンプ」を保持します。各ノードはリンクごとに特別なバッファを予約する必要があり、他のバッファを使用して中継データグラムを保存できます。データグラムのタイムスタンプは、出力リンク キューに順番に入れられます。たとえば、A が B に送信し、B には空きバッファがありませんが、それはたまたま A に送信されるデータグラムでした。このとき、A/B は特別な受信バッファを介してデータグラムを交換できます。B にどちらのバッファも存在しない場合は、空きバッファでも空きバッファでも、ノードBがAにデータグラムを送信するには、ノードAと送信方向がほぼ同じデータグラムとノードAのデータグラムを強制的に交換する必要があります。ノード A のデータグラムはノード B のデータグラムより大きくなければなりません。サブネット内の最も古いデータグラムがブロックされずに宛先に転送されることを保証するために、より早いタイムスタンプを持ちます。このようにして、デッドロックを回避するために、各データグラムは最終的に宛先ノードに段階的に送信されます。

2. リロードデッドロックとその防止

これは、データ パケットを再構成して元のデータグラムに復元するプロセス中に発生するデッドロックです。

宛先ノードのメッセージ再構成用のバッファ スペースが限られており、受信しているメッセージが何個のデータ パケットに分割されているかを知ることができない場合、パケット全体の再構成を完了できないため、デッドロックが発生する可能性があります。バッファリングされたパケットは、このとき、隣接ノードはまだデータ パケットを送信し続けていますが、使用可能なバッファ領域がないため、ノードは後続のパケットを受信し続けることができません。隣接ノードは再送信できますが、宛先ノードのバッファはクリアされず、送信元ノードが何度も再送信を試みた後、隣接ノードは迂回して別のチャネルを経由して宛先システムに送信します。周辺地域の渋滞の原因となります。

解決:

1. 宛先ノードは、不完全なメッセージが順番に送信され、完全なアセンブリタスクが宛先システムに引き渡される限り、宛先システムに不完全なメッセージを送信することができます。この方法では、エンド システムが不完全なデータグラムを受信し、データ全体が無効になる可能性があります。

2. 完全に再インストールできないパケットを検出し、ソース システムにパケットの再送信を要求します。この方法では手続きが煩雑になり、家庭に負担がかかります。

3. 各ノードには、不完全なメッセージを一時的に保存するための専用のバッファ スペースが装備されています。この方法では、各ノードのオーバーヘッドが増加し、パフォーマンスに影響します。

2. レイヤ3スイッチとレイヤ3スイッチング

ほとんどの 3 層スイッチは、転送を完了するために ASIC ハードウェア チップを使用します。ASIC チップは、IP パケット ヘッダーのチェック、インベントリ時間 TTL パラメータの変更、IP ヘッダー チェックサム、IP データグラムの再計算、データ リンクのカプセル化などを含む、IP 3 層転送機能を統合します。 。

(1) 3層スイッチのハードウェア構成

1.純粋なソフトウェアルーティングモジュールを備えたレイヤー3スイッチ

初期の頃は、現在では比較的ローエンドでした。CPU は、関連するソフトウェア機能を呼び出し、メモリに格納されている CAM (Content Addressable Memory) テーブルに問い合わせて、宛先 IP アドレスに対応する MAC アドレスを取得します。

2.純粋なハードウェアルーティングモジュールを備えたレイヤー3スイッチ

この技術は複雑でコストは高くなりますが、高速でパフォーマンスが良く、耐荷重が強いです。原理は、特殊な ASIC チップを使用してルーティング テーブルを検索および更新することです。

純粋なソフトウェアとは異なり、ルーティングの選択と転送には ASIC ( Application Specific Integrated Circuit )チップが使用され、ルーティング テーブルの情報は ASIC チップ内に格納され、実行効率が高くなります。

3.ソフトウェアとハ​​ードウェアをルーティングモジュールと組み合わせたレイヤー3スイッチ

現在ではさらに採用されています。ASICチップは、第2層CAMテーブルと第3層フォワーディングテーブルを同時に格納し、CPUから呼び出されるソフトウェアルーティングテーブルとARPマッピングテーブルをメモリに格納することで、ASICチップの高速スイッチング性能を活用しています。ハードウェアモジュールとソフトウェアモジュールの柔軟性。

CPU は主に、転送制御、一部のソフトウェア テーブル エントリ (ソフトウェア ルーティング テーブル、ソフトウェア ARP テーブルなど) の維持、およびソフトウェア テーブル エントリの転送情報に基づいた ASIC のハードウェア レイヤ 3 転送テーブルの構成に使用されます。

高速スイッチングと転送を実際に決定するのは、ASIC の第 2 層と第 3 層のハードウェア エントリです。

(2) 3層スイッチング原理

全体的な原理: 1 つのルーティング (最初のデータグラムは CPU のルーティング テーブルによって転送され、3 層の転送テーブル エントリが確立されます)、複数の交換 (後続のデータグラムは ASIC の 3 層の転送テーブルによって転送されます)。

おすすめ

転載: blog.csdn.net/hongdi/article/details/125979203