(通信システムの構成)
図1は、実施例に係る通信システムを示す構成図である。通信システムは、第1及び第2パケット転送装置(通信装置)2a,2bと、第1及び第2パケット転送装置2a,2b間のパケットPKTの通信経路を制御する通信制御装置1とを有する。通信システムのネットワークとしては、一例としてOFNを挙げるが、これに限定されない。
第1及び第2パケット転送装置2a,2bは、それぞれ、ポート#1〜#3及び制御ポートを有する。第1及び第2パケット転送装置2a,2bは、それぞれ、他装置からポート#1〜#3を介してパケットPKTを受信し、パケットの宛先に応じたポート#1〜#3を介してパケットPKTを転送する。なお、パケットPKTとしては、例えばイーサネット(登録商標、以下同様)フレーム、IP(Internet Protocol)パケット、及びATMセルなどが挙げられるが、限定はない。
第1パケット転送装置2aのポート#1は、通信経路R1を介して端末装置#1に接続され、第1パケット転送装置2aのポート#3は、通信経路R4を介して端末装置#3に接続されている。第1パケット転送装置2aのポート#3は、通信経路R2を介して第2パケット転送装置2bのポート#1に接続されている。
第2パケット転送装置2bのポート#2は、通信経路R3を介して端末装置#2に接続され、第2パケット転送装置2bのポート#3は、通信経路R5を介して端末装置#4に接続されている。端末装置#1〜#4は、それぞれ、サーバ装置などのコンピュータ装置であり、図1に示されたIPアドレスが割り当てられている。なお、通信経路R1〜R5は、LAN(Local Area Network)ケーブルまたは光ファイバなどの通信ケーブルによる通信回線を構成する。
通信制御装置1は、例えばOF(Open Flow)コントローラであり、第1及び第2パケット転送装置2a,2bのパケットPKTの通信経路を制御する。通信制御装置1は、通信経路R11,R12を介して、第1及び第2パケット転送装置2a,2bの制御ポートにそれぞれ接続されている。なお、通信経路R11,R12は、LANケーブルまたは光ファイバなどの通信ケーブルによる制御回線を構成する。
通信制御装置1及び第1及び第2パケット転送装置2a,2bは、例えばOFプロトコルに従って、後述する制御メッセージMSGを交換することにより通信する。通信制御装置1は、第1及び第2パケット転送装置2a,2bに、パケットPKTのフローを設定する。パケットPKTのフローとは、例えばパケットの宛先(本例ではIPアドレス)に応じた経路を指す。
第1及び第2パケット転送装置2a,2bは、通信制御装置1によるフロー設定に応じた通信経路を介して、パケットPKTを転送する。第1及び第2パケット転送装置2a,2bは、フロー設定の内容を示すフローテーブル(テーブル)を保持する。
図2には、フローテーブルの例が示されている。図2(a)及び図2(b)は、第1及び第2パケット転送装置2a,2bのフローテーブルをそれぞれ示す。
「宛先IPアドレス」は、パケットPKTに含まれる宛先のIPアドレスであり、端末装置#1〜#4のIPアドレスに対応する。ポート番号は、当該IPアドレスに応じたポート#1〜#3の識別番号(1〜3)を示す。第1及び第2パケット転送装置2a,2bは、各々のフローテーブルに基づいて、パケットPKTを、宛先のIPアドレスに応じたポート#1〜#3を介して、通信経路R1〜R5に出力する。
例えば、第1パケット転送装置2aは、端末装置#1から、宛先IPアドレスが「192.168.1.2」であるパケットPKTを受信した場合、当該パケットPKTを、ポート#2を介して通信経路R2に出力する。また、第2パケット転送装置2bは、宛先IPアドレスが「192.168.1.2」であるパケットPKTを受信した場合、当該パケットPKTを、ポート#2を介して通信経路R3に出力する。通信経路R3に出力されたパケットPKTは、端末装置#2において受信される。すなわち、パケットPKTは、宛先IPアドレス「192.168.1.2」に合致する端末装置#2に到達する。
このように、フローテーブルは、パケットPKTの宛先及び通信経路R1〜R5の対応関係を示す。このため、宛先IPアドレスが「192.168.1.2」であるパケットPKTは、第1及び第2パケット転送装置2a,2bにより、端末装置#1から、通信経路R1,R2,R3を経由して、端末装置#2に到達する。第1及び第2パケット転送装置2a,2bは、他の端末装置#1〜#4間の通信についても同様に、パケットPKTを、宛先IPアドレスに応じたに合致する端末装置#1〜#4に転送する。なお、後述するように、第1及び第2パケット転送装置2a,2bは、フローテーブルに設定がないIPアドレス(つまり未登録のIPアドレス)を宛先とするパケットを受信した場合、当該パケットを制御メッセージMSGに収容して、通信制御装置1に転送する。
(通信システムの動作例)
次に、第1及び第2パケット転送装置2a,2b間の通信経路R2に障害が発生した場合を例に挙げ、通信システムの動作を説明する。また、本動作例において、通信制御装置1及び第1及び第2パケット転送装置2a,2bの間で送受信される制御メッセージMSGの例についても説明する。
本動作例において、実施例に係る通信制御装置1は、通信経路R2に障害を生じたパケット転送装置2a,2bのフロー設定(経路設定)を変更することにより、パケットPKTを自装置1に転送させる。そして、通信制御装置1は、パケットPKTが、障害が発生した通信経路R2を迂回するように、パケットPKTを他方のパケット転送装置2b,2aに送信することで、第1及び第2パケット転送装置2a,2bの間の通信の中断を防止する。
図3は、リンクダウンが発生したときの通信システムの動作を示す構成図である。リンクダウンは、例えば、ポート間を結ぶ通信ケーブル(LANケーブルや光ファイバ)の異常のために、ポート間のリンク(通信可能な状態)が切断される障害である。本例では、第1及び第2パケット転送装置2a,2b間の通信経路R2の障害により、リンクダウンが発生したと仮定する(×印参照)。
第1パケット転送装置2aは、通信経路R2に接続されたポート#2のリンクダウンを検出すると、リンクダウンを通知するために、制御メッセージMSGとして「Port_Status」メッセージを通信制御装置1に送信する。第2パケット転送装置2bも、同様に、通信経路R2に接続されたポート#1のリンクダウンを検出すると、リンクダウンを通知するために「Port_Status」メッセージを通信制御装置1に送信する。これにより、通信制御装置1は、リンクダウンを検出する。
図4(a)及び図4(b)には、「Port_Status」メッセージの構成及び例がそれぞれ示されている。図4(a)に示されるように、「Port_Status」メッセージは、「Version」、「Type」、「Message Length」、「Transaction ID」、「Reason」、「Reserved」、及び「Port Description」の各領域を含む。なお、「Port_Status」メッセージは、送信元のパケット転送装置2a,2bを示す送信元情報(図示せず)が付与される。
「Version」は、OFプロトコルのバージョン管理番号であり、「Type」は、制御メッセージMSGの種別(つまり「Port_Status」)を示す。「Message Length」は、制御メッセージMSGのデータ量を示し、「Transaction ID」は、制御処理上のシーケンス番号を示す。なお、「Version」、「Type」、「Message Length」、「Transaction ID」は、他の制御メッセージMSGにも同様に含まれるので、以降は説明を省略する。
「Reason」は、「Port_Status」メッセージの目的を示す。「Reserved」は、機能拡張に備えた予備の領域である。「Port Description」は、「Port_Status」メッセージの内容を示す。
図4(b)は、第1パケット転送装置2aが送信する「Port_Status」メッセージの例を示す。本例において、「Type」は、「12」(=「Port_Status」)を示し、「Reason」は、「2」(=通知(「Notify」))を示す。
また、「Port Description」内の「Port No」は、障害が検出されたポートの識別番号を示し、「Port State Flags」は、リンクダウンの有無(有:「1」/無:「0」)を示す。本例では、ポート#2のリンクダウンが検出されるため、「Port No」は「2」を示し、「Port State Flags」は「1」を示す。ここで、「Port No」は、第2パケット転送装置2bの「Port_Status」メッセージでは、「1」を示す。なお、「Port Description」内の他の項目に関する説明は省略する。
また、第1及び第2パケット転送装置2a,2bは、通信制御装置1の要求に応じて、ポート#1〜#3ごとの通信状態、つまり、パケットのエラー数及びロス数などの統計情報を、通信制御装置1に通知する。通信制御装置1は、例えば、通知された通信状態に基づいてエラーレートを算出し、パケットのエラーレートが閾値Kより大きい場合、信号劣化の障害を検出する。信号劣化の障害要因は、例えば通信ケーブルの劣化、またはポート#1〜#3の送受信器の故障などが挙げられる。
図5は、信号劣化が発生したときの通信システムの動作を示す構成図である。通信制御装置1は、第1及び第2パケット転送装置2a,2bに、通信状態情報(以下、「通信状態情報」と表記)を要求するため、制御メッセージMSGとして、「Stats_Request」メッセージを送信する。「Stats_Request」メッセージは、例えば一定の時間間隔をおいて送信される。
第1及び第2パケット転送装置2a,2bは、それぞれ、「Stats_Request」メッセージに応じて、指定されたポート#1〜#3から通信状態情報を取得し、「Stats_Reply」メッセージに収容して、通信制御装置1に送信する。通信制御装置1は、「Stats_Reply」メッセージに含まれる通信状態情報に基づいて、信号劣化の障害を検出する。なお、「Stats_Reply」メッセージは、「Stats_Request」メッセージの受信に依らず、例えば一定の時間間隔をおいて送信されてもよい。
図6(a)及び図6(b)には、「Stats_Request」メッセージの構成及び例がそれぞれ示されている。図6(a)に示されるように、「Stats_Request」メッセージは、「Version」、「Type」、「Message Length」、「Transaction ID」、「Stats Type」、「Flags」、及び「Port Stats Request」の各領域を含む。
「Stats Type」は、要求する通信状態の種別を示す。「Flags」は、要求する通信状態のフラグを示す。「Port Stats Request」は、要求する通信状態の内容を示す。
図6(b)は、第1パケット転送装置2aが受信する「Stats_Request」メッセージの例を示す。本例において、「Type」は、「16」(=「Stats_Request」)を示す。また、「Type」(「Stats Type」)は、「4」(=ポートの統計情報(「PFPST_PORT」))を示し、「Flags」は、「0」(=フラグなし)を示す。
また、「Port Stats Request」内の「Port No」は、通信状態の要求対象となるポートの識別番号(「1」〜「4」)を示す。本例では、ポート#2に対応する通信経路R2の障害を検出するため、「Port No」は「2」を示す。ここで、「Port No」は、第2パケット転送装置2bの「Port_Status」メッセージでは、「1」を示す。なお、「Port Stats Request」内の他の項目に関する説明は省略する。
図7(a)及び図7(b)には、「Stats_Reply」メッセージの構成及び例がそれぞれ示されている。図7(a)に示されるように、「Stats_Reply」メッセージは、「Version」、「Type」、「Message Length」、「Transaction ID」、「Stats Type」、「Flags」、及び「Port Stats」の各領域を含む。なお、「Stats_Reply」メッセージは、送信元のパケット転送装置2a,2bを示す送信元情報(図示せず)が付与される。
「Stats Type」及び「Flags」の内容は、「Stats_Request」メッセージの場合と同様である。「Port Stats」は、指定されたポート#1〜#3の通信状態を示す。
図7(b)は、第1パケット転送装置2aが送信する「Stats_Reply」メッセージの例を示す。本例において、「Type」は、「17」(=「Stats_Reply」)を示す。また、「Type」(「Stats Type」)は、「4」(=ポートの統計情報(「PFPST_PORT」))を示し、「Flags」は、「0」(=フラグなし)を示す。
また、「Port Stats」内の「Port No」は、通信状態の情報の取得元のポートの識別番号(「1」〜「4」)を示す。本例では、ポート#2に対応する通信経路R2の障害を検出するため、「Port No」は「2」を示す。ここで、「Port No」は、第2パケット転送装置2bの「Port_Status」メッセージでは、「1」を示す。
「Port Stats」内の「rx_packets」及び「tx_packets」は、指定ポート#1〜#3の受信パケット数及び送信パケット数をそれぞれ示し、「rx_bytes」及び「tx_bytes」は、指定ポート#1〜#3の受信バイト数及び送信バイト数をそれぞれ示す。「rx_dropped」及び「tx_ dropped」は、指定ポート#1〜#3の受信パケットのロス数及び送信パケットの損失数をそれぞれ示し、「rx_errors」及び「tx_errors」は、指定ポート#1〜#3の受信パケットのエラー数及び送信パケットのエラー数をそれぞれ示す。なお、「Port Stats」内の他の項目に関する説明は省略する。
通信制御装置1は、通信経路R2に関する障害を検出すると、第1及び第2パケット転送装置2a,2bのフローテーブルから、通信経路R2に関するフロー設定を削除する。これにより、第1及び第2パケット転送装置2a,2bは、通信経路R2に出力されるパケットPKTを受信した場合、当該パケットPKTを制御メッセージMSGに収容して通信制御装置1に転送する。
図8は、フロー設定を削除するときの通信システムの動作を示す構成図である。通信制御装置1は、障害が発生した通信経路R2に応じたポート#2、#1に関するフロー設定の削除を、第1及び第2パケット転送装置2a,2bにそれぞれ指示する。フロー設定の削除指示は、第1及び第2パケット転送装置2a,2bに、制御メッセージMSGである「Flow_Mod」メッセージを送信することにより行われる。
第1及び第2パケット転送装置2a,2bは、通信制御装置1から「Flow_Mod」メッセージを受信すると、フローテーブルから、指定されたポート#2,#1に関するフロー設定をそれぞれ削除する。これにより、第1及び第2パケット転送装置2a,2bは、パケットPKTを指定ポート#2,#1から出力することができないので、後述するように、当該パケットPKTを制御メッセージMSGに収容して通信制御装置1に転送する。
図9には、フロー設定が削除されたフローテーブルの例が示されている。図9(a)及び図9(b)は、第1及び第2パケット転送装置2a,2bのフローテーブルをそれぞれ示す。
第1パケット転送装置2aのフローテーブルからは、障害が発生した通信経路R2に接続されたポート#2に関するフロー設定が削除される。このため、第1パケット転送装置2aは、フローテーブルから、端末装置#2,#4宛てのパケットPKTを出力するポートが検索できないので、制御メッセージMSGに収容した当該パケットPKTを通信制御装置1に転送する。
第2パケット転送装置2bのフローテーブルからは、障害が発生した通信経路R2に接続されたポート#1に関するフロー設定が削除される。このため、第2パケット転送装置2bは、フローテーブルから、端末装置#1,#3宛てのパケットPKTを出力するポートが検索できないので、制御メッセージMSGに収容した当該パケットPKTを通信制御装置1に転送する。
このように、通信制御装置1は、通信経路の障害が検出されたパケット転送装置2a,2bから自装置1にパケットが転送されるように、フローテーブルから、障害が発生した通信経路R2に関するフロー設定を削除する。したがって、通信制御装置1は、フローテーブルの簡単な設定変更により、パケット転送装置2a,2bからパケットPKTを受信できる。
図10(a)及び図10(b)には、「Flow_Mod」メッセージの構成及び例がそれぞれ示されている。図10(a)に示されるように、「Flow_Mod」メッセージは、「Version」、「Type」、「Message Length」、「Transaction ID」、「Match」、「Cookie」、及び「Command」の各領域を含む。「Flow_Mod」メッセージは、さらに、「Idle Timeout」、「Hard Timeout」、「Priority」、「Buffer ID」、「Output Port」、及び「Flags」の各領域を含む。
「Match」は、フローテーブルの変更項目を示す。「Cookie」は、クッキー(通信制御装置1が自由に設定可能)を示す。「Command」は、フローテーブルの変更内容を示す。「Idle Timeout」は、フロー設定に応じたパケットが受信されない場合に、当該フロー設定を自動的に削除するまでの時間(パケットの監視タイマの満了時間)を示す。「Hard Timeout」は、フロー設定の追加から一定時間が経過することにより、当該フロー設定が自動的に削除されるまでの当該時間(フロー設定の監視タイマの満了時間)を示す。「Priority」は、共通のフロー設定に応じた複数のパケット(フロー)を受信した場合のパケットの優先度を示す。「Buffer ID」は、パケット転送装置2a,2bにおいてパケットを格納するバッファの識別番号を示す。
「Output Port」は、変更対象となるフローテーブル内のポート番号を示す。「Flags」は、フローのフラグを示す。
図10(b)は、第1パケット転送装置2aが受信する「Flow_Mod」メッセージの例を示す。本例において、「Type」は、「14」(=「Flow_Mod」)を示し、「Match」は、「0x003fffff」(=全項目)を示す。
また、「Command」は、「3」(=削除(「Delete」))を示し、「Output Port」は、「2」(=ポート#2)を示す。すなわち、この「Flow_Mod」メッセージは、ポート番号が「2」の全てのフロー設定の削除命令を意味する。ここで、「Output Port」は、第2パケット転送装置2bの「Flow_Mod」メッセージでは、「1」を示す。
また、「Flow_Mod」メッセージにおいて、「Command」を「0」(=追加「Add」)とすることにより、フローテーブルに、「Output Port」により指定されたポートに関する新たなフロー設定を追加することも可能である。なお、「Flow_Mod」メッセージ内の他の項目に関する説明は省略する。
第1及び第2パケット転送装置2a,2bは、フローテーブルにフロー設定が登録されていないパケットPKTを受信すると、当該パケットPKTを制御メッセージMSGに収容して、通信制御装置1に転送する。通信制御装置1は、制御メッセージMSGに収容されたパケットPKTを受信すると、当該パケットPKTを、他の制御メッセージMSGに収容して、障害が発生した通信経路R2の先にある他のパケット転送装置2a,2bに送信する。これにより、パケットPKTは、障害が発生した通信経路R2を迂回して、宛先の端末装置#1,#2に到達する。
図11は、パケットPKTに、障害が発生した通信経路R2を迂回させるときの通信システムの動作を示す構成図である。第1パケット転送装置2aは、例えば、端末装置#2宛てのパケットPKTを受信したとき、当該パケットPKTを、制御メッセージMSGである「Packt_In」メッセージに収容して、通信制御装置1に転送する。
図8を参照して説明したように、第1パケット転送装置2aは、通信制御装置1の指示に従って、フローテーブルからポート#2に関するフロー設定を削除済みである。このため、第1パケット転送装置2aのフローテーブルには、端末装置#2のIPアドレス「192.168.1.2」を宛先IPアドレスとするフロー設定が存在しない(図9参照)。
したがって、第1パケット転送装置2aは、フローテーブルから、端末装置#2宛てのパケットPKTに対応するポート番号を検索できず、出力先のポートが不明なパケットとして、当該パケットPKTを収容した「Packt_In」メッセージを通信制御装置1に送信する。
このように、通信制御装置1は、第1パケット転送装置2aから、「Packt_In」メッセージに収容されたパケットPKTが転送される。このため、通信制御装置1は、通信回線(通信経路R1〜R5)とは異なるインターフェースを有する制御回線(通信経路R11)を介して、パケットPKTを受信できる。
通信制御装置1は、「Packt_In」メッセージを受信すると、「Packt_In」メッセージからパケットPKTを取り出し、制御メッセージMSGである「Packet_Out」メッセージに収容して、第2パケット転送装置2bに送信する。これにより、パケットPKTは、障害が発生した通信経路R2を迂回する。
第2パケット転送装置2bは、「Packt_Out」メッセージを受信すると、「Packt_Out」メッセージからパケットPKTを取り出し、フローテーブルに基づき、宛先の端末装置#2に送信する。
また、第2パケット転送装置2bは、第1パケット転送装置2aと同様に、端末装置#1宛てのパケットPKTを受信したとき、当該パケットPKTを、制御メッセージMSGである「Packt_In」メッセージに収容して、通信制御装置1に転送する。これは、第2パケット転送装置2bのフローテーブルには、端末装置#1のIPアドレス「192.168.1.1」を宛先IPアドレスとするフロー設定が存在しないためである(図9参照)。
通信制御装置1は、第2パケット転送装置2bから受信した「Packt_In」メッセージからパケットPKTを取り出し、「Packet_Out」メッセージに収容して、第1パケット転送装置2aに送信する。第1パケット転送装置2aは、通信制御装置1から受信した「Packt_Out」メッセージからパケットPKTを取り出し、フローテーブルに基づき、宛先の端末装置#1に送信する。
このように、通信制御装置1は、第1及び第2パケット転送装置2a,2bのフロー設定、つまり経路設定を変更することにより、障害が発生した通信経路R2の迂回経路を形成する。したがって、第1及び第2パケット転送装置2a,2bの間の通信が中断することが防止される。
図12(a)及び図12(b)には、「Packet_In」メッセージの構成及び例がそれぞれ示されている。図12(a)に示されるように、「Packet_In」メッセージは、「Version」、「Type」、「Message Length」、「Transaction ID」、「Buffer_ID」、「Frame Length」、及び「Frame Receive Port」の各領域を含む。「Packet_In」メッセージは、さらに、「Reason」、「reserved」、及び「Frame Data」の各領域を含む。なお、「Packet_In」メッセージは、送信元のパケット転送装置2a,2bを示す送信元情報(図示せず)が付与される。
「Buffer ID」は、パケット転送装置2a,2bにおいてパケットを格納するバッファの識別番号を示す。「Frame Length」は、パケットPKTのデータ量(パケット長)を示す。「Frame Receive Port」は、パケットPKTを受信したポート#1〜#3のポート番号を示す。「Reason」は、「Packet_In」メッセージの出力要因を示す。「Reserved」は、機能拡張に備えた予備の領域である。「Frame Data」は、収容対象のパケットPKTのデータである。
図12(b)は、第1パケット転送装置2aが送信する「Packet_In」メッセージの例を示す。本例において、「Type」は、「10」(=「Packet_In」)を示し、「Reason」は、「0」(=該当フロー無し(「No matching flow」))を示す。また、「Frame Receive Port」は、「1」(=ポート#1)を示し、「Frame Data」には、パケットPKTのデータが収容される。ここで、「Frame Receive Port」は、第2パケット転送装置2bの「Packet_In」メッセージでは、「2」を示す。なお、「Packet_In」メッセージ内の他の項目に関する説明は省略する。
図13(a)及び図13(b)には、「Packet_Out」メッセージの構成及び例がそれぞれ示されている。図13(a)に示されるように、「Packet_Out」メッセージは、「Version」、「Type」、「Message Length」、「Transaction ID」、「Buffer_ID」、「Frame Length」、及び「Frame Receive Port」の各領域を含む。「Packet_Out」メッセージは、さらに、「Action Length」、「Action Description」、及び「Frame Data」の各領域を含む。
「Buffer ID」は、パケット転送装置2a,2bにおいてパケットを格納するバッファの識別番号を示す。「Frame Receive Port」は、パケットPKTを受信したポート#1〜#3のポート番号を示す。「Action Length」は、アクション情報(「Action Description」)のサイズを示す。「Action Description」は、パケットの処理内容や、パケットPKTを出力するポート#1〜#3のポート番号などを示す。「Frame Data」は、収容対象のパケットPKTのデータである。
図13(b)は、第2パケット転送装置2bに送信される「Packet_Out」メッセージの例を示す。本例において、「Type」は、「13」(=「Packet_Out」)を示す。また、「Action Description」内の「Type」は、「0」(=指定ポートからのパケットの出力(「Output to switch port」))を示し、「Output Port」は、「2」(=ポート#2)を示す。ここで、「Output Port」は、第1パケット転送装置2aに送信される「Packet_Out」メッセージでは、「1」(=ポート#1)を示す。
また、「Frame Data」には、パケットPKTのデータが収容される。なお、「Packet_Out」メッセージ内の他の項目に関する説明は省略する。
上述した動作例では、通信経路R2の障害として、リンクダウン及び信号劣化を挙げたが、これに限定されない。例えば、通信経路R2に大量のパケットPKTが一度に出力されることにより、通信経路R2に輻輳が生じた場合も、障害として処理することができる。
この場合、通信制御装置1は、「Stats_Reply」メッセージに含まれるパケットロス数(「rx_dropped」など)に基づいてロスレートを算出し、ロスレートが所定の閾値を超えたとき、パケット転送装置2a,2bに「Flow_Mod」メッセージを送信する。これにより、上述した内容と同様の効果が得られる。
(通信制御装置の構成)
次に通信制御装置1の構成を説明する。
図14は、実施例に係る通信制御装置1を示す構成図である。通信制御装置1は、CPU(Central Processing Unit)10、ROM(Read Only Memory)11、RAM(Random Access Memory)12、HDD(Hard Disk Drive)13、及び通信処理部14などを備える。
CPU10は、演算処理手段であり、プログラムに従って、上述した通信方法を実行する。CPU10は、各部11〜14とバス18を介して接続されている。RAM12は、CPU10のワーキングメモリとして用いられる。また、ROM11及びHDD13は、CPU10を動作させるプログラムやフローテーブルなどを記憶する記憶手段として用いられる。
通信処理部14は、例えばPHY(Physical)レイヤ及びMAC(Media Access Control)レイヤの各機能を有し、LANなどのネットワークを介して、第1及び第2パケット転送装置2a,2bと通信を行う通信手段である。通信処理部14は、第1及び第2パケット転送装置2a,2bとの間で制御メッセージMSGを交換することにより、第1及び第2パケット転送装置2a,2bと通信する。
CPU10は、ROM11、またはHDD13などに格納されているプログラムを実行する。このプログラムには、OS(Operating System)だけでなく、上述した通信方法を実行するプログラムも含まれる。CPU10は、プログラムを実行すると、複数の機能が形成される。
図15は、通信制御装置の機能構成を示す構成図である。図15には、CPU10に形成される機能及びHDD13の格納情報の一例が示されている。
CPU10は、経路設定処理部(設定処理部)100と、障害検出部(検出部)101と、転送制御部102と、制御メッセージ処理部103とを有する。また、HDDは、ネットワーク(NW)構成情報130及びネットワーク(NW)障害情報131などを記憶する。
制御メッセージ処理部103は、通信処理部14を介して第1及び第2パケット転送装置2a,2bと通信する。制御メッセージ処理部103は、経路設定処理部100、障害検出部101、及び転送制御部102の指示に従って、各種の制御メッセージMSGを生成し、第1及び第2パケット転送装置2a,2bに送信する。また、制御メッセージ処理部103は、第1及び第2パケット転送装置2a,2bから各種の制御メッセージMSGを受信して、経路設定処理部100、障害検出部101、及び転送制御部102に出力する。
障害検出部101は、第1及び第2パケット転送装置2a,2bから通信経路R1〜R5の障害を検出する。より具体的には、障害検出部101は、上記の「Port_Status」メッセージに基づいてリンクダウンを検出する。また、障害検出部101は、例えば一定の時間間隔で上記の「Stats_Request」メッセージを、制御メッセージ処理部103に生成させ、その応答である上記の「Stats_Reply」メッセージに基づいて信号劣化を検出する。なお、上述したように、障害検出部101は、さらに、「Stats_Reply」メッセージに基づいて、通信経路R1〜R5の輻輳を障害として検出してもよい。
障害検出部101は、検出したリンクダウン及び信号劣化に基づいて、NW障害情報131を更新する。NW障害情報131は、通信経路R1〜R5ごとの障害を示す。上述した動作例において、NW障害情報131は、通信経路R2にリンクダウンまたは信号劣化が発生したことを示す。
NW構成情報130は、第1及び第2パケット転送装置2a,2b及び端末装置#1〜#4を含むネットワークの構成を示す。NW構成情報130は、例えば、ネットワークのノードごとに配置される通信装置(第1及び第2パケット転送装置2a,2b及び端末装置#1〜#4など)の識別情報と、通信装置間を結ぶ通信経路R1〜R5の接続構成とを示す。
通信装置の識別情報としては、IPアドレスやMACアドレスなどが挙げられるが、限定はない。また、NW構成情報130は、パケット転送装置2a,2bのフローテーブル210に一致するパケットの経路情報を含む。なお、NW構成情報130は、ネットワーク内の各通信装置から収集した情報に基づいて形成されてもよいし、操作者から通信制御装置1に入力された情報に基づいて形成されてもよい。
経路設定処理部100は、第1及び第2パケット転送装置2a,2bにパケットPKTの通信経路R1〜R5を設定する。より具体的には、経路設定処理部100は、NW構成情報130に基づいて、第1及び第2パケット転送装置2a,2bのフローテーブルを設定する。フローテーブルの設定内容は、制御メッセージ処理部103により生成される制御メッセージMSGに収容されて、第1及び第2パケット転送装置2a,2bに送信される。
障害検出部101は、通信経路R1〜R5の障害を検出したとき、経路設定処理部100に障害発生通知を出力する。経路設定処理部100は、障害発生通知を受けたとき、NW障害情報131を参照し、ネットワーク内の通信装置のうち、当該障害が検出された第1及び第2パケット転送装置2a,2bを特定する。また、経路設定処理部100は、NW障害情報131に基づいて、障害が発生した通信経路R1〜R5を迂回可能な経路の有無を判定する。
経路設定処理部100は、当該迂回経路が無い場合、特定された第1及び第2パケット転送装置2a,2bから通信処理部14にパケットが転送されるように、当該第1及び第2パケット転送装置2a,2bの通信経路R1〜R5のフロー設定を変更する。また、経路設定処理部100は、NW構成情報130から、障害が発生した通信経路R1〜R5の設定を削除する。
より具体的には、経路設定処理部100は、フローテーブルから、障害が発生した通信経路R1〜R5に関するフロー設定を削除する。上述した動作例の場合、経路設定処理部100は、第1及び第2パケット転送装置2a,2bのフローテーブルから、通信経路R2に関するフロー設定を削除する。このとき、経路設定処理部100は、フロー設定を削除するために、制御メッセージ処理部103に上記の「Flow_Mod」メッセージの生成を指示する。
これにより、第1及び第2パケット転送装置2a,2bから通信処理部14に、上記の「Packt_In」メッセージに収容されたパケットPKTが転送される。通信処理部14は、「Packt_In」メッセージを転送制御部102に出力する。
転送制御部102は、「Packt_In」メッセージからパケットPKTを取得し、パケットPKTの宛先IPアドレス、NW障害情報131、及びNW構成情報130に基づいて、パケットPKTが、障害が発生した通信経路R1〜R5を経由するものか否かを判定する。つまり、転送制御部102は、パケットPKTが、上記のフロー設定の削除によりフローテーブルに該当するポート番号がなくなったために転送されたのか否かを判定する。
転送制御部102は、パケットPKTが、障害が発生した通信経路R1〜R5を経由するものではない場合、NW構成情報130から、パケットPKTが出力されるポート#1〜#3の番号を検索する。そして、転送制御部102は、制御メッセージ処理部103に、当該ポート番号を通知する制御メッセージMSGの生成を指示する。
また、転送制御部102は、パケットPKTが、障害が発生した通信経路R1〜R5を経由するものである場合、NW構成情報130から、当該障害が発生した通信経路R1〜R5の先にある他の第1及び第2パケット転送装置2a,2bを検索する。そして、転送制御部102は、当該パケットPKTを収容した上記の「Packet_Out」メッセージの生成を指示する。このとき、転送制御部102は、「Packet_Out」メッセージの宛先として、検索した第1及び第2パケット転送装置2a,2bを指定する。
これにより、通信処理部14は、第1及び第2パケット転送装置2a,2bから転送されたパケットPKTが、障害が発生した通信経路R1〜R5を迂回するように、該パケットPKTを他の第1及び第2パケット転送装置2a,2bに送信する。上述した動作例において、通信処理部14は、第1パケット転送装置2aから転送されたパケットPKTが、障害が発生した通信経路R2を迂回するように、該パケットPKTを第2パケット転送装置2bに送信する。また、通信処理部14は、第2パケット転送装置2bから転送されたパケットPKTが、障害が発生した通信経路R2を迂回するように、該パケットPKTを第1パケット転送装置2aに送信する。
(パケット転送装置の構成)
次に第1及び第2パケット転送装置2a,2bの構成を説明する。
図16は、パケット転送装置2a,2bを示す構成図である。パケット転送装置2a,2bは、CPU20、ROM21、RAM22、及び通信処理部24などを備える。パケット転送装置2a,2bは、さらに、通信処理部14に接続された上記のポート#1〜#3及び制御ポートを備える。
CPU20は、演算処理手段であり、プログラムに従って、上述した通信方法を実行する。CPU20は、各部21〜24とバス28を介して接続されている。RAM22は、CPU20のワーキングメモリとして用いられる。また、ROM21は、CPU20を動作させるプログラムやフローテーブルなどを記憶する記憶手段として用いられる。
通信処理部24は、例えばPHYレイヤ及びMACレイヤの各機能を有し、LANなどのネットワークを介して、通信制御装置1、他のパケット転送装置2a,2b、及び端末装置#1〜#4と通信を行う通信手段である。通信処理部24は、制御ポートを介して、通信制御装置1との間で制御メッセージMSGを交換することにより、通信制御装置1と通信する。また、通信処理部24は、ポート#1〜#3を介して、他のパケット転送装置2a,2b及び端末装置#1〜#4と通信する。
CPU20は、ROM21などに格納されているプログラムを実行する。このプログラムには、OSだけでなく、上述した通信方法を実行するプログラムも含まれる。CPU20は、プログラムを実行すると、複数の機能が形成される。
図17は、パケット転送装置2a,2bの機能構成を示す構成図である。図17には、CPU20に形成される機能及びROM21の格納情報の一例が示されている。
CPU20は、転送処理部200と、状態通知部(通知部)201と、フロー設定部202と、制御メッセージ処理部203とを有する。ROM21は、フローテーブル210を記憶する(図2参照)。
転送処理部200は、通信処理部23及びポート#1〜#3を介して他のパケット転送装置2a,2bまたは端末装置#1〜#4と通信する。転送処理部200は、通信制御装置1の経路設定処理部100によるフロー設定に応じた通信経路R1〜R5を介して、パケットPKTを転送する。より具体的には、転送処理部200は、フローテーブル210に基づいて、パケットPKTの宛先IPアドレスに応じたポート#1〜#3を介してパケットPKTを送信する。
制御メッセージ処理部203は、制御ポートを介して通信制御装置1と通信する。制御メッセージ処理部203は、転送処理部200及び状態通知部201の指示に従って、各種の制御メッセージMSGを生成し、通信制御装置1に送信する。また、制御メッセージ処理部203は、通信制御装置1から各種の制御メッセージMSGを受信して、状態通知部201及びフロー設定部202に出力する。
状態通知部201は、通信制御装置1の障害検出部101に通信経路R1〜R5の障害を通知する。状態通知部201は、通信処理部24から各ポート#1〜#3のリンク状態の情報を取得することにより、リンクダウンを検出する。状態通知部201は、リンクダウンを検出した場合、上記の「Port_Status」メッセージの生成を制御メッセージ処理部203に指示する。
また、状態通知部201は、通信制御装置1から上記の「Stats_Request」メッセージを受信したとき、転送処理部200から指定ポート#1〜#3の通信状態情報、つまり統計情報を取得する。状態通知部201は、統計情報を収容した上記の「Stats_Reply」メッセージの生成を制御メッセージ処理部203に指示する。
フロー設定部202は、初期設定処理において、通信制御装置1から制御メッセージMSGを受信して、ROM21にフローテーブル210を書き込む。また、フロー設定部202は、通信制御装置1から上記の「Flow_Mod」メッセージを受信したとき、フローテーブル210の内容を変更する。上述した動作例において、パケット転送装置2aのフロー設定部202は、「Flow_Mod」メッセージに従って、障害が発生した通信経路R2と接続されたポート#2に関するフロー設定を削除する(図9(a)参照)。
転送処理部200は、受信したパケットPKTの宛先IPアドレスに応じたフロー設定が、フローテーブル210に存在しない場合、当該パケットPKTを収容した上記の「Packet_In」メッセージの生成を、制御メッセージ処理部203に指示する。すなわち、制御メッセージ処理部203は、パケットPKTの宛先IPアドレスに対応するポート番号が、フローテーブル210に登録されていない場合、パケットPKTを「Packet_In」メッセージに収容して、通信制御装置1に転送する。
(通信処理)
次に、実施例に係る通信システムの通信処理の詳細を説明する。
図18は、通信制御装置1及びパケット転送装置2a,2bの間の通信の一例を示すラダーチャートである。図18は、上述した動作例において、通信制御装置1が、第1パケット転送装置2aから転送されたパケットPKTを、第2パケット転送装置2bに送信する場合を示す。
まず、第1パケット転送装置2aは、リンクダウンを通知するため、「Port_Status」メッセージを通信制御装置1に送信する(ステップS1)。次に、通信制御装置1は、障害が発生した通信経路R2に関するフロー設定の削除を指示するため、「Flow_Mod」メッセージを第1パケット転送装置2aに送信する(ステップS3)。
第1パケット転送装置2aは、フローテーブル210から、「Flow_Mod」メッセージにより指定されたフロー設定を削除する(ステップS3)。そして、第1パケット転送装置2aは、削除されたフロー設定に該当するパケットPKTを受信すると、当該パケットPKTを収容した「Packet_In」メッセージを、通信制御装置1に送信する(ステップS4)。
通信制御装置1は、受信した「Packet_In」メッセージからパケットPKTを取り出し、「Packet_Out」メッセージに収容して、第2パケット転送装置2bに送信する(ステップS5)。このようにして、通信制御装置1及びパケット転送装置2a,2b間の通信は行われる。なお、通信制御装置1が、第2パケット転送装置2bから転送されたパケットPKTを、第1パケット転送装置2aに送信する場合も、同様の通信が行われる。
また、図19は、通信制御装置及びパケット転送装置の間の通信の他例を示すラダーチャートである。図19において、図18と共通の処理については、同一の符号を付し、その説明を省略する。
まず、通信制御装置1は、第1パケット転送装置2aに通信状態情報(パケットの統計情報)を要求するため、「Stats_Request」メッセージを第1パケット転送装置2aに送信する(ステップS1a)。第1パケット転送装置2aは、「Stats_Request」メッセージに応じて通信状態情報を返信するため、「Stats_Reply」メッセージを通信制御装置1に送信する(ステップS1b)。以降の通信処理は、図18を参照して述べたとおりである。
また、通信制御装置1が、第2パケット転送装置2bから転送されたパケットPKTを、第1パケット転送装置2aに送信する場合も、上述した内容と同様の通信が行われる。なお、図18及び図19では、障害として、リンクダウン及び信号劣化を挙げたが、通信経路R1〜R5の輻輳が発生した場合も同様の通信処理が行われる。
次に、上述した通信処理において実行される各処理を個別に説明する。
図20は、パケット転送装置2a,2bにおけるリンクダウンの通知処理を示すフローチャートである。図20に示された処理は、例えば一定の時間間隔をおいて繰り返し実行される。
状態通知部201が、ポート#1〜#3の1つからリンクダウンの発生を検出した場合(ステップSt1のYes)、制御メッセージ処理部203は、「Port_Status」メッセージを生成する(ステップSt2)。次に、通信処理部24は、制御ポートを介して、通信制御装置1に「Port_Status」メッセージを送信する(ステップSt3)。
一方、状態通知部201が、リンクダウンを検出しない場合(ステップSt1のNo)、処理を終了する。このようにして、リンクダウンの通知処理は行われる。
図21は、パケット転送装置2a,2bにおける通信状態の通知処理を示すフローチャートである。図21に示された処理は、例えば一定の時間間隔をおいて繰り返し実行される。
まず、状態通知部201は、通信制御装置1から「Status_Request」メッセージを受信したか否かを判定する(ステップSt11)。状態通知部201は、「Status_Request」メッセージを受信していない場合(ステップSt11のNo)、処理を終了する。
一方、状態通知部201が、「Status_Request」メッセージを受信した場合(ステップSt11のYes)、制御メッセージ処理部203は、転送処理部200から通信状態情報(統計情報)を取得する(ステップSt12)。次に、制御メッセージ処理部203は、通信状態情報を含む「Status_Reply」メッセージを生成する(ステップSt13)。
次に、通信処理部24は、制御ポートを介して、通信制御装置1に「Status_Reply」メッセージを送信する(ステップSt14)。このようにして、通信状態の通知処理は行われる。
図22は、通信制御装置1におけるフロー設定の削除処理を示すフローチャートである。図22に示された処理は、例えば一定の時間間隔をおいて繰り返し実行される。
まず、障害検出部101は、リンクダウンを検出したか否かを判定する(ステップSt31)。このとき、障害検出部101は、「Port_Status」メッセージに基づいて、リンクダウンの発生の有無を判定する。
障害検出部101は、リンクダウンを検出していない場合(ステップSt31のNo)、パケット転送装置2a,2bの通信状態の情報に基づいて、パケット転送装置2a,2bのエラーレートが所定の閾値Kより大きいか否かを判定する(ステップSt32)。このとき。障害検出部101は、「Status_Reply」メッセージに含まれる通信状態情報(統計情報)に基づいて、エラーレートを算出する。障害検出部101は、エラーレートが所定の閾値K以下である場合(ステップSt33のNo)、処理を終了する。
リンクダウンが検出された場合(ステップSt31のYes)またはエラーレートが所定の閾値Kより大きい場合(ステップSt33のYes)、経路設定処理部100は、障害が発生した通信経路R1〜R5を迂回可能な経路の有無を判定する(ステップSt33)。このとき、経路設定処理部100は、NW構成情報130から迂回経路を検索する。
経路設定処理部100は、迂回可能な経路が有る場合(ステップSt33のYes)、処理を終了する。なお、この場合、他の処理において、フローテーブル210内の当該フロー設定を、当該迂回経路を用いた設定に更新するための制御メッセージMSGが、パケット転送装置2a,2bに送信される。
経路設定処理部100は、迂回可能な経路が無い場合(ステップSt33のNo)、NW構成情報130から、障害が発生した通信経路を含む経路情報を削除する(ステップSt34)。次に、制御メッセージ処理部203は、フローテーブル210から当該フロー設定を削除するための「Flow_Mod」メッセージを生成する(ステップSt35)。
次に、通信処理部24は、「Flow_Mod」メッセージをパケット転送装置2a,2bに送信する(ステップSt36)。このようにして、フロー設定の削除処理は行われる。
なお、図22では、検出対象となる通信経路R1〜R5の障害として、リンクダウン及び信号劣化を挙げたが、これに限定されず、通信経路R1〜R5の輻輳も検出対象としてもよい。この場合、障害検出部101は、「Stats_Reply」メッセージに含まれるパケットロス数(「rx_dropped」など)に基づいてロスレートを算出し、ロスレートが所定の閾値を超えたとき、輻輳の障害を検出する。このとき、迂回可能な経路が無ければ(ステップSt33のNo)、「Flow_Mod」メッセージがパケット転送装置2a,2bに送信される。
図23は、パケット転送装置2a,2bにおけるフロー設定の削除処理を示すフローチャートである。図23に示された処理は、例えば一定の時間間隔をおいて繰り返し実行される。
フロー設定部202は、「Flow_Mod」メッセージを受信したか否かを判定する(ステップSt41)。フロー設定部202は、「Flow_Mod」メッセージを受信していない場合(ステップSt41のNo)、処理を終了する。
フロー設定部202は、「Flow_Mod」メッセージを受信した場合(ステップSt41のYes)、フローテーブル210から、該当するフロー設定を削除する(ステップSt42)。このようにして、フロー設定の削除処理は行われる。
図24は、パケット転送装置2a,2bにおけるパケットPKTの転送処理を示すフローチャートである。図24に示された処理は、例えば一定の時間間隔をおいて繰り返し実行される。
まず、転送処理部200は、パケットPKTを受信したか否かを判定する(ステップSt51)。転送処理部200は、パケットPKTを受信していない場合(ステップSt51のNo)、処理を終了する。
転送処理部200は、パケットPKTを受信した場合(ステップSt51のYes)、フローテーブル210に、パケットPKTの宛先IPアドレスに対応するポート番号(1〜3)の有無を判定する(ステップSt52)。パケットPKTの宛先IPアドレスに対応するポート番号が有る場合(ステップSt52のYes)、通信処理部24は、当該ポート#1〜#3を介してパケットPKTを送信し(ステップSt55)、処理を終了する。
パケットPKTの宛先IPアドレスに対応するポート番号が無い場合(ステップSt52のNo)、制御メッセージ処理部203は、パケットPKTを収容した「Packet_In」メッセージを生成する(ステップSt53)。次に、通信制御装置1は、「Packet_In」メッセージを通信制御装置1に送信する(ステップSt54)。このようにして、パケットPKTの転送処理は行われる。
図25は、通信制御装置1におけるパケットPKTの送信処理を示すフローチャートである。図25に示された処理は、例えば一定の時間間隔をおいて繰り返し実行される。
まず、転送制御部102は、パケット転送装置2a,2bから「Packet_In」メッセージを受信したか否かを判定する(ステップSt61)。転送制御部102は、「Packet_In」メッセージを受信していない場合(ステップSt61のNo)、処理を終了する。
転送制御部102は、「Packet_In」メッセージを受信した場合(ステップSt61のYes)、「Packet_In」メッセージからパケットPKTを取得する(ステップSt62)。次に、転送制御部102は、パケットPKTの宛先IPアドレス、NW障害情報131、及びNW構成情報130に基づいて、取得したパケットPKTが、障害が発生した通信経路を経由するものか否かを判定する(ステップSt63)。
転送制御部102は、パケットPKTが、障害が発生した通信経路を経由するものではない場合(ステップSt63のNo)、パケット転送装置2a,2bに、パケットPKTを出力するポートのポート番号を通知する(ステップSt67)。ここで、ポート番号の通知は、制御メッセージMSGにより行われる。その後、転送制御部102は、処理を終了する。
転送制御部102は、パケットPKTが、障害が発生した通信経路を経由するものである場合(ステップSt63のYes)、「Packet_In」メッセージの送信元装置から見て、当該通信経路の先にある他のパケット転送装置2a,2bを検索する(ステップSt64)。上述した動作例において、「Packet_In」メッセージの送信元である第1パケット転送装置2aから見て、障害が発生した通信経路R2の先にある第2パケット転送装置2bが検索される。また、同様に、「Packet_In」メッセージの送信元である第2パケット転送装置2bから見て、障害が発生した通信経路R2の先にある第1パケット転送装置2aが検索される。
次に、制御メッセージ処理部103は、パケットPKTを収容した「Packet_Out」メッセージを生成する(ステップSt65)。次に、通信処理部14は、「Packet_Out」メッセージを、ステップSt64の処理において検索されたパケット転送装置2a,2bに送信する(ステップSt66)。このようにして、パケットPKTの送信処理は行われる。
この処理により、通信処理部14は、パケット転送装置2a,2bから転送されたパケットPKTが、障害が発生した通信経路を迂回するように、該パケットPKTを他のパケット転送装置2b,2aに送信する。したがって、上述した動作例のように、第1及び第2パケット転送装置2a,2b間を結ぶ通信経路R2に障害が発生しても、通信制御装置1を介して、第1及び第2パケット転送装置2a,2b間の通信が継続される。
これまで述べたように、通信制御装置1は、複数の通信装置(パケット転送装置)2a,2b間のパケットPKTの通信経路R1〜R5を制御する。通信制御装置1は、設定処理部(経路設定処理部)100と、検出部(障害検出部)101と、通信処理部14とを有する。
設定処理部100は、複数の通信装置2a,2bにパケットPKTの通信経路R1〜R5を設定する。検出部101は、複数の通信装置2a,2bから通信経路R1〜R5の障害を検出する。通信処理部14は、複数の通信装置2a,2bと通信する。
設定処理部100は、複数の通信装置2a,2bのうち、検出部101により通信経路R1〜R5の障害が検出された通信装置から通信処理部14にパケットPKTが転送されるように、当該通信装置の通信経路R1〜R5の設定を変更する。通信処理部14は、転送されたパケットPKTが、障害が発生した通信経路R1〜R5を迂回するように、該パケットPKTを他の通信装置2a,2bに送信する。
したがって、通信装置2a,2bは、通信経路R1〜R5に障害が発生した場合、パケットPKTが当該通信経路を迂回するように、パケットPKTを、通信制御装置1を介して、他の通信装置2b,2aに転送できる。このため、複数の通信装置2a,2b間における通信の中断が防止される。
また、実施例に係る通信システムは、複数の通信装置(パケット転送装置)2a,2bと、複数の通信装置2a,2b間のパケットPKTの通信経路R1〜R5を制御する通信制御装置1とを有する。通信制御装置1は、設定処理部(経路設定処理部)100と、検出部(障害検出部)101と、通信処理部14とを有する。
設定処理部100は、複数の通信装置2a,2bにパケットPKTの通信経路R1〜R5を設定する。検出部101は、複数の通信装置2a,2bから通信経路R1〜R5の障害を検出する。通信処理部14は、複数の通信装置2a,2bと通信する。
複数の通信装置2a,2bは、それぞれ、転送処理部200と、通知部(状態通知部)201とを有する。転送処理部200は、設定処理部100による設定に応じた通信経路R1〜R5を介して、パケットPKTを転送する。通知部201は、検出部101に通信経路R1〜R5の障害を通知する。
設定処理部100は、複数の通信装置2a,2bのうち、検出部101により通信経路R1〜R5の障害が検出された通信装置の転送処理部200から通信処理部14にパケットPKTが転送されるように、当該通信装置の通信経路R1〜R5の設定を変更する。通信処理部14は、転送されたパケットPKTが、障害が発生した通信経路R1〜R5を迂回するように、該パケットPKTを他の通信装置2a,2bに送信する。
実施例に係る通信システムは、上記の通信制御装置1の構成を含むので、上述した内容と同様の作用効果を奏する。
また、実施例に係る通信方法は、複数の通信装置(パケット転送装置)2a,2b間のパケットPKTの通信経路R1〜R5を制御する通信制御装置1を用いる方法であり、以下の工程を含む。
工程(1):複数の通信装置2a,2bに通信経路R1〜R5を設定する。
工程(2):複数の通信装置2a,2bから通信経路R1〜R5の障害を検出したとき、複数の通信装置2a,2bのうち、通信経路の障害が検出された通信装置から通信制御装置1にパケットが転送されるように、当該通信装置の通信経路R1〜R5の設定を変更する。
工程(3):転送されたパケットPKTが、障害が発生した通信経路R1〜R5を迂回するように、該パケットを他の通信装置2a,2bに送信する。
実施例に係る通信方法は、上記の通信制御装置1と同様の構成を含むので、上述した内容と同様の作用効果を奏する。
以上、好ましい実施例を参照して本発明の内容を具体的に説明したが、本発明の基本的技術思想及び教示に基づいて、当業者であれば、種々の変形態様を採り得ることは自明である。
なお、以上の説明に関して更に以下の付記を開示する。
(付記1) 複数の通信装置間のパケットの通信経路を制御する通信制御装置において、
前記複数の通信装置に前記通信経路を設定する設定処理部と、
前記複数の通信装置から前記通信経路の障害を検出する検出部と、
前記複数の通信装置と通信する通信処理部とを有し、
前記設定処理部は、前記複数の通信装置のうち、前記検出部により前記通信経路の障害が検出された通信装置から前記通信処理部にパケットが転送されるように、当該通信装置の前記通信経路の設定を変更し、
前記通信処理部は、転送されたパケットが、障害が発生した前記通信経路を迂回するように、該パケットを他の通信装置に送信することを特徴とする通信制御装置。
(付記2) 前記通信処理部は、前記複数の通信装置との間で制御メッセージを交換することにより、前記複数の通信装置と通信し、前記複数の通信装置のうち、前記検出部により前記通信経路の障害が検出された通信装置から、前記制御メッセージに収容されたパケットが転送されることを特徴とする付記1に記載の通信制御装置。
(付記3) 前記設定処理部は、
パケットの宛先及び通信経路の対応関係を示すテーブルを、前記複数の通信装置にそれぞれ設定し、
前記複数の通信装置のうち、前記検出部により前記通信経路の障害が検出された通信装置から前記通信処理部にパケットが転送されるように、前記テーブルから、障害が発生した前記通信経路に関する設定を削除することを特徴とする付記1または2に記載の通信制御装置。
(付記4) 複数の通信装置と、前記複数の通信装置間のパケットの通信経路を制御する通信制御装置とを有する通信システムにおいて、
前記通信制御装置は、
前記複数の通信装置に前記通信経路を設定する設定処理部と、
前記複数の通信装置から前記通信経路の障害を検出する検出部と、
前記複数の通信装置と通信する通信処理部とを有し、
前記複数の通信装置は、それぞれ、
前記設定処理部による設定に応じた前記通信経路を介して、パケットを転送する転送処理部と、
前記検出部に前記通信経路の障害を通知する通知部とを有し、
前記設定処理部は、前記複数の通信装置のうち、前記検出部により前記通信経路の障害が検出された通信装置の前記転送処理部から前記通信処理部にパケットが転送されるように、当該通信装置の前記通信経路の設定を変更し、
前記通信処理部は、転送されたパケットが、障害が発生した前記通信経路を迂回するように、該パケットを他の通信装置に送信することを特徴とする通信システム。
(付記5) 前記通信処理部は、前記複数の通信装置との間で制御メッセージを交換することにより、前記複数の通信装置と通信し、前記複数の通信装置のうち、前記検出部により前記通信経路の障害が検出された通信装置の前記転送処理部から、前記制御メッセージに収容されたパケットが転送されることを特徴とする付記4に記載の通信システム。
(付記6) 前記設定処理部は、
パケットの宛先及び通信経路の対応関係を示すテーブルを、前記複数の通信装置にそれぞれ設定し、
前記複数の通信装置のうち、前記検出部により前記通信経路の障害が検出された通信装置の前記転送処理部から前記通信処理部にパケットが転送されるように、前記テーブルから、障害が発生した前記通信経路に関する設定を削除することを特徴とする付記4または5に記載の通信システム。
(付記7) 複数の通信装置間のパケットの通信経路を制御する通信制御装置を用いる通信方法において、
前記複数の通信装置に前記通信経路を設定し、
前記複数の通信装置から前記通信経路の障害を検出したとき、前記複数の通信装置のうち、前記通信経路の障害が検出された通信装置から前記通信制御装置にパケットが転送されるように、当該通信装置の前記通信経路の設定を変更し、
転送されたパケットが、障害が発生した前記通信経路を迂回するように、該パケットを他の通信装置に送信することを特徴とする通信方法。
(付記8) 前記通信制御装置は、前記複数の通信装置との間で制御メッセージを交換することにより、前記複数の通信装置と通信し、
前記複数の通信装置のうち、前記通信経路の障害が検出された通信装置は、前記制御メッセージに収容したパケットを前記通信制御装置に転送することを特徴とする付記7に記載の通信方法。
(付記9) 前記複数の通信装置に前記通信経路を設定する工程において、前記通信制御装置は、パケットの宛先及び通信経路の対応関係を示すテーブルを、前記複数の通信装置にそれぞれ設定し、
前記通信経路の設定を変更する工程において、前記通信制御装置は、前記複数の通信装置のうち、前記通信経路の障害が検出された通信装置から前記通信制御装置にパケットが転送されるように、前記テーブルから、障害が発生した前記通信経路に関する設定を削除することを特徴とする付記7または8に記載の通信方法。