(57)【特許請求の範囲】
【請求項１】
受信手段と、この受信手段で受信された入力情報に対する処理を行う複数のネットワークプロセッサとを含む通信装置に設けられ、直列に多段接続され、受信手段から入力情報を夫々受け取り、入力情報を所定の振り分け条件に従ってネットワークプロセッサの何れかに振り分ける振り分け処理を入力情報毎に実行する複数のロードバランス制御部を含み、
２段目以降の各ロードバランス制御部は、前段のロードバランス制御部による振り分け処理を監視し、入力情報の振り分け先が特定のネットワークプロセッサに偏っている場合には、自身に入力された入力情報であって前段のロードバランス制御部にて前記特定のネットワークプロセッサに振り分けられた入力情報を、前段のロードバランス制御部で使用された振り分け条件と異なる振り分け条件に従って、他のネットワークプロセッサに振り分ける、ネットワークプロセッサの負荷分散装置。
【請求項２】
各ロードバランス制御部は、複数のネットワークプロセッサの何れかに障害が発生した場合に、自身が使用している振り分け条件を、この障害が発生したネットワークプロセッサを除く振り分け先に対応する他の振り分け条件に変更する、請求項１記載のネットワークプロセッサの負荷分散装置。
【請求項３】
受信手段と、
前記受信手段で受信された入力情報に対する処理を行う複数のネットワークプロセッサと、
直列に多段接続され、前記受信手段から入力情報を夫々受け取り、入力情報を所定の振り分け条件に従ってネットワークプロセッサの何れかに振り分ける振り分け処理を入力情報毎に実行する複数のロードバランス制御部を含み、２段目以降の各ロードバランス制御部は、前段のロードバランス制御部による振り分け処理を監視し、入力情報の振り分け先が特定のネットワークプロセッサに偏っている場合には、自身に入力された入力情報であって前段のロードバランス制御部にて前記特定のネットワークプロセッサに振り分けられた入力情報を前段のロードバランス制御部で使用された振り分け条件と異なる振り分け条件に従って他のネットワークプロセッサに振り分ける負荷分散装置と、を含む通信装置。
【請求項４】
前記受信手段で受信された異常な入力情報を、前記ネットワークプロセッサの何れかに与えることなく廃棄する、請求項３記載の通信装置。
【請求項５】
受信手段と、
前記受信手段で受信された入力情報に対する処理を行う複数のネットワークプロセッサと、
直列に多段接続され、前記受信手段から入力情報を夫々受け取り、入力情報を所定の振り分け条件に従って前記複数のネットワークプロセッサの何れかに振り分ける振り分け処理を入力情報毎に実行する複数のロードバランス制御部を含み、２段目以降の各ロードバランス制御部が、前段のロードバランス制御部による振り分け処理を監視し、入力情報の振り分け先が特定のネットワークプロセッサに偏っている場合には、自身に入力された入力情報であって前段のロードバランス制御部にて前記特定のネットワークプロセッサに振り分けられた入力情報を、前段のロードバランス制御部で使用された振り分け条件と異なる振り分け条件に従って他のネットワークプロセッサに振り分ける、複数の負荷分散装置とを含み、
前記負荷分散装置の何れかが現用系として使用され、他の負荷分散装置が予備系となっている場合に、この現用系の負荷分散装置に含まれた各ロードバランス制御部で使用される振り分け条件を、予備系の負荷分散装置に含まれた各ロードバランス制御部に設定する、通信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ルーティングやアドレス検索等の機能を持つ複数のネットワークプロセッサを実装した通信装置に適用され、個々のネットワークプロセッサに対するフレーム処理の負荷分散制御を行う負荷分散装置に関する。
【０００２】
【従来の技術】
近年のインターネット人口の急激な増加に伴い、インターネット上で扱われるデータ量も急激に増加している。これに伴い、ルータやスイッチ等の通信装置においても、ＩＰ等の通信フレーム（パケット）のルーティング処理やスイッチング処理、及びアドレス検索やルーティングテーブル検索等の処理に対する負荷が急激に増加し、通信装置の性能向上、及びネットワークプロセッサの処理能力向上が要求されている。このため、通信装置に対して要求される処理能力を満足するネットワークプロセッサを通信装置に実装する必要がある。
【０００３】
しかし、ここ数年のインターネット通信量の急激な増加に伴い、必ずしも個々のネットワークプロセッサの処理能力が装置開発時点において要求を満足出来るとは限らない。この場合は、処理能力の劣るネットワークプロセッサを複数実装した並列処理を行うと共に、個々のネットワークプロセッサの処理能力を超えないように、各ネットワークプロセッサに対してフレーム処理量の負荷分散（ロードバランス）を行う必要がある。
【０００４】
従来技術においては、並列実装されたネットワークプロセッサに対して、ロードバランスの処理を行う場合は、各フレームの持つアドレス等の情報から送信する方路の振り分けを行い、各ネットワークプロセッサへフレーム送信を行っていた。また、この方路の振り分けを計算する際の制御パラメータを予め複数設定しておき、特定のネットワークプロセッサに対して、送信フレームが集中するようなフレーム振り分けの偏りが生じた場合には、この制御パラメータの変更を行い、フレームの振り分け先を一括変更して、フレーム振り分けの偏りの解消を行っていた。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記した従来技術では、フレームの振り分け先が一括変更されるため、パラメータの変更の前後において、全てのフレームに対するフレームの送信先変更が発生する可能性があった。このとき、フレーム振り分けの偏りが生じていない方路のフレームが、制御パラメータの変更前後で異なるネットワークプロセッサへ送信された場合には、フレームの連続性が破壊される。これによって、フレームの切断が発生し、フレームが正常に通信できない。このような制御パラメータの動的な変更が頻繁に行われる場合には、通信装置の信頼性が低下する可能性があった。
【０００６】
本発明の目的は、入力情報の振り分け先が特定のネットワークプロセッサに偏った場合に、他のネットワークプロセッサに振り分けられた入力情報に影響を与えることなく偏りを解消可能なネットワークプロセッサの負荷分散装置を提供することである。
【０００７】
【課題を解決するための手段】
本発明は、上述した目的を達成するために以下の構成を採用する。
即ち、本発明は、受信手段と、この受信手段で受信された入力情報に対する処理を行う複数のネットワークプロセッサとを含む通信装置に設けられ、直列に多段接続され、受信手段から入力情報を夫々受け取り、入力情報を所定の振り分け条件に従ってネットワークプロセッサの何れかに振り分ける振り分け処理を入力情報毎に実行する複数のロードバランス制御部を含み、
２段目以降の各ロードバランス制御部は、前段のロードバランス制御部による振り分け処理を監視し、入力情報の振り分け先が特定のネットワークプロセッサに偏っている場合には、自身に入力された入力情報であって前段のロードバランス制御部にて前記特定のネットワークプロセッサに振り分けられた入力情報を、前段のロードバランス制御部で使用された振り分け条件と異なる振り分け条件に従って、他のネットワークプロセッサに振り分ける、ネットワークプロセッサの負荷分散装置である。
【０００８】
本発明によると、ロードバランス制御部を直列に多段接続し、入力情報(例えばフレーム)の振り分けに偏りが発生した場合に、偏りが発生している振り分け先(方路)の入力情報のみ、次段のロードバランス制御部において、フレームの再振り分け処理を自動的に行うことにより、他の方路向けのフレームに影響を与えること無く、迅速にフレーム振り分けの偏りを解消することが可能となる。
【０００９】
本発明による負荷分散装置は、最終段のロードバランス制御部による振り分け処理を監視し、入力情報の振り分け先が特定のネットワークプロセッサに偏っている場合には、全てのロードバランス制御部で使用されている振り分け条件を更新する更新制御部をさらに含む、構成とするのが好ましい。
【００１０】
このようにすれば、全段のロードバランス制御部を使用してもロードバランスの偏りが解消されない場合は、全段のロードバランス制御部の振り分け条件(パラメータ)を自動的に更新し、最終的にネットワーク形態に適したロードバランス制御を提供することが可能となる。
【００１１】
本発明による負荷分散装置は、各ロードバランス制御部が、受信手段から受け取った入力情報に対し、前記振り分け処理を実行することなく所定のネットワークプロセッサに振り分けるように構成するのが好ましい。このようにすれば、本発明による負荷分散装置に対し、開発評価を効率的に行う為の機能を付加することができる。
【００１２】
本発明による負荷分散装置は、各ロードバランス制御部が、複数のネットワークプロセッサの何れかに障害が発生した場合に、自身が使用している振り分け条件を、この障害が発生したネットワークプロセッサを除く振り分け先に対応する他の振り分け条件に変更する、ように構成するのが好ましい。
【００１３】
このようにすれば、障害発生時においても最適なロードバランス制御を継続させる機能も具備することとなり、ロードバランスシステム全体の信頼性を高めることができる。
【００１４】
また、本発明は、受信手段と、
前記受信手段で受信された入力情報に対する処理を行う複数のネットワークプロセッサと、
直列に多段接続され、前記受信手段から入力情報を夫々受け取り、入力情報を所定の振り分け条件に従ってネットワークプロセッサの何れかに振り分ける振り分け処理を入力情報毎に実行する複数のロードバランス制御部を含み、２段目以降の各ロードバランス制御部は、前段のロードバランス制御部による振り分け処理を監視し、入力情報の振り分け先が特定のネットワークプロセッサに偏っている場合には、自身に入力された入力情報であって前段のロードバランス制御部にて前記特定のネットワークプロセッサに振り分けられた入力情報を前段のロードバランス制御部で使用された振り分け条件と異なる振り分け条件に従って他のネットワークプロセッサに振り分ける負荷分散装置と、を含む通信装置として特定することもできる。
【００１５】
本発明による通信装置は、前記受信手段で受信された異常な入力情報を、前記ネットワークプロセッサの何れかに与えることなく廃棄する、ように構成するのが好ましい。
このようにすれば、ネットワークプロセッサに与えられる入力情報が減り、ネットワークプロセッサに対する負荷が軽減される。
【００１６】
また、本発明は、受信手段と、
前記受信手段で受信された入力情報に対する処理を行う複数のネットワークプロセッサと、
直列に多段接続され、前記受信手段から入力情報を夫々受け取り、入力情報を所定の振り分け条件に従って前記複数のネットワークプロセッサの何れかに振り分ける振り分け処理を入力情報毎に実行する複数のロードバランス制御部を含み、２段目以降の各ロードバランス制御部が、前段のロードバランス制御部による振り分け処理を監視し、入力情報の振り分け先が特定のネットワークプロセッサに偏っている場合には、自身に入力された入力情報であって前段のロードバランス制御部にて前記特定のネットワークプロセッサに振り分けられた入力情報を、前段のロードバランス制御部で使用された振り分け条件と異なる振り分け条件に従って他のネットワークプロセッサに振り分ける、複数の負荷分散装置とを含み、
前記負荷分散装置の何れかが現用系として使用され、他の負荷分散装置が予備系となっている場合に、この現用系の負荷分散装置に含まれた各ロードバランス制御部で使用される振り分け条件を、予備系の負荷分散装置に含まれた各ロードバランス制御部に設定する、通信装置として特定することもできる。
【００１７】
このようにすれば、通信装置が冗長構成を持つ場合においても最適なロードバランス制御を継続させる機能も具備することとなり、ロードバランスシステム全体の信頼性を高めることができる。
【００１８】
【発明の実施の形態】
〔本発明の原理〕
図１は、本発明の原理説明図である。図１には、本発明による負荷分散装置１００と、負荷分散装置１００が実装される通信装置の主要な構成要素が示されている。通信装置は、外部から送信されてきた入力情報としての通信データ(以下、「フレーム」という)をその宛先に応じた出方路へ出力するものであり、ルータ、レイヤ３スイッチ、ＭＰＬＳラベルスイッチ、これらの組み合わせを例示することができる。
【００１９】
図１では、通信装置の主要構成要素として、受信手段としての回線インターフェイス部１と、負荷分散装置１００と、位相補正部３と、分配部７と、複数のネットワークプロセッサ(以下、「ＮＷＰ」と表記)８と、スイッチ部(以下、「ＳＷ」と表記)９と、制御手段としてのＣＰＵ１０が示されている。
【００２０】
回線インターフェイス部１は、通信装置の外部からのフレームを受信する。回線インターフェイス部１にて受信されたフレームは、フレームを負荷分散装置１００及び位相補正部３に与えられる。
【００２１】
負荷分散装置１００は、回線インターフェイス部１から入力されるフレームが持つアドレス等の情報を用い、ＮＷＰ８へフレームを送信する方路の振り分け処理(ＮＷＰ８に対するフレーム処理の割り当て)を、複数のＮＷＰ８に対する負荷が分散されるように行い、この振り分け処理の結果に基づくフレーム送信許可信号を位相補正部３に与えるとともに、方路選択信号を分配部７に与える。
【００２２】
位相補正部３は、内部にＦＩＦＯ(First-In-First-Out)を具備している。位相補正部３は、回線インタフェース部１から送信されるフレームを受信すると共に、負荷分散装置１００(負荷分散装置１００のセレクタ４)からフレーム送信許可信号を受信するまで、ＦＩＦＯに一時的にフレームを蓄える。位相補正部３は、負荷分散装置１００からのフレーム送信許可信号に従い、分配部７へフレームを送信する。
【００２３】
分配部７は、位相補正部３から受信したフレームを、負荷分散装置１００(負荷分散装置１００のセレクタ５)から送信される方路選択信号に従い、任意のＮＷＰ８に対して振り分ける。
【００２４】
各ＮＷＰ８は、分配器７から受信したフレームのルーティング処理やアドレスフィルタリング処理等を行い、フレームにルーティングヘッダを付加し、ＳＷ９へフレームを送信する。ここでは、ＮＷＰ８の１個当たりの処理能力が、回線インタフェース部１からフルレートで送信されるフレームに対する処理能力を下回るので、フルレートで送信されるフレームの処理を可能とするために、Ｍ(Ｍは１以上の整数)個のＮＰＷ８が並列に実装されている。以下、特定のＮＷＰ８を指す場合には、「ＮＷＰ８-＃Ｙ(Ｙ＝１,２,３,・・・,Ｍ−１,Ｍ；Ｙは番目(ＮＷＰ８に割り当てられた番号)を指す１以上の整数)」と表記する。
【００２５】
ＳＷ９は、各ＮＷＰ８から入力されるフレームに対し、フレームに付加されたルーティングヘッダ等を用いてフレームのスイッチング処理を行う。ＣＰＵ１０は、ＣＰＵバス経由で負荷分散装置１００内のロードバランス制御部２に各種の設定を施す。
【００２６】
本発明による負荷分散装置１００は、ＮＷＰ８に対する負荷を分散するため、複数個のロードバランス制御部２と、セレクタ４と、セレクタ５と、デコード部６とを備えている。ロードバランス制御部２は、複数個が多段（２段以上）接続されている。以下、特定のロードバランス制御部２を指す場合には、「ロードバランス制御部２-＃Ｘ(Ｘ＝１,２,３,・・・,Ｎ−１,Ｎ；Ｘは段目を指す１以上の整数)」と表記する。図１では、Ｎ(Ｎは１以上の整数)個のロードバランス制御部２が直列にＮ段接続されている。また、ロードバランス制御部２は、ＣＰＵバスインタフェースを持ち、ＣＰＵ１０から、ソフトウェアによる各種設定を施される。
【００２７】
各ロードバランス制御部２は、回線インターフェイス部１から送信されるフレームを受信し、フレームのヘッダに含まれたプロトコルＩＤ やアドレス値をもとに、ＣＰＵ１０から設定されるパラメータに従い、任意のＮＷＰ８へフレームを振り分ける処理(ロードバランス制御)を行う。
【００２８】
図１においては、前段のロードバランス制御部２による振り分け処理の結果は、次段のロードバランス制御部２へ、振り分け情報として通知される。各ロードバランス制御部２は、フレームの振り分け処理が完了すると、フレーム送信許可信号をセレクタ４へ送信すると共に、方路選択信号をセレクタ５へ送信する。さらに、各ロードバランス制御部２はステータス信号をデコード部６に与える。
【００２９】
セレクタ４は、各ロードバランス制御部２から与えられるフレーム送信許可信号の中から何れか１つを選択する。どれを選択するかはデコード部６から受信するセレクタ信号に従う。
【００３０】
セレクタ５は、各ロードバランス制御部２から与えられる方路選択信号の中から何れか１つを選択する。どれを選択するかはデコード部６から受信するセレクタ信号に従う。
【００３１】
デコード部６は、各ロードバランス制御部２のＯＮ／ＯＦＦ 状態を示すステータス信号を受信し、ＯＮになっているロードバランス制御部２の中で一番後段に存するロードバランス制御部２から送信されるフレーム送信許可信号及び方路選択信号がセレクタ４及びセレクタ５にて夫々選択されるように、デコード処理したセレクタ信号をセレクタ４及びセレクタ５に送信する。
【００３２】
本発明による負荷分散装置１００の作用を図１をもとに説明する。複数のロードバランス制御部２による振り分け処理(ロードバランス制御)は、負荷分散装置１００の動作開始時(例えば、通信装置の電源投入後、またはリセット解除後)にスタートする。このとき、１段目のロードバランス制御部２-＃１のロードバランス制御のみＯＮ状態となり、その他はＯＦＦ状態となっている。各ロードバランス制御部２は、電源投入／リセット解除後は、自身のロードバランス制御のＯＮ／ＯＦＦ状態を示すステータス信号を常時デコード部６へ通知する状態となる。
【００３３】
また、電源投入／リセット解除後の初期設定として、ＣＰＵ１０は、各ロードバランス制御部２に対し、ＮＷＰ８の負荷分散に必要な設定を行う。ここで行われる設定は、ロードバランス制御のＯＮ／ＯＦＦ設定、フレームの振り分け時に使用するパラメータの設定を含む。さらに、初期設定は、試験モードのＯＮ／ＯＦＦ設定を含むこともできる。
【００３４】
フレームの振り分け処理(ロードバランス制御)は、所定の振り分け条件に従って実行される。振り分け条件は、ある条件式を演算することにより得ることができる。例えば、受信フレーム内に格納されているアドレスを、ある生成多項式で除算を行い、その余り値を振り分け先を示す方路番号(方路選択番号)として選択し、この方路選択番号に対応するＮＷＰ８の番号(予め割り当てられている)を持つＮＷＰ８へフレームを振り分けるという振り分け条件に従ってフレームの振り分けを行う方法が挙げられる。
【００３５】
この場合、パラメータは生成多項式を指し、フレームの振り分け処理において、特定の方路に対してフレームの振り分けが集中した時に、パラメータの動的変更により振り分け条件を変更して異なるフレームの振り分け結果を得られるように、複数の異なる生成多項式を各ロードバランス制御部２に対して設定する。
【００３６】
回線インターフェイス部１は、フレームを受信すると、そのフレームを各ロードバランス制御部２及び位相補正部３に送信する。
各ロードバランス制御部２は、回線インターフェイス部１からフレームを受信すると、フレーム内に格納されているプロトコルＩＤやアドレスをチェックする。但し、この段階では、１段目のロードバランス制御部２-＃１のみがＯＮとなっているので、ロードバランス制御部２-＃１のみが、フレームのプロトコルＩＤ やアドレスのチェックを開始する。
【００３７】
上記プロトコルＩＤは、例えば、回線インタフェースがＰＯＳ(Packet Over SONET/SDH)インタフェースの場合は、ＰＰＰ(Point to Point Protocol)で規定されているプロトコルＩＤを指す。また、上記アドレスは、ＩＰｖ４(Internet Protocol version 4)やＩＰｖ６(Internet Protocol version 6)等のプロトコルで夫々規定されている宛先アドレスや送信元アドレスを指している。
【００３８】
ロードバランス制御部２-＃１は、設定された生成多項式に従い、フレーム単位に、振り分け演算処理を行う。即ち、ロードバランス制御部２-＃１は、フレームのアドレスの格納領域をチェックし、そのアドレス値を生成多項式で除算し、その結果得られる余り値を方路選択番号として取得し、これを含む信号を方路選択信号として、セレクタ５へ通知する。
【００３９】
また、ロードバランス制御部２-＃１は、上記振り分けの演算処理が完了した時点で、位相補正部３にフレーム送信許可信号を送信する。なお、ＯＦＦ状態となっている残りのロードバランス制御部２-＃２〜Ｎは、受信したフレームに対する振り分け処理を行わない。
【００４０】
デコード部６は、各ロードバランス制御部２からステータス信号を受信し、ステータス信号をデコードして、セレクタ信号を生成し、セレクタ４及びセレクタ５へそれぞれ送信する。ロードバランス制御部２-＃１のみがＯＮであれば、ロードバランス制御部２-＃１から送信される方路選択信号及びフレーム送信許可信号が選択されるように、デコード部６はセレクタ信号を生成する。
【００４１】
位相補正部３は、受信したフレームをセレクタ４から送信されるフレーム送信許可信号を受信するまでＦＩＦＯへ一旦蓄積し、フレーム送信許可信号がＯＮになる(フレーム送信許可信号をセレクタ４から受け取る)と、ＦＩＦＯに蓄積していたフレームを分配部７へ送信する。
分配部７は、セレクタ５から送信される方路選択信号に従い、位相補正部３から受信したフレームを、該当するＮＷＰ８へ送信する。
【００４２】
各ＮＷＰ８は、分配部７から受信したフレームに対してルーティング等の処理やアドレスフィルタリング処理を行い、フレームにルーティングヘッダ等を付加してＳＷ９へ送信する。ＳＷ９は、フレームのルーティングヘッダ等に従ったスイッチングを行い、フレームを適宜の出方路へ送出する。
【００４３】
以上の動作によって、回線インタフェース部１で受信されたフレームは、ロードバランス制御部２-＃１に設定されたパラメータに従って振り分けられ、振り分け結果に該当するＮＷＰ８に与えられる。このようにして、ＮＷＰ８によるフレーム処理の負荷分散が行われる。
【００４４】
次に、振り分けに偏りが生じた場合を説明する。ロードバランス制御部２-＃１による振り分け処理に偏りが発生し、特定のＮＷＰ８に対するフレーム振り分けが集中した場合は、ロードバランス制御部２-＃１のすぐ後段(次段)に存するロードバランス制御部２-＃２は、ロードバランス制御部２-＃１から送信される振り分け情報により振り分け先の偏りを認識する。
【００４５】
ここで、ロードバランス制御部２-＃２は、自身がＯＦＦ状態であり、前段のロードバランス制御部２-＃１にてフレーム振り分けの偏りを検出した場合は、自身のロードバランス制御をＯＮ状態に切り替え、偏りが発生している方路のフレームに対してのみ振り分け処理(再振り分け)を行う。
【００４６】
後段に存するロードバランス制御部２(ここでは、ロードバランス制御部２-＃２)には、再振り分け時に使用する生成多項式として、その前段のロードバランス制御部２(ここでは、ロードバランス制御部２-＃１)にて振り分け処理に使用される生成多項式と異なる生成多項式が、ＣＰＵ１０により初期設定時に設定されている。この異なる生成多項式では、偏りが生じている方路が選択される余り値が求められないようになっている。このため、次段の振り分け条件は前段の振り分け条件と異なる。従って、再振り分けの結果は、前段の振り分け結果と当然異なり、前段にて偏りが発生している方路(振り分け先)へ振り分けられたフレームは、他の方路に分散して振り分けられる。これによって、偏りが解消される。
【００４７】
一方、ロードバランス制御部２-＃２ は、再振り分けの対象以外のフレームについては、ローバランス制御部２-＃１からの振り分け情報を使用して、セレクタ４にフレーム送信許可信号を、セレクタ５へ方路選択信号を送信する。
【００４８】
また、ロードバランス制御部２-＃２がＯＮとなった時点で、ロードバランス制御部２-＃２からデコード部６に与えられるステータス信号は、ＯＦＦからＯＮに切り替わる。ここに、デコード部６は、ＯＮ状態のロードバランス制御部２のうち最も後段に存するロードバランス制御部２のフレーム送信許可信号及び方路選択信号を選択するようになっている。このため、デコード部６は、ロードバランス制御部２-＃２のフレーム送信許可信号と方路選択信号を選択するセレクタ信号をセレクタ４及びセレクタ５に送信する。
【００４９】
さらに、ロードバランス制御部２-＃２による再振り分け処理によっても偏りが解消されない場合には、同様に、次段のロードバランス制御部２(ロードバランス２-＃３)のロードバランス制御が、ロードバランス制御部２-＃２からの振り分け情報に基づいてＯＮとなり、同様の再振り分け処理を行う。
【００５０】
以上のようにして、前段のロードバランス制御部２によるフレームの振り分けに偏りが生じた場合に、次段のロードバランス制御部２が、偏りの発生した方路のフレームのみ再度振り分けを行う。これによって、偏りが解消されるとともに、偏りが発生していない方路のフレームは、再振り分けによる影響を受けることなく通信装置による処理が継続されるので、フレームの連続性が維持され、そのフレームを用いた通信を継続することができる。
【００５１】
図２及び図３は、図１に示した負荷分散装置が実装される通信装置２０の構成を示す図である。図２において、通信装置２０は、例えばルータであり、スイッチ部(ＳＷ)９と、ＳＷ９に対して並列に接続される１以上の(図２ではＬ個(Ｌは１以上の整数))回線インターフェイスカード２１とを備えている。
【００５２】
各回線インターフェイスカード２１は、通信装置２０の外部から入力される入力情報としての通信データ(フレーム)を制御する通信データ入力制御部２２と、ＳＷ９から出力されるフレームを制御する通信データ出力制御部２３とを備えている。
【００５３】
図３は、図２に示した回線インターフェイスカード２１(例として＃１)中の通信データ入力制御部２２の構成を示しており、図１に示した構成は、通信データ入力制御部２２の構成に相当する。このように、負荷分散装置１００は、例えば、通信装置に実装される回線インターフェイスカードの通信データ入力制御部に設けられる。なお、本発明の「通信装置」は、通信データ入力制御部２２を持つ回線インターフェイスカード２１のようなインターフェイス装置と、このインターフェイス装置が実装されるルータ(通信装置２０)，レイヤ３スイッチ，ＭＰＬＳラベルスイッチのような交換機との双方を指す。
【００５４】
〔第１実施例〕
次に、本発明の第１実施例を、図４〜８を用いて説明する。図４は、第１実施例による負荷分散装置１００が実装される通信装置２０の主要な構成要素(回線インターフェイスカード２１の通信データ入力制御部２２)を示すブロック図である。図５は、１段目のロードバランス制御部による振り分け処理を示すフローチャートである。図６は、２段目以降のロードバランス制御部による振り分け処理(再振り分け処理)を示すフローチャートである。図７は、第１実施例で扱われるＰＯＳフレームのフォーマットを示す図である。図８は、第１実施例で扱われるＰＯＳ−ＰＨＹインタフェースの構成図である。
【００５５】
図４に示すように、第１実施例による負荷分散装置１００は、図１に示した負荷分散装置１００とほぼ同じ構成を備えている。但し、第１実施例では、回線上を転送されるフレームとしてＰＯＳフレームが適用され、回線インターフェイスとしてＰＯＳインターフェイスが適用される。このため、第１実施例の通信装置(通信データ入力制御部２２)は、回線インターフェイス部１に相当する受信手段としてのＰＯＳインターフェイス部(ＰＯＳ−ＰＨＹインターフェイス部)１Ａを有し、ＰＯＳインターフェイス部１で受信されるＰＯＳフレームに対する処理を行う。
【００５６】
図７に示すように、ＰＯＳフレームは、ＳＯＮＥＴ／ＳＤＨフレームとＰＰＰフレームからなる。ＰＯＳは、“Packet Over SONET/SDH”の略で、ＳＯＮＥＴ／ＳＤＨ上でＰＰＰ(Point to Point Protocol)フレームを送信するためのプロトコルであり、ＲＦＣ−１６６１等で規定されている(ＲＦＣはプロトコルを始めとするインターネット関連の情報をまとめた文書である)。
【００５７】
簡単に説明すると、ＳＯＮＥＴ／ＳＤＨフレームはＯＳＩ参照モデルのレイヤ１に当たり、ＰＰＰフレームはレイヤ２ に当たる。図７中のＳＯＨは“Section Over Head”の略で、ＳＯＮＥＴ／ＳＤＨフレームのレイヤ１の情報を格納する領域であり、ペイロードはユーザデータを格納する領域であり、ペイロードにＰＰＰフレームが格納されている。
【００５８】
ＰＰＰフレームはＨＤＬＣ−ｌｉｋｅのフレーム構成を取っており、ＰＰＰ パケット内のＩｎｆｏｒｍａｔｉｏｎ領域にＩＰｖ４，ＩＰｖ６等のレイヤ３ のデータを格納している。またＩｎｆｏｒｍａｔｉｏｎ領域に格納されているレイヤ３のプロトコルを示す情報をＰｒｏｔｏｃｏｌ ＩＤ領域に格納している。プロトコルＩＤは、例えば、ＩＰｖ４は“０ｘ００２１”に規定され、ＩＰｖ６は“０ｘ００５７”に規定されている。
【００５９】
図４に戻って、ＰＯＳインターフェイス部１Ａは、ＰＯＳフレームを受信すると、ＳＯＮＥＴ／ＳＤＨのフレームヘッダ(ＳＯＨ)を外し、ペイロード内に格納されているＰＰＰフレームのＦｌａｇとＦＣＳを外したフレームを、各ロードバランス制御部２と、位相補正部３へＰＯＳ−ＰＨＹインタフェースを使用して送信する。
【００６０】
ＰＯＳ−ＰＨＹインターフェイスは、ＰＰＰフレームをパラレル伝送するための一般的なインタフェースであり、通常、ＰＯＳインタフェースを持つ回線インタフェース用デバイスは、ＰＯＳ−ＰＨＹインタフェースを具備している。
【００６１】
ＰＯＳ−ＰＨＹインタフェースは、ＰＨＹデバイスとＬＩＮＫデバイス間のデータ転送のためのインタフェースを規定したものであり、図４では、ＰＯＳインターフェイス部１ＡがＰＨＹデバイスに相当し、各ロードバランス制御部２、及び位相補正部３がＬＩＮＫデバイスに相当する。
【００６２】
図８(Ａ)は、ＰＯＳ−ＰＨＹインターフェイスの構成イメージを示す図であり、図８(Ｂ)は、ＰＨＹデバイスからＬＩＮＫデバイスへ伝送される信号のタイムチャートを示す図であり、図８(Ｃ)は、ＭＯＤ[１：０]の機能説明表である。
【００６３】
図８(Ａ)において、ＣＬＫは、データ転送のためのクロック信号であり、ＰＨＹ及びＬＩＮＫデバイスに夫々供給される。ＰＨＹデバイスは、ＣＬＫに従って、ＬＩＮＫデバイスにＤＡＴＡ，ＳＯＰ，ＥＯＰ，ＭＯＤ，ＶＡＬＩＤ，及びＥＲＲの各信号を伝送する。
【００６４】
図８(Ｂ)に示すように、ＤＡＴＡ，ＳＯＰ，ＥＯＰ，ＭＯＤ，ＶＡＬＩＤ，及びＥＲＲの各信号はＣＬＫの立ち上がりエッジに同期する。
ＤＡＴＡ［３１ ：０］は、データバスであり、ビット幅は３２ビットである。
ＳＯＰは“１(ＯＮ)”の時、ＤＡＴＡ［３１：０］上にフレームの先頭データがあることを示す。また、フレームの先頭バイトは、いつもＤＡＴＡ［３１：２４］のＭＳＢ側に配置されることが決められている。
【００６５】
ＥＯＰは“１(ＯＮ)”の時、ＤＡＴＡ［３１：０］上にフレームの最終データがあることを示す。ＭＯＤ［１：０］は、ＥＯＰ＝１の時におけるＤＡＴＡ［３１：０］上の無効バイト数を示す。
【００６６】
ＥＲＲは、ＥＯＰ＝１の時にＥＲＲ＝１であれば、そのフレームがエラーフレームであることを示す。エラーフレームは、ＰＯＳインターフェイス１ＡがＰＯＳフレーム受信時にＦＣＳ(Frame Check Sequence)エラーを検出した障害発生フレームである。
【００６７】
ＶＡＬＩＤは、“１”の時、ＤＡＴＡ，ＳＯＰ，ＥＯＰ，ＭＯＤが有効であることを示す。図８(Ｂ)に示すタイムチャートは、１０バイト長の正常フレーム（ＥＲＲ＝０）と１９バイト長のエラーフレーム（ＥＲＲ＝１）とを転送したときを例として示している。
【００６８】
図８(Ｃ)に示すように、ＭＯＤ[１：０]は、“００”,“０１”,“１０”,“１１”の４つの状態をとり、“００”のときＤＡＴＡ[３１：０]が有効データであることを示し、“０１”のときＤＡＴＡ[７：０]が無効データであることを示し、“１０”のときＤＡＴＡ[１５：０]が無効データであることを示し、“１１”のときＤＡＴＡ[２３：０]が無効データであることを示す。
第１実施例の構成は、上記した点を除き、図１〜３とほぼ同じであるので、同じ点については説明を省略する。
【００６９】
次に、第１実施例における負荷分散装置１００の動作を、図５及び図６に示したフローチャートと併せて説明する。図５において、通信装置の電源投入又はリセットが解除されると、ＣＰＵ１０は、ＣＰＵバスを介して、各ロードバランス制御部２に対し、初期設定を実施する(ステップ(以下、「Ｓ」と表記)０１)。即ち、ＣＰＵ１０は、初期設定として、ロードバランス制御部２-＃１に対し、ロードバランス制御のＯＮ／ＯＦＦ設定、ＤＢＧモードの設定、ＤＢＧモードＯＮ時の固定振り分け先値、振り分け処理で使用する生成多項式を設定する。
【００７０】
もっとも、ＣＰＵ１０は、この初期設定を、２段目以降のロードバランス制御部２に対しても行う(図６のＳ０１)。但し、ＣＰＵ１０は、ロードバランス制御部２-＃１のみにロードバランス制御のＯＮ設定を行い、その他のロードバランス制御部２にはＯＦＦ設定を行う。
【００７１】
ＤＢＧモードはＤｅｂｕｇ（試験／評価）モードを意味し、ＤＢＧモードがＯＮの時(Ｓ０２；ＹＥＳ)は、予め設定した固定振り分け先値(方路番号)が、方路選択信号としてセレクタ５に送信される(Ｓ１４)。これによりＤＢＧモードがＯＮ設定時は、ロードバランス制御による振り分けは発生せず、固定的に設定した方路に対してフレーム送信が可能となる。このため、評価時や試験時に効率良くフレームの負荷試験やロードバランス制御部の動作評価等を実施することが可能となる。このＤＢＧモードは、本発明の負荷分散装置に対する付加的な構成であり、必要に応じて付加・削除できるものである。
【００７２】
第１実施例で使用される振り分けアルゴリズム(ロードバランス制御)は、ロードバランス制御部２に入力されるフレームのアドレスビットを設定された生成多項式で除算するものとし、ＮＷＰ８の実装数がＮ(Ｎは１以上の整数)個の場合、余りがＮ−１以下になるような生成多項式が設定される。これは、生成多項式の最高次数をＮにすることで実現可能である。また、余りがＬ(Ｌは０以上の整数)であれば、Ｌ＋１番のＮＷＰ８に対してフレーム送信を行う。例えば、ＮＷＰ８の実装数が５個であれば、余りが４以下になるように最高次数が５の生成多項式を設定する。この生成多項式によるアドレスビットの除算において、余りが０であればＮＷＰ８-＃１へフレームを送信し、余りが４であれば、ＮＷＰ８-＃５へ送信する。
【００７３】
ロードバランス制御部２-＃１は、ＰＯＳ−ＰＨＹインタフェース上で、ＶＡＬＩＤ＝１且つＳＯＰ＝１を受信時(Ｓ０３；ＹＥＳ)に、ＤＡＴＡ上にフレームの先頭バイトがあることを認識し、Ｉｎｆｏｒｍａｔｉｏｎフィールドに格納されているレイヤ３のプロトコルを示すプロトコルＩＤの検索を行う(Ｓ０４,Ｓ０５,Ｓ０６)。
【００７４】
このとき、位相補正部３は、ロードバランス制御部２と同時にＶＡＬＩＤ＝１且つＳＯＰ＝１を受信すると、セレクタ４経由で、ロードバランス制御部２-＃１からのフレーム送信許可信号がＯＮとなる迄、このフレームを位相補正部３の内部に設けられたＦＩＦＯに格納し、分配部７への送信を停止する。これは、ロードバランス制御部２-＃１によるフレーム振り分け処理による振り分け先が決定する前に、分配部７へフレームが送信されるのを防ぐ為である。
【００７５】
ロードバランス制御部２は、プロトコル検索として、入力されたフレームのプロトコルＩＤがＩＰｖ４か否かの判定(Ｓ０４)、ＩＰｖ６か否かの判定(Ｓ０５)、及びＭＰＬＳ(MultiProtocol Label Switching)かそれ以外かの判定(Ｓ０６)を行う。ここで、ＭＰＬＳ，ＩＰｖ４，ＩＰｖ６であるか否かをチェックするのは、ＰＯＳフレーム上では、ユーザデータとしてＭＰＬＳ，ＩＰｖ４，ＩＰｖ６が大半を占め、これら以外のプロトコルのレートはＭＰＬＳ，ＩＰｖ４，及びＩＰｖ６に比べて非常に低いことが予想されるので、特定のＮＷＰ８に集中して割り振るようにしても、通信品質に影響を与えないと考えられる為である。
【００７６】
ロードバランス制御部２-＃１は、ＭＰＬＳ，ＩＰｖ４，ＩＰｖ６以外の他プロトコルを検出した場合(Ｓ０６；ＮＯ)には、振り分け先(割り振り先)の固定によりハードウェアの制御を簡易にするために、該当フレームが特定のＮＷＰ８(ここでは、ＮＷＰ８-＃１)に常に送信されるようにする。これは、方路選択信号として、ＮＷＰ８-＃１への振り分けを意味する値(ここでは、“０”)を送信することで実現される(Ｓ１１)。
【００７７】
ロードバランス制御部２-＃１は、ＭＰＬＳ，ＩＰｖ４，ＩＰｖ６の各プロトコルを検出した場合には、各プロトコルに対応する演算処理(フレームの振り分け処理)を行う(Ｓ０７,Ｓ０８,Ｓ０９)。各演算処理において、ロードバランス制御部２-＃１は、プロトコルのアドレスフィールドを検索し、アドレスフィールドに格納されたアドレスビットに対して、設定された生成多項式による除算を行う。
【００７８】
続いて、ロードバランス制御部２-＃１は、除算の結果により得られた余り値を、方路選択信号として、セレクタ５へ送信する(Ｓ１０)。さらに、ロードバランス制御部２-＃１は、除算の結果が得られた演算終了時点，又は方路選択信号の送出が終わった時点で、セレクタ４に対し、フレーム送信許可信号をＯＦＦ→ＯＮ→ＯＦＦする送信制御を行う(Ｓ１２,Ｓ１３)。
【００７９】
このとき、デコード部６は、ロードバランス制御部２-＃１からのステータス信号がＯＮであり、他のロードバランス制御部２からのステータス信号がＯＦＦとなっているため、セレクタ信号“０”を各セレクタ４,５に与える。
【００８０】
セレクタ信号“Ｘ−１”は、各セレクタ４及び５がＸ段目のロードバランス制御部２が出力した方路選択信号及びフレーム許可信号を夫々選択することを意味する。セレクタ信号が“０”であれば、ロードバランス制御部２-＃１から送信されたフレーム送信許可信号がセレクタ４を経由して位相補正部３に与えられ、方路選択信号がセレクタ５を経由して分配部７へ与えられる。
【００８１】
その後、位相補正部３は、フレーム送信許可信号がＯＮとなると、ＦＩＦＯに一旦蓄積していたフレームを分配部７へ送信する。分配部７は、方路選択信号の値に従い、フレームを送信すべきＮＷＰ８を選択する。例えば方路選択信号が“１”であれば、ＮＷＰ８-＃２へフレームが送信される制御を行う。これによって、位相補正部３から送信されたフレームは、分配部７を介して振り分け先に相当するＮＷＰ８に与えられる。負荷分散装置１００は、１段目のロードバランス制御部２-＃１による振り分け処理で偏りが発生しない場合には、上記の通り動作する。
【００８２】
次に、１段目のロードバランス制御部２-＃１によるフレームの振り分け処理によって、フレーム振り分けの偏りが生じた場合には、負荷分散装置１００は、以下のように動作する。
【００８３】
図６において、２段目のロードバランス制御部２-＃２は、１段目のロードバランス制御部２-＃１のロードバランス制御がＯＮ状態の時に、ロードバランス制御部２-＃１から送信される振り分け情報をモニタ(監視)し、振り分けの偏りが発生しているか否かを判定する(Ｓ１０１)。
【００８４】
前段に相当するロードバランス制御部２は、フレームに対する方路選択信号を生成する毎に、その方路選択信号を振り分け情報(振り分け結果)として次段のロードバランス制御部２に入力する。次段のロードバランス制御部２は、前段のロードバランス制御部２からの振り分け情報に基づき、単位時間あたりの振り分け数(方路選択信号の数)を方路(ＮＷＰ８)毎にカウントする。各単位時間あたりの振り分け数には、所定の閾値が夫々設定(ＣＰＵ１０による初期設定で設定)されている。２段目以降のロードバランス制御部２は、ある方路に対する単位時間あたりの振り分け数が閾値を上回ると、フレームの振り分け先がその方路に偏っているものと判定し、これを偏りとして検出する。
【００８５】
ロードバランス制御部２-＃２は、フレームの振り分けに偏りを検出した場合(Ｓ１０１；ＹＥＳ)には、自身の振り分けアルゴリズム(ロードバランス制御)をＯＮにし(Ｓ１０２)、その後、ＰＯＳインターフェイス部１から入力されるフレームに対し、偏りの発生した方路向けのフレームか否かを判定する(Ｓ１０３)。
【００８６】
次段のロードバランス制御部２は、自身に入力されるフレームに対する処理を、そのフレームに対する前段のロードバランス制御部２による振り分け結果(振り分け情報としての方路選択信号)と同期をとって行う(フレームの振り分け処理をその振り分け結果を参照して行う)ようになっており、そのフレームに対する振り分け結果が、偏りの発生している方路の方路選択信号であるか否かを判定することによって、当該フレームが偏りの発生した方路向けか否かを判定する。
【００８７】
ロードバランス制御部２-＃２は、入力されたフレームが偏りの発生した方路向けである場合(Ｓ１０３；ＹＥＳ)には、そのフレームに対してのみ、再度のフレームの振り分け処理を行い、振り分け結果として得た方路選択信号と異なる値の方路選択信号を生成しセレクタ５に送出する(図６のＳ０４〜Ｓ１０)。
【００８８】
これに対し、ロードバランス制御部２-＃２は、入力されたフレームが偏りの発生した方路向けでない場合(Ｓ１０３；ＮＯ)には、そのフレームに対する振り分け結果として得た方路選択信号をそのままセレクタ５に送出する(Ｓ１０４)。
【００８９】
ロードバランス制御部２-＃２からセレクタ５へ送信される方路選択信号は、振り分け情報として、次段のロードバランス制御部２-＃３に与えられ、次段のロードバランス制御部２-＃３の監視及び偏りの検出処理の利用に供される。
【００９０】
ロードバランス制御部２-＃２は、方路選択信号を送出した後に、フレーム送信許可信号のＯＦＦ→ＯＮ→ＯＦＦ制御を行う(図６のＳ１２,Ｓ１３)。例えば、ロードバランス制御部２-＃１によるフレーム振り分けにおいて、ＮＷＰ８-＃１に対するフレーム振り分けが集中し、偏りが発生した場合に、２段目のロードバランス制御部２-＃２は、振り分け情報のモニタにより、ＮＷＰ８-＃１向けのフレームに偏りが生じていることを検出し、自身のロードバランス制御をＯＦＦからＯＮに自律的に切り替えて、ＮＷＰ８-＃１向けのフレームに対してのみ、１段目のロードバランス制御部２-＃１とは異なる生成多項式で除算を行い、フレームの再振り分けを行う。一方、ＮＷＰ８-＃１向け以外のフレームは偏りが発生していないため、ロードバランス制御部２-＃２は、ロードバランス制御部２-＃１の振り分けをそのまま使用し、振り分け情報として得た方路選択信号を送信する。
【００９１】
デコード部６は、ロードバランス制御部２-＃２のステータス信号がＯＦＦからＯＮに切り替わった時点で、セレクタ信号を“０”から“１”(ロードバランス制御部２-＃２からの出力を選択することを意味する)に変更し、セレクタ４及びセレクタ５ヘ送信する。
【００９２】
従って、セレクタ４は、ロードバランス制御部２-＃２からのフレーム送信許可信号を選択して位相補正部３に入力し、セレクタ４は、ロードバランス制御部２-＃２からの方路選択信号を選択して分配部７に入力する。
【００９３】
以上の動作によれば、フレームが集中していたＮＷＰ８-＃１向けのフレームは、ロードバランス制御部２-＃２において、再度他の方路(他のＮＷＰ８)に向けて散らばる。これによって、ＮＷＰ８-＃１へさらに負荷が集中することが防止されるとともに、振り分け先が分散されることによって、特定の他の方路へ振り分け先が集中することを防止することができる。一方、１段目のロードバランス制御部２-＃１において、他の方路へ振り分けられていたフレームは、その振り分け先のままで、ロードバランス制御を継続して行うことが可能となる。従って、この方路に対しては、再振り分けによる影響は生じず、通信の品質を維持することができる。
【００９４】
その後、２段目のロードバランス制御部２-＃２をＯＮにしてもフレーム振り分けの偏りが解消しない場合や、逆に他の方路でフレームの偏りが発生した場合には、次段に相当する３段目のロードバランス制御部２-＃３のロードバランス制御がＯＮとなる。ロードバランス制御部２-＃３は、上記したロードバランス制御部２-＃２と同様のロードバランス制御(図６参照)を行う。このような形式で次段以降のロードバランス制御が実施されることとなる。
【００９５】
第１実施例による負荷分散装置１００によれば、ロードバランス制御部２を１段通過することで、フレームは各方路へ散ることとなり、２段目以降は、偏った方路のフレームのみ再度振り分けを行う。このため、他の方路に対する影響を最小限に抑えたまま、各段を通過する度にフレームは均等な負荷分散に近づく。このようにして、負荷が集中していないＮＷＰ８へのフレームの振り分けは維持したままで、ＮＷＰ８に対する負荷を均等に分散させることができる。
【００９６】
〔第２実施例〕
本発明による負荷分散装置の第２実施例を、図９,１０及び１１を用いて説明する。図９は、負荷分散装置の第２実施例を実装した通信装置の主要な構成要素(回線インターフェイスカード２１の通信データ入力制御部２２)を示す図であり、図１０は、第２実施例における１段目のロードバランス制御部２の処理を示すフローチャートであり、図１１は、第２実施例における２段目以降のロードバランス制御部２の処理を示すフローチャートである。第２実施例は、第１実施例と共通点を有するので、共通点については説明を省略し、主として相違点について説明する。
【００９７】
図９に示すように、第２実施例の負荷分散装置１００Ａは、第１実施例の負荷分散装置１００に対し、更新制御部１１を追加した構成となっている。更新制御部１１は、Ｎ段目のロードバランス制御部２-＃Ｎのロードバランス動作(振り分け処理)のＯＮ／ＯＦＦ動作を示すステータス信号と振り分け情報をモニタ(監視)する。更新制御部１１による最終段のロードバランス制御部２-＃Ｎの監視及び偏りの検出手法は、２段目以降のロードバランス制御部２による手法と同様である。
【００９８】
更新制御部１１は、ロードバランス制御部２-＃Ｎのロードバランス制御がＯＮ状態で、且つロードバランス制御部２-＃Ｎのフレーム振り分けに偏りが生じた場合には、全てのロードバランス制御部２に対し、更新制御信号を与える。この更新制御信号の付与は、更新制御部１１が各ロードバランス制御部２に対し、更新制御信号のＯＦＦ→ＯＮ→ＯＦＦの送信制御を行うことで実現される。
【００９９】
第２実施例では、ロードバランス制御部２-＃Ｎのロードバランス制御がＯＮ状態で、且つロードバランス制御部２-＃Ｎのフレーム振り分けに偏りが生じた場合には、更新制御部１１が、Ｎ段全てのロードバランス制御部２を使用してもフレームの偏りが解消されなかったものとして、全てのロードバランス制御部２に対し、更新制御信号が与えられる。
【０１００】
図９に示すように、１段目のロードバランス制御部２-＃１は、更新制御部１１による更新制御信号のＯＮを監視するようになっており(Ｓ２０１)、更新制御信号のＯＮを検出した場合(Ｓ２０１；ＹＥＳ)には、フレームの振り分け処理に使用している生成多項式を更新する(Ｓ２０２)。
【０１０１】
一方、図１１に示すように、２段目以降のロードバランス制御部２-＃２〜Ｎの夫々は、ロードバランス制御部２-＃１と同様に、更新制御部１１による更新制御信号のＯＮを監視するようになっており(Ｓ２０１)、更新制御信号のＯＮを検出した場合(Ｓ２０１；ＹＥＳ)には、フレームの振り分け処理に使用している生成多項式を更新するとともに、自身のロードバランス制御(振り分け処理)をＯＦＦにする(Ｓ２０３)。
【０１０２】
これによって、各ロードバランス制御部２の生成多項式が更新されると共に、１段目のロードバランス制御部２-＃１のみＯＮとなりフレームの振り分けが再度開始される。各ロードバランス制御部２には、初期設定時にＣＰＵ１０より、それぞれ異なる更新用の複数の生成他項式が設定されるようになっている。このため、最終的に最適なロードバランスを実施できる生成多項式を選択することができる。
【０１０３】
〔第３実施例〕
次に、本発明による負荷分散装置の第３実施例を、図４，５及び１２を用いて説明する。図１２は、第３実施例における２段目以降のロードバランス制御部２の処理を示すフローチャートである。第３実施例は、第１実施例と共通点を有するので、共通点については説明を省略し、主として相違点について説明する。
【０１０４】
第３実施例では、２段目以降のロードバランス制御部２の夫々は、図１２のフローチャートに示した動作を行う。ロードバランス制御部２-＃１は、第１実施例と同様に、図５のフローチャートに示した動作を行う。
【０１０５】
第３実施例では、２段目以降のロードバランス制御部２は、前段のロードバランス制御部２によるフレーム振り分け状態の監視用のタイマを持つ。図１２に示すように、ＣＰＵ１０は、初期設定において、タイマ値を設定する(Ｓ３０１)。タイマ値は、比較的大きな値（例えば、１時間以上）を設定可能となっている。
【０１０６】
２段目以降のロードバランス制御部２のロードバランス制御は、前段のロードバランス制御部２において振り分けの偏りが生じた場合にＯＮとなる。しかし、フレームの送信状態が時間経過とともに変化し、前段のロードバランス制御部２の振り分け処理による振り分け先(方路)の偏りが解消した場合(単位時間あたりの振り分け数が閾値を下回った場合)には、２段目以降のロードバランス制御部２は、自身のロードバランス制御によって、偏りの生じた方路のフレームの再振り分けをする必要が無くなる。
【０１０７】
このため、偏り解消の状態が、タイマ（例えば、１時間周期）時間継続すれば(Ｓ３０２)、２段目以降のロードバランス制御部２は、自身のロードバランス制御をＯＮからＯＦＦに自律的に切り替える(Ｓ３０３)。これによって、限りのあるロードバランス制御の段数を有効的に使用することが可能となる。
【０１０８】
〔第４実施例〕
次に、本発明による負荷分散装置の第４実施例を、図１３,１４,１５及び１６を用いて説明する。図１３は、負荷分散装置の第４実施例(負荷分散装置１００Ｂ)を実装した通信装置の主要な構成要素(回線インターフェイスカード２１の通信データ入力制御部２２)を示す図であり、図１４は、第４実施例における１段目のロードバランス制御部２の処理を示すフローチャートであり、図１５は、第４実施例における２段目以降のロードバランス制御部２の処理を示すフローチャートである。第４実施例は、第１実施例と共通点を有するので、共通点については説明を省略し、主として相違点について説明する。
【０１０９】
図１３に示すように、第４実施例では、各ＮＷＰ８がＣＰＵインタフェースを持ち、ＣＰＵバスを介してＣＰＵ１０と通信を行う。ＣＰＵ１０は、ＣＰＵバスを介して、各ＮＷＰ８の正常性を監視しており、特定のＮＷＰ８に障害が発生した場合には、直ちにそれを認識する。例えば、ＣＰＵ１０は、障害が発生したＮＷＰ８からのアラームを検出することによって障害発生を認識する。
【０１１０】
第４実施例では、特定のＮＷＰ８が障害となった場合、そのＮＷＰ８に振り分けられたフレームが通信不可となり廃棄されることを避ける為、ＣＰＵ１０は、各ロードバランス制御部２に対し、リセットを起動すると共に、正常なＮＷＰ８の数を意識した生成多項式を新たに設定する。これは、正常時にＮ個のＮＷＰ８が動作しているとすると、生成多項式は余りがＮ−１以下になるように最高次数がＮの生成多項式が設定されているが、ある１つのＮＷＰ８が障害になった場合には、余りＮ−２以下となるように最高次数がＮ−１の生成多項式を新たに更新することを指す。
【０１１１】
また、複数のＮＷＰ８には、予め除算の余り値と１対１に対応するように方路番号を割り振っている為、この番号を変換する方法が必要となる。例えば、ＮＷＰ８が５個実装されている場合には、ＮＷＰ８-＃１〜５に対応して、０〜４の方路番号を割り振ると共に、生成多項式で除算した余りも４以下になるように、最高次数が５の生成多項式が初期時に設定される。
【０１１２】
上記例でＮＷＰ８-＃４が障害になった場合は、正常に動作可能なＮＷＰ８が４個となるため、除算の余りが３以下になるように最高次数が４の生成多項式に設定を変更する。ところが、正常なＮＷＰ８は、＃１、＃２、＃３、＃５（＃４は障害）の４つであるので、生成多項式を変更するだけでは、余りが３の場合に、フレームがＮＷＰ８-＃４へ送信されてしまう。このため、余りが３の場合には、ＮＷＰ８-＃５へ送信されるように、除算の余り値と方路選択信号の関係を正常時と異常時で変換する必要がある。
【０１１３】
第４実施例では、各ロードバランス制御部２は、除算の余り値と方路選択信号の関係を変換するための方路番号変換テーブルを持ち、リセット後の初期設定時にＣＰＵ１０から初期設定(方路番号変換テーブルの設定内容変更)を行う。
【０１１４】
図１６は、方路番号変換テーブルの例を示す。図１６の例では、ＮＷＰ８が通信装置に８個実際されている場合で、全てのＮＷＰ８が正常な場合(図１６(Ａ))、ＮＷＰ８-＃３が障害になった場合(図１６(Ｂ))、ＮＷＰ８-＃及びＮＷＰ８-＃５が障害になった場合(図１６(Ｃ))の方路番号変換テーブルの設定内容を示している。
【０１１５】
ＣＰＵ１０は、全ての障害発生パターン(正常パターンを含む)の方路番号変換テーブルのマスタデータを持ち、初期設定時において、障害発生パターンに応じた設定内容を、各ロードバランス制御部２の方路番号変換テーブルに書き込む(図１４,１５のＳ４０１)。
【０１１６】
一方、各ロードバランス制御部２は、Ｓ０４,Ｓ０５,Ｓ０６の何れかの演算処理により除算の余り値を求めた場合には、方路番号変換テーブルを参照し、余り値に対応する値の方路選択信号を取得し、これを送出する(図１４,１５のＳ４０２)。
【０１１７】
以上により、ＮＷＰ８に障害が発生した場合でも、速やかに他の正常なＮＷＰ８にフレームの割り振りが可能となり、障害ＮＷＰ８が交換等で正常に戻るまでの間、障害による影響を最小限に抑えることが可能となる。
【０１１８】
なお、図１４,１５に示すフローチャートでは、ＩＰｖ４,ＩＰｖ６及びＭＰＬＳ以外のプロトコルのフレームが割り振られるＮＷＰ８に障害が発生した場合を考慮していないが、方路番号変換テーブルの設定内容を、当該ＮＷＰ８に障害が発生した場合を想定して作成し、ロードバランス制御部２が、Ｓ０６にてＮＯと判定した場合に、Ｓ１１において方路番号変換テーブルを参照し、ＩＰｖ４,ＩＰｖ６及びＭＰＬＳ以外のプロトコルのフレームが割り振られるＮＰＷ８の方路選択信号の値(方路選択番号)を取得し、これを送出するようにすれば良い。また、ＤＢＧモードの固定振り分け先(Ｓ１４)についても、同様にすることが可能である。
【０１１９】
〔変形例〕
本発明の原理及び第１〜４実施例で示した通信装置(回線インターフェイスカード)は、以下の変形が可能である。第１の変形例として、位相補正部３は、不完全なフレーム長のフレームやエラーフレームを受信した場合に、ＮＷＰ８に対する負荷を低減させるために該当フレームの廃棄処理を行うようにしても良い。
【０１２０】
不完全なフレーム長とは、本来あるべきフレーム長さでないフレームを指し、これは各プロトコルのヘッダ内に格納されているフレーム長フィールドの情報(フレームに付加されている)により、各ロードバランス制御部２においてチェックすることができる。また、エラーフレームとはＰＯＳ−ＰＨＹインタフェース上でＥＯＰ＝１且つＥＲＲ＝１のフレームを指す。
【０１２１】
第１の変形例では、位相補正部３は、ＳＯＰ＝１のフレームをＦＩＦＯに受信及び蓄積したときには、ＥＯＰ＝１となるまで、ＯＮのフレーム送信許可信号を受け取ってもそのフレーム送信を待機する。その後、ＥＯＰ＝１を受信した時に、フレーム長及びＥＲＲ信号の状態をチェックし、正常であればそのフレームを分配部７に送信し、フレ−ム長違反やエラーフレームを受信した時は、そのフレーム全体を廃棄する。フレーム廃棄は、ＳＯＰ＝１のデータを格納したＦＩＦＯアドレスの１つ前のアドレスに強制的にアドレスポインタを戻すことにより容易に実現することができる。
【０１２２】
第１の変形例によれば、異常なフレームを受信した場合に、そのフレームをＮＷＰ８へ送信せず廃棄することで、ＮＷＰ８に対する負荷を低減させることが可能となる。
【０１２３】
第２の変形例として、負荷分散装置１００が２重化構成のような冗長構成を持つようにしても良い。この場合には、現用系(アクティブ系)の負荷分散装置の各ロードバランス制御部２に設定される生成多項式と同じ生成多項式を予備系(スタンバイ系)の負荷分散装置の各ロードバンス制御部２に設定する。この設定は、例えば、ＣＰＵ１０が初期設定において行う。
【０１２４】
第２の変形例によれば、系の切り替えが発生した場合においても、新現用系の各ロードバランス制御部２は、旧現用系において直前まで使用されていた生成多項式を使用できる。このため、系の切り替え後であっても、瞬時に最適なロードバランス制御を提供することが可能となる。
【０１２５】
第３の変形例として、ＣＰＵバスに表示手段としての表示装置(ディスプレイ)を接続し、振り分け処理を実行しているロードバランス制御部で使用されている振り分け条件、各ネットワークプロセッサに対する入力情報の振り分け状態、振り分け処理を実行する状態となっているロードバランス制御部の数として、各段のロードバランス制御部２によるフレーム振り分け状況、各方路への振り分け比率、方路単位の送信フレーム数、現在ＯＮ状態のロードバランス制御部、現在選択されている生成多項式等が、ＣＰＵ１０によるソフトウェアの実行によってディスプレイに表示されるようにしても良い。
【０１２６】
第３の変形例によれば、システム全体(負荷分散装置全体)としてのロードバランス状態をネットワーク管理者やユーザに対して公開し、運用管理を容易に行うことが可能となる。
【０１２７】
以上説明したように、本発明によれば、ロードバランス制御部を多段接続することで、フレームの振り分けに偏りが発生した場合でも、その偏りの生じた方路向けのフレームのみ次段のロードバランス制御部で再度振り分けを行うことより、他の方路のフレームに影響を与えることなく、最適なロードバランス制御の提供を行うことが可能となる。
【０１２８】
また、ＮＷＰの障害発生時や負荷分散装置の冗長構成時においても速やかに最適なロードバランス制御の提供を行うことが可能となり、通信装置内のＮＷＰ８の能力を最大限に引き出すことができる。これにより、通信装置の性能向上、及び信頼度の高いネットワークの提供に大きく寄与することができる。
【０１２９】
〔その他〕
本発明は、以下のように特定することができる。
（付記１）  受信手段と、この受信手段で受信された入力情報に対する処理を行う複数のネットワークプロセッサとを含む通信装置に設けられ、直列に多段接続され、受信手段から入力情報を夫々受け取り、入力情報を所定の振り分け条件に従ってネットワークプロセッサの何れかに振り分ける振り分け処理を入力情報毎に実行する複数のロードバランス制御部を含み、２段目以降の各ロードバランス制御部は、前段のロードバランス制御部による振り分け処理を監視し、入力情報の振り分け先が特定のネットワークプロセッサに偏っている場合には、自身に入力された入力情報であって前段のロードバランス制御部にて前記特定のネットワークプロセッサに振り分けられた入力情報を、前段のロードバランス制御部で使用された振り分け条件と異なる振り分け条件に従って、他のネットワークプロセッサに振り分ける、ネットワークプロセッサの負荷分散装置。
（付記２）  最終段のロードバランス制御部による振り分け処理を監視し、入力情報の振り分け先が特定のネットワークプロセッサに偏っている場合には、全てのロードバランス制御部で使用されている振り分け条件を更新する更新制御部をさらに含む、付記１記載のネットワークプロセッサの負荷分散装置。
（付記３）  前記２段目以降の各ロードバランス制御部は、前段のロードバランス制御部の振り分け処理による振り分け先の偏りが解消してから所定時間が経過した場合に、自身が振り分け処理を実行しているときには、この振り分け処理を停止する、付記１記載のネットワークプロセッサの負荷分散装置。
（付記４）  各ロードバランス制御部が、受信手段から受け取った入力情報に対し、前記振り分け処理を実行することなく所定のネットワークプロセッサに振り分ける、付記１記載のネットワークプロセッサの負荷分散装置。
（付記５）  各ロードバランス制御部は、複数のネットワークプロセッサの何れかに障害が発生した場合に、自身が使用している振り分け条件を、この障害が発生したネットワークプロセッサを除く振り分け先に対応する他の振り分け条件に変更する、付記１記載のネットワークプロセッサの負荷分散装置。
（付記６）  受信手段と、前記受信手段で受信された入力情報に対する処理を行う複数のネットワークプロセッサと、直列に多段接続され、前記受信手段から入力情報を夫々受け取り、入力情報を所定の振り分け条件に従ってネットワークプロセッサの何れかに振り分ける振り分け処理を入力情報毎に実行する複数のロードバランス制御部を含み、２段目以降の各ロードバランス制御部は、前段のロードバランス制御部による振り分け処理を監視し、入力情報の振り分け先が特定のネットワークプロセッサに偏っている場合には、自身に入力された入力情報であって前段のロードバランス制御部にて前記特定のネットワークプロセッサに振り分けられた入力情報を前段のロードバランス制御部で使用された振り分け条件と異なる振り分け条件に従って他のネットワークプロセッサに振り分ける負荷分散装置と、を含む通信装置。
（付記７）  前記受信手段で受信された異常な入力情報を、前記ネットワークプロセッサの何れかに与えることなく廃棄する、付記６記載の通信装置。
（付記８）  前記振り分け処理を実行しているロードバランス制御部で使用されている振り分け条件、各ネットワークプロセッサに対する入力情報の振り分け状態、前記振り分け処理を実行する状態となっているロードバランス制御部の数のうち、少なくとも一つを表示する表示手段をさらに含む、付記６記載の通信装置。
（付記９）  受信手段と、前記受信手段で受信された入力情報に対する処理を行う複数のネットワークプロセッサと、直列に多段接続され、前記受信手段から入力情報を夫々受け取り、入力情報を所定の振り分け条件に従って前記複数のネットワークプロセッサの何れかに振り分ける振り分け処理を入力情報毎に実行する複数のロードバランス制御部を含み、２段目以降の各ロードバランス制御部が、前段のロードバランス制御部による振り分け処理を監視し、入力情報の振り分け先が特定のネットワークプロセッサに偏っている場合には、自身に入力された入力情報であって前段のロードバランス制御部にて前記特定のネットワークプロセッサに振り分けられた入力情報を、前段のロードバランス制御部で使用された振り分け条件と異なる振り分け条件に従って他のネットワークプロセッサに振り分ける、複数の負荷分散装置とを含み、前記負荷分散装置の何れかが現用系として使用され、他の負荷分散装置が予備系となっている場合に、この現用系の負荷分散装置に含まれた各ロードバランス制御部で使用される振り分け条件を、予備系の負荷分散装置に含まれた各ロードバランス制御部に設定する、通信装置。
【０１３０】
【発明の効果】
本発明によれば、入力情報の振り分け先が特定のネットワークプロセッサに偏った場合に、他のネットワークプロセッサに振り分けられた入力情報に影響を与えることなく偏りを解消することができる。
【図面の簡単な説明】
【図１】図１は、本発明の原理説明図である。
【図２】図２は、本発明による負荷分散装置が実装される通信装置の構成を示す図である。
【図３】図３は、本発明による負荷分散装置が実装される通信装置の構成を示す図である。
【図４】図４は、負荷分散装置の第１実施例を示すブロック図である。
【図５】図５は、１段目のロードバランス制御部による振り分け処理を示すフローチャートである。
【図６】図６は、２段目以降のロードバランス制御部による振り分け処理(再振り分け処理)を示すフローチャートである
【図７】図７は、第１実施例で扱われるＰＯＳフレームのフォーマットを示す図である。
【図８】図８(Ａ)はＰＯＳ−ＰＨＹインターフェイスの構成イメージを示す図であり、図８(Ｂ)はＰＨＹデバイスからＬＩＮＫデバイスへ伝送される信号のタイムチャートを示す図であり、図８(Ｃ)はＭＯＤ[１：０]の機能説明表である。
【図９】図９は、負荷分散装置の第２実施例を示すブロック図である。
【図１０】図１０は、第２実施例における１段目のロードバランス制御部の処理を示すフローチャートである。
【図１１】図１１は、第２実施例における２段目以降のロードバランス制御部の処理を示すフローチャートである。
【図１２】図１２は、第３実施例における２段目以降のロードバランス制御部の処理を示すフローチャートである。
【図１３】図１３は、負荷分散装置の第４実施例を示すブロック図である。
【図１４】図１４は、第４実施例における１段目のロードバランス制御部の処理を示すフローチャートである。
【図１５】図１５は、第４実施例における２段目以降のロードバランス制御部の処理を示すフローチャートである。
【図１６】図１６(Ａ)、(Ｂ)及び(Ｃ)は、方路番号変換テーブルの例を示す図である。
【符号の説明】
１      回線インターフェイス部
１Ａ    ＰＯＳインターフェイス部
２      ロードバランス制御部
３      位相補正部
４，５  セレクタ
６      デコーダ部
７      分配部
８      ネットワークプロセッサ(ＮＷＰ)
９      スイッチ部(ＳＷ)
１０    ＣＰＵ
１１    更新制御部
２０    通信装置
２１    回線インターフェイスカード
２２    通信データ入力制御部
１００  負荷分散装置
【図１】
0003901982.tif 000002
【図２】
0003901982.tif 000003
【図３】
0003901982.tif 000004
【図４】
0003901982.tif 000005
【図５】
0003901982.tif 000006
【図６】
0003901982.tif 000007
【図７】
0003901982.tif 000008
【図８】
0003901982.tif 000009
【図９】
0003901982.tif 000010
【図１０】
0003901982.tif 000011
【図１１】
0003901982.tif 000012
【図１２】
0003901982.tif 000013
【図１３】
0003901982.tif 000014
【図１４】
0003901982.tif 000015
【図１５】
0003901982.tif 000016
【図１６】
0003901982.tif 000017