(57)【要約】  スイッチノードにおいて、外部の制御サーバと接続し高機能なサービス・プロトコル処理を、ＰＣＩエクスプレスで規定されているマルチルート対応のスイッチ並びにネットワークインターフェース（ＮＷ  Ｉ／Ｆ）を活用して実現する。具体的には、スイッチノード、制御サーバの関係で構成されるシステムにおいて、スイッチノードを、大量のメモリを持つ複数のＣＰＵと複数の拡張ＮＷ  Ｉ／Ｆを、マルチルート対応のＰＣＩエクスプレススイッチで接続することで、複数の拡張ＮＷ  Ｉ／Ｆによるスイッチポートを構成し、ネットワークインターフェースから複数ＣＰＵへの負荷分散転送処理を可能とし、複数ＣＰＵを用いた多重処理による高速パケット処理を実現し、ＣＰＵの大容量メインメモリ空間を用いて、ソフトウェアベースのスイッチノードで大容量フローテーブルを構成する高速なスイッチノードを提供する。
2012128282.tif 000002
【特許請求の範囲】
【請求項１】
パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリに従って、受信したパケットの処理を行うスイッチノードと、
前記スイッチノードのフローテーブルに対して、前記フローエントリの設定を行う制御サーバと
を含み、
前記スイッチノードは、
大容量のメモリを持つ複数のプロセッサと複数の拡張ネットワークインターフェースとを、マルチルート対応のＰＣＩエクスプレススイッチで接続し、複数の拡張ネットワークインターフェースによるスイッチポートを構成する手段と、
前記複数の拡張ネットワークインターフェースから前記複数のプロセッサへの負荷分散転送処理を行い、前記複数のプロセッサを用いた多重処理による高速パケット処理を行う手段と、
前記複数のプロセッサの大容量のメモリ空間を用いて、ソフトウェアベースのスイッチノードで大容量のフローテーブルを構成する手段と
を具備する
通信制御システム。
【請求項２】
請求項１に記載の通信制御システムであって、
前記スイッチノードは、
前記複数の拡張ネットワークインターフェースのいずれかでパケットを受信する手段と、
前記パケットを受信した拡張ネットワークインターフェース内で、ハッシュを用いて前記複数のプロセッサへの振分け処理を決定し、プロセッサでのソフトウェアパケット処理の負荷分散処理とパケット処理の多重化による高速化を行う手段と、
前記ＰＣＩエクスプレススイッチを介して、前記拡張ネットワークインターフェースのＤＭＡコントローラを用いて、前記パケットを前記複数のプロセッサへ分散して転送を行う手段と
を更に具備し、
前記複数のプロセッサの各々は、
受信したパケットをソフトウェア処理で解析する手段と、
該プロセッサに付属する大容量のメモリを用いて構成された大量のフローの宛先を管理するフローテーブルを用いて、テーブル検索を行い宛先出力ポートの決定を行う手段と、
前記宛先出力ポートの決定後、出力先となる拡張ネットワークインターフェースのＤＭＡコントローラを制御し、前記ＰＣＩエクスプレススイッチを介して、前記パケットを転送する手段と、
前記フローテーブルの検索の結果、前記宛先出力ポートが決定しない場合、前記スイッチノードの拡張ネットワークインターフェースを介して、前記パケットを制御サーバに転送し、出力先の問合せを行う手段と、
問合せの結果、宛先が決まると、前記フローテーブルに該当フローの宛先情報を格納する手段と、
前記複数のプロセッサ間でのフローテーブルの同期処理を行い、前記複数のプロセッサの各々で管理されるフローテーブルに同じ情報を格納して、検索処理の負荷分散を図る手段と
を具備する
通信制御システム。
【請求項３】
パケットを受信する複数の拡張ネットワークインターフェースと、
大容量のメモリを持つ複数のプロセッサと、
前記複数のプロセッサと複数の拡張ネットワークインターフェースとを接続するマルチルート対応のＰＣＩエクスプレススイッチと
を具備し、
前記複数の拡張ネットワークインターフェースの各々は、
パケットの入出力を行うＬＡＮインターフェースと、
前記複数のプロセッサへのパケットの振分け処理、複数のプロセッサ間でのパケット転送並びに制御サーバへのパケットの転送処理のうち、少なくとも１つの転送処理を行うパケット転送処理部と、
前記複数プロセッサとＤＭＡ転送でパケットの送受信を高速に行うための複数のＰＦリソースと、
前記ＰＣＩエクスプレススイッチと接続するためのＰＣＩエクスプレス・エンドポイントと
を具備する
スイッチノード。
【請求項４】
請求項３に記載のスイッチノードであって、
前記複数のプロセッサの各々は、
ＰＣＩエクスプレス・ルート・コンプレックスを介して前記ＰＣＩエクスプレススイッチと接続し、前記拡張ネットワークインターフェースを制御するネットワークインターフェースドライバと、
前記拡張ネットワークインターフェースから入力されるパケットの解析処理を行うパケット解析処理部と、
前記パケットの解析結果を基に、前記パケットの転送処理方法を決定するためのフローテーブルを検索するテーブル検索部と、
スイッチ処理並びに処理未決定のパケットに関して制御サーバに問合せ、処理方法を決定するまでパケットを格納しておくためのパケットバッファ処理部と、
前記制御サーバにパケットの処理内容を問い合わせるためのサービス内容問合せ処理部と、
前記制御サーバと暗号通信を行うための暗号処理部と、
前記制御サーバからの指示に従って、前記フローテーブルを設定し、前記拡張ネットワークサービスの処理を行うための拡張ネットワークサービス設定部と、
前記制御サーバからの指示を他のプロセッサに伝え、前記複数のプロセッサ間でのフローテーブルの同期処理を行うためのマルチプロセッサ転送テーブル同期処理部と
を具備する
スイッチノード。
【請求項５】
請求項３に記載のスイッチノードであって、
前記パケット処理部は、
パケットを受信すると、パケットの宛先ＭＡＣアドレスを確認し、該スイッチノード内のプロセッサが使用しているＭＡＣアドレスかどうかをチェックする手段と、
該スイッチノード内のプロセッサが使用しているＭＡＣアドレスである場合、外部にパケットを出力せず、折り返して、前記ＰＦリソースへパケットを送信する手段と、
該スイッチノード内のプロセッサが使用しているＭＡＣアドレスではない場合、前記ＬＡＮインターフェースを経由し、前記制御サーバにパケットを送信し、前記制御サーバに該パケットの処理内容を問い合わせて、前記制御サーバからの応答パケットを、前記ＰＦリソースへ送信する手段と
を更に具備する
スイッチノード。
【請求項６】
制御サーバから自身のフローテーブルに設定された、パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリに従って、受信したパケットの処理を行うスイッチノードにおける通信制御方法であって、
大容量のメモリを持つ複数のプロセッサと複数の拡張ネットワークインターフェースとを、マルチルート対応のＰＣＩエクスプレススイッチで接続し、複数の拡張ネットワークインターフェースによるスイッチポートを構成することと、
前記複数の拡張ネットワークインターフェースから前記複数のプロセッサへの負荷分散転送処理を行い、前記複数のプロセッサを用いた多重処理による高速パケット処理を行うことと、
前記複数のプロセッサの大容量のメモリ空間を用いて、ソフトウェアベースのスイッチノードで大容量のフローテーブルを構成することと
を含む
通信制御方法。
【請求項７】
請求項６に記載の通信制御方法であって、
前記複数の拡張ネットワークインターフェースのいずれかでパケットを受信することと、
前記パケットを受信した拡張ネットワークインターフェース内で、ハッシュを用いて前記複数のプロセッサへの振分け処理を決定し、プロセッサでのソフトウェアパケット処理の負荷分散処理とパケット処理の多重化による高速化を行うことと、
前記ＰＣＩエクスプレススイッチを介して、前記拡張ネットワークインターフェースのＤＭＡコントローラを用いて、前記パケットを前記複数のプロセッサへ分散して転送を行うことと、
前記複数のプロセッサの各々において、
受信したパケットをソフトウェア処理で解析することと、
該プロセッサに付属する大容量のメモリを用いて構成された、大量のフローの宛先を管理するフローテーブルを用いて、テーブル検索を行い宛先出力ポートの決定を行うことと、
前記宛先出力ポートの決定後、出力先となる拡張ネットワークインターフェースのＤＭＡコントローラを制御し、前記ＰＣＩエクスプレススイッチを介して、前記パケットを転送することと、
前記フローテーブルの検索の結果、前記宛先出力ポートが決定しない場合、前記スイッチノードの拡張ネットワークインターフェースを介して、前記パケットを制御サーバに転送し、出力先の問合せを行うことと、
問合せの結果、宛先が決まると、前記フローテーブルに該当フローの宛先情報を格納することと、
前記複数のプロセッサ間でのフローテーブルの同期処理を行い、前記複数のプロセッサの各々で管理されるフローテーブルに同じ情報を格納して、検索処理の負荷分散を図ることと
を更に含む
通信制御方法。
【請求項８】
パケットを受信する複数の拡張ネットワークインターフェースと、大容量のメモリを持つ複数のプロセッサと、がマルチルート対応のＰＣＩエクスプレススイッチを介して接続されており、制御サーバから自身のフローテーブルに設定された、パケットをフローとして一律に制御するためのルールとアクションとが定義されたフローエントリに従って、受信したパケットの処理を行うスイッチノードにより実行されるプログラムを格納した記憶媒体であって、
前記複数の拡張ネットワークインターフェースのいずれかにおいて、端末からパケットを受信すると、パケットのヘッダ部分を抽出するステップと、
前記抽出したパケットのヘッダ部分の情報のうち、ＭＡＣアドレス、ＶＬＡＮアドレス、ＩＰアドレスの少なくとも１つの情報を用いて、フロー単位でハッシュ処理を行うステップと、
前記ハッシュ処理により振分け先のプロセッサを決定するステップと、
前記決定された振分け先のプロセッサに対応するＰＦリソースのパケットキューにパケットを送信するステップと、
前記決定された振分け先のプロセッサからの制御に応じて、前記決定された振分け先のプロセッサへパケットをＤＭＡ転送するステップと
をスイッチノードに実行させるためのプログラムを格納した
記憶媒体。
【請求項９】
請求項８に記載の記憶媒体であって、
パケットを受信すると、パケットの宛先ＭＡＣアドレスを確認し、該スイッチノード内のプロセッサが使用しているＭＡＣアドレスかどうかをチェックするステップと、
該スイッチノード内のプロセッサが使用しているＭＡＣアドレスである場合、外部にパケットを出力せず、折り返して、前記ＰＦリソースへパケットを送信するステップと、
該スイッチノード内のプロセッサが使用しているＭＡＣアドレスではない場合、前記制御サーバにパケットを送信し、前記制御サーバに該パケットの処理内容を問い合わせて、前記制御サーバからの応答パケットを、前記ＰＦリソースへ送信するステップと
を更にスイッチノードに実行させるためのプログラムを格納した
記憶媒体。
【請求項１０】
請求項９に記載の記憶媒体であって、
前記制御サーバにより決定されたサービス処理方法に基づくエントリ追加要求に従って、自ＣＰＵに付属する大容量のメモリに格納されたフローテーブルの設定を行うステップと、
前記フローテーブルの設定を基に、他ＣＰＵへのフローテーブルの書込みを行い、複数のプロセッサ間でのフローテーブルの同期処理を行うステップと
を更にスイッチノードに実行させるためのプログラムを格納した
記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御システムに関し、特にスイッチノードの制御を行う通信制御システムに関する。
【背景技術】
【０００２】
従来のネットワーク機器はブラックボックスであり、外部から負荷分散や片寄等柔軟性に富んだ制御ができない。このため、ネットワークの規模が大きくなると、システムとしての挙動の把握と改善が困難になり、設計や構成変更には多大なコストを伴うことが問題であった。【０００３】
こうした課題を解決するための技術として、ネットワーク機器のパケット転送機能と経路制御機能を分離する手法が考えられている。例えば、パケット転送機能をネットワーク機器が担当し、経路制御機能をネットワーク機器の外部に分離した制御装置が担当することで、制御が容易になり柔軟性に富んだネットワークを構築することが可能になる。【０００４】
［ＣＤ分離型ネットワークの説明］
機能を分離したネットワークの１つとして、コントロールプレーン側の制御装置からデータプレーン側のノード装置を制御するＣＤ（Ｃ：コントロールプレーン／Ｄ：データプレーン）分離型ネットワークが提案されている。【０００５】
ＣＤ分離型ネットワークの一例として、コントローラからスイッチを制御してネットワークの経路制御を行うオープンフロー（ＯｐｅｎＦｌｏｗ）技術を利用したオープンフローネットワークが挙げられる。オープンフロー技術の詳細については、非特許文献１に記載されている。なお、オープンフローネットワークは一例に過ぎない。【０００６】
［オープンフローネットワークの説明］
オープンフローネットワークでは、制御装置に相当するオープンフローコントローラ（ＯＦＣ：ＯｐｅｎＦｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ）が、ノード装置に相当するオープンフロースイッチ（ＯＦＳ：ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ）の経路制御に関するフローテーブル（Ｆｌｏｗ  ｔａｂｌｅ）を操作することにより、オープンフロースイッチ（ＯＦＳ）の挙動を制御する。【０００７】
以下、記載の簡略化のため、オープンフローコントローラ（ＯＦＣ）を「コントローラ」と表記し、オープンフロースイッチ（ＯＦＳ）を「スイッチ」と表記する。【０００８】
コントローラとスイッチの間は、専用線やＳＳＬ（ＳｅｃｕｒｅＳｏｃｋｅｔＬａｙｅｒ）等により保護された通信路である「セキュアチャンネル」（Ｓｅｃｕｒｅ  Ｃｈａｎｎｅｌ）と呼ばれる制御チャネル（制御用の通信チャネル）により接続されている。コントローラとスイッチとは、制御チャネルを介して、オープンフロープロトコル（ＯｐｅｎＦｌｏｗ  Ｐｒｏｔｏｃｏｌ）に則った（準拠した）制御メッセージであるオープンフローメッセージ（ＯｐｅｎＦｌｏｗ  Ｍｅｓｓａｇｅ）を送受信する。【０００９】
オープンフローネットワークにおけるスイッチとは、オープンフローネットワークに配置され、コントローラの制御下にあるエッジスイッチ及びコアスイッチのことである。オープンフローネットワークにおける入口側エッジスイッチ（Ｉｎｇｒｅｓｓ）でのパケット（ｐａｃｋｅｔ）の受信から出口側エッジスイッチ（Ｅｇｒｅｓｓ）での送信までのパケットの一連の流れをフロー（Ｆｌｏｗ）と呼ぶ。オープンフローネットワークでは、通信をエンドツーエンド（Ｅ２Ｅ：Ｅｎｄ  ｔｏ  Ｅｎｄ）のフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行う。【００１０】
パケットは、フレーム（ｆｒａｍｅ）と読み替えても良い。パケットとフレームの違いは、プロトコルが扱うデータの単位（ＰＤＵ：Ｐｒｏｔｏｃｏｌ  Ｄａｔａ  Ｕｎｉｔ）の違いに過ぎない。パケットは、「ＴＣＰ／ＩＰ」（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）のＰＤＵである。一方、フレームは、「イーサネット（登録商標）」（Ｅｔｈｅｒｎｅｔ）のＰＤＵである。【００１１】
フローテーブルとは、フローとして扱うパケットを特定するための判別条件（ルール）と、パケットがルールに適合（マッチ）した回数を示す統計情報と、パケットに対して行うべき処理内容（アクション）の組を定義したフローエントリ（Ｆｌｏｗ  ｅｎｔｒｙ）の集合である。【００１２】
フローエントリのルールは、パケットのヘッダ領域（フィールド）に含まれる各プロトコル階層の情報のいずれか又は全てを用いた様々な組み合わせにより定義され、区別可能である。各プロトコル階層の情報の例として、送信先アドレス（Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ）、送信元アドレス（Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ）、送信先ポート（Ｄｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔ）、送信元ポート（Ｓｏｕｒｃｅ  Ｐｏｒｔ）等が考えられる。なお、上記のアドレスには、ＭＡＣアドレス（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ａｄｄｒｅｓｓ）やＩＰアドレス（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ａｄｄｒｅｓｓ）を含むものとする。また、上記に加えて、入口ポート（Ｉｎｇｒｅｓｓ  Ｐｏｒｔ）の情報も、フローエントリのルールとして使用可能である。また、フローエントリのルールとして、フローとして扱うパケットのヘッダ領域の値の一部（又は全部）を、正規表現やワイルドカード「＊」等で表現したものを設定することもできる。【００１３】
フローエントリのアクションは、「特定のポートに出力する」、「廃棄する」、「ヘッダを書き換える」といった動作を示す。例えば、スイッチは、フローエントリのアクションに出力ポートの識別情報（出力ポート番号等）が示されていれば、これに該当するポートにパケットを出力し、出力ポートの識別情報が示されていなければ、パケットを廃棄する。或いは、スイッチは、フローエントリのアクションにヘッダ情報が示されていれば、当該ヘッダ情報に基づいてパケットのヘッダを書き換える。【００１４】
スイッチは、フローエントリのルールに適合するパケット群（パケット系列）に対して、フローエントリのアクションを実行する。具体的には、スイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するルールを持つフローエントリを検索する。検索の結果、受信パケットのヘッダ情報に適合するルールを持つフローエントリが見つかった場合、当該フローエントリの統計情報を更新すると共に、受信パケットに対して、当該フローエントリのアクションとして指定された動作を実施する。一方、検索の結果、受信パケットのヘッダ情報に適合するルールを持つフローエントリが見つからなかった場合、当該受信パケットを最初のパケット（ｆｉｒｓｔ  ｐａｃｋｅｔ）と判断し、制御チャネルを介して、オープンフローネットワークにおけるコントローラに対して、受信パケット（又はそのコピー）を転送し、受信パケットの送信元・送信先（宛先）等に基づいたパケットの経路計算を要求し、応答としてフローエントリの設定用メッセージを受信し、フローテーブルを更新する。【００１５】
なお、フローテーブルには、低い優先度で、全てのパケットのヘッダ情報に適合するルールを持つデフォルトエントリが登録されている。受信パケットに適合するフローエントリが他に見つからなかった場合、受信パケットは、このデフォルトエントリに適合する。デフォルトエントリのアクションは、「コントローラへの当該受信パケットの問い合わせ情報の送信」である。【００１６】
［ＰＣＩエクスプレスの説明］
また、近年、ＰＣＩバス（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｂｕｓ）に代わり、「ＰＣＩエクスプレス（ＰＣＩｅ：ＰＣＩ  Ｅｘｐｒｅｓｓ）」というインターフェース（Ｉ／Ｆ：ｉｎｔｅｒｆａｃｅ）が広く利用されるようになっている。ＰＣＩバスはパラレル転送方式であり、ＰＣＩエクスプレス（ＰＣＩｅ）はシリアル転送方式である。ＰＣＩバスとＰＣＩエクスプレス（ＰＣＩｅ）との間に物理レベルでの互換性はないが、通信プロトコル等は共通のものが使用されている。ＰＣＩエクスプレス（ＰＣＩｅ）で用いられる最小構成の伝送路（レーン）では、片方向２．５Ｇｂｐｓ（Ｇｉｇａｂｉｔ  ｐｅｒ  ｓｅｃｏｎｄ：ギガビット毎秒）、双方向５．０Ｇｂｐｓの全二重通信が可能である。【００１７】
［従来のネットワークシステムの説明］
図１、図２、図３、図４、図５は、従来のネットワークシステムの構成を示す。具体的には、ハードウェアベースでスイッチ処理を行い、制御サーバで拡張ネットワークサービスを実行する際のシステム構成である。【００１８】
［従来のネットワークシステム構成］
図１は、従来のネットワークシステムの基本構成を示す。
従来のネットワークシステムは、スイッチノード１と、端末２（２−ｉ、ｉ＝１〜Ｔ：Ｔは端末数）と、制御サーバ３を含む。【００１９】
スイッチノード１は、オープンフローネットワークにおけるスイッチに相当する。制御サーバ３は、オープンフローネットワークにおけるコントローラに相当する。端末２（２−ｉ、ｉ＝１〜Ｔ）及び制御サーバ３は、スイッチノード１と接続されている。【００２０】
スイッチノード１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０と、メモリ２０と、転送テーブル３０と、ネットワークフォワーディングエンジン４０を備える。【００２１】
ＣＰＵ１０は、メモリ２０と接続されている。また、ＣＰＵ１０及び転送テーブル３０は、ネットワークフォワーディングエンジン４０と接続されている。【００２２】
従来のネットワークシステムでは、スイッチノード１上には、ハードウェアでパケット処理を行うネットワークフォワーディングエンジン４０が存在し、このフォワーディングエンジン４０は、端末２（２−ｉ、ｉ＝１〜Ｔ）から入力されるパケットを受信し、１つの転送テーブル３０を用いてフローの宛先を管理し、パケット受信時、テーブル検索を行い、端末間のパケットスイッチ処理を行う。この転送テーブル３０は、端末間のスイッチ処理容量に耐えるように、高速な処理に対応するが、メモリ２０容量が限られているため、大量のフローを管理する転送テーブル３０を構成することができない。【００２３】
［ネットワークスイッチフォワーディングエンジンの内部構成］
図２は、ネットワークスイッチフォワーディングエンジン４０の内部の構成を示している。【００２４】
ネットワークスイッチフォワーディングエンジン４０は、ＰＣＩエクスプレス・エンドポイント（ＰＣＩｅ  ＥＰ：ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｅｎｄ  Ｐｏｉｎｔ）４１と、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）インターフェース（１Ｇ  ＭＡＣ）４２と、スイッチ転送処理部４３と、テーブル検索結果レジスタ４４と、ＣＰＵ宛パケットキュー４５と、ＣＰＵ送信パケットキュー４６と、スイッチファブリック共有パケットバッファ４７と、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラ４８を備える。【００２５】
ＰＣＩエクスプレス・エンドポイント（ＰＣＩｅ  ＥＰ）４１は、ＣＰＵ１０、ＣＰＵ宛パケットキュー４５、及びＣＰＵ送信パケットキュー４６と接続されている。【００２６】
ＬＡＮインターフェース（１Ｇ  ＭＡＣ）４２は、端末２（２−ｉ、ｉ＝１〜Ｔ）及び制御サーバ３と接続されている。【００２７】
スイッチ転送処理部４３は、転送テーブル３０、ＬＡＮインターフェース（１Ｇ  ＭＡＣ）４２、テーブル検索結果レジスタ４４、ＣＰＵ送信パケットキュー４６、スイッチファブリック共有パケットバッファ４７と接続されている。【００２８】
スイッチ転送処理部４３は、テーブル検索部４３１と、パケット解析処理部４３２と、スイッチング処理部４３３を備える。【００２９】
テーブル検索部４３１は、検索キーを用いて、転送テーブル３０を検索する。【００３０】
パケット解析処理部４３２は、パケットのヘッダ部分を抽出し、ヘッダ部分の任意の情報を用いて検索キーを作成し、検索キーをテーブル検索部４３１に通知する。【００３１】
スイッチング処理部４３３は、検索キーがヒットした転送テーブル３０のエントリのアクションの内容に従って、パケットを転送する。【００３２】
テーブル検索結果レジスタ４４は、ＣＰＵ宛パケットキュー４５と接続されている。【００３３】
スイッチ転送処理部４３のテーブル検索部４３１は、転送テーブル３０に対して検索要求（検索キー）を送り、テーブル検索を行う。転送テーブル３０の格納場所として、スイッチ転送処理部４３の処理能力に応じたメモリ２０が利用されるが、高速な処理能力が求められるため、処理能力に反比例してメモリ２０の容量は少なくなり、管理できる転送テーブル数は限られる。【００３４】
［転送テーブルの構成］
図３は、転送テーブル３０の構成を示す。【００３５】
転送テーブル３０は、オープンフローネットワークにおけるフローテーブルに相当する。この転送テーブル３０では、６４０００件のエントリを管理できる。【００３６】
なお、「ＭＡＣ  ＤＡ」は、宛先ＭＡＣアドレスを示す。「ＭＡＣ  ＳＡ」は、送信元ＭＡＣアドレスを示す。「ＩＰ  ＤＡ」は、宛先ＩＰアドレスを示す。「ＩＰ  ＳＡ」は、送信元ＩＰアドレスを示す。【００３７】
［ＣＰＵの構成］
図４は、ＣＰＵ１０で実行されるソフトウェアの構成図を示す。【００３８】
ＣＰＵ１０は、ＰＣＩエクスプレス・ルート・コンプレックス（ＰＣＩｅ  ＲＣ：ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｒｏｏｔ  Ｃｏｍｐｌｅｘ）１１と、フォワーディングエンジンドライバ１２と、拡張ネットワークサービス設定部１３と、サービス内容問合せ処理部１４と、パケットバッファ処理部１５と、パケット受信処理部１６と、暗号処理部１７を備える。【００３９】
フォワーディングエンジンドライバ１２、拡張ネットワークサービス設定部１３、サービス内容問合せ処理部１４、パケットバッファ処理部１５、パケット受信処理部１６、及び暗号処理部１７は、ＣＰＵ１０がソフトウェアを実行することにより実現される。【００４０】
従来のネットワークシステムでのＣＰＵ１０は、制御サーバ３と接続し、拡張ネットワークサービスを実行するためだけに用いられる。【００４１】
［制御サーバの構成］
図５は、制御サーバ３の構成図を示す。【００４２】
制御サーバ３は、パケット送受信処理部３１と、暗号処理部３２と、拡張ネットワークサービス処理部３３を備える。【００４３】
制御サーバ３は、スイッチノード１からの処理問合せに対応し、問合せパケットに対しての宛先決定や、パケットの変更処理、又はスイッチノードの制御等を行う拡張ネットワークサービス処理の実行を行う。また、スイッチノード１とセキュアな通信を行うため暗号処理を行いパケットの送受信を行う。【００４４】
上記のように、ハードウェアベースのスイッチノードは、１つの高速な転送テーブルを保持するメモリ２０を利用したパケット処理を行うため、転送テーブルのメモリ２０容量が限られ、大容量の転送テーブルを構成することが困難である。【００４５】
また、ハードウェアベースのフォワーディングエンジンは、専用ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）で構成されるために、汎用性が低くコストが高くなり、また、処理方法の変更等の自由度はないといったデメリットもある。【００４６】
なお、関連する技術として、特許文献１（特開２００７−１９５１６６号公報）に組み込みＤＩＤによるＰＣＩバス・アドレス・ベースのルーティング用ルーティング・テーブルを作成し、管理する方法、コンピュータ・プログラム及び装置が開示されている。【００４７】
この関連技術では、複数のルートノードと、１つまたは複数のＰＣＩスイッチ及びＰＣＩアダプタを備え、ルートノードが複数のホストを含み、ルートノードのうちの１つがＰＣＩ構成マネージャ（ＰＣＭ）を含む分散コンピューティングシステムにおいて、ホストとアダプタの間でスイッチを通してＰＣＩトランザクションパケットをルーティングする。【００４８】
このとき、１つの指定されたスイッチ内にテーブルを作成し、特定のホストが指定されたスイッチに接続された場合に、ＰＣＭを操作して指定されたビットセットを有する送信先識別子をテーブルに入力する。指定されたスイッチを通して特定のホストからアダプタの１つに送出されたＰＣＩパケットに送信先識別子をアドレスとして追加する。送信先識別子を用いてアダプタの１つから指定されたスイッチを通して送出されたＰＣＩパケットが特定のホスト用であると判定する。
【先行技術文献】
【特許文献】
【００４９】
【特許文献１】特開２００７−１９５１６６号公報
【非特許文献】
【００５０】
【非特許文献１】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ，  Ｖｅｒｓｉｏｎ  １．０．０”、  Ｄｅｃｅｍｂｅｒ  ３１，  ２００９、  インターネット（ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｏｐｅｎｆｌｏｗｓｗｉｔｃｈ．ｏｒｇ／ｄｏｃｕｍｅｎｔｓ／ｏｐｅｎｆｌｏｗ−ｓｐｅｃ−ｖ１．０．０．ｐｄｆ）
【発明の概要】
【００５１】
従来のスイッチノード構成は、ハードウェアベースのフォワーディングエンジンに接続される転送テーブルの容量に限界があり、大量の転送テーブルを持つスイッチノードの構築が難しい。一方で、ソフトウェアベースのスイッチノードを構成した場合、ＣＰＵが一つであるため、スイッチノードでは転送処理能力が低い課題がある。
【００５２】
本発明の目的は、ソフトウェアベースのスイッチノードにおいて、大容量のフローテーブルを構成し、高速なパケットスイッチ処理を行い、外部の制御サーバと接続し高機能なサービス・プロトコル処理を、ＰＣＩエクスプレス（ＰＣＩｅ）で規定されているマルチルート対応のスイッチ並びにネットワークインターフェース（ＮＷ  Ｉ／Ｆ：Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ）を活用して実現する通信制御システムを提供することである。
【００５３】
本発明に係る通信制御システムは、スイッチノードと、パケットをフローとして一律に制御するためのルールとアクションが定義されたフローエントリを、該スイッチノードのフローテーブルに設定する制御サーバとを含む。該スイッチノードは、大容量のメモリを持つ複数のプロセッサと複数の拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）とを、マルチルート対応のＰＣＩエクスプレス（ＰＣＩｅ）スイッチで接続し、複数の拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）によるスイッチポートを構成する機能部と、該複数の拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）から該複数のプロセッサへの負荷分散転送処理を行い、該複数のプロセッサを用いた多重処理による高速パケット処理を行う機能部と、該複数のプロセッサの大容量のメモリ空間を用いて、ソフトウェアベースのスイッチノードで大容量のフローテーブルを構成する機能部とを具備する。
【００５４】
本発明に係るスイッチノードは、パケットを受信する複数の拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）と、大容量のメモリを持つ複数のプロセッサと、該複数のプロセッサと複数の拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）とを接続するマルチルート対応のＰＣＩエクスプレス（ＰＣＩｅ）スイッチとを具備する。該複数の拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）の各々は、パケットの入出力を行うＬＡＮインターフェースと、該複数のプロセッサへのパケットの振分け処理、複数のプロセッサ間でのパケット転送並びに制御サーバへのパケットの転送処理のうち、少なくとも１つの転送処理を行うパケット転送処理部と、該複数プロセッサとＤＭＡ転送でパケットの送受信を高速に行うための複数のＰＦリソースと、該ＰＣＩエクスプレス（ＰＣＩｅ）スイッチと接続するためのＰＣＩエクスプレス・エンドポイント（ＰＣＩｅ  ＥＰ）とを具備する。
【００５５】
本発明に係る通信制御方法は、制御サーバからの制御に応じて、パケットをフローとして一律に制御するためのルールとアクションが定義されたフローエントリを、自身のフローテーブルに設定するスイッチノードにおける通信制御方法であって、大容量のメモリを持つ複数のプロセッサと複数の拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）とを、マルチルート対応のＰＣＩエクスプレス（ＰＣＩｅ）スイッチで接続し、複数の拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）によるスイッチポートを構成することと、該複数の拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）から該複数のプロセッサへの負荷分散転送処理を行い、該複数のプロセッサを用いた多重処理による高速パケット処理を行うことと、該複数のプロセッサの大容量のメモリ空間を用いて、ソフトウェアベースのスイッチノードで大容量のフローテーブルを構成することとを含む。
【００５６】
本発明に係るプログラムは、パケットを受信する複数の拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）と、大容量のメモリを持つ複数のプロセッサと、がマルチルート対応のＰＣＩエクスプレス（ＰＣＩｅ）スイッチを介して接続されており、制御サーバからの制御に応じて、パケットをフローとして一律に制御するためのルールとアクションが定義されたフローエントリを、自身のフローテーブルに設定するスイッチノードにより実行されるプログラムであって、端末からＬＡＮインターフェースを経由してパケットを受信すると、パケットのヘッダ部分を抽出するステップと、該抽出したパケットのヘッダ部分の情報のうち、ＭＡＣアドレス、ＶＬＡＮアドレス、ＩＰアドレスの少なくとも１つの情報を用いて、フロー単位でハッシュ処理を行うステップと、該ハッシュ処理により振分け先のプロセッサを決定するステップと、該決定された振分け先のプロセッサに対応するＰＦリソースのパケットキューにパケットを送信するステップと、該決定された振分け先のプロセッサからの制御に応じて、該決定された振分け先のプロセッサへパケットをＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送するステップとをスイッチノードに実行させるためのプログラムである。
【００５７】
本発明に係るプログラムは、上記の通信制御方法における処理を、スイッチノードに実行させるためのプログラムである。なお、本発明に係るプログラムは、記憶装置や記憶媒体に格納することが可能である。
【００５８】
これにより、大容量の転送テーブルを対応した高速スイッチ処理が可能なソフトウェアベースのスイッチノードを実現できる。
【図面の簡単な説明】
【００５９】
【図１】従来のネットワークシステムの基本構成例を示す図である。
【図２】従来のネットワークシステムのネットワークスイッチフォワーディングエンジンの内部構成を示す図である。
【図３】従来のネットワークシステムの転送テーブルの構成例を示す図である。
【図４】従来のネットワークシステムのＣＰＵの構成例を示す図である。
【図５】従来のネットワークシステムの制御サーバの構成例を示す図である。
【図６】本発明に係る通信制御システムの基本構成例を示す図である。
【図７】端末側の拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）の構成例を示す図である。
【図８】ＣＰＵとの間のパケット転送処理の動作を説明するためのフローチャートである。
【図９】制御サーバ側の拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）の構成例を示す図である。
【図１０】宛先解析処理の動作を説明するためのフローチャートである。
【図１１】本発明に係る通信制御システムのＣＰＵの構成例を示す図である。
【図１２】マルチＣＰＵ転送テーブル同期処理の動作を説明するためのフローチャートである。
【図１３】本発明に係る通信制御システムの転送テーブルの構成例を示す図である。
【図１４】本発明に係る通信制御システムの第１の実施例を示す図である。
【図１５】本発明に係る通信制御システムの第２の実施例を示す図である。
【発明を実施するための形態】
【００６０】
＜本発明の概要＞
「ＰＣＩ−ＳＩＧ」（ＰＣＩ  Ｓｐｅｃｉａｌ  Ｉｎｔｅｒｅｓｔ  Ｇｒｏｕｐ）で規定されているマルチルートＰＣＩエクスプレス（ＰＣＩｅ：ＰＣＩ  Ｅｘｐｒｅｓｓ）スイッチに、高速なパケットの処理を行うために複数のＣＰＵと、パケットの入出力を行うための複数の拡張ネットワークインターフェース（ＮＷ  Ｉ／Ｆ：Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ）を接続し、ソフトウェアベースでパケット処理を行うスイッチノードを構成する。
【００６１】
拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）は、端末から入力されるパケットを高速に処理するために、マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチの先に接続されている複数のＣＰＵに対して、パケットを送信する機能を持ち、パケットの処理を行うＣＰＵを決定するためにパケットのヘッダを解析し、複数のＣＰＵにパケットを振分けて転送を行う。
【００６２】
複数のＣＰＵと複数の拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）間のデータ転送については、拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）は、複数のＣＰＵに対してＤＭＡ転送を高速に行うために、複数のＤＭＡコントローラを搭載し、複数のＣＰＵに対して、各々のＤＭＡコントローラを用いて、ＤＭＡ転送で各ＣＰＵに負荷をかけず転送処理を行う。
【００６３】
各ＣＰＵは、大容量のメモリと接続し、パケットの転送先を決定する大量のエントリを持つ転送テーブルをメモリ上に構成する。
【００６４】
ＣＰＵは、拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）から入力されるパケットを受信すると、ＣＰＵ上のソフトウェアによる処理で、パケットのフレーム解析を行い、メモリ上にある転送テーブルを検索し、パケットに対する処理（パケットの出力ポートやパケットヘッダ書換処理等）を決定する。
【００６５】
ＣＰＵは、パケットに対する処理が決定した後は、ソフトウェアベースで、決定した処理を行い、該当する拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）にパケットを送信する。
【００６６】
ＣＰＵは、転送テーブルの検索の結果、パケットに対する処理が決まらない場合は、拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）の先に接続される制御サーバにパケットの処理内容を問い合わせる。
【００６７】
ＣＰＵは、制御サーバからパケットの処理内容を受け取ると、転送テーブルに、エントリとして登録を行う。
【００６８】
また、ＣＰＵは、他のＣＰＵが管理している転送テーブルにもエントリ登録を行い、同期処理を行い、拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）からどのＣＰＵに対してもパケットを振分けて転送しても問題が発生しないようにする。
【００６９】
＜実施形態＞
以下に、本発明の実施形態について添付図面を参照して説明する。
【００７０】
本発明は、ＣＤ分離型ネットワークを対象としている。ここでは、ＣＤ分離型ネットワークの１つであるオープンフローネットワークを例に説明する。但し、実際には、オープンフローネットワークに限定されない。
【００７１】
［通信制御システムの構成］
図６は、本発明に係る通信制御システムの基本構成を示す。
本発明に係る通信制御システムは、端末２（２−ｉ、ｉ＝１〜Ｔ：ｎは端末数）と、制御サーバ３と、スイッチノード４を含む。
【００７２】
制御サーバ３は、オープンフローネットワークにおけるコントローラに相当する。スイッチノード４は、オープンフローネットワークにおけるスイッチに相当する。端末２（２−ｉ、ｉ＝１〜Ｔ）及び制御サーバ３は、スイッチノード４と接続されている。
【００７３】
制御サーバ３は、スイッチノード４に対して、ネットワークから入力されるパケットの最適な経路での転送や、該制御サーバ３との連携のための制御を行い、ネットワークサービスの向上を行う。なお、制御サーバ３は、従来のネットワークシステムと同様である。すなわち、制御サーバ３は、図５に示す通りである。
【００７４】
スイッチノード４は、マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチ５０と、拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ：Ｍは任意）と、ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ：Ｎは任意）と、メモリ８０（８０−ｙ、ｙ＝１〜Ｎ）を備える。
【００７５】
マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチ５０は、拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ）、及びＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）と接続されている。
【００７６】
マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチ５０は、複数の拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ）と複数のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）間のデータ転送を行うマルチルート対応のＰＣＩエクスプレス（ＰＣＩｅ）スイッチである。
【００７７】
拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ）は、端末２（２−ｉ、ｉ＝１〜Ｔ）及び制御サーバ３と接続されている。
【００７８】
ここでは、拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０−１は、端末２−１と接続されている。拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０−２は、端末２−２と接続されている。拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０−３は、端末２−３と接続されている。拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０−４は、制御サーバ３と接続されている。
【００７９】
拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０−１〜６０−３は、端末２−１〜２−３から入力されるパケットを受け付ける。
【００８０】
例えば、拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０−１は、端末２−１からＬＡＮインターフェース（１Ｇ  ＭＡＣ）にパケットが入力されると、複数のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）のうち、どのＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）にパケットを振分けるかを判断し、マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチ５０を介して、該当のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）へパケット転送を行う。
【００８１】
ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）は、メモリ８０（８０−ｙ、ｙ＝１〜Ｎ）と接続されている。また、ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）及び転送テーブル８１（８１−ｙ、ｙ＝１〜Ｎ）は、ネットワークフォワーディングエンジン４０と接続されている。
【００８２】
ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）とメモリ８０（８０−ｙ、ｙ＝１〜Ｎ）は、それぞれ１対１で対応している。すなわち、ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）とメモリ８０（８０−ｙ、ｙ＝１〜Ｎ）は、同数である。但し、実際には、複数のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）の各々が同一のメモリ８０（８０−ｙ、ｙ＝１〜Ｎ）を共有していても良い。
【００８３】
ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）は、パケット転送処理を行う。
【００８４】
メモリ８０（８０−ｙ、ｙ＝１〜Ｎ）は、大容量のメモリであり、転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）を格納する。
【００８５】
このように、スイッチノード４において、マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチ５０は、大量のメモリ８０（８０−ｙ、ｙ＝１〜Ｎ）を持つ複数のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）と、複数の拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ）とをそれぞれ接続することで、複数の拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ）によるスイッチポートを構成する。
【００８６】
また、複数の拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ）から複数のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）への負荷分散転送処理を可能とすることで、複数のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）を用いた多重処理による高速パケット処理の実現、ＣＰＵの大容量メモリ空間を用いた大容量のフローテーブルを実現する。
【００８７】
これにより、スイッチノード４は、ソフトウェアベースのスイッチノードでありながら大容量フローテーブルを構成する高速なスイッチノードを実現する。
【００８８】
＜ハードウェアの例示＞
以下に、本発明に係る通信制御システムを実現するための具体的なハードウェアの例について説明する。
【００８９】
端末２（２−ｉ、ｉ＝１〜Ｔ）、及び制御サーバ３の例として、ＰＣ（パソコン）、アプライアンス（ａｐｐｌｉａｎｃｅ）、シンクライアント端末／サーバ、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。また、端末２（２−ｉ、ｉ＝１〜Ｔ）の他の例として、ＩＰ電話機、携帯電話機、スマートフォン、スマートブック、カーナビ（カーナビゲーションシステム）、携帯型ゲーム機、家庭用ゲーム機、携帯型音楽プレーヤー、ハンディターミナル、ガジェット（電子機器）、双方向テレビ、デジタルチューナー、デジタルレコーダー、情報家電（ｉｎｆｏｒｍａｔｉｏｎ  ｈｏｍｅ  ａｐｐｌｉａｎｃｅ）、ＯＡ（Ｏｆｆｉｃｅ  Ａｕｔｏｍａｔｉｏｎ）機器、店頭端末・高機能コピー機、デジタルサイネージ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｇｅ：電子看板）等も考えられる。なお、端末２（２−ｉ、ｉ＝１〜Ｔ）、及び制御サーバ３は、中継機器や周辺機器でも良い。
【００９０】
スイッチノード４の例として、ネットワークスイッチ（ｎｅｔｗｏｒｋ  ｓｗｉｔｃｈ）、ルータ（ｒｏｕｔｅｒ）、プロキシ（ｐｒｏｘｙ）、ゲートウェイ（ｇａｔｅｗａｙ）、ファイアウォール（ｆｉｒｅｗａｌｌ）、ロードバランサ（ｌｏａｄ  ｂａｌａｎｃｅｒ：負荷分散装置）、帯域制御装置（ｐａｃｋｅｔ  ｓｈａｐｅｒ）、セキュリティ監視制御装置（ＳＣＡＤＡ：Ｓｕｐｅｒｖｉｓｏｒｙ  Ｃｏｎｔｒｏｌ  Ａｎｄ  Ｄａｔａ  Ａｃｑｕｉｓｉｔｉｏｎ）、ゲートキーパー（ｇａｔｅｋｅｅｐｅｒ）、基地局（ｂａｓｅ  ｓｔａｔｉｏｎ）、アクセスポイント（ＡＰ：Ａｃｃｅｓｓ  Ｐｏｉｎｔ）、通信衛星（ＣＳ：Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓａｔｅｌｌｉｔｅ）、或いは、複数の通信ポートを有する計算機等が考えられる。
【００９１】
端末２（２−ｉ、ｉ＝１〜Ｔ）、制御サーバ３、及びスイッチノード４は、計算機等に搭載される拡張ボードや、物理マシン上に構築された仮想マシン（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ（ＶＭ））でも良い。また、端末２（２−ｉ、ｉ＝１〜Ｔ）、制御サーバ３、及びスイッチノード４は、車両や船舶、航空機等の移動体に搭載されていても良い。
【００９２】
拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ）の例として、ＬＡＮに対応した基板（マザーボードやＩ／Ｏボード）等の半導体集積回路、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）等のネットワークアダプタ、或いは、同様の拡張カード等が考えられる。ここでは、拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ）は、ハードウェアで高速に処理を行うために、ネットワークプロセッサ（Ｎｅｔｗｏｒｋ  Ｐｒｏｃｅｓｓｏｒ）を搭載しているものとする。
【００９３】
ＣＰＵ７０（７０−Ｙ、Ｙ＝１〜Ｎ）は、プロセッサ（ｐｒｏｃｅｓｓｏｒ）の一例に過ぎない。ＣＰＵ７０（７０−Ｙ、Ｙ＝１〜Ｎ）は、ネットワークプロセッサ（ＮＰ：Ｎｅｔｗｏｒｋ  Ｐｒｏｃｅｓｓｏｒ）、マイクロプロセッサ（ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ）、マイクロコントローラ（ｍｉｃｒｏｃｏｎｔｒｏｌｌｅｒ）、或いは、専用の機能を有する半導体集積回路（ＬＳＩ：Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等でも良い。
【００９４】
メモリ８０（８０−ｙ、ｙ＝１〜Ｎ）の例として、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ等の半導体記憶装置、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の補助記憶装置、又は、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のリムーバブルディスクやＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）等の記憶媒体（メディア）等が考えられる。
【００９５】
但し、実際には、これらの例に限定されない。
【００９６】
［拡張ネットワークインターフェースの構成（端末側）］
図７は、端末２−１〜２−３のいずれかと接続される拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０−１〜６０−３の構成を示す。
【００９７】
拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０−１〜６０−３の各々は、マルチルートＰＣＩエクスプレス・エンドポイント（ＰＣＩｅ  ＥＰ）６１と、ＬＡＮインターフェース（１Ｇ  ＭＡＣ）６２と、ＣＰＵ振分け処理部６３と、ＰＦリソース６４（６４−ｙ、ｙ＝１〜Ｎ）を備える。
【００９８】
マルチルートＰＣＩエクスプレス・エンドポイント（ＰＣＩｅ  ＥＰ）６１は、マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチ５０と接続されている。
【００９９】
ＬＡＮインターフェース（１Ｇ  ＭＡＣ）６２は、端末２−１〜２−３のいずれかとの間で、パケットの入出力を行う。ＬＡＮインターフェース（１Ｇ  ＭＡＣ）とは、１Ｇｂｐｓのデータ転送に対応したＬＡＮインターフェースという意味である。なお、「１Ｇ」は一例に過ぎない。
【０１００】
ＣＰＵ振分け処理部６３は、複数のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）へのパケットの振分け処理を行う。
【０１０１】
ＰＦリソース６４（６４−ｙ、ｙ＝１〜Ｎ）は、複数のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）との間で、ＤＭＡ転送で、制御メッセージやパケットの送受信を高速に行う。ここでは、ＰＦリソース６４（６４−ｙ、ｙ＝１〜Ｎ）の例として、ＰＦ１リソース６４−１と、ＰＦ２リソース６４−２と、ＰＦ３リソース６４−３を示す。
【０１０２】
［ＣＰＵ振分け処理部の構成］
ＣＰＵ振分け処理部６３は、パケット振分処理部６３１と、パケット送信バッファ６３２と、パケット受信バッファ６３３と、パケット送信処理部６３４を備える。
【０１０３】
パケット振分処理部６３１は、パケットのヘッダ部分を抽出し、ヘッダ部分の情報のうち、ＭＡＣアドレスや、ＶＬＡＮアドレス、ＩＰアドレス等の情報を用いて、フロー単位でハッシュ処理を行う。
【０１０４】
パケット送信バッファ６３２は、振分け先のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）へパケットを転送するために、決定された振分け先のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）へパケットを届けることができるＰＦリソース６４（６４−ｙ、ｙ＝１〜Ｎ）のいずれかにパケットを送信する。
【０１０５】
パケット受信バッファ６３３は、ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）から送信されたパケットを、ＰＦリソース６４（６４−ｙ、ｙ＝１〜Ｎ）を介して受信し、パケット送信処理部６３４に送信する。
【０１０６】
パケット送信処理部６３４は、パケット受信バッファ６３３から受信したパケットを、端末２（２−ｉ、ｉ＝１〜Ｔ）に送信する。
【０１０７】
［ＰＦリソースの構成］
ＰＦリソース６４（６４−ｙ、ｙ＝１〜Ｎ）の各々は、ＤＭＡコントローラ６４１と、ＣＰＵ宛パケットキュー６４２と、ＣＰＵ送信パケットキュー６４３を備える。
【０１０８】
ＤＭＡコントローラ６４１は、該ＰＦリソース６４（６４−ｙ、ｙ＝１〜Ｎ）とＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）との間のＤＭＡ転送制御を行う。
【０１０９】
ＣＰＵ宛パケットキュー６４２は、ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）宛に送信するパケットを保持する。
【０１１０】
ＣＰＵ送信パケットキュー６４３は、ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）から送信されたパケットを保持する。
【０１１１】
［ＣＰＵとの間のパケット転送処理］
図８は、端末２（２−ｉ、ｉ＝１〜Ｔ）からパケットが入力され、ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）でパケットが処理され転送される場合の動作を説明するためのフローチャートを示す。
【０１１２】
（１）ステップＳ１０１
端末２（２−ｉ、ｉ＝１〜Ｔ）から拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ）にパケットが入力されると、ＬＡＮインターフェース（１Ｇ  ＭＡＣ）６２は、パケットを受信し、パケット振分け処理部６３のパケット振分処理部６３１にパケットを転送する。
【０１１３】
（２）ステップＳ１０２
パケット振分処理部６３１は、パケットを受信すると、パケットのヘッダ部分を抽出する。
【０１１４】
（３）ステップＳ１０３
パケット振分処理部６３１は、抽出したパケットのヘッダ部分の情報のうち、ＭＡＣアドレスや、ＶＬＡＮアドレス、ＩＰアドレス等の情報を用いて、フロー単位でハッシュ処理を行う。
【０１１５】
ここでは、パケット振分処理部６３１は、複数のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）のどのＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）にそのフローの処理を行わせるかを確定するためにハッシュ処理を行う。
【０１１６】
（４）ステップＳ１０４
パケット振分処理部６３１は、ハッシュ処理により振分け先のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）を決定する。
【０１１７】
（５）ステップＳ１０５
パケット振分処理部６３１は、決定された振分け先のＣＰＵ７０へパケットを転送するために、パケット送信バッファ６３２にパケットを送信する。
【０１１８】
パケット送信バッファ６３２は、決定された振分け先のＣＰＵ７０へパケットを転送するために、決定された振分け先のＣＰＵ７０へパケットを届けることができるＰＦリソース６４のＣＰＵ宛パケットキュー６４２のいずれかにパケットを送信する。
【０１１９】
この例では、パケット送信バッファ６３２は、ＣＰＵ７０−１に転送するため、ＰＦ１リソース６４−１へパケットを送信する。
【０１２０】
ＣＰＵ７０−１は、パケット送信バッファ６３２から送信されたパケットがＰＦ１リソース６４−１のＣＰＵ宛パケットキュー６４２−１に格納された場合、マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチ５０を介して、ＰＦ１リソース６４−１のＤＭＡコントローラ６４１−１を制御し、ＣＰＵ７０−１に負荷をかけずに高速にＣＰＵ宛パケットキュー６４２−１に蓄積されたパケットを受信する。
【０１２１】
ここでは、ＣＰＵ７０−１は、ＰＣＩエクスプレス・ルート・コンプレックス（ＰＣＩｅ  ＲＣ）７１、マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチ５０、及びマルチルートＰＣＩエクスプレス・エンドポイント（ＰＣＩｅ  ＥＰ）６１で構成されたＰＣＩエクスプレス（ＰＣＩｅ）バスを通じて、ＰＦ１リソース６４−１のＤＭＡコントローラ６４１−１を制御する。
【０１２２】
［拡張ネットワークインターフェースの構成（制御サーバ側）］
図９は、制御サーバ３と接続される拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０−４の構成を示す。
【０１２３】
拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０−４は、マルチルートＰＣＩエクスプレス・エンドポイント（ＰＣＩｅ  ＥＰ）６１と、ＬＡＮインターフェース（１Ｇ  ＭＡＣ）６２と、ＰＦ（ページファイル）リソース６４（６４−ｙ、ｙ＝１〜Ｎ）と、パケット転送処理部６５を備える。
【０１２４】
拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０−１〜６０−３は、ＣＰＵ振分け処理部６３を備えていたが、拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０−４は、代わりに、パケット転送処理部６５を備える。実際には、ＣＰＵ振分け処理部６３とパケット転送処理部６５の両方の機能を統合したものでも良い。
【０１２５】
マルチルートＰＣＩエクスプレス・エンドポイント（ＰＣＩｅ  ＥＰ）６１は、マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチ５０と接続されている。
【０１２６】
ＬＡＮインターフェース（１Ｇ  ＭＡＣ）６２は、制御サーバ３との間で、パケットの入出力を行う。
【０１２７】
ＰＦリソース６４（６４−ｙ、ｙ＝１〜Ｎ）は、複数のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）との間で、ＤＭＡ転送で、制御メッセージやパケットの送受信を高速に行う。ここでは、ＰＦリソース６４（６４−ｙ、ｙ＝１〜Ｎ）の例として、ＰＦ１リソース６４−１と、ＰＦ２リソース６４−２と、ＰＦ３リソース６４−３を示す。
【０１２８】
パケット転送処理部６５は、複数のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）の各々、並びに、制御サーバ３との間でのパケットの転送処理を行う。
【０１２９】
［パケット転送処理部の構成］
パケット転送処理部６５は、宛先解析処理部６５１と、パケット送信バッファ６５２と、パケット受信バッファ６５３と、パケット送信処理部６５４を備える。
【０１３０】
宛先解析処理部６５１は、パケットのヘッダ部分を抽出し、ヘッダ部分の情報のうち、宛先ＭＡＣアドレスを確認し、スイッチノード４内のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）が使用しているＭＡＣアドレスかどうかをチェックする。宛先解析処理部６５１は、チェック結果に応じて、パケットの転送先を変更する。
【０１３１】
パケット送信バッファ６５２は、振分け先のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）へパケットを転送するために、決定された振分け先のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）へパケットを届けることができるＰＦリソース６４（６４−ｙ、ｙ＝１〜Ｎ）のいずれかにパケットを送信する。
【０１３２】
パケット受信バッファ６５３は、ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）から送信されたパケットを、ＰＦリソース６４（６４−ｙ、ｙ＝１〜Ｎ）を介して受信し、パケット送信処理部６５４に送信する。
【０１３３】
パケット送信処理部６５４は、パケット受信バッファ６５３から受信したパケットを、端末２（２−ｉ、ｉ＝１〜Ｔ）に送信する。
【０１３４】
［宛先解析処理］
図１０は、宛先解析処理の動作を説明するためのフローチャートを示す。
【０１３５】
（１）ステップＳ２０１
端末２（２−ｉ、ｉ＝１〜Ｔ）から拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ）にパケットが入力されると、ＬＡＮインターフェース（１Ｇ  ＭＡＣ）６２は、パケットを受信し、パケット振分け処理部６３のパケット振分処理部６３１にパケットを転送する。
【０１３６】
（２）ステップＳ２０２
宛先解析処理部６５１は、パケットを受信すると、パケットのヘッダ部分を抽出し、パケットの宛先ＭＡＣアドレスを確認する。
【０１３７】
（３）ステップＳ２０３
宛先解析処理部６５１は、宛先ＭＡＣアドレスがスイッチノード４内のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）が使用しているＭＡＣアドレスかどうかをチェックする。
【０１３８】
（４）ステップＳ２０４
宛先解析処理部６５１は、宛先ＭＡＣアドレスがＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）で利用されているＭＡＣアドレスである場合、外部にパケットを出力せず、折り返して、パケット送信バッファ６５２にパケットを出力する。
【０１３９】
（５）ステップＳ２０５
宛先解析処理部６５１は、宛先ＭＡＣアドレスがＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）で利用されているＭＡＣアドレスではない場合、パケット送信処理部６５４にパケットを出力する。パケット送信処理部６５４は、ＬＡＮインターフェース（１Ｇ  ＭＡＣ）６２−４を経由し、制御サーバ３にパケットを送信する。
【０１４０】
［拡張ネットワークインターフェースとＣＰＵとの関係］
拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ）は、マルチルート対応であり、端末２（２−ｉ、ｉ＝１〜Ｔ）等から送信されるパケットを受信すると、内部で、ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）の各々でのソフトウェアパケット処理の負荷分散処理と、パケット処理の多重化による高速化を行う。
【０１４１】
拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ）は、ハッシュ等を用いて、ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）の各々へのパケットの振分け処理を決定する。
【０１４２】
拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ）は、ＤＭＡコントローラ６４１を用いて、ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）の負荷を最小限にするように、マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチ５０を介して、高速にパケットを、ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）の各々へ分散して、転送を行う。
【０１４３】
ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）の各々は、受信したパケットを各々ソフトウェア処理で解析し、各ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）に付属する大容量のメモリ８０（８０−ｙ、ｙ＝１〜Ｎ）に格納された転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）を用いて、テーブル検索を行い宛先出力ポートの決定を行う。
【０１４４】
転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）は、大量のフローの宛先を管理する。
【０１４５】
ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）の各々は、出力ポート決定後は、出力先となる拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ）のＤＭＡコントローラ６４１を制御し、ＣＰＵ負荷を最小限に高速に該当パケットを、マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチ５０を介して転送する。
【０１４６】
また、ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）の各々は、転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）の検索の結果、出力ポートが決定しない場合は、制御サーバ３に、拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０−４を介してパケットを転送し、出力先の問合せを行う。
【０１４７】
ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）の各々は、問合せの結果、宛先が決まると、転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）に該当フローの宛先情報を格納する。
【０１４８】
この際、ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）の各々は、メモリ８０（８０−ｙ、ｙ＝１〜Ｎ）で管理される転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）が同じ情報になるように同期処理を行い、検索処理の負荷分散を図ることを可能にする。
【０１４９】
従って、従来のネットワークシステムのような、処理能力に限界がある単一のＣＰＵベースで処理を行うソフトウェアベースのスイッチ処理を行わず、転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）容量が限られるハードウェアベースのスイッチ処理を行わないことで、大容量の転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）を対応した高速スイッチ処理が可能なソフトウェアベースのスイッチノード４を実現することが可能になる。
【０１５０】
また、スイッチノード４は、一般のコンピュータでも利用される汎用性が高く安価で高性能なＣＰＵ、メモリ、ＰＣＩエクスプレス（ＰＣＩｅ）スイッチ、ネットワークインターフェースで構成することができ、コストの面で有利であり、ソフトウェアベースであるため変更の自由度が高いといったメリットもある。
【０１５１】
［ＣＰＵの構成］
図１１は、ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）で実行されるソフトウェアの構成図を示す。
【０１５２】
ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）の各々は、ＰＣＩエクスプレス・ルート・コンプレックス（ＰＣＩｅ  ＲＣ）７１と、ネットワークインターフェースドライバ７２と、パケット解析処理部７３と、テーブル検索部７４と、パケットバッファ処理部７５と、サービス内容問合せ処理部７６と、暗号処理部７７と、拡張ネットワークサービス設定部７８と、マルチＣＰＵ転送テーブル同期処理部７９を備える。
【０１５３】
ＰＣＩエクスプレス・ルート・コンプレックス（ＰＣＩｅ  ＲＣ）７１は、マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチ５０と接続されている。
【０１５４】
ネットワークインターフェースドライバ７２、パケット解析処理部７３、テーブル検索部７４、パケットバッファ処理部７５、サービス内容問合せ処理部７６、暗号処理部７７、拡張ネットワークサービス設定部７８、及びマルチＣＰＵ転送テーブル同期処理部７９は、各ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）がソフトウェアを実行することにより実現される。
【０１５５】
ネットワークインターフェースドライバ７２は、拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ）を制御する。
【０１５６】
パケット解析処理部７３は、拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ）から入力されるパケットの解析処理を行う。
【０１５７】
テーブル検索部７４は、パケットの転送処理方法を決定するための転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）を検索する。
【０１５８】
パケットバッファ処理部７５は、スイッチ処理、並びに、処理未決定のパケットに関して、制御サーバ３にパケットの処理内容を問い合わせるか否か決定するまでパケットを格納する。
【０１５９】
サービス内容問合せ処理部７６は、制御サーバ３にパケットの処理内容を問い合わせる。
【０１６０】
暗号処理部７７は、制御サーバ３と暗号通信を行う。
【０１６１】
拡張ネットワークサービス設定部７８は、制御サーバ３からの指示に従って、転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）を設定し拡張ネットワークサービスの処理を行う。
【０１６２】
マルチＣＰＵ転送テーブル同期処理部７９は、制御サーバ３からの指示を他のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）に伝え、転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）の同期処理を行う。
【０１６３】
［マルチＣＰＵ転送テーブル同期処理］
図１２は、マルチＣＰＵ転送テーブル同期処理の動作を説明するためのフローチャートを示す。
【０１６４】
（１）ステップＳ３０１
サービス内容問合せ処理部７６は、制御サーバ３へサービス処理方法（処理内容）を問い合わせる。ここでは、サービス内容問合せ処理部７６は、サービス処理方法の問合せに関するパケットを暗号処理部７７に送る。暗号処理部７７は、サービス処理方法の問合せに関するパケットを暗号化してネットワークインターフェースドライバ７２に送る。ネットワークインターフェースドライバ７２は、暗号化されたパケットを、ＰＣＩエクスプレス・ルート・コンプレックス（ＰＣＩｅ  ＲＣ）７１を介して、マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチ５０に送る。マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチ５０は、暗号化されたパケットを、制御サーバ３へ送信する。
（２）ステップＳ３０２
制御サーバ３は、サービス処理方法を決定する。ここでは、制御サーバ３のパケット送受信処理部３１は、暗号化されたパケットを受信し、暗号処理部３２に送る。暗号処理部３２は、暗号化されたパケットを復号し、サービス処理方法の問合せに関するパケットを拡張ネットワークサービス処理部３３に送る。拡張ネットワークサービス処理部３３は、サービス処理方法の問合せに関するパケットを基に、サービス処理方法を決定する。
【０１６５】
（３）ステップＳ３０３
制御サーバ３は、決定されたサービス処理方法に従い、転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）へのエントリ追加処理を行う。ここでは、制御サーバ３は、上記のステップＳ３０１の逆の流れで、決定されたサービス処理方法に基づくエントリ追加要求を、サービス内容問合せ処理部７６に送信する。サービス内容問合せ処理部７６は、エントリ追加要求を拡張ネットワークサービス設定部７８に通知する。
（４）ステップＳ３０４
拡張ネットワークサービス設定部７８は、エントリ追加要求に従って、自ＣＰＵ上の転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）の設定を行う。ここでは、拡張ネットワークサービス設定部７８は、エントリ追加要求に従って、自ＣＰＵに付属する大容量のメモリ８０（８０−ｙ、ｙ＝１〜Ｎ）に格納された転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）の設定を行う。
【０１６６】
（５）ステップＳ３０５
拡張ネットワークサービス設定部７８は、マルチＣＰＵ転送テーブル同期処理部７９に、自ＣＰＵ上の転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）の内容を通知する。マルチＣＰＵ転送テーブル同期処理部７９は、自ＣＰＵ上の転送テーブル設定を基に、他ＣＰＵへの転送テーブルの書込みを依頼する。ここでは、拡張ネットワークサービス設定部７８は、自ＣＰＵ上の転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）の内容を、マルチＣＰＵ転送テーブル同期処理部７９に通知する。マルチＣＰＵ転送テーブル同期処理部７９は、他ＣＰＵ上の転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）を自ＣＰＵ上の転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）と同期させるために、他ＣＰＵに対して、自ＣＰＵ上の転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）の全エントリを通知し、他ＣＰＵ上の転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）への書込みを依頼する。
【０１６７】
（６）ステップＳ３０６
マルチＣＰＵ転送テーブル同期処理部７９は、他ＣＰＵから書込み完了応答があるまで待機し、他ＣＰＵから書込み完了応答があれば、処理を終了する。
【０１６８】
［転送テーブルの構成］
図１３は、転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）の構成を示している。
【０１６９】
転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）は、大量のフローを管理することができる。ここでは、転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）は、６４０００００件のエントリを管理している。
【０１７０】
なお、「ＭＡＣ  ＤＡ」は、宛先ＭＡＣアドレスを示す。「ＭＡＣ  ＳＡ」は、送信元ＭＡＣアドレスを示す。「ＩＰ  ＤＡ」は、宛先ＩＰアドレスを示す。「ＩＰ  ＳＡ」は、送信元ＩＰアドレスを示す。
【０１７１】
［ＣＰＵにおけるソフトウェアでのパケット処理］
以下に、ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）において、ソフトウェアでパケットの処理を行う場合の動作について説明する。
【０１７２】
ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）において、拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ）を制御するネットワークインターフェースドライバ７２は、ＰＣＩエクスプレス・ルート・コンプレックス（ＰＣＩｅ  ＲＣ）７１を介して、ＤＭＡコントローラ６４１を制御し、ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）と拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ）間でのデータの送受信を行う。
【０１７３】
ネットワークインターフェースドライバ７２は、ＰＣＩエクスプレス・ルート・コンプレックス（ＰＣＩｅ  ＲＣ）７１を介して、拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ）からパケットを受信した後、スイッチ動作を行うために、パケット解析処理部７３に転送する。
【０１７４】
パケット解析処理部７３は、パケットのヘッダ情報等を抽出し、抽出したヘッダ情報等を解析し、ヘッダ情報を用いて検索キーを作成し、テーブル検索部７４に渡す。
【０１７５】
テーブル検索部７４は、パケットに対する処理方法を決定するために、検索キーを用いて、大容量のメモリ８０（８０−ｙ、ｙ＝１〜Ｎ）に格納されている転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）を検索する。
【０１７６】
テーブル検索部７４は、転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）を検索した結果、該当（ヒット）したエントリが存在した場合、該エントリのアクションを基に、パケットの出力ポート先、並びに、ヘッダの書換処理等の処理方法を決定する。
【０１７７】
その後、テーブル検索部７４は、パケットバッファ処理部７５へパケットを転送する。
【０１７８】
その後、パケットバッファ処理部７５は、処理方法が決定している際、パケットの処理を行い、スイッチ動作のため、該当する出力ポートにパケットを出力する動作を行う。パケットバッファ処理部７５は、決定した処理方法に従って、該当する出力ポートにパケットを出力するため、ネットワークインターフェースドライバ７２にパケットを転送する。
【０１７９】
ネットワークインターフェースドライバ７２は、ＰＣＩエクスプレス・ルート・コンプレックス（ＰＣＩｅ  ＲＣ）７１を介して、ＤＭＡコントローラ６４１を制御し、出力ポート先となる拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ）のＣＰＵ送信パケットキュー６４３にパケットを出力する。
【０１８０】
更に、ネットワークインターフェースドライバ７２は、ＤＭＡコントローラ６４１を制御し、ＣＰＵ送信パケットキュー６４３に送信されたパケットを、パケット受信バッファ６３３に格納する。
【０１８１】
パケット送信処理部６３４は、パケット受信バッファ６３３に格納されたパケットを読み出し、ＬＡＮインターフェース（１Ｇ  ＭＡＣ）６２を介して、出力先の端末２（２−ｉ、ｉ＝１〜Ｔ）に送信する。
【０１８２】
また、テーブル検索部７４は、転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）を検索した結果、該当（ヒット）したエントリが存在しない場合、制御サーバ３にパケットの処理方法を問合せ、処理方法を確定する。
【０１８３】
その際、サービス内容問合せ処理部７６は、暗号処理部７７を利用してパケット情報を暗号化した上で、ネットワークインターフェースドライバ７２に転送する。
【０１８４】
ネットワークインターフェースドライバ７２は、ＰＣＩエクスプレス・ルート・コンプレックス（ＰＣＩｅ  ＲＣ）７１を介して、拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０−４のＤＭＡコントローラ６４１を制御し、暗号化されたパケット情報を、拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０−４のＣＰＵ送信パケットキュー６４３に送信する。
【０１８５】
ネットワークインターフェースドライバ７２は、ＤＭＡコントローラ６４１を制御し、ＣＰＵ送信パケットキュー６４３に送信されたパケット（暗号化されたパケット情報）を、パケット転送処理部６５のパケット受信バッファ６５３に送信する。
【０１８６】
その後、ネットワークインターフェースドライバ７２は、ＤＭＡコントローラ６４１を制御し、パケット受信バッファ６５３に送信されたパケット（暗号化されたパケット情報）を、宛先解析処理部６５１に送信する。
【０１８７】
宛先解析処理部６５１は、パケット（暗号化されたパケット情報）を受信すると、パケットの宛先ＭＡＣアドレスを確認し、スイッチノード４内のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）が使用しているＭＡＣアドレスかどうかをチェックする。
【０１８８】
宛先解析処理部６５１は、もしＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）で利用されているＭＡＣアドレスの場合、外部にパケットを出力せず、折り返して、パケット送信バッファ６５２へパケット（暗号化されたパケット情報）を出力する。
【０１８９】
宛先解析処理部６５１は、制御サーバ３宛のパケットのように、異なるＭＡＣアドレスの場合、パケット送信処理部６５４に送り、ＬＡＮインターフェース（１Ｇ  ＭＡＣ）６２−４を経由し、制御サーバ３にパケット（暗号化されたパケット情報）を送信する。
【０１９０】
制御サーバ３のパケット送受信処理部３１は、送信されたパケット（暗号化されたパケット情報）を受信し、暗号処理部３２に転送する。
【０１９１】
暗号処理部３２は、暗号化されたパケット情報を復号し、パケット情報を拡張ネットワークサービス処理部３３へ送信し、パケットに対する処理方法を決定する。
【０１９２】
処理方法決定後、再度暗号処理部３２は、処理方法に関する情報のパケットを暗号化し、パケット送受信処理部３１へ送る。パケット送受信処理部３１は、拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０−４へパケットを送信し、暗号化されたパケットをスイッチノード４へ応答する。
【０１９３】
スイッチノード４の拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０−４のＬＡＮインターフェース（１Ｇ  ＭＡＣ）６２−４は、応答パケットを受信し、パケット送信バッファ６５２に応答パケットを格納する。
【０１９４】
スイッチノード４のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）のネットワークインターフェースドライバ７２は、ＤＭＡコントローラ６４１を制御し、パケット送信バッファ６５２に格納された応答パケットを受信し、暗号処理部７７に送る。暗号処理部７７は、応答パケットを復号してサービス内容問合せ処理部７６に送信する。
【０１９５】
サービス内容問合せ処理部７６は、制御サーバ３からの応答パケットにより、処理方法が確定すると、拡張ネットワークサービス設定部７８に処理内容を通知する。
【０１９６】
拡張ネットワークサービス設定部７８は、パケットヘッダ書換処理を行い、指示されたパケット出力ポートにパケットを送信し、パケットのスイッチ動作を行う。
【０１９７】
また、拡張ネットワークサービス設定部７８は、次回パケットから転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）での処理方法を確定できるように、制御サーバ３から得たパケット処理方法を、自ＣＰＵに付随するメモリ８０の転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）に書き込む。
【０１９８】
また、拡張ネットワークサービス設定部７８は、複数のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）で同様の処理を行えるように、マルチＣＰＵ転送テーブル同期処理部７９に同期処理を要求する。
【０１９９】
マルチＣＰＵ転送テーブル同期処理部７９は、同期処理の要求に応じて、自ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）の転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）の情報を基に、他のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）の転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）の情報を更新し、複数のＣＰＵ間の転送テーブル８１（８１−ｚ、ｚ＝１〜Ｎ）の同期処理を行う。
【０２００】
［本実施形態の特徴］
以上のように、マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチを用いて、各ＣＰＵへのパケットの振分け処理を実現可能にすることができる。
【０２０１】
また、拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）を用いて、複数のＣＰＵを用いたソフトウェアベースの高速なスイッチ動作処理を実現可能にすることができる。
【０２０２】
また、ＣＰＵは大容量のメモリを搭載することが可能なため、大容量の転送テーブルの構築が可能で、大量のフローを管理可能な高速なソフトウェアベースのスイッチノード構成が可能となる。
【０２０３】
本発明では、「ＰＣＩ−ＳＩＧ」で規定されている複数のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）と複数のＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）を、接続可能な標準のマルチルート対応のＰＣＩエクスプレス（ＰＣＩｅ）スイッチを利用する。
【０２０４】
また、本発明では、ネットワークプロセッサ等を搭載したパケットに対して解析を行い、ＣＰＵへ処理を振分けることが可能な、マルチルートに対応する拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）カードを利用する。
【０２０５】
また、本発明では、パケット処理を行うための汎用的なＣＰＵとメモリを利用する。
【０２０６】
本発明では、ソフトウェアベースでありながら、ＣＰＵ間の転送テーブルの同期化と複数のＣＰＵによるパケット処理を行うことで、高速なパケット処理を実現する。
【０２０７】
また、本発明では、ＰＣＩエクスプレス（ＰＣＩｅ）ベースによるＤＭＡコントローラを利用した、拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）とＣＰＵ間、並びに、複数のＣＰＵ間での高速なパケットの送受信を行う。
【０２０８】
これにより、大容量の転送テーブルを持つ、高速なソフトウェアベースのスイッチノードの構成が可能になる。
【０２０９】
また、スイッチノードを構成するハードウェア部品は、標準規格の部品であるため、装置のコスト削減効果が期待できると共に、ＣＰＵを増やすことで、性能面のスケーラビリティと、ソフトウェアベースであるため、柔軟性が高いスイッチノードの構成が期待できる。
【０２１０】
本発明は、１０００万フロー等、大量のフローの管理を必要とするネットワーク装置や、高速で複雑なパケット処理を必要とするネットワーク装置、或いは、多数のサーバを利用した高機能ネットワーク装置に適用することができる。
【０２１１】
本発明は、外部に制御サーバを用いない構成においても適用することができ、高性能なスイッチノードを実現することができる。
【０２１２】
＜第１の実施例＞
図１４に、第１の実施例におけるスイッチノードの構成例を示す。
【０２１３】
本実施例に係る通信制御システムは、端末２（２−ｉ、ｉ＝１〜Ｔ）と、制御サーバ３と、スイッチノード５を含む。
【０２１４】
端末２（２−ｉ、ｉ＝１〜Ｔ）、及び制御サーバ３については、先に説明した通りである。
【０２１５】
スイッチノード５は、ＬＡＮスイッチ１００と、ＣＰＵ及びメモリ１１０（１１０−ｙ、ｙ＝１〜Ｎ）と、ＰＣＩエクスプレス（ＰＣＩｅ）スイッチ及びネットワーク仮想化インターフェース（ＮＷ仮想化Ｉ／Ｆ）１２０（１２０−ｙ、ｙ＝１〜Ｎ）と、シングルルートＰＣＩエクスプレス・エンドポイント（ＰＣＩｅ  ＥＰ）及び拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）１３０（１３０−ｘ、ｘ＝１〜（Ｍ＋１））と、マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチ及びネットワーク仮想化インターフェース（ＮＷ仮想化Ｉ／Ｆ）１４０（１４０−ｘ、ｘ＝１〜（Ｍ＋１））を備える。
【０２１６】
ＬＡＮスイッチ１００は、イーサネットスイッチ（Ｅｔｈｅｒｎｅｔ（登録商標）  ｓｗｉｔｃｈ）であり、ＰＣＩエクスプレス（ＰＣＩｅ）スイッチ及びネットワーク仮想化インターフェース（ＮＷ仮想化Ｉ／Ｆ）１２０（１２０−ｙ、ｙ＝１〜Ｎ）と、シングルルートＰＣＩエクスプレス・エンドポイント（ＰＣＩｅ  ＥＰ）及び拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）１３０（１３０−ｘ、ｘ＝１〜（Ｍ＋１））とを接続する。
【０２１７】
ＣＰＵ及びメモリ１１０（１１０−ｙ、ｙ＝１〜Ｎ）は、ＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）とメモリ８０（８０−ｙ、ｙ＝１〜Ｎ）を組み合わせたものに相当する。
【０２１８】
ＰＣＩエクスプレス（ＰＣＩｅ）スイッチ及びネットワーク仮想化インターフェース（ＮＷ仮想化Ｉ／Ｆ）１２０（１２０−ｙ、ｙ＝１〜Ｎ）は、ＰＣＩエクスプレス（ＰＣＩｅ）スイッチとネットワーク仮想化インターフェース（ＮＷ仮想化Ｉ／Ｆ）を組み合わせたものに相当する。ＰＣＩエクスプレス（ＰＣＩｅ）スイッチ及びネットワーク仮想化インターフェース（ＮＷ仮想化Ｉ／Ｆ）１２０（１２０−ｙ、ｙ＝１〜Ｎ）は、ＬＡＮスイッチ１００と、ＣＰＵ及びメモリ１１０（１１０−ｙ、ｙ＝１〜Ｎ）とを接続する。
【０２１９】
シングルルートＰＣＩエクスプレス・エンドポイント（ＰＣＩｅ  ＥＰ）及び拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）１３０（１３０−ｘ、ｘ＝１〜（Ｍ＋１））は、シングルルートＰＣＩエクスプレス・エンドポイント（ＰＣＩｅ  ＥＰ）と拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）６０（６０−ｘ、ｘ＝１〜Ｍ）を組み合わせたものに相当する。シングルルートＰＣＩエクスプレス・エンドポイント（ＰＣＩｅ  ＥＰ）及び拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）１３０（１３０−ｘ、ｘ＝１〜（Ｍ＋１））は、端末２（２−ｉ、ｉ＝１〜Ｔ）と、マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチ及びネットワーク仮想化インターフェース（ＮＷ仮想化Ｉ／Ｆ）１４０（１４０−ｘ、ｘ＝１〜（Ｍ＋１））を接続する。
【０２２０】
マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチ及びネットワーク仮想化インターフェース（ＮＷ仮想化Ｉ／Ｆ）１４０（１４０−ｘ、ｘ＝１〜（Ｍ＋１））は、マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチ５０とネットワーク仮想化インターフェース（ＮＷ仮想化Ｉ／Ｆ）を組み合わせたものに相当する。マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチ及びネットワーク仮想化インターフェース（ＮＷ仮想化Ｉ／Ｆ）１４０（１４０−ｘ、ｘ＝１〜（Ｍ＋１））は、ＬＡＮスイッチ１００と、シングルルートＰＣＩエクスプレス・エンドポイント（ＰＣＩｅ  ＥＰ）及び拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）１３０（１３０−ｘ、ｘ＝１〜（Ｍ＋１））を接続する。
【０２２１】
本発明では、ＣＰＵの数を増やせば増やすほど、スイッチ処理能力の向上が期待できる。
【０２２２】
「ＰＣＩ−ＳＩＧ」規定に準拠したマルチルート対応のＰＣＩエクスプレス（ＰＣＩｅ）スイッチ相当のものであれば、同様に利用可能であり、ＬＡＮスイッチを用いた、マルチルート対応のスイッチを構成し、シングルルートの拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）を仮想化して、複数のＣＰＵからアクセス可能し、マルチルートと同等なシステム構成にも適用可能である。
【０２２３】
この場合、スイッチはＬＡＮ上に構成されるため、非常に大規模な仮想スイッチを構成し、そこにＣＰＵとメモリを持つ大量のサーバと、ネットワークインターフェースを接続することで、非常に大規模で高性能なスイッチノードを構成することができる。
【０２２４】
＜第２の実施例＞
また、図１５に、第２の実施例におけるスイッチノードの構成例を示す。
【０２２５】
図１５は、図１４のＣＰＵ７０（７０−ｙ、ｙ＝１〜Ｎ）部分を大量のプロセッサを搭載したＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）に変更した場合の構成である。
【０２２６】
ＧＰＵを用いた場合、ＣＰＵよりも更にパケット処理の高速化が期待でき、ＰＣＩエクスプレス（ＰＣＩｅ）に接続できるため、ＣＰＵの代わりにパケット処理をＧＰＵに行わせることも可能である。
【０２２７】
但し、ＧＰＵはＩ／Ｏであるため、１つはマスターＣＰＵとして、余分にＣＰＵの接続が必要である。
【０２２８】
本実施例に係る通信制御システムは、端末２（２−ｉ、ｉ＝１〜Ｔ）と、制御サーバ３と、スイッチノード６を含む。
【０２２９】
端末２（２−ｉ、ｉ＝１〜Ｔ）、及び制御サーバ３については、先に説明した通りである。
【０２３０】
スイッチノード６は、ＬＡＮスイッチ１００と、ＣＰＵ及びメモリ１１０と、ＰＣＩエクスプレス（ＰＣＩｅ）スイッチ及びネットワーク仮想化インターフェース（ＮＷ仮想化Ｉ／Ｆ）１２０（１２０−ｙ、ｙ＝１〜Ｎ）と、シングルルートＰＣＩエクスプレス・エンドポイント（ＰＣＩｅ  ＥＰ）及び拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）１３０（１３０−ｘ、ｘ＝１〜（Ｍ＋１））と、マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチ及びネットワーク仮想化インターフェース（ＮＷ仮想化Ｉ／Ｆ）１４０（１４０−ｘ、ｘ＝１〜（Ｍ＋１））と、ＧＰＵ及びメモリ１５０（１５０−ｙ、ｙ＝１〜Ｎ）と、エクスプレス（ＰＣＩ  Ｅｘｐｒｅｓｓ）スイッチ及びネットワーク仮想化インターフェース（ＮＷ仮想化Ｉ／Ｆ）１２０（１２０−ｙ、ｙ＝１〜Ｎ）を備える。
【０２３１】
ＬＡＮスイッチ１００、ＣＰＵ及びメモリ１１０、ＰＣＩエクスプレス（ＰＣＩｅ）スイッチ及びネットワーク仮想化インターフェース（ＮＷ仮想化Ｉ／Ｆ）１２０（１２０−ｙ、ｙ＝１〜Ｎ）、シングルルートＰＣＩエクスプレス・エンドポイント（ＰＣＩｅ  ＥＰ）及び拡張ネットワークインターフェース（拡張ＮＷ  Ｉ／Ｆ）１３０（１３０−ｘ、ｘ＝１〜（Ｍ＋１））、マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチ及びネットワーク仮想化インターフェース（ＮＷ仮想化Ｉ／Ｆ）１４０（１４０−ｘ、ｘ＝１〜（Ｍ＋１））については、図１４に示す第１の実施例と同じである。
【０２３２】
ＧＰＵ及びメモリ１５０（１５０−ｙ、ｙ＝１〜Ｎ）は、ＧＰＵ及びメモリ１５０（１５０−ｙ、ｙ＝１〜Ｎ）を組み合わせたものに相当する。
【０２３３】
エクスプレス（ＰＣＩ  Ｅｘｐｒｅｓｓ）スイッチ及びネットワーク仮想化インターフェース（ＮＷ仮想化Ｉ／Ｆ）１２０（１２０−ｙ、ｙ＝１〜Ｎ）は、エクスプレス（ＰＣＩ  Ｅｘｐｒｅｓｓ）スイッチとネットワーク仮想化インターフェース（ＮＷ仮想化Ｉ／Ｆ）を組み合わせたものに相当する。エクスプレス（ＰＣＩ  Ｅｘｐｒｅｓｓ）スイッチ及びネットワーク仮想化インターフェース（ＮＷ仮想化Ｉ／Ｆ）１２０（１２０−ｙ、ｙ＝１〜Ｎ）は、ＬＡＮスイッチ１００と、ＧＰＵ及びメモリ１５０（１５０−ｙ、ｙ＝１〜Ｎ）とを接続する。
【０２３４】
＜まとめ＞
本発明は、ソフトウェアベースのネットワークスイッチノードにおいて、「ＰＣＩ−ＳＩＧ」で規定されているマルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチを活用した、大量の転送テーブルを管理でき、高性能なパケット転送処理を実現するノード構成に関する。
【０２３５】
本発明は、ソフトウェアベースのスイッチノードにおいて、大容量のフローテーブルを構成し高速なパケットスイッチ処理を行い、外部の制御サーバと接続し高機能なサービス・プロトコル処理を、ＰＣＩエクスプレス（ＰＣＩｅ）で規定されているマルチルート対応のスイッチ並びにネットワークインターフェースを活用して実現する。
【０２３６】
本発明に係るスイッチノードは、マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチと、多数のＣＰＵと、多数のネットワークインターフェースカードを用いて、ソフトウェアベースで構築される。
【０２３７】
本発明に係るスイッチノードは、ネットワークインターフェース内で、パケットの処理負荷分散を行うために、ＣＰＵへの処理振分けを行い、マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチを用いて、複数のＣＰＵへ処理の負荷分散を行う。
【０２３８】
本発明に係るスイッチノードは、複数のＣＰＵ間で転送テーブルの同期を、マルチルートＰＣＩエクスプレス（ＰＣＩｅ）スイッチを介して、折り返し可能な拡張インターフェースカードを利用して、高速に同期処理を行う。
【０２３９】
＜備考＞
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【０２４０】
なお、本出願は、日本出願番号２０１１−０６３４４１に基づく優先権を主張するものであり、日本出願番号２０１１−０６３４４１における開示内容は引用により本出願に組み込まれる。
【図１】
2012128282.tif 000003
【図２】
2012128282.tif 000004
【図３】
2012128282.tif 000005
【図４】
2012128282.tif 000006
【図５】
2012128282.tif 000007
【図６】
2012128282.tif 000008
【図７】
2012128282.tif 000009
【図８】
2012128282.tif 000010
【図９】
2012128282.tif 000011
【図１０】
2012128282.tif 000012
【図１１】
2012128282.tif 000013
【図１２】
2012128282.tif 000014
【図１３】
2012128282.tif 000015
【図１４】
2012128282.tif 000016
【図１５】
2012128282.tif 000017
【国際調査報告】
2012128282.tif 000018
2012128282.tif 000019