IP : IP ルーテッド プロトコル

受信から送信までのパケットのトレース(パケットの遷移)について

2005 年 8 月 10 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2005 年 8 月 10 日) | フィードバック

シスコのローエンド ルータには、1xxx、25xx、26xx、3600、3800、4000、4500、および4700シリーズがあります。これらのルータでは、送信したメッセージは、別のシステムのコントローラで受信されます。このコントローラは、ほとんどのシステムで、受信したパケットをバッファ メモリに直接保管します。メッセージを完全に受信すると、コントローラは入力側ドライバがそのメッセージを見つけられるように、何らかのポインタ情報を保管してから、受信割り込みを生成します。

注: コントローラにメッセージを保管するバッファがない場合、コントローラはこの時 "ignore"をログに記録し、メッセージを受信しません。

その後、(通常、ミリ秒で計測される)ある一定の時点で、ドライバがアクティブになります。ドライバは最初に送信キューをチェックし、次に受信キューをチェックします。 ここでは、受信キューの処理に限って説明します。ドライバはキューに関する必要なチェックを行い、メッセージがあると判断し、キューからそのメッセージを取り出したあと、コントローラの受信キュー リストを補充します。そのあと、このメッセージを渡すべきフォワーダ(IP、Internetwork Packet Exchange (IPX)など)を判別します。

以下の説明では、メッセージがIPメッセージであると想定します。ドライバは、このIPメッセージを設定済みのIPファスト パスに渡さなければなりません。まず、メッセージからリンク レイヤ ヘッダーを取り除き、入力インターフェイスにファスト パスが設定されているかどうかを調べます。設定されていない場合、パケットは" input hold queue "に入れられ(マークされ)、カウンタが調べられます。カウンタがゼロであれば、"input hold queue"は使い尽くされているので、パケットはドロップされます。カウンタがゼロ以外であれば、カウンタが減分され、メッセージはプロセス パスのキューに入れられます。

注: "input hold queue"は、文字どおりのキューを意味するわけではありません。インターフェイスで受信され、(出力インターフェイスへのメッセージの転送、またはバッファの解放によって)完全には処理されていないパケットの集合です。ただし、設定済みのファスト パスがあれば(通常はあります)、そのメッセージはファスト パスに渡されます。

次にファスト パスがメッセージの有効性をチェックし、まだルーティングされていないメッセージに対して何らかの機能を適用します。このステップには、暗号解除または圧縮解除(必要な場合、その両方)、Network Addresses Translation (NAT;ネットワーク アドレス変換)、入力Committed Access Rate(CAR)テストの適用、ポリシー ルーティング テストの適用などがあります。

ポリシー ルーティングを使用する場合、それによって実際の出力インターフェイスが選択されます。ポリシー ルーティングを使用しない場合、次のステップとして、ルート キャッシュ内の宛先アドレスが検索されます(「パケット スイッチング」と呼ばれるプロセスです)。このキャッシュの構造および内容は、ファスト スイッチング モードによって異なります。標準のファスト スイッチングでは、このキャッシュには、最近使用された宛先プレフィクス ルートまたは宛先ホスト ルートが含まれていますが、キャッシュ エントリが含まれていない場合もあります。後者の場合、メッセージはプロセス レベルに押し戻され、再び"input hold queue"としてマークされます。Cisco Express Forwarding(CEF)スイッチングでは、このキャッシュ(Forwarding Information Base [FIB;転送情報ベース]と呼ばれる)は完全なルート テーブルであるため、このプロセスは発生しません。

ルートが見つかった場合、ルート キャッシュ エントリ(CEFでは「隣接関係」)によって、ソフトウェア、 もしくはハードウェア出力インターフェイス、およびメッセージに付けるヘッダー(該当するネクスト ホップ)が示されます。多重化されたインターフェイスの場合、これは該当する次の仮想回線または仮想チャネルです。

