(58)【調査した分野】(Int.Cl.,DB名)
IPネットワークにおいて複数のアプリケーションが動作する現用系モジュール及び予備系モジュールが搭載されたネットワーク装置であり、前記現用系モジュールが保持している情報を前記搭載された予備系モジュール及び他のネットワーク装置に搭載された現用系モジュールをそれぞれ表す被同期モジュールに対して同期させる前記ネットワーク装置であって、
同期元の前記現用系モジュールは、
当該モジュール内で同期させる必要のある複数のアプリケーションのデータを集約すると共に前記各アプリケーションからデータの同期のために送信された同期パケットを受信して当該同期パケットに同期のための情報を付与して前記同期パケットを前記被同期モジュールに転送させる制御を行う同期制御手段と、
前記同期のための情報が付与された同期パケットを通信ケーブルを介して前記被同期モジュールへ転送する送信手段と、を備え、
前記同期制御手段は、
アプリケーション毎の予め定められた順番で前記同期パケットを処理するためのアプリケーション固有の識別番号を前記同期パケットに付与する識別番号付与手段と、
前記同期パケットに付与された前記アプリケーションの識別番号ごとに、当該同期パケットに対してシーケンス番号を付与するシーケンス番号付与手段と、
前記アプリケーションの識別番号と当該アプリケーションの優先度とが対応付けられて予め登録された優先度テーブルに基づいて、前記同期パケットに付与された前記アプリケーションの識別番号を基に当該同期パケットの優先度を決定する優先度決定手段と、
前記送信手段に格納された同期パケットのシーケンス番号を送信済シーケンス番号として前記アプリケーションの識別番号ごとに登録する送信済シーケンス番号登録手段と、
前記被同期モジュールから、到達した同期パケットのシーケンス番号が通知されたときに、前記通知されたシーケンス番号と前記送信済シーケンス番号とを前記アプリケーションの識別番号ごとに照合して当該同期パケットの到達を確認する番号照合手段と、を有し、
前記被同期モジュールは、
前記同期元の現用系モジュールから受信した前記同期パケットに付与されているシーケンス番号を前記アプリケーションの識別番号ごとに取得するシーケンス番号取得手段と、
前記受信した同期パケットから取得されたシーケンス番号を到達済シーケンス番号として前記アプリケーションの識別番号ごとに登録する到達済シーケンス番号登録手段と、
前記アプリケーションの識別番号ごとに前記到達済シーケンス番号を前記現用系モジュールに通知する到達番号通知手段と、を有し、
前記識別番号付与手段は、前記集約された複数のアプリケーションからなるアプリケーション群を単位として、前記アプリケーション群に属する前記アプリケーションの同期パケット内に当該アプリケーションの識別番号を付与し、
前記同期制御手段は、前記同期パケットを送信する機会を前記アプリケーション群単位で均等に割り当て、前記アプリケーション群に属するアプリケーションの前記同期パケットを送信する際に前記優先度の高いパケットを優先的に転送させる制御を行う、
ことを特徴とするネットワーク装置。
前記番号照合手段は、前記同期元の現用系モジュールと前記被同期モジュールとの間の通信セッションの切断後に通信セッションが再確立したときに前記被同期モジュールに前記到達済シーケンス番号を照会し、前記照会によって通知されたシーケンス番号と前記送信済シーケンス番号との間に差分がある場合、当該アプリケーションの識別番号に該当するアプリケーションに対して、送信が必要な全てのデータを要求し、
前記同期制御手段は、当該アプリケーションから受信する全てのデータの各同期パケットに前記アプリケーションの識別番号及び前記シーケンス番号を再度付与して前記同期パケットを再送させる制御を行うことを特徴とする請求項1に記載のネットワーク装置。
前記同期制御手段は、前記同期パケットについての前記アプリケーションの識別番号及び前記シーケンス番号を含む当該同期パケットのパケットデータを一時的に記憶するキャッシュ手段をさらに備え、
前記番号照合手段は、前記同期元の現用系モジュールと前記被同期モジュールとの間の通信セッションの切断後に通信セッションが再確立したときに前記被同期モジュールに前記到達済シーケンス番号を照会し、前記照会によって通知された到達済シーケンス番号と前記送信済シーケンス番号との間に差分がある場合、前記同期元の現用系モジュールで送信済として登録されており且つ前記被同期モジュールで到達済として登録されていないシーケンス番号を抽出し、
前記同期制御手段は、該当するアプリケーションの識別番号と前記抽出したシーケンス番号とに基づいて、前記キャッシュ手段から該当するパケットデータを選択し、当該選択したパケットデータを有した同期パケットを再送させる制御を行うことを特徴とする請求項1に記載のネットワーク装置。
IPネットワークにおいて複数のアプリケーションが動作する現用系モジュール及び予備系モジュールが搭載されたネットワーク装置であり、前記現用系モジュールが保持している情報を前記搭載された予備系モジュール及び他のネットワーク装置に搭載された現用系モジュールをそれぞれ表す被同期モジュールに対して同期させる前記ネットワーク装置における同期制御方法であって、
同期元の前記現用系モジュールにおいて、
前記アプリケーションがデータの同期のために送信した同期パケットを、アプリケーション毎の予め定められた順番で処理するためのアプリケーション固有の識別番号を前記同期パケットに付与する識別番号付与ステップと、
前記同期パケットに付与された前記アプリケーションの識別番号ごとに、当該同期パケットに対してシーケンス番号を付与するシーケンス番号付与ステップと、
前記同期パケットを送信手段に格納する格納ステップと、
前記送信手段に格納された同期パケットのシーケンス番号を送信済シーケンス番号として前記アプリケーションの識別番号ごとに登録する送信済シーケンス番号登録ステップと、
前記送信手段に格納された同期パケットを通信ケーブルを介して前記被同期モジュールへ送信する送信ステップと、を有し、
前記被同期モジュールにおいて、
前記同期元の現用系モジュールから前記同期パケットを受信する受信ステップと、
前記受信した同期パケットに付与されている前記アプリケーションの識別番号を基に当該同期パケットを該当のアプリケーションへ転送する転送ステップと、
前記受信した同期パケットに付与されているシーケンス番号を到達済シーケンス番号として前記アプリケーションの識別番号ごとに登録する到達済シーケンス番号登録ステップと、
前記アプリケーションの識別番号ごとに前記到達済シーケンス番号を前記現用系モジュールに通知する到達番号通知ステップと、を有し、
前記同期元の現用系モジュールにおいて、
前記被同期モジュールから通知されたシーケンス番号と前記送信済シーケンス番号とを前記アプリケーションの識別番号ごとに照合して当該同期パケットの到達を確認する番号照合ステップを有し、
前記識別番号付与ステップは、前記同期元の現用系モジュール内で集約された複数のアプリケーションからなるアプリケーション群を単位として、前記アプリケーション群に属する前記アプリケーションの同期パケット内に当該アプリケーションの識別番号を付与し、
前記識別番号付与ステップの前に、前記アプリケーションの識別番号に対する優先順位を当該アプリケーションの優先度として優先度テーブルに予め登録する登録ステップを有し、
前記同期元の現用系モジュールにおいて、
前記シーケンス番号付与ステップの後であって前記格納ステップの前に、前記優先度テーブルに基づいて、前記同期パケットに付与された前記アプリケーションの識別番号を基に当該同期パケットの優先度を決定し、当該優先度の高いパケットを優先的に転送させる優先度決定ステップを有し、
前記格納ステップは、前記同期パケットを送信する機会を前記アプリケーション群単位で均等に割り当て、前記アプリケーション群に属するアプリケーションの前記同期パケットを送信する際に前記優先度の高いパケットを優先的に送信キューに格納する、
ことを特徴とする同期制御方法。
前記同期元の現用系モジュールと前記被同期モジュールとの間の前記通信ケーブルを用いる同期経路の通信セッションが切断した場合、通信セッションが再確立したときに前記被同期モジュールに照会する前記到達シーケンス番号に基づいて少なくとも差分に該当する同期パケットを前記同期元の現用系モジュールから再送するか、又は、前記同期元の現用系モジュールと前記被同期モジュールとの間に予め確立した予備同期経路を用いて当該同期元の現用系モジュールからの前記同期パケットの送信を続行する、
ことを特徴とする請求項5に記載の同期制御方法。
【発明を実施するための形態】
【0014】
本発明に係るネットワーク装置は、モジュールを現用系と予備系に分けて当該装置に複数搭載しておき、現用系モジュールが保持する情報を予備系モジュールに同期すると共に、2台のネットワーク装置を現用系と予備系に分けて設置しておき現用系のネットワーク装置に搭載された現用系モジュールが保持する情報を予備系のネットワーク装置に搭載された現用系モジュールに同期するものである。つまり、同期元の現用系モジュールに対して保持情報を同期させる被同期モジュールとしては、同期元のネットワーク装置内に搭載された予備系モジュールと、他のネットワーク装置に搭載された現用系モジュールとが存在する。ただし、説明を簡単にするため、以下の各実施形態では、データが更新される側のモジュールを示す被同期モジュールが、同期元のネットワーク装置内に搭載された予備系モジュールであるものとする。以下、本発明のネットワーク装置及び同期制御方法について図面を参照して詳細に説明する。
(第1実施形態)
図1に示すネットワーク装置1は、例えはルーターやLANスイッチ等である。ネットワーク装置1には、現用系モジュール100及び予備系モジュール(被同期モジュール)200が搭載されている。ネットワーク装置1は、現用系モジュール100が保持している情報を装置内の通信ケーブル300を介して予備系モジュール200に対して同期させるものである。
【0015】
現用系モジュール100では、複数のアプリケーション104が動作する。ここでは、現用系モジュール100は、ある所定のサービス(以下、サービスAという)を提供するために、互いに関連した2つのアプリケーション104(アプリケーション名:A−1,A−2)を備えている。また、現用系モジュール100は、別のサービス(以下、サービスBという)を提供するために、互いに関連した2つのアプリケーション104(アプリケーション名:B−1,B−2)を備えている。
【0016】
予備系モジュール200は、現用系モジュール100で動作するものと同様の複数のアプリケーション204を備え、現用系モジュール100の故障等による切り替え時に、各アプリケーション204が動作する。
【0017】
ネットワーク装置1において、アプリケーションの同期処理に係る構成要素以外は従来技術と同様なので、以下では説明及び図示を適宜省略する。なお、ネットワーク装置1が例えはレイヤー3スイッチの場合、非特許文献1に示すように、パケット転送を担うハードウェアであるフォワーディング・エンジンと、このフォワーディング・エンジンをコントロールするソフトウエアを搭載するコントロール・エンジンと、電源等で構成される。ここで、例えば2つのコントロール・エンジンが
図1に示す現用系モジュール100及び予備系モジュール200に相当する。コントロール・エンジンの場合、同期させる情報として、例えばコンフィグレーションテーブル、ARP(Address Resolution Protocol)/NDP(Neighbor Discovery Protocol)テーブル、各種プロトコル情報、ハードウェア制御情報とを格納している。
【0018】
図1に示すように、現用系モジュール100は、予備系モジュール200に同期データを送信するための構成として、同期制御手段101と、送信手段102とを備えている。
同期制御手段101は、現用系モジュール100内で同期させる必要のある複数のアプリケーション104のデータを集約すると共に各アプリケーション104からデータの同期のために送信されたパケット(同期パケット)を受信して当該同期パケットに同期のための情報を付与して同期パケットを転送させる制御を行うものである。
【0019】
この例では、同期制御手段101は、サービスAを提供する2つのアプリケーション104を集約してアプリケーション群103(アプリケーション群名:A)として取り扱い、サービスBを提供する2つのアプリケーション104を集約してアプリケーション群103(アプリケーション群名:B)として取り扱う。なお、予備系モジュール200では、現用系モジュール100で動作するものと同様の複数のアプリケーション群203を備え、現用系モジュール100の故障等による切り替え時に、各アプリケーション群203が動作する。
【0020】
本実施形態では、同期制御手段101は、パケット転送制御手段110と、送信済シーケンス番号登録手段120と、番号照合手段130と、を備えている。
パケット転送制御手段110は、識別番号付与手段111と、シーケンス番号付与手段112と、を備えている。
識別番号付与手段111は、アプリケーション毎の予め定められた順番で同期パケットを処理するためのアプリケーション固有の識別番号を同期パケットに付与するものである。識別番号付与手段111は、現用系モジュール100の各アプリケーション104が送信する同期パケット内に、アプリケーションの識別番号を付与する。
【0021】
シーケンス番号付与手段112は、同期パケットに付与されたアプリケーションの識別番号ごとに、当該同期パケットに対してシーケンス番号を付与するものである。アプリケーションの識別番号及びシーケンス番号が付与された同期パケットのパケットデータは、送信手段102に格納される。送信手段102にパケットデータが格納された同期パケットについては、シーケンス番号付与手段112で当該同期パケットに付与されたシーケンス番号の情報がアプリケーションの識別番号の情報と共に送信済シーケンス番号登録手段120に出力される。
【0022】
送信済シーケンス番号登録手段120は、送信手段102に格納された同期パケットのシーケンス番号を送信済シーケンス番号としてアプリケーションの識別番号ごとに登録するものである。
【0023】
番号照合手段130は、予備系モジュール200から、到達した同期パケットのシーケンス番号が通知されたときに、通知されたシーケンス番号と送信済シーケンス番号とをアプリケーションの識別番号ごとに照合して当該同期パケットの到達を確認するものである。
【0024】
送信手段102は、アプリケーションの識別番号及びシーケンス番号(同期のための情報)が付与された同期パケットを通信ケーブル300を介して予備系モジュール200へ転送するものである。送信手段102は、所定の送信インタフェースから構成され、送信キューに格納された同期パケットを通信ケーブル300に出力する。送信手段102は、送信キューに先入れ先出しのリスト構造で保持されたパケットデータを順次出力する。
【0025】
予備系モジュール200は、現用系モジュール100から同期データを受信するための構成として、同期制御手段201を備えている。
同期制御手段201は、シーケンス番号取得手段210と、到達済シーケンス番号登録手段220と、到達番号通知手段230と、を備えている。
【0026】
シーケンス番号取得手段210は、現用系モジュール100から受信した同期パケットに付与されているシーケンス番号をアプリケーションの識別番号ごとに取得するものである。取得されたシーケンス番号はアプリケーションの識別番号と共に到達済シーケンス番号登録手段220に出力される。このシーケンス番号取得手段210は、現用系モジュール100から受信した同期パケットに付与されているアプリケーションの識別番号を基に当該同期パケットを該当のアプリケーション204へ転送する。
【0027】
到達済シーケンス番号登録手段220は、受信した同期パケットから取得されたシーケンス番号を到達済シーケンス番号としてアプリケーションの識別番号ごとに登録するものである。
到達番号通知手段230は、アプリケーションの識別番号ごとに到達済シーケンス番号を現用系モジュール100に通知するものである。なお、到達番号通知手段230は、到達済シーケンス番号登録手段220に登録されたシーケンス番号を通知する。
【0028】
本発明の第1実施形態に係るネットワーク装置1及び同期制御方法における処理の流れについて
図2を参照(適宜
図1参照)して説明する。まず、現用系モジュール100において、識別番号付与手段111は、アプリケーション104が送信した同期パケットにアプリケーションの識別番号を付与する(ステップS101:識別番号付与ステップ)。そして、シーケンス番号付与手段112は、同期パケットに付与されたアプリケーションの識別番号ごとに、当該同期パケットに対してシーケンス番号を付与し、(ステップS102:シーケンス番号付与ステップ)、同期パケットを送信手段102の送信キューに格納する(ステップS103:格納ステップ)。そして、送信済シーケンス番号登録手段120は、送信キューに格納された同期パケットに付与されているシーケンス番号を送信済シーケンス番号としてアプリケーションの識別番号ごとに登録する(ステップS104:送信済シーケンス番号登録ステップ)。そして、送信手段102は、送信キューに格納された同期パケットを通信ケーブル300を介して予備系モジュール200へ送信する(ステップS105:送信ステップ)。
【0029】
続いて、予備系モジュール200において、シーケンス番号取得手段210は、現用系モジュール100から同期パケットを受信する(ステップS106:受信ステップ)と、受信した同期パケットに付与されているアプリケーションの識別番号を基に当該同期パケットを該当のアプリケーション204へ転送する(ステップS107:転送ステップ)。そして、シーケンス番号取得手段210は、受信した同期パケットに付与されているシーケンス番号をアプリケーションの識別番号ごとに取得する。これにより、到達済シーケンス番号登録手段220は、受信した同期パケットに付与されているシーケンス番号を到達済シーケンス番号としてアプリケーションの識別番号ごとに登録する(ステップS108:到達済シーケンス番号登録ステップ)。そして、到達番号通知手段230は、アプリケーションの識別番号ごとに到達済シーケンス番号を現用系モジュール100に通知する(ステップS109:到達番号通知ステップ)。
【0030】
続いて、現用系モジュール100において、番号照合手段130は、予備系モジュール200から通知されたシーケンス番号と送信済シーケンス番号とをアプリケーションの識別番号ごとに照合して当該同期パケットの到達を確認する(ステップS110:番号照合ステップ)。所定のアプリケーションの識別番号において、到達済シーケンス番号と送信済シーケンス番号とが一致すれば、当該シーケンス番号及びアプリケーションの識別番号が付与された同期パケットが、現用系モジュール100から予備系モジュール200へ間違いなく送達されたことになる。番号照合手段130は、一致を確認後、到達済シーケンス番号と同じ値を有した送信済シーケンス番号を削除する。
【0031】
本実施形態のネットワーク装置1は、
図12に示す従来のネットワーク装置901よりも以下に示す優れた効果を奏する。従来のネットワーク装置901は、現用系モジュール902や予備系モジュール903に、同期制御手段101,201(
図1参照)を備えておらず、現用系モジュール902において、各アプリケーション104は、それぞれの同期データ(同期パケット)を個別に同期させる処理を行っていたため、低遅延が求められるアプリケーションであっても他のアプリケーションより優先されることはなかった。一方、本実施形態のネットワーク装置1は、現用系モジュール100内で同期させる必要のある複数のアプリケーション104のデータを集約して、アプリケーション群103として取り扱い、アプリケーション固有の識別番号を同期パケットに付与するので、低遅延が求められるアプリケーションを優先的に同期させることができる。
【0032】
また、従来のネットワーク装置901は、現用系モジュール902と予備系モジュール903との間の通信経路(同期経路)が切断されると、復旧時にはアプリケーションの同期がどこまで完了したか分からなかったため、現用系モジュール902の同期すべき全アプリケーションの全同期データを送信する必要があった。一方、本実施形態のネットワーク装置1は、アプリケーション固有の識別番号が付与された同期パケットにシーケンス番号を付与して現用系モジュール100から予備系モジュール200に送信するので、通信セッションの復旧時に、到達済シーケンス番号から、どこまで同期できたかを確認することができる。
【0033】
(優先転送の具体例)
第1実施形態において、低遅延が求められる優先度の高いアプリケーションの優先転送について
図3を参照して説明する。
図3に示すネットワーク装置1Aにおいて、
図1に示す構成要素と同じ構成要素については同じ符号を付して説明を適宜省略する。
【0034】
ネットワーク装置1Aには、現用系モジュール100A及び予備系モジュール200が搭載されている。現用系モジュール100Aは、同期制御手段101Aを備えている。同期制御手段101Aは、パケット転送制御手段110Aを備えている。
パケット転送制御手段110Aは、優先度の高いパケットを優先的に転送させる制御を行うものであり、識別番号付与手段111Aと、シーケンス番号付与手段112と、優先度決定手段113とを備えている。
【0035】
優先度決定手段113は、予め登録された優先度テーブル113a,113bに基づいて、同期パケットに付与されたアプリケーションの識別番号を基に当該同期パケットの優先度を決定するものである。優先度テーブル113a,113bには、アプリケーションの識別番号と当該アプリケーションの優先度とが対応付けられている。本実施形態では、サービス毎に個別に優先度テーブル113a,113bを備えることとした。サービスA用の優先度テーブル113aの一例を以下の表1に示し、サービスB用の優先度テーブル113bの一例を以下の表2に示す。
【0037】
表1に示す例では、サービスAを実現するためのアプリケーション群Aにおいて、アプリケーション名がA−1であるアプリケーション(以下、単にアプリケーションA−1という)は、優先順位が1であり、アプリケーション名がA−2であるアプリケーション(アプリケーションA−2)に比べて低遅延を求められる、優先度の高いアプリケーションである。なお、優先順位の値がより小さいほど優先度はより高い。同様に、表2に示す例では、アプリケーション群Bにおいて、アプリケーションB−1は、アプリケーションB−2に比べて優先度の高いアプリケーションである。この例では、送信手段102の送信キューとして、優先度が高いパケット用のキューと、優先度が低いパケット用のキューとが用意されている。
【0038】
識別番号付与手段111Aは、現用系モジュール100の各アプリケーション104から受信する同期パケットに識別番号を付与する際に、アプリケーション群103を単位として、アプリケーション群103に属するアプリケーション104の同期パケット内に当該アプリケーションの識別番号を付与する。
【0039】
例えば、アプリケーション群Aにおいて、アプリケーションA−1の同期パケット内に識別番号0x01が付与され、アプリケーションA−2の同期パケット内に識別番号0x02が付与される。また、アプリケーション群Bにおいて、アプリケーションB−1の同期パケット内に識別番号0x01が付与され、アプリケーションB−2の同期パケット内に識別番号0x02が付与される。
【0040】
同期制御手段101Aにおいてパケット転送制御手段110Aは、同期パケットを送信する機会をアプリケーション群103単位で均等に割り当て、アプリケーション群103に属するアプリケーション104の同期パケットを送信する際に優先度の高いパケットを優先的に転送させる制御を行う。ここで均等に割り当てるとは、例えば、アプリケーション群Aに属するアプリケーションA−1の同期パケットを転送させた後には、アプリケーション群Bに属するアプリケーションB−1の同期パケットを転送させるといった順番で交互に処理することを意味し、また、その際に、アプリケーションA−2,B−2よりもアプリケーションA−1,B−1を優先することを意味する。
【0041】
ネットワーク装置1Aの現用系モジュール100Aにおける処理の流れについて
図4を参照(適宜
図3参照)して説明する。現用系モジュール100Aの同期制御手段101Aでは、アプリケーションの識別番号に対する優先順位を当該アプリケーションの優先度として優先度テーブル113a,113bに予め登録しておくことを前提とする(ステップS111:登録ステップ)。なお、アプリケーション固有の識別番号及び優先度の設定は、例えば、システム管理者が、ネットワーク装置1Aの初期設定時やメンテナンス時において設定することができる。
【0042】
そして、同期制御手段101Aにおいて、識別番号付与手段111Aは、現用系モジュール100内で集約されたアプリケーション群103を単位として、アプリケーション群103に属するアプリケーション104の同期パケット内に当該アプリケーションの識別番号を付与する(ステップS112:識別番号付与ステップ)。そして、シーケンス番号付与手段112は、当該同期パケットに対してシーケンス番号を付与する(ステップS113:シーケンス番号付与ステップ)。
【0043】
そして、同期制御手段101Aにおいて、優先度決定手段113は、優先度テーブル113a,113bに基づいて、同期パケットに付与されたアプリケーションの識別番号を基に当該同期パケットの優先度を決定し、当該優先度の高いパケットを優先的に転送させる(ステップS114:優先度決定ステップ)。つまり、現用系モジュール100Aでは、アプリケーション単位で事前に登録された優先順位にしたがって、その優先順位に基づきパケットをどのキューに格納するかを決定する。
【0044】
そして、同期制御手段101Aは、同期パケットを送信する機会をアプリケーション群103単位で均等に割り当て、アプリケーション群103に属するアプリケーション104の同期パケットを送信する際に優先度の高いパケットを優先的に送信キューに格納する(ステップS115:格納ステップ)。以降のステップS116〜S119の処理は、
図2に示すステップS104、S105,S109,S110と同様の処理なので説明を省略する。このうちステップS117の処理では、同期パケットを優先順位毎に送信する。
【0045】
具体的には、表1及び表2に記載したように、サービス(又はアプリケーション群)に関わらずパケットに付与された識別番号が0x01ならば優先順位1位、パケットに付与された識別番号が0x02ならば優先順位2位であるものとして優先順位が登録されているものとする。このときに、例えばアプリケーションA−1,A−2,B−1,B−2の合計4種類の同期パケットを処理する場合、アプリケーションA−1(優先順位1位)の同期パケットとアプリケーションB−1(優先順位1位)の同期パケットとを交互に転送させる。そして、例えば転送中のアプリケーションA−1,B−1のうち、アプリケーションA−1の同期データの転送が完了した場合、残っているアプリケーションA−2(優先順位2位)の同期パケットと、転送途中のアプリケーションB−1の同期パケットとを交互に転送させる。さらにアプリケーションB−1の同期データの転送が完了した場合、残りのアプリケーションA−2の同期パケットと、転送途中のアプリケーションB−2(優先順位2位)の同期パケットとを交互に転送させる。
【0046】
ネットワーク装置1Aによれば、優先度決定手段113を備え、サービス(又はアプリケーション群103)において各アプリケーション104から送られる同期パケットの優先度を決定してから送信手段102の送信キューに格納するので、低遅延が求められる優先度の高いアプリケーションのデータの同期パケットを、他のアプリケーションよりも優先して同期させることができる。また、同期が必要なアプリケーションについての同期パケットを送信する機会を、特定のサービス(又はアプリケーション群103)に偏らずに、サービス(又はアプリケーション群103)に対して公平に割り当てることができる。
【0047】
(第2実施形態)
第2実施形態に係るネットワーク装置について
図5を参照して説明する。
図5に示すネットワーク装置1Bにおいて、
図1に示す構成要素と同じ構成要素については同じ符号を付して説明を適宜省略する。
【0048】
ネットワーク装置1Bには、現用系モジュール100B及び予備系モジュール200Bが搭載されている。現用系モジュール100Bは、同期制御手段101Bを備えている。同期制御手段101Bは、番号照合手段130Bが
図1に示す番号照合手段130の機能に加えて、現用系モジュール100Bと予備系モジュール200Bとの間の通信セッションの切断後に通信セッションが再確立したときに予備系モジュール200Bに到達済シーケンス番号を照会する機能を有している。
【0049】
通信セッションの再確立時に、番号照合手段130Bは、照会によって通知されたシーケンス番号と送信済シーケンス番号との間に差分がある場合、当該アプリケーションの識別番号に該当するアプリケーション104に対して、送信が必要な全ての同期データを要求する。
図5では、番号照合手段130Bが一例としてアプリケーションA−2に対して同期データを要求する場合を破線で模式的に示した。
【0050】
通信セッションの再確立時に、同期制御手段101Bのパケット転送制御手段110は、番号照合手段130Bから全ての同期データを要求された当該アプリケーション104から受信する全てのデータの各同期パケットにアプリケーションの識別番号及びシーケンス番号を再度付与して同期パケットを再送させる制御を行う。
【0051】
予備系モジュール200Bは、同期制御手段201Bを備えている。同期制御手段201Bは、到達番号通知手段230Bが
図1に示す到達番号通知手段230の機能に加えて、通信セッションが再確立したときに現用系モジュール100Bからの照会を受け付けて到達済シーケンス番号を通知する機能を有している。
【0052】
ネットワーク装置1Bにおいて現用系モジュール100Bと予備系モジュール200Bとの間の通信セッションの切断時の処理の流れについて
図6を参照(適宜
図5参照)して説明する。まず、現用系モジュール100Bと予備系モジュール200Bとの間に同期経路のTCPセッション等の通信セッションを確立する(ステップS121:通信セッション確立)。そして、通信セッションがKeepAliveのタイムアウトや状態異常を検知したことで切断されたとする(ステップS122:通信セッション断)。この場合、現用系モジュール100Bと予備系モジュール200Bとの間に同期経路の通信セッションを再確立する(ステップS123:通信セッション再確立)。
【0053】
上記の前提の下で、現用系モジュール100B及び予備系モジュール200Bは、以下のやり取りを行う。すなわち、まず、現用系モジュール100Bにおいて、番号照合手段130Bは、予備系モジュール200Bに対して、各アプリケーションの到達済シーケンス番号を照会する(ステップS124)。これにより、予備系モジュール200Bにおいて、到達番号通知手段230Bは、現用系モジュール100Bに対して到達済シーケンス番号を通知する(ステップS125)。
【0054】
そして、現用系モジュール100Bにおいて、番号照合手段130Bは、送信済のシーケンス番号と到達済シーケンス番号との差分があるアプリケーションの識別番号を抽出する(ステップS126)。番号照合手段130Bは、ステップS126で差分があった当該アプリケーション104に対して、同期データのすべての同期パケット(全ての同期データ)の送信を要求する(ステップS127)。これにより、同期制御手段101Bのパケット転送制御手段110は、当該アプリケーション104から受信する同期パケットに対して、アプリケーションの識別番号及びシーケンス番号を付与して再送を指示し、送信手段102は、予備系モジュール200Bに対して同期パケットを再送信する(ステップS128)。
【0055】
ネットワーク装置1Bによれば、2モジュール間の同期経路の通信セッションが切断した場合、通信セッションが再確立したときに、現用系モジュール100Bと予備系モジュール200Bとの間で生じた同期データの差分に該当するアプリケーション104についてのすべての同期データを現用系モジュール100Bから再送する。したがって、通信セッション断に伴うパケットロスを救済すると共に、全アプリケーションではなく特定の同期データに差分があるアプリケーションのみ同期データを送信するように同期する範囲を指定することで、同期データの復旧にかかる時間を従来よりも短縮することができる。
【0056】
(第3実施形態)
第3実施形態に係るネットワーク装置について
図7を参照して説明する。
図7に示すネットワーク装置1Cにおいて、
図1に示す構成要素と同じ構成要素については同じ符号を付して説明を適宜省略する。
【0057】
ネットワーク装置1Cには、現用系モジュール100C及び予備系モジュール200Cが搭載されている。現用系モジュール100Cは、同期制御手段101Cを備えている。同期制御手段101Cは、パケット転送制御手段110Cと、送信済シーケンス番号登録手段120と、番号照合手段130Cと、キャッシュ手段150とを備えている。
【0058】
キャッシュ手段150は、同期パケットについてのアプリケーションの識別番号及びシーケンス番号を含む当該同期パケットのパケットデータを一時的に記憶するものである。
本実施形態では、現用系モジュール100Cが同期データを送信する際、シーケンス番号を付与した送信済のパケットを、アプリケーションの識別番号別にキャッシュすることとした。例えばアプリケーションA−1,A−2,B−1,B−2の合計4種類の同期パケットを処理する場合、キャッシュ手段150は、A−1用キャッシュ手段151と、A−2用キャッシュ手段152と、B−1用キャッシュ手段153と、B−2用キャッシュ手段154とを備える。
【0059】
番号照合手段130Cは、
図1に示す番号照合手段130の機能に加えて、現用系モジュール100Cと予備系モジュール200Cとの間の通信セッションの切断後に通信セッションが再確立したときに予備系モジュール200Cに到達済シーケンス番号を照会する機能を有している。この番号照合手段130Cは、照会によって通知されたシーケンス番号と送信済シーケンス番号との間に差分がある場合、現用系モジュール100Cで送信済として登録されており且つ予備系モジュール200Cで到達済として登録されていないシーケンス番号を抽出する。抽出されたシーケンス番号は、アプリケーションの識別番号と共にパケット転送制御手段110Cに出力される。
【0060】
パケット転送制御手段110Cは、通常処理では、各アプリケーション104から送られた同期パケットにアプリケーションの識別番号とシーケンス番号とを付与した後、同期パケットを転送させる際に、そのパケットデータをキャッシュ手段150にキャッシュする。また、パケット転送制御手段110Cは、切断後に通信セッションが再確立したときに、番号照合手段130Cで抽出されたシーケンス番号と該当するアプリケーションの識別番号とに基づいて、キャッシュ手段150から該当するパケットデータを選択し、当該選択したパケットデータを有した同期パケットを再送させる制御を行う。
【0061】
予備系モジュール200Cは、同期制御手段201Cを備えている。同期制御手段201Cは、到達番号通知手段230Cが
図1に示す到達番号通知手段230の機能に加えて、通信セッションが再確立したときに現用系モジュール100Cからの照会を受け付けて到達済シーケンス番号を通知する機能を有している。
【0062】
ネットワーク装置1Cにおいて現用系モジュール100Cと予備系モジュール200Cとの間の通信セッションの切断時の処理の流れについて
図8を参照(適宜
図7参照)して説明する。なお、
図8に示す処理において、
図6に示す処理と同じ手順については同じ符号を付して説明を適宜省略する。ステップS121,S122,S123は、
図6に示す処理と同様の前提である。ただし、ステップS122(通信セッション断)の前に、現用系モジュール100Cにおいて、パケット転送制御手段110Cは、通常の処理として、アプリケーション毎にシーケンス番号を付与した送信済の同期パケットをキャッシュ手段150にキャッシュしておく(ステップS131)。
【0063】
上記の前提の下で、現用系モジュール100C及び予備系モジュール200Cは、以下のやり取りを行う。すなわち、まず、現用系モジュール100Cにおいて、番号照合手段130Cは、予備系モジュール200Cに対して、各アプリケーションの到達済シーケンス番号を照会する(ステップS124)。これにより、予備系モジュール200Cにおいて、到達番号通知手段230Cは、現用系モジュール100Cに対して到達済シーケンス番号を通知する(ステップS125)。
【0064】
そして、現用系モジュール100Cにおいて、番号照合手段130Cは、送信済のシーケンス番号と到達済シーケンス番号との差分があるアプリケーションの識別番号を抽出する(ステップS126)。そして、パケット転送制御手段110Cは、ステップS126で差分があった当該アプリケーションの識別番号において、送信済シーケンス番号のあるパケットのうち、到達済シーケンス番号には無い同期パケットをキャッシュ手段150から選択する(ステップS132)。ここで、送信済シーケンス番号のパケットのうち、到達済シーケンス番号に記載がないパケットは、予備系モジュール200Cに到達していないパケットである。そして、パケット転送制御手段110Cは、選択した同期パケットを送信キューに格納し、送信手段102は、この選択した同期パケットを再送信する(ステップS133)。
【0065】
ネットワーク装置1Cによれば、2モジュール間の同期経路の通信セッションが切断した場合、通信セッションが再確立したときに、現用系モジュール100Cと予備系モジュール200Cとの間で生じた同期データの差分に該当する差分データとして、アプリケーション単位で全ての同期データを送信するのでなく、同期データのパケット単位の差分のみを送信するように同期する範囲を指定する。したがって、アプリケーション単位で全ての同期データを送信する場合よりも、同期データの復旧にかかる時間を短縮することができる。
【0066】
(第4実施形態)
第4実施形態に係るネットワーク装置について
図9を参照して説明する。
図9に示すネットワーク装置1Dにおいて、
図1に示す構成要素と同じ構成要素については同じ符号を付して説明を適宜省略する。
【0067】
ネットワーク装置1Dには、現用系モジュール100D及び予備系モジュール200が搭載されている。ネットワーク装置1Dは、現用の通信ケーブル300と、予備の通信ケーブル310と、を備えている。
【0068】
現用系モジュール100Dは、同期制御手段101Dを備えている。この同期制御手段101Dは、現用系モジュール100Dと予備系モジュール200との間に、現用の通信ケーブル300を用いる同期経路とは別に、予備の通信ケーブル310を用いる予備同期経路を予め確立する。
【0069】
また、同期制御手段101Dは、パケット転送制御手段110Dと、送信済シーケンス番号登録手段120と、番号照合手段130Dと、を備えている。
パケット転送制御手段110Dは、通常は同期経路にて同期パケットに付与されたシーケンス番号を含むセッション情報を用いた通信セッションを行うことで同期パケットを転送させる制御を行う。このパケット転送制御手段110Dは、通常の同期経路の切断を検出した場合、同期経路にて用いていたセッション情報を引き継ぎ、予備同期経路にて当該セッション情報を用いた通信セッションを行うことで同期パケットを転送させる制御を行う。
【0070】
番号照合手段130Dは、
図1に示す番号照合手段130の機能に加えて、例えば、KeepAliveのタイムアウトや状態異常等により通信セッションの切断を検知する機能を有し、通信セッションの切断を検知した場合、パケット転送制御手段110Dに通知する。なお、番号照合手段130Dは、例えば予め定められた時間が経過しても予備系モジュール200からシーケンス番号を受信しない場合、通信セッションの切断を検知することとしてもよい。
【0071】
ネットワーク装置1Dにおいて現用系モジュール100Dと予備系モジュール200との間の通信セッションの切断時の処理の流れについて
図10を参照(適宜
図9参照)して説明する。まず、現用系モジュール100Dと予備系モジュール200との間の通信ケーブル300を用いる通常の同期経路で通信セッションを確立する(ステップS141:通信セッション確立)。また、予め現用系モジュール100Dと予備系モジュール200との間の通信ケーブル310を用いる予備の同期経路で通信セッションを確立する(ステップS142:通信セッション確立)。
【0072】
そして、通信セッションがKeepAliveのタイムアウトや状態異常を検知したことで切断されたとする(ステップS143:通信セッション断)。この場合、番号照合手段130Dが、通常の同期経路のセッションの切断を検知する(ステップS144)。これにより、パケット転送制御手段110Dは、アプリケーションの識別番号及びTCPのシーケンス番号を引き継いで、予備の同期経路を用いて同期パケットの送信を再開する(ステップS145)。
【0073】
ネットワーク装置1Dによれば、現用系モジュール100Dと予備系モジュール200との間の通信セッションを多重化したので、通常の同期経路の通信セッション断に伴うパケットロスを予備の同期経路を用いて救済することができる。つまり、通常の同期経路に通信断が発生した際、通信セッションの再確立を待って同期データを再送するのではなく、各パケットのシーケンス番号等のセッション情報を現用の同期経路から引き継いで予備の同期経路を用いて同期データの通信を継続することで復旧時間を短縮することができる。
【0074】
以上、本発明の各実施形態について説明したが、本発明はこれらに限定されるものではなく、その趣旨を変えない範囲で実施することができる。例えば、各実施形態では、被同期モジュールが、同期元のネットワーク装置1内に搭載された予備系モジュール200であることとして説明したが、本発明は、これに限らず、被同期モジュールが、他のネットワーク装置に搭載された現用系モジュール100であってもよい。この場合、同期データを受信する側の現用系モジュール100は、同期制御手段101と、送信手段102とに加えて、同期データを受信するための同期制御手段201(
図1参照)の機能をさらに備えている。
【0075】
すなわち、前記各実施形態では、現用系モジュール100が予備系モジュール200に同期データを送信するための構成として、同期制御手段101と、送信手段102とを備え、一方、予備系モジュール200は、現用系モジュール100から同期データを受信するための構成として、同期制御手段201を備えることとして説明したが、本発明はこれに限らず、1つのモジュールの中に、同期制御手段101と、送信手段102と、同期制御手段201(例えばシーケンス番号取得手段210、到達済シーケンス番号登録手段220及び到達番号通知手段230)とを備えるようにしてもよい。このように構成したモジュールは、現用系及び予備系に共通に使用することができる。
【0076】
上記のように1つのモジュールの中に、同期制御手段101と、送信手段102と、同期制御手段201とを備えたモジュールを、現用系モジュール及び予備系モジュールにそれぞれ割り当てたネットワーク装置を含む冗長構成のネットワークシステムを
図11に示す。
図11に示す冗長構成のネットワークシステムは、現用系のネットワーク装置1aと、予備系のネットワーク装置1sとを備えている。ここで、現用系のネットワーク装置1aは、現用系モジュール100aが保持している情報を装置内の通信ケーブル300aを介して予備系モジュール(被同期モジュール)200aに対して同期させるものであり、
図1に示すネットワーク装置1に相当する。同様に、予備系のネットワーク装置1sは、現用系モジュール100sが保持している情報を装置内の通信ケーブル300sを介して予備系モジュール(被同期モジュール)200sに対して同期させるものであり、
図1に示すネットワーク装置1に相当する。現用系のネットワーク装置1aは、現用系モジュール100aが保持している情報を装置外の通信ケーブル300eを介して、予備系のネットワーク装置1sの現用系モジュール(被同期モジュール)100sに送信することができる。この場合、現用系モジュール100sは、現用系モジュール100aに対しては予備系モジュール200aと同様の振る舞いをすることができる。したがって、前記各実施形態と同様にして、現用系のネットワーク装置1aに搭載された現用系モジュール100aが保持する情報を、予備系のネットワーク装置1sに搭載された現用系モジュール100sに同期することができる。
【解決手段】ネットワーク装置1において、搭載された現用系モジュール100は、アプリケーションが送信する同期パケットを通信ケーブル300で予備系モジュール200に送信する送信手段102と、同期制御手段101と、を備え、同期制御手段101は、同期パケットにアプリケーションの識別番号を付与する識別番号付与手段111と、同期パケットにシーケンス番号を付与するシーケンス番号付与手段112と、送信手段102に格納された同期パケットのシーケンス番号を登録する送信済シーケンス番号登録手段120と、予備系モジュール200に到達した同期パケットのシーケンス番号を受信して到達シーケンス番号と送信済シーケンス番号とを照合して同期パケットの到達を確認する番号照合手段130とを備える。