(57)【特許請求の範囲】
【請求項１】
ネットワークから、通信サーバ装置内に設けられる上位処理装置へ転送されるパケットあるいは前記上位処理装置から前記ネットワークへ転送されるパケットの順序保証モードを切り替えることが可能なレベル制御部と、
前記ネットワークから前記上位処理装置へ転送されるパケットの順序を保証するレベル１順序制御部と、
前記ネットワークから前記上位処理装置へ転送されるパケットの順序と前記上位処理装置から前記ネットワークへ転送されるパケットの順序を包括的に保証するレベル２順序制御部と、
前記順序保証モードに応じて、前記ネットワークから受信して前記レベル１順序制御部で処理されたパケットを前記上位処理装置へ転送するか、あるいは前記ネットワークから受信したパケットをそのまま前記上位処理装置へ転送するパケット振分部とを有し、
前記レベル制御部と前記レベル１順序制御部と前記レベル２順序制御部と前記パケット振分部とは、前記通信サーバ装置のＣＰＵの処理を補助する補助装置によって構成されることを特徴とする順序制御装置。
【請求項２】
請求項１記載の順序制御装置において、
前記レベル制御部は、前記レベル１順序制御部と前記レベル２順序制御部の機能を共にオフにして、前記ネットワークから受信したパケットをそのまま前記上位処理装置へ転送させると共に前記上位処理装置から受信したパケットをそのまま前記ネットワークへ転送させる高速動作モードと、前記レベル１順序制御部の機能をオン、前記レベル２順序制御部の機能をオフにして、前記ネットワークから前記上位処理装置へ転送されるパケットの順序のみを保証するレベル１順序制御モードと、前記レベル１順序制御部と前記レベル２順序制御部の機能を共にオンにして、前記ネットワークから前記上位処理装置へ転送されるパケットの順序と前記上位処理装置から前記ネットワークへ転送されるパケットの順序を包括的に保証するレベル２順序制御モード、のうちいずれか１つを選択可能なことを特徴とする順序制御装置。
【請求項３】
請求項１または２記載の順序制御装置において、
前記レベル２順序制御部は、
前記ネットワークから受信したパケットに一意のシーケンス番号を付加する付加部と、
前記シーケンス番号が付加されたパケットを前記レベル１順序制御部へ転送する転送部と、
シーケンス番号を蓄積するための第１のバッファと、
パケットを蓄積するための第２のバッファと、
前記上位処理装置からパケットを受信したときに、このパケットに付加されているシーケンス番号を抽出してパケットから削除すると共に、抽出したシーケンス番号を前記第１のバッファに格納して、前記シーケンス番号を削除したパケットを前記第２のバッファに格納する抽出・削除部と、
前記第２のバッファに蓄積されたパケットを所望の順序に並べ替えて前記ネットワークへ出力するパケット再整列部とを備え、
前記レベル１順序制御部は、前記レベル２順序制御部から転送されたパケットを所定の論理的なグループに分類して、分類したグループ毎に前記パケット振分部へ転送することを特徴とする順序制御装置。
【請求項４】
ネットワークから、通信サーバ装置内に設けられる上位処理装置へ転送されるパケットあるいは前記上位処理装置から前記ネットワークへ転送されるパケットの順序保証モードを切り替えるレベル制御ステップと、
前記順序保証モードに応じて選択的に実行され、前記ネットワークから前記上位処理装置へ転送されるパケットの順序を保証するレベル１順序制御ステップと、
前記順序保証モードに応じて選択的に実行され、前記ネットワークから前記上位処理装置へ転送されるパケットの順序と前記上位処理装置から前記ネットワークへ転送されるパケットの順序を包括的に保証するレベル２順序制御ステップと、
前記順序保証モードに応じて、前記ネットワークから受信して前記レベル１順序制御ステップで処理されたパケットを前記上位処理装置へ転送するか、あるいは前記ネットワークから受信したパケットをそのまま前記上位処理装置へ転送するパケット振分ステップとを含み、
前記レベル制御ステップと前記レベル１順序制御ステップと前記レベル２順序制御ステップと前記パケット振分ステップとは、前記通信サーバ装置のＣＰＵの処理を補助する補助装置によって実行されることを特徴とする順序制御方法。
【請求項５】
請求項４記載の順序制御方法において、
前記レベル制御ステップは、前記レベル１順序制御ステップと前記レベル２順序制御ステップを共に実行せずに、前記ネットワークから受信したパケットをそのまま前記上位処理装置へ転送させると共に前記上位処理装置から受信したパケットをそのまま前記ネットワークへ転送させる高速動作モードと、前記レベル２順序制御ステップを実行せずに、前記レベル１順序制御ステップを実行して、前記ネットワークから前記上位処理装置へ転送されるパケットの順序のみを保証するレベル１順序制御モードと、前記レベル１順序制御ステップと前記レベル２順序制御ステップを共に実行して、前記ネットワークから前記上位処理装置へ転送されるパケットの順序と前記上位処理装置から前記ネットワークへ転送されるパケットの順序を包括的に保証するレベル２順序制御モード、のうちいずれか１つを選択可能なことを特徴とする順序制御方法。
【請求項６】
請求項４または５記載の順序制御方法において、
前記レベル２順序制御ステップは、
前記ネットワークから受信したパケットに一意のシーケンス番号を付加するシーケンス番号付加ステップと、
前記シーケンス番号を付加したパケットを前記レベル１順序制御ステップの処理に渡す転送ステップと、
前記上位処理装置からパケットを受信したときに、このパケットに付加されているシーケンス番号を抽出してパケットから削除すると共に、抽出したシーケンス番号を第１のバッファに格納して、前記シーケンス番号を削除したパケットを第２のバッファに格納するシーケンス番号抽出・削除ステップと、
前記第２のバッファに蓄積されたパケットを所望の順序に並べ替えて前記ネットワークへ出力するパケット再整列ステップとを含み、
前記レベル１順序制御ステップは、前記転送ステップによって転送されたパケットを所定の論理的なグループに分類して、分類したグループ毎に前記パケット振分ステップの処理に渡すステップを含むことを特徴とする順序制御方法。
【請求項７】
ネットワークから、通信サーバ装置内に設けられる上位処理装置へ転送されるパケットあるいは前記上位処理装置から前記ネットワークへ転送されるパケットの順序保証モードを切り替えるレベル制御ステップと、
前記順序保証モードに応じて選択的に実行され、前記ネットワークから前記上位処理装置へ転送されるパケットの順序を保証するレベル１順序制御ステップと、
前記順序保証モードに応じて選択的に実行され、前記ネットワークから前記上位処理装置へ転送されるパケットの順序と前記上位処理装置から前記ネットワークへ転送されるパケットの順序を包括的に保証するレベル２順序制御ステップと、
前記順序保証モードに応じて、前記ネットワークから受信して前記レベル１順序制御ステップで処理されたパケットを前記上位処理装置へ転送するか、あるいは前記ネットワークから受信したパケットをそのまま前記上位処理装置へ転送するパケット振分ステップとを、前記通信サーバ装置のＣＰＵの処理を補助する補助装置に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信パケットの順序を制御するための順序制御装置に係り、特に通信サーバの補助装置に順序制御機能が複数段のレベルに分けて実装され、通信処理性能に影響を与えずにパケットが保持すべき順序を所望のレベルで制御することができる順序制御装置、順序制御方法およびプログラムに関するものである。
【背景技術】
【０００２】
近年、ネットワークの制御装置と転送装置を分離し、論理的集中制御によりネットワークサービスの自動化を実現するＳＤＮ（Software Defined Networking）関連技術が、将来の柔軟化指向ネットワークを実現するためのキーテクノロジーとして多くの関心を集め、クラウドサービスを提供するデータセンタに留まらず、通信事業者の広域インフラの在り方にも影響を及ぼしている。
【０００３】
背景として、汎用サーバ機器の高性能化が挙げられる。２０１３年には世界の通信事業者が連携して、ＮＦＶ（Network Functions Virtualization）の構想が提唱されている。ＮＦＶは、特定ベンダの高価な専用ハードウェアではなく、安価な汎用ハードウェアとネットワーク仮想化技術を用いて、ソフトウェア主体で迅速かつ柔軟にネットワークサービスを提供し、ＣＡＰＥＸ（CAPital EXpenditur）およびＯＰＥＸ（OPerational EXpenditure）の低減を図る技術である。
【０００４】
既存のＩＰ（Internet Protocol）ネットワークを構成する通信装置では、通信装置間で転送するパケットデータの送受信順序は適正に保証されなければならない。パケットの到着順が不問とされる非同期型の通信サービスならば、パケットの順序保証はさほど重視されないが、音声や映像のストリーミング配信等に代表される同期型のサービスや通信事業者が提供するキャリアグレードのサービスでは、パケットの順序保証は重要な役割を担うことになる。そのため、従来の通信装置では、受信したパケットをあるべき順序に補正して送信する仕組みが実現されている。このような仕組みの例としては、例えば特許文献１に開示された制御方法がある。
【０００５】
一方、ＳＤＮ／ＮＦＶの考え方に基づいて構成するネットワークにおいても、同等の仕組みが必要とされ、そのような仕組みを前記の従来技術に基づいて通信装置内に構成し得るであろうことは当業者であれば容易に推測できる。しかしながら、ＳＤＮ／ＮＦＶにおいては、従来のＩＰネットワークで利用されてきた専用ハードウェア主体の通信装置（以下、「物理ＮＷ機器」と呼ぶ）だけでなく、汎用ハードウェアとネットワーク仮想化技術とを用いたソフトウェア主体の通信装置（以下、「仮想ＮＷ機器」と呼ぶ）を積極的に配備していく点が、従来と異なるネットワークの構成上の顕著な特徴となっている。このため、仮想ＮＷ（Network）機器に起因するパケット順序の不整合（順序逆転）が問題となる場合がある。
【０００６】
例えば非特許文献１に示すように、仮想ＮＷ機器を構成する代表的なソフトウェア機能として仮想スイッチとその制御装置（以下、コントローラと呼ぶ）とがある。このような仮想スイッチを使用して構成するＳＤＮ／ＮＦＶのネットワークでは、一般に仮想スイッチとコントローラとが論理的に分離されて、互いに通信しながらパケットデータを処理する構成をとる。コントローラは、仮想スイッチが所望のパケットデータを任意の論理的なまとまり（以下、フロー）として柔軟に転送するような指示を与えることができるため、従来の自律分散制御を基盤とするＩＰネットワークと異なり、柔軟な集中制御が可能となる。
【０００７】
仮想スイッチは、典型的にはサーバ等の汎用装置上のソフトウェアとして構成される。サーバ上の仮想スイッチは、ＯＳ（Operating System）カーネルが備える通信機能を用いてフローを処理するケース、カーネル空間を介さずユーザー空間で高速にフローを送受信処理するケース、あるいは両方の空間を併用するケースで動作する。このとき、非特許文献１に示すようにコントローラがフロー処理の指示を与えるタイミングによっては、カーネル空間ないしユーザー空間に保持されたパケットの順序が適切に保持されないまま送信されてしまい、結果としてフロー内の順序逆転が発生することになる。非特許文献１では、本問題の有効な解決策が見出されていない。
【０００８】
また、上記の例に限らず、前記仮想ＮＷ機器は、構成上サーバＣＰＵ（Central Processing Unit）に代表される汎用ハードウェアを使用するため、バッチ処理やキャッシュの影響等複数の原因により、物理ＮＷ機器に比べてフローの順序に関して確定的な処理が難しい。このような仮想ＮＷ機器起因のフロー順序逆転を、以下ではソフトウェアリオーダと呼ぶ。ソフトウェアリオーダの発生原因は上記のように複数考えられ、原則として従来の物理ＮＷ機器に実施される順序制御用の専用ハードウェアを用いないため、特許文献１の仕組みでは解決できない。
【０００９】
これに対し、非特許文献２では、汎用ハードウェアで動作する高速なパケット処理ライブラリを用いてパケットの順序逆転を補正する技術が提案されている。本技術を仮想ＮＷ機器における仮想スイッチ部に適用することにより、ソフトウェアリオーダの解決が期待できる。しかしながら、ライブラリを使用したソフトウェアによる解決手段となるため、サーバＣＰＵに負荷がかかり、結果として仮想ＮＷ機器の他の処理性能を圧迫することになる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特許第４５８７０５３号公報
【非特許文献】
【００１１】
【非特許文献１】Joji Mtt，“Flow miss/Packet order question”，2012，＜http://www.mail-archive.com/discuss@openvswitch.org/msg03388.html＞
【非特許文献２】“Reorder Library”，DPDK documentation，2015，＜http://dpdk.org/doc/guides/prog_guide/reorder_lib.html＞
【発明の概要】
【発明が解決しようとする課題】
【００１２】
以上のように、従来の技術では、仮想ネットワーク機器に起因するパケットの順序逆転の有効な解決策が見出されておらず、ライブラリを用いてパケットの順序逆転を補正しようとすると、汎用サーバに負荷がかかってしまうという問題点があった。
【００１３】
本発明は、上記課題を考慮してなされたものであり、その目的は、通信パケットを制御するための順序制御装置であって、仮想ネットワーク機器に起因するパケットの順序逆転の補正を実現しながらも、サーバ装置の負荷を低減することができる順序制御装置、順序制御方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１４】
本発明の順序制御装置は、ネットワークから、通信サーバ装置内に設けられる上位処理装置へ転送されるパケットあるいは前記上位処理装置から前記ネットワークへ転送されるパケットの順序保証モードを切り替えることが可能なレベル制御部と、前記ネットワークから前記上位処理装置へ転送されるパケットの順序を保証するレベル１順序制御部と、前記ネットワークから前記上位処理装置へ転送されるパケットの順序と前記上位処理装置から前記ネットワークへ転送されるパケットの順序を包括的に保証するレベル２順序制御部と、前記順序保証モードに応じて、前記ネットワークから受信して前記レベル１順序制御部で処理されたパケットを前記上位処理装置へ転送するか、あるいは前記ネットワークから受信したパケットをそのまま前記上位処理装置へ転送するパケット振分部とを有し、前記レベル制御部と前記レベル１順序制御部と前記レベル２順序制御部と前記パケット振分部とは、前記通信サーバ装置のＣＰＵの処理を補助する補助装置によって構成されることを特徴とするものである。
【００１５】
また、本発明の順序制御装置の１構成例において、前記レベル制御部は、前記レベル１順序制御部と前記レベル２順序制御部の機能を共にオフにして、前記ネットワークから受信したパケットをそのまま前記上位処理装置へ転送させると共に前記上位処理装置から受信したパケットをそのまま前記ネットワークへ転送させる高速動作モードと、前記レベル１順序制御部の機能をオン、前記レベル２順序制御部の機能をオフにして、前記ネットワークから前記上位処理装置へ転送されるパケットの順序のみを保証するレベル１順序制御モードと、前記レベル１順序制御部と前記レベル２順序制御部の機能を共にオンにして、前記ネットワークから前記上位処理装置へ転送されるパケットの順序と前記上位処理装置から前記ネットワークへ転送されるパケットの順序を包括的に保証するレベル２順序制御モード、のうちいずれか１つを選択可能なことを特徴とするものである。
【００１６】
また、本発明の順序制御装置の１構成例において、前記レベル２順序制御部は、前記ネットワークから受信したパケットに一意のシーケンス番号を付加する付加部と、前記シーケンス番号が付加されたパケットを前記レベル１順序制御部へ転送する転送部と、シーケンス番号を蓄積するための第１のバッファと、パケットを蓄積するための第２のバッファと、前記上位処理装置からパケットを受信したときに、このパケットに付加されているシーケンス番号を抽出してパケットから削除すると共に、抽出したシーケンス番号を前記第１のバッファに格納して、前記シーケンス番号を削除したパケットを前記第２のバッファに格納する抽出・削除部と、前記第２のバッファに蓄積されたパケットを所望の順序に並べ替えて前記ネットワークへ出力するパケット再整列部とを備え、前記レベル１順序制御部は、前記レベル２順序制御部から転送されたパケットを所定の論理的なグループに分類して、分類したグループ毎に前記パケット振分部へ転送することを特徴とするものである。
【００１７】
また、本発明の順序制御方法は、ネットワークから、通信サーバ装置内に設けられる上位処理装置へ転送されるパケットあるいは前記上位処理装置から前記ネットワークへ転送されるパケットの順序保証モードを切り替えるレベル制御ステップと、前記順序保証モードに応じて選択的に実行され、前記ネットワークから前記上位処理装置へ転送されるパケットの順序を保証するレベル１順序制御ステップと、前記順序保証モードに応じて選択的に実行され、前記ネットワークから前記上位処理装置へ転送されるパケットの順序と前記上位処理装置から前記ネットワークへ転送されるパケットの順序を包括的に保証するレベル２順序制御ステップと、前記順序保証モードに応じて、前記ネットワークから受信して前記レベル１順序制御ステップで処理されたパケットを前記上位処理装置へ転送するか、あるいは前記ネットワークから受信したパケットをそのまま前記上位処理装置へ転送するパケット振分ステップとを含み、前記レベル制御ステップと前記レベル１順序制御ステップと前記レベル２順序制御ステップと前記パケット振分ステップとは、前記通信サーバ装置のＣＰＵの処理を補助する補助装置によって実行されることを特徴とするものである。
【００１８】
また、本発明のプログラムは、ネットワークから、通信サーバ装置内に設けられる上位処理装置へ転送されるパケットあるいは前記上位処理装置から前記ネットワークへ転送されるパケットの順序保証モードを切り替えるレベル制御ステップと、前記順序保証モードに応じて選択的に実行され、前記ネットワークから前記上位処理装置へ転送されるパケットの順序を保証するレベル１順序制御ステップと、前記順序保証モードに応じて選択的に実行され、前記ネットワークから前記上位処理装置へ転送されるパケットの順序と前記上位処理装置から前記ネットワークへ転送されるパケットの順序を包括的に保証するレベル２順序制御ステップと、前記順序保証モードに応じて、前記ネットワークから受信して前記レベル１順序制御ステップで処理されたパケットを前記上位処理装置へ転送するか、あるいは前記ネットワークから受信したパケットをそのまま前記上位処理装置へ転送するパケット振分ステップとを、前記通信サーバ装置のＣＰＵの処理を補助する補助装置に実行させることを特徴とするものである。
【発明の効果】
【００１９】
本発明によれば、ネットワークから、通信サーバ装置内に設けられる上位処理装置へ転送されるパケットあるいは上位処理装置からネットワークへ転送されるパケットの順序保証モードを切り替えることが可能なレベル制御部と、ネットワークから上位処理装置へ転送されるパケットの順序を保証するレベル１順序制御部と、ネットワークから上位処理装置へ転送されるパケットの順序と上位処理装置からネットワークへ転送されるパケットの順序を包括的に保証するレベル２順序制御部とを設けることにより、通信パケットの順序制御機能を通信サーバ装置の補助装置に複数段のレベルに分けて実装するため、パケットが保持すべき順序を所望のレベルで制御することが可能となる。また、本発明では、レベル制御部とレベル１順序制御部とレベル２順序制御部とパケット振分部とを、通信サーバ装置のＣＰＵの処理を補助する補助装置によって構成することにより、通信サーバ装置によって実現される仮想ネットワーク機器に起因するパケットの順序逆転の補正を実現しながらも、通信サーバ装置のＣＰＵの負荷を低減することができる。本発明は、実装するプログラム、回路データおよびデバイスの別を問わず、通信用デバイス一般に適用することができる。
【００２０】
また、本発明では、レベル制御部が、高速動作モードとレベル１順序制御モードとレベル２順序制御モードのうちいずれか１つを選択可能とすることにより、最低限のパケットの順序が保持されていればよいケース、厳格な運用を必要とするケース、パケットの順序を並べ替えてはいけないケース、性能確保を優先しなければならないケースなどに柔軟に対応することができる。
【００２１】
また、本発明では、レベル２順序制御部を、付加部と、転送部と、第１のバッファと、第２のバッファと、抽出・削除部と、パケット再整列部とから構成することにより、ネットワークから上位処理装置へ転送されるパケットの順序と上位処理装置からネットワークへ転送されるパケットの順序を包括的に保証することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施の形態に係る順序制御装置を備えた汎用サーバ装置の構成を示すブロック図である。
【図２】従来の順序制御装置の概略構成を示すブロック図である。
【図３】本発明の実施の形態に係る順序制御装置におけるレベル切替え動作の概要を示す図である。
【図４】本発明の実施の形態に係る順序制御装置のレベル２順序制御部の構成を示すブロック図である。
【図５】本発明の実施の形態に係る順序制御装置の受信側の動作を説明するフローチャートである。
【図６】本発明の実施の形態に係る順序制御装置の送信側の動作を説明するフローチャートである。
【発明を実施するための形態】
【００２３】
以下、本発明を実施するための構成および手段について図面を参照して説明する。図１は本発明の実施の形態に係る順序制御装置を備えた汎用サーバ装置（通信サーバ装置）の構成を示すブロック図である。本発明は、従来の物理ＮＷ機器のみを対象としたパケット順序制御ではなく、仮想ＮＷ機器におけるソフトウェアリオーダの問題までも解決するパケット順序制御の手段を提供することを目的としたものである。
【００２４】
そのため典型的には、図１のような汎用サーバ装置上に上位処理装置１として仮想ＮＷ機器のノードを構成する形態をとるが、もちろん上位処理装置１を除いた物理ＮＷ機器として構成しても構わない。その場合、汎用サーバの形態ではなく一般的なネットワークスイッチやルータの形態として構成することもできる。以下では、本発明の効果を説明するため図１の構成を用いて説明する。
【００２５】
上位処理装置１は、ネットワーク仮想化技術を用いて構成された個々のＮＦＶアプリケーションである仮想ネットワーク機能部１０と、汎用サーバ装置上のソフトウェアで実現される仮想スイッチであるソフトウェアパケット転送部１１と、非特許文献２の関連技術であり、上位処理装置１と下位の補助装置２との間で高速なパケット処理を可能とするパケット入出力ライブラリ１２とを有する。
【００２６】
ソフトウェアパケット転送部１１としては、典型的にはＬａｇｏｐｕｓやＯｐｅｎｖｓｗｉｔｃｈ等に代表されるオープンソース・ソフトウェアが開示されているが、他の仮想ルータ等の市中技術で代用することができる。
【００２７】
パケット入出力ライブラリ１２としては、典型的にはＩＮＴＥＬ  ＤＰＤＫに代表されるオープンソース・ソフトウェアが開示されているが、他の市中技術で代用することができる。
【００２８】
上位処理装置１は、以上のような一連のソフトウェアで構成されるため、処理の主体となるハードウェアは汎用サーバ装置のＣＰＵである。このＣＰＵは、汎用サーバ装置のメモリに格納されたプログラムに従って処理を実行し、仮想ネットワーク機能部１０とソフトウェアパケット転送部１１とパケット入出力ライブラリ１２として機能する。
【００２９】
上位処理装置１は、汎用サーバ装置内において装置内転送用バス部３を介して下位の補助装置２と接続される。装置内転送用バス部３は、典型的には標準的なＰＣＩ（Peripheral Component Interconnect）  Ｅｘｐｒｅｓｓの各規格に適合するバス技術を用いて構成されるが、ＡＸＩ（Advanced eXtensible Interface）等の他の市中技術で代用することができる。
【００３０】
補助装置２は、上位処理装置１のサーバＣＰＵの処理を補助することを目的として構成され、効率的に上位処理装置１との間のデータ転送を可能とするＤＭＡ（Direct Memory Access）転送部２０と、本実施の形態の特徴的構成である順序制御装置２１と、Ｅｔｈｅｒｎｅｔ（登録商標）フレームを転送するＭＡＣ（Media Access Control）部２２と、図示しないネットワークから受信した電気信号または光信号をデータに変換してＭＡＣ部２２に渡し、ＭＡＣ部２２から渡されたデータを電気信号または光信号に変換してネットワークに送出するＰＨＹ（PHYsical）部２３とを有する。
【００３１】
補助装置２は、ＣＰＵ処理を補助する目的で実装されるプログラムおよびデバイスの別を問わず構成することができる。補助装置２は、典型的には、ＧＰＧＰＵ（General-purpose Graphics Processing Unit）やネットワークプロセッサ、ＦＰＧＡ（Field Programmable Gate Array）あるいは他のコプロセッサ等のデバイスと、当該デバイス上で動作するプログラムあるいはデバイスの回路データとを用いて実現される。プログラムで実現する場合、デバイスのプロセッサは、メモリに格納されたプログラムに従って以下のような処理を実行し、補助装置２として機能する。
【００３２】
補助装置２に組み込まれる本実施の形態の順序制御装置２１は、ネットワークから上位処理装置１へ転送されるパケットあるいは上位処理装置１からネットワークへ転送されるパケットの順序保証モードを切り替えることが可能なレベル制御部２１０と、パケット受信側のパケット振分部２１１と、パケット振分部２１１に設けられるレベル１順序制御部２１２と、パケット受信側およびパケット送信側の双方に関わるレベル２順序制御部２１３とを有する。
【００３３】
パケット振分部２１１は、汎用サーバ装置の外部のネットワークから受信したパケットを効率的に振り分けてＤＭＡ転送部２０に渡す機能を備える。なお、本実施の形態では、レベル１順序制御部２１２とレベル２順序制御部２１３の２段階のレベルで構成した順序制御部を用いて説明するが、３段以上の複数段レベルで制御する順序制御装置２１を構成することもできる。
【００３４】
以下、本実施の形態固有の特徴的な構成について、図２〜図５を用いて具体的に説明する。図２は特許文献１に開示されている従来の順序制御装置の概略構成を示すブロック図である。従来の順序制御装置は、物理ＮＷ機器を対象として提案されたものであり、典型的には既存のＩＰネットワークを構成する通信装置において専用のハードウェアで実現される。
【００３５】
従来の順序制御装置の構成および動作原理は単純なものであり、受信したパケットに対して一意のシーケンス番号をＳＥＱ付与部１００で付与し、パケットを振分部１０１によって複数の順序バッファ１０２に振り分けて蓄積させ、蓄積したパケットの順番を取出制御部１０３で確認して、所望の順番でパケットを取り出し、ＳＥＱ削除部１０４でパケットのシーケンス番号を削除する。
【００３６】
図２に示したような構成により、従来の順序制御装置は、所望の順序性が保持された状態でパケットを出力することができる。しかしながら、仮想ＮＷ機器に起因するパケットの順序逆転の補正および汎用サーバ装置における処理負荷を考慮した構成となっていないため、図２に示した構成による順序制御方法では前記背景技術において言及した複数の原因で発生するソフトウェアリオーダに対する十分な制御が困難である。
【００３７】
また、従来の順序制御装置は、必要に応じて順序制御装置を使用しない、といった柔軟な制御を行うことができないため、パケットの順序を並べ替えてはいけないケースや、性能確保を優先しなければならないケースに対応することができない。
【００３８】
これに対し、図３（Ａ）〜図３（Ｃ）は本実施の形態の順序制御装置２１におけるレベル切替え動作の概要を示す図である。本実施の形態の構成上の特徴である複数の順序保証モードを切り替えるレベル制御部２１０は、順序制御しない代わりに高速動作を可能とする高速動作モード（図３（Ｃ））と、パケット受信側のパケット振分部２１１の機能を有効（ＯＮ）にして、受信フロー内においてのみ順序を保証するレベル１順序制御モード（図３（Ｂ））と、パケット振分部２１１に加えて、パケット受信側およびパケット送信側の双方に関わるレベル２順序制御部２１３の機能を有効にして、受信フロー内に限定せず包括的にパケットの順序を保証するレベル２順序制御モード（図３（Ａ））、の３つのモードの切り替えが可能である。
【００３９】
このような本実施の形態の順序制御装置２１は、必要に応じて保証する制御レベルを変更することができるため、単純な順序制御だけでなく、より高度な順序制御を実現することができる。
【００４０】
例えばレベル１順序制御モードは、最低限フロー内の順序さえ保持されていればよく、高速な受信パケット振分け処理を可能とする動作モードである（図３（Ｂ））。レベル１順序制御部２１２は、具体的には、受信したパケットをある着眼点で論理的なグループ（フロー）に分類し、分類したグループ毎にパケット振分部２１１に転送すればよい。
【００４１】
例えば特許第４７７１９８８号公報には、パケットのヘッダ等からハッシュ値を生成して、後段装置への負荷分散を図りながらフロー内の順序を保証する負荷分散装置が開示されている。ただし、本発明は、パケットの分類方法および負荷分散装置の提供を意図したものではないため、本実施の形態のレベル１順序制御部２１２による順序制御は、特許第４７７１９８８号公報に開示された方法に限らず、他の様々な方法および装置で実装することが可能である。
【００４２】
一方、レベル２順序制御モードは、フロー内の順序保証だけでなく、より包括的な順序保証を可能とする動作モードである（図３（Ａ））。レベル２の順序性の保証に関しては、提供するサービスによってフロー内の順序性さえ保持されていればよいものと、より厳格な順序性が求められるものとがある。
【００４３】
前記のとおり非同期型の通信サービスならばパケットの順序保証はさほど重視されないが、音声や映像のストリーミング配信等に代表される同期型のサービスや通信事業者が提供する帯域保証のキャリアグレードのサービスでは順序性に関して厳格な運用が必要とされる。前記のソフトウェアリオーダについてもこのレベル２に該当する保証対象である。レベル２順序制御部２１３は、このように通信事業者の広域インフラでの使用に耐える順序制御手段を提供する。
【００４４】
また、高速動作モードは、レベル１およびレベル２のいずれの順序制御も不要な動作モードである（図３（Ｃ））。このようなモードが必要になるのは、トラヒックのフローに関して高速動作を優先し、順序性は一切問わないような場合である。本実施の形態の順序制御装置２１は、レベル制御部２１０を備えているため、このような場合にも容易に対応することができる。
【００４５】
以下では、レベル２順序制御部２１３の構成の詳細を説明し、レベル２順序制御部２１３を含む本実施の形態の順序制御装置２１の動作の詳細について説明する。図４はレベル２順序制御部２１３の構成を示すブロック図、図５は複数段のレベルでパケット順序を保証する本実施の形態の順序制御装置２１の受信側の動作を説明するフローチャート、図６は本実施の形態の順序制御装置２１の送信側の動作を説明するフローチャートである。
【００４６】
レベル２順序制御部２１３は、ネットワークから受信したパケットに一意のシーケンス番号を付加するＳＥＱ付加部２１３０と、シーケンス番号を付加したパケットをパケット振分部２１１に転送する転送部２１３１と、上位処理装置１からパケットを受信したときに、このパケットに付加されているシーケンス番号を抽出してパケットから削除すると共に、抽出したシーケンス番号とシーケンス番号を削除したパケットとを後述するバッファに格納するＳＥＱ抽出・削除部２１３２と、ＳＥＱ抽出・削除部２１３２が抽出したシーケンス番号を蓄積するためのバッファ２１３３と、シーケンス番号が削除されたパケットを蓄積するためのバッファ２１３４と、バッファ２１３４に蓄積されたパケットを所望の順序に並べ替えて出力するパケット再整列部２１３５とを備えている。
【００４７】
レベル２順序制御部２１３は、パケットの受信側および送信側の双方に関わるため、受信側と送信側に分けて説明する。汎用サーバ装置の外部のネットワークからＰＨＹ部２３およびＭＡＣ部２２を介してパケットを受信したとき（図５ステップＳ１００）、レベル制御部２１０による順序保証レベル制御（図５ステップＳ１０１）により、レベル２順序制御モード、すなわちレベル２順序制御部２１３がＯＮとなっている場合（図５ステップＳ１０２においてＹ）、ＳＥＱ付加部２１３０は、ネットワークから受信した順にパケットにシーケンス番号（ＳＥＱ＃）を付加する（図５ステップＳ１０３）。
【００４８】
例えば図４に示した例で、ネットワークからパケット１、２、３、４の順で受信したときには、ＳＥＱ付加部２１３０は、それぞれのパケットにＳＥＱ＃として＃１、＃２、＃３、＃４を付加する。
転送部２１３１は、ＳＥＱ付加部２１３０によってＳＥＱ＃が付加されたパケットをパケット振分部２１１に転送する（図５ステップＳ１０４）。
【００４９】
パケット振分部２１１内には、フロー内の順序保証を可能とするレベル１順序制御部２１２が設けられている。レベル１順序制御部２１２は、レベル２順序制御部２１３で付加されたＳＥＱ＃と不整合を起こさないようにしつつ、パケットを所定の論理的なグループに分類して、分類したグループ毎にパケット振分部２１１に転送する（図５ステップＳ１０６）。
【００５０】
パケット振分部２１１は、レベル１順序制御部２１２が分類したグループ（フロー）をＤＭＡ転送部２０の複数の通信経路に効率的に振り分けてＤＭＡ転送部２０に渡す（図５ステップＳ１０７）。
【００５１】
ＤＭＡ転送部２０は、パケット振分部２１１から渡されたパケットを装置内転送用バス部３を介して上位処理装置１に転送する（図５ステップＳ１０８）。
なお、レベル１順序制御モードの場合には、ステップＳ１０３，Ｓ１０４の処理を実施しない。
また、高速動作モードの場合には、ステップＳ１０３，Ｓ１０４，Ｓ１０６，Ｓ１０７の処理を実施せずに、ステップＳ１０８の処理のみを実施する。
【００５２】
次に、レベル２順序制御モードの場合の送信側の動作について説明する。ここでは、上位処理装置１で処理が完了したパケットがソフトウェアリオーダなど何らかの理由でパケットの順序性が崩れた状態で順序制御装置２１に入力される状況を考える。例えば図４の例では、期待するパケットの順序が１、２、３、４であるのに対し、実際には上位処理装置１から１、５３、６４、７の順でパケットを受信したとする。
【００５３】
各パケットには受信側でＳＥＱ＃が付加されている。上位処理装置１から装置内転送用バス部３およびＤＭＡ転送部２０を介してパケットを受信したとき（図６ステップＳ２００）、レベル２順序制御モード、すなわちレベル２順序制御部２１３がＯＮとなっている場合（図６ステップＳ２０１においてＹ）、ＳＥＱ抽出・削除部２１３２は、受信したパケットに付加されているＳＥＱ＃を抽出してパケットから削除すると共に（図６ステップＳ２０２）、抽出したＳＥＱ＃をバッファ２１３３に格納して、ＳＥＱ＃を削除したパケットをバッファ２１３４に格納する（図６ステップＳ２０３）。
【００５４】
パケット再整列部２１３５は、バッファ２１３４に蓄積されたパケットを所望の順序に並べ替えてＭＡＣ部２２に出力する（図６ステップＳ２０４）。ここで、所望の順序とは、例えばパケットと対応するように並行してバッファ２１３３に蓄積されたＳＥＱ＃が示す順序のことである。パケット再整列部２１３５は、ＳＥＱ＃が示す順序で整列するようにパケットを並べ替えすればよい。
【００５５】
パケット再整列部２１３５から出力されたパケットは、ＭＡＣ部２２およびＰＨＹ部２３を介してネットワークへ送出される（図６ステップＳ２０５）。
こうして、上位処理装置１から順序性が崩れた状態でパケットが順序制御装置２１に入力された場合でも、図４の例で示すように最終的に期待するパケットの順序１、２、３、４で出力される。
【００５６】
なお、レベル２順序制御部２１３がＯＦＦ、すなわちレベル１順序制御モードまたは高速動作モードの場合には、ステップＳ２０２〜Ｓ２０４の処理を実施しない。したがって、ＳＥＱ＃の付加、抽出、削除いずれの処理も実行されず、上位処理装置１から受信した１、５３、６４、７のパケット順のまま、一切補正せずにパケットをネットワークに出力することになる。
【００５７】
以上、本発明の実施形態が示され、説明がなされた。本実施の形態の順序制御装置２１は、回路であってもよいし、機器であってもよい。本実施形態で示した順序制御装置２１が、複数の順序保証モードを切り替えることを可能とするレベル制御部を具備する構成を最良の形態と見なしているものの、本実施の形態の順序制御装置２１は、ＲＯＭに記憶されたファームウェアおよび再構成型デバイス、素子、基板、配線などのハードウェアで実現されていても構わない。或いは、順序制御装置２１は、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵにより読み出されて実行される。すなわち、プログラムは、本実施の形態の順序制御装置２１としてコンピュータを機能させるものである。あるいは、順序制御装置２１の各ステップをコンピュータに実行させるものである。
【産業上の利用可能性】
【００５８】
本発明は、パケットの順序を制御する技術に適用することができる。
【符号の説明】
【００５９】
１…上位処理装置、２…補助装置、３…装置内転送用バス部、１０…仮想ネットワーク機能部、１１…ソフトウェアパケット転送部、１２…パケット入出力ライブラリ、２０…ＤＭＡ転送部、２１…順序制御装置、２２…ＭＡＣ部、２３…ＰＨＹ部、２１０…レベル制御部、２１１…パケット振分部、２１２…レベル１順序制御部、２１３…レベル２順序制御部、２１３０…ＳＥＱ付加部、２１３１…転送部、２１３２…ＳＥＱ抽出・削除部、２１３３，２１３４…バッファ、２１３５…パケット再整列部。
【図１】
0006470166.tif 000002
【図２】
0006470166.tif 000003
【図３】
0006470166.tif 000004
【図４】
0006470166.tif 000005
【図５】
0006470166.tif 000006
【図６】
0006470166.tif 000007