このソフトウェア インターフェイス上では、いくつかの問題が関与する場合があります。たとえば、インターフェイスに設定されているMaximum Transmission Unit(MTU;最大伝送ユニット)が、メッセージの容量よりも小さい場合、ファスト パスにはフラグメントがないので、このようなイベントが、メッセージ処理をプロセス レベルに戻す原因になります。さらに、インターフェイスにNAT処理、出力CARなどが設定されている場合があります。こういった機能は、メッセージ処理のこの段階で適用されます。そして最後に、出力インターフェイスのリンク レイヤ ヘッダーがメッセージに付加され、メッセージが出力ドライバに渡されます。

メッセージがドライバのファスト送信ルーチンに渡されると、次の処理が行われます。

  1. ドライバは、いくつかの判断(たとえば、「メッセージを新しいバッファにコピーしてから送信する必要があるか?」)を行います。

  2. ドライバは、トラフィック シェーピングがアクティブかどうかを判別します。トラフィック シェーピングがアクティブであれば、指定されたクラスのメッセージについて、メッセージの着信レートと送信レートを比較します。サブインターフェイスにシェーピング キューが形成されている場合、またはキューは存在しないがレートを超過している場合には、ソフトウェア インターフェイスのキューにメッセージを入れます。

  3. トラフィック シェーピングがアクティブでない場合や このメッセージにはトラフィック シェーピングが適用外である場合、またはレートが超過していない場合には、ドライバは、出力コントローラの送信キューの深さがtx-queue-limit値未満であるかどうかを判別します。この値未満であれば、ドライバはメッセージを送信のためにキューイングします。このパスをたどったメッセージは、入力側でファスト スイッチングされ、出力側でファスト スイッチングされたものと見なされます。

  4. ファスト スイッチングが不可能な場合、ドライバはメッセージをソフトウェア キュー(一般に"output hold queue"と呼ばれる)に転送します。このようなホールド キューの例としては、First In, First Out(FIFO)キューイング、プライオリティ キューイング、カスタム キューイング、およびWeighted Fair Queuing(WFQ;均等化キューイング)があります。

プロセス パスが使用するメッセージの宛先と同じ なので、このようなメッセージは、入力側でファスト スイッチングされ、出力側ではプロセス スイッチングされたものと見なされます。しかしこれらのメッセージは、実際にはプロセス スイッチングされているわけではありません。スイッチングの決定は、パケットがファスト パスでスイッチングされる際に行われます。ただし、メッセージはプロセス パスと共有のキューに転送されています。その後メッセージがホールド キューから取り除かれ、送信コントローラのキューに入れられる時点で、メッセージはプロセス スイッチングされたものと見なされます。

プロセス スイッチングは、メッセージをファスト パスで送信できない場合に発生します。これは、メッセージがこのシステムに送信され、最終的(理想的)にルーティング プロセス、リンク メンテナンス プロセス、ネットワーク管理プロセスなどで消費されることを意味します。ただし、実際にプロセス パスを使用するトラフィックも一部あります。たとえば、Link Fragmentaton and Interleaving(LFI)を使用して大きなデータグラムのセグメント間に音声をインターリーブするトラフィック、X.25トラフィック、フラグメンテーションを必要とするトラフィック、対応するファスト パス ルート エントリがないトラフィックなどです。プロセス パス上での処理は、概念的にはファスト パスと同じですが、さまざまな理由で実装が異なります。相違点の1つは、出力側で"input hold queue"フラグがクリアされ、入力インターフェイスのカウンタが増分され(input hold queueからのメッセージの削除)、メッセージがoutput hold queueに入れられる点です。そのあと、割り込みがシミュレートされ、それによって出力インターフェイスでのメッセージ送信がトリガされる場合があります。プロセス スイッチングは、プロセス オーバーヘッドによって、ファスト スイッチングより低速になります。それは、メッセージを受信したときに他の処理が実行中であったり、処理しなければならない複雑なデータ構造があるためです。


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

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


関連情報


Updated:Apr 11, 2003Document ID:13713
Document ID: 13713