(57)【要約】【課題】経路上に複数のスイッチ装置を含むノード間の実時間通信と非実時間通信との衝突を低減させること。【解決手段】ある局所網において、個々のスイッチ装置ＳＷ１，ＳＷ２に直接接続されているノード群をグループ化する。グループＡ，Ｂごとに、グループＡ，Ｂ間の非実時間通信を中継する中継ノードを設置する。既存の仮想ネットワーク技術を用いて、中継ノードＮ１から中継ノードＮ４に辿り着くまでの仮想リンクＶＬを設定する。これにより、中継ノードＮ３，Ｎ６間の非実時間通信を一つにまとめて、物理リンクＬにおける実時間通信との衝突を低減させる。さらに、全ノードＮ１〜Ｎ６で同期を取って、実時間通信および非実時間通信の実施期間を全ノードＮ１〜Ｎ６で共有する。これにより、実時間通信と非実時間通信との実施期間を区別して、非実時間通信が実時間通信に干渉しないように制御する。【選択図】図１
2010219812.tif 000002
【特許請求の範囲】
【請求項１】
第１および第２のノード群を接続する中継装置を介して前記ノード間の実時間通信を実行するネットワーク内の前記ノードに非実時間通信を実行させる通信プログラムであって、
前記第１のノード群から選ばれた自ノードに、当該自ノードから前記第２のノード群から選ばれた他ノードに辿り着くまでの経路を設定させる設定工程と、
前記第１のノード群のうち前記自ノードを除く残余のノードから前記第２のノード群のうち前記他ノードを除く残余のノードに対する非実時間通信に関するデータを前記自ノードに受信させる受信工程と、
前記受信工程によって受信されたデータを、前記設定工程によって設定された経路を用いて、前記自ノードから前記他ノードに転送させる転送工程と、
を前記自ノードのコンピュータに実行させることを特徴とする通信プログラム。
【請求項２】
前記ネットワーク内で周期的に実行される実時間通信の周期開始時刻を検出させる検出工程を前記コンピュータに実行させ、
前記転送工程は、
前記検出工程によって検出された実時間通信の周期開始時刻とは異なる時刻に、前記非実時間通信に関するデータを前記自ノードから前記他ノードに転送させることを特徴とする請求項１に記載の通信プログラム。
【請求項３】
前記自ノードに、前記ネットワークの伝送能力に基づいて、設定された経路に割り当てるデータ流量を算出させる算出工程と、
前記自ノードに、前記算出工程によって算出されたデータ流量を前記経路に割り当てさせる割当工程と、
前記自ノードに、前記割当工程によって割り当てられた割当結果を前記他ノードに送信させる送信工程と、を前記コンピュータに実行させることを特徴とする請求項１または２に記載の通信プログラム。
【請求項４】
前記算出工程は、
前記他ノードから前記自ノードに転送された非実時間データのデータ流量に基づいて、設定された経路に割り当てるデータ流量を算出することを特徴とする請求項３に記載の通信プログラム。
【請求項５】
前記自ノードに、前記第２のノード群のうち前記他ノードを除く残余のノードから前記第１のノード群のうち前記自ノードを除く残余のノードに対する非実時間通信に関するデータを前記他ノードから受信させる非実時間データ受信工程と、
前記自ノードに、前記非実時間データ受信工程によって受信されたデータを前記第１のノード群のうち前記自ノードを除く残余のノードに転送させる非実時間データ転送工程と、を前記コンピュータに実行させることを特徴とする請求項１または２に記載の通信プログラム。
【請求項６】
実時間通信に関するデータには、前記ネットワークに含まれるノードを一意に特定するアドレスが設定され、非実時間通信に関するデータには、前記各ノード群に含まれるノードを一意に特定するアドレスが設定されていることを特徴とする請求項１〜５のいずれか一つに記載の通信プログラム。
【請求項７】
第１および第２のノード群を接続する中継装置を介して前記ノード間の実時間通信を実行するネットワーク内の非実時間通信を実行する中継ノードであって、
前記第１のノード群から選ばれた自ノードから前記第２のノード群から選ばれた他の中継ノードに辿り着くまでの経路を設定する設定手段と、
前記第１のノード群のうち前記自ノードを除く残余のノードから前記第２のノード群のうち前記他ノードを除く残余のノードに対する非実時間通信に関するデータを受信する受信手段と、
前記受信手段によって受信されたデータを、前記設定手段によって設定された経路を用いて、前記他ノードに転送する転送手段と、
を備えることを特徴とする中継ノード。
【請求項８】
第１および第２のノード群を接続する中継装置を介して前記ノード間の実時間通信を実行するネットワーク内の前記ノードに非実時間通信を実行させる通信方法であって、
前記第１のノード群から選ばれた自ノードから前記第２のノード群から選ばれた他の中継ノードに辿り着くまでの経路を設定する設定工程と、
前記第１のノード群のうち前記自ノードを除く残余のノードから前記第２のノード群のうち前記他ノードを除く残余のノードに対する非実時間通信に関するデータを受信する受信工程と、
前記受信工程によって受信されたデータを、前記設定工程によって設定された経路を用いて、前記他ノードに転送する転送工程と、
を前記自ノードのコンピュータに実行させることを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示技術は、情報を転送する通信プログラム、中継ノード、および通信方法に関する。
【背景技術】
【０００２】
近年、自動車、工業用ロボット、ヒューマノイドロボットなどの機械制御装置において、機能ごとのモジュール化がおこなわれている。また、ネットワーク機能を有するセンサの登場により、機械制御装置に搭載される端末装置（モジュール）がネットワークを構成することが一般的になっている。
【０００３】
このようなネットワークを含む機械制御装置においては、通常、実時間通信と非実時間通信とが混在する。ここで、実時間通信とは、たとえば、フィードバック制御のために周期的に実行される絶対遅延の小さい通信である。また、非実時間通信とは、たとえば、修正プログラムの配信やファイル転送などの実時間性は要求されないが高いスループットが要求される通信である。
【０００４】
一方、ネットワークを含む機械制御装置では、システム構成の柔軟性、拡張性および構築の容易性などの観点から、スイッチ装置のような集約分配装置を経路に含む汎用ネットワーク（たとえば、イーサネット（登録商標））の利用が望まれている。
【０００５】
しかし一般に、スイッチ装置において、同一の出力端へ転送される複数の入力が出力端のスループットを超えると、スイッチ装置内の通信キューが成長してしまう。それ故に、経路の途中にスイッチ装置を含むネットワークでは、通信キューの成長により、通信遅延の増大、さらには、パケット喪失を招く恐れがあり、実時間通信を適切に実行することが難しいという問題があった。
【０００６】
そこで、従来においては、実時間通信の周期性を利用して、実時間通信と非実時間通信との実施期間を時間的に区別する技術がある。具体的には、受信側の端末装置が自身へのデータの通信状況を監視することで、実時間通信と干渉する非実時間通信を検出し、非実時間通信の流量を制限してスイッチ装置の通信キューの成長を防ぐ。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１０−１０７７６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した従来技術では、データの送受信を行う端末装置間が複数のスイッチ装置を介して接続されるトポロジについては考慮されていない。このため、端末装置同士をつなぐ経路上に複数のスイッチ装置を含むネットワークでは、非実時間通信の流量を制御することが難しく、実時間通信を適切に実行することができない場合があるという問題がある。
【０００９】
また、複数のスイッチ装置を用いてネットワークシステムを構築できないと、接続可能な端末装置の最大数が制限されることになり、システム構成の柔軟性や拡張性が低下するという問題がある。ここで、図２２を用いて従来技術の問題点について説明する。
【００１０】
図２２は、従来技術の問題点を示す説明図である。ネットワークシステム２２００において、端末装置２２０１〜２２０３と端末装置２２０４〜２２０６とがスイッチ装置２２１０，２２２０を介して接続されている。なお、ここでは説明のため、端末装置２２０１〜２２０３を送信側とし、端末装置２２０４〜２２０６を受信側とする。
【００１１】
ネットワークシステム２２００では、スイッチ装置２２１０とスイッチ装置２２２０との間で、送信側から受信側に送信されるデータが衝突する。このとき、端末装置２２０１，２２０２から端末装置２２０４に送信されるデータは、端末装置２２０４によって検出することができる。
【００１２】
ところが、端末装置２２０３から端末装置２２０６に送信されるデータについては端末装置２２０４によって検出することができない。したがって、受信側で実時間通信と干渉する非実時間通信を検出して流量を正しく制御することが難しい。この結果、スイッチ装置２２１０において通信キューが増大し、実時間通信に関するデータを規定時間内に処理することができない場合がある。
【００１３】
本開示技術は、上述した従来技術による問題点を解消するため、ネットワーク内のノード間で実行される実時間通信と非実時間通信との衝突を低減させることができる通信プログラム、中継ノード、および通信方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述した課題を解決し、目的を達成するため、本開示技術は、第１および第２のノード群を接続する中継装置を介して前記ノード間の実時間通信を実行するネットワーク内の前記第１のノード群から選ばれた自ノードに、当該自ノードから前記第２のノード群から選ばれた他ノードに辿り着くまでの経路を設定させ、前記第１のノード群のうち前記自ノードを除く残余のノードから前記第２のノード群のうち前記他ノードを除く残余のノードに対する非実時間通信に関するデータを前記自ノードに受信させ、受信されたデータを、設定された経路を用いて、前記自ノードから前記他ノードに転送させることを特徴とする。
【００１５】
本開示技術によれば、第１および第２のノード群から各々選ばれたノード間に設定された仮想リンクを用いて、中継装置を介して実行されるノード間の非実時間通信を一つにまとめて制御することができる。
【発明の効果】
【００１６】
本通信プログラム、中継ノード、および通信方法によれば、ネットワーク内のノード間で実行される実時間通信と非実時間通信との衝突を低減させることができるという効果を奏する。
【図面の簡単な説明】
【００１７】
【図１】本通信手法の概要を示す説明図である。
【図２】実施の形態にかかるネットワークシステムのシステム構成図（その１）である。
【図３】実施の形態にかかるノードのハードウェア構成を示すブロック図である。
【図４−１】アドレステーブルの記憶内容の一例を示す説明図（その１）である。
【図４−２】アドレステーブルの記憶内容の一例を示す説明図（その２）である。
【図４−３】送信先テーブルの記憶内容の一例を示す説明図である。
【図５】中継ノードの機能的構成を示すブロック図である。
【図６】非実時間データのデータ構造の一例を示す説明図である。
【図７】対応テーブルの具体例を示す説明図である。
【図８】受信状況テーブルの記憶内容の一例を示す説明図である。
【図９】割当テーブルの記憶内容の一例を示す説明図（その１）である。
【図１０】割当テーブルの記憶内容の一例を示す説明図（その２）である。
【図１１】通常ノードの機能的構成を示すブロック図である。
【図１２】中継ノードの通信処理手順の一例を示すフローチャートである。
【図１３】ステップＳ１２０６の流量割当処理の具体的処理手順の一例を示すフローチャートである。
【図１４】ステップＳ１２０７の第１の転送処理の具体的処理手順の一例を示すフローチャートである。
【図１５】中継ノードの第１の受信処理手順の一例を示すフローチャートである。
【図１６】中継ノードの第２の受信処理手順の一例を示すフローチャートである。
【図１７】中継ノードの第２の転送処理手順の一例を示すフローチャートである。
【図１８】通常ノードの通信処理手順の一例を示すフローチャートである。
【図１９】ステップＳ１８１０の非実時間通信処理の具体的処理手順の一例を示すフローチャートである。
【図２０】通常ノードの実時間通信処理手順の一例を示すフローチャートである。
【図２１】実施の形態にかかるネットワークシステムのシステム構成図（その２）である。
【図２２】従来技術の問題点を示す説明図である。
【発明を実施するための形態】
【００１８】
以下に添付図面を参照して、この発明にかかる通信プログラム、中継ノード、および通信方法の好適な実施の形態を詳細に説明する。
【００１９】
（本通信手法の概要）
まず、本通信手法の概要について説明する。本通信手法では、周期的に実行される実時間通信と不定期に実行される非実時間通信が混在する局所網において、非実時間通信が実時間通信に干渉しないように制御する。
【００２０】
図１は、本通信手法の概要を示す説明図である。図１に示すように、ある局所網において、ノード群Ｎ１〜Ｎ３とノード群Ｎ４〜Ｎ６とがスイッチ装置ＳＷ１，ＳＷ２を介して接続されている。本通信手法では、図１に示すような複数のスイッチ装置ＳＷ１，ＳＷ２を含む局所網において、以下の（１）〜（４）を実施する。
【００２１】
（１）個々のスイッチ装置ＳＷ１，ＳＷ２に直接接続されているノード群をグループ化する。ここでは、スイッチ装置ＳＷ１に直接接続されているノード群Ｎ１〜Ｎ３によりグループＡが形成され、また、スイッチＳＷ２に直接接続されているノード群Ｎ４〜Ｎ６によりグループＢが形成されている。
【００２２】
（２）グループＡ，Ｂごとに、グループ間の非実時間通信を中継する中継ノードを設置する。ここでは、中継ノードとしてノード群Ｎ１〜Ｎ３からノードＮ１が選ばれ、また、ノード群Ｎ４〜Ｎ６からノードＮ４が選ばれている。これにより、スイッチ装置ＳＷ１，ＳＷ２を経由する非実時間通信を中継ノードＮ１，Ｎ４に集約する。
【００２３】
（３）既存の仮想ネットワーク技術を用いて、中継ノードＮ１から中継ノードＮ４に辿り着くまでの仮想的なリンク（以下、「仮想リンクＶＬ」という）を設定する。これにより、中継ノードＮ１，Ｎ４間の非実時間通信を一つにまとめて、スイッチ装置ＳＷ１，ＳＷ２間の物理リンクＬにおける実時間通信との衝突を低減させる。
【００２４】
（４）実時間通信および非実時間通信の実施期間を全ノードＮ１〜Ｎ６で共有するために、全ノードＮ１〜Ｎ６で同期を取る。これにより、実時間通信と非実時間通信との実施期間を区別することができ、非実時間通信が実時間通信に干渉しないように制御する。
【００２５】
このように、本通信手法では、中継ノードＮ１，Ｎ４同士をつなぐ仮想リンクＶＬを用いて、スイッチ装置ＳＷ１，ＳＷ２を経由するグループ間の非実時間通信を集約して制御することにより、実時間通信との干渉を低減させる。なお、ここでは中継ノードＮ１，Ｎ４をノード群Ｎ１〜Ｎ３，Ｎ４〜Ｎ６から選ぶことにしたが、これに限らない。たとえば、ノード群Ｎ１〜Ｎ６とは別に、グループＡ，Ｂ間の非実時間通信を中継する中継ノードを専用に設置することにしてもよい。
【００２６】
（ネットワークシステムのシステム構成図）
図２は、実施の形態にかかるネットワークシステムのシステム構成図（その１）である。ネットワークシステム２００において、ノードＮ１〜Ｎ１２とスイッチ装置ＳＷ１〜ＳＷ５とが、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのネットワーク２１０を介して通信可能に接続されている。
【００２７】
ここで、ノードＮ１〜Ｎ１２は、通信機能（実時間通信、非実時間通信）を有する通信装置であり、たとえば、自動車やロボットなどに搭載されるＥＣＵ（Ｅｌｅｃｔｒｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）、センサ、アクチュエータなどである。スイッチ装置ＳＷ１〜ＳＷ５は、スイッチング機能を有する中継装置である。なお、スイッチング機能についての詳細な説明は後述する。
【００２８】
ネットワークシステム２００では、個々のスイッチ装置ＳＷ１〜ＳＷ４に直接接続されているノード群Ｎ１〜Ｎ３，Ｎ４〜Ｎ６，Ｎ７〜Ｎ９，Ｎ１０〜Ｎ１２によってグループＧ１〜Ｇ４が形成されている。また、ネットワークシステム２００では、グループＧ１〜Ｇ４ごとに、グループ間の非実時間通信を中継する中継ノードＮ１，Ｎ４，Ｎ７およびＮ１０が設置されている。
【００２９】
また、ネットワークシステム２００では、中継ノード間をつなぐ仮想リンクＶＬ１〜ＶＬ６が設定されている。具体的には、グループＧ１の中継ノードＮ１とグループＧ２〜Ｇ４の中継ノードＮ４，Ｎ７，Ｎ１０とをつなぐ仮想リンクＶＬ１〜ＶＬ３が設定されている。また、グループＧ２の中継ノードＮ４とグループＧ３，Ｇ４の中継ノードＮ７，Ｎ１０とをつなぐ仮想リンクＶＬ４，ＶＬ５が設定されている。さらに、グループＧ３の中継ノードＮ７とグループＧ４の中継ノードＮ１０とをつなぐ仮想リンクＶＬ６が設定されている。
【００３０】
（ノードのハードウェア構成）
図３は、実施の形態にかかるノードのハードウェア構成を示すブロック図である。図３において、ノードＮ１〜Ｎ１２（以下、単に「ノードＮ」と表記）は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０４と、を備えている。なお、ノードＮは、磁気ディスクドライブと、磁気ディスクと、光ディスクドライブと、光ディスクと、を備えていてもよい。また、各構成部はバス３００によってそれぞれ接続されている。
【００３１】
ここで、ＣＰＵ３０１は、ノードＮの全体の制御を司る。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。インターフェース（以下、「Ｉ／Ｆ」と略する。）３０４は、通信回線を通じてＬＡＮなどのネットワーク２１０に接続され、このネットワーク２１０を介して他の装置に接続される。そして、Ｉ／Ｆ３０４は、ネットワーク２１０と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。
【００３２】
また、磁気ディスクドライブは、ＣＰＵ３０１の制御にしたがって磁気ディスクに対するデータのリード／ライトを制御する。磁気ディスクは、磁気ディスクドライブの制御で書き込まれたデータを記憶する。光ディスクドライブは、ＣＰＵ３０１の制御にしたがって光ディスクに対するデータのリード／ライトを制御する。光ディスクは、光ディスクドライブの制御で書き込まれたデータを記憶したり、光ディスクに記憶されたデータをコンピュータに読み取らせたりする。
【００３３】
（アドレステーブルの記憶内容）
つぎに、ノードＮが用いる各種アドレステーブルについて説明する。アドレステーブルは、図３に示したＲＯＭ３０２、ＲＡＭ３０３、磁気ディスク、光ディスクなどの記憶装置に記憶されている。なお、以降において、ネットワーク２１０内の全ノード群のうち、非実時間通信を中継するノードＮを「中継ノードＪＮ」と表記し、中継ノードＮを除く残余のノードＮを「通常ノードＳＮ」と表記する。
【００３４】
図４−１は、アドレステーブルの記憶内容の一例を示す説明図（その１）である。図４−１において、アドレステーブル４００は、ノードＮごとのノードＩＤ、物理アドレス、システムノードアドレス、グループノードアドレスおよび中継ノードを示す情報を有する。アドレステーブル４００は、ネットワークシステム２００内の各ノードＮ１〜Ｎ１２が持っている。
【００３５】
ここで、ノードＩＤとは、ノードＮの識別子である。物理アドレスとは、ＬＡＮに接続されるＩ／Ｆ３０４固有のアドレスであり、たとえば、イーサネットのＭＡＣアドレスなどである。システムノードアドレスとは、ネットワークシステム２００全体で一意に決まるノードＮのアドレスである。グループノードアドレスとは、ネットワークシステム２００内の各グループＧ１〜Ｇ４で一意に決まるノードＮのアドレスである。
【００３６】
また、図４−１の例においては、グループノードアドレスのドット「．」で区切られた４組の数字のうち１〜３番目の数字はグループＧ１〜Ｇ４を識別するグループ番号であり、４番目の数字はグループ内のノードＮを識別するノード番号である。「／３」の表記は、３番目までの数字がグループ番号であることを示す。グループ番号とノード番号に割り当てる数字の数を変更することで、システム内のグループ数とグループ内のノード数とを調整する。
【００３７】
図４−２は、アドレステーブルの記憶内容の一例を示す説明図（その２）である。図４−２において、アドレステーブル４０１は、ノードＩＤ、システムノードアドレス、対応物理アドレス、グループノードアドレスおよび対応物理アドレスを有する。アドレステーブル４０１は、グループＧ１に属するノードＮが持っている。
【００３８】
ここで、システムノードアドレスおよびグループノードアドレスは、それぞれ物理アドレスと対応付けられている（対応物理アドレス）。システムノードアドレスまたはグループノードアドレスが設定されたデータは、対応する物理アドレスのノードＮへ直接送信される。また、対応物理アドレスが存在しない、かつ、自身が属するグループと異なるグループのグループノードアドレスに対するデータ送信は、中継ノードを介して転送される。
【００３９】
中継ノードは、予め設定された情報、もしくは、選出アルゴリズムによって決定される。中継ノードは、グループ内から必ず一つ（以上）決定される。その他のノードは、自身が属するグループと異なるグループにデータを送信する場合、決定された中継ノードを中継して転送するよう経路設定をおこなう（図４−３参照）。
【００４０】
図４−３は、送信先テーブルの記憶内容の一例を示す説明図である。図４−３において、送信先テーブル４０２には、グループＧ１に属するノードＮの送信先となるノードＮの宛先アドレスと物理アドレスとが対応付けて示されている。
【００４１】
（中継ノードの機能的構成）
つぎに、中継ノードＪＮ（たとえば、ネットワークシステム２００内のノードＮ１，Ｎ４，Ｎ７，Ｎ１０）の機能的構成について説明する。図５は、中継ノードの機能的構成を示すブロック図である。図５において、中継ノードＪＮは、設定部５０１と、受信部５０２と、関連付け部５０３と、転送部５０４と、検出部５０５と、算出部５０６と、割当部５０７と、送信部５０８と、を含む構成である。この制御部となる機能（設定部５０１〜送信部５０８）は、具体的には、たとえば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、磁気ディスク、光ディスクなどの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０４により、その機能を実現する。
【００４２】
設定部５０１は、ネットワーク２１０内の第１のノード群から選ばれた自ノードから第２のノード群から選ばれた他ノードに辿り着くまでの経路を設定する機能を有する。ここで、ネットワーク２１０とは、たとえば、複数のスイッチ装置を含む局所網である。また、各ノード群は、ネットワーク２１０内の個々のスイッチ装置と直接接続されたノードの集合である。
【００４３】
以降において、各機能の具体例を説明する場合、中継ノードＪＮとして、ネットワークシステム２００内のノードＮ１を想定する。すなわち、ノード群Ｎ１〜Ｎ３が第１のノード群となり、ノード群Ｎ４〜Ｎ６とノード群Ｎ７〜Ｎ９とノード群Ｎ１０〜Ｎ１２が第２のノード群となる。
【００４４】
この場合、たとえば、システムの設定情報として図４−１のアドレステーブル４００が与えられているとして、設定部５０１が、アドレステーブル４００を参照して、自ノードＮ１を除く中継ノードのフィールドに「Ｙｅｓ」が設定されている他ノードＮ４，Ｎ７，Ｎ１０を特定する。そして、設定部５０１が、既存の仮想ネットワーク技術を用いて、自ノードＮ１と他ノードＮ４，Ｎ７，Ｎ１０とをそれぞれつなぐ仮想リンクＶＬ１〜ＶＬ３（図２参照）を設定する。
【００４５】
なお、仮想ネットワーク技術としては、たとえば、オーバーレイネットワークを用いることができる。ただし、仮想リンクの設定手法についての詳細な説明は既存技術のため説明を省略する。また、設定結果は、ＲＡＭ３０３、磁気ディスク、光ディスクなどの記憶装置に記憶される。
【００４６】
受信部５０２は、第１のノード群のうち通常ノードＳＮから非実時間通信に関するデータ（以下、「非実時間データ」という）を受信する機能を有する。ここで、非実時間データとは、実時間性が要求されないデータであり、たとえば、改善されたプログラムの修正データである。ここでは、特に、第１のノード群の通常ノードＳＮから第２のノード群の通常ノードＳＮに対する非実時間データを対象とする。
【００４７】
具体的には、たとえば、受信部５０２が、スイッチ装置ＳＷ１を介して、グループＧ１のノードＮ３からグループＧ２のノードＮ５に対する非実時間データを受信する。なお、受信結果は、ＲＡＭ３０３、磁気ディスク、光ディスクなどの記憶装置に記憶される。
【００４８】
ここで、非実時間データのデータ構造について説明する。図６は、非実時間データのデータ構造の一例を示す説明図である。図６において、データ構造６００は、ヘッダ領域とデータ領域を有する。ヘッダ領域には、物理宛先アドレス、論理宛先アドレス、データ量が設定される。データ領域には、各ノードＮのアプリケーションがやり取りするデータが書き込まれる。
【００４９】
物理宛先アドレスとは、非実時間データの直接の送信先を示す物理アドレスである。論理宛先アドレスとは、非実時間データの最終的な宛先を示す論理アドレスである。論理宛先アドレスは、具体的には、システムノードアドレスとグループノードアドレスに相当する。ここでは、論理宛先アドレスとして、各グループ内でのみ通用するグループノードアドレスが設定される。データ量とは、非実時間データのデータ量である。
【００５０】
なお、図２に示したスイッチ装置ＳＷ１〜ＳＷ４は、指定された物理宛先アドレスにしたがって、受信したデータを宛先ノードに転送する。
【００５１】
図５の説明に戻り、関連付け部５０３は、受信された非実時間データと、設定された経路とを関連付ける機能を有する。なお、ここでの非実時間データは、第１のノード群の通常ノードＳＮから受信したものである。具体的には、たとえば、関連付け部５０３が、システムの設定情報として与えられたアドレステーブル４００をもとに、宛先アドレスから転送先を決定する対応テーブル７００（図７参照）を作成する。
【００５２】
図７は、対応テーブルの具体例を示す説明図である。図７において、対応テーブル７００は、宛先アドレスおよび転送先のフィールドを有する。各フィールドに情報を設定することで、非実時間データの転送先がレコードとして記憶されている。
【００５３】
図７中、「ＶＬＭ−Ｎ」は、グループＧＭからグループＧＮへの仮想リンクを表している。また、「ＶＬＭ−Ｎ」と「ＶＬＮ−Ｍ」とは同じ仮想リンクを表している。なお、図７においては、宛先アドレスごとに転送先を持つように表記しているが、グループ外への転送対応表はグループ番号ごとに管理される。
【００５４】
図５の説明に戻り、転送部５０４は、受信された非実時間データを転送する機能を有する。具体的には、たとえば、転送部５０４が、図７に示した対応テーブル７００を参照して、受信された非実時間データを他ノードに転送する。
【００５５】
検出部５０５は、ネットワーク２１０内で周期的に実行される実時間通信の周期開始時刻を検出する機能を有する。具体的には、たとえば、検出部５０５が、自ノードでの時刻を計時し、実時間通信の周期開始時刻となった時刻を検出する。ただし、周期的に実行される実時間通信の時間間隔は予め設定されている。
【００５６】
送信部５０８は、実時間通信の周期開始時刻が検出された結果、同期パケットを他ノードに送信する機能を有する。具体的には、たとえば、送信部５０８が、実時間通信を実行するタイミングの同期を取るための識別子が付与された同期パケットを他ノードに送信する。これにより、ネットワークシステム２００内の中継ノードＪＮ間で同期を取ることができる。
【００５７】
さらに、送信部５０８が、同期パケットを通常ノードＳＮに送信する。これにより、グループ内の全ノードで同期を取ることができる。すなわち、自ノードが基点となり、ネットワークシステム２００内の自ノードを除く残余のノードＮに同期パケットを送信することにより、全ノードＮ１〜Ｎ１２で同期を取ることができる。
【００５８】
ただし、検出部５０５は、実時間通信の周期開始時刻となる前に、他ノードから同期パケットを受信した場合、同期パケットの受信時刻を実時間通信の周期開始時刻として検出することになる。なお、検出結果は、ＲＡＭ３０３、磁気ディスク、光ディスクなどの記憶装置に記憶される。
【００５９】
また、転送部５０４は、検出された実時間通信の周期開始時刻とは異なる時刻に、非実時間データを他ノードに転送することにしてもよい。これにより、実時間通信と非実時間通信との実行タイミングを区別することが可能となり、中継装置（たとえば、スイッチ装置ＳＷ１〜ＳＷ５）を経由する実時間通信と非実時間通信との衝突を回避することができる。
【００６０】
なお以降において、周期的に実行される実時間通信の時間間隔を第１の周期とし、第１の周期をＭ分割した時間間隔を非実時間データの転送処理を実行する第２の周期とする。ただし、上記Ｍは、ネットワークシステム２００のシステム要件などに合わせて任意に設定される。
【００６１】
また、受信部５０２は、設定された経路を用いて、非実時間データを他ノードから受信する機能を有する。具体的には、たとえば、受信部５０２が、仮想リンクＶＬ１を用いて、非実時間データをノードＮ４から受信する。なお、他ノードから転送される非実時間データには、自ノードと同一グループ内の通常ノードＳＮのグループノードアドレスが設定されている。
【００６２】
図８は、受信状況テーブルの記憶内容の一例を示す説明図である。図８において、受信状況テーブル８００は、仮想リンクＩＤおよびデータ流量のフィールドを有し、仮想リンクＶＬ１〜ＶＬ３ごとのデータ流量をレコードとして記憶している。ただし、データ流量は、第２の周期の前回フェーズに他ノードから受信した非実時間データの受信量である。また、データ流量は、たとえば、単位時間当たりの通信速度（Ｍｂｐｓ、Ｋｂｐｓなど）によって表現される。
【００６３】
また、転送部５０４は、受信された非実時間データを通常ノードＳＮに転送する機能を有する。具体的には、たとえば、転送部５０４が、スイッチ装置ＳＷ１を介して、受信された非実時間データを、該非実時間データに設定されているグループノードアドレス宛に転送する。
【００６４】
これにより、他グループの通常ノードＳＮからの非実時間データを同一グループ内の通常ノードＳＮに転送することができる。また、転送部５０４は、自ノードと通常ノードＳＮとをつなぐ物理リンクＰＬに割り当てられたデータ流量にしたがって、非実時間データを通常ノードＳＮに転送することにしてもよい。
【００６５】
算出部５０６は、ネットワーク２１０の伝送能力に基づいて、設定された経路に割り当てるデータ流量を算出する機能を有する。ここで、ネットワーク２１０の伝送能力とは、たとえば、ネットワークシステム２００の物理リンクのキャパシティ（単位時間当たりの通信速度）である。具体的には、たとえば、算出部５０６が、物理リンクのキャパシティを、設定された仮想リンクＶＬ数で除算して、各仮想リンクＶＬに割り当てるデータ流量を算出する。
【００６６】
一例として、ネットワークシステム２００の物理リンクのキャパシティを１２［Ｍｂｐｓ］とする。この場合、各仮想リンクＶＬ１〜ＶＬ３に割り当てるデータ流量は４（＝１２／３）［Ｍｂｐｓ］となる。これにより、物理リンクのキャパシティを仮想リンクＶＬ１〜ＶＬ３に均等に割り当てることができる。なお、算出結果は、ＲＡＭ３０３、磁気ディスク、光ディスクなどの記憶装置に記憶される。
【００６７】
また、算出部５０６は、他ノードから受信した非実時間データのデータ流量に基づいて、設定された経路に割り当てるデータ流量を算出することにしてもよい。具体的には、たとえば、算出部５０６が、図８に示した受信状況テーブル８００を参照して、他ノードＮ４，Ｎ７，Ｎ１０から受信した非実時間データのデータ流量に基づいて、仮想リンクＶＬ１〜ＶＬ３に割り当てるデータ流量を算出する。
【００６８】
より具体的には、たとえば、物理リンクのキャパシティを超えないように、かつ、最大限に有効活用するように仮想リンクＶＬ１〜ＶＬ３ごとのデータ流量を算出する。これにより、中継ノード間の非実時間通信の通信状況に応じて、仮想リンクＶＬ１〜ＶＬ３に割り当てるデータ流量を動的に制御することができる。なお、通信状況に応じて割り当てるデータ流量を制御する手法は既存技術のため詳細な説明を省略する。
【００６９】
また、割当部５０７は、算出されたデータ流量を、設定された経路に割り当てる機能を有する。具体的には、たとえば、割当部５０７が、自ノードと他ノードとをつなぐ仮想リンクＶＬと該仮想リンクＶＬに割り当てられたデータ流量とを関連付けて図９に示す割当テーブル９００に記憶する。ここで、割当テーブル９００の記憶内容の一例について説明する。
【００７０】
図９は、割当テーブルの記憶内容の一例を示す説明図（その１）である。図９において、割当テーブル９００は、仮想リンクＩＤおよびデータ流量のフィールドを有し、仮想リンクＶＬ１〜ＶＬ３ごとの割当結果をレコードとして記憶している。なお、割当テーブル９００は、ＲＡＭ３０３、磁気ディスク、光ディスクなどの記憶装置に記憶される。
【００７１】
送信部５０８は、割当結果を他ノードに送信する機能を有する。具体的には、たとえば、まず、送信部５０８が、割当テーブル９００を参照して、自ノードと他ノードとをつなぐ仮想リンクＶＬに割り当てられたデータ流量を特定する。また、送信部５０８が、アドレステーブル４００を参照して、他ノードのシステムノードアドレスを特定する。そして、送信部５０８が、特定されたシステムノードアドレスを用いて、特定されたデータ流量を他ノードに送信する。
【００７２】
また、受信部５０２は、自ノートから他ノードに辿り着くまでの経路に割り当てられた割当結果を他ノードから受信する機能を有する。なお、受信された仮想リンクＶＬの割当結果は、たとえば、関連付け部５０３により、仮想リンクＩＤと関連付けて図１０に示す割当テーブル１０００に記憶される。
【００７３】
図１０は、割当テーブルの記憶内容の一例を示す説明図（その２）である。図１０において、割当テーブル１０００は、仮想リンクＩＤおよびデータ流量のフィールドを有し、仮想リンクＶＬ１〜ＶＬ３ごとの割当結果をレコードとして記憶している。なお、割当テーブル１０００は、ＲＡＭ３０３、磁気ディスク、光ディスクなどの記憶装置に記憶される。
【００７４】
また、転送部５０４は、受信された割当結果にしたがって、非実時間データを他ノードに転送する機能を有する。具体的には、たとえば、転送部５０４が、割当テーブル１０００を参照して、仮想リンクＶＬ１に割り当てられたデータ流量Ｘ’を超えないように非実時間データをノードＮ４に転送する。これにより、たとえば、ネットワークシステム２００内の物理リンクのキャパシティを超える非実時間通信を回避して、スイッチ装置ＳＷ１の通信キューの増大を抑制することができる。
【００７５】
（通常ノードの機能的構成）
つぎに、通常ノードＳＮ（たとえば、グループＧ１内のノードＮ２，Ｎ３）の機能的構成について説明する。図１１は、通常ノードの機能的構成を示すブロック図である。図１１において、通常ノードＳＮは、第１の実行部１１０１と、第２の実行部１１０３と、送信部１１０２と、受信部１１０４と、算出部１１０５と、割当部１１０６と、を含む構成である。この制御部となる機能（第１の実行部１１０１〜割当部１１０６）は、具体的には、たとえば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、磁気ディスク、光ディスクなどの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０４により、その機能を実現する。
【００７６】
第１の実行部１１０１は、実時間通信を実行する機能を有する。具体的には、たとえば、第１の実行部１１０１は、送信部１１０２を制御して、ノードＮのシステムノードを宛先アドレスに設定して、実時間通信に関するデータ（以下、「実時間データ」という）を送信する。
【００７７】
ここで、実時間データとは、実時間性が要求されるデータであり、たとえば、フィードバック制御のためのデータである。なお、第１の実行部１１０１は、予め設定された時間間隔で周期的に実時間通信を実行する。ただし、実時間通信の周期開始時刻は、同一グループ内の中継ノードＪＮから同期パケットを受信した受信時刻である。
【００７８】
第２の実行部１１０３は、非実時間通信を実行する機能を有する。具体的には、たとえば、第２の実行部１１０３が、送信部１１０２を制御して、ノードＮのグループノードアドレスを宛先アドレスに設定して、非実時間データを送信する。ただし、異なるグループ内のノードＮに非実時間データを送信する場合、自ノードＮと同一グループ内の中継ノードＪＮを経由してノードＮに送信することになる。
【００７９】
以降において、各機能の具体例を説明する場合、通常ノードＳＮとして、ネットワークシステム２００内のノードＮ２を想定する。
【００８０】
受信部１１０４は、実時間データおよび非実時間データを受信する機能を有する。具体的には、たとえば、受信部１１０４が、スイッチ装置ＳＷ１を介して、実時間データまたは非実時間データを受信する。
【００８１】
算出部１１０５は、受信された非実時間データのデータ流量に基づいて、第１のノード群のうち自ノードと他ノードとをつなぐ経路に割り当てるデータ流量を算出する機能を有する。ここで、自ノードと他ノードとをつなぐ経路とは、スイッチ装置ＳＷ１を介して接続されるノードＮ２とノードＮ１，Ｎ３とをそれぞれつなぐ物理リンクＰＬである。
【００８２】
なお、算出部１１０５による算出処理は、上述した中継ノードＪＮの算出部５０６による算出処理と同様のため、ここでは説明を省略する。
【００８３】
割当部１１０６は、算出されたデータ流量を、自ノードと他ノードとをつなぐ経路に割り当てる機能を有する。具体的には、たとえば、割当部１１０６が、自ノードと他ノードとをつなぐ物理リンクＰＬと該物理リンクＰＬに割り当てられたデータ流量とを関連付けて保持する。
【００８４】
送信部１１０２は、割当結果を他ノードに送信する機能を有する。具体的には、たとえば、送信部１１０２が、アドレステーブル４０２を参照して、他ノードのシステムノードアドレスを特定する。そして、送信部１１０２が、特定されたシステムノードアドレスを用いて、自ノードと他ノードとの間に設定された物理リンクＰＬに割り当てられたデータ流量を送信する。
【００８５】
また、受信部１１０４は、自ノードから他ノードに辿り着くまでの経路に割り当てられた割当結果を他ノードから受信する機能を有する。そして、第２の実行部１１０３は、受信された割当結果にしたがって、非実時間データを実行する。具体的には、たとえば、第２の実行部１１０３が、送信部１１０２を制御して、物理リンクＶＬに割り当てられたデータ流量を超えないように非実時間データを他ノードに送信する。
【００８６】
（中継ノードの通信処理手順）
つぎに、中継ノードＪＮの通信処理手順について説明する。ただし、ネットワークシステム２００内の全ノード群のうち、自ノードを除く他の中継ノードＪＮを「中継ノードＪＮｉ（ｉ＝１，２，…，ｎ）」と表記する。また、自ノードと同一グループ内の通常ノードＳＮを「通常ノードＳＮｊ（ｊ＝１，２，…，ｍ）」と表記する。また、自ノードと中継ノードＪＮ１〜ＪＮｎとをつなぐ仮想リンクＶＬ１〜ＶＬｎは予め設定されていることにする。
【００８７】
図１２は、中継ノードの通信処理手順の一例を示すフローチャートである。図１２のフローチャートにおいて、まず、検出部５０５により、ネットワークシステム２００を起動してから第１の周期の周期間隔分の時間が経過したか否かを判断する（ステップＳ１２０１）。
【００８８】
ここで、第１の周期の時間間隔分経過していない場合（ステップＳ１２０１：Ｎｏ）、受信部５０２により、中継ノードＪＮｉから同期パケットを受信したか否かを判断する（ステップＳ１２０２）。ここで、同期パケットを受信していない場合は（ステップＳ１２０２：Ｎｏ）、ステップＳ１２０１に戻る。
【００８９】
一方、同期パケットを受信した場合（ステップＳ１２０２；Ｙｅｓ）、検出部５０５により、同期パケットの受信時刻を第１の周期の周期開始時刻として検出する（ステップＳ１２０３）。そして、自ノードと中継ノードＪＮｉとをつなぐ仮想リンクＶＬｉにデータ流量を割り当てる流量割当処理を実行する（ステップＳ１２０６）。
【００９０】
このあと、転送部５０４により、仮想リンクＶＬｉを用いて、非実時間データを中継ノードＪＮｉに転送する第１の転送処理を実行する（ステップＳ１２０７）。つぎに、ネットワークシステム２００の停止指示があったか否かを判断する（ステップＳ１２０８）。
【００９１】
ここで、停止指示がない場合は（ステップＳ１２０８：Ｎｏ）、第２の周期の周期開始時刻となるまで待つ（ステップＳ１２０９：Ｎｏ）。そして、第２の周期の周期開始時刻となった場合に（ステップＳ１２０９：Ｙｅｓ）、ステップＳ１２０６に戻る。
【００９２】
また、ステップＳ１２０１において、第１の周期の時間間隔分経過した場合（ステップＳ１２０１：Ｙｅｓ）、検出部５０５により、第１の周期の時間間隔分経過した時刻を第１の周期の周期開始時刻として検出する（ステップＳ１２０４）。そして、送信部５０８により、中継ノードＪＮ１〜ＪＮｎに同期パケット送信して（ステップＳ１２０５）、ステップＳ１２０６に移行する。
【００９３】
また、ステップＳ１２０８において、ネットワークシステム２００の停止指示があった場合は（ステップＳ１２０８：Ｙｅｓ）、本フローチャートによる一連の処理を終了する。なお、ネットワークシステム２００の停止指示は、たとえば、任意のタイミングで受け付けることにしてもよい。
【００９４】
＜流量割当処理手順＞
つぎに、図１２に示したステップＳ１２０６の流量割当処理の具体的処理手順について説明する。図１３は、ステップＳ１２０６の流量割当処理の具体的処理手順の一例を示すフローチャートである。
【００９５】
図１３のフローチャートにおいて、まず、現在時刻が第１の周期の周期開始時刻か否かを判断する（ステップＳ１３０１）。ここで、第１の周期の周期開始時刻の場合（ステップＳ１３０１：Ｙｅｓ）、送信部５０８により、通常ノードＳＮ１〜ＳＮｍに同期パケットを送信する（ステップＳ１３０２）。
【００９６】
このあと、割当部５０７により、自ノードと中継ノードＪＮ１〜ＪＮｎとをつなぐ仮想リンクＶＬ１〜ＶＬｎにデータ流量「０」を割り当てる（ステップＳ１３０３）。そして、送信部５０８により、中継ノードＪＮ１〜ＪＮｎに割当結果を送信して（ステップＳ１３０４）、図１２に示したステップＳ１２０７に移行する。
【００９７】
一方、ステップＳ１３０１において、現在時刻が第１の周期の周期開始時刻ではない場合（ステップＳ１３０１：Ｎｏ）、ｉ＝１として（ステップＳ１３０５）、ｉ＞ｎか否かを判断する（ステップＳ１３０６）。ここで、ｉ≦ｎの場合（ステップＳ１３０６：Ｎｏ）、算出部５０６により、仮想リンクＶＬｉに割り当てるデータ流量を算出する（ステップＳ１３０７）。
【００９８】
そして、割当部５０７により、仮想リンクＶＬｉに算出されたデータ流量を割り当て（ステップＳ１３０８）、送信部５０８により、中継ノードＪＮｉに割当結果を送信する（ステップＳ１３０９）。このあと、ｉ＝ｉ＋１として（ステップＳ１３１０）、ステップＳ１３０６に戻る。
【００９９】
また、ステップＳ１３０６において、ｉ＞ｎの場合は（ステップＳ１３０６：Ｙｅｓ）、図１２に示したステップＳ１２０７に移行する。
【０１００】
これにより、実時間通信と非実時間通信との実施期間を区別して、実時間通信と非実時間通信との衝突を回避することができる。
【０１０１】
＜第１の転送処理手順＞
つぎに、図１２に示したステップＳ１２０７の第１の転送処理の具体的処理手順について説明する。図１４は、ステップＳ１２０７の第１の転送処理の具体的処理手順の一例を示すフローチャートである。
【０１０２】
図１４のフローチャートにおいて、まず、ｉ＝１として（ステップＳ１４０１）、ｉ＞ｎか否かを判断する（ステップＳ１４０２）。ここで、ｉ≦ｎの場合（ステップＳ１４０２：Ｎｏ）、転送部５０４により、割当テーブル１０００を参照して、仮想リンクＶＬｉに割り当てられたデータ流量を特定する（ステップＳ１４０３）。
【０１０３】
つぎに、転送部５０４により、対応テーブル７００を参照して、仮想リンクＶＬｉに対応する非実時間データを記憶装置から読み出す（ステップＳ１４０４）。そして、転送部５０４により、仮想リンクＶＬｉを用いて、ステップＳ１４０３において特定されたデータ流量にしたがって、読み出した非実時間データを転送する（ステップＳ１４０５）。
【０１０４】
このあと、ｉ＝ｉ＋１として（ステップＳ１４０６）、ステップＳ１４０２に戻り、ｉ＞ｎとなった場合（ステップＳ１４０２：Ｙｅｓ）、図１２に示したステップＳ１２０８に移行する。
【０１０５】
これにより、ネットワーク２１０の物理リンクのキャパシティや実際の通信状況に応じて、非実時間通信のデータ流量を制御することができる。
【０１０６】
＜第１の受信処理手順＞
つぎに、同一グループ内の通常ノードＳＮｊから非実時間データを受信する第１の受信処理の処理手順について説明する。図１５は、中継ノードの第１の受信処理手順の一例を示すフローチャートである。図１５のフローチャートにおいて、まず、受信部５０２により、通常ノードＳＮｊから非実時間データを受信したか否かを判断する（ステップＳ１５０１）。
【０１０７】
ここで、非実時間データを受信するのを待って（ステップＳ１５０１：Ｎｏ）、受信した場合（ステップＳ１５０１：Ｙｅｓ）、関連付け部５０３により、受信された非実時間データに設定されている宛先アドレスのノードＮと同一グループの中継ノードＪＮｉを特定する（ステップＳ１５０２）。
【０１０８】
このあと、関連付け部５０３により、自ノードと特定された中継ノードＪＮｉとをつなぐ仮想リンクＶＬｉを特定する（ステップＳ１５０３）。最後に、関連付け部５０３により、非実時間データのデータＩＤと仮想リンクＶＬｉの仮想リンクＩＤとを関連付けて対応テーブル７００に記憶して（ステップＳ１５０４）、本フローチャートによる一連の処理を終了する。
【０１０９】
これにより、複数の仮想リンクＶＬ１〜ＶＬｎの中から非実時間データの転送に用いる仮想リンクＶＬｉを特定することができる。
【０１１０】
＜第２の受信処理手順＞
つぎに、自ノードと中継ノードＪＮｉとをつなぐ仮想リンクＶＬｉに割り当てられた割当結果を受信する第２の受信処理の処理手順について説明する。図１６は、中継ノードの第２の受信処理手順の一例を示すフローチャートである。図１６のフローチャートにおいて、まず、受信部５０２により、中継ノードＪＮｉから割当結果を受信したか否かを判断する（ステップＳ１６０１）。
【０１１１】
ここで、割当結果を受信するのを待って（ステップＳ１６０１：Ｎｏ）、受信した場合（ステップＳ１６０１：Ｙｅｓ）、関連付け部５０３により、自ノードと中継ノードＪＮｉとをつなぐ仮想リンクＶＬｉを特定する（ステップＳ１６０２）。最後に、関連付け部５０３により、特定された仮想リンクＶＬｉと受信された割当結果とを関連付けて割当テーブル１０００に記憶して（ステップＳ１６０３）、本フローチャートによる一連の処理を終了する。
【０１１２】
これにより、各仮想リンクＶＬ１〜ＶＬｎに割り当てられた非実時間データのデータ流量を特定することができる。
【０１１３】
＜第２の転送処理手順＞
つぎに、中継ノードＪＮｉからの非実時間データを通常ノードＳＮｊに転送する第２の転送処理の処理手順について説明する。図１７は、中継ノードの第２の転送処理手順の一例を示すフローチャートである。
【０１１４】
図１７のフローチャートにおいて、まず、受信部５０２により、中継ノードＪＮｉから非実時間データを受信したか否かを判断する（ステップＳ１７０１）。ここで、非実時間データを受信するのを待って（ステップＳ１７０１：Ｎｏ）、受信した場合（ステップＳ１７０１：Ｙｅｓ）、転送部５０４により、受信された非実時間データを、該非実時間データに設定されているグループノードアドレス宛に転送する（ステップＳ１７０２）。
【０１１５】
これにより、異なるグループ間の非実時間データを、中継ノードＪＮを介して転送することができる。
【０１１６】
（通常ノードの通信処理手順）
つぎに、通常ノードＳＮの通信処理手順について説明する。ただし、同一グループ内の自ノードを除く残余のノードＮを「グループノードＧＮｋ（ｋ＝１，２，…，ｍ）」と表記する。図１８は、通常ノードの通信処理手順の一例を示すフローチャートである。図１８のフローチャートにおいて、まず、現在時刻が第１の周期の周期開始時刻か否かを判断する（ステップＳ１８０１）。
【０１１７】
ここで、第１の周期の周期開始時刻の場合（ステップＳ１８０１：Ｙｅｓ）、割当部１１０６により、自ノードとグループノードＧＮ１〜ＧＮｍとをつなぐ物理リンクＶＬ１〜ＶＬｍにデータ流量「０」を割り当てる（ステップＳ１８０２）。そして、送信部１１０２により、グループノードＧＮ１〜ＧＮｍに割当結果を送信して（ステップＳ１８０３）、ステップＳ１８１０に移行する。
【０１１８】
一方、ステップＳ１８０１において、現在時刻が第１の周期の周期開始時刻ではない場合（ステップＳ１８０１：Ｎｏ）、ｋ＝１として（ステップＳ１８０４）、ｋ＞ｍか否かを判断する（ステップＳ１８０５）。ここで、ｋ≦ｍの場合（ステップＳ１８０５：Ｎｏ）、算出部１１０５により、物理リンクＰＬｋに割り当てるデータ流量を算出する（ステップＳ１８０６）。
【０１１９】
そして、割当部１１０６により、物理リンクＰＬｋに算出されたデータ流量を割り当て（ステップＳ１８０７）、送信部１１０２により、グループノードＧＮｋに割当結果を送信する（ステップＳ１８０８）。このあと、ｋ＝ｋ＋１として（ステップＳ１８０９）、ステップＳ１８０５に戻る。
【０１２０】
また、ステップＳ１８０５において、ｋ＞ｍの場合は（ステップＳ１８０５：Ｙｅｓ）、第２の実行部１１０３により、非実時間通信処理を実行する（ステップＳ１８１０）。つぎに、ネットワークシステム２００の停止指示があったか否かを判断する（ステップＳ１８１１）。
【０１２１】
ここで、停止指示がない場合は（ステップＳ１８１１：Ｎｏ）、第２の周期の周期開始時刻となるまで待つ（ステップＳ１８１２：Ｎｏ）。そして、第２の周期の周期開始時刻となった場合に（ステップＳ１８１２：Ｙｅｓ）、ステップＳ１８０１に戻る。また、ステップＳ１８１１において、ネットワークシステム２００の停止指示があった場合は（ステップＳ１８１１：Ｙｅｓ）、本フローチャートによる一連の処理を終了する。
【０１２２】
これにより実時間通信と非実時間通信との実施期間を区別して、実時間通信と非実時間通信との衝突を回避することができる。
【０１２３】
＜非実時間通信処理手順＞
つぎに、図１８に示したステップＳ１８１０の非実時間通信処理の具体的処理手順について説明する。図１９は、ステップＳ１８１０の非実時間通信処理の具体的処理手順の一例を示すフローチャートである。
【０１２４】
図１９のフローチャートにおいて、まず、ｋ＝１として（ステップＳ１９０１）、ｋ＞ｍか否かを判断する（ステップＳ１９０２）。ここで、ｋ≦ｍの場合（ステップＳ１９０２：Ｎｏ）、第２の実行部１１０３により、物理リンクＰＬｋに割り当てられたデータ流量を特定する（ステップＳ１９０３）。
【０１２５】
つぎに、第２の実行部１１０３により、物理リンクＰＬｋに対応する非実時間データを記憶装置から読み出す（ステップＳ１９０４）。そして、第２の実行部１１０３により、送信部１１０２を制御して、物理リンクＰＬｋを用いて、ステップＳ１９０３において特定されたデータ流量にしたがって、読み出した非実時間データを送信する（ステップＳ１９０５）。
【０１２６】
このあと、ｋ＝ｋ＋１として（ステップＳ１９０６）、ステップＳ１９０２に戻り、ｋ＞ｍとなった場合（ステップＳ１９０２：Ｙｅｓ）、図１８に示したステップＳ１８１１に移行する。
【０１２７】
これにより、ネットワーク２１０の物理リンクのキャパシティや実際の通信状況に応じて、非実時間通信のデータ流量を制御することができる。
【０１２８】
＜実時間通信処理手順＞
つぎに、通常ノードＳＮの実時間通信処理手順について説明する。図２０は、通常ノードの実時間通信処理手順の一例を示すフローチャートである。図２０のフローチャートにおいて、まず、現在時刻が第１の周期の周期開始時刻か否かを判断する（ステップＳ２００１）。
【０１２９】
ここで、現在時刻が第１の周期の周期開始時刻となるのを待って（ステップＳ２００１：Ｎｏ）、第１の周期の周期開始時刻となった場合（ステップＳ２００１：Ｙｅｓ）、第１の実行部１１０１により、物理リンクＰＬ１〜ＰＬｍに対応する実時間データを記憶装置から読み出す（ステップＳ２００２）。そして、第２の実行部１１０３により、送信部１１０２を制御して、物理リンクＰＬ１〜ＰＬｍを用いて、読み出した実時間データを送信する（ステップＳ２００３）。
【０１３０】
なお、本明細書では、実時間データと非実時間データとを宛先アドレスの違いにより区別することにしたがこれに限らない。具体的には、たとえば、実時間データおよび非実時間データのヘッダ情報としていずれかの通信であることを示す情報を付与してもよい。
【０１３１】
以上説明したように、本開示技術によれば、各グループから選ばれた中継ノードＪＮ間をつなぐ仮想リンクＶＬを用いて、グループ間の非実時間データを転送することができる。これにより、グループ間の非実時間データを一つにまとめて、実時間通信との衝突を低減させることができる。
【０１３２】
また、本開示技術によれば、ネットワーク２１０内で周期的に実行される実時間通信の周期開始時刻とは異なる時刻に、グループ間の非実時間データを転送することができる。これにより、実時間通信と非実時間通信との実施期間を区別して、実時間通信と非実時間通信との衝突を回避することができる。
【０１３３】
また、本開示技術によれば、複数のスイッチ装置を用いてネットワークシステム２００が構築可能となるため、システム構成の柔軟性や拡張性を向上させることができる。
【０１３４】
また、本開示技術によれば、ネットワーク２１０の伝送能力に基づいて、仮想リンクＶＬに割り当てるデータ流量を算出することができる。これにより、ネットワーク２１０の物理リンクのキャパシティに応じて、非実時間通信のデータ流量を制御することができる。
【０１３５】
また、本開示技術によれば、他グループの中継ノードＪＮから転送された非実時間データに基づいて、仮想リンクＶＬに割り当てるデータ流量を算出することができる。これにより、グループ間の実際の通信状況に応じて、非実時間通信のデータ流量を制御することができる。
【０１３６】
また、本開示技術によれば、ネットワークシステム２００全体で一意に決まるノードＮの宛先アドレスを用いて実時間通信を実行することができる。また、本開示技術によれば、各グループで一意に決まるノードＮの宛先アドレスを用いて非実時間通信を実行することができる。これにより、ネットワークシステム２００において、実時間データと、非実時間データとを区別することができる。
【０１３７】
また、上述した通信手法では、中継ノードＪＮと直接接続されていないスイッチ装置を隣り合って接続することができないというトポロジ上の制約が存在する。具体的には、たとえば、コアスイッチやルータスイッチなどのスイッチ装置間をつなぐスイッチ装置を設置する場合、中継ノードＪＮと直接接続されていないスイッチ装置を隣り合って接続することになる。この場合、中継ノードＪＮと直接接続されていないスイッチ装置間でデータが衝突し、従来技術と同様の問題が生じてしまう。
【０１３８】
そこで、スイッチ装置同士をつなぐスイッチ装置に中継ノードＪＮを設置する。具体的には、中継ノードＪＮと直接接続されたスイッチ装置と、中継ノードＪＮと直接接続されていないスイッチ装置とをつなぐスイッチ装置に中継ノードＪＮを設置する。
【０１３９】
図２１は、実施の形態にかかるネットワークシステムのシステム構成図（その２）である。ネットワークシステム２１００において、個々のスイッチ装置ＳＷ１〜ＳＷ１６と直接接続されたノード群（不図示）により形成された小グループＳＧ１〜ＳＧ１５が、ネットワーク２１０を介して通信可能に接続されている。
【０１４０】
また、小グループＳＧ１〜ＳＧ５により大グループＢＧ１が形成され、小グループＳＧ６〜ＳＧ１０により大グループＢＧ２が形成され、小グループＳＧ１１〜ＳＧ１５により大グループＢＧ３が形成されている。ここで、スイッチ装置ＳＷ５，ＳＷ１０，ＳＷ１５は、スイッチ装置同士をつなぐコアスイッチである。そこで、各スイッチ装置ＳＷ５，ＳＷ１０，ＳＷ１５に中継ノード２１１０，２１２０，２１３０を設置する。
【０１４１】
ネットワークシステム２１００では、大グループＢＧ１〜ＢＧ３を超える非実時間通信は、小グループ間の通信として、一度、大グループの中継ノード（たとえば、中継ノード２１１０，２１２０，２１３０）に非実時間データを送信する。また、大グループ間の通信は、小グループ間の中継ノード同士と同様の通信処理手順を実施することにより、実時間通信に干渉することなく非実時間通信を実行することができる。
【０１４２】
このように、直接中継ノードを持たないスイッチ装置同士が隣接することを防ぐことにより、大規模システムにも対応することができる。
【０１４３】
なお、本実施の形態で説明した通信方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本通信プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本通信プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【０１４４】
２００，２１００  ネットワークシステム
２１０  ネットワーク
５０１  設定部
５０２，１１０４  受信部
５０３  関連付け部
５０４  転送部
５０５  検出部
５０６，１１０５  算出部
５０７，１１０６  割当部
５０８，１１０２  送信部
１１０１  第１の実行部
１１０３  第２の実行部
Ｎ  ノード
ＪＮ  中継ノード
ＳＮ  通常ノード
【図１】
2010219812.tif 000003
【図２】
2010219812.tif 000004
【図３】
2010219812.tif 000005
【図４−１】
2010219812.tif 000006
【図４−２】
2010219812.tif 000007
【図４−３】
2010219812.tif 000008
【図５】
2010219812.tif 000009
【図６】
2010219812.tif 000010
【図７】
2010219812.tif 000011
【図８】
2010219812.tif 000012
【図９】
2010219812.tif 000013
【図１０】
2010219812.tif 000014
【図１１】
2010219812.tif 000015
【図１２】
2010219812.tif 000016
【図１３】
2010219812.tif 000017
【図１４】
2010219812.tif 000018
【図１５】
2010219812.tif 000019
【図１６】
2010219812.tif 000020
【図１７】
2010219812.tif 000021
【図１８】
2010219812.tif 000022
【図１９】
2010219812.tif 000023
【図２０】
2010219812.tif 000024
【図２１】
2010219812.tif 000025
【図２２】
2010219812.tif 000026