通信プログラム、中継ノード、および通信方法
【課題】経路上に複数のスイッチ装置を含むノード間の実時間通信と非実時間通信との衝突を低減させること。
【解決手段】ある局所網において、個々のスイッチ装置SW1,SW2に直接接続されているノード群をグループ化する。グループA,Bごとに、グループA,B間の非実時間通信を中継する中継ノードを設置する。既存の仮想ネットワーク技術を用いて、中継ノードN1から中継ノードN4に辿り着くまでの仮想リンクVLを設定する。これにより、中継ノードN3,N6間の非実時間通信を一つにまとめて、物理リンクLにおける実時間通信との衝突を低減させる。さらに、全ノードN1〜N6で同期を取って、実時間通信および非実時間通信の実施期間を全ノードN1〜N6で共有する。これにより、実時間通信と非実時間通信との実施期間を区別して、非実時間通信が実時間通信に干渉しないように制御する。
【解決手段】ある局所網において、個々のスイッチ装置SW1,SW2に直接接続されているノード群をグループ化する。グループA,Bごとに、グループA,B間の非実時間通信を中継する中継ノードを設置する。既存の仮想ネットワーク技術を用いて、中継ノードN1から中継ノードN4に辿り着くまでの仮想リンクVLを設定する。これにより、中継ノードN3,N6間の非実時間通信を一つにまとめて、物理リンクLにおける実時間通信との衝突を低減させる。さらに、全ノードN1〜N6で同期を取って、実時間通信および非実時間通信の実施期間を全ノードN1〜N6で共有する。これにより、実時間通信と非実時間通信との実施期間を区別して、非実時間通信が実時間通信に干渉しないように制御する。
【発明の詳細な説明】
【技術分野】
【0001】
本開示技術は、情報を転送する通信プログラム、中継ノード、および通信方法に関する。
【背景技術】
【0002】
近年、自動車、工業用ロボット、ヒューマノイドロボットなどの機械制御装置において、機能ごとのモジュール化がおこなわれている。また、ネットワーク機能を有するセンサの登場により、機械制御装置に搭載される端末装置(モジュール)がネットワークを構成することが一般的になっている。
【0003】
このようなネットワークを含む機械制御装置においては、通常、実時間通信と非実時間通信とが混在する。ここで、実時間通信とは、たとえば、フィードバック制御のために周期的に実行される絶対遅延の小さい通信である。また、非実時間通信とは、たとえば、修正プログラムの配信やファイル転送などの実時間性は要求されないが高いスループットが要求される通信である。
【0004】
一方、ネットワークを含む機械制御装置では、システム構成の柔軟性、拡張性および構築の容易性などの観点から、スイッチ装置のような集約分配装置を経路に含む汎用ネットワーク(たとえば、イーサネット(登録商標))の利用が望まれている。
【0005】
しかし一般に、スイッチ装置において、同一の出力端へ転送される複数の入力が出力端のスループットを超えると、スイッチ装置内の通信キューが成長してしまう。それ故に、経路の途中にスイッチ装置を含むネットワークでは、通信キューの成長により、通信遅延の増大、さらには、パケット喪失を招く恐れがあり、実時間通信を適切に実行することが難しいという問題があった。
【0006】
そこで、従来においては、実時間通信の周期性を利用して、実時間通信と非実時間通信との実施期間を時間的に区別する技術がある。具体的には、受信側の端末装置が自身へのデータの通信状況を監視することで、実時間通信と干渉する非実時間通信を検出し、非実時間通信の流量を制限してスイッチ装置の通信キューの成長を防ぐ。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平10−107769号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、上述した従来技術では、データの送受信を行う端末装置間が複数のスイッチ装置を介して接続されるトポロジについては考慮されていない。このため、端末装置同士をつなぐ経路上に複数のスイッチ装置を含むネットワークでは、非実時間通信の流量を制御することが難しく、実時間通信を適切に実行することができない場合があるという問題がある。
【0009】
また、複数のスイッチ装置を用いてネットワークシステムを構築できないと、接続可能な端末装置の最大数が制限されることになり、システム構成の柔軟性や拡張性が低下するという問題がある。ここで、図22を用いて従来技術の問題点について説明する。
【0010】
図22は、従来技術の問題点を示す説明図である。ネットワークシステム2200において、端末装置2201〜2203と端末装置2204〜2206とがスイッチ装置2210,2220を介して接続されている。なお、ここでは説明のため、端末装置2201〜2203を送信側とし、端末装置2204〜2206を受信側とする。
【0011】
ネットワークシステム2200では、スイッチ装置2210とスイッチ装置2220との間で、送信側から受信側に送信されるデータが衝突する。このとき、端末装置2201,2202から端末装置2204に送信されるデータは、端末装置2204によって検出することができる。
【0012】
ところが、端末装置2203から端末装置2206に送信されるデータについては端末装置2204によって検出することができない。したがって、受信側で実時間通信と干渉する非実時間通信を検出して流量を正しく制御することが難しい。この結果、スイッチ装置2210において通信キューが増大し、実時間通信に関するデータを規定時間内に処理することができない場合がある。
【0013】
本開示技術は、上述した従来技術による問題点を解消するため、ネットワーク内のノード間で実行される実時間通信と非実時間通信との衝突を低減させることができる通信プログラム、中継ノード、および通信方法を提供することを目的とする。
【課題を解決するための手段】
【0014】
上述した課題を解決し、目的を達成するため、本開示技術は、第1および第2のノード群を接続する中継装置を介して前記ノード間の実時間通信を実行するネットワーク内の前記第1のノード群から選ばれた自ノードに、当該自ノードから前記第2のノード群から選ばれた他ノードに辿り着くまでの経路を設定させ、前記第1のノード群のうち前記自ノードを除く残余のノードから前記第2のノード群のうち前記他ノードを除く残余のノードに対する非実時間通信に関するデータを前記自ノードに受信させ、受信されたデータを、設定された経路を用いて、前記自ノードから前記他ノードに転送させることを特徴とする。
【0015】
本開示技術によれば、第1および第2のノード群から各々選ばれたノード間に設定された仮想リンクを用いて、中継装置を介して実行されるノード間の非実時間通信を一つにまとめて制御することができる。
【発明の効果】
【0016】
本通信プログラム、中継ノード、および通信方法によれば、ネットワーク内のノード間で実行される実時間通信と非実時間通信との衝突を低減させることができるという効果を奏する。
【図面の簡単な説明】
【0017】
【図1】本通信手法の概要を示す説明図である。
【図2】実施の形態にかかるネットワークシステムのシステム構成図(その1)である。
【図3】実施の形態にかかるノードのハードウェア構成を示すブロック図である。
【図4−1】アドレステーブルの記憶内容の一例を示す説明図(その1)である。
【図4−2】アドレステーブルの記憶内容の一例を示す説明図(その2)である。
【図4−3】送信先テーブルの記憶内容の一例を示す説明図である。
【図5】中継ノードの機能的構成を示すブロック図である。
【図6】非実時間データのデータ構造の一例を示す説明図である。
【図7】対応テーブルの具体例を示す説明図である。
【図8】受信状況テーブルの記憶内容の一例を示す説明図である。
【図9】割当テーブルの記憶内容の一例を示す説明図(その1)である。
【図10】割当テーブルの記憶内容の一例を示す説明図(その2)である。
【図11】通常ノードの機能的構成を示すブロック図である。
【図12】中継ノードの通信処理手順の一例を示すフローチャートである。
【図13】ステップS1206の流量割当処理の具体的処理手順の一例を示すフローチャートである。
【図14】ステップS1207の第1の転送処理の具体的処理手順の一例を示すフローチャートである。
【図15】中継ノードの第1の受信処理手順の一例を示すフローチャートである。
【図16】中継ノードの第2の受信処理手順の一例を示すフローチャートである。
【図17】中継ノードの第2の転送処理手順の一例を示すフローチャートである。
【図18】通常ノードの通信処理手順の一例を示すフローチャートである。
【図19】ステップS1810の非実時間通信処理の具体的処理手順の一例を示すフローチャートである。
【図20】通常ノードの実時間通信処理手順の一例を示すフローチャートである。
【図21】実施の形態にかかるネットワークシステムのシステム構成図(その2)である。
【図22】従来技術の問題点を示す説明図である。
【発明を実施するための形態】
【0018】
以下に添付図面を参照して、この発明にかかる通信プログラム、中継ノード、および通信方法の好適な実施の形態を詳細に説明する。
【0019】
(本通信手法の概要)
まず、本通信手法の概要について説明する。本通信手法では、周期的に実行される実時間通信と不定期に実行される非実時間通信が混在する局所網において、非実時間通信が実時間通信に干渉しないように制御する。
【0020】
図1は、本通信手法の概要を示す説明図である。図1に示すように、ある局所網において、ノード群N1〜N3とノード群N4〜N6とがスイッチ装置SW1,SW2を介して接続されている。本通信手法では、図1に示すような複数のスイッチ装置SW1,SW2を含む局所網において、以下の(1)〜(4)を実施する。
【0021】
(1)個々のスイッチ装置SW1,SW2に直接接続されているノード群をグループ化する。ここでは、スイッチ装置SW1に直接接続されているノード群N1〜N3によりグループAが形成され、また、スイッチSW2に直接接続されているノード群N4〜N6によりグループBが形成されている。
【0022】
(2)グループA,Bごとに、グループ間の非実時間通信を中継する中継ノードを設置する。ここでは、中継ノードとしてノード群N1〜N3からノードN1が選ばれ、また、ノード群N4〜N6からノードN4が選ばれている。これにより、スイッチ装置SW1,SW2を経由する非実時間通信を中継ノードN1,N4に集約する。
【0023】
(3)既存の仮想ネットワーク技術を用いて、中継ノードN1から中継ノードN4に辿り着くまでの仮想的なリンク(以下、「仮想リンクVL」という)を設定する。これにより、中継ノードN1,N4間の非実時間通信を一つにまとめて、スイッチ装置SW1,SW2間の物理リンクLにおける実時間通信との衝突を低減させる。
【0024】
(4)実時間通信および非実時間通信の実施期間を全ノードN1〜N6で共有するために、全ノードN1〜N6で同期を取る。これにより、実時間通信と非実時間通信との実施期間を区別することができ、非実時間通信が実時間通信に干渉しないように制御する。
【0025】
このように、本通信手法では、中継ノードN1,N4同士をつなぐ仮想リンクVLを用いて、スイッチ装置SW1,SW2を経由するグループ間の非実時間通信を集約して制御することにより、実時間通信との干渉を低減させる。なお、ここでは中継ノードN1,N4をノード群N1〜N3,N4〜N6から選ぶことにしたが、これに限らない。たとえば、ノード群N1〜N6とは別に、グループA,B間の非実時間通信を中継する中継ノードを専用に設置することにしてもよい。
【0026】
(ネットワークシステムのシステム構成図)
図2は、実施の形態にかかるネットワークシステムのシステム構成図(その1)である。ネットワークシステム200において、ノードN1〜N12とスイッチ装置SW1〜SW5とが、LAN(Local Area Network)などのネットワーク210を介して通信可能に接続されている。
【0027】
ここで、ノードN1〜N12は、通信機能(実時間通信、非実時間通信)を有する通信装置であり、たとえば、自動車やロボットなどに搭載されるECU(Electric Control Unit)、センサ、アクチュエータなどである。スイッチ装置SW1〜SW5は、スイッチング機能を有する中継装置である。なお、スイッチング機能についての詳細な説明は後述する。
【0028】
ネットワークシステム200では、個々のスイッチ装置SW1〜SW4に直接接続されているノード群N1〜N3,N4〜N6,N7〜N9,N10〜N12によってグループG1〜G4が形成されている。また、ネットワークシステム200では、グループG1〜G4ごとに、グループ間の非実時間通信を中継する中継ノードN1,N4,N7およびN10が設置されている。
【0029】
また、ネットワークシステム200では、中継ノード間をつなぐ仮想リンクVL1〜VL6が設定されている。具体的には、グループG1の中継ノードN1とグループG2〜G4の中継ノードN4,N7,N10とをつなぐ仮想リンクVL1〜VL3が設定されている。また、グループG2の中継ノードN4とグループG3,G4の中継ノードN7,N10とをつなぐ仮想リンクVL4,VL5が設定されている。さらに、グループG3の中継ノードN7とグループG4の中継ノードN10とをつなぐ仮想リンクVL6が設定されている。
【0030】
(ノードのハードウェア構成)
図3は、実施の形態にかかるノードのハードウェア構成を示すブロック図である。図3において、ノードN1〜N12(以下、単に「ノードN」と表記)は、CPU(Central Processing Unit)301と、ROM(Read‐Only Memory)302と、RAM(Random Access Memory)303と、I/F(Interface)304と、を備えている。なお、ノードNは、磁気ディスクドライブと、磁気ディスクと、光ディスクドライブと、光ディスクと、を備えていてもよい。また、各構成部はバス300によってそれぞれ接続されている。
【0031】
ここで、CPU301は、ノードNの全体の制御を司る。ROM302は、ブートプログラムなどのプログラムを記憶している。RAM303は、CPU301のワークエリアとして使用される。インターフェース(以下、「I/F」と略する。)304は、通信回線を通じてLANなどのネットワーク210に接続され、このネットワーク210を介して他の装置に接続される。そして、I/F304は、ネットワーク210と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。
【0032】
また、磁気ディスクドライブは、CPU301の制御にしたがって磁気ディスクに対するデータのリード/ライトを制御する。磁気ディスクは、磁気ディスクドライブの制御で書き込まれたデータを記憶する。光ディスクドライブは、CPU301の制御にしたがって光ディスクに対するデータのリード/ライトを制御する。光ディスクは、光ディスクドライブの制御で書き込まれたデータを記憶したり、光ディスクに記憶されたデータをコンピュータに読み取らせたりする。
【0033】
(アドレステーブルの記憶内容)
つぎに、ノードNが用いる各種アドレステーブルについて説明する。アドレステーブルは、図3に示したROM302、RAM303、磁気ディスク、光ディスクなどの記憶装置に記憶されている。なお、以降において、ネットワーク210内の全ノード群のうち、非実時間通信を中継するノードNを「中継ノードJN」と表記し、中継ノードNを除く残余のノードNを「通常ノードSN」と表記する。
【0034】
図4−1は、アドレステーブルの記憶内容の一例を示す説明図(その1)である。図4−1において、アドレステーブル400は、ノードNごとのノードID、物理アドレス、システムノードアドレス、グループノードアドレスおよび中継ノードを示す情報を有する。アドレステーブル400は、ネットワークシステム200内の各ノードN1〜N12が持っている。
【0035】
ここで、ノードIDとは、ノードNの識別子である。物理アドレスとは、LANに接続されるI/F304固有のアドレスであり、たとえば、イーサネットのMACアドレスなどである。システムノードアドレスとは、ネットワークシステム200全体で一意に決まるノードNのアドレスである。グループノードアドレスとは、ネットワークシステム200内の各グループG1〜G4で一意に決まるノードNのアドレスである。
【0036】
また、図4−1の例においては、グループノードアドレスのドット「.」で区切られた4組の数字のうち1〜3番目の数字はグループG1〜G4を識別するグループ番号であり、4番目の数字はグループ内のノードNを識別するノード番号である。「/3」の表記は、3番目までの数字がグループ番号であることを示す。グループ番号とノード番号に割り当てる数字の数を変更することで、システム内のグループ数とグループ内のノード数とを調整する。
【0037】
図4−2は、アドレステーブルの記憶内容の一例を示す説明図(その2)である。図4−2において、アドレステーブル401は、ノードID、システムノードアドレス、対応物理アドレス、グループノードアドレスおよび対応物理アドレスを有する。アドレステーブル401は、グループG1に属するノードNが持っている。
【0038】
ここで、システムノードアドレスおよびグループノードアドレスは、それぞれ物理アドレスと対応付けられている(対応物理アドレス)。システムノードアドレスまたはグループノードアドレスが設定されたデータは、対応する物理アドレスのノードNへ直接送信される。また、対応物理アドレスが存在しない、かつ、自身が属するグループと異なるグループのグループノードアドレスに対するデータ送信は、中継ノードを介して転送される。
【0039】
中継ノードは、予め設定された情報、もしくは、選出アルゴリズムによって決定される。中継ノードは、グループ内から必ず一つ(以上)決定される。その他のノードは、自身が属するグループと異なるグループにデータを送信する場合、決定された中継ノードを中継して転送するよう経路設定をおこなう(図4−3参照)。
【0040】
図4−3は、送信先テーブルの記憶内容の一例を示す説明図である。図4−3において、送信先テーブル402には、グループG1に属するノードNの送信先となるノードNの宛先アドレスと物理アドレスとが対応付けて示されている。
【0041】
(中継ノードの機能的構成)
つぎに、中継ノードJN(たとえば、ネットワークシステム200内のノードN1,N4,N7,N10)の機能的構成について説明する。図5は、中継ノードの機能的構成を示すブロック図である。図5において、中継ノードJNは、設定部501と、受信部502と、関連付け部503と、転送部504と、検出部505と、算出部506と、割当部507と、送信部508と、を含む構成である。この制御部となる機能(設定部501〜送信部508)は、具体的には、たとえば、図3に示したROM302、RAM303、磁気ディスク、光ディスクなどの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F304により、その機能を実現する。
【0042】
設定部501は、ネットワーク210内の第1のノード群から選ばれた自ノードから第2のノード群から選ばれた他ノードに辿り着くまでの経路を設定する機能を有する。ここで、ネットワーク210とは、たとえば、複数のスイッチ装置を含む局所網である。また、各ノード群は、ネットワーク210内の個々のスイッチ装置と直接接続されたノードの集合である。
【0043】
以降において、各機能の具体例を説明する場合、中継ノードJNとして、ネットワークシステム200内のノードN1を想定する。すなわち、ノード群N1〜N3が第1のノード群となり、ノード群N4〜N6とノード群N7〜N9とノード群N10〜N12が第2のノード群となる。
【0044】
この場合、たとえば、システムの設定情報として図4−1のアドレステーブル400が与えられているとして、設定部501が、アドレステーブル400を参照して、自ノードN1を除く中継ノードのフィールドに「Yes」が設定されている他ノードN4,N7,N10を特定する。そして、設定部501が、既存の仮想ネットワーク技術を用いて、自ノードN1と他ノードN4,N7,N10とをそれぞれつなぐ仮想リンクVL1〜VL3(図2参照)を設定する。
【0045】
なお、仮想ネットワーク技術としては、たとえば、オーバーレイネットワークを用いることができる。ただし、仮想リンクの設定手法についての詳細な説明は既存技術のため説明を省略する。また、設定結果は、RAM303、磁気ディスク、光ディスクなどの記憶装置に記憶される。
【0046】
受信部502は、第1のノード群のうち通常ノードSNから非実時間通信に関するデータ(以下、「非実時間データ」という)を受信する機能を有する。ここで、非実時間データとは、実時間性が要求されないデータであり、たとえば、改善されたプログラムの修正データである。ここでは、特に、第1のノード群の通常ノードSNから第2のノード群の通常ノードSNに対する非実時間データを対象とする。
【0047】
具体的には、たとえば、受信部502が、スイッチ装置SW1を介して、グループG1のノードN3からグループG2のノードN5に対する非実時間データを受信する。なお、受信結果は、RAM303、磁気ディスク、光ディスクなどの記憶装置に記憶される。
【0048】
ここで、非実時間データのデータ構造について説明する。図6は、非実時間データのデータ構造の一例を示す説明図である。図6において、データ構造600は、ヘッダ領域とデータ領域を有する。ヘッダ領域には、物理宛先アドレス、論理宛先アドレス、データ量が設定される。データ領域には、各ノードNのアプリケーションがやり取りするデータが書き込まれる。
【0049】
物理宛先アドレスとは、非実時間データの直接の送信先を示す物理アドレスである。論理宛先アドレスとは、非実時間データの最終的な宛先を示す論理アドレスである。論理宛先アドレスは、具体的には、システムノードアドレスとグループノードアドレスに相当する。ここでは、論理宛先アドレスとして、各グループ内でのみ通用するグループノードアドレスが設定される。データ量とは、非実時間データのデータ量である。
【0050】
なお、図2に示したスイッチ装置SW1〜SW4は、指定された物理宛先アドレスにしたがって、受信したデータを宛先ノードに転送する。
【0051】
図5の説明に戻り、関連付け部503は、受信された非実時間データと、設定された経路とを関連付ける機能を有する。なお、ここでの非実時間データは、第1のノード群の通常ノードSNから受信したものである。具体的には、たとえば、関連付け部503が、システムの設定情報として与えられたアドレステーブル400をもとに、宛先アドレスから転送先を決定する対応テーブル700(図7参照)を作成する。
【0052】
図7は、対応テーブルの具体例を示す説明図である。図7において、対応テーブル700は、宛先アドレスおよび転送先のフィールドを有する。各フィールドに情報を設定することで、非実時間データの転送先がレコードとして記憶されている。
【0053】
図7中、「VLM−N」は、グループGMからグループGNへの仮想リンクを表している。また、「VLM−N」と「VLN−M」とは同じ仮想リンクを表している。なお、図7においては、宛先アドレスごとに転送先を持つように表記しているが、グループ外への転送対応表はグループ番号ごとに管理される。
【0054】
図5の説明に戻り、転送部504は、受信された非実時間データを転送する機能を有する。具体的には、たとえば、転送部504が、図7に示した対応テーブル700を参照して、受信された非実時間データを他ノードに転送する。
【0055】
検出部505は、ネットワーク210内で周期的に実行される実時間通信の周期開始時刻を検出する機能を有する。具体的には、たとえば、検出部505が、自ノードでの時刻を計時し、実時間通信の周期開始時刻となった時刻を検出する。ただし、周期的に実行される実時間通信の時間間隔は予め設定されている。
【0056】
送信部508は、実時間通信の周期開始時刻が検出された結果、同期パケットを他ノードに送信する機能を有する。具体的には、たとえば、送信部508が、実時間通信を実行するタイミングの同期を取るための識別子が付与された同期パケットを他ノードに送信する。これにより、ネットワークシステム200内の中継ノードJN間で同期を取ることができる。
【0057】
さらに、送信部508が、同期パケットを通常ノードSNに送信する。これにより、グループ内の全ノードで同期を取ることができる。すなわち、自ノードが基点となり、ネットワークシステム200内の自ノードを除く残余のノードNに同期パケットを送信することにより、全ノードN1〜N12で同期を取ることができる。
【0058】
ただし、検出部505は、実時間通信の周期開始時刻となる前に、他ノードから同期パケットを受信した場合、同期パケットの受信時刻を実時間通信の周期開始時刻として検出することになる。なお、検出結果は、RAM303、磁気ディスク、光ディスクなどの記憶装置に記憶される。
【0059】
また、転送部504は、検出された実時間通信の周期開始時刻とは異なる時刻に、非実時間データを他ノードに転送することにしてもよい。これにより、実時間通信と非実時間通信との実行タイミングを区別することが可能となり、中継装置(たとえば、スイッチ装置SW1〜SW5)を経由する実時間通信と非実時間通信との衝突を回避することができる。
【0060】
なお以降において、周期的に実行される実時間通信の時間間隔を第1の周期とし、第1の周期をM分割した時間間隔を非実時間データの転送処理を実行する第2の周期とする。ただし、上記Mは、ネットワークシステム200のシステム要件などに合わせて任意に設定される。
【0061】
また、受信部502は、設定された経路を用いて、非実時間データを他ノードから受信する機能を有する。具体的には、たとえば、受信部502が、仮想リンクVL1を用いて、非実時間データをノードN4から受信する。なお、他ノードから転送される非実時間データには、自ノードと同一グループ内の通常ノードSNのグループノードアドレスが設定されている。
【0062】
図8は、受信状況テーブルの記憶内容の一例を示す説明図である。図8において、受信状況テーブル800は、仮想リンクIDおよびデータ流量のフィールドを有し、仮想リンクVL1〜VL3ごとのデータ流量をレコードとして記憶している。ただし、データ流量は、第2の周期の前回フェーズに他ノードから受信した非実時間データの受信量である。また、データ流量は、たとえば、単位時間当たりの通信速度(Mbps、Kbpsなど)によって表現される。
【0063】
また、転送部504は、受信された非実時間データを通常ノードSNに転送する機能を有する。具体的には、たとえば、転送部504が、スイッチ装置SW1を介して、受信された非実時間データを、該非実時間データに設定されているグループノードアドレス宛に転送する。
【0064】
これにより、他グループの通常ノードSNからの非実時間データを同一グループ内の通常ノードSNに転送することができる。また、転送部504は、自ノードと通常ノードSNとをつなぐ物理リンクPLに割り当てられたデータ流量にしたがって、非実時間データを通常ノードSNに転送することにしてもよい。
【0065】
算出部506は、ネットワーク210の伝送能力に基づいて、設定された経路に割り当てるデータ流量を算出する機能を有する。ここで、ネットワーク210の伝送能力とは、たとえば、ネットワークシステム200の物理リンクのキャパシティ(単位時間当たりの通信速度)である。具体的には、たとえば、算出部506が、物理リンクのキャパシティを、設定された仮想リンクVL数で除算して、各仮想リンクVLに割り当てるデータ流量を算出する。
【0066】
一例として、ネットワークシステム200の物理リンクのキャパシティを12[Mbps]とする。この場合、各仮想リンクVL1〜VL3に割り当てるデータ流量は4(=12/3)[Mbps]となる。これにより、物理リンクのキャパシティを仮想リンクVL1〜VL3に均等に割り当てることができる。なお、算出結果は、RAM303、磁気ディスク、光ディスクなどの記憶装置に記憶される。
【0067】
また、算出部506は、他ノードから受信した非実時間データのデータ流量に基づいて、設定された経路に割り当てるデータ流量を算出することにしてもよい。具体的には、たとえば、算出部506が、図8に示した受信状況テーブル800を参照して、他ノードN4,N7,N10から受信した非実時間データのデータ流量に基づいて、仮想リンクVL1〜VL3に割り当てるデータ流量を算出する。
【0068】
より具体的には、たとえば、物理リンクのキャパシティを超えないように、かつ、最大限に有効活用するように仮想リンクVL1〜VL3ごとのデータ流量を算出する。これにより、中継ノード間の非実時間通信の通信状況に応じて、仮想リンクVL1〜VL3に割り当てるデータ流量を動的に制御することができる。なお、通信状況に応じて割り当てるデータ流量を制御する手法は既存技術のため詳細な説明を省略する。
【0069】
また、割当部507は、算出されたデータ流量を、設定された経路に割り当てる機能を有する。具体的には、たとえば、割当部507が、自ノードと他ノードとをつなぐ仮想リンクVLと該仮想リンクVLに割り当てられたデータ流量とを関連付けて図9に示す割当テーブル900に記憶する。ここで、割当テーブル900の記憶内容の一例について説明する。
【0070】
図9は、割当テーブルの記憶内容の一例を示す説明図(その1)である。図9において、割当テーブル900は、仮想リンクIDおよびデータ流量のフィールドを有し、仮想リンクVL1〜VL3ごとの割当結果をレコードとして記憶している。なお、割当テーブル900は、RAM303、磁気ディスク、光ディスクなどの記憶装置に記憶される。
【0071】
送信部508は、割当結果を他ノードに送信する機能を有する。具体的には、たとえば、まず、送信部508が、割当テーブル900を参照して、自ノードと他ノードとをつなぐ仮想リンクVLに割り当てられたデータ流量を特定する。また、送信部508が、アドレステーブル400を参照して、他ノードのシステムノードアドレスを特定する。そして、送信部508が、特定されたシステムノードアドレスを用いて、特定されたデータ流量を他ノードに送信する。
【0072】
また、受信部502は、自ノートから他ノードに辿り着くまでの経路に割り当てられた割当結果を他ノードから受信する機能を有する。なお、受信された仮想リンクVLの割当結果は、たとえば、関連付け部503により、仮想リンクIDと関連付けて図10に示す割当テーブル1000に記憶される。
【0073】
図10は、割当テーブルの記憶内容の一例を示す説明図(その2)である。図10において、割当テーブル1000は、仮想リンクIDおよびデータ流量のフィールドを有し、仮想リンクVL1〜VL3ごとの割当結果をレコードとして記憶している。なお、割当テーブル1000は、RAM303、磁気ディスク、光ディスクなどの記憶装置に記憶される。
【0074】
また、転送部504は、受信された割当結果にしたがって、非実時間データを他ノードに転送する機能を有する。具体的には、たとえば、転送部504が、割当テーブル1000を参照して、仮想リンクVL1に割り当てられたデータ流量X’を超えないように非実時間データをノードN4に転送する。これにより、たとえば、ネットワークシステム200内の物理リンクのキャパシティを超える非実時間通信を回避して、スイッチ装置SW1の通信キューの増大を抑制することができる。
【0075】
(通常ノードの機能的構成)
つぎに、通常ノードSN(たとえば、グループG1内のノードN2,N3)の機能的構成について説明する。図11は、通常ノードの機能的構成を示すブロック図である。図11において、通常ノードSNは、第1の実行部1101と、第2の実行部1103と、送信部1102と、受信部1104と、算出部1105と、割当部1106と、を含む構成である。この制御部となる機能(第1の実行部1101〜割当部1106)は、具体的には、たとえば、図3に示したROM302、RAM303、磁気ディスク、光ディスクなどの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F304により、その機能を実現する。
【0076】
第1の実行部1101は、実時間通信を実行する機能を有する。具体的には、たとえば、第1の実行部1101は、送信部1102を制御して、ノードNのシステムノードを宛先アドレスに設定して、実時間通信に関するデータ(以下、「実時間データ」という)を送信する。
【0077】
ここで、実時間データとは、実時間性が要求されるデータであり、たとえば、フィードバック制御のためのデータである。なお、第1の実行部1101は、予め設定された時間間隔で周期的に実時間通信を実行する。ただし、実時間通信の周期開始時刻は、同一グループ内の中継ノードJNから同期パケットを受信した受信時刻である。
【0078】
第2の実行部1103は、非実時間通信を実行する機能を有する。具体的には、たとえば、第2の実行部1103が、送信部1102を制御して、ノードNのグループノードアドレスを宛先アドレスに設定して、非実時間データを送信する。ただし、異なるグループ内のノードNに非実時間データを送信する場合、自ノードNと同一グループ内の中継ノードJNを経由してノードNに送信することになる。
【0079】
以降において、各機能の具体例を説明する場合、通常ノードSNとして、ネットワークシステム200内のノードN2を想定する。
【0080】
受信部1104は、実時間データおよび非実時間データを受信する機能を有する。具体的には、たとえば、受信部1104が、スイッチ装置SW1を介して、実時間データまたは非実時間データを受信する。
【0081】
算出部1105は、受信された非実時間データのデータ流量に基づいて、第1のノード群のうち自ノードと他ノードとをつなぐ経路に割り当てるデータ流量を算出する機能を有する。ここで、自ノードと他ノードとをつなぐ経路とは、スイッチ装置SW1を介して接続されるノードN2とノードN1,N3とをそれぞれつなぐ物理リンクPLである。
【0082】
なお、算出部1105による算出処理は、上述した中継ノードJNの算出部506による算出処理と同様のため、ここでは説明を省略する。
【0083】
割当部1106は、算出されたデータ流量を、自ノードと他ノードとをつなぐ経路に割り当てる機能を有する。具体的には、たとえば、割当部1106が、自ノードと他ノードとをつなぐ物理リンクPLと該物理リンクPLに割り当てられたデータ流量とを関連付けて保持する。
【0084】
送信部1102は、割当結果を他ノードに送信する機能を有する。具体的には、たとえば、送信部1102が、アドレステーブル402を参照して、他ノードのシステムノードアドレスを特定する。そして、送信部1102が、特定されたシステムノードアドレスを用いて、自ノードと他ノードとの間に設定された物理リンクPLに割り当てられたデータ流量を送信する。
【0085】
また、受信部1104は、自ノードから他ノードに辿り着くまでの経路に割り当てられた割当結果を他ノードから受信する機能を有する。そして、第2の実行部1103は、受信された割当結果にしたがって、非実時間データを実行する。具体的には、たとえば、第2の実行部1103が、送信部1102を制御して、物理リンクVLに割り当てられたデータ流量を超えないように非実時間データを他ノードに送信する。
【0086】
(中継ノードの通信処理手順)
つぎに、中継ノードJNの通信処理手順について説明する。ただし、ネットワークシステム200内の全ノード群のうち、自ノードを除く他の中継ノードJNを「中継ノードJNi(i=1,2,…,n)」と表記する。また、自ノードと同一グループ内の通常ノードSNを「通常ノードSNj(j=1,2,…,m)」と表記する。また、自ノードと中継ノードJN1〜JNnとをつなぐ仮想リンクVL1〜VLnは予め設定されていることにする。
【0087】
図12は、中継ノードの通信処理手順の一例を示すフローチャートである。図12のフローチャートにおいて、まず、検出部505により、ネットワークシステム200を起動してから第1の周期の周期間隔分の時間が経過したか否かを判断する(ステップS1201)。
【0088】
ここで、第1の周期の時間間隔分経過していない場合(ステップS1201:No)、受信部502により、中継ノードJNiから同期パケットを受信したか否かを判断する(ステップS1202)。ここで、同期パケットを受信していない場合は(ステップS1202:No)、ステップS1201に戻る。
【0089】
一方、同期パケットを受信した場合(ステップS1202;Yes)、検出部505により、同期パケットの受信時刻を第1の周期の周期開始時刻として検出する(ステップS1203)。そして、自ノードと中継ノードJNiとをつなぐ仮想リンクVLiにデータ流量を割り当てる流量割当処理を実行する(ステップS1206)。
【0090】
このあと、転送部504により、仮想リンクVLiを用いて、非実時間データを中継ノードJNiに転送する第1の転送処理を実行する(ステップS1207)。つぎに、ネットワークシステム200の停止指示があったか否かを判断する(ステップS1208)。
【0091】
ここで、停止指示がない場合は(ステップS1208:No)、第2の周期の周期開始時刻となるまで待つ(ステップS1209:No)。そして、第2の周期の周期開始時刻となった場合に(ステップS1209:Yes)、ステップS1206に戻る。
【0092】
また、ステップS1201において、第1の周期の時間間隔分経過した場合(ステップS1201:Yes)、検出部505により、第1の周期の時間間隔分経過した時刻を第1の周期の周期開始時刻として検出する(ステップS1204)。そして、送信部508により、中継ノードJN1〜JNnに同期パケット送信して(ステップS1205)、ステップS1206に移行する。
【0093】
また、ステップS1208において、ネットワークシステム200の停止指示があった場合は(ステップS1208:Yes)、本フローチャートによる一連の処理を終了する。なお、ネットワークシステム200の停止指示は、たとえば、任意のタイミングで受け付けることにしてもよい。
【0094】
<流量割当処理手順>
つぎに、図12に示したステップS1206の流量割当処理の具体的処理手順について説明する。図13は、ステップS1206の流量割当処理の具体的処理手順の一例を示すフローチャートである。
【0095】
図13のフローチャートにおいて、まず、現在時刻が第1の周期の周期開始時刻か否かを判断する(ステップS1301)。ここで、第1の周期の周期開始時刻の場合(ステップS1301:Yes)、送信部508により、通常ノードSN1〜SNmに同期パケットを送信する(ステップS1302)。
【0096】
このあと、割当部507により、自ノードと中継ノードJN1〜JNnとをつなぐ仮想リンクVL1〜VLnにデータ流量「0」を割り当てる(ステップS1303)。そして、送信部508により、中継ノードJN1〜JNnに割当結果を送信して(ステップS1304)、図12に示したステップS1207に移行する。
【0097】
一方、ステップS1301において、現在時刻が第1の周期の周期開始時刻ではない場合(ステップS1301:No)、i=1として(ステップS1305)、i>nか否かを判断する(ステップS1306)。ここで、i≦nの場合(ステップS1306:No)、算出部506により、仮想リンクVLiに割り当てるデータ流量を算出する(ステップS1307)。
【0098】
そして、割当部507により、仮想リンクVLiに算出されたデータ流量を割り当て(ステップS1308)、送信部508により、中継ノードJNiに割当結果を送信する(ステップS1309)。このあと、i=i+1として(ステップS1310)、ステップS1306に戻る。
【0099】
また、ステップS1306において、i>nの場合は(ステップS1306:Yes)、図12に示したステップS1207に移行する。
【0100】
これにより、実時間通信と非実時間通信との実施期間を区別して、実時間通信と非実時間通信との衝突を回避することができる。
【0101】
<第1の転送処理手順>
つぎに、図12に示したステップS1207の第1の転送処理の具体的処理手順について説明する。図14は、ステップS1207の第1の転送処理の具体的処理手順の一例を示すフローチャートである。
【0102】
図14のフローチャートにおいて、まず、i=1として(ステップS1401)、i>nか否かを判断する(ステップS1402)。ここで、i≦nの場合(ステップS1402:No)、転送部504により、割当テーブル1000を参照して、仮想リンクVLiに割り当てられたデータ流量を特定する(ステップS1403)。
【0103】
つぎに、転送部504により、対応テーブル700を参照して、仮想リンクVLiに対応する非実時間データを記憶装置から読み出す(ステップS1404)。そして、転送部504により、仮想リンクVLiを用いて、ステップS1403において特定されたデータ流量にしたがって、読み出した非実時間データを転送する(ステップS1405)。
【0104】
このあと、i=i+1として(ステップS1406)、ステップS1402に戻り、i>nとなった場合(ステップS1402:Yes)、図12に示したステップS1208に移行する。
【0105】
これにより、ネットワーク210の物理リンクのキャパシティや実際の通信状況に応じて、非実時間通信のデータ流量を制御することができる。
【0106】
<第1の受信処理手順>
つぎに、同一グループ内の通常ノードSNjから非実時間データを受信する第1の受信処理の処理手順について説明する。図15は、中継ノードの第1の受信処理手順の一例を示すフローチャートである。図15のフローチャートにおいて、まず、受信部502により、通常ノードSNjから非実時間データを受信したか否かを判断する(ステップS1501)。
【0107】
ここで、非実時間データを受信するのを待って(ステップS1501:No)、受信した場合(ステップS1501:Yes)、関連付け部503により、受信された非実時間データに設定されている宛先アドレスのノードNと同一グループの中継ノードJNiを特定する(ステップS1502)。
【0108】
このあと、関連付け部503により、自ノードと特定された中継ノードJNiとをつなぐ仮想リンクVLiを特定する(ステップS1503)。最後に、関連付け部503により、非実時間データのデータIDと仮想リンクVLiの仮想リンクIDとを関連付けて対応テーブル700に記憶して(ステップS1504)、本フローチャートによる一連の処理を終了する。
【0109】
これにより、複数の仮想リンクVL1〜VLnの中から非実時間データの転送に用いる仮想リンクVLiを特定することができる。
【0110】
<第2の受信処理手順>
つぎに、自ノードと中継ノードJNiとをつなぐ仮想リンクVLiに割り当てられた割当結果を受信する第2の受信処理の処理手順について説明する。図16は、中継ノードの第2の受信処理手順の一例を示すフローチャートである。図16のフローチャートにおいて、まず、受信部502により、中継ノードJNiから割当結果を受信したか否かを判断する(ステップS1601)。
【0111】
ここで、割当結果を受信するのを待って(ステップS1601:No)、受信した場合(ステップS1601:Yes)、関連付け部503により、自ノードと中継ノードJNiとをつなぐ仮想リンクVLiを特定する(ステップS1602)。最後に、関連付け部503により、特定された仮想リンクVLiと受信された割当結果とを関連付けて割当テーブル1000に記憶して(ステップS1603)、本フローチャートによる一連の処理を終了する。
【0112】
これにより、各仮想リンクVL1〜VLnに割り当てられた非実時間データのデータ流量を特定することができる。
【0113】
<第2の転送処理手順>
つぎに、中継ノードJNiからの非実時間データを通常ノードSNjに転送する第2の転送処理の処理手順について説明する。図17は、中継ノードの第2の転送処理手順の一例を示すフローチャートである。
【0114】
図17のフローチャートにおいて、まず、受信部502により、中継ノードJNiから非実時間データを受信したか否かを判断する(ステップS1701)。ここで、非実時間データを受信するのを待って(ステップS1701:No)、受信した場合(ステップS1701:Yes)、転送部504により、受信された非実時間データを、該非実時間データに設定されているグループノードアドレス宛に転送する(ステップS1702)。
【0115】
これにより、異なるグループ間の非実時間データを、中継ノードJNを介して転送することができる。
【0116】
(通常ノードの通信処理手順)
つぎに、通常ノードSNの通信処理手順について説明する。ただし、同一グループ内の自ノードを除く残余のノードNを「グループノードGNk(k=1,2,…,m)」と表記する。図18は、通常ノードの通信処理手順の一例を示すフローチャートである。図18のフローチャートにおいて、まず、現在時刻が第1の周期の周期開始時刻か否かを判断する(ステップS1801)。
【0117】
ここで、第1の周期の周期開始時刻の場合(ステップS1801:Yes)、割当部1106により、自ノードとグループノードGN1〜GNmとをつなぐ物理リンクVL1〜VLmにデータ流量「0」を割り当てる(ステップS1802)。そして、送信部1102により、グループノードGN1〜GNmに割当結果を送信して(ステップS1803)、ステップS1810に移行する。
【0118】
一方、ステップS1801において、現在時刻が第1の周期の周期開始時刻ではない場合(ステップS1801:No)、k=1として(ステップS1804)、k>mか否かを判断する(ステップS1805)。ここで、k≦mの場合(ステップS1805:No)、算出部1105により、物理リンクPLkに割り当てるデータ流量を算出する(ステップS1806)。
【0119】
そして、割当部1106により、物理リンクPLkに算出されたデータ流量を割り当て(ステップS1807)、送信部1102により、グループノードGNkに割当結果を送信する(ステップS1808)。このあと、k=k+1として(ステップS1809)、ステップS1805に戻る。
【0120】
また、ステップS1805において、k>mの場合は(ステップS1805:Yes)、第2の実行部1103により、非実時間通信処理を実行する(ステップS1810)。つぎに、ネットワークシステム200の停止指示があったか否かを判断する(ステップS1811)。
【0121】
ここで、停止指示がない場合は(ステップS1811:No)、第2の周期の周期開始時刻となるまで待つ(ステップS1812:No)。そして、第2の周期の周期開始時刻となった場合に(ステップS1812:Yes)、ステップS1801に戻る。また、ステップS1811において、ネットワークシステム200の停止指示があった場合は(ステップS1811:Yes)、本フローチャートによる一連の処理を終了する。
【0122】
これにより実時間通信と非実時間通信との実施期間を区別して、実時間通信と非実時間通信との衝突を回避することができる。
【0123】
<非実時間通信処理手順>
つぎに、図18に示したステップS1810の非実時間通信処理の具体的処理手順について説明する。図19は、ステップS1810の非実時間通信処理の具体的処理手順の一例を示すフローチャートである。
【0124】
図19のフローチャートにおいて、まず、k=1として(ステップS1901)、k>mか否かを判断する(ステップS1902)。ここで、k≦mの場合(ステップS1902:No)、第2の実行部1103により、物理リンクPLkに割り当てられたデータ流量を特定する(ステップS1903)。
【0125】
つぎに、第2の実行部1103により、物理リンクPLkに対応する非実時間データを記憶装置から読み出す(ステップS1904)。そして、第2の実行部1103により、送信部1102を制御して、物理リンクPLkを用いて、ステップS1903において特定されたデータ流量にしたがって、読み出した非実時間データを送信する(ステップS1905)。
【0126】
このあと、k=k+1として(ステップS1906)、ステップS1902に戻り、k>mとなった場合(ステップS1902:Yes)、図18に示したステップS1811に移行する。
【0127】
これにより、ネットワーク210の物理リンクのキャパシティや実際の通信状況に応じて、非実時間通信のデータ流量を制御することができる。
【0128】
<実時間通信処理手順>
つぎに、通常ノードSNの実時間通信処理手順について説明する。図20は、通常ノードの実時間通信処理手順の一例を示すフローチャートである。図20のフローチャートにおいて、まず、現在時刻が第1の周期の周期開始時刻か否かを判断する(ステップS2001)。
【0129】
ここで、現在時刻が第1の周期の周期開始時刻となるのを待って(ステップS2001:No)、第1の周期の周期開始時刻となった場合(ステップS2001:Yes)、第1の実行部1101により、物理リンクPL1〜PLmに対応する実時間データを記憶装置から読み出す(ステップS2002)。そして、第2の実行部1103により、送信部1102を制御して、物理リンクPL1〜PLmを用いて、読み出した実時間データを送信する(ステップS2003)。
【0130】
なお、本明細書では、実時間データと非実時間データとを宛先アドレスの違いにより区別することにしたがこれに限らない。具体的には、たとえば、実時間データおよび非実時間データのヘッダ情報としていずれかの通信であることを示す情報を付与してもよい。
【0131】
以上説明したように、本開示技術によれば、各グループから選ばれた中継ノードJN間をつなぐ仮想リンクVLを用いて、グループ間の非実時間データを転送することができる。これにより、グループ間の非実時間データを一つにまとめて、実時間通信との衝突を低減させることができる。
【0132】
また、本開示技術によれば、ネットワーク210内で周期的に実行される実時間通信の周期開始時刻とは異なる時刻に、グループ間の非実時間データを転送することができる。これにより、実時間通信と非実時間通信との実施期間を区別して、実時間通信と非実時間通信との衝突を回避することができる。
【0133】
また、本開示技術によれば、複数のスイッチ装置を用いてネットワークシステム200が構築可能となるため、システム構成の柔軟性や拡張性を向上させることができる。
【0134】
また、本開示技術によれば、ネットワーク210の伝送能力に基づいて、仮想リンクVLに割り当てるデータ流量を算出することができる。これにより、ネットワーク210の物理リンクのキャパシティに応じて、非実時間通信のデータ流量を制御することができる。
【0135】
また、本開示技術によれば、他グループの中継ノードJNから転送された非実時間データに基づいて、仮想リンクVLに割り当てるデータ流量を算出することができる。これにより、グループ間の実際の通信状況に応じて、非実時間通信のデータ流量を制御することができる。
【0136】
また、本開示技術によれば、ネットワークシステム200全体で一意に決まるノードNの宛先アドレスを用いて実時間通信を実行することができる。また、本開示技術によれば、各グループで一意に決まるノードNの宛先アドレスを用いて非実時間通信を実行することができる。これにより、ネットワークシステム200において、実時間データと、非実時間データとを区別することができる。
【0137】
また、上述した通信手法では、中継ノードJNと直接接続されていないスイッチ装置を隣り合って接続することができないというトポロジ上の制約が存在する。具体的には、たとえば、コアスイッチやルータスイッチなどのスイッチ装置間をつなぐスイッチ装置を設置する場合、中継ノードJNと直接接続されていないスイッチ装置を隣り合って接続することになる。この場合、中継ノードJNと直接接続されていないスイッチ装置間でデータが衝突し、従来技術と同様の問題が生じてしまう。
【0138】
そこで、スイッチ装置同士をつなぐスイッチ装置に中継ノードJNを設置する。具体的には、中継ノードJNと直接接続されたスイッチ装置と、中継ノードJNと直接接続されていないスイッチ装置とをつなぐスイッチ装置に中継ノードJNを設置する。
【0139】
図21は、実施の形態にかかるネットワークシステムのシステム構成図(その2)である。ネットワークシステム2100において、個々のスイッチ装置SW1〜SW16と直接接続されたノード群(不図示)により形成された小グループSG1〜SG15が、ネットワーク210を介して通信可能に接続されている。
【0140】
また、小グループSG1〜SG5により大グループBG1が形成され、小グループSG6〜SG10により大グループBG2が形成され、小グループSG11〜SG15により大グループBG3が形成されている。ここで、スイッチ装置SW5,SW10,SW15は、スイッチ装置同士をつなぐコアスイッチである。そこで、各スイッチ装置SW5,SW10,SW15に中継ノード2110,2120,2130を設置する。
【0141】
ネットワークシステム2100では、大グループBG1〜BG3を超える非実時間通信は、小グループ間の通信として、一度、大グループの中継ノード(たとえば、中継ノード2110,2120,2130)に非実時間データを送信する。また、大グループ間の通信は、小グループ間の中継ノード同士と同様の通信処理手順を実施することにより、実時間通信に干渉することなく非実時間通信を実行することができる。
【0142】
このように、直接中継ノードを持たないスイッチ装置同士が隣接することを防ぐことにより、大規模システムにも対応することができる。
【0143】
なお、本実施の形態で説明した通信方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本通信プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本通信プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【0144】
200,2100 ネットワークシステム
210 ネットワーク
501 設定部
502,1104 受信部
503 関連付け部
504 転送部
505 検出部
506,1105 算出部
507,1106 割当部
508,1102 送信部
1101 第1の実行部
1103 第2の実行部
N ノード
JN 中継ノード
SN 通常ノード
【技術分野】
【0001】
本開示技術は、情報を転送する通信プログラム、中継ノード、および通信方法に関する。
【背景技術】
【0002】
近年、自動車、工業用ロボット、ヒューマノイドロボットなどの機械制御装置において、機能ごとのモジュール化がおこなわれている。また、ネットワーク機能を有するセンサの登場により、機械制御装置に搭載される端末装置(モジュール)がネットワークを構成することが一般的になっている。
【0003】
このようなネットワークを含む機械制御装置においては、通常、実時間通信と非実時間通信とが混在する。ここで、実時間通信とは、たとえば、フィードバック制御のために周期的に実行される絶対遅延の小さい通信である。また、非実時間通信とは、たとえば、修正プログラムの配信やファイル転送などの実時間性は要求されないが高いスループットが要求される通信である。
【0004】
一方、ネットワークを含む機械制御装置では、システム構成の柔軟性、拡張性および構築の容易性などの観点から、スイッチ装置のような集約分配装置を経路に含む汎用ネットワーク(たとえば、イーサネット(登録商標))の利用が望まれている。
【0005】
しかし一般に、スイッチ装置において、同一の出力端へ転送される複数の入力が出力端のスループットを超えると、スイッチ装置内の通信キューが成長してしまう。それ故に、経路の途中にスイッチ装置を含むネットワークでは、通信キューの成長により、通信遅延の増大、さらには、パケット喪失を招く恐れがあり、実時間通信を適切に実行することが難しいという問題があった。
【0006】
そこで、従来においては、実時間通信の周期性を利用して、実時間通信と非実時間通信との実施期間を時間的に区別する技術がある。具体的には、受信側の端末装置が自身へのデータの通信状況を監視することで、実時間通信と干渉する非実時間通信を検出し、非実時間通信の流量を制限してスイッチ装置の通信キューの成長を防ぐ。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平10−107769号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、上述した従来技術では、データの送受信を行う端末装置間が複数のスイッチ装置を介して接続されるトポロジについては考慮されていない。このため、端末装置同士をつなぐ経路上に複数のスイッチ装置を含むネットワークでは、非実時間通信の流量を制御することが難しく、実時間通信を適切に実行することができない場合があるという問題がある。
【0009】
また、複数のスイッチ装置を用いてネットワークシステムを構築できないと、接続可能な端末装置の最大数が制限されることになり、システム構成の柔軟性や拡張性が低下するという問題がある。ここで、図22を用いて従来技術の問題点について説明する。
【0010】
図22は、従来技術の問題点を示す説明図である。ネットワークシステム2200において、端末装置2201〜2203と端末装置2204〜2206とがスイッチ装置2210,2220を介して接続されている。なお、ここでは説明のため、端末装置2201〜2203を送信側とし、端末装置2204〜2206を受信側とする。
【0011】
ネットワークシステム2200では、スイッチ装置2210とスイッチ装置2220との間で、送信側から受信側に送信されるデータが衝突する。このとき、端末装置2201,2202から端末装置2204に送信されるデータは、端末装置2204によって検出することができる。
【0012】
ところが、端末装置2203から端末装置2206に送信されるデータについては端末装置2204によって検出することができない。したがって、受信側で実時間通信と干渉する非実時間通信を検出して流量を正しく制御することが難しい。この結果、スイッチ装置2210において通信キューが増大し、実時間通信に関するデータを規定時間内に処理することができない場合がある。
【0013】
本開示技術は、上述した従来技術による問題点を解消するため、ネットワーク内のノード間で実行される実時間通信と非実時間通信との衝突を低減させることができる通信プログラム、中継ノード、および通信方法を提供することを目的とする。
【課題を解決するための手段】
【0014】
上述した課題を解決し、目的を達成するため、本開示技術は、第1および第2のノード群を接続する中継装置を介して前記ノード間の実時間通信を実行するネットワーク内の前記第1のノード群から選ばれた自ノードに、当該自ノードから前記第2のノード群から選ばれた他ノードに辿り着くまでの経路を設定させ、前記第1のノード群のうち前記自ノードを除く残余のノードから前記第2のノード群のうち前記他ノードを除く残余のノードに対する非実時間通信に関するデータを前記自ノードに受信させ、受信されたデータを、設定された経路を用いて、前記自ノードから前記他ノードに転送させることを特徴とする。
【0015】
本開示技術によれば、第1および第2のノード群から各々選ばれたノード間に設定された仮想リンクを用いて、中継装置を介して実行されるノード間の非実時間通信を一つにまとめて制御することができる。
【発明の効果】
【0016】
本通信プログラム、中継ノード、および通信方法によれば、ネットワーク内のノード間で実行される実時間通信と非実時間通信との衝突を低減させることができるという効果を奏する。
【図面の簡単な説明】
【0017】
【図1】本通信手法の概要を示す説明図である。
【図2】実施の形態にかかるネットワークシステムのシステム構成図(その1)である。
【図3】実施の形態にかかるノードのハードウェア構成を示すブロック図である。
【図4−1】アドレステーブルの記憶内容の一例を示す説明図(その1)である。
【図4−2】アドレステーブルの記憶内容の一例を示す説明図(その2)である。
【図4−3】送信先テーブルの記憶内容の一例を示す説明図である。
【図5】中継ノードの機能的構成を示すブロック図である。
【図6】非実時間データのデータ構造の一例を示す説明図である。
【図7】対応テーブルの具体例を示す説明図である。
【図8】受信状況テーブルの記憶内容の一例を示す説明図である。
【図9】割当テーブルの記憶内容の一例を示す説明図(その1)である。
【図10】割当テーブルの記憶内容の一例を示す説明図(その2)である。
【図11】通常ノードの機能的構成を示すブロック図である。
【図12】中継ノードの通信処理手順の一例を示すフローチャートである。
【図13】ステップS1206の流量割当処理の具体的処理手順の一例を示すフローチャートである。
【図14】ステップS1207の第1の転送処理の具体的処理手順の一例を示すフローチャートである。
【図15】中継ノードの第1の受信処理手順の一例を示すフローチャートである。
【図16】中継ノードの第2の受信処理手順の一例を示すフローチャートである。
【図17】中継ノードの第2の転送処理手順の一例を示すフローチャートである。
【図18】通常ノードの通信処理手順の一例を示すフローチャートである。
【図19】ステップS1810の非実時間通信処理の具体的処理手順の一例を示すフローチャートである。
【図20】通常ノードの実時間通信処理手順の一例を示すフローチャートである。
【図21】実施の形態にかかるネットワークシステムのシステム構成図(その2)である。
【図22】従来技術の問題点を示す説明図である。
【発明を実施するための形態】
【0018】
以下に添付図面を参照して、この発明にかかる通信プログラム、中継ノード、および通信方法の好適な実施の形態を詳細に説明する。
【0019】
(本通信手法の概要)
まず、本通信手法の概要について説明する。本通信手法では、周期的に実行される実時間通信と不定期に実行される非実時間通信が混在する局所網において、非実時間通信が実時間通信に干渉しないように制御する。
【0020】
図1は、本通信手法の概要を示す説明図である。図1に示すように、ある局所網において、ノード群N1〜N3とノード群N4〜N6とがスイッチ装置SW1,SW2を介して接続されている。本通信手法では、図1に示すような複数のスイッチ装置SW1,SW2を含む局所網において、以下の(1)〜(4)を実施する。
【0021】
(1)個々のスイッチ装置SW1,SW2に直接接続されているノード群をグループ化する。ここでは、スイッチ装置SW1に直接接続されているノード群N1〜N3によりグループAが形成され、また、スイッチSW2に直接接続されているノード群N4〜N6によりグループBが形成されている。
【0022】
(2)グループA,Bごとに、グループ間の非実時間通信を中継する中継ノードを設置する。ここでは、中継ノードとしてノード群N1〜N3からノードN1が選ばれ、また、ノード群N4〜N6からノードN4が選ばれている。これにより、スイッチ装置SW1,SW2を経由する非実時間通信を中継ノードN1,N4に集約する。
【0023】
(3)既存の仮想ネットワーク技術を用いて、中継ノードN1から中継ノードN4に辿り着くまでの仮想的なリンク(以下、「仮想リンクVL」という)を設定する。これにより、中継ノードN1,N4間の非実時間通信を一つにまとめて、スイッチ装置SW1,SW2間の物理リンクLにおける実時間通信との衝突を低減させる。
【0024】
(4)実時間通信および非実時間通信の実施期間を全ノードN1〜N6で共有するために、全ノードN1〜N6で同期を取る。これにより、実時間通信と非実時間通信との実施期間を区別することができ、非実時間通信が実時間通信に干渉しないように制御する。
【0025】
このように、本通信手法では、中継ノードN1,N4同士をつなぐ仮想リンクVLを用いて、スイッチ装置SW1,SW2を経由するグループ間の非実時間通信を集約して制御することにより、実時間通信との干渉を低減させる。なお、ここでは中継ノードN1,N4をノード群N1〜N3,N4〜N6から選ぶことにしたが、これに限らない。たとえば、ノード群N1〜N6とは別に、グループA,B間の非実時間通信を中継する中継ノードを専用に設置することにしてもよい。
【0026】
(ネットワークシステムのシステム構成図)
図2は、実施の形態にかかるネットワークシステムのシステム構成図(その1)である。ネットワークシステム200において、ノードN1〜N12とスイッチ装置SW1〜SW5とが、LAN(Local Area Network)などのネットワーク210を介して通信可能に接続されている。
【0027】
ここで、ノードN1〜N12は、通信機能(実時間通信、非実時間通信)を有する通信装置であり、たとえば、自動車やロボットなどに搭載されるECU(Electric Control Unit)、センサ、アクチュエータなどである。スイッチ装置SW1〜SW5は、スイッチング機能を有する中継装置である。なお、スイッチング機能についての詳細な説明は後述する。
【0028】
ネットワークシステム200では、個々のスイッチ装置SW1〜SW4に直接接続されているノード群N1〜N3,N4〜N6,N7〜N9,N10〜N12によってグループG1〜G4が形成されている。また、ネットワークシステム200では、グループG1〜G4ごとに、グループ間の非実時間通信を中継する中継ノードN1,N4,N7およびN10が設置されている。
【0029】
また、ネットワークシステム200では、中継ノード間をつなぐ仮想リンクVL1〜VL6が設定されている。具体的には、グループG1の中継ノードN1とグループG2〜G4の中継ノードN4,N7,N10とをつなぐ仮想リンクVL1〜VL3が設定されている。また、グループG2の中継ノードN4とグループG3,G4の中継ノードN7,N10とをつなぐ仮想リンクVL4,VL5が設定されている。さらに、グループG3の中継ノードN7とグループG4の中継ノードN10とをつなぐ仮想リンクVL6が設定されている。
【0030】
(ノードのハードウェア構成)
図3は、実施の形態にかかるノードのハードウェア構成を示すブロック図である。図3において、ノードN1〜N12(以下、単に「ノードN」と表記)は、CPU(Central Processing Unit)301と、ROM(Read‐Only Memory)302と、RAM(Random Access Memory)303と、I/F(Interface)304と、を備えている。なお、ノードNは、磁気ディスクドライブと、磁気ディスクと、光ディスクドライブと、光ディスクと、を備えていてもよい。また、各構成部はバス300によってそれぞれ接続されている。
【0031】
ここで、CPU301は、ノードNの全体の制御を司る。ROM302は、ブートプログラムなどのプログラムを記憶している。RAM303は、CPU301のワークエリアとして使用される。インターフェース(以下、「I/F」と略する。)304は、通信回線を通じてLANなどのネットワーク210に接続され、このネットワーク210を介して他の装置に接続される。そして、I/F304は、ネットワーク210と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。
【0032】
また、磁気ディスクドライブは、CPU301の制御にしたがって磁気ディスクに対するデータのリード/ライトを制御する。磁気ディスクは、磁気ディスクドライブの制御で書き込まれたデータを記憶する。光ディスクドライブは、CPU301の制御にしたがって光ディスクに対するデータのリード/ライトを制御する。光ディスクは、光ディスクドライブの制御で書き込まれたデータを記憶したり、光ディスクに記憶されたデータをコンピュータに読み取らせたりする。
【0033】
(アドレステーブルの記憶内容)
つぎに、ノードNが用いる各種アドレステーブルについて説明する。アドレステーブルは、図3に示したROM302、RAM303、磁気ディスク、光ディスクなどの記憶装置に記憶されている。なお、以降において、ネットワーク210内の全ノード群のうち、非実時間通信を中継するノードNを「中継ノードJN」と表記し、中継ノードNを除く残余のノードNを「通常ノードSN」と表記する。
【0034】
図4−1は、アドレステーブルの記憶内容の一例を示す説明図(その1)である。図4−1において、アドレステーブル400は、ノードNごとのノードID、物理アドレス、システムノードアドレス、グループノードアドレスおよび中継ノードを示す情報を有する。アドレステーブル400は、ネットワークシステム200内の各ノードN1〜N12が持っている。
【0035】
ここで、ノードIDとは、ノードNの識別子である。物理アドレスとは、LANに接続されるI/F304固有のアドレスであり、たとえば、イーサネットのMACアドレスなどである。システムノードアドレスとは、ネットワークシステム200全体で一意に決まるノードNのアドレスである。グループノードアドレスとは、ネットワークシステム200内の各グループG1〜G4で一意に決まるノードNのアドレスである。
【0036】
また、図4−1の例においては、グループノードアドレスのドット「.」で区切られた4組の数字のうち1〜3番目の数字はグループG1〜G4を識別するグループ番号であり、4番目の数字はグループ内のノードNを識別するノード番号である。「/3」の表記は、3番目までの数字がグループ番号であることを示す。グループ番号とノード番号に割り当てる数字の数を変更することで、システム内のグループ数とグループ内のノード数とを調整する。
【0037】
図4−2は、アドレステーブルの記憶内容の一例を示す説明図(その2)である。図4−2において、アドレステーブル401は、ノードID、システムノードアドレス、対応物理アドレス、グループノードアドレスおよび対応物理アドレスを有する。アドレステーブル401は、グループG1に属するノードNが持っている。
【0038】
ここで、システムノードアドレスおよびグループノードアドレスは、それぞれ物理アドレスと対応付けられている(対応物理アドレス)。システムノードアドレスまたはグループノードアドレスが設定されたデータは、対応する物理アドレスのノードNへ直接送信される。また、対応物理アドレスが存在しない、かつ、自身が属するグループと異なるグループのグループノードアドレスに対するデータ送信は、中継ノードを介して転送される。
【0039】
中継ノードは、予め設定された情報、もしくは、選出アルゴリズムによって決定される。中継ノードは、グループ内から必ず一つ(以上)決定される。その他のノードは、自身が属するグループと異なるグループにデータを送信する場合、決定された中継ノードを中継して転送するよう経路設定をおこなう(図4−3参照)。
【0040】
図4−3は、送信先テーブルの記憶内容の一例を示す説明図である。図4−3において、送信先テーブル402には、グループG1に属するノードNの送信先となるノードNの宛先アドレスと物理アドレスとが対応付けて示されている。
【0041】
(中継ノードの機能的構成)
つぎに、中継ノードJN(たとえば、ネットワークシステム200内のノードN1,N4,N7,N10)の機能的構成について説明する。図5は、中継ノードの機能的構成を示すブロック図である。図5において、中継ノードJNは、設定部501と、受信部502と、関連付け部503と、転送部504と、検出部505と、算出部506と、割当部507と、送信部508と、を含む構成である。この制御部となる機能(設定部501〜送信部508)は、具体的には、たとえば、図3に示したROM302、RAM303、磁気ディスク、光ディスクなどの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F304により、その機能を実現する。
【0042】
設定部501は、ネットワーク210内の第1のノード群から選ばれた自ノードから第2のノード群から選ばれた他ノードに辿り着くまでの経路を設定する機能を有する。ここで、ネットワーク210とは、たとえば、複数のスイッチ装置を含む局所網である。また、各ノード群は、ネットワーク210内の個々のスイッチ装置と直接接続されたノードの集合である。
【0043】
以降において、各機能の具体例を説明する場合、中継ノードJNとして、ネットワークシステム200内のノードN1を想定する。すなわち、ノード群N1〜N3が第1のノード群となり、ノード群N4〜N6とノード群N7〜N9とノード群N10〜N12が第2のノード群となる。
【0044】
この場合、たとえば、システムの設定情報として図4−1のアドレステーブル400が与えられているとして、設定部501が、アドレステーブル400を参照して、自ノードN1を除く中継ノードのフィールドに「Yes」が設定されている他ノードN4,N7,N10を特定する。そして、設定部501が、既存の仮想ネットワーク技術を用いて、自ノードN1と他ノードN4,N7,N10とをそれぞれつなぐ仮想リンクVL1〜VL3(図2参照)を設定する。
【0045】
なお、仮想ネットワーク技術としては、たとえば、オーバーレイネットワークを用いることができる。ただし、仮想リンクの設定手法についての詳細な説明は既存技術のため説明を省略する。また、設定結果は、RAM303、磁気ディスク、光ディスクなどの記憶装置に記憶される。
【0046】
受信部502は、第1のノード群のうち通常ノードSNから非実時間通信に関するデータ(以下、「非実時間データ」という)を受信する機能を有する。ここで、非実時間データとは、実時間性が要求されないデータであり、たとえば、改善されたプログラムの修正データである。ここでは、特に、第1のノード群の通常ノードSNから第2のノード群の通常ノードSNに対する非実時間データを対象とする。
【0047】
具体的には、たとえば、受信部502が、スイッチ装置SW1を介して、グループG1のノードN3からグループG2のノードN5に対する非実時間データを受信する。なお、受信結果は、RAM303、磁気ディスク、光ディスクなどの記憶装置に記憶される。
【0048】
ここで、非実時間データのデータ構造について説明する。図6は、非実時間データのデータ構造の一例を示す説明図である。図6において、データ構造600は、ヘッダ領域とデータ領域を有する。ヘッダ領域には、物理宛先アドレス、論理宛先アドレス、データ量が設定される。データ領域には、各ノードNのアプリケーションがやり取りするデータが書き込まれる。
【0049】
物理宛先アドレスとは、非実時間データの直接の送信先を示す物理アドレスである。論理宛先アドレスとは、非実時間データの最終的な宛先を示す論理アドレスである。論理宛先アドレスは、具体的には、システムノードアドレスとグループノードアドレスに相当する。ここでは、論理宛先アドレスとして、各グループ内でのみ通用するグループノードアドレスが設定される。データ量とは、非実時間データのデータ量である。
【0050】
なお、図2に示したスイッチ装置SW1〜SW4は、指定された物理宛先アドレスにしたがって、受信したデータを宛先ノードに転送する。
【0051】
図5の説明に戻り、関連付け部503は、受信された非実時間データと、設定された経路とを関連付ける機能を有する。なお、ここでの非実時間データは、第1のノード群の通常ノードSNから受信したものである。具体的には、たとえば、関連付け部503が、システムの設定情報として与えられたアドレステーブル400をもとに、宛先アドレスから転送先を決定する対応テーブル700(図7参照)を作成する。
【0052】
図7は、対応テーブルの具体例を示す説明図である。図7において、対応テーブル700は、宛先アドレスおよび転送先のフィールドを有する。各フィールドに情報を設定することで、非実時間データの転送先がレコードとして記憶されている。
【0053】
図7中、「VLM−N」は、グループGMからグループGNへの仮想リンクを表している。また、「VLM−N」と「VLN−M」とは同じ仮想リンクを表している。なお、図7においては、宛先アドレスごとに転送先を持つように表記しているが、グループ外への転送対応表はグループ番号ごとに管理される。
【0054】
図5の説明に戻り、転送部504は、受信された非実時間データを転送する機能を有する。具体的には、たとえば、転送部504が、図7に示した対応テーブル700を参照して、受信された非実時間データを他ノードに転送する。
【0055】
検出部505は、ネットワーク210内で周期的に実行される実時間通信の周期開始時刻を検出する機能を有する。具体的には、たとえば、検出部505が、自ノードでの時刻を計時し、実時間通信の周期開始時刻となった時刻を検出する。ただし、周期的に実行される実時間通信の時間間隔は予め設定されている。
【0056】
送信部508は、実時間通信の周期開始時刻が検出された結果、同期パケットを他ノードに送信する機能を有する。具体的には、たとえば、送信部508が、実時間通信を実行するタイミングの同期を取るための識別子が付与された同期パケットを他ノードに送信する。これにより、ネットワークシステム200内の中継ノードJN間で同期を取ることができる。
【0057】
さらに、送信部508が、同期パケットを通常ノードSNに送信する。これにより、グループ内の全ノードで同期を取ることができる。すなわち、自ノードが基点となり、ネットワークシステム200内の自ノードを除く残余のノードNに同期パケットを送信することにより、全ノードN1〜N12で同期を取ることができる。
【0058】
ただし、検出部505は、実時間通信の周期開始時刻となる前に、他ノードから同期パケットを受信した場合、同期パケットの受信時刻を実時間通信の周期開始時刻として検出することになる。なお、検出結果は、RAM303、磁気ディスク、光ディスクなどの記憶装置に記憶される。
【0059】
また、転送部504は、検出された実時間通信の周期開始時刻とは異なる時刻に、非実時間データを他ノードに転送することにしてもよい。これにより、実時間通信と非実時間通信との実行タイミングを区別することが可能となり、中継装置(たとえば、スイッチ装置SW1〜SW5)を経由する実時間通信と非実時間通信との衝突を回避することができる。
【0060】
なお以降において、周期的に実行される実時間通信の時間間隔を第1の周期とし、第1の周期をM分割した時間間隔を非実時間データの転送処理を実行する第2の周期とする。ただし、上記Mは、ネットワークシステム200のシステム要件などに合わせて任意に設定される。
【0061】
また、受信部502は、設定された経路を用いて、非実時間データを他ノードから受信する機能を有する。具体的には、たとえば、受信部502が、仮想リンクVL1を用いて、非実時間データをノードN4から受信する。なお、他ノードから転送される非実時間データには、自ノードと同一グループ内の通常ノードSNのグループノードアドレスが設定されている。
【0062】
図8は、受信状況テーブルの記憶内容の一例を示す説明図である。図8において、受信状況テーブル800は、仮想リンクIDおよびデータ流量のフィールドを有し、仮想リンクVL1〜VL3ごとのデータ流量をレコードとして記憶している。ただし、データ流量は、第2の周期の前回フェーズに他ノードから受信した非実時間データの受信量である。また、データ流量は、たとえば、単位時間当たりの通信速度(Mbps、Kbpsなど)によって表現される。
【0063】
また、転送部504は、受信された非実時間データを通常ノードSNに転送する機能を有する。具体的には、たとえば、転送部504が、スイッチ装置SW1を介して、受信された非実時間データを、該非実時間データに設定されているグループノードアドレス宛に転送する。
【0064】
これにより、他グループの通常ノードSNからの非実時間データを同一グループ内の通常ノードSNに転送することができる。また、転送部504は、自ノードと通常ノードSNとをつなぐ物理リンクPLに割り当てられたデータ流量にしたがって、非実時間データを通常ノードSNに転送することにしてもよい。
【0065】
算出部506は、ネットワーク210の伝送能力に基づいて、設定された経路に割り当てるデータ流量を算出する機能を有する。ここで、ネットワーク210の伝送能力とは、たとえば、ネットワークシステム200の物理リンクのキャパシティ(単位時間当たりの通信速度)である。具体的には、たとえば、算出部506が、物理リンクのキャパシティを、設定された仮想リンクVL数で除算して、各仮想リンクVLに割り当てるデータ流量を算出する。
【0066】
一例として、ネットワークシステム200の物理リンクのキャパシティを12[Mbps]とする。この場合、各仮想リンクVL1〜VL3に割り当てるデータ流量は4(=12/3)[Mbps]となる。これにより、物理リンクのキャパシティを仮想リンクVL1〜VL3に均等に割り当てることができる。なお、算出結果は、RAM303、磁気ディスク、光ディスクなどの記憶装置に記憶される。
【0067】
また、算出部506は、他ノードから受信した非実時間データのデータ流量に基づいて、設定された経路に割り当てるデータ流量を算出することにしてもよい。具体的には、たとえば、算出部506が、図8に示した受信状況テーブル800を参照して、他ノードN4,N7,N10から受信した非実時間データのデータ流量に基づいて、仮想リンクVL1〜VL3に割り当てるデータ流量を算出する。
【0068】
より具体的には、たとえば、物理リンクのキャパシティを超えないように、かつ、最大限に有効活用するように仮想リンクVL1〜VL3ごとのデータ流量を算出する。これにより、中継ノード間の非実時間通信の通信状況に応じて、仮想リンクVL1〜VL3に割り当てるデータ流量を動的に制御することができる。なお、通信状況に応じて割り当てるデータ流量を制御する手法は既存技術のため詳細な説明を省略する。
【0069】
また、割当部507は、算出されたデータ流量を、設定された経路に割り当てる機能を有する。具体的には、たとえば、割当部507が、自ノードと他ノードとをつなぐ仮想リンクVLと該仮想リンクVLに割り当てられたデータ流量とを関連付けて図9に示す割当テーブル900に記憶する。ここで、割当テーブル900の記憶内容の一例について説明する。
【0070】
図9は、割当テーブルの記憶内容の一例を示す説明図(その1)である。図9において、割当テーブル900は、仮想リンクIDおよびデータ流量のフィールドを有し、仮想リンクVL1〜VL3ごとの割当結果をレコードとして記憶している。なお、割当テーブル900は、RAM303、磁気ディスク、光ディスクなどの記憶装置に記憶される。
【0071】
送信部508は、割当結果を他ノードに送信する機能を有する。具体的には、たとえば、まず、送信部508が、割当テーブル900を参照して、自ノードと他ノードとをつなぐ仮想リンクVLに割り当てられたデータ流量を特定する。また、送信部508が、アドレステーブル400を参照して、他ノードのシステムノードアドレスを特定する。そして、送信部508が、特定されたシステムノードアドレスを用いて、特定されたデータ流量を他ノードに送信する。
【0072】
また、受信部502は、自ノートから他ノードに辿り着くまでの経路に割り当てられた割当結果を他ノードから受信する機能を有する。なお、受信された仮想リンクVLの割当結果は、たとえば、関連付け部503により、仮想リンクIDと関連付けて図10に示す割当テーブル1000に記憶される。
【0073】
図10は、割当テーブルの記憶内容の一例を示す説明図(その2)である。図10において、割当テーブル1000は、仮想リンクIDおよびデータ流量のフィールドを有し、仮想リンクVL1〜VL3ごとの割当結果をレコードとして記憶している。なお、割当テーブル1000は、RAM303、磁気ディスク、光ディスクなどの記憶装置に記憶される。
【0074】
また、転送部504は、受信された割当結果にしたがって、非実時間データを他ノードに転送する機能を有する。具体的には、たとえば、転送部504が、割当テーブル1000を参照して、仮想リンクVL1に割り当てられたデータ流量X’を超えないように非実時間データをノードN4に転送する。これにより、たとえば、ネットワークシステム200内の物理リンクのキャパシティを超える非実時間通信を回避して、スイッチ装置SW1の通信キューの増大を抑制することができる。
【0075】
(通常ノードの機能的構成)
つぎに、通常ノードSN(たとえば、グループG1内のノードN2,N3)の機能的構成について説明する。図11は、通常ノードの機能的構成を示すブロック図である。図11において、通常ノードSNは、第1の実行部1101と、第2の実行部1103と、送信部1102と、受信部1104と、算出部1105と、割当部1106と、を含む構成である。この制御部となる機能(第1の実行部1101〜割当部1106)は、具体的には、たとえば、図3に示したROM302、RAM303、磁気ディスク、光ディスクなどの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F304により、その機能を実現する。
【0076】
第1の実行部1101は、実時間通信を実行する機能を有する。具体的には、たとえば、第1の実行部1101は、送信部1102を制御して、ノードNのシステムノードを宛先アドレスに設定して、実時間通信に関するデータ(以下、「実時間データ」という)を送信する。
【0077】
ここで、実時間データとは、実時間性が要求されるデータであり、たとえば、フィードバック制御のためのデータである。なお、第1の実行部1101は、予め設定された時間間隔で周期的に実時間通信を実行する。ただし、実時間通信の周期開始時刻は、同一グループ内の中継ノードJNから同期パケットを受信した受信時刻である。
【0078】
第2の実行部1103は、非実時間通信を実行する機能を有する。具体的には、たとえば、第2の実行部1103が、送信部1102を制御して、ノードNのグループノードアドレスを宛先アドレスに設定して、非実時間データを送信する。ただし、異なるグループ内のノードNに非実時間データを送信する場合、自ノードNと同一グループ内の中継ノードJNを経由してノードNに送信することになる。
【0079】
以降において、各機能の具体例を説明する場合、通常ノードSNとして、ネットワークシステム200内のノードN2を想定する。
【0080】
受信部1104は、実時間データおよび非実時間データを受信する機能を有する。具体的には、たとえば、受信部1104が、スイッチ装置SW1を介して、実時間データまたは非実時間データを受信する。
【0081】
算出部1105は、受信された非実時間データのデータ流量に基づいて、第1のノード群のうち自ノードと他ノードとをつなぐ経路に割り当てるデータ流量を算出する機能を有する。ここで、自ノードと他ノードとをつなぐ経路とは、スイッチ装置SW1を介して接続されるノードN2とノードN1,N3とをそれぞれつなぐ物理リンクPLである。
【0082】
なお、算出部1105による算出処理は、上述した中継ノードJNの算出部506による算出処理と同様のため、ここでは説明を省略する。
【0083】
割当部1106は、算出されたデータ流量を、自ノードと他ノードとをつなぐ経路に割り当てる機能を有する。具体的には、たとえば、割当部1106が、自ノードと他ノードとをつなぐ物理リンクPLと該物理リンクPLに割り当てられたデータ流量とを関連付けて保持する。
【0084】
送信部1102は、割当結果を他ノードに送信する機能を有する。具体的には、たとえば、送信部1102が、アドレステーブル402を参照して、他ノードのシステムノードアドレスを特定する。そして、送信部1102が、特定されたシステムノードアドレスを用いて、自ノードと他ノードとの間に設定された物理リンクPLに割り当てられたデータ流量を送信する。
【0085】
また、受信部1104は、自ノードから他ノードに辿り着くまでの経路に割り当てられた割当結果を他ノードから受信する機能を有する。そして、第2の実行部1103は、受信された割当結果にしたがって、非実時間データを実行する。具体的には、たとえば、第2の実行部1103が、送信部1102を制御して、物理リンクVLに割り当てられたデータ流量を超えないように非実時間データを他ノードに送信する。
【0086】
(中継ノードの通信処理手順)
つぎに、中継ノードJNの通信処理手順について説明する。ただし、ネットワークシステム200内の全ノード群のうち、自ノードを除く他の中継ノードJNを「中継ノードJNi(i=1,2,…,n)」と表記する。また、自ノードと同一グループ内の通常ノードSNを「通常ノードSNj(j=1,2,…,m)」と表記する。また、自ノードと中継ノードJN1〜JNnとをつなぐ仮想リンクVL1〜VLnは予め設定されていることにする。
【0087】
図12は、中継ノードの通信処理手順の一例を示すフローチャートである。図12のフローチャートにおいて、まず、検出部505により、ネットワークシステム200を起動してから第1の周期の周期間隔分の時間が経過したか否かを判断する(ステップS1201)。
【0088】
ここで、第1の周期の時間間隔分経過していない場合(ステップS1201:No)、受信部502により、中継ノードJNiから同期パケットを受信したか否かを判断する(ステップS1202)。ここで、同期パケットを受信していない場合は(ステップS1202:No)、ステップS1201に戻る。
【0089】
一方、同期パケットを受信した場合(ステップS1202;Yes)、検出部505により、同期パケットの受信時刻を第1の周期の周期開始時刻として検出する(ステップS1203)。そして、自ノードと中継ノードJNiとをつなぐ仮想リンクVLiにデータ流量を割り当てる流量割当処理を実行する(ステップS1206)。
【0090】
このあと、転送部504により、仮想リンクVLiを用いて、非実時間データを中継ノードJNiに転送する第1の転送処理を実行する(ステップS1207)。つぎに、ネットワークシステム200の停止指示があったか否かを判断する(ステップS1208)。
【0091】
ここで、停止指示がない場合は(ステップS1208:No)、第2の周期の周期開始時刻となるまで待つ(ステップS1209:No)。そして、第2の周期の周期開始時刻となった場合に(ステップS1209:Yes)、ステップS1206に戻る。
【0092】
また、ステップS1201において、第1の周期の時間間隔分経過した場合(ステップS1201:Yes)、検出部505により、第1の周期の時間間隔分経過した時刻を第1の周期の周期開始時刻として検出する(ステップS1204)。そして、送信部508により、中継ノードJN1〜JNnに同期パケット送信して(ステップS1205)、ステップS1206に移行する。
【0093】
また、ステップS1208において、ネットワークシステム200の停止指示があった場合は(ステップS1208:Yes)、本フローチャートによる一連の処理を終了する。なお、ネットワークシステム200の停止指示は、たとえば、任意のタイミングで受け付けることにしてもよい。
【0094】
<流量割当処理手順>
つぎに、図12に示したステップS1206の流量割当処理の具体的処理手順について説明する。図13は、ステップS1206の流量割当処理の具体的処理手順の一例を示すフローチャートである。
【0095】
図13のフローチャートにおいて、まず、現在時刻が第1の周期の周期開始時刻か否かを判断する(ステップS1301)。ここで、第1の周期の周期開始時刻の場合(ステップS1301:Yes)、送信部508により、通常ノードSN1〜SNmに同期パケットを送信する(ステップS1302)。
【0096】
このあと、割当部507により、自ノードと中継ノードJN1〜JNnとをつなぐ仮想リンクVL1〜VLnにデータ流量「0」を割り当てる(ステップS1303)。そして、送信部508により、中継ノードJN1〜JNnに割当結果を送信して(ステップS1304)、図12に示したステップS1207に移行する。
【0097】
一方、ステップS1301において、現在時刻が第1の周期の周期開始時刻ではない場合(ステップS1301:No)、i=1として(ステップS1305)、i>nか否かを判断する(ステップS1306)。ここで、i≦nの場合(ステップS1306:No)、算出部506により、仮想リンクVLiに割り当てるデータ流量を算出する(ステップS1307)。
【0098】
そして、割当部507により、仮想リンクVLiに算出されたデータ流量を割り当て(ステップS1308)、送信部508により、中継ノードJNiに割当結果を送信する(ステップS1309)。このあと、i=i+1として(ステップS1310)、ステップS1306に戻る。
【0099】
また、ステップS1306において、i>nの場合は(ステップS1306:Yes)、図12に示したステップS1207に移行する。
【0100】
これにより、実時間通信と非実時間通信との実施期間を区別して、実時間通信と非実時間通信との衝突を回避することができる。
【0101】
<第1の転送処理手順>
つぎに、図12に示したステップS1207の第1の転送処理の具体的処理手順について説明する。図14は、ステップS1207の第1の転送処理の具体的処理手順の一例を示すフローチャートである。
【0102】
図14のフローチャートにおいて、まず、i=1として(ステップS1401)、i>nか否かを判断する(ステップS1402)。ここで、i≦nの場合(ステップS1402:No)、転送部504により、割当テーブル1000を参照して、仮想リンクVLiに割り当てられたデータ流量を特定する(ステップS1403)。
【0103】
つぎに、転送部504により、対応テーブル700を参照して、仮想リンクVLiに対応する非実時間データを記憶装置から読み出す(ステップS1404)。そして、転送部504により、仮想リンクVLiを用いて、ステップS1403において特定されたデータ流量にしたがって、読み出した非実時間データを転送する(ステップS1405)。
【0104】
このあと、i=i+1として(ステップS1406)、ステップS1402に戻り、i>nとなった場合(ステップS1402:Yes)、図12に示したステップS1208に移行する。
【0105】
これにより、ネットワーク210の物理リンクのキャパシティや実際の通信状況に応じて、非実時間通信のデータ流量を制御することができる。
【0106】
<第1の受信処理手順>
つぎに、同一グループ内の通常ノードSNjから非実時間データを受信する第1の受信処理の処理手順について説明する。図15は、中継ノードの第1の受信処理手順の一例を示すフローチャートである。図15のフローチャートにおいて、まず、受信部502により、通常ノードSNjから非実時間データを受信したか否かを判断する(ステップS1501)。
【0107】
ここで、非実時間データを受信するのを待って(ステップS1501:No)、受信した場合(ステップS1501:Yes)、関連付け部503により、受信された非実時間データに設定されている宛先アドレスのノードNと同一グループの中継ノードJNiを特定する(ステップS1502)。
【0108】
このあと、関連付け部503により、自ノードと特定された中継ノードJNiとをつなぐ仮想リンクVLiを特定する(ステップS1503)。最後に、関連付け部503により、非実時間データのデータIDと仮想リンクVLiの仮想リンクIDとを関連付けて対応テーブル700に記憶して(ステップS1504)、本フローチャートによる一連の処理を終了する。
【0109】
これにより、複数の仮想リンクVL1〜VLnの中から非実時間データの転送に用いる仮想リンクVLiを特定することができる。
【0110】
<第2の受信処理手順>
つぎに、自ノードと中継ノードJNiとをつなぐ仮想リンクVLiに割り当てられた割当結果を受信する第2の受信処理の処理手順について説明する。図16は、中継ノードの第2の受信処理手順の一例を示すフローチャートである。図16のフローチャートにおいて、まず、受信部502により、中継ノードJNiから割当結果を受信したか否かを判断する(ステップS1601)。
【0111】
ここで、割当結果を受信するのを待って(ステップS1601:No)、受信した場合(ステップS1601:Yes)、関連付け部503により、自ノードと中継ノードJNiとをつなぐ仮想リンクVLiを特定する(ステップS1602)。最後に、関連付け部503により、特定された仮想リンクVLiと受信された割当結果とを関連付けて割当テーブル1000に記憶して(ステップS1603)、本フローチャートによる一連の処理を終了する。
【0112】
これにより、各仮想リンクVL1〜VLnに割り当てられた非実時間データのデータ流量を特定することができる。
【0113】
<第2の転送処理手順>
つぎに、中継ノードJNiからの非実時間データを通常ノードSNjに転送する第2の転送処理の処理手順について説明する。図17は、中継ノードの第2の転送処理手順の一例を示すフローチャートである。
【0114】
図17のフローチャートにおいて、まず、受信部502により、中継ノードJNiから非実時間データを受信したか否かを判断する(ステップS1701)。ここで、非実時間データを受信するのを待って(ステップS1701:No)、受信した場合(ステップS1701:Yes)、転送部504により、受信された非実時間データを、該非実時間データに設定されているグループノードアドレス宛に転送する(ステップS1702)。
【0115】
これにより、異なるグループ間の非実時間データを、中継ノードJNを介して転送することができる。
【0116】
(通常ノードの通信処理手順)
つぎに、通常ノードSNの通信処理手順について説明する。ただし、同一グループ内の自ノードを除く残余のノードNを「グループノードGNk(k=1,2,…,m)」と表記する。図18は、通常ノードの通信処理手順の一例を示すフローチャートである。図18のフローチャートにおいて、まず、現在時刻が第1の周期の周期開始時刻か否かを判断する(ステップS1801)。
【0117】
ここで、第1の周期の周期開始時刻の場合(ステップS1801:Yes)、割当部1106により、自ノードとグループノードGN1〜GNmとをつなぐ物理リンクVL1〜VLmにデータ流量「0」を割り当てる(ステップS1802)。そして、送信部1102により、グループノードGN1〜GNmに割当結果を送信して(ステップS1803)、ステップS1810に移行する。
【0118】
一方、ステップS1801において、現在時刻が第1の周期の周期開始時刻ではない場合(ステップS1801:No)、k=1として(ステップS1804)、k>mか否かを判断する(ステップS1805)。ここで、k≦mの場合(ステップS1805:No)、算出部1105により、物理リンクPLkに割り当てるデータ流量を算出する(ステップS1806)。
【0119】
そして、割当部1106により、物理リンクPLkに算出されたデータ流量を割り当て(ステップS1807)、送信部1102により、グループノードGNkに割当結果を送信する(ステップS1808)。このあと、k=k+1として(ステップS1809)、ステップS1805に戻る。
【0120】
また、ステップS1805において、k>mの場合は(ステップS1805:Yes)、第2の実行部1103により、非実時間通信処理を実行する(ステップS1810)。つぎに、ネットワークシステム200の停止指示があったか否かを判断する(ステップS1811)。
【0121】
ここで、停止指示がない場合は(ステップS1811:No)、第2の周期の周期開始時刻となるまで待つ(ステップS1812:No)。そして、第2の周期の周期開始時刻となった場合に(ステップS1812:Yes)、ステップS1801に戻る。また、ステップS1811において、ネットワークシステム200の停止指示があった場合は(ステップS1811:Yes)、本フローチャートによる一連の処理を終了する。
【0122】
これにより実時間通信と非実時間通信との実施期間を区別して、実時間通信と非実時間通信との衝突を回避することができる。
【0123】
<非実時間通信処理手順>
つぎに、図18に示したステップS1810の非実時間通信処理の具体的処理手順について説明する。図19は、ステップS1810の非実時間通信処理の具体的処理手順の一例を示すフローチャートである。
【0124】
図19のフローチャートにおいて、まず、k=1として(ステップS1901)、k>mか否かを判断する(ステップS1902)。ここで、k≦mの場合(ステップS1902:No)、第2の実行部1103により、物理リンクPLkに割り当てられたデータ流量を特定する(ステップS1903)。
【0125】
つぎに、第2の実行部1103により、物理リンクPLkに対応する非実時間データを記憶装置から読み出す(ステップS1904)。そして、第2の実行部1103により、送信部1102を制御して、物理リンクPLkを用いて、ステップS1903において特定されたデータ流量にしたがって、読み出した非実時間データを送信する(ステップS1905)。
【0126】
このあと、k=k+1として(ステップS1906)、ステップS1902に戻り、k>mとなった場合(ステップS1902:Yes)、図18に示したステップS1811に移行する。
【0127】
これにより、ネットワーク210の物理リンクのキャパシティや実際の通信状況に応じて、非実時間通信のデータ流量を制御することができる。
【0128】
<実時間通信処理手順>
つぎに、通常ノードSNの実時間通信処理手順について説明する。図20は、通常ノードの実時間通信処理手順の一例を示すフローチャートである。図20のフローチャートにおいて、まず、現在時刻が第1の周期の周期開始時刻か否かを判断する(ステップS2001)。
【0129】
ここで、現在時刻が第1の周期の周期開始時刻となるのを待って(ステップS2001:No)、第1の周期の周期開始時刻となった場合(ステップS2001:Yes)、第1の実行部1101により、物理リンクPL1〜PLmに対応する実時間データを記憶装置から読み出す(ステップS2002)。そして、第2の実行部1103により、送信部1102を制御して、物理リンクPL1〜PLmを用いて、読み出した実時間データを送信する(ステップS2003)。
【0130】
なお、本明細書では、実時間データと非実時間データとを宛先アドレスの違いにより区別することにしたがこれに限らない。具体的には、たとえば、実時間データおよび非実時間データのヘッダ情報としていずれかの通信であることを示す情報を付与してもよい。
【0131】
以上説明したように、本開示技術によれば、各グループから選ばれた中継ノードJN間をつなぐ仮想リンクVLを用いて、グループ間の非実時間データを転送することができる。これにより、グループ間の非実時間データを一つにまとめて、実時間通信との衝突を低減させることができる。
【0132】
また、本開示技術によれば、ネットワーク210内で周期的に実行される実時間通信の周期開始時刻とは異なる時刻に、グループ間の非実時間データを転送することができる。これにより、実時間通信と非実時間通信との実施期間を区別して、実時間通信と非実時間通信との衝突を回避することができる。
【0133】
また、本開示技術によれば、複数のスイッチ装置を用いてネットワークシステム200が構築可能となるため、システム構成の柔軟性や拡張性を向上させることができる。
【0134】
また、本開示技術によれば、ネットワーク210の伝送能力に基づいて、仮想リンクVLに割り当てるデータ流量を算出することができる。これにより、ネットワーク210の物理リンクのキャパシティに応じて、非実時間通信のデータ流量を制御することができる。
【0135】
また、本開示技術によれば、他グループの中継ノードJNから転送された非実時間データに基づいて、仮想リンクVLに割り当てるデータ流量を算出することができる。これにより、グループ間の実際の通信状況に応じて、非実時間通信のデータ流量を制御することができる。
【0136】
また、本開示技術によれば、ネットワークシステム200全体で一意に決まるノードNの宛先アドレスを用いて実時間通信を実行することができる。また、本開示技術によれば、各グループで一意に決まるノードNの宛先アドレスを用いて非実時間通信を実行することができる。これにより、ネットワークシステム200において、実時間データと、非実時間データとを区別することができる。
【0137】
また、上述した通信手法では、中継ノードJNと直接接続されていないスイッチ装置を隣り合って接続することができないというトポロジ上の制約が存在する。具体的には、たとえば、コアスイッチやルータスイッチなどのスイッチ装置間をつなぐスイッチ装置を設置する場合、中継ノードJNと直接接続されていないスイッチ装置を隣り合って接続することになる。この場合、中継ノードJNと直接接続されていないスイッチ装置間でデータが衝突し、従来技術と同様の問題が生じてしまう。
【0138】
そこで、スイッチ装置同士をつなぐスイッチ装置に中継ノードJNを設置する。具体的には、中継ノードJNと直接接続されたスイッチ装置と、中継ノードJNと直接接続されていないスイッチ装置とをつなぐスイッチ装置に中継ノードJNを設置する。
【0139】
図21は、実施の形態にかかるネットワークシステムのシステム構成図(その2)である。ネットワークシステム2100において、個々のスイッチ装置SW1〜SW16と直接接続されたノード群(不図示)により形成された小グループSG1〜SG15が、ネットワーク210を介して通信可能に接続されている。
【0140】
また、小グループSG1〜SG5により大グループBG1が形成され、小グループSG6〜SG10により大グループBG2が形成され、小グループSG11〜SG15により大グループBG3が形成されている。ここで、スイッチ装置SW5,SW10,SW15は、スイッチ装置同士をつなぐコアスイッチである。そこで、各スイッチ装置SW5,SW10,SW15に中継ノード2110,2120,2130を設置する。
【0141】
ネットワークシステム2100では、大グループBG1〜BG3を超える非実時間通信は、小グループ間の通信として、一度、大グループの中継ノード(たとえば、中継ノード2110,2120,2130)に非実時間データを送信する。また、大グループ間の通信は、小グループ間の中継ノード同士と同様の通信処理手順を実施することにより、実時間通信に干渉することなく非実時間通信を実行することができる。
【0142】
このように、直接中継ノードを持たないスイッチ装置同士が隣接することを防ぐことにより、大規模システムにも対応することができる。
【0143】
なお、本実施の形態で説明した通信方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本通信プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本通信プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【0144】
200,2100 ネットワークシステム
210 ネットワーク
501 設定部
502,1104 受信部
503 関連付け部
504 転送部
505 検出部
506,1105 算出部
507,1106 割当部
508,1102 送信部
1101 第1の実行部
1103 第2の実行部
N ノード
JN 中継ノード
SN 通常ノード
【特許請求の範囲】
【請求項1】
第1および第2のノード群を接続する中継装置を介して前記ノード間の実時間通信を実行するネットワーク内の前記ノードに非実時間通信を実行させる通信プログラムであって、
前記第1のノード群から選ばれた自ノードに、当該自ノードから前記第2のノード群から選ばれた他ノードに辿り着くまでの経路を設定させる設定工程と、
前記第1のノード群のうち前記自ノードを除く残余のノードから前記第2のノード群のうち前記他ノードを除く残余のノードに対する非実時間通信に関するデータを前記自ノードに受信させる受信工程と、
前記受信工程によって受信されたデータを、前記設定工程によって設定された経路を用いて、前記自ノードから前記他ノードに転送させる転送工程と、
を前記自ノードのコンピュータに実行させることを特徴とする通信プログラム。
【請求項2】
前記ネットワーク内で周期的に実行される実時間通信の周期開始時刻を検出させる検出工程を前記コンピュータに実行させ、
前記転送工程は、
前記検出工程によって検出された実時間通信の周期開始時刻とは異なる時刻に、前記非実時間通信に関するデータを前記自ノードから前記他ノードに転送させることを特徴とする請求項1に記載の通信プログラム。
【請求項3】
前記自ノードに、前記ネットワークの伝送能力に基づいて、設定された経路に割り当てるデータ流量を算出させる算出工程と、
前記自ノードに、前記算出工程によって算出されたデータ流量を前記経路に割り当てさせる割当工程と、
前記自ノードに、前記割当工程によって割り当てられた割当結果を前記他ノードに送信させる送信工程と、を前記コンピュータに実行させることを特徴とする請求項1または2に記載の通信プログラム。
【請求項4】
前記算出工程は、
前記他ノードから前記自ノードに転送された非実時間データのデータ流量に基づいて、設定された経路に割り当てるデータ流量を算出することを特徴とする請求項3に記載の通信プログラム。
【請求項5】
前記自ノードに、前記第2のノード群のうち前記他ノードを除く残余のノードから前記第1のノード群のうち前記自ノードを除く残余のノードに対する非実時間通信に関するデータを前記他ノードから受信させる非実時間データ受信工程と、
前記自ノードに、前記非実時間データ受信工程によって受信されたデータを前記第1のノード群のうち前記自ノードを除く残余のノードに転送させる非実時間データ転送工程と、を前記コンピュータに実行させることを特徴とする請求項1または2に記載の通信プログラム。
【請求項6】
実時間通信に関するデータには、前記ネットワークに含まれるノードを一意に特定するアドレスが設定され、非実時間通信に関するデータには、前記各ノード群に含まれるノードを一意に特定するアドレスが設定されていることを特徴とする請求項1〜5のいずれか一つに記載の通信プログラム。
【請求項7】
第1および第2のノード群を接続する中継装置を介して前記ノード間の実時間通信を実行するネットワーク内の非実時間通信を実行する中継ノードであって、
前記第1のノード群から選ばれた自ノードから前記第2のノード群から選ばれた他の中継ノードに辿り着くまでの経路を設定する設定手段と、
前記第1のノード群のうち前記自ノードを除く残余のノードから前記第2のノード群のうち前記他ノードを除く残余のノードに対する非実時間通信に関するデータを受信する受信手段と、
前記受信手段によって受信されたデータを、前記設定手段によって設定された経路を用いて、前記他ノードに転送する転送手段と、
を備えることを特徴とする中継ノード。
【請求項8】
第1および第2のノード群を接続する中継装置を介して前記ノード間の実時間通信を実行するネットワーク内の前記ノードに非実時間通信を実行させる通信方法であって、
前記第1のノード群から選ばれた自ノードから前記第2のノード群から選ばれた他の中継ノードに辿り着くまでの経路を設定する設定工程と、
前記第1のノード群のうち前記自ノードを除く残余のノードから前記第2のノード群のうち前記他ノードを除く残余のノードに対する非実時間通信に関するデータを受信する受信工程と、
前記受信工程によって受信されたデータを、前記設定工程によって設定された経路を用いて、前記他ノードに転送する転送工程と、
を前記自ノードのコンピュータに実行させることを特徴とする通信方法。
【請求項1】
第1および第2のノード群を接続する中継装置を介して前記ノード間の実時間通信を実行するネットワーク内の前記ノードに非実時間通信を実行させる通信プログラムであって、
前記第1のノード群から選ばれた自ノードに、当該自ノードから前記第2のノード群から選ばれた他ノードに辿り着くまでの経路を設定させる設定工程と、
前記第1のノード群のうち前記自ノードを除く残余のノードから前記第2のノード群のうち前記他ノードを除く残余のノードに対する非実時間通信に関するデータを前記自ノードに受信させる受信工程と、
前記受信工程によって受信されたデータを、前記設定工程によって設定された経路を用いて、前記自ノードから前記他ノードに転送させる転送工程と、
を前記自ノードのコンピュータに実行させることを特徴とする通信プログラム。
【請求項2】
前記ネットワーク内で周期的に実行される実時間通信の周期開始時刻を検出させる検出工程を前記コンピュータに実行させ、
前記転送工程は、
前記検出工程によって検出された実時間通信の周期開始時刻とは異なる時刻に、前記非実時間通信に関するデータを前記自ノードから前記他ノードに転送させることを特徴とする請求項1に記載の通信プログラム。
【請求項3】
前記自ノードに、前記ネットワークの伝送能力に基づいて、設定された経路に割り当てるデータ流量を算出させる算出工程と、
前記自ノードに、前記算出工程によって算出されたデータ流量を前記経路に割り当てさせる割当工程と、
前記自ノードに、前記割当工程によって割り当てられた割当結果を前記他ノードに送信させる送信工程と、を前記コンピュータに実行させることを特徴とする請求項1または2に記載の通信プログラム。
【請求項4】
前記算出工程は、
前記他ノードから前記自ノードに転送された非実時間データのデータ流量に基づいて、設定された経路に割り当てるデータ流量を算出することを特徴とする請求項3に記載の通信プログラム。
【請求項5】
前記自ノードに、前記第2のノード群のうち前記他ノードを除く残余のノードから前記第1のノード群のうち前記自ノードを除く残余のノードに対する非実時間通信に関するデータを前記他ノードから受信させる非実時間データ受信工程と、
前記自ノードに、前記非実時間データ受信工程によって受信されたデータを前記第1のノード群のうち前記自ノードを除く残余のノードに転送させる非実時間データ転送工程と、を前記コンピュータに実行させることを特徴とする請求項1または2に記載の通信プログラム。
【請求項6】
実時間通信に関するデータには、前記ネットワークに含まれるノードを一意に特定するアドレスが設定され、非実時間通信に関するデータには、前記各ノード群に含まれるノードを一意に特定するアドレスが設定されていることを特徴とする請求項1〜5のいずれか一つに記載の通信プログラム。
【請求項7】
第1および第2のノード群を接続する中継装置を介して前記ノード間の実時間通信を実行するネットワーク内の非実時間通信を実行する中継ノードであって、
前記第1のノード群から選ばれた自ノードから前記第2のノード群から選ばれた他の中継ノードに辿り着くまでの経路を設定する設定手段と、
前記第1のノード群のうち前記自ノードを除く残余のノードから前記第2のノード群のうち前記他ノードを除く残余のノードに対する非実時間通信に関するデータを受信する受信手段と、
前記受信手段によって受信されたデータを、前記設定手段によって設定された経路を用いて、前記他ノードに転送する転送手段と、
を備えることを特徴とする中継ノード。
【請求項8】
第1および第2のノード群を接続する中継装置を介して前記ノード間の実時間通信を実行するネットワーク内の前記ノードに非実時間通信を実行させる通信方法であって、
前記第1のノード群から選ばれた自ノードから前記第2のノード群から選ばれた他の中継ノードに辿り着くまでの経路を設定する設定工程と、
前記第1のノード群のうち前記自ノードを除く残余のノードから前記第2のノード群のうち前記他ノードを除く残余のノードに対する非実時間通信に関するデータを受信する受信工程と、
前記受信工程によって受信されたデータを、前記設定工程によって設定された経路を用いて、前記他ノードに転送する転送工程と、
を前記自ノードのコンピュータに実行させることを特徴とする通信方法。
【図1】
【図2】
【図3】
【図4−1】
【図4−2】
【図4−3】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3】
【図4−1】
【図4−2】
【図4−3】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公開番号】特開2010−219812(P2010−219812A)
【公開日】平成22年9月30日(2010.9.30)
【国際特許分類】
【出願番号】特願2009−63492(P2009−63492)
【出願日】平成21年3月16日(2009.3.16)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成22年9月30日(2010.9.30)
【国際特許分類】
【出願日】平成21年3月16日(2009.3.16)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]