(57)【特許請求の範囲】
【請求項１】
第１の優先度を有する第１のパケットを格納する第１のパケット格納部と前記第１の優先度より低い優先度である第２の優先度を有する第２のパケットを格納する第２のパケット格納部とを各々有する複数の出力ポートと、
複数の入力ポートの各々について、前記第１のパケットを送信する前に送信され且つ前記複数の出力ポートのうちの１つの出力ポートにおける前記第２のパケット格納部からのパケット出力の停止を制御するために用いられる制御時間を含む制御パケットの受信を検出する検出部と、
前記検出部が制御パケットを検出した場合、当該制御パケットから特定され且つ前記第１のパケットを出力する、前記複数の出力ポートのうちの１つの出力ポートに対して、当該制御パケットに含まれる制御時間から特定され且つ前記第１のパケットの到着が予定される期間、前記第２のパケット格納部からのパケット出力を停止するように前記１つの出力ポートを制御する処理部と、
を有し、
前記期間が、
前記制御パケット受信後、前記制御時間経過後までと、
前記制御パケット受信後、前記制御パケットの後に送信される前記第１のパケットの送信元から送信先までの伝送遅延時間に相当する時間と前記制御時間との和の時間経過後までと、
前記制御パケット受信後に前記制御時間から前記伝送遅延時間に相当する時間を引いた時間経過後、前記伝送遅延時間に相当する時間の２倍の時間経過後までと、
前記制御パケット受信後に前記制御時間から前記伝送遅延時間に相当する時間の２倍の時間を引いた時間経過後、前記伝送遅延時間に相当する時間の２倍の時間経過後までとのうちのいずれかである
中継装置。
【請求項２】
前記複数の入力ポートの各々が、前記制御パケットの受信時刻を記録し、
前記複数の出力ポートの各々が、前記制御時間から前記制御パケットの送信予定時刻と前記受信時刻との差を差し引いた時間を新たな制御時間として当該制御パケットに設定して送出する
請求項１記載の中継装置。
【請求項３】
前記制御パケットが、当該制御パケットの後に送信される前記第１のパケットの方向に関するデータを含み、
前記処理部は、
前記第１の方向に関するデータが、前記制御パケットの送信元ノードから宛先ノードへの方向を示している場合には、当該宛先ノードのアドレスから前記１つの出力ポートを特定し、
前記第１の方向に関するデータが、前記制御パケットの宛先ノードから送信元ノードへの方向を示している場合には、前記制御パケットを受信した入力ポートに対応する出力ポートを前記第１の出力ポートとして特定する
請求項１又は２記載の中継装置。
【請求項４】
前記検出部が、前記制御パケットの送信元ノードから宛先ノードまでの予測遅延時間を収集するための第２の制御パケットを検出した場合、前記制御部が、前記宛先ノードのアドレスから特定される出力ポートに対応付けて保持している当該中継装置における予測遅延時間と、前記第２の制御パケットに含まれている予測遅延時間との和を、前記第２の制御パケットに新たな予測遅延時間として設定する
請求項１乃至３のいずれか１つ記載の中継装置。
【請求項５】
前記検出部が、前記制御パケットの宛先ノードから送信元ノードまでの予測遅延時間を収集するための第３の制御パケットを検出した場合、前記制御部が、前記送信元ノードのアドレスから特定される出力ポートに対応付けて保持している当該中継装置における予測遅延時間と、前記第３の制御パケットに含まれている予測遅延時間との和を、前記第３の制御パケットに新たな予測遅延時間として設定する
請求項４記載の中継装置。
【請求項６】
１又は複数の中継装置を介して第１のノードと第２のノードとの間で行われる通信を制御する通信制御方法であって、
前記１又は複数の中継装置で中継される他のパケットより優先度の高い第１のパケットを送信する前に、前記第１のノードから制御パケットを前記第２のノードへ送信する第１送信ステップと、
前記第１のノードから前記第２のノードへの経路上の中継装置が、前記制御パケットに応じて、当該制御パケットに含まれる制御時間から特定される期間、当該中継装置における複数の出力ポートのうち前記第１のパケットを出力する１つの出力ポートにおける、前記他のパケットを格納するパケット格納部からのパケット出力を停止するステップと、
前記期間中に、前記第１のノードから前記第２のノードへ又は前記第２のノードから前記第１のノードへ前記第１のパケットを送信する第２送信ステップと、
を含み、
前記期間が、
前記制御パケット受信後、前記制御時間経過後までと、
前記制御パケット受信後、前記制御パケットの後に送信される前記第１のパケットの送信元から送信先までの伝送遅延時間に相当する時間と前記制御時間との和の時間経過後までと、
前記制御パケット受信後に前記制御時間から前記伝送遅延時間に相当する時間を引いた時間経過後、前記伝送遅延時間に相当する時間の２倍の時間経過後までと、
前記制御パケット受信後に前記制御時間から前記伝送遅延時間に相当する時間の２倍の時間を引いた時間経過後、前記伝送遅延時間に相当する時間の２倍の時間経過後までとのうちのいずれかである
通信制御方法。
【請求項７】
第１の優先度を有する第１のパケットを格納する第１のパケット格納部と前記第１の優先度より低い優先度である第２の優先度を有する第２のパケットを格納する第２のパケット格納部とを各々有する複数の出力ポートを有する中継装置に、
複数の入力ポートの各々について、前記第１のパケットを送信する前に送信され且つ前記複数の出力ポートのうちの１つの出力ポートにおける前記第２のパケット格納部からのパケット出力の停止を制御するために用いられる制御時間を含む制御パケットの受信を検出したことを表すデータを受信し、
当該制御パケットから特定され且つ前記第１のパケットを出力する、前記複数の出力ポートのうちの１つの出力ポートに対して、当該制御パケットに含まれる制御時間から特定され且つ前記第１のパケットの到着が予定される期間、前記第２のパケット格納部からのパケット出力を停止するように前記１つの出力ポートを制御する
処理を実行させ、
前記期間が、
前記制御パケット受信後、前記制御時間経過後までと、
前記制御パケット受信後、前記制御パケットの後に送信される前記第１のパケットの送信元から送信先までの伝送遅延時間に相当する時間と前記制御時間との和の時間経過後までと、
前記制御パケット受信後に前記制御時間から前記伝送遅延時間に相当する時間を引いた時間経過後、前記伝送遅延時間に相当する時間の２倍の時間経過後までと、
前記制御パケット受信後に前記制御時間から前記伝送遅延時間に相当する時間の２倍の時間を引いた時間経過後、前記伝送遅延時間に相当する時間の２倍の時間経過後までとのうちのいずれかである
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、通信制御技術に関する。
【背景技術】
【０００２】
従来から、リアルタイムに送信すべき実時間データとリアルタイムに送信しなくても良い非実時間データを同じネットワークで伝送するための様々な技術が存在している。例えば、ＬＡＮ（Local Area Network）網と無線網との間に設置された帯域制御装置により、非実時間通信の偏りを検知して非実時間通信を抑制するよう制御することで、実時間通信のための固定帯域を確保して実時間通信のオーバフローを低減する。この技術によれば音声通信等の固定帯域を要する実時間通信の品質を確保することができる。しかしながら、このような技術では平均的には音声通信等の実時間通信の品質は確保されるが、部分的には大きな遅延が発生することもある。
【０００３】
また、別の技術では、中継装置等において、予め設定されたフレーム長以上の非実時間通信データを受信した場合に、設定されたフレーム長以下に非実時間通信データを分割することで、実時間通信と非実時間通信との衝突を低減する。これでは、衝突を完全に排除することはできず、経路上の中継装置の数が増えると遅延が大きくなる可能性がある。また、非実時間通信の分割サイズで実時間通信の品質を調整可能ではあるが、分割サイズが大きすぎると衝突が増加し、分割サイズを小さくすると、ヘッダ長の増加によりネットワークの実帯域が減る、受信ノードの処理負荷が高くなるなどの問題がある。
【０００４】
例えば、スイッチ等の中継装置において、実時間データを出力する出力ポートから、既に非実時間データが出力されている場合、たとえ実時間データを優先的に処理できるとしても、実時間データを中継装置が受信した時点で送信中の非実時間データのフレームに邪魔され、そのフレームの大きさ分だけ実時間データの送出が遅延する可能性がある。例えば、１Ｇｂｐｓ（＝１２５Ｍｂｐｓ）のスイッチで、ＭＴＵ（Maximum Transmission Unit）が９０００バイトの場合には、最大遅延は約７２（＝９０００／１２５Ｍ）μ秒である。これは１つの中継装置での最大遅延であるから、宛先ノードまでの中継装置の段数が増加すれば、このようなフレーム衝突による遅延がより大きくなる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２０８１２４号公報
【特許文献２】特開２００２−３３７６６号公報
【特許文献３】特開２００３−３３８８３７号公報
【特許文献４】特開２００７−２８６３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従って、本技術の目的は、一側面においては、中継装置における実時間データの伝送遅延を削減するための技術を提供することである。
【課題を解決するための手段】
【０００７】
第１の態様に係る通信制御方法は、１又は複数の中継装置を介して第１のノードと第２のノードとの間で行われる通信を制御する通信制御方法である。この通信制御方法は、（Ａ）１又は複数の中継装置で中継される他のパケットより優先度の高い第１のパケットより前に、第１のノードから制御パケットを第２のノードへ送信する第１送信ステップと、（Ｂ）第１のノードから第２のノードへの経路上の中継装置が、制御パケットに応じて、当該制御パケットに含まれる制御時間から特定される期間、当該中継装置における複数の出力ポートのうち第１のパケットを出力する１つの出力ポートにおける、上記他のパケットのためのパケット格納部からのパケット出力を停止するステップと、（Ｃ）上記期間中に、第１のノードから第２のノードへ又は第２のノードから第１のノードへ第１のパケットを送信する第２送信ステップとを含む。
【０００８】
第２の態様に係る中継装置は、（Ａ）第１の優先度を有する第１のパケットを格納する第１のパケット格納部と第１の優先度より低い優先度である第２の優先度を有する第２のパケットを格納する第２のパケット格納部とを各々有する複数の出力ポートと、（Ｂ）複数の入力ポートの各々について、第１のパケットを送信する前に送信され且つ複数の出力ポートのうちの１つの出力ポートにおける第２のパケット格納部からのパケット出力の停止を制御するために用いられる制御時間を含む制御パケットの受信を検出する検出部と、（Ｃ）検出部が制御パケットを検出した場合、当該制御パケットから特定され且つ第１のパケットを出力する、複数の出力ポートのうちの１つの出力ポートに対して、当該制御パケットに含まれる制御時間から特定され且つ第１のパケットの到着が予定される期間、第２のパケット格納部からのパケット出力を停止するように上記１つの出力ポートを制御する処理部とを有する。
【発明の効果】
【０００９】
中継装置における実時間データの伝送遅延を削減することができるようになる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態に係るネットワークの一例を示す図である。
【図２】図２は、ノードＮ２の機能ブロック図である。
【図３】図３は、ノードＮ６の機能ブロック図である。
【図４】図４は、スイッチの機能ブロック図である。
【図５】図５は、遅延ＤＢに格納されるデータの一例を示す図である。
【図６】図６は、遅延ＤＢに格納されているデータの一例を示す図である。
【図７】図７は、出力ポートの機能ブロック図である。
【図８】図８は、実施の形態に係る処理フローを示す図である。
【図９】図９は、要求パケットのパケットフォーマットを表す図である。
【図１０】図１０は、要求パケット処理の処理フローを示す図である。
【図１１】図１１は、処理後の要求パケットの一例を示す図である。
【図１２】図１２は、実施の形態に係る処理フローを示す図である。
【図１３】図１３は、ノードＮ６の第１データ格納部に格納されるデータの一例を示す図である。
【図１４】図１４は、要求パケットについての処理の概要を示す図である。
【図１５】図１５は、実施の形態に係る処理フローを示す図である。
【図１６】図１６は、応答パケットのパケットフォーマットを表す図である。
【図１７】図１７は、応答パケット処理の処理フローを示す図である。
【図１８】図１８は、処理後の応答パケットの一例を示す図である。
【図１９】図１９は、実施の形態に係る処理フローを示す図である。
【図２０】図２０は、ノードＮ２の第１データ格納部に格納されるデータの一例を示す図である。
【図２１】図２１は、応答パケットについての処理の概要を示す図である。
【図２２】図２２は、応答確認パケットのパケットフォーマットを表す図である。
【図２３】図２３は、応答確認パケットについての処理の概要を示す図である。
【図２４】図２４は、前方通知の場合に実時間パケットを送信するノードの処理フローを示す図である。
【図２５】図２５は、前方通知の場合における予告パケットのパケットフォーマットを表す図である。
【図２６】図２６は、予告パケットについての処理を示す図である。
【図２７】図２７は、予告パケット処理の処理フローを示す図である。
【図２８】図２８は、前方通知の場合における実時間パケット送信の処理フローを示す図である。
【図２９】図２９は、前方通知の場合における予告パケット及び実時間パケットの送信タイミングを説明するための図である。
【図３０】図３０は、後方通知の場合に予告パケットを送信するノードの処理を表す図である。
【図３１】図３１は、後方通知の場合における予告パケットのパケットフォーマットを表す図である。
【図３２】図３２は、後方通知の場合における実時間パケット送信の処理フローを示す図である。
【図３３】図３３は、後方通知の場合における予告パケット及び実時間パケットの送信タイミングを説明するための図である。
【図３４】図３４は、第１の変形例における前方通知の場合の予告パケット及び実時間パケットの送信タイミングを説明するための図である。
【図３５】図３５は、第１の変形例における後方通知の場合の予告パケット及び実時間パケットの送信タイミングを説明するための図である。
【図３６】図３６は、第１の変形例のための予告パケット処理の処理フローを示す図である。
【図３７】図３７は、第２の変形例における前方通知の場合の予告パケット及び実時間パケットの送信タイミングを説明するための図である。
【図３８】図３８は、第２の変形例における後方通知の場合の予告パケット及び実時間パケットの送信タイミングを説明するための図である。
【図３９】図３９は、出力制御部の処理フローを示す図である。
【図４０Ａ】図４０Ａは、前方通知における送信元ノードの処理フロー（さらなる変形例）を示す図である。
【図４０Ｂ】図４０Ｂは、後方通知における送信元ノードの処理フロー（さらなる変形例）を示す図である。
【図４０Ｃ】図４０Ｃは、予告パケット処理のさらなる変形例を示す図である。
【図４１】図４１は、前方通知のみを行う場合における応答確認パケットを送信する場合の処理フローを示す図である。
【図４２】図４２は、前方通知のみを行う場合における応答確認パケットのパケットフォーマットを示す図である。
【図４３】図４３は、スイッチの処理のまとめのフローを示す図である。
【図４４】図４４は、スイッチの構成の他の例を示す図である。
【図４５】図４５は、ノードの機能ブロック図である。
【発明を実施するための形態】
【００１１】
本実施の形態では、図１に示すようなネットワークを想定する。本実施の形態では、中継装置としてスイッチを想定している。スイッチＳＷ１には、ノードＮ１、Ｎ２及びＮ３が接続されており、さらに他のスイッチＳＷ２にも接続されている。スイッチＳＷ２には、スイッチＳＷ５、ＳＷ４及びＳＷ３が接続されている。スイッチＳＷ３には、ノードＮ４、Ｎ５及びＮ６が接続されている。スイッチＳＷ２、ＳＷ４及びＳＷ５にもノードが接続されているが、ここでは図示及び説明を省略している。そして、本実施の形態では、ノードＮ６は、センサ及びアクチュエータとして機能して、例えば定期的に又は要求に応じて測定値などを出力するものとする。また、ノードＮ２は、コントローラとして機能して、測定値をセンサとして機能するノードＮ６から取得し、当該測定値に応じた制御値を生成してアクチュエータとして機能するノードＮ６に当該制御値を送信するものとする。
【００１２】
ノードＮ２は、例えば図２に示すような構成を有する。ノードＮ２は、通信制御部１００と、通信制御部１００が制御パケットを送信する際等に用いるデータを格納する第１データ格納部１１０と、所定の制御処理を実施するコントローラ１３０と、コントローラ１３０の出力データ及び他のノードから受信したデータを格納する第２データ格納部１２０とを有する。
【００１３】
また、ノードＮ６は、例えば図３に示すような構成を有する。ノードＮ６は、通信制御部２００と、通信制御部２００が制御パケットを送信する際等に用いるデータを格納する第１データ格納部２１０と、所定の物理量等を計測するセンサ２３０と、コントローラ１３０からの指示に応じて所定の動作を行うアクチュエータ２４０と、センサ２３０の出力データ及び他のノードから受信したデータを格納する第２データ格納部２２０とを有する。
【００１４】
図４に、スイッチの機能ブロック図を示す。スイッチＳＷは、複数の入力ポート３０１（図４では３０１ａ及び３０１ｂ）と、複数の検出部３０３（図４では３０３ａ及び３０３ｂ）と、スイッチ部３０７と、複数の出力ポート３０９（図４では３０９ａ及び３０９ｂ）と、制御パケット処理部３０５と、遅延ＤＢ３１１と、遅延演算部３１３とを有する。
【００１５】
各検出部３０３は、入力ポートの何れかに対応付けられており、その入力ポートで受信したパケットの中で以下で説明する制御パケットを検出すると、当該制御パケットのデータを制御パケット処理部３０５に出力する。また、検出部３０３は、受信した他のパケットをスイッチ部３０７に出力する。スイッチ部３０７は、受信したパケットの宛先アドレスから出力すべき出力ポートを特定し、その出力ポートにそのパケットを出力する。出力ポート３０９は、スイッチ部３０７からパケットを受信すると、キュー（バッファなどの記憶装置）に格納し、その後所定のタイミングでキューから読み出して出力する。
【００１６】
制御パケット処理部３０５は、検出部３０３から制御パケットを受信すると、以下で述べる処理を実施して、スイッチ部３０７に出力する。なお、制御パケット処理部３０５は、宛先アドレス等から、該当する出力ポートの識別子（例えば番号）を特定可能になっているものとする。さらに、制御パケット処理部３０５は、出力ポート３０９の制御をも行う。
【００１７】
なお、制御パケット処理部３０５は、遅延ＤＢ３１１に格納されているデータを用いて処理を実施する場合もある。また、遅延演算部３１３は、遅延ＤＢ３１１に格納するデータを生成する。
【００１８】
図５に、遅延ＤＢ３１１に格納されるデータの一例を示す。図５の例では、出力ポート毎に、リンクスピード（例えばＭｂｐｓ）と、ＭＴＵ（バイト）と、当該出力ポートから出力する際に生じ得る予測遅延時間とを登録するようになっている。例えば、予測遅延時間以外のデータについては、予め格納しておき、遅延演算部３１３が、ＭＴＵ／リンクスピード／８により予測遅延時間を算出して、遅延ＤＢ３１１に登録する。なお、遅延時間演算部３１３が、出力ポート毎に、リンクスピード及びＭＴＵを収集して、遅延ＤＢ３１１に登録するようにしても良いし、管理者が設定するようにしても良い。
【００１９】
さらに、遅延ＤＢ３１１には、図６に示すようなデータも格納されている。図６の例では、送信元ノードと宛先ノードとの組み合わせ毎に、伝送遅延時間が登録されるようになっている。伝送遅延時間は、送信元ノードから宛先ノードまでパケットを送信した場合に、経路途中のスイッチで全く衝突などが生じなかった場合にかかる時間である。これはケーブルの伝送遅延とスイッチの最小転送遅延との総和である。例えば、図６に示すように、送信元ノードと宛先ノードとの組み合わせ毎に、測定を行って設定するようにしても良いし、場合によっては各組み合わせでの測定結果のうち最大値を、１つだけ設定するようにしても良い。
【００２０】
また、スイッチＳＷの各出力ポート３０９は、図７に示すような構成を有する。出力ポート３０９は、例えば優先度毎に設けられた出力キュー３０９３（図７では３０９３ａ及び３０９３ｂ）と、出力ポート３０９についての制御を行う出力制御部３０９１と、出力キュー３０９３に接続されており且つ出力キュー３０９３から出力されるデータを出力する出力部３０２９とを有する。例えば、本実施の形態では、実時間で送信すべき優先度の高いパケットを格納する出力キュー３０９３ａと、それ以外の優先度の低いパケットを格納する出力キュー３０９３ｂとが設けられている。但し、さらに多い優先度に対応するように出力キューを設けるようにしても良い。
【００２１】
出力制御部３０９１は、出力キュー３０９３からのパケットの出力を制御すると共に、以下で述べるように低い優先度のパケットを格納する出力キュー３０９３ｂからのパケット出力を停止するような制御を行う。なお、例えば出力制御部３０９１は、制御パケットを送出する場合には、以下で述べるように制御パケットに含まれる制御時間（以下で述べる前方予測遅延時間又は後方予測遅延時間）から所定の時間差し引くような演算を実施した上で、制御パケット中の数値（制御時間）を更新するような処理を実施することもある。
【００２２】
次に、図８乃至図４４を用いて、図１に示したネットワークの動作を説明する。まず、制御パケットの１つである要求パケットをノードＮ２からノードＮ６へ送信する処理について説明する。ノードＮ２の通信制御部１００は、ノードＮ６宛の要求パケットを生成して、スイッチＳＷ１に送信する（図８：ステップＳ１）。要求パケットは、例えば図９に示すようなフォーマットのパケットである。図９の例では、宛先ノード（Ｄｅｓｔ）Ｎ６と、送信元ノード（Ｓｒｃ）Ｎ２と、制御パケットの型（Ｔｙｐｅ）であり、要求パケットを表すＩｎｑｕｉｒｅと、送信元ノードＮ２から宛先ノードＮ６までの前方予測遅延時間Ｒｍｌ１と、宛先ノードＮ６から送信元ノードＮ２までの後方予測遅延時間Ｒｍｌ２とが含まれる。なお、ノードＮ２から送出された段階では、Ｒｍｌ１及びＲｍｌ２は共に０である。
【００２３】
スイッチＳＷ１の入力ポート３０１は、ノードＮ２から要求パケットを受信すると、検出部３０３に出力する（ステップＳ３）。検出部３０３は、要求パケットであることを検出すると、制御パケット処理部３０５に出力する。制御パケット処理部３０５は、検出部３０３から要求パケットを受信すると、要求パケット処理を実施する（ステップＳ５）。要求パケット処理については、図１０及び図１１を用いて説明する。
【００２４】
まず、制御パケット処理部３０５は、要求パケットの宛先アドレスから、当該要求パケットを出力する出力ポートの出力ポート番号を特定する（図１０：ステップＳ３１）。例えばスイッチ部３０７から宛先アドレスに対応する出力ポートの番号を得るようにしても良い。そして、制御パケット処理部３０５は、遅延ＤＢ３１１から、特定された出力ポートの予測遅延時間を読み出す（ステップＳ３３）。その後、制御パケット処理部３０５は、要求パケットに含まれている前方予測遅延時間Ｒｍｌ１に、取得された予測遅延時間を加算する（ステップＳ３５）。例えば、図９のような状態でＲｍｌ１＝０であって、図５に示すように出力ポートのポート番号が「２」で予測遅延時間が「１２０」であれば、加算結果は「１２０」となる。
【００２５】
そして、制御パケット処理部３０５は、加算後の前方予測遅延時間を要求パケットに設定する（ステップＳ３７）。この例であれば、図１１に示すように、Ｒｍｌ１が１２０と設定される。そして図８の処理に戻る。
【００２６】
図８の処理の説明に戻って、制御パケット処理部３０５は、処理後の要求パケットをスイッチ部３０７に出力し、スイッチ部３０７は処理後の要求パケットを該当する出力ポート３０９に出力する。そうすると、出力ポート３０９は、通常の優先度のパケットとして要求パケットを出力キュー３０９３に格納する。その後、出力制御部３０９１は、通常どおり出力キュー３０９３に指示を出力して、要求パケットを出力する（ステップＳ７）。ここではスイッチＳＷ２が出力先のスイッチとなる。
【００２７】
スイッチＳＷ２は、スイッチＳＷ１から要求パケットを受信し（ステップＳ９）、当該要求パケットについて要求パケット処理を実施し（ステップＳ１１）、処理後の要求パケットを、該当する出力ポートから出力する（ステップＳ１３）。ステップＳ９乃至Ｓ１３については、スイッチＳＷ１についての処理と同様であるので、詳細な説明については省略する。スイッチＳＷ２の出力先スイッチは、スイッチＳＷ３である。
【００２８】
スイッチＳＷ３は、スイッチＳＷ２から要求パケットを受信する（ステップＳ１５）。処理は端子Ａを介して図１２の処理に移行する。
【００２９】
図１２の処理の説明に移行して、スイッチＳＷ３は、受信した要求パケットについて要求パケット処理を実施し（ステップＳ１７）、処理後の要求パケットを、該当する出力ポートから出力する（ステップＳ１９）。ステップＳ１５乃至Ｓ１９についても、スイッチＳＷ１についての処理と同様であるので、詳細な説明については省略する。スイッチＳＷ３の出力先はノードＮ６である。
【００３０】
ノードＮ６は、要求パケットを受信すると（ステップＳ２１）、ノードＮ６の通信制御部２００は、受信した要求パケットに含まれている前方予測遅延時間Ｒｍｌ１の値を、宛先ノードの識別子に対応付けて後方予測遅延時間として第１データ格納部２１０に格納する（ステップＳ２３）。処理は端子Ｂを介して図１５の処理に移行する。
【００３１】
なお、例えば図１３に示すように、通信相手のノードと、方向と、予測遅延時間（最大予測遅延時間とも呼ぶ）とを第１データ格納部２１０に格納する。要求パケットを受信したノードにとっては、要求パケットの送信元ノードから実時間パケットを受信する際の予測遅延時間を得たことになるので、方向の列にはバックワードを表す「Ｂ」を設定して、後方予測遅延時間であることを表すものとする。図１３の２行目のレコードは、この段階では登録されない。但し、逆方向のデータについては、方向の列にはフォーワードを表す「Ｆ」を設定して、前方予測遅延時間であることを表すものとする。
【００３２】
ここまでの処理について再度図１４を用いて概観しておく。ノードＮ２から出力された要求パケットには、前方予測遅延時間Ｒｍｌ１＝０、後方予測遅延時間Ｒｍｌ２＝０と設定されている。要求パケットがスイッチＳＷ１に到達すると、予測遅延時間Ｄｅｌａｙ＝１２０が前方予測遅延時間Ｒｍｌ１に加算されて、加算後の前方予測遅延時間Ｒｍｌ１＝１２０が要求パケットに設定され、要求パケットは出力される。次に、要求パケットがスイッチＳＷ２に到達すると、予測遅延時間Ｄｅｌａｙ＝７２が前方予測遅延時間Ｒｍｌ１＝１２０に加算されて、加算後の前方予測遅延時間Ｒｍｌ１＝１９２が要求パケットに設定され、要求パケットは出力される。さらに、要求パケットがスイッチＳＷ３に到達すると、予測遅延時間Ｄｅｌａｙ＝７２が前方予測遅延時間Ｒｍｌ１＝１９２に加算されて、加算後の前方予測遅延時間Ｒｍｌ１＝２６４が要求パケットに設定され、要求パケットは出力される。このようにして、前方予測遅延時間Ｒｍｌ１＝２６４が、ノードＮ６に通知されるので、ノードＮ６の通信制御部２００は、ノードＮ２についての後方予測遅延時間として上で述べたように第１データ格納部２１０に格納する。
【００３３】
図１５の処理の説明に移行して、ノードＮ６の通信制御部２００は、受信した要求パケットに含まれる前方予測遅延時間Ｒｍｌ１が設定された、制御パケットである応答パケットを、要求パケットの送信元ノードであるノードＮ２宛に送信する（ステップＳ４１）。具体的にはスイッチＳＷ３へ送信する。例えば、応答パケットのヘッダフォーマットの一例を図１６に示す。図１６の例では、宛先ノード（Ｄｅｓｔ）Ｎ２と、送信元ノード（Ｓｒｃ）Ｎ６と、制御パケットの型（Ｔｙｐｅ）であるＲｅｓｐｏｎｓｅと、宛先ノードＮ２から送信元ノードＮ６までの前方予測遅延時間Ｒｍｌ１と、送信元ノードＮ６から宛先ノードＮ２までの後方予測遅延時間Ｒｍｌ２とが含まれる。なお、ノードＮ６から送出された段階では、Ｒｍｌ１＝２６４であり、Ｒｍｌ２＝０である。
【００３４】
その後スイッチＳＷ３の入力ポート３０１は、応答パケットを受信すると、検出部３０３に出力する（ステップＳ４３）。検出部３０３は、応答パケットを受信したことを検出すると、制御パケット処理部３０５に応答パケットのデータを出力する。制御パケット処理部３０５は、応答パケットを受信すると、当該応答パケットについて応答パケット処理を実施する（ステップＳ４５）。応答パケット処理については、図１７及び図１８を用いて説明する。
【００３５】
まず、制御パケット処理部３０５は、応答パケットの宛先アドレスから、当該応答パケットを出力する出力ポートの出力ポート番号を特定する（図１７：ステップＳ７１）。例えばスイッチ部３０７から宛先アドレスに対応する出力ポートの番号を得るようにしても良い。そして、制御パケット処理部３０５は、遅延ＤＢ３１１から、特定された出力ポートの予測遅延時間を読み出す（ステップＳ７３）。その後、制御パケット処理部３０５は、応答パケットに含まれている後方予測遅延時間Ｒｍｌ２に、取得された予測遅延時間を加算する（ステップＳ７５）。例えば、Ｒｍｌ２＝０であって、予測遅延時間が「７２」であれば、加算結果は「７２」となる。
【００３６】
そして、制御パケット処理部３０５は、加算後の後方予測遅延時間を応答パケットに設定する（ステップＳ７７）。この例であれば、図１８に示すように、Ｒｍｌ２が７２と設定される。そして図１５の処理に戻る。
【００３７】
図１５の処理の説明に戻って、制御パケット処理部３０５は、処理後の応答パケットをスイッチ部３０７に出力し、スイッチ部３０７は処理後の応答パケットを該当する出力ポート３０９に出力する。そうすると、出力ポート３０９は、通常の優先度のパケットとして応答パケットを出力キュー３０９３に格納する。その後、出力制御部３０９１は、通常どおり出力キュー３０９３に指示を出力して、応答パケットを出力する（ステップＳ４７）。ここではスイッチＳＷ２が出力先のスイッチとなる。
【００３８】
スイッチＳＷ２は、スイッチＳＷ３から応答パケットを受信し（ステップＳ４９）、当該応答パケットについて応答パケット処理を実施し（ステップＳ５１）、処理後の応答パケットを、該当する出力ポートから出力する（ステップＳ５３）。ステップＳ４９乃至Ｓ５３については、スイッチＳＷ３についての処理と同様であるので、詳細な説明については省略する。スイッチＳＷ２の出力先スイッチは、スイッチＳＷ１である。
【００３９】
スイッチＳＷ１は、スイッチＳＷ２から応答パケットを受信する（ステップＳ５５）。処理は端子Ｃを介して図１９の処理に移行する。
【００４０】
図１９の処理の説明に移行して、スイッチＳＷ１は、受信した応答パケットについて応答パケット処理を実施し（ステップＳ８１）、処理後の応答パケットを、該当する出力ポートから出力する（ステップＳ８３）。ステップＳ５５、Ｓ８１及びＳ８３についても、スイッチＳＷ３についての処理と同様であるので、詳細な説明については省略する。スイッチＳＷ１の出力先はノードＮ２である。
【００４１】
ノードＮ２は、応答パケットを受信すると（ステップＳ８５）、ノードＮ２の通信制御部１００は、受信した応答パケットに含まれている前方予測遅延時間Ｒｍｌ１の値及び後方予測遅延時間Ｒｍｌ２の値を、送信元ノードの識別子に対応付けて第１データ格納部１１０に格納する（ステップＳ８７）。
【００４２】
なお、例えば図２０に示すように、通信相手のノードと、方向と、予測遅延時間（最大予測遅延時間とも呼ぶ）とを第１データ格納部１１０に格納する。応答パケットに含まれるＲｍｌ１の値は、ノードＮ６へパケットを送信する際に生じ得る遅延時間である前方予測遅延時間となり、方向はフォーワードを表す「Ｆ」となる。また、応答パケットに含まれるＲｍｌ２の値は、ノードＮ６からパケットを受信する際に生じ得る遅延時間である後方予測遅延時間となり、方向はバックワードを表す「Ｂ」となる。
【００４３】
ここまでの処理について再度図２１を用いて概観しておく。ノードＮ６から出力された応答パケットには、後方予測遅延時間Ｒｍｌ２＝０、前方予測遅延時間Ｒｍｌ１＝２６４と設定されている。応答パケットがスイッチＳＷ３に到達すると、予測遅延時間Ｄｅｌａｙ＝７２が後方予測遅延時間Ｒｍｌ２に加算されて、加算後の後方予測遅延時間Ｒｍｌ２＝７２が応答パケットに設定され、当該応答パケットは出力される。次に、応答パケットがスイッチＳＷ２に到達すると、予測遅延時間Ｄｅｌａｙ＝１２０が後方予測遅延時間Ｒｍｌ２＝７２に加算されて、加算後の後方予測遅延時間Ｒｍｌ２＝１９２が応答パケットに設定され、応答パケットは出力される。さらに、応答パケットがスイッチＳＷ１に到達すると、予測遅延時間Ｄｅｌａｙ＝１２０が後方予測遅延時間Ｒｍｌ２＝１９２に加算されて、加算後の後方予測遅延時間Ｒｍｌ２＝３１２が応答パケットに設定され、応答パケットは出力される。このようにして、前方予測遅延時間Ｒｍｌ１＝２６４及び後方予測遅延時間Ｒｍｌ２＝３１２が、ノードＮ２に通知されるので、ノードＮ２の通信制御部１００は、ノードＮ６についての前方予測遅延時間及び後方予測遅延時間として上で述べたように第１データ格納部１１０に格納する。
【００４４】
その後、ノードＮ２の通信制御部１００は、後方予測遅延時間Ｒｍｌ２を含む応答確認パケットを生成して、ノードＮ６宛に送信する（ステップＳ８９）。具体的には、スイッチＳＷ１に出力する。例えば、図２２に示すような応答確認パケットが出力される。図２２の例では、宛先ノード（Ｄｅｓｔ）Ｎ６と、送信元ノード（Ｓｒｃ）Ｎ２と、制御パケットの型（Ｔｙｐｅ）であり、応答確認パケットを表すＡｃｋと、送信元ノードＮ２にとっての前方予測遅延時間Ｒｍｌ１（宛先ノードＮ６にとっての後方予測遅延時間）と、送信元ノードＮ２にとっての後方予測遅延時間Ｒｍｌ２（宛先ノードＮ６にとっての前方予測遅延時間）とが含まれる。
【００４５】
そうすると、スイッチＳＷ１の入力ポート３０１は、応答確認パケットを受信すると、検出部３０３に出力する。検出部３０３は、応答確認パケットを検出すると、制御パケット処理部３０５に出力する。制御パケット処理部３０５は、応答確認パケットであると判断すると、応答確認パケットに対しての処理はないのでそのままスイッチ部３０７に出力する。そうすると、スイッチ部３０７は、応答確認パケットを該当する出力ポート３０９に出力する。出力ポート３０９は、通常の優先度のパケットとして応答確認パケットを出力キュー３０９３に格納する。その後、出力制御部３０９１は、通常どおり出力キュー３０９３に指示を出力して、応答確認パケットを出力部３０９２から出力する（ステップＳ９１）。ここではスイッチＳＷ２が出力先のスイッチとなる。なお、応答確認パケットについては制御パケット扱いをしないようにしても良い。
【００４６】
スイッチＳＷ２は、応答確認パケットを受信するとスイッチＳＷ１と同様に、次のスイッチＳＷ３に送信する（ステップＳ９３）。スイッチＳＷ３は、応答確認パケットを受信するとスイッチＳＷ１と同様に、次の宛先であるノードＮ６に送信する（ステップＳ９５）。ノードＮ６の通信制御部２００は、応答確認パケットを受信すると（ステップＳ９７）、当該応答確認パケットに含まれる後方予測遅延時間Ｒｍｌ２の値を、ノードＮ２にとっての前方予測遅延時間であるとして送信元ノードＮ２に対応付けて第１データ格納部２１０に格納する（ステップＳ９９）。図１３の例では、第２行目のデータが登録されるようになる。
【００４７】
ここまでの処理について再度図２３を用いて概観しておく。すなわち、図２３において矢印で示される経路で、応答確認パケットが送信され、ノードＮ６には、後方予測遅延時間Ｒｍｌ２のデータが新たに通知されるようになる。なお、応答確認パケットの通信経路上のスイッチでは特別な処理は行われない。
【００４８】
以上のような処理を実施することによって、ノードＮ２からノードＮ６へ実時間パケットを送信する際に用いられる前方予測遅延時間Ｒｍｌ１と、ノードＮ６からノードＮ２へ実時間パケットを送信する際に用いられる後方予測遅延時間Ｒｍｌ２とが双方のノードで共有されることになる。
【００４９】
次に、図２４乃至図３４を用いて、実時間パケットを送信する際の処理を説明する。例えば、コントローラ１３０から、アクチュエータ２４０に制御値を実時間パケットで出力するような場合に行われる前方通知を実施する場合について、最初に説明する。
【００５０】
本実施の形態では、前方通知を実施する場合には、実時間パケットを送信するタイミングから前方予測遅延時間前に、予告パケット（ならしパケットとも呼ぶ）を送信する。すなわち、ノードＮ２の通信制御部１００は、実時間パケットを送信するタイミングから前方予測遅延時間前に、前方予測遅延時間を含む予告パケットを生成し、ノードＮ６宛に送信する（ステップＳ１０１）。具体的な宛先はスイッチＳＷ１である。なお、前方予測遅延時間に伝送遅延時間を加算した値を制御時間として設定する場合もあるが、このことについては後に詳しく述べる。
【００５１】
予告パケットは、以下で説明するように、経路上の各スイッチに実時間パケット転送の準備を行わせるもので、実時間パケット送信より前方予測遅延時間前に送信される。これは、この予告パケットが優先度の高いパケットであったとしても最も遅延する場合には宛先のノードＮ６に到達するまでに前方予測遅延時間かかる可能性があるためである。予告パケットの送信と実時間パケットの送信との間隔が前方予測遅延時間未満になると、経路上のスイッチのうち宛先ノードに近いスイッチの方で準備が完了していない可能性が出てくるので、これを避けるためである。
【００５２】
例えば、図２５に示すような予告パケットが送出される。図２５の例では、宛先ノードＮ６（Ｄｅｓｔ）と、送信元ノード（Ｓｒｃ）Ｎ２と、制御パケットの型（Ｔｙｐｅ）であり、予告パケットを表すＦｏｒｗａｒｄと、これから行われる実時間パケットの送信方向を表すフラグＦｄｉｒ＝０（０は前方通知であり１は後方通知を表す）と、経路上のスイッチに対する制御時間であるＰａｕｓｅ＝２６４とが含まれる。Ｐａｕｓｅの値は、ここでは前方予測遅延時間となる。但し、以下で述べるように、経路上で変更される場合もある。また、送信元ノードで調整されることもある。
【００５３】
そして、ノードＮ２の通信制御部１００は、上で述べたように前方予測遅延時間だけ待機する（ステップＳ１０３）。前方予測遅延時間経過すると、通信制御部１００は、例えばコントローラ１３０によって生成され且つ第２データ格納部１２０に格納されているデータから実時間パケットを生成して、ノードＮ６宛に送信する（ステップＳ１０５）。具体的な宛先はスイッチＳＷ１である。
【００５４】
次に、図２６乃至図２９を用いて、予告パケットについての処理を説明する。スイッチＳＷ１の入力ポート３０１が、予告パケットを受信すると（ステップＳ１１１）、検出部３０３に出力し、検出部３０３は、制御パケットである予告パケットであることを検出すると、予告パケットのデータを制御パケット処理部３０５に出力する。制御パケット処理部３０５は、検出部３０３から予告パケットのデータを受信すると、当該予告パケットのデータに対して予告パケット処理を実施する（ステップＳ１１３）。予告パケット処理については、図２７を用いて説明する。
【００５５】
制御パケット処理部３０５は、予告パケットのＦｄｉｒフラグから前方通知か否かを判断する（ステップＳ１３１）。前方通知ではあれば、制御パケット処理部３０５は、予告パケットの宛先アドレス（又は宛先ノードの識別情報の場合もある）から該当する出力ポートを特定し、制御対象出力ポートＣＰに設定する（ステップＳ１３３）。そして、ステップＳ１３７に移行する。一方、ここでは後方通知については詳しく述べないが、後方通知であれば、制御パケット処理部３０５は、予告パケットを受信した入力ポートに対応する出力ポート（又は、送信元アドレス（又は送信元ノードの識別情報）から該当する出力ポートを特定しても良い。）を、制御対象出力ポートＣＰに設定する（ステップＳ１３５）。そしてステップＳ１３７に移行する。
【００５６】
ステップＳ１３７では、制御パケット処理部３０５は、制御対象出力ポートＣＰに対して、低優先度のパケットのための出力キューからパケット出力を停止するように制御する（ステップＳ１３７）。基本的な方式の場合、制御パケット処理部３０５は、制御対象出力ポートＣＰに対して、送信元ノードと宛先ノードとの組み合わせに対応付けて遅延ＤＢ３１１に登録されている伝送遅延時間に、予告パケットに含まれる前方予測遅延時間を加算した時間の間、低優先度パケットのための出力キュー３０９３ｂからのパケットの出力を停止するように、出力制御部３０９１に指示する。出力制御部３０９１は、このような指示に応じて出力キュー３０９３ｂからのパケットの出力を、伝送遅延時間＋前方予測遅延時間の間停止させる。この後、処理は、呼出元の処理に戻る。なお、出力制御部３０９１は、この時間が経過すれば、通常の状態に戻す。
【００５７】
図２６の処理の説明に戻って、スイッチＳＷ１の制御パケット処理部３０５は、予告パケットをスイッチ部３０７に出力し、スイッチ部３０７は、該当する出力ポート３０９に出力する。該当する出力ポート３０９は、優先度の高いパケットのための出力キュー３０９３ａに格納し、送信の順番になると出力キュー３０９３ａから読み出して、出力部３０９２から出力する（ステップＳ１１５）。ここでは、予告パケットはスイッチＳＷ２へ送信される。
【００５８】
スイッチＳＷ２は、スイッチＳＷ１と同様に、予告パケットを受信すると（ステップＳ１１７）、予告パケット処理を実施し（ステップＳ１１９）、その後、予告パケットをスイッチＳＷ３に送信する（ステップＳ１２１）。スイッチＳＷ２でもスイッチＳＷ１と同様に、伝送遅延時間＋前方予測遅延時間の間、低優先度パケットのための出力キュー３０９３ｂからのパケット出力を停止させる。
【００５９】
さらに、スイッチＳＷ３は、スイッチＳＷ２と同様に、予告パケットを受信すると（ステップＳ１２３）、予告パケット処理を実施し（ステップＳ１２５）、その後、予告パケットをノードＮ６に出力する（ステップＳ１２７）。スイッチＳＷ３でもスイッチＳＷ１と同様に、伝送遅延時間＋前方予測遅延時間の間、低優先度パケットのための出力キュー３０９３ｂからのパケット出力を停止させる。ノードＮ６は、予告パケットをスイッチＳＷ３から受信し（ステップＳ１２９）、予告パケットのＦｄｉｒフラグから、もうすぐ実時間パケットが送信されてくることを認識できる。
【００６０】
図２４でも述べたように、ノードＮ２は、予告パケット送信後、前方予測遅延時間経過すると、データパケットである実時間パケットをノードＮ６宛に送信する。実時間パケットは優先度の高いパケットとして送信される。その場合には、図２８に示すように、ノードＮ２は、実時間パケットを送信し（ステップＳ１４１）、スイッチＳＷ１の入力ポート３０１は、この実時間パケットを受信する。実時間パケットはデータパケットであるから、検出部３０３は、スイッチ部３０７に出力し、スイッチ部３０７は、宛先アドレス等から出力ポートを特定し、実時間パケットを該当する出力ポート３０９に出力する。該当する出力ポートは、予告パケットと同一である。出力ポート３０９は、実時間パケットを受信すると、高優先度パケットのための出力キュー３０９３ａに格納する。出力キュー３０９３ａからのパケット出力は優先的に行われるので、実時間パケット到達時には、出力キュー３０９３ａは空になっている可能性が高い。そこで、出力キュー３０９３ａから実時間パケットは直ぐに読み出されて、出力部３０９２から出力される。すなわち、スイッチＳＷ２に送信される（ステップＳ１４３）。
【００６１】
スイッチＳＷ２は、実時間パケットを受信すると、スイッチＳＷ１と同様に処理を行って、実時間パケットをスイッチＳＷ３に転送する（ステップＳ１４５）。さらに、スイッチＳＷ３は、実時間パケットを受信すると、スイッチＳＷ１と同様に処理を行って、実時間パケットをノードＮ６に転送する（ステップＳ１４７）。ノードＮ６の通信制御部２００は、実時間パケットを受信すると、当該実時間パケットのデータを第２データ格納部２２０に格納する（ステップＳ１４９）。この後、例えばアクチュエータ２４０は、第２データ格納部２２０に格納されている実時間パケットのデータを用いて、所定動作を実施する。
【００６２】
このように、各スイッチにおいて低優先度パケットのための出力キュー３０９３ｂからの出力が停止されている間に実時間パケットを転送することができるようになるので、非実時間パケットとの衝突を完全に回避できるようになる。すなわち、非常に短い伝送時間で実時間パケットを宛先ノードに届けることができるようになる。
【００６３】
なお、上で述べた処理のタイミングについて、図２９を用いて説明する。図２９では、上からノードＮ２、スイッチＳＷ１、スイッチＳＷ２、スイッチＳＷ３、ノードＮ６の順番で予告パケット及び実時間パケットが送信され、左から右の方向で時間が経過する状態を示している。また、矢印５０１は、予告パケットを表しており、矢印５０３は、実時間パケットを表している。矢印の方向はパケットの送信方向を示しており、ノードＮ２からノードＮ６へ予告パケット及び実時間パケットが送信される前方通知であることを表している。ノードＮ２では、上でも述べたように、実時間パケット５０３を送信する前方予測遅延時間Ｔ1前に、予告パケット５０１を出力する。予告パケット５０１は、他のパケットとの衝突もあり得るので、各スイッチである程度の遅延が発生する。また、各スイッチでは、予告パケットを受信すると、上で述べた処理を行って、前方予測遅延時間＋ノードＮ２からノードＮ６への伝送遅延時間＝Ｔ2だけ、低優先度パケットのための出力キュー３０９３ｂからのパケット出力を停止する。スイッチＳＷ１では、信号５０５で示すように、ローとなっている時間Ｔ2だけ、低優先度パケットのパケット出力が停止される。同様に、スイッチＳＷ２では、信号５０７で示すように、ローとなっている時間Ｔ2だけ、低優先度パケットのパケット出力が停止される。さらに、スイッチＳＷ３では、信号５０９で示すように、ローとなっている時間Ｔ2だけ、低優先度パケットのパケット出力が停止される。そうすると、実時間パケット５０３が、各スイッチに到達するタイミングは、低優先度パケットのパケット出力の停止時間を表す信号がローとなっている時間内に収まっており、非実時間パケットとの衝突が回避されている。すなわち、実時間パケット５０３は、時間Ｔ3程度の低遅延時間でノードＮ６まで到達するようになる。なお、Ｔ3は、ノードＮ２からノードＮ６までの伝送遅延時間に相当する。
【００６４】
次に、例えば単位時間毎にノードＮ６のセンサ２３０で物理量等を計測して計測データを、ノードＮ２のコントローラ１３０側から取得するような場合、すなわち後方通知について図３０乃至図３３を用いて説明する。まず、ノードＮ２の通信制御部１００は、例えばノードＮ６が実時間パケットを送信するタイミングより後方予測遅延時間だけ前に、当該後方予測遅延時間を含む予告パケットを生成し、ノードＮ６宛に送信する（図３０：ステップＳ１５１）。例えば、図３１に示すようなヘッダを有する予告パケットを送信する。図３１の例では、宛先ノードＮ６（Ｄｅｓｔ）と、送信元ノード（Ｓｒｃ）Ｎ２と、制御パケットの型（Ｔｙｐｅ）であるＦｏｒｗａｒｄ（予告パケットを表す）と、これから行われる実時間パケットの送信方向を表すフラグＦｄｉｒ＝１と、経路上のスイッチに対する制御時間であるＰａｕｓｅ＝３１２とが含まれる。Ｐａｕｓｅの値は、ここでは後方予測遅延時間となる。但し、後に述べるように、経路上で変更される場合もある。さらに、後に述べるように、後方予測遅延時間＋ノードＮ６からノードＮ２までの伝送遅延時間として送信されることもある。
【００６５】
そして、ノードＮ２の通信制御部１００は、実時間パケットの受信を待機する（ステップＳ１５３）。その後、ノードＮ２の通信制御部１００は、スイッチＳＷ１から実時間パケットを受信し、当該実時間パケットのデータを第２データ格納部１２０に格納する（ステップＳ１５５）。ノードＮ２のコントローラ１３０は、第２データ格納部１２０から、受信した実時間パケットのデータを処理する。
【００６６】
スイッチでの処理の流れ自体は、図２６に示したとおりであり、各スイッチ内における処理についても、図２７に示したとおりであるが、ステップＳ１３７では、前方予測遅延時間の代わりに後方予測遅延時間を用いて、低優先度パケットのパケット出力の停止時間を設定する。
【００６７】
さらに、図２８の代わりに、図３２に示すような、実時間パケットの伝送が実施される。後方通知の場合には、ノードＮ６は、例えば予め定められたタイミングで、データパケットである実時間パケットをノードＮ２宛に送信する。実時間パケットは優先度の高いパケットとして送信される。その場合には、図３２に示すように、ノードＮ６は、実時間パケットを送信し（ステップＳ１６１）、スイッチＳＷ３の入力ポート３０１は、この実時間パケットを受信する。実時間パケットはデータパケットであるから、検出部３０３は、スイッチ部３０７に出力し、スイッチ部３０７は、宛先アドレス等から出力ポートを特定し、特定された出力ポート３０９にこの実時間パケットを出力する。該当する出力ポートは、予告パケットを受信した入力ポート３０１に対応する出力ポートである。出力ポート３０９は、実時間パケットを受信すると、高優先度パケットのための出力キュー３０９３ａに格納する。出力キュー３０９３ａからのパケット出力は優先的に行われるので、実時間パケット到達時には、出力キュー３０９３ａは空になっている可能性が高い。そこで、出力キュー３０９３ａから実時間パケットは直ぐに読み出されて、出力部３０９２から出力される。すなわち、スイッチＳＷ２に送信される（ステップＳ１６３）。
【００６８】
スイッチＳＷ２は、実時間パケットを受信すると、スイッチＳＷ３と同様に処理を行って、実時間パケットをスイッチＳＷ１に転送する（ステップＳ１６５）。さらに、スイッチＳＷ１は、実時間パケットを受信すると、スイッチＳＷ３と同様に処理を行って、実時間パケットをノードＮ２に転送する（ステップＳ１６７）。ノードＮ２の通信制御部１００は、実時間パケットを受信すると、当該実時間パケットのデータを第２データ格納部１２０に格納する（ステップＳ１６９）。この後、例えばコントローラ１３０は、第２データ格納部１２０に格納されている実時間パケットのデータを用いて、所定の処理を実施する。
【００６９】
このように、各スイッチにおいて低優先度パケットのための出力キュー３０９３ｂからの出力が停止されている間に実時間パケットを転送することができるようになるので、非実時間パケットとの衝突を完全に回避できるようになる。すなわち、非常に短い伝送時間で実時間パケットを宛先ノードに届けることができるようになる。
【００７０】
なお、後方通知の場合における処理のタイミングについて、図３３を用いて説明する。図３３では、上からノードＮ２、スイッチＳＷ１、スイッチＳＷ２、スイッチＳＷ３、ノードＮ６の順番で予告パケットは送信され、左から右の方向で時間が経過する状態を示している。また、矢印５１１は、予告パケットを表しており、矢印５１３は、実時間パケットを表している。矢印の方向はパケットの送信方向を示しており、ノードＮ２からノードＮ６へ予告パケットは送信されるが、実時間パケットはノードＮ６からノードＮ２へ送信されるので、後方通知であることが分かる。ノードＮ２では、上でも述べたように、実時間パケット５１３が送信される後方予測遅延時間Ｔ4前に、予告パケット５１１を出力する。予告パケット５１１は、他のパケットとの衝突もあり得るので、各スイッチである程度の遅延が発生する。また、各スイッチでは、予告パケットを受信すると、上で述べた処理を行って、後方予測遅延時間＋ノードＮ６からノードＮ２への伝送遅延時間＝Ｔ5だけ、低優先度パケットのための出力キュー３０９３ｂからのパケット出力を停止する。スイッチＳＷ１では、信号５１５で示すように、ローとなっている時間Ｔ5だけ、低優先度パケットのパケット出力が停止される。同様に、スイッチＳＷ２では、信号５１７で示すように、ローとなっている時間Ｔ5だけ、低優先度パケットのパケット出力が停止される。さらに、スイッチＳＷ３では、信号５１９出示すように、ローとなっている時間Ｔ5だけ、低優先度パケットのパケット出力が停止される。そうすると、実時間パケット５１３が各スイッチに到達するタイミングは、低優先度パケットのパケット出力の停止時間を表す信号がローとなっている時間内に収まっており、非実時間パケットとの衝突が回避されている。すなわち、実時間パケット５１３は、時間Ｔ6程度の低遅延時間でノードＮ２まで到達するようになる。なお、Ｔ6は、ノードＮ６からノードＮ２までの伝送遅延時間に相当する。
【００７１】
このような処理を実施することで、実時間パケットを低遅延で宛先ノードに伝送することができるようになる。
【００７２】
なお、経路上の各スイッチでは低優先度パケットのパケット出力を停止するため、例えばＩＥＥＥ８０２．１Ｑａｕに定義されている輻輳通知ＣＮ（Congestion Notification）を、出力停止にかかる低優先度パケットの送信元に送信するようにしても良い。そうすると、輻輳通知ＣＮは、最終的に送信元のノードまで伝播されるので、このようなパケット出力停止中の出力ポートに係る宛先へのパケット送信を控えて、その分他の宛先へ送信するようにする。これによって、無駄なパケット送信を削減して、ネットワーク帯域を有効に活用できるようになる。
【００７３】
また、出力停止の時間が長くなるとネットワークにおける通信効率が低下する。従って、可能な限り出力停止の時間を短縮する方が好ましい。例えば、第１の変形例として、予告パケットに含まれる前方予測遅延時間又は後方予測遅延時間を、本スイッチにおいて予告パケットを受信してから送信するまでの差分時間だけ減算して送信するようにすることも可能である。この理由は以下のとおりである。
【００７４】
そもそも前方予測遅延時間又は後方予測遅延時間は、予告パケットを送信してから実時間パケットを送信するまでの時間であるが、予告パケットの宛先ノードに近いスイッチほど実時間パケットの送信時刻までの時間は短くなる。どれだけ短くなるかというとスイッチＳＷ２では、スイッチＳＷ１における差分時間だけ短くなり、スイッチＳＷ３では、スイッチＳＷ１及びＳＷ２における差分時間の和だけ短くなる。実時間パケットに完全に遅延がない場合には、実時間パケットの送信時刻において低優先度パケットのパケット出力が停止されれば良いので、前方予測遅延時間又は後方予測遅延時間から各スイッチにおいて前段までのスイッチにおける差分時間を差し引いた時間だけ短い時間、低優先度パケットのパケット出力を停止させればよい。但し、実時間パケットの伝送には遅延があるので、この遅延については、伝送遅延時間で補償する。
【００７５】
例えば図３４を用いて前方通知の場合におけるタイミングについて説明する。図３４では、上からノードＮ２、スイッチＳＷ１、スイッチＳＷ２、スイッチＳＷ３、ノードＮ６の順番で予告パケット及び実時間パケットが送信され、左から右の方向で時間が経過する状態を示している。また、矢印５０１は、予告パケットを表しており、矢印５０３は、実時間パケットを表している。矢印の方向はパケットの送信方向を示しており、ノードＮ２からノードＮ６へ予告パケット及び実時間パケットが送信される前方通知であることを表している。ノードＮ２では、上でも述べたように、実時間パケット５０３を送信する前方予測遅延時間Ｔ1前に、予告パケット５０１を出力する。予告パケット５０１は、他のパケットとの衝突もあり得るので、各スイッチである程度の遅延が発生する。ここまでは図２９と同じである。
【００７６】
なお、スイッチＳＷ１は、図２９と同じで、予告パケットを受信すると、上で述べた処理を行って、前方予測遅延時間＋ノードＮ２からノードＮ６への伝送遅延時間＝Ｔ2だけ、低優先度パケットのための出力キュー３０９３ｂからのパケット出力を停止する。スイッチＳＷ１では、信号５０５で示すように、ローとなっている時間Ｔ2だけ、低優先度パケットのパケット出力が停止される。
【００７７】
この第１の変形例では、スイッチＳＷ１は、予告パケット５０１の予測送信時刻ＴＳout−受信時刻ＴＳin＝差分時間Ｔ11を、受信した予告パケット５０１に含まれる制御時間（＝前方予測遅延時間）から差し引いた値を、新たな制御時間として、予告パケット５０１に設定してスイッチＳＷ２に当該予告パケット５０１を送信する。
【００７８】
そうすると、スイッチＳＷ２では、信号５２１で示すように、ローとなっている時間は、Ｔ2−Ｔ11となり、この時間だけ低優先度パケットのパケット出力が停止される。
【００７９】
また、この変形例では、スイッチＳＷ２は、予告パケット５０１の予測送信時刻ＴＳout−受信時刻ＴＳin＝差分時間Ｔ12を、受信した予告パケット５０１に含まれる制御時間から差し引いた値を、新たな制御時間として、予告パケット５０１に設定してスイッチＳＷ３に当該予告パケット５０１を送信する。
【００８０】
さらに、スイッチＳＷ３では、信号５２３で示すように、ローとなっている時間は、Ｔ2−Ｔ11−Ｔ12となり、この時間だけ低優先度パケットのパケット出力が停止される。
【００８１】
さらに、この第１の変形例では、スイッチＳＷ３は、予告パケット５０１の予測送信時刻ＴＳout−受信時刻ＴＳin＝差分時間Ｔ13を、受信した予告パケット５０１に含まれる制御時間から差し引いた値を、新たな制御時間として、予告パケット５０１に設定してノードＮ６に当該予告パケット５０１を送信する。
【００８２】
そうすると、実時間パケット５０３が、各スイッチに到達する時には、低優先度パケットのパケット出力の停止時間を表す信号がローとなっている時間内に収まっており、非実時間パケットとの衝突が回避されている。
【００８３】
次に、この第１の変形例で後方通知を行う場合における処理のタイミングについて、図３５を用いて説明する。図３５では、上からノードＮ２、スイッチＳＷ１、スイッチＳＷ２、スイッチＳＷ３、ノードＮ６の順番で予告パケット５１１が送信され、左から右の方向で時間が経過する状態を示している。また、矢印５１１は、予告パケットを表しており、矢印５１３は、実時間パケットを表している。矢印の方向はパケットの送信方向を示しており、ノードＮ２からノードＮ６へ予告パケットは送信されるが、実時間パケットはノードＮ６からノードＮ２へ送信されるので、後方通知であることが分かる。ノードＮ２では、上でも述べたように、実時間パケット５１３が送信される後方予測遅延時間Ｔ4前に、予告パケット５１１を出力する。予告パケット５１１は、他のパケットとの衝突もあり得るので、各スイッチである程度の遅延が発生する。ここまでは図３４と同じである。
【００８４】
なお、スイッチＳＷ１は、図３４と同じで、予告パケット５１１を受信すると、上で述べた処理を行って、後方予測遅延時間＋ノードＮ６からノードＮ２への伝送遅延時間＝Ｔ5だけ、低優先度パケットのための出力キュー３０９３ｂからのパケット出力を停止する。スイッチＳＷ１では、信号５１５で示すように、ローとなっている時間Ｔ5だけ、低優先度パケットのパケット出力が停止される。
【００８５】
この第１の変形例では、スイッチＳＷ１は、予告パケット５１１の予測送信時刻ＴＳout−受信時刻ＴＳin＝差分時間Ｔ21を、受信した予告パケット５１１に含まれる制御時間（＝後方予測遅延時間）から差し引いた値を、新たな制御時間として予告パケット５１１に設定し、当該予告パケット５１１をスイッチＳＷ２に送信する。
【００８６】
そうすると、スイッチＳＷ２では、信号５２５で示すように、ローとなっている時間は、Ｔ5−Ｔ21となり、この時間だけ低優先度パケットのパケット出力が停止される。
【００８７】
また、この第１の変形例では、スイッチＳＷ２は、予告パケット５１１の予測送信時刻ＴＳout−受信時刻ＴＳin＝差分時間Ｔ22を、受信した予告パケット５１１に含まれる制御時間から差し引いた値を、新たな後方予測遅延時間として、予告パケット５１１に設定し、当該予告パケット５１１をスイッチＳＷ３に送信する。
【００８８】
さらに、スイッチＳＷ３では、信号５２７で示すように、ローとなっている時間は、Ｔ5−Ｔ21−Ｔ22となり、この時間だけ低優先度パケットのパケット出力が停止される。
【００８９】
さらに、この第１の変形例では、スイッチＳＷ３は、予告パケット５１１の予測送信時刻ＴＳout−受信時刻ＴＳin＝差分時間Ｔ23を、受信した予告パケット５１１に含まれる制御時間から差し引いた値を、新たな制御時間として予告パケット５１１に設定してノードＮ６に当該予告パケット５１１を送信する。
【００９０】
そうすると、実時間パケット５１３が、各スイッチに到達する時には、低優先度パケットのパケット出力の停止時間を表す信号がローとなっている時間内に収まっており、非実時間パケットとの衝突が回避されている。
【００９１】
このような変形例を実施するために、図２７に示した予告パケット処理に代わりに図３６の予告パケット処理を実施する。
【００９２】
まず、例えば検出部３０３は、受信したパケットが予告パケットであれば、受信時刻ＴＳinを取得して、当該受信時刻ＴＳinと予告パケットのデータとを制御パケット処理部３０５に出力する（図３６：ステップＳ１７１）。
【００９３】
これに対して、制御パケット処理部３０５は、予告パケットのＦｄｉｒフラグから前方通知か否かを判断する（ステップＳ１７３）。前方通知ではあれば、制御パケット処理部３０５は、予告パケットの宛先アドレス（例えば宛先ノードの識別情報の場合もある）から該当する出力ポートを特定し、制御対象出力ポートＣＰに設定する（ステップＳ１７５）。そして、ステップＳ１７９に移行する。一方、後方通知であれば、制御パケット処理部３０５は、予告パケットを受信した入力ポートに対応する出力ポート（又は、送信元アドレス（例えば送信元ノードの識別情報）から該当する出力ポートを特定しても良い。）を、制御対象出力ポートＣＰに設定する（ステップＳ１７７）。そしてステップＳ１７９に移行する。
【００９４】
ステップＳ１７９では、制御パケット処理部３０５は、制御対象出力ポートＣＰに対して、低優先度のパケットのための出力キューからパケット出力を停止するように制御する（ステップＳ１７９）。第１の変形例であっても、基本的な方式の場合と同様に、制御パケット処理部３０５は、制御対象出力ポートＣＰに対して、送信元ノードと宛先ノードとの組み合わせに対応付けて遅延ＤＢ３１１に登録されている伝送遅延時間に、予告パケットに含まれる制御時間を加算した時間の間、低優先度パケットのための出力キュー３０９３ｂからのパケットの出力を停止するように、出力制御部３０９１に指示する。出力制御部３０９１は、このような指示に応じて出力キュー３０９３ｂからのパケットの出力を、伝送遅延時間＋制御時間の間停止させる。
【００９５】
この後、制御パケット処理部３０５は、予告パケットをスイッチ部３０７に出力する。そして、スイッチ部３０７は、予告パケットの宛先ノードに応じて該当する出力ポート３０９を特定して、予告パケットを出力する。出力ポート３０９は、予告パケットを高優先度の出力キュー３０９３ａに格納する。なお、制御パケット処理部３０５は、当該予告パケットの受信時刻ＴＳinを出力制御部３０９１に出力する。
【００９６】
この際、制御対象出力ポートＣＰの出力制御部３０９１は、この第１の変形例のように、予告パケットにおける制御時間を変更する設定がなされているか判断する（ステップＳ１８１）。予告パケットにおける制御時間を変更する設定がなされていない場合には、呼出元の処理に戻る。一方、予告パケットにおける制御時間を変更する設定がなされているか場合には、出力制御部３０９１は、予告パケットの出力スケジュール決定時に予測出力時刻ＴＳoutを算出して、さらに予告パケットに含まれる制御時間から差分時間［ＴＳout−ＴＳin］を差し引いて、新たな制御時間として予測パケットに設定する（ステップＳ１８３）。この後、制御時間が更新された予告パケットは、次のスイッチなどに送信される。
【００９７】
このようにすれば、第１の変形例についても対処することができるようになる。
【００９８】
さらに、低優先度パケットのパケット出力の停止時間を短縮することも可能である。上で述べた第１の変形例でも述べたように、前段のスイッチから受信した予告パケットに含まれる制御時間だけ当該予告パケット受信時から経過すると、実時間パケットが送信される。この実時間パケットは、実時間パケット送信時刻から伝送遅延時間後までの間で、経路上の各スイッチを通過する。従って、誤差を考慮したとしても、実時間パケットの送信時刻を基準に前後伝送遅延時間だけ、低優先度パケットのパケット出力を停止するだけでも十分である。
【００９９】
例えば図３７を用いて前方通知の場合におけるタイミングについて説明する。図３７では、上からノードＮ２、スイッチＳＷ１、スイッチＳＷ２、スイッチＳＷ３、ノードＮ６の順番で予告パケット及び実時間パケットが送信され、左から右の方向で時間が経過する状態を示している。また、矢印５０１は、予告パケットを表しており、矢印５０３は、実時間パケットを表している。矢印の方向はパケットの送信方向を示しており、ノードＮ２からノードＮ６へ予告パケット及び実時間パケットが送信される前方通知であることを表している。ノードＮ２では、上でも述べたように、実時間パケット５０３を送信する前方予測遅延時間Ｔ1前に、予告パケット５０１を出力する。予告パケット５０１は、他のパケットとの衝突もあり得るので、各スイッチである程度の遅延が発生する。ここまでは図３４と同じである。
【０１００】
ところが、スイッチＳＷ１は、予告パケットを受信して出力ポート３０９に指示を行った後、前方予測遅延時間Ｔ1−ノードＮ２からノードＮ６への伝送遅延時間Ｔdだけ待機する。そして、Ｔ1−Ｔdが経過すると、信号５３１（ローアクティブ）で示すように、２Ｔdの期間だけ、低優先度パケットのパケット出力が停止される。
【０１０１】
この第２の変形例でも、スイッチＳＷ１は、予告パケット５０１の予測送信時刻ＴＳout−受信時刻ＴＳin＝差分時間Ｔ11を、受信した予告パケット５０１に含まれる制御時間（＝前方予測遅延時間）から差し引いた値を、新たな制御時間として、予告パケット５０１に設定してスイッチＳＷ２に送信する。
【０１０２】
そうすると、スイッチＳＷ２は、予告パケットを受信して出力ポート３０９に指示を行った後、受信した予告パケットに含まれる（前方予測遅延時間Ｔ1−Ｔ11）−ノードＮ２からノードＮ６への伝送遅延時間Ｔdだけ待機する。そして、Ｔ1−Ｔ11−Ｔdが経過すると、信号５３３（ローアクティブ）で示すように、２Ｔdの期間だけ、低優先度パケットのパケット出力が停止される。
【０１０３】
また、この第２の変形例では、スイッチＳＷ２は、予告パケット５０１の予測送信時刻ＴＳout−受信時刻ＴＳin＝差分時間Ｔ12を、受信した予告パケット５０１に含まれる制御時間から差し引いた値を、新たな制御時間として、予告パケット５０１に設定してスイッチＳＷ３に送信する。
【０１０４】
さらに、スイッチＳＷ３は、予告パケットを受信して出力ポート３０９に指示を行った後、受信した予告パケットに含まれる（前方予測遅延時間Ｔ1−Ｔ11−Ｔ12）−ノードＮ２からノードＮ６への伝送遅延時間Ｔdだけ待機する。そして、Ｔ1−Ｔ11−Ｔ12−Ｔdが経過すると、信号５３５（ローアクティブ）で示すように、２Ｔdの期間だけ、低優先度パケットのパケット出力が停止される。
【０１０５】
さらに、この第２の変形例では、スイッチＳＷ３は、予告パケット５０１の予測送信時刻ＴＳout−受信時刻ＴＳin＝差分時間Ｔ13を、受信した予告パケット５０１に含まれる制御時間から差し引いた値を、新たな制御時間として、予告パケット５０１に設定してノードＮ６に送信する。
【０１０６】
そうすると、実時間パケット５０３が、各スイッチに到達する時には、低優先度パケットのパケット出力の停止時間を表す信号がローとなっている時間内に収まっており、非実時間パケットとの衝突が回避されている。
【０１０７】
次に、この第２の変形例で後方通知を行う場合における処理のタイミングについて、図３８を用いて説明する。図３８では、上からノードＮ２、スイッチＳＷ１、スイッチＳＷ２、スイッチＳＷ３、ノードＮ６の順番で予告パケットが送信され、左から右の方向で時間が経過する状態を示している。また、矢印５１１は、予告パケットを表しており、矢印５１３は、実時間パケットを表している。矢印の方向はパケットの送信方向を示しており、ノードＮ２からノードＮ６へ予告パケットは送信されるが、実時間パケットはノードＮ６からノードＮ２へ送信されるので、後方通知であることが分かる。ノードＮ２では、上でも述べたように、実時間パケット５１３が送信される後方予測遅延時間Ｔ4前に、予告パケット５１１を出力する。予告パケット５１１は、他のパケットとの衝突もあり得るので、各スイッチである程度の遅延が発生する。ここまでは図３５と同じである。
【０１０８】
ところが、スイッチＳＷ１は、予告パケットを受信して出力ポート３０９に指示が行われた後、後方予測遅延時間Ｔ4−ノードＮ６からノードＮ２への伝送遅延時間Ｔd2だけ待機する。そして、Ｔ4−Ｔd2が経過すると、信号５４１（ローアクティブ）で示すように、２Ｔd2の期間だけ、低優先度パケットのパケット出力が停止される。
【０１０９】
この第２の変形例でも、スイッチＳＷ１は、予告パケット５１１の予測送信時刻ＴＳout−受信時刻ＴＳin＝差分時間Ｔ21を、受信した予告パケット５１１に含まれる制御時間（＝後方予測遅延時間）から差し引いた値を、新たな制御時間として、予告パケット５１１に設定してスイッチＳＷ２に送信する。
【０１１０】
そうすると、スイッチＳＷ２は、予告パケットを受信して出力ポート３０９に指示が行われた後、受信した予告パケットに含まれる（後方予測遅延時間Ｔ4−Ｔ21）−ノードＮ６からノードＮ２への伝送遅延時間Ｔd2だけ待機する。そして、Ｔ4−Ｔ21−Ｔd2が経過すると、信号５４３（ローアクティブ）で示すように、２Ｔd2の期間だけ、低優先度パケットのパケット出力が停止される。
【０１１１】
また、この第２の変形例では、スイッチＳＷ２は、予告パケット５１１の予測送信時刻ＴＳout−受信時刻ＴＳin＝差分時間Ｔ22を、受信した予告パケット５１１に含まれる制御時間から差し引いた値を、新たな制御時間として、予告パケット５１１に設定してスイッチＳＷ３に送信する。
【０１１２】
さらに、スイッチＳＷ３は、予告パケットを受信して出力ポート３０９に指示が行われた後、受信した予告パケットに含まれる（後方予測遅延時間Ｔ4−Ｔ21−Ｔ22）−ノードＮ６からノードＮ２への伝送遅延時間Ｔd2だけ待機する。そして、Ｔ4−Ｔ21−Ｔ22−Ｔd2が経過すると、信号５４５（ローアクティブ）で示すように、２Ｔd2の期間だけ、低優先度パケットのパケット出力が停止される。
【０１１３】
そうすると、実時間パケット５１３が、各スイッチに到達する時には、低優先度パケットのパケット出力の停止時間を表す信号がローとなっている時間内に収まっており、非実時間パケットとの衝突が回避されている。
【０１１４】
このような２つの変形例と基本的な方式を実施するために、出力ポート３０９の出力制御部３０９１の処理についてまとめると、図３９に示すようになる。出力制御部３０９１は、制御パケット処理部３０５から停止指示を受信すると（ステップＳ１９１）、低優先度パケットのパケット出力の停止時間のシフトを行う設定になっているか判断する（ステップＳ１９３）。具体的には、第２の変形例を実施するか否かを判断する。基本的な方式及び第１の変形例の場合には、停止時間のシフトは行われない。停止時間のシフトを行わない場合には、出力制御部３０９１は、停止指示に含まれる（制御時間＋伝送遅延時間）の間、低優先度パケットの出力キュー３０９３ｂからのパケット出力を停止する（ステップＳ１９５）。そして次の停止指示を待機する。
【０１１５】
一方、停止時間のシフトを行う場合には、出力制御部３０９１は、停止指示に含まれる制御時間と伝送遅延時間を用いて、（制御時間−伝送遅延時間）を計測する（ステップＳ１９７）。例えばタイマに、この時間を設定してカウントダウンさせる。そして、タイマの値が０になると、出力制御部３０９１は、伝送遅延時間の２倍の時間の間、低優先度パケットの出力キュー３０９３ｂからのパケット出力を停止する（ステップＳ１９９）。そして、次の停止指示を待機する。
【０１１６】
なお、出力制御部３０９１は、上で述べた処理の他に、予告パケット処理の一部（図３６：Ｓ１８３）も行う場合もある。
【０１１７】
このようにすれば、基本的な方式に加えて２つの変形例にも対処できる。
【０１１８】
さらに、基本的な方式及び第１の変形例の場合については、スイッチにおいて伝送遅延時間を加算するのではなく、予め予告パケットの送信元ノードＮ２で前方予測遅延時間又は後方予測遅延時間に加算した上で、予告パケットのＰａｕｓｅ値として設定するようにしても良い。
【０１１９】
また、例えばノードＮ２の第１データ格納部１１０に、図６に示したようなデータを保持する。すなわち、送信元ノードと宛先ノードとの組み合わせ毎に、伝送遅延時間を格納する。上でも述べたように、各組み合わせでの測定結果のうち最大値を、１つだけ設定しておき、送信元ノードと宛先ノードの組み合わせに共通の値を用いるようにしても良い。さらに、初期的には、最大値を設定しておいて、前方通知であれば、送信元ノードの通信制御部１００が、実時間パケット送信時に送信時刻を記録しておき、宛先ノードから別途制御パケットなどで実時間パケットの受信時刻を通知してもらい、受信時刻−送信時刻を算出して、次回以降の伝送遅延時間として第１データ格納部１１０に格納しておくようにしても良い。また、後方通知であれば、例えば実時間パケットに送信時刻を含むようにして、予告パケットの送信元ノードの受信時刻と、実時間パケットに含まれる送信時刻との差を算出して、第１データ格納部１１０に格納しておくようにしても良い。
【０１２０】
このような前提の下、具体的には、図２４の処理の代わりに、図４０Ａの処理を実施する。具体的には、前方通知を実施する場合には、実時間パケットを送信するタイミングから前方予測遅延時間前に、予告パケットを送信する。すなわち、ノードＮ２の通信制御部１００は、実時間パケットを送信するタイミングから前方予測遅延時間前に、（前方予測遅延時間＋ノードＮ２からノードＮ６間での伝送遅延時間）を含む予告パケットを生成し、ノードＮ６宛に送信する（ステップＳ３０１）。具体的な宛先はスイッチＳＷ１である。図２５のような予告パケットのパケットフォーマットにおいてＰａｕｓｅ（制御時間）の値は、（前方予測遅延時間＋ノードＮ２からノードＮ６間での伝送遅延時間）となる。但し、上で述べたように、第１の変形例では経路上で変更される。
【０１２１】
そして、ノードＮ２の通信制御部１００は、前方予測遅延時間だけ待機する（ステップＳ３０３）。前方予測遅延時間経過すると、通信制御部１００は、例えばコントローラ１３０によって生成され且つ第２データ格納部１２０に格納されているデータから実時間パケットを生成して、ノードＮ６宛に送信する（ステップＳ３０５）。具体的な宛先はスイッチＳＷ１である。
【０１２２】
また、図３０の処理の代わりに、図４０Ｂの処理を実施する。まず、ノードＮ２の通信制御部１００は、例えばノードＮ６が実時間パケットを送信するタイミングより後方予測遅延時間だけ前に、当該後方予測遅延時間＋ノードＮ６からノードＮ２間での伝送遅延時間を含む予告パケットを生成し、ノードＮ６宛に送信する（ステップＳ３１１）。図３１に示すような予告パケットのパケットフォーマットにおいてＰａｕｓｅ（制御時間）の値は、（後方予測遅延時間＋ノードＮ６からノードＮ２間での伝送遅延時間）となる。上で述べたように、第１の変形例では経路上で変更される。
【０１２３】
そして、ノードＮ２の通信制御部１００は、実時間パケットの受信を待機する（ステップＳ３１３）。その後、ノードＮ２の通信制御部１００は、スイッチＳＷ１から実時間パケットを受信し、当該実時間パケットのデータを第２データ格納部１２０に格納する（ステップＳ３１５）。ノードＮ２のコントローラ１３０は、第２データ格納部１２０から、受信した実時間パケットのデータを処理する。
【０１２４】
また、図２７及び図３６に示した予告パケット処理の代わりに、図４０Ｃのような第３予告パケット処理を実施する。
【０１２５】
まず、例えば検出部３０３は、受信したパケットが予告パケットであれば、受信時刻ＴＳinを取得して、当該受信時刻ＴＳinと予告パケットのデータとを制御パケット処理部３０５に出力する（ステップＳ３２１）。
【０１２６】
これに対して、制御パケット処理部３０５は、予告パケットのＦｄｉｒフラグから前方通知か否かを判断する（ステップＳ３２３）。前方通知ではあれば、制御パケット処理部３０５は、予告パケットの宛先アドレス（例えば宛先ノードの識別情報の場合もある）から該当する出力ポートを特定し、制御対象出力ポートＣＰに設定する（ステップＳ３２４）。そして、ステップＳ３２６に移行する。一方、後方通知であれば、制御パケット処理部３０５は、予告パケットを受信した入力ポートに対応する出力ポート（又は、送信元アドレス（例えば送信元ノードの識別情報）から該当する出力ポートを特定しても良い。）を、制御対象出力ポートＣＰに設定する（ステップＳ３２５）。そしてステップＳ３２６に移行する。
【０１２７】
ステップＳ３２６では、制御パケット処理部３０５は、制御対象出力ポートＣＰに対して、制御時間の間だけ、低優先度のパケットのための出力キュー３０９３ｂからパケット出力を停止するように出力ポート３０９を制御する（ステップＳ３２６）。このように、各スイッチで伝送遅延時間の加算を実施しないので、制御時間の間だけパケット出力を停止させる。
【０１２８】
この後、制御パケット処理部３０５は、予告パケットをスイッチ部３０７に出力する。そして、スイッチ部３０７は、予告パケットの宛先ノードに応じて該当する出力ポート３０９を特定して、予告パケットを出力する。出力ポート３０９は、予告パケットを高優先度の出力キュー３０９３ａに格納する。なお、制御パケット処理部３０５は、当該予告パケットの受信時刻ＴＳinを出力制御部３０９１に出力する。
【０１２９】
この際、制御対象出力ポートＣＰの出力制御部３０９１は、第１の変形例のように、予告パケットにおける制御時間を変更する設定がなされているか判断する（ステップＳ３２７）。予告パケットにおける制御時間を変更する設定がなされていない場合には、呼出元の処理に戻る。一方、予告パケットにおける制御時間を変更する設定がなされている場合には、出力制御部３０９１は、予告パケットの出力スケジュール決定時に予測出力時刻ＴＳoutを算出して、さらに予告パケットに含まれる制御時間から差分時間［ＴＳout−ＴＳin］を差し引いて、新たな制御時間として予測パケットに設定する（ステップＳ３２９）。この後、制御時間が更新された予告パケットは、次のスイッチなどに送信される。
【０１３０】
なお、第２の変形例においても、このようなさらなる変形を行うようにしても良いが、制御時間−伝送遅延時間から制御時間＋伝送遅延時間まで、低優先度パケットの出力キュー３０９３ｂからのパケット出力を停止するのではなく、制御時間−２×伝送遅延時間から制御時間まで、低優先度パケットの出力キュー３０９３ｂからのパケット出力を停止する。
【０１３１】
なお、上で述べた例では、前方通知と後方通知とを両方を行う場合を想定しているが、後方通知を行わないような実施の形態も可能である。すなわち、センサ２３０が計測を実施した場合には、センサ２３０を有するノードＮ６が予告パケットをコントローラ１３０を有するノードＮ２に送信して、さらにノードＮ６が実時間パケットを送信するようにしても良い。
【０１３２】
このような場合には、図１２の端子Ｂの後に実施される処理（図１５）の代わりに、図４１の処理を実施する。ここでは、ノードＮ２からノードＮ６へ要求パケットを送信する場合を示しているが、ノードＮ６からノードＮ２に要求パケットを送信する場合も同様である。
【０１３３】
ノードＮ６の通信制御部２００は、前方予測遅延時間Ｒｍｌ１を含む応答確認パケットを生成して、ノードＮ２宛に送信する（ステップＳ２０１）。具体的には、スイッチＳＷ３に出力する。例えば、図４２に示すような応答確認パケットが出力される。図４２の例では、宛先ノード（Ｄｅｓｔ）Ｎ２と、送信元ノード（Ｓｒｃ）Ｎ６と、制御パケットの型（Ｔｙｐｅ）であり、応答確認パケットを表すＡｃｋと、送信元ノードＮ２にとっての前方予測遅延時間Ｒｍｌ１とが含まれる。図２２とは異なり、後方予測遅延時間Ｒｍｌ２については含まれない。前方通知を行わないような場合には、応答パケットは使用されない。
【０１３４】
そうすると、スイッチＳＷ３の入力ポート３０１は、応答確認パケットを受信すると、検出部３０３に出力する。検出部３０３は、応答確認パケットを検出すると、制御パケット処理部３０５に出力する。制御パケット処理部３０５は、応答確認パケットであると判断すると、応答確認パケットに対しての処理はないのでそのままスイッチ部３０７に出力する。そうすると、スイッチ部３０７は、応答確認パケットを該当する出力ポート３０９に出力する。出力ポート３０９は、通常の優先度のパケットとして応答確認パケットを出力キュー３０９３に格納する。その後、出力制御部３０９１は、通常どおり出力キュー３０９３に指示を出力して、応答確認パケットを出力する（ステップＳ２０３）。ここではスイッチＳＷ２が出力先のスイッチとなる。
【０１３５】
スイッチＳＷ２は、応答確認パケットを受信するとスイッチＳＷ３と同様に、次のスイッチＳＷ１に送信する（ステップＳ２０５）。スイッチＳＷ１は、応答確認パケットを受信するとスイッチＳＷ３と同様に、次の宛先であるノードＮ２に送信する（ステップＳ２０７）。ノードＮ２の通信制御部１００は、応答確認パケットを受信すると（ステップＳ２０９）、当該応答確認パケットに含まれる前方予測遅延時間Ｒｍｌ１の値を、前方予測遅延時間であるとして宛先ノードＮ６に対応付けて第１データ格納部１１０に格納する（ステップＳ２１１）。
【０１３６】
このような処理を実施すれば、前方通知だけを行う場合にも、予告パケットを送信するのに用いられる前方予測遅延時間を取得することができるようになる。
【０１３７】
なお、上ではスイッチが行う処理については、場合分けを予め行った上で説明しておいたので、ここでスイッチが行う処理を図４３にまとめておく。スイッチの入力ポート３０１は、パケットを受信すると（ステップＳ２２１）、検出部３０３は、受信したパケットが制御パケットであるか判断する。受信したパケットが制御パケットであれば、制御パケット処理部３０５に出力する。但し、制御パケットのうち応答確認パケットについては、特別な処理はないので通常のパケットとして扱うようにしても良い。
【０１３８】
制御パケット処理部３０５は、受信したパケットが要求パケットであるか判断する（ステップＳ２２３）。受信したパケットが要求パケットであれば（ステップＳ２２３：Ｙｅｓルート）、制御パケット処理部３０５は、上で述べた要求パケット処理（図１０）を実施する（ステップＳ２２５）。そして処理はステップＳ２３７に移行する。一方、受信したパケットが要求パケットでない場合には（ステップＳ２２３：Ｎｏルート）、制御パケット処理部３０５は、受信したパケットが応答パケットであるか判断する（ステップＳ２２７）。受信したパケットが応答パケットであれば（ステップＳ２２７：Ｙｅｓルート）、制御パケット処理部３０５は、応答パケット処理（図１７）を実施する（ステップＳ２２９）。そして処理はステップＳ２３７に移行する。さらに、受信したパケットが応答パケットでない場合には（ステップＳ２２７：Ｎｏルート）、制御パケット処理部３０５は、受信したパケットが予告パケットであるか判断する（ステップＳ２３１）。受信したパケットが予告パケットである場合には（ステップＳ２３１：Ｙｅｓルート）、制御パケット処理部３０５は、予告パケット処理（図２７／図３６／図４０Ｃ）を実施する（ステップＳ２３３）。そして処理はステップＳ２３７に移行する。受信したパケットが予告パケットでない場合には（ステップＳ２３１：Ｎｏルート）、確認応答パケット又は通常のパケットであるから、スイッチは、通常の中継処理を実施する（ステップＳ２３５）。
【０１３９】
このような処理を電源がオフになるといった処理終了まで繰り返される（ステップＳ２３７）。
【０１４０】
このような処理を実施すれば、実時間パケットが、非実時間パケットとの衝突を回避して低遅延で目的のノードに伝送されるようになる。
【０１４１】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、図２乃至４及び図７の機能ブロック図は一例であって、実際の部品構成とは一致しない場合もある。特に、制御パケット処理部３０５は、専用の半導体装置にて実装される場合もあれば、図４４に示すように、スイッチコアに接続される別のプロセッサに上で述べたような処理を実施するプログラムを実行させることで実現するようにしても良い。図２及び図３で示したノードの機能ブロック図についても同様に、実際のプログラムモジュール構成とは一致しない場合もある。また、検出部３０３についても、専用の回路で実装するようにしても良いし、既存のＡＣＬ（Access Control List）のようなフィルタを活用するようにしても良い。
【０１４２】
また、スイッチに接続されている各ノードは、コンピュータ装置であって、図４５に示すように、メモリ２５０１とＣＰＵ２５０３とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１４３】
以上述べた本実施の形態をまとめると、以下のようになる。
【０１４４】
第１の態様に係る通信制御方法は、１又は複数の中継装置を介して第１のノードと第２のノードとの間で行われる通信を制御する通信制御方法である。この通信制御方法は、（Ａ）１又は複数の中継装置で中継される他のパケットより優先度の高い第１のパケットより前に、第１のノードから制御パケットを第２のノードへ送信する第１送信ステップと、（Ｂ）第１のノードから第２のノードへの経路上の中継装置が、制御パケットに応じて、当該制御パケットに含まれる制御時間から特定される期間、当該中継装置における複数の出力ポートのうち第１のパケットを出力する１つの出力ポートにおける、上記他のパケットのためのパケット格納部からのパケット出力を停止するステップと、（Ｃ）上記期間中に、第１のノードから第２のノードへ又は第２のノードから第１のノードへ第１のパケットを送信する第２送信ステップとを含む。
【０１４５】
このようにすれば、低優先度のパケットとの衝突が中継装置で発生しなくなるため、低遅延で第１のパケットを伝送できるようになる。
【０１４６】
なお、本通信制御方法は、（Ｄ）第１のノードから第２のノードへ、第１のノードから第２のノードまでの予測遅延時間を収集するための第２の制御パケットを送信するステップと、（Ｅ）第２の制御パケットに応じて、第１のノードから第２のノードへの経路上の中継装置が、第２のノードのアドレスから特定される出力ポートに対応付けて保持している当該中継装置における予測遅延時間と、第２の制御パケットに含まれている第１の予測遅延時間との和を、第２の制御パケットに新たな第１の予測遅延時間として設定して送信するステップとをさらに含むようにしてもよい。このようにすれば、制御時間を自動的に収集することができるようになる。
【０１４７】
さらに、本通信制御方法は、（Ｆ）第２のノードから第１のノードへ、第１の予測遅延時間を通知し且つ第２のノードから第１のノードまでの第２の予測遅延時間を収集するための第３の制御パケットを送信するステップと、（Ｇ）第３の制御パケットに応じて、第２のノードから第１のノードへの経路中の中継装置が、第１のノードのアドレスから特定される出力ポートに対応付けて保持している当該中継装置における予測遅延時間と、第３の制御パケットに含まれている第２の予測遅延時間との和を、第３の制御パケットに新たな第２の予測遅延時間として設定するステップとをさらに含むようにしても良い。このようにすれば、双方向で実時間パケットのやりとりを低遅延で行うことができるようになる。
【０１４８】
また、本通信制御方法は、（Ｈ）第１のノードから第２のノードへ、第２の予測遅延時間を通知するための第４の制御パケットを送信するステップをさらに含むようにしてもよい。
【０１４９】
さらに、上で述べた期間が、（ａ）制御パケット受信後、制御時間経過後までと、（ｂ）制御パケット受信後、制御パケットの後に送信される第１のパケットの送信元から送信先までの伝送遅延時間に相当する時間と制御時間との和の時間経過後までと、（ｃ）制御パケット受信後に制御時間から伝送遅延時間に相当する時間を引いた時間経過後、伝送遅延時間に相当する時間の２倍の時間経過後までと、（ｄ）制御パケット受信後に制御時間から伝送遅延時間に相当する時間の２倍の時間を引いた時間経過後、伝送遅延時間に相当する時間の２倍の時間経過後までとのうちのいずれかであることもある。（ａ）及び（ｂ）であれば機構が簡単になり、（ｃ）及び（ｄ）であればネットワークにおける通信効率を上げることができるようになる。なお、制御時間には、伝送遅延時間が含まれることもあれば、含まれないこともある。
【０１５０】
また、本通信制御方法は、（Ｉ）第１のノードから第２のノードへの経路中の中継装置が、制御パケットに含まれる制御時間から、当該中継装置における当該制御パケットの送信予定時刻と当該制御パケットの受信時刻との差を差し引いた時間を新たな制御時間として当該制御パケットに設定して送信するステップをさらに含むようにしてもよい。このようにすることで、ネットワークにおける通信効率を上げることができるようになる。
【０１５１】
さらに、上で述べた第１送信ステップが、第２送信ステップより、第１のノードから送信される制御パケットに含まれる制御時間前に行われるようにしてもよい。確実に実時間パケットが低優先度パケットと衝突するのを避けるためである。
【０１５２】
第２の態様に係る中継装置は、（Ａ）第１の優先度を有する第１のパケットを格納する第１のパケット格納部と第１の優先度より低い優先度である第２の優先度を有する第２のパケットを格納する第２のパケット格納部とを各々有する複数の出力ポートと、（Ｂ）複数の入力ポートの各々について、第１のパケットを送信する前に送信され且つ複数の出力ポートのうちの１つの出力ポートにおける第２のパケット格納部からのパケット出力の停止を制御するために用いられる制御時間を含む制御パケットの受信を検出する検出部と、（Ｃ）検出部が制御パケットを検出した場合、当該制御パケットから特定され且つ第１のパケットを出力する、複数の出力ポートのうちの１つの出力ポートに対して、当該制御パケットに含まれる制御時間から特定され且つ第１のパケットの到着が予定される期間、第２のパケット格納部からのパケット出力を停止するように上記１つの出力ポートを制御する処理部とを有する。
【０１５３】
これによって優先度の高い第１のパケットが優先度の低い第２のパケットと衝突せずに、低遅延で伝送できるようになる。
【０１５４】
なお、上で述べた期間が、制御時間に基づき、制御パケットの後に送信される第１のパケットが中継装置に到達する時刻を包含するように設定されるようにしてもよい。期間については様々な調整が可能である。
【０１５５】
第２の態様においても、上で述べた期間は、（ａ）制御パケット受信後、制御時間経過後までと、（ｂ）制御パケット受信後、制御パケットの後に送信される第１のパケットの送信元から送信先までの伝送遅延時間に相当する時間と制御時間との和の時間経過後までと、（ｃ）制御パケット受信後に制御時間から伝送遅延時間に相当する時間を引いた時間経過後、伝送遅延時間に相当する時間の２倍の時間経過後までと、（ｄ）制御パケット受信後に制御時間から伝送遅延時間に相当する時間の２倍の時間を引いた時間経過後、伝送遅延時間に相当する時間の２倍の時間経過後までとのうちのいずれかであることもある。（ａ）及び（ｂ）であれば機構が簡単になり、（ｃ）及び（ｄ）であればネットワークにおける通信効率を上げることができるようになる。なお、制御時間には、伝送遅延時間が含まれることもあれば、含まれないこともある。
【０１５６】
なお、上で述べた複数の入力ポートの各々が、制御パケットの受信時刻を記録し、複数の出力ポートの各々が、制御時間から制御パケットの送信予定時刻と受信時刻との差を差し引いた時間を新たな制御時間として当該制御パケットに設定して送出するようにしてもよい。このようにすれば、停止時間を適切に設定でき且つネットワークにおける通信効率を上げることができるようになる。
【０１５７】
また、上で述べた制御パケットが、当該制御パケットの後に送信される第１のパケットの方向に関するデータを含む場合もある。この場合、上で述べた処理部は、（ａ）第１の方向に関するデータが、制御パケットの送信元ノードから宛先ノードへの方向を示している場合には、当該宛先ノードのアドレスから上記１つの出力ポートを特定し、（ｂ）第１の方向に関するデータが、制御パケットの宛先ノードから送信元ノードへの方向を示している場合には、制御パケットを受信した入力ポートに対応する出力ポートを前記第１の出力ポートとして特定してもよい。なお、この（ａ）のみを実施する場合もある。
【０１５８】
さらに、上で述べた検出部が、制御パケットの送信元ノードから宛先ノードまでの予測遅延時間を収集するための第２の制御パケットを検出した場合、制御部が、宛先ノードのアドレスから特定される出力ポートに対応付けて保持している当該中継装置における予測遅延時間と、第２の制御パケットに含まれている予測遅延時間との和を、第２の制御パケットに新たな予測遅延時間として設定するようにしてもよい。自動的に制御時間を測定する場合に対処できるようになる。
【０１５９】
また、上で述べた検出部が、制御パケットの宛先ノードから送信元ノードまでの予測遅延時間を収集するための第３の制御パケットを検出した場合、制御部が、送信元ノードのアドレスから特定される出力ポートに対応付けて保持している当該中継装置における予測遅延時間と、第３の制御パケットに含まれている予測遅延時間との和を、第３の制御パケットに新たな予測遅延時間として設定するようにしてもよい。自動的に制御時間を測定する場合に対処できるようになる。
【０１６０】
なお、上で述べたような処理をコンピュータ又はプロセッサに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭなどの光ディスク、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【０１６１】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１６２】
（付記１）
１又は複数の中継装置を介して第１のノードと第２のノードとの間で行われる通信を制御する通信制御方法であって、
前記１又は複数の中継装置で中継される他のパケットより優先度の高い第１のパケットより前に、前記第１のノードから制御パケットを前記第２のノードへ送信する第１送信ステップと、
前記第１のノードから前記第２のノードへの経路上の中継装置が、前記制御パケットに応じて、当該制御パケットに含まれる制御時間から特定される期間、当該中継装置における複数の出力ポートのうち前記第１のパケットを出力する１つの出力ポートにおける、前記他のパケットのためのパケット格納部からのパケット出力を停止するステップと、
前記期間中に、前記第１のノードから前記第２のノードへ又は前記第２のノードから前記第１のノードへ前記第１のパケットを送信する第２送信ステップと、
を含む通信制御方法。
【０１６３】
（付記２）
前記第１のノードから前記第２のノードへ、前記第１のノードから前記第２のノードまでの予測遅延時間を収集するための第２の制御パケットを送信するステップと、
前記第２の制御パケットに応じて、前記第１のノードから前記第２のノードへの経路上の中継装置が、前記第２のノードのアドレスから特定される出力ポートに対応付けて保持している当該中継装置における予測遅延時間と、前記第２の制御パケットに含まれている第１の予測遅延時間との和を、前記第２の制御パケットに新たな第１の予測遅延時間として設定して送信するステップと、
をさらに含む付記１記載の通信制御方法。
【０１６４】
（付記３）
前記第２のノードから前記第１のノードへ、前記第１の予測遅延時間を通知し且つ前記第２のノードから前記第１のノードまでの第２の予測遅延時間を収集するための第３の制御パケットを送信するステップと、
前記第３の制御パケットに応じて、前記第２のノードから前記第１のノードへの経路中の中継装置が、前記第１のノードのアドレスから特定される出力ポートに対応付けて保持している当該中継装置における予測遅延時間と、前記第３の制御パケットに含まれている第２の予測遅延時間との和を、前記第３の制御パケットに新たな第２の予測遅延時間として設定するステップと、
をさらに含む付記２記載の通信制御方法。
【０１６５】
（付記４）
前記第１のノードから前記第２のノードへ、前記第２の予測遅延時間を通知するための第４の制御パケットを送信するステップ
をさらに含む付記３記載の通信制御方法。
【０１６６】
（付記５）
前記期間が、
前記制御パケット受信後、前記制御時間経過後までと、
前記制御パケット受信後、前記制御パケットの後に送信される前記第１のパケットの送信元から送信先までの伝送遅延時間に相当する時間と前記制御時間との和の時間経過後までと、
前記制御パケット受信後に前記制御時間から前記伝送遅延時間に相当する時間を引いた時間経過後、前記伝送遅延時間に相当する時間の２倍の時間経過後までと、
前記制御パケット受信後に前記制御時間から前記伝送遅延時間に相当する時間の２倍の時間を引いた時間経過後、前記伝送遅延時間に相当する時間の２倍の時間経過後まで
のうちのいずれかである付記１乃至４のいずれか１つ記載の通信制御方法。
【０１６７】
（付記６）
前記第１のノードから前記第２のノードへの経路中の中継装置が、前記制御パケットに含まれる制御時間から、当該中継装置における当該制御パケットの送信予定時刻と当該制御パケットの受信時刻との差を差し引いた時間を新たな制御時間として当該制御パケットに設定して送信するステップ
をさらに含む付記１乃至４のいずれか１つ記載の通信制御方法。
【０１６８】
（付記７）
前記第１送信ステップが、前記第２送信ステップより、前記第１のノードから送信される前記制御パケットに含まれる制御時間前に行われる
付記１乃至６の何れか１つ記載の通信制御方法。
【０１６９】
（付記８）
第１の優先度を有する第１のパケットを格納する第１のパケット格納部と前記第１の優先度より低い優先度である第２の優先度を有する第２のパケットを格納する第２のパケット格納部とを各々有する複数の出力ポートと、
複数の入力ポートの各々について、前記第１のパケットを送信する前に送信され且つ前記複数の出力ポートのうちの１つの出力ポートにおける前記第２のパケット格納部からのパケット出力の停止を制御するために用いられる制御時間を含む制御パケットの受信を検出する検出部と、
前記検出部が制御パケットを検出した場合、当該制御パケットから特定され且つ前記第１のパケットを出力する、前記複数の出力ポートのうちの１つの出力ポートに対して、当該制御パケットに含まれる制御時間から特定され且つ前記第１のパケットの到着が予定される期間、前記第２のパケット格納部からのパケット出力を停止するように前記１つの出力ポートを制御する処理部と、
を有する中継装置。
【０１７０】
（付記９）
前記期間が、
前記制御パケット受信後、前記制御時間経過後までと、
前記制御パケット受信後、前記制御パケットの後に送信される前記第１のパケットの送信元から送信先までの伝送遅延時間に相当する時間と前記制御時間との和の時間経過後までと、
前記制御パケット受信後に前記制御時間から前記伝送遅延時間に相当する時間を引いた時間経過後、前記伝送遅延時間に相当する時間の２倍の時間経過後までと、
前記制御パケット受信後に前記制御時間から前記伝送遅延時間に相当する時間の２倍の時間を引いた時間経過後、前記伝送遅延時間に相当する時間の２倍の時間経過後まで
のうちのいずれかである付記８記載の中継装置。
【０１７１】
（付記１０）
前記複数の入力ポートの各々が、前記制御パケットの受信時刻を記録し、
前記複数の出力ポートの各々が、前記制御時間から前記制御パケットの送信予定時刻と前記受信時刻との差を差し引いた時間を新たな制御時間として当該制御パケットに設定して送出する
付記８又は９記載の中継装置。
【０１７２】
（付記１１）
前記制御パケットが、当該制御パケットの後に送信される前記第１のパケットの方向に関するデータを含み、
前記処理部は、
前記第１の方向に関するデータが、前記制御パケットの送信元ノードから宛先ノードへの方向を示している場合には、当該宛先ノードのアドレスから前記１つの出力ポートを特定し、
前記第１の方向に関するデータが、前記制御パケットの宛先ノードから送信元ノードへの方向を示している場合には、前記制御パケットを受信した入力ポートに対応する出力ポートを前記第１の出力ポートとして特定する
付記８乃至１０のいずれか１つ記載の中継装置。
【０１７３】
（付記１２）
前記検出部が、前記制御パケットの送信元ノードから宛先ノードまでの予測遅延時間を収集するための第２の制御パケットを検出した場合、前記制御部が、前記宛先ノードのアドレスから特定される出力ポートに対応付けて保持している当該中継装置における予測遅延時間と、前記第２の制御パケットに含まれている予測遅延時間との和を、前記第２の制御パケットに新たな予測遅延時間として設定する
付記８乃至１１のいずれか１つ記載の中継装置。
【０１７４】
（付記１３）
前記検出部が、前記制御パケットの宛先ノードから送信元ノードまでの予測遅延時間を収集するための第３の制御パケットを検出した場合、前記制御部が、前記送信元ノードのアドレスから特定される出力ポートに対応付けて保持している当該中継装置における予測遅延時間と、前記第３の制御パケットに含まれている予測遅延時間との和を、前記第３の制御パケットに新たな予測遅延時間として設定する
付記１２記載の中継装置。
【０１７５】
（付記１４）
第１の優先度を有する第１のパケットを格納する第１のパケット格納部と前記第１の優先度より低い優先度である第２の優先度を有する第２のパケットを格納する第２のパケット格納部とを各々有する複数の出力ポートを有する中継装置に、
複数の入力ポートの各々について、前記第１のパケットを送信する前に送信され且つ前記複数の出力ポートのうちの１つの出力ポートにおける前記第２のパケット格納部からのパケット出力の停止を制御するために用いられる制御時間を含む制御パケットの受信を検出したことを表すデータを受信し、
当該制御パケットから特定され且つ前記第１のパケットを出力する、前記複数の出力ポートのうちの１つの出力ポートに対して、当該制御パケットに含まれる制御時間から特定され且つ前記第１のパケットの到着が予定される期間、前記第２のパケット格納部からのパケット出力を停止するように前記１つの出力ポートを制御する
処理を実行させるためのプログラム。
【符号の説明】
【０１７６】
１００，２００  通信制御部
１１０，２１０  第１データ格納部
１２０，２２０  第２データ格納部
１３０  コントローラ
２３０  センサ
２４０  アクチュエータ
３０１  入力ポート
３０３  検出部
３０５  制御パケット処理部
３０７  スイッチ部
３０９  出力ポート
３１１  遅延ＤＢ
【図１】
0005741224.tif 000002
【図２】
0005741224.tif 000003
【図３】
0005741224.tif 000004
【図４】
0005741224.tif 000005
【図５】
0005741224.tif 000006
【図６】
0005741224.tif 000007
【図７】
0005741224.tif 000008
【図８】
0005741224.tif 000009
【図９】
0005741224.tif 000010
【図１０】
0005741224.tif 000011
【図１１】
0005741224.tif 000012
【図１２】
0005741224.tif 000013
【図１３】
0005741224.tif 000014
【図１４】
0005741224.tif 000015
【図１５】
0005741224.tif 000016
【図１６】
0005741224.tif 000017
【図１７】
0005741224.tif 000018
【図１８】
0005741224.tif 000019
【図１９】
0005741224.tif 000020
【図２０】
0005741224.tif 000021
【図２１】
0005741224.tif 000022
【図２２】
0005741224.tif 000023
【図２３】
0005741224.tif 000024
【図２４】
0005741224.tif 000025
【図２５】
0005741224.tif 000026
【図２６】
0005741224.tif 000027
【図２７】
0005741224.tif 000028
【図２８】
0005741224.tif 000029
【図２９】
0005741224.tif 000030
【図３０】
0005741224.tif 000031
【図３１】
0005741224.tif 000032
【図３２】
0005741224.tif 000033
【図３３】
0005741224.tif 000034
【図３４】
0005741224.tif 000035
【図３５】
0005741224.tif 000036
【図３６】
0005741224.tif 000037
【図３７】
0005741224.tif 000038
【図３８】
0005741224.tif 000039
【図３９】
0005741224.tif 000040
【図４０Ａ】
0005741224.tif 000041
【図４０Ｂ】
0005741224.tif 000042
【図４０Ｃ】
0005741224.tif 000043
【図４１】
0005741224.tif 000044
【図４２】
0005741224.tif 000045
【図４３】
0005741224.tif 000046
【図４４】
0005741224.tif 000047
【図４５】
0005741224.tif 000048