ルータ : Cisco 12000 シリーズ ルータ

Cisco 12000 シリーズ インターネット ルータのアーキテクチャ: パケット交換

2015 年 11 月 26 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2003 年 12 月 24 日) | 英語版 (2015 年 4 月 22 日) | フィードバック


目次


概要

このドキュメントでは、Cisco 12000 シリーズ インターネット ルータの最も重要なアーキテクチャ要素、パケットのスイッチングについて説明します。 -- パケットの交換は、Cisco の共有メモリやバスベース アーキテクチャとは根本的に異なります。 Cisco 12000 では、クロスバー ファブリックを使用することによって、広い帯域幅と高いスケーラビリティを提供しています。 また、12000 では仮想出力キューを使用することによって、スイッチ ファブリック内における行頭ブロッキングをなくします。

前提条件

要件

このドキュメントに関する特別な要件はありません。

使用するコンポーネント

このドキュメントの情報は、次のハードウェアに基づいています。

  • Cisco 12000 シリーズ インターネット ルータ

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 ネットワークが稼働中の場合は、コマンドが及ぼす潜在的な影響を十分に理解しておく必要があります。

表記法

ドキュメントの表記法の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

背景説明

Cisco 12000 では、スイッチングの決定は Line Card(LC; ラインカード)によって行われます。 一部の LC では、実際のパケット交換は専用の Application-Specific Integrated Circuit(ASIC; 特定用途集積回路)によって行われます。 使用可能な唯一のスイッチング方式は、distributed Cisco Express Forwarding(dCEF; 分散 CEF)です。

備考: エンジン 0、1、および 2 は、シスコによって開発されたエンジンの中では最新のエンジンではありません。 その他、エンジン 3、4、および 4+ などのラインカードがあります。 エンジン 3 のラインカードは、ライン レートでエッジ機能を実行できます。 レイヤ 3 エンジンがより高速になるほど、より多くのパケットをハードウェアで交換できます。 それらが Cisco 12000 シリーズ インターネット ルータで基づいているエンジンおよび Cisco 12000 シリーズ ルータのために利用可能 な さまざまなラインカードについての有益な情報を見つけることができます: よく寄せられる質問」を参照してください。

パケット交換:: 概要

パケットは、常に、入力 Line Card(LC; ラインカード)によって転送されます。 出力 LC は、キューに依存した発信 QOS(たとえば、Weighted Random Early Detection(WRED; 重み付けランダム早期検出)または Committed Access Rate(CAR; 専用アクセス レート))だけを実行します。 ほとんどのパケットは、distributed Cisco Express Forwarding(dCEF; 分散 CEF)を使用する LC によって交換されます。 制御パケット(ルーティング更新など)だけが Gigabit Route Processor(GRP; ギガビット ルート プロセッサ)に送信され、処理されます。 パケット交換のパスは、LC で使用されるスイッチング エンジンのタイプによって異なります。

