(57)【特許請求の範囲】
【請求項１】
所定のサービスを提供するために実行されるプログラムを識別するためのサービス識別情報と、該プログラムを実行するサービス処理ノードに転送するための転送用識別情報と、をパケットに付与し、該パケットを該転送用識別情報に基づいて所定の経路で転送する、転送ノードと、
前記転送ノードから前記パケットを受信し、該パケットに付与された前記サービス識別情報の示す前記プログラムで該パケットを処理するサービス処理ノードと、
パケットを転送する経路を示すルーティングテーブル、及びパケットと所定のサービスを提供するためのプログラムを実行するサービス処理ノードとの対応関係を示す前記サービス情報テーブルを、ノードごとに作成し、該ルーティングテーブル及び該サービス情報テーブルに基づいて、前記転送ノード及び前記サービス処理ノードを制御する制御ノードと、を有し、
前記転送ノードは、前記制御ノードにより作成された前記サービス情報テーブル及び前記ルーティングテーブルを記憶しておき、該サービス情報テーブルに基づいて前記サービス識別情報を前記パケットに付与し、該ルーティングテーブルに基づいて前記転送用識別情報を前記パケットに付与し、
前記サービス処理ノードは、前記制御ノードにより作成された前記サービス情報テーブルを記憶しておき、該サービス情報テーブルに基づいて前記パケットに付与された前記サービス識別情報の示す前記プログラムで該パケットを処理する通信システム。
【請求項２】
前記サービス処理ノードは、前記パケットに付与された前記転送用識別情報に基づいて、該パケットに対応する前記サービス処理ノードが自身であるか否かを判断し、該パケットに対応する該サービス処理ノードが自身であれば、該パケットに付与された前記サービス識別情報の示す前記プログラムで該パケットを処理する、請求項１に記載の通信システム。
【請求項３】
前記サービス処理ノードは、前記プログラムで処理した前記パケットを、前記転送用識別情報に基づいて所定の経路で転送する、請求項１または請求項２に記載の通信システム。
【請求項４】
前記パケットを複数のプログラムで処理する場合、前記転送ノードは、最後に処理するプログラムを識別するための前記サービス識別情報から順に、該サービス識別情報を前記パケットに付与する、請求項１乃至３のいずれか１項に記載の通信システム。
【請求項５】
前記サービス情報テーブルは、複数の前記プログラムごとに該プログラムを実行する順序を示す順序情報を含み、
前記転送ノードは、前記サービス情報テーブルから前記プログラムに対応する前記順序情報を読み出し、該順序情報の示す順序に従って、該サービス識別情報を前記パケットに付与する、請求項４に記載の通信システム。
【請求項６】
前記サービス処理ノードは、最後に付与された前記サービス識別情報の示す前記プログラムから順に実行して前記パケットを処理する、請求項４又は５に記載の通信システム。
【請求項７】
制御ノードが、パケットを転送する経路を示すルーティングテーブル、及びパケットと所定のサービスを提供するためのプログラムを実行するサービス処理ノードとの対応関係を示すサービス情報テーブルを、ノードごとに作成するステップと、
転送ノードが、所定のサービスを提供するために実行されるプログラムを識別するためのサービス識別情報と、該プログラムを実行するサービス処理ノードに転送するための転送用識別情報と、を該パケットに付与し、該パケットを、該転送用識別情報に基づいて所定の経路で転送する転送ステップと、
前記サービス処理ノードが、前記転送ノードから前記パケットを受信し、該パケットに付与された前記サービス識別情報の示す前記プログラムで該パケットを処理するパケット処理ステップと、を有し、
前記転送ステップにおいては、前記転送ノードが、前記制御ノードにより作成された前記サービス情報テーブル及び前記ルーティングテーブルを記憶しておき、該サービス情報テーブルに基づいて前記サービス識別情報を前記パケットに付与し、該ルーティングテーブルに基づいて前記転送用識別情報を前記パケットに付与し、
前記パケット処理ステップにおいては、前記サービス処理ノードが、前記制御ノードにより作成された前記サービス情報テーブルを記憶しておき、該サービス情報テーブルに基づいて前記パケットに付与された前記サービス識別情報の示す前記プログラムで該パケットを処理する、通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムにおいてパケットを転送し、処理する技術に関する。
【背景技術】
【０００２】
近年ＩＰ（Internet Protocol）ネットワークでは、電子メール、ＷＷＷ（World Wide Web）、ＶｏＩＰ（Voice over IP）などの各種アプリケーションが利用できるようになり、急速に通信トラフィックが増加している。このＩＰネットワークは、受信したパケットのＩＰヘッダ情報に基づきパケットの出力回線を決定するルータにより構成されており、当初はルーティング処理をソフトウェアで行っていたが、近年では通信トラフィックの増加に対応するため、この処理をハードウェアで行うルータが脚光をあびている。
【０００３】
転送処理のハードウェア化において、さらにルータの性能向上を目的として、特許文献１および非特許文献１に開示されているような、機能分散システムが提案されている。具体的には、ルータの機能を、ルーティングを制御する機能とパケットを転送する機能とに分け、これらを別々のノードに分担させる通信システムである。この構成によれば、通信システムは、ルーティングの制御処理についての負荷の影響を受けずに、パケット転送処理を行うことが可能となる。
【特許文献１】特開２００６−１３５９７５号公報
【非特許文献１】T. V. Laksman, T. Nandagopal, R. Ramjee, K. Sabnani, and T. Woo, "The SoftRouter architecture, " in Proc. ACM SIGCOMM Workshop on Hot Topics in Networking, November 2004.
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、このような機能分散型の通信システムによっても、サービスを提供するためのプログラムが多い場合、通信システムの運用に支障をきたすことがあった。
【０００５】
より詳細には、複数のパケットを複数のサービス用のプログラムで処理する場合、図２７に示すように、その組み合わせごとに、組み合わせを識別するための番号やラベルを割り当てる必要が生じ、組み合わせの数が多くなると、識別子の管理が困難となる。
【０００６】
また、複数のノードで複数のサービスを実行する場合、サービスの一部の変更であっても、通信システム全体に影響が及び、大規模なルーティングテーブルの変更が必要になることがある。
【０００７】
このため、複雑な通信システムにおいては、サービス追加、削除等の変更が困難になるという問題があった。
【０００８】
本発明は、容易にサービスを変更できる通信システムを実現する技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明の通信システムは、所定のサービスを提供するために実行されるプログラムを識別するためのサービス識別情報と、該プログラムを実行するサービス処理ノードに転送するための転送用識別情報と、をパケットに付与し、該パケットを該転送用識別情報に基づいて所定の経路で転送する、転送ノードと、前記転送ノードから前記パケットを受信し、該パケットに付与された前記サービス識別情報の示す前記プログラムで該パケットを処理するサービス処理ノードと、パケットを転送する経路を示すルーティングテーブル、及びパケットと所定のサービスを提供するためのプログラムを実行するサービス処理ノードとの対応関係を示す前記サービス情報テーブルを、ノードごとに作成し、該ルーティングテーブル及び該サービス情報テーブルに基づいて、前記転送ノード及び前記サービス処理ノードを制御する制御ノードと、を有し、前記転送ノードは、前記制御ノードにより作成された前記サービス情報テーブル及び前記ルーティングテーブルを記憶しておき、該サービス情報テーブルに基づいて前記サービス識別情報を前記パケットに付与し、該ルーティングテーブルに基づいて前記転送用識別情報を前記パケットに付与し、前記サービス処理ノードは、前記制御ノードにより作成された前記サービス情報テーブルを記憶しておき、該サービス情報テーブルに基づいて前記パケットに付与された前記サービス識別情報の示す前記プログラムで該パケットを処理する。
【００１３】
本発明の通信方法は、制御ノードが、パケットを転送する経路を示すルーティングテーブル、及びパケットと所定のサービスを提供するためのプログラムを実行するサービス処理ノードとの対応関係を示すサービス情報テーブルを、ノードごとに作成するステップと、転送ノードが、所定のサービスを提供するために実行されるプログラムを識別するためのサービス識別情報と、該プログラムを実行するサービス処理ノードに転送するための転送用識別情報と、を該パケットに付与し、該パケットを、該転送用識別情報に基づいて所定の経路で転送する転送ステップと、前記サービス処理ノードが、前記転送ノードから前記パケットを受信し、該パケットに付与された前記サービス識別情報の示す前記プログラムで該パケットを処理するパケット処理ステップと、を有し、前記転送ステップにおいては、前記転送ノードが、前記制御ノードにより作成された前記サービス情報テーブル及び前記ルーティングテーブルを記憶しておき、該サービス情報テーブルに基づいて前記サービス識別情報を前記パケットに付与し、該ルーティングテーブルに基づいて前記転送用識別情報を前記パケットに付与し、前記パケット処理ステップにおいては、前記サービス処理ノードが、前記制御ノードにより作成された前記サービス情報テーブルを記憶しておき、該サービス情報テーブルに基づいて前記パケットに付与された前記サービス識別情報の示す前記プログラムで該パケットを処理する通信方法である。
【発明の効果】
【００１４】
本発明によれば、転送ノードがサービス識別情報及び転送用識別情報を付与したパケットを所定の経路で転送し、サービス処理ノードは、サービス識別情報の示すプログラムで受信したパケットを処理する。サービスを変更するときは、ルーティングが変更されない限り、サービス識別情報のみを変更すればよく、転送用識別情報の変更を要しない。また、ルーティングの変更を伴うサービスの変更であっても転送用識別情報の変更は最小限で済む。このため、通信システムは容易にサービスを変更することができる。
【発明を実施するための最良の形態】
【００１５】
（第１の実施形態）
本発明を実施するため第１の実施形態について図面を参照して詳細に説明する。
【００１６】
図１は、本実施形態の通信システム１の構成を示す全体図である。通信システム１は、パケットを転送する機能と、所定のサービスを提供する機能とを有し、これらが異なるノードに分散した機能分散型の通信システムである。同図を参照すると、通信システム１は、制御信号処理装置１０、パケット転送装置２０、およびサービス処理装置３０を有する。
【００１７】
ここで、パケット転送装置２０およびサービス処理装置３０は、それぞれ１台に限らず、複数台設けてもよい。
【００１８】
制御信号処理装置１０は、パケット転送装置２０およびサービス処理装置３０を制御するサーバ等の通信装置である。図２は、制御信号処理装置１０の構成を示すブロック図である。同図を参照すると、制御信号処理装置１０は、テーブル作成部１１および制御部１３を有する。このテーブル作成部１１は、ルーティングテーブル１１１およびサービス情報テーブル１１３を作成する。制御部１３は、パケット転送装置２０およびサービス処理装置３０との間で制御信号を送受信するためのセッションを確立し、作成されたルーティングテーブル１１１およびサービス情報テーブル１１３に基づいて、これらの装置（２０、３０）を制御する。制御部１３の制御により、パケット転送装置２０およびサービス処理装置３０は、パケットのルーティング処理を行い、サービス用のプログラムを実行する。
【００１９】
図３は、ルーティングテーブル１１１の構成の一例を示す図である。ルーティングテーブル１１１は、通信システム１において、各ノード（２０）がパケットを転送する経路を決定するためのテーブルである。同図を参照すると、ルーティングテーブル１１１は、ノード１１１１、入力ラベル１１１２、アドレスプレフィックス１１１３、出力ＩＦ１１１４、および出力ラベル１１１５を示す情報を含む。
【００２０】
ノード１１１１は、通信システム１においてパケットを転送するノード（２０）である。
【００２１】
入力ラベル１１１２および出力ラベル１１１５は、サービス処理装置３０へ転送するためにパケットに付与されるラベルである。ここで、ラベルとは、パケットに付加される識別子であり、本実施形態においては、パケット転送装置２０により、パケット転送のための転送用ラベル（１１１２および１１１５）と、サービス用のプログラムを識別するためのサービス識別ラベルと、の２種類のラベルがパケットに付与される。サービス識別ラベルについては後述する。
【００２２】
転送用ラベル（１１１２および１１１５）の値は、例えば、ＭＰＬＳ（Multi-Protocol Label Switching）プロトコルを使用して決定する。本実施形態では、ＭＰＬＳプロトコルにおいて、経路情報ごとにラベルを割り当てる、プレフィックスベース方式を用いる。
【００２３】
具体的には、ルーティングテーブル１１１には、アドレスプレフィックス１１１３ごとに、入力ラベル１１１２および出力ラベル１１１５の対応関係が設定される。通信システム１におけるエッジのノード（２０）は、他のノードからパケットを受信し、そのパケットに転送用ラベル（１１１５）を付与して他のノード（２０、３０）に転送する。そして、転送用ラベル（１１１５）が付与されたパケットを受信したノード（２０、３０）は、ルーティングテーブル１１１を参照し、付与されたラベル（１１１５）を入力ラベル１１１２として、このラベル（１１１２）を、対応する出力ラベル１１１５に置き換えて（スイッチングして）他のノード（２０、３０）に転送する。
【００２４】
アドレスプレフィックス１１１３は、パケットに対応するＩＰ（Internet Protocol）アドレスのうち、ネットワークアドレスを示す部分である。
【００２５】
出力ＩＦ１１１４は、パケット転送に使用されるノード（２０）の通信インターフェースである。
【００２６】
例えば、エッジのノード「２０−１」（１１１１）は、アドレスプレフィックス１１１３が「１９２．１６８」のパケットに出力ラベル１１１５として「ｆ１」を付与し、出力ＩＦ「０」（１１１４）を使用して送信する。そして、このパケットを受信したノード「２０−２」は、ルーティングテーブル１１１を参照し、パケットに付与された転送用ラベル「ｆ１」（１１１５）を入力ラベル１１１２として、この入力ラベルを対応する出力ラベル「ｆ３」（１１１５）に置き換えて、転送する。
【００２７】
なお、転送用ラベル（１１１２および１１１５）の値の決定には、トンネルベース方式や、ＴＤＰ（Tag Distribution Protocol）、ＬＤＰ(Label Distribution Protocol)を使用することもできる。
【００２８】
また、パケットに付加する識別子であれば、ラベルに限らず、他の識別子を使用することもできる。
【００２９】
図４は、サービス情報テーブル１１３の構成の一例を示す図である。同図を参照すると、サービス情報テーブル１１３は、サービス処理装置１１３１、サービス識別ラベル１１３２、アドレスプレフィックス１１３３、プログラム１１３４、および実行順序１１３５を示す情報を含む。
【００３０】
サービス処理装置１１３１は、サービスを提供するためのプログラム１１３４を実行するノードである。サービス識別ラベル１１３２は、プログラム１１３４を識別するために、一意に割り当てられる識別子である。アドレスプレフィックス１１３３は、パケットに対応するＩＰアドレスのうち、ネットワークアドレスを示す部分である。プログラム１１３５４は、所定のサービスの提供のためにサービス処理装置３０により実行されるプログラムである。実行順序１１３５は、プログラム１１３４を実行する順序である。
【００３１】
例えば、アドレスプレフィックス１１３３が「１９２．１６８」のパケットに、サービス識別ラベル「ｐ１」および「ｐ２」（１１３２）が付されたパケットをサービス処理装置「２０−２」（１１３１）が受信する。このとき、サービス処理装置「２０−２」（１１３１）は、サービス情報テーブル１１３を参照し、実行順序１１３５に従って、そのパケットに対して「ｐ１」に対応するプログラム「Ａ」（１１３４）を実行し、次いで「ｐ２」に対応するプログラム「Ｂ」（１１３４）を実行する。
【００３２】
図５は、パケット転送装置２０の構成を示すブロック図である。パケット転送装置は、受信したパケットを所定の経路で他のノードに転送するルータ等の通信装置である。同図を参照すると、パケット転送装置２０は、ラベル処理部２１およびパケット振り分け部２３を有する。
【００３３】
ラベル処理部２１は、ルーティングテーブル２１１およびサービス情報テーブル２１３を有する。これらのテーブル（２１１および２１３）は、制御用信号処理装置１０により作成されたルーティングテーブル１１１およびサービス情報テーブル１１３と同じ内容のテーブルである。各ノード（２０、３０）のルーティングテーブルおよびサービス情報テーブルは、制御信号処理装置１０により一元的に管理されている。
【００３４】
ラベル処理部２１は、他のノードからラベルが付与されていないパケットを受信したとき、サービス情報テーブル２１３を参照して、そのパケットのアドレスプレフィックス（１１３３）に対応するサービス処理装置（１１３１）およびサービス識別ラベル（１１３２）を求める。そして、ラベル処理部２１は、求めたサービス処理装置（１１３１）に転送するための転送用ラベル（１１１５）を求める。そして、ラベル処理部２１は、求めた転送用ラベルおよびサービス識別ラベルをパケットに付加する。ここで、ラベル処理部２１は、実行順序（１１３５）に従ってサービス識別ラベルをパケットに付与する。
【００３５】
パケット振り分け部２３は、ルーティングテーブル２３を参照し、転送用ラベル（１１１２、１１１５）の置き換えを行い、出力ラベル１１１５に対応する出力ＩＦ１１１４を使用してパケットを送信する。
【００３６】
図６に、通信システム１において送受信されるパケットのフォーマットの一例を示す。同図を参照すると、通信システム１におけるパケットには、ＩＰ（Internet Protocol）ヘッダ、ＴＣＰ(Transmission Control Protocol)ヘッダ等の第２層より上位層のプロトコルヘッダ（Ｌ３ヘッダおよびＬ４ヘッダ）が付与されている。このパケットに、ラベル処理部２１によりサービス識別ラベル、転送用ラベルの順で、ラベルが付与される。サービス識別ラベルおよび転送用ラベルが付与された後、パケット振り分け部２３により、ＭＡＣ（Media Access Control）アドレス等のＬ２ヘッダが付与されて、カプセル化されたパケットがパケット転送装置２０から送信される。
【００３７】
１つのパケットが複数のノード（２０）で処理されるのであれば、ラベル処理部２１は、最後に処理するノード（２０）に対応するラベルの組（サービス識別ラベル、転送用ラベル）から順に付与し、最初に処理するノードに対応するラベルの組を最後に付与する。また、１つのノード（２０）で１つのパケットに対して複数のプログラムが実行されるのであれば、ラベル処理部２１は、最後に実行するプログラムに対応するサービス識別ラベルから順に付与し、最初に実行するプログラムに対応するサービス識別ラベルを最後に付与する。
【００３８】
図７は、サービス処理装置３０の構成を示すブロック図である。サービス処理装置３０は、所定のサービスを提供するパーソナルコンピュータ等の通信装置である。サービスとして通信システム１に提供される機能としては、ファイアウォール機能、トラフィック制御機能などがある。同図を参照すると、サービス処理装置３０は、サービス処理機能部３１を有し、サービス処理機能部３１はサービス情報テーブル３１１を有する。このサービス情報テーブル３１１は、制御用信号処理装置１０により作成されたサービス情報テーブル１１３と同じ内容のテーブルである。
【００３９】
サービス処理機能部３１は、制御信号処理装置１０の制御に従い、転送用ラベル（１１１５）に基づいて、受信したパケットが自身の実行するサービス処理の対象であるか否かを判断する。例えば、制御信号処理装置１０が、サービス処理装置２０が処理対象とすべきパケットに対応する転送用ラベル（１１５）を、予めサービス処理装置２０に通知しておき、その通知内容から、パケットが処理対象であるか否かを判断する。
【００４０】
サービス処理機能部３１は、受信したパケットが自身の実行するサービス処理の対象であれば、サービス情報テーブル３１１を参照して、そのパケットに対応するプログラム（１１３４）を読み出し、そのプログラムでパケットを処理する。
【００４１】
次に、通信システム１の動作について図８〜図１２を参照して説明する。図８は、パケット転送装置２０が実行するパケット転送処理を示すフローチャートである。このパケット転送処理は、パケット転送処理装置２０にアドレスが設定され、パケット転送処理装置２０がパケットを受信したときに開始する。同図を参照すると、ラベル処理部２１がラベル処理（ステップＳ１）を実行し、パケット振り分け部２３が、ルーティングテーブル２１１を参照して、所定の経路でパケットを転送する（ステップＳ３）。
【００４２】
図９は、ラベル処理を示すフローチャートである。同図を参照すると、ラベル処理部２１は、受信したパケットのヘッダを参照し、ラベルが付与されているか否かを判断する（ステップＳ１１）。
【００４３】
パケットにラベルが付与されていない場合（ステップＳ１１：ＮＯ）、すなわち、通信システム１の外部からのパケットを受信した場合は、サービス情報テーブル２１３を参照して、そのパケットのアドレスプレフィックス（１１３３）に対応するサービス処理装置（１１３１）およびサービス識別ラベル（１１３２）を求める。そして、ラベル処理部２１は、求めたサービス処理装置（１１３１）に転送するための転送用ラベル（１１１５）を求める（ステップＳ１３）。そして、ラベル処理部２１は、求めたサービス識別ラベルおよび転送用ラベルをパケットに付加する（ステップＳ１５）。
【００４４】
パケットにラベルが付与されている場合（ステップＳ１１：ＹＥＳ）、またはステップＳ１５の後、ラベル処理部２１はラベル処理を終了する。
【００４５】
図１０は、サービス処理装置３０が実行するサービス処理を示すフローチャートである。このサービス処理は、サービス処理装置３０に通信システム１におけるアドレスが設定されたときに開始する。同図を参照すると、サービス処理装置３０は、ラベルが付与されたパケットを受信する（ステップＴ１）。サービス対象パケット判断部３１は、サービス対象パケット判断処理を実行し（ステップＴ３）、サービス処理機能部３１は、プログラム実行処理を行う（ステップＴ５）。
【００４６】
図１１は、サービス対象パケット判断処理を示すフローチャートである。同図を参照すると、サービス処理機能部３１は、パケットに付与された転送用ラベルを削除し、転送用ラベル（１１１５）を読み出す（ステップＴ３１）。そして、サービス処理機能部３１は、制御信号処理装置１０からの通知内容に基づいて、パケットについてサービス用のプログラムを実行するサービス処理装置（１１３１）が自身であるか否かを判断する（ステップＴ３３）。
【００４７】
転送用ラベル（１１１５）に対応するサービス処理装置（１１３１）が自身である場合（ステップＴ３３：ＹＥＳ）、サービス処理機能部３１は、転送用ラベル（１１１５）を削除し、サービス処理用フラグをＯＮにする（ステップＴ３５）。サービス処理用フラグは、パケットがサービス処理の対象であるか否かを示すフラグである。
【００４８】
転送用ラベル（１１１５）に対応するサービス処理装置（１１３１）が自身でない場合（ステップＴ３３：ＮＯ）、またはステップＴ３５の後、サービス対象パケット判断部３１は、サービス対象パケット判断処理を終了する。
【００４９】
図１２は、プログラム実行処理を示すフローチャートである。同図を参照すると、サービス処理機能部３１は、サービス処理用フラグがＯＮであるか否かを判断する（ステップＴ５１）。サービス処理用フラグがＯＮであれば（ステップＴ５１：ＹＥＳ）、サービス処理機能部３１は、サービス情報テーブル３１１を参照して、サービス識別ラベル（１１３２）に対応するサービス用のプログラムを実行する（ステップＴ５３）。
【００５０】
そして、サービス処理機能部３１は、そのサービス識別ラベル（１１３２）を削除し（ステップＴ５５）、パケットヘッダにサービス識別ラベルが含まれるか否かを判断する（ステップＴ５７）。パケットヘッダにサービス識別ラベルがあれば（ステップＴ５７：ＹＥＳ）、サービス処理機能部３１は、ステップＴ５３に戻る。
【００５１】
サービス処理用フラグがＯＦＦである場合（ステップＴ５１：ＮＯ）、またはパケットヘッダにサービス識別ラベルがない場合（ステップＴ５７：ＮＯ）、サービス処理機能部３１は、プログラム実行処理を終了する。
【００５２】
続いて、図１３〜図１６を参照して、通信システム１の動作結果の一例について説明する。図１３は、通信システム１におけるトポロジの一例を示した図である。
【００５３】
図１３を参照すると、通信システム１は、パケット転送装置２０−１および２０−２と、サービス処理装置３０−１および３０−２を有する。パケット転送装置２０−１および２０−２は、パケット転送装置２０と同様の構成であり、サービス処理装置３０−１および３０−２は、サービス処理装置３０と同様の構成である。そして、パケット転送装置２０−１の出力ＩＦ「０」（１１１４）は、パケット転送装置２０−２の通信インターフェースに接続されている。また、パケット転送装置２０−２の出力ＩＦ「０」は、サービス処理装置３０−１の通信インターフェースに接続され、パケット転送装置２０−２の出力ＩＦ「１」は、サービス処理装置３０−２の通信インターフェースに接続されている。
【００５４】
この構成において、パケット転送装置２０−１は、アドレスプレフィックスが「１９２．１６８」のパケットを、パケット転送装置２０−２を介してサービス処理装置３０−１に転送し、サービス処理装置３０−１が、受信したパケットに対してプログラム「Ａ」、「Ｂ」を実行する。一方、パケット転送装置２０−１は、アドレスプレフィックスが「１７２．１６」のパケットを、パケット転送装置２０−２を介してサービス処理装置３０−２に転送し、サービス処理装置３０−２が、受信したパケットに対してプログラム「Ｃ」を実行する場合について考える。
【００５５】
図１４に、図１３の構成におけるルーティングテーブル１１１の設定の一例を示した図である。同図を参照すると、アドレスプレフィックスが「１９２．１６８」のパケットは、エッジのノードであるパケット転送装置２０−１より、転送用ラベル「ｆ１」（１１１５）が付与されて、出力ＩＦ「０」を通じてパケット転送装置２０−２に転送される。そして、このパケットは、パケット転送装置２０−２により、転送用ラベル「ｆ１」（１１１２）が「ｆ３」（１１１５）に置き換えられ、出力ＩＦ「０」を通じてサービス処理装置３０−１に転送される。
【００５６】
一方、アドレスプレフィックスが「１７２．１６」のパケットは、エッジのノードであるパケット転送装置２０−１より、転送用ラベル「ｆ２」（１１１５）が付与されて、出力ＩＦ「０」（１１１４）を通じてパケット転送装置２０−２に転送される。そして、このパケットは、パケット転送装置２０−２により、転送用ラベル「ｆ２」（１１１２）が「ｆ４」（１１１５）に置き換えられ、出力ＩＦ「１」（１１１４）を通じてサービス処理装置３０−２に転送される。
【００５７】
図１５は、図１３の構成におけるサービス情報テーブル１１３の設定の一例を示した図である。同図を参照すると、アドレスプレフィックスが「１９２．１６８」のパケットは、サービス処理装置３０−１により「Ａ」、「Ｂ」の順で実行されたプログラムにより処理される。このため、プログラム「Ａ」、「Ｂ」に対応するサービス識別ラベル１１３２として「ｐ１」、「ｐ２」が設定され、実行順序１１３５として「１」、「２」が設定される。
【００５８】
一方、アドレスプレフィックスが「１７２．１６」のパケットは、サービス処理装置３０−２により、プログラム「Ｃ」で処理される。このため、プログラム「Ｃ」に対応するサービス識別ラベル１１３２として「ｐ３」が設定され、実行順序１１３５として「１」が設定される。
【００５９】
図１６（ａ）は、アドレスプレフィックスが「１９２．１６８」のパケットのフォーマットの一例を示した図である。同図（ａ）を参照すると、このパケットには、パケット転送装置２０−１により、「ｐ２」、「ｐ１」の順でサービス識別用ラベルが付与され、次いで「ｆ１」の転送用ラベルが付与される（ステップＳ１５）。
【００６０】
そして、このパケットは、パケット転送装置２０−２に転送され、パケット転送装置２０−２により、その転送用ラベル「ｆ１」が削除され、「ｆ３」に置き換えられる（ステップＳ３）。
【００６１】
サービス処理装置３０−１は、このパケットを受信し、転送用ラベル「ｆ３」を削除し、サービス識別ラベル「ｐ１」を読み出す。この「ｐ１」に対応するサービス処理ノードが自身（３０−１）であるから（ステップＴ３３：ＹＥＳ）、サービス処理装置３０−１は、サービス識別ラベル「ｐ１」に対応するプログラム「Ａ」を実行する（ステップＴ５３）。サービス処理装置３０−１は、サービス識別ラベル「ｐ１」を削除するが（ステップＴ５５）、更にサービス識別ラベル「ｐ２」が付加されているので（ステップＴ５７：ＹＥＳ）、「ｐ２」に対応するプログラム「Ｂ」を実行する（ステップＴ５３）。
【００６２】
一方、図１６（ｂ）は、アドレスプレフィックスが「１７２．１６」のパケットのフォーマットの一例を示した図である。同図（ｂ）を参照すると、このパケットには、パケット転送装置２０−１により、サービス識別用ラベル「ｐ３」が付与され、次いで「ｆ２」の転送用ラベルが付与される（ステップＳ１５）。
【００６３】
そして、このパケットは、パケット転送装置２０−２に転送され、パケット転送装置２０−２により、その転送用ラベル「ｆ２」が削除され、「ｆ４」に置き換えられる（ステップＳ３）。
【００６４】
サービス処理装置３０−１は、このパケットを受信し、転送用ラベル「ｆ４」を削除し、サービス識別ラベル「ｐ３」を読み出す。この「ｐ３」に対応するサービス処理ノードが自身（３０−２）であるから（ステップＴ３３：ＹＥＳ）、サービス処理装置３０−２は、サービス識別ラベル「ｐ３」に対応するプログラム「Ｃ」を実行する（ステップＴ５３）。
【００６５】
図１７は、ルーティングテーブルを変更せずにサービスの変更を行った場合のサービス情報テーブル１１３の一例である。サービス処理装置３０−１で、アドレスプレフィックス「１９２．１６８」のパケットをプログラム「Ｄ」で処理するサービスを追加する場合について考える。同図を参照すると、サービス情報テーブル１１３において、サービス処理装置「３０−１」（１１３１）、サービス識別ラベル「ｐ４」（１１３２）、アドレスプレフィックス「１９２．１６８」（１１３３）、プログラム「Ｄ」（１１３４）、実行順序「３」（１１３４）のエントリが追加されている。一方、ルーティングテーブル１１１に変更はない。
【００６６】
また、図１８は、ルーティングテーブルの変更を伴うサービスの変更を行った場合のサービス情報テーブル１１３の一例である。サービス処理装置３０−２で、アドレスプレフィックス「１０．２０」のパケットをプログラム「Ｄ」で処理するサービスを追加する場合について考える。同図を参照すると、サービス情報テーブル１１３において、サービス処理装置「３０−２」（１１３１）、サービス識別ラベル「ｐ４」（１１３２）、アドレスプレフィックス「１０．２０」（１１３３）、プログラム「Ｄ」（１１３４）、実行順序「１」（１１３４）のエントリが追加されている。
【００６７】
図１９は、ルーティングテーブルの変更を伴うサービスの変更を行った場合のルーティングテーブル１１１の一例である。同図を参照すると、ノード「２０−１」（１１１１）において、アドレスプレフィックス「１０．２０」（１１１３）、出力ラベル「ｆ５」（１１１５）のエントリが追加されている。また、ノード「２０−２」（１１１１）において、入力ラベル「ｆ５」（１１１２）、アドレスプレフィックス「１０．２０」（１１１３）、出力ラベル「ｆ６」（１１１５）のエントリが追加され、ノード「３０−２」（１１１１）において、入力ラベル「ｆ６」（１１１２）、アドレスプレフィックス「１０．２０」（１１１３）のエントリが追加されている。
【００６８】
図１７で示したように、ルーティングの変更を要しないサービスの変更であれば、サービス情報テーブル１１３のみを変更すればよく、ルーティングテーブル１１１への影響はない。また、図１８および図１９で示したように、ルーティングの変更を伴うサービスの変更であっても、ルーティングテーブル１１１の変更は最小限で済む。このため、サービスの変更が容易である。
【００６９】
また、サービスを変更せずにトポロジを変更した場合でも、ルーティングテーブル１１１を変更するのみでよく、サービス情報テーブル１１３に影響はない。このため、サービス処理装置２０の配置を変更しやすい。
【００７０】
これに対して、図２７に示すように、パケットとサービスとの組み合わせごとにラベルを割り当てる構成では、サービス処理装置の配置を変更せずに、サービスのみを変更した場合でも、ルーティングテーブル全体に影響が及ぶので、通信システムはサービスの変更に対して柔軟に対応できない。
【００７１】
以上説明したように、本実施形態によれば、パケット転送装置２０がサービス識別ラベル１１３２及び転送用ラベル１１１５を付与したパケットを所定の経路で転送し、サービス処理装置３０は、サービス識別情報１１３２の示すプログラム１１３４で受信したパケットを処理する。サービスを変更するときは、ルーティングに変更のない限り、サービス識別ラベル１１３２のみを変更すればよく、転送用ラベル１１１５の変更を要しない。また、ルーティングの変更を伴うサービスの変更であっても転送用ラベル１１１５の変更は最小限で済む。このため、通信システム１は、容易にサービスを変更することができる。
【００７２】
また、制御信号処理装置１０は、ルーティングテーブル１１１、及びサービス情報テーブル１１３を、ノードごとに作成し、これらのテーブルに基づいてパケット転送装置２０及びサービス処理装置３０を制御する。この構成により、パケット転送機能およびサービス処理機能と、制御機能とが、異なるノードに分散されるため、通信システム１は、ルーティングの制御処理についての負荷の影響を受けずに、パケット転送処理およびサービス処理を実行することができる。
【００７３】
パケット転送処理装置２０は、テーブルを一元的に管理する制御信号処理装置１０により作成されたルーティングテーブル２１１およびサービス情報テーブル２１３に基づいてサービス識別ラベル及び前記転送用ラベルをパケットに付与する。ルーティングテーブル２１１とサービス情報テーブル２１３とを別々に設けているため、サービスを変更するときは、ルーティングに変更のない限り、サービス情報テーブル２１３のみを変更すればよく、ルーティングテーブル２１１の変更を要しない。このため、サービスの変更が容易となる。
【００７４】
サービス処理装置３０は、転送用ラベル（１１１５）に基づいてパケットに対応する前記サービス処理装置が自身であるか否かを判断し、パケットが処理対象であれば、サービスプログラムを実行するので、サービス処理装置３０は、他のノードで処理すべきパケットを誤って処理することはない。
【００７５】
そして、サービス情報テーブル１１３は、プログラムの実行順序１１３５を示す情報を含むので、通信システム１は、サービス処理装置３０に、複数のサービスを所定の順序で提供させることができる。
（第２の実施形態）
本発明の第２の実施形態について図２０〜図２５を参照して説明する。本実施形態の制御信号処理装置１０およびパケット転送装置２０の構成は、第１の実施形態と同様である。図２０は、本実施形態のサービス処理装置３０ａの構成を示すブロック図である。同図を参照すると、サービス処理装置３０ａは、パケット振り分け部３３を更に有する。このパケット振り分け部３３は、パケット転送装置２０のパケット振り分け部２３と同様の構成である。
【００７６】
本実施形態の通信システムは、サービス処理装置３０ａが、パケット転送機能を有する点で第１実施形態と異なる。
【００７７】
図２０は、本実施形態のサービス処理を示すフローチャートである。同図を参照すると、サービス処理（ステップＴ５）の後、ルーティングテーブルを参照してパケットを転送する（ステップＴ７）。
【００７８】
図２２〜図２５を参照して、本実施形態の動作結果の一例について説明する。図２２は、本実施形態の通信システムのトポロジの一例を示した図である。同図を参照すると、本実施形態の通信システムは、パケット転送装置２０−１および２０−２と、サービス処理装置３０−１および３０−２を有する。パケット転送装置２０−１および２０−２は、パケット転送装置２０と同様の構成であり、サービス処理装置３０−１および３０−２は、サービス処理装置３０ａと同様の構成である。
【００７９】
各ノード間の接続構成は、サービス処理装置３０−１の出力ＩＦ「０」がサービス処理装置３０−２の通信インターフェースに接続される以外は、第１実施形態と同様である。
【００８０】
第１実施形態では、サービス処理装置３０−１は、サービス用のプログラム（「Ａ」、「Ｂ」）を実行した後のパケットを他のノードに転送しない構成としていた。しかし、本実施形態では、サービス処理装置３０−１が、受信したパケットについてサービス用のプログラム「Ａ」、「Ｂ」を実行した後、そのパケットを他のサービス処理装置３０−２に転送し、そのサービス処理装置３０−２が、受信したパケットについて更に別のプログラム「Ｄ」を実行する。
【００８１】
制御信号処理装置１０は、ルーティングテーブル１１１に、ノード「３０−１」からノード「３０−２」へ送信されるパケットに対応するエントリを追加する。図２３は、図２２の構成におけるルーティングテーブル１１１の設定の一例である。同図を参照すると、ノード「３０−１」（１１１１）における、アドレスプレフィックス「１９２．１６８」（１１１３）、出力ＩＦ「０」（１１１４）、および出力ラベル「ｆ５」（１１１５）のエントリと、ノード「３０−２」（１１１１）における、入力ラベル「ｆ５」（１１１２）、およびアドレスプレフィックス「１９２．１６８」（１１１３）のエントリとが追加されている。同図において斜線部は、追加されたエントリである。
【００８２】
制御信号処理装置１０は、サービス情報テーブルに、プログラム「Ｄ」に対応するエントリを追加する。図２４は、図２２の構成におけるサービス情報テーブル１１３の設定の一例である。同図を参照すると、サービス処理装置「３０−２」（１１３１）、サービス識別ラベル「ｐ４」（１１３２）、アドレスプレフィックス「１９２．１６８」（１１３３）、プログラム「Ｄ」（１１３４）、および実行順序「３」（１１３５）のエントリが追加されている。同図において斜線部は、追加されたエントリである。
【００８３】
パケット転送装置２０−１は、パケットに追加するプログラム「Ｄ」およびサービス処理装置３０−２の識別情報の組を更に付与する。図２５（ａ）は、図２２の構成におけるパケットのフォーマットを示した図である。同図を参照すると、パケット転送装置２０−１により、パケットには、サービス識別ラベル「ｐ４」、転送用ラベル「ｆ５」、サービス識別ラベル「ｐ１」、「ｐ２」、および転送用ラベル「ｆ１」の順でラベルが付与される（ステップＳ１）。そして、パケット転送装置２０−２により、転送用ラベル「ｆ１」が「ｆ２」に置き換えられる（ステップＳ３）。このパケットはサービス処理装置３０−２に転送され、サービス処理装置３０−１により、プログラム「Ａ」、「Ｂ」が実行された後、サービス識別ラベル「ｐ１」、「ｐ２」が削除される（ステップＴ５５）。
【００８４】
図２５（ｂ）は、サービス処理装置３０−１によりプログラム「Ａ」、「Ｂ」が実行された後のパケットのフォーマットを示す図である。同図を参照すると、パケットには、サービス識別ラベル「ｐ４」、転送用ラベル「ｆ５」の順でラベルが付与れており、サービス処理装置３０−２によりプログラム「Ａ」、「Ｂ」が実行された後、サービス識別ラベル「ｐ４」が削除される（ステップＴ５５）。
【００８５】
以上、説明したように、本実施形態によれば、サービス処理装置３０ａ（３０−１）は、プログラム（「Ａ」、「Ｂ」）で処理したパケットに、転送用ラベルが付与されていれば、処理したパケットを所定の経路で転送する。このため、１つのパケットについて複数のサービス処理装置で複数のプログラムを実行することができ、通信システム１は、サービスの変更や、サービス処理装置の配置の変更に対して、柔軟に対応することができる。
【００８６】
なお、ルーティングを制御する機能とパケットを転送する機能とを分散しない構成としてもよい。例えば、図２６に示すように、制御信号処理装置１０を設けず、通信システム１が、パケット転送処理装置２０およびサービス処理装置３０のみを有する構成とする。
【００８７】
また、図８〜図１２および図２１に示したフローチャートの一部または全部の処理はコンピュータプログラムの実行により実現することもできる。
【図面の簡単な説明】
【００８８】
【図１】第１の実施形態の通信システムの構成を示す全体図である。
【図２】第１の実施形態の制御信号処理装置の構成を示すブロック図である。
【図３】第１の実施形態のルーティングテーブルの構成を示す図である。
【図４】第１の実施形態のサービス情報テーブルの構成を示す図である。
【図５】第１の実施形態のパケット転送装置の構成を示すブロック図である。
【図６】第１の実施形態のパケットのフォーマットを示す図である。
【図７】第１の実施形態のサービス処理装置の構成を示すブロック図である。
【図８】第１の実施形態のパケット転送処理を示すフローチャートである。
【図９】第１の実施形態のラベル処理を示すフローチャートである。
【図１０】第１の実施形態のサービス処理を示すフローチャートである。
【図１１】第１の実施形態のサービス対象パケット判断処理を示すフローチャートである。
【図１２】第１の実施形態のプログラム実行処理を示すフローチャートである。
【図１３】第１の実施形態の通信システムの構成の一例を示す図である。
【図１４】第１の実施形態のルーティングテーブルの構成を示す図である。
【図１５】第１の実施形態のサービス情報テーブルの構成を示すブロック図である。
【図１６】（ａ）第１の実施形態のパケットのフォーマットを示す図である。（ｂ）第１の実施形態のパケットのフォーマットを示す図である。
【図１７】第１の実施形態のサービス情報テーブルの構成の一例を示す図である。
【図１８】第１の実施形態のサービス情報テーブルの構成の一例を示す図である。
【図１９】第１の実施形態のルーティングテーブルの構成の一例を示す図である。
【図２０】第２の実施形態のサービス処理装置の構成を示すブロック図である。
【図２１】第２の実施形態のサービス処理を示すフローチャートである。
【図２２】第２の実施形態の通信システムの構成の一例を示す図である。
【図２３】第２の実施形態のルーティングテーブルの構成を示す図である。
【図２４】第２の実施形態のサービス情報テーブルの構成を示すブロック図である。
【図２５】（ａ）第２の実施形態のパケットのフォーマットを示す図である。（ｂ）第２の実施形態のパケットのフォーマットを示す図である。
【図２６】変形例の通信システムの構成の一例を示す図である。
【図２７】比較例の通信システムの構成の一例を示す図である。
【符号の説明】
【００８９】
１    通信システム
１０    制御信号処理装置
１１    テーブル作成部
１３    制御部
２０、２０−１、２０−２    パケット転送装置
２１    ラベル処理部
２３、３３    パケット振り分け部
３０、３０−１、３０−２、３０ａ    サービス処理装置
３１    サービス対象パケット判断部
３１    サービス処理機能部
１１１、２１１    ルーティングテーブル
１１３、２１３、３１１    サービス情報テーブル
１１１１    ノード
１１１２    入力ラベル
１１１３    アドレスプレフィックス
１１１４    出力IF
１１１５    出力ラベル
１１３１    ノード
１１３２    サービス識別ラベル
１１３３    アドレスプレフィックス
１１３４    プログラム
１１３５    実行順序
Ｓ１〜Ｓ３、Ｓ１１〜Ｓ１５、Ｔ１〜Ｔ７、Ｔ３１〜Ｔ３５、Ｔ５１〜Ｔ５７    ステップ
【図１】
0004599429.tif 000002
【図２】
0004599429.tif 000003
【図３】
0004599429.tif 000004
【図４】
0004599429.tif 000005
【図５】
0004599429.tif 000006
【図６】
0004599429.tif 000007
【図７】
0004599429.tif 000008
【図８】
0004599429.tif 000009
【図９】
0004599429.tif 000010
【図１０】
0004599429.tif 000011
【図１１】
0004599429.tif 000012
【図１２】
0004599429.tif 000013
【図１３】
0004599429.tif 000014
【図１４】
0004599429.tif 000015
【図１５】
0004599429.tif 000016
【図１６】
0004599429.tif 000017
【図１７】
0004599429.tif 000018
【図１８】
0004599429.tif 000019
【図１９】
0004599429.tif 000020
【図２０】
0004599429.tif 000021
【図２１】
0004599429.tif 000022
【図２２】
0004599429.tif 000023
【図２３】
0004599429.tif 000024
【図２４】
0004599429.tif 000025
【図２５】
0004599429.tif 000026
【図２６】
0004599429.tif 000027
【図２７】
0004599429.tif 000028