次に、パケットが着信したときの処理を示します。

  1. パケットが Physical Layer Interface Module(PLIM; 物理層インターフェイス モジュール)に着信します。 この場合、次のことが行われます。

    • トランシーバが光信号を電気信号に変換します(ほとんどの CSR ラインカードにはファイバ コネクタが搭載されている)。

    • L2 フレーム作成は取除かれます(、非同期転送モード (ATM)、イーサネット、ハイレベル データ リンク コントロール(HDLC)/ポイントツーポイント プロトコル- PPP 健全)

    • ATM セルは再構成されます

    • Cyclic Redundancy Check(CRC; 巡回冗長検査)に失敗したパケットが廃棄されます

  2. パケットが受信されて処理されると、「First In, First Out(FIFO; 先入れ先出し)バースト メモリ」と呼ばれる小さなメモリ(およそ 2 x Maximum Transmission Unit(MTU; 最大伝送ユニット)のバッファ)にダイレクト メモリ アクセスによって転送されます。 このメモリ量は LC のタイプによって異なります(128 KB ~ 1 MB)。

  3. パケット全体が FIFO メモリに格納されると、PLIM 上の Application-Specific Integrated Circuit(ASIC; 特定用途集積回路)が Buffer Management ASIC(BMA; バッファ管理 ASIC)にコンタクトをとり、パケットを格納するためのバッファを要求します。 BMA はパケットのサイズを受け取り、それに応じてバッファを割り当てます。 BMA が適正なサイズのバッファを取得できなかった場合、パケットは廃棄され、着信インターフェイスの「ignore」カウンタが増分されます。. 他の一部のプラットフォームとは異なり、フォールバック メカニズムはありません。 この処理が行われている間、PLIM の FIFO バースト メモリが別のパケットを受信することがあります。FIFO バースト メモリのサイズが 2 x MTU であるのはこのためです。

  4. 適切なキューに使用可能な空きバッファがある場合、パケットは BMA によって該当するサイズのフリー キュー リストに格納されます。 このバッファは raw キューに置かれます。raw キューは Salsa ASIC または R5K CPU によって検査されます。 R5K CPU は、パケットの送信先を決定するために、Dynamic RAM(DRAM)のローカル dCEF テーブルに問い合せ、バッファを raw キューから宛先スロットに対応する ToFabric キューに移動します。

    送信先が CEF テーブルに登録されていない場合、パケットは廃棄されます。 パケットが制御パケット(たとえば、ルーティング更新)なら、GRP のキューにキューにいれられ、GRP によって処理されます。 17 個の ToFab キューがあります(ユニキャスト用に 16 個とマルチキャスト用に 1 個)。 ToFab キューはラインカードごとに 1 つずつあります(これには RP も含まれる)。 これらのキューは「仮想出力キュー」と呼ばれ、行頭ブロッキングを防止するために重要です。

  5. ToFab BMA はパケットを 44 バイトの断片に切り分けます。これらの断片は「シスコ セル」のためのペイロードです。 これらのセルには、frFab BMA によって 8 バイトのヘッダーと 4 バイトのバッファ ヘッダーが付加され(この時点の合計データ サイズは 56 バイト)、適切な ToFab キューにキューイングされます(この時点で、バッファが属するプールの #Qelem カウンタは 1 つ減り、ToFab キュー カウンタは 1 つ増えます)。

    「処理を決定する要因」は、スイッチング エンジンのタイプによって異なります。

    エンジン 2+ カードでパケットが交換される方法を改善するのに、特別な ASIC が使用されています。 通常のパケット(IP/タグ、オプションなし、チェックサム)は、Packet Switching ASIC(PSA; パケット交換 ASIC)によって直接処理され、raw キューと CPU と Salsa の組み合せをバイパスして ToFab キューに直接キューイングされます。 パケットの最初の 64 バイトだけがパケット交換 ASIC を通過します。 PSA がパケットを交換できない場合、パケットは RawQ にキューイングされ、すでに説明したように LC の CPU で処理されます。

    この時点で、スイッチングの決定が完了し、パケットは適切な ToFab 出力キューにキューイングされています。

  6. ToFab BMA がパケットのセルを、Fabric Interface ASIC(FIA; ファブリック インターフェイス ASIC)の小さな FIFO バッファに DMA(ダイレクト メモリ アクセス)転送します。 17 個の FIFO バッファがあります(ToFab キューごとに 1 つずつ)。 FIA は toFab BMA からセルを得るとき、8 バイト CRC (総セルのサイズを- 64 バイト追加します; 44 バイト ペイロード、8 バイト セルヘッダー、4 バイト バッファ ヘッダー)。 FIA には Serial Line Interface(SLI; シリアル ライン インターフェイス)ASIC が搭載されているため、セルの 8B/10B 符号化(Fiber Distributed Data Interface(FDDI; ファイバ分散データ インターフェイス)4B/5B など)を実行し、ファブリックを通して送信する準備を行います。 多くのオーバーヘッド(ファブリックを渡る 80 バイトに回る 44 バイトのデータ gets!)のようにようであるファブリック キャパシティがそれに応じて提供されたのでそれは問題ではないです。

  7. FIA が送信して準備ができているので FIA は現在アクティブ な カード スケジューラーおよびクロック(CSC)からのファブリックにアクセスを要求します。 CSC は複雑な公平アルゴリズムに従って動作します。 概念は LC が他のどのカードの発信 帯域幅も独占することができないことです。 LC が自身のポートの 1 つからデータを送信したいと思ってもまだファブリックを通過しなければならないことに注目して下さい。 ファブリックを通して送信しない場合、LC 上の 1 つのポート が同じ LC 上の特定のポートのすべての帯域幅を独占する可能性があるため、このことは重要です。 また、スイッチングの設計も複雑になります。 FIA はスイッチ ファブリックを通して発信 LC(スイッチング エンジンによって設定されたシスコ セル ヘッダーのデータで指定される)にセルを送信します。

    フェアネス アルゴリズムはまた最適化照合のために設計されています; カード 1 がカード 2 に、カード 3 がカード 4 に同時に送信しようとしている場合、この 2 つの処理は並行して行われます。 それはスイッチ ファブリックとバスアーキテクチャの大きい違いです。 vs ハブ イーサネット スイッチに類似したようにそれについて考えて下さい; スイッチ ポート A がポート B に送信 したいと思えばおよびポート C でそれら二つのフロー起こります互いとは関係なくポート D に話したいと思います。 ハブで、衝突およびバックオフのような半二重問題があり、アルゴリズムを再試行します。

  8. ファブリックから出る Cisco セルは SLI 処理を 8B/10B エンコードを取除くことを通過します。 そこにここのどのエラーでも「セルパリティ」として show controller fia コマンド出力に、現われたら。 詳細は、「show controller fia コマンド出力の解釈方法」を参照してください。

  9. 次に Cisco これらのセルは frFab FIA の FIFO と frFab BMA のバッファに DMA'd です。 実際にセルをパケットに再構成するのは frFab BMA です。

    frFab BMA がパケットを再構成する場合、セルを格納するバッファをどのようにして決定するのでしょうか。 これは着信 ラインカード の スイッチング エンジンによってなされるもう一つのデシジョンです; ボックス上にあるキューはすべて同じサイズ、同じ順序であるため、スイッチング エンジンは Tx LC に、パケットがルータに着信したときと同じ番号のキューにパケットを入れるように指示します。

    frFab BMA SDRAM キューの状態を表示するには、LC で show controller frfab queue コマンドを使用します。 show controller frfab の出力の読み方参照して下さい | 詳細については Cisco 12000 シリーズ インターネット ルータの tofabキューコマンド

    これは基本的に ToFab BMA の出力と同じです。. 到着したパケットは、それぞれの対応するフリー キューからデキューされるパケットとして配置されます。 これらのパケットはインターフェイスキュー(物理ポート毎に 1 キューがあります)または出力処理のための rawQ にキューにいれられるからファブリック キューに入れられます。 rawQ で多くが起こりません: ポート単位のマルチキャスト複製、Modified Deficit Round Robin(MDRR)(Distributed Weighted Fair Queuing(DWFQ)と同じ概念)、および出力 CAR。 送信キューがいっぱいの場合は、パケットが廃棄され、出力廃棄カウンタの値が増分されます。

  10. frFab BMA は、PLIM の TX 部分がパケットを送信できる状態になるまで待機します。 frFab BMA は MAC を(シスコ セル ヘッダーに含まれる情報に基づいて)実際に書き換えてから、PLIM 回路内の小さなバッファ(2 x MTU)にそのパケットを DMA 転送します。 PLIM は 必要に応じて ATM SAR および SONET のカプセル化を行い、パケットを送信します。

  11. ATM トラフィックが(SAR によって)再構成され、(ToFab BMA によって)セグメント化され、(fromfab BMA によって)再構成され、(fromfab SAR によって)もう一度再構成されます。 この処理は、非常に高速で行われます。

これがパケットの最初から最後までのライフサイクルです。 GSR が結局はのように感じるもの認知したいと思えば、500,000 回この全体の用紙を読みます!

GSR のパケット交換パスは、LC の転送エンジンのタイプによって異なります。 次に、エンジン 0、エンジン 1、および 2 つの LC のステップを示します。

パケット交換:: エンジン 0 およびエンジン 1 のライン カード

以降の項は、Cisco Press 発行の書籍『インサイド Cisco IOS ソフトウェア アーキテクチャ』に基づいています。

図 1 の下でエンジン 0 またはエンジンのためのパケット交換の間に異なるステップを 1 LC 説明します。

図 1: エンジン 0 およびエンジン 1 のスイッチング パス

/image/gif/paws/47320/packetsw1.gif

エンジン 0 およびエンジン 1 の LC のスイッチング パスは基本的に同じですが、エンジン 1 LC のスイッチング エンジンとバッファ マネージャの方が拡張されているため、パフォーマンスが向上しています。 次にスイッチング パスを示します。

  • ステップ 1 - インターフェイス プロセッサ(PLIM)がネットワーク メディア上のパケットを検出し、バースト メモリと呼ばれる、LC 上の FIFO メモリへのコピーを開始します。 各インターフェイスが持っているバーストメモリの量は LC の種類によって決まります; 通常、LC のバースト メモリ量は 128 KB ~ 1 MB です。

  • ステップ 2 -インターフェイスプロセッサはレシーブ BMA からのパケット バッファを要求します; バッファが要求されるプールはパケットの長さによって決まります。 フリー バッファがない場合、インターフェイスは廃棄され、インターフェイスの「ignore」カウンタが増分されます。 たとえば、インターフェイスに 64 バイトのパケットが着信した場合、BMA は 80 バイトのパケット バッファを割り当てようとします。 80 バイトのプールにフリー バッファがない場合、次の使用可能なプールからバッファが割り当てられることはありません。

  • ステップ 3 - BMA によってフリー バッファが割り当てられると、パケットはバッファにコピーされ、CPU による処理のために raw キュー(RawQ)にキューイングされます。 LC の CPU に割り込みが送信されます。

  • ステップ 4 - RawQ 内の各パケットは受信され次第(RawQ は FIFO)、LC の CPU によって処理されます。スイッチングの決定は、DRAM のローカル dCEF テーブルに問い合せて行われます。

    • 4.1 CEF テーブルに有効な送信先アドレスが登録されているユニキャスト IP パケットの場合、パケット ヘッダーは、CEF 隣接関係テーブルから取得したカプセル化情報によって書き換えられます。 交換されたパケットは、宛先スロットに対応する仮想出力キューにキューイングされます。

    • 4.2 送信先アドレスが CEF テーブルに登録されていない場合、パケットは廃棄されます。

    • 4.3 パケットが制御パケット(ルーティング更新など)の場合は、GRP の仮想出力キューにキューイングされ、GRP によって処理されます。

  • ステップ 5 - 受信 BMA がパケットを 64 バイトのセルに断片化し、発信 LC に転送するために FIA に渡されます。

ステップ 5 を終了すると、エンジン 0/1 LC に着信したパケットの交換は完了し、セルとしてスイッチ ファブリックに送信できる状態になっています。 セクション Packet Switching のステップ 6 に行って下さい: ファブリック を越える スイッチングセル

パケット交換:: エンジン 2 のラインカード

パケットがエンジン 2 LC に着くとき図 2 の下でステップの次のリストに記述されているようにパケット交換パスを説明します。

図 2: エンジン 2 スイッチング パス

packetsw2.gif

パケット交換:: ファブリックを通したセルの交換

このステージまでに、パケット交換エンジンでのパケット交換が完了しています。 この時点で、パケットはシスコ セルに分割されており、スイッチング ファブリックへの送信を待機しています。 次に、このステージでのステップを示します。

  • ステップ 6 - FIA が CSC に許可要求を送信します。CSC はスイッチ ファブリックを通したセルの各転送をスケジュールします。

  • ステップ 7 - スケジューラがスイッチ ファブリックへのアクセスを許可すると、セルが宛先スロットに転送されます。 セルが突然送信されないかもしれませんことに注目して下さい; 別のパケット内の他のセルがインターリーブされることもあります。

パケット交換:: パケットの送信

図 3 の下でパケット交換の最後のステージを示します。 セルが再構成され、パケットがメディアに送信されます。 この処理は、発信ラインカードで行われます。

図 3: Cisco 12000 パケット交換: 送信ステージ

/image/gif/paws/47320/packetsw3.gif

  • ステップ 8 - ファブリックを通して交換されたセルが、FIA を経由して送信先ラインカードに着信します。

  • ステップ 9 - 送信バッファ マネージャが送信パケット メモリからバッファを割り当て、このバッファ内でパケットを再構成します。

  • ステップ 10 - パケットが再構成されると、送信 BMA がパケットを LC 上の宛先インターフェイスの送信キューにキューイングします。 インターフェイス送信キューがいっぱいの場合(パケットがキューイングできない)は、パケットが廃棄され、出力キュー廃棄カウンタの値が増分されます。

    注: この送信方向では、パケットが raw キューにキューイングされるのは、送信の前に LC CPU で何らかの処理を行う必要がある場合だけです。 たとえば、IP の断片化、マルチキャスト、出力 CAR などの場合がこれに含まれます。

  • ステップ 11 - インターフェイス プロセッサが送信を待機しているパケットを検出し、送信メモリからバッファをデキューして内部 FIFO メモリにコピーし、メディア上のパケットを送信します。

パケット フローの要約

Cisco 12000 を通過する IP パケットは、次の 3 つのフェーズで処理されます。

  • 3 つのセクションの入力ラインカード:

    • 入力 PLIM(Physical Line Interface Module; 物理ライン インターフェイス モジュール):光電気変換、Synchronous Optical Network(SONET; 同期光ファイバ ネットワーク)/Synchronous Digital Hierarchy(SDH; 同期デジタル ハイアラーキ)のアンフレーミング、HDLC、および PPP 処理

    • IP 転送:FIB ルックアップに基づいた転送決定、および入力ユニキャスト キューまたはマルチキャスト キューのいずれかへのキューイング

    • 入力キュー管理およびファブリック インターフェイス:入力キューでの Random Early Detection(RED; ランダム早期検出)/Weighted Random Early Detection(WRED; 重み付けランダム早期検出)処理、およびファブリック利用率を最大化するためのファブリックへのデキュー

  • Cisco 12000 を通した、入力カードから 1 つまたは複数(マルチキャストの場合)の出力カードへの IP パケットの交換

  • 3 つのセクションの出力ラインカード:

    • 出力 ファブリックインターフェイス-送信 される IP パケットを再構成し、キューを出力に並べます; マルチキャスト パケットの処理。

    • 出力キュー管理:入力キューでの RED/WRED 処理、および出力ラインの利用率を最大化するための出力 PLIM へのデキュー

    • 出力 PLIM:HDLC および PPP 処理、SONET/SDH フレーミング、電気光変換

関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 47320