(57)【要約】【課題】有線ネットワークにおいて同期の取れていない複数の通信装置が時分割で通信できるようにする。【解決手段】本中継装置は、第1の通信装置から第1のデータパケット群又は第1の制御パケット群を第1の送信元IFにおいて受信している間に、第2の送信元IFにおいて第2の通信装置から当該第2の通信装置における動作周期を表すフレーム列のうち現フレームの1フレーム先の一定期間における第2のデータパケット群の送信を予約するために用いられ且つ送信先IFが第1のデータパケット群又は第1の制御パケット群の送信先IFと一致する第2の制御パケット群を受信するという衝突を検出する衝突検出部と、上記衝突が検出された場合、第2の制御パケット群の最初のパケットの受信開始から第1のデータパケット群又は第1の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を、第2の通信装置へ送信する衝突発生通知部とを有する。【選択図】図１
2012039539.tif 000002
【特許請求の範囲】
【請求項１】
第１の通信装置から第１のデータパケット群又は第１の制御パケット群を第１の送信元インタフェースにおいて受信している間に、第２の送信元インタフェースにおいて第２の通信装置から当該第２の通信装置における動作周期を表すフレーム列のうち現フレームの１フレーム先の一定期間における第２のデータパケット群の送信を予約するために用いられ且つ送信先インタフェースが前記第１のデータパケット群又は第１の制御パケット群の送信先インタフェースと一致する第２の制御パケット群を受信するという衝突を検出する衝突検出部と、
前記衝突が検出された場合、前記第２の制御パケット群の最初のパケットの受信開始から前記第１のデータパケット群又は第１の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を、前記第２の通信装置へ送信する衝突発生通知部と、
を有する中継装置。
【請求項２】
前記第２の制御パケット群には、通信経路情報を含む制御パケットが含まれ、
前記衝突が検出された場合、前記第１のデータパケット群又は第１の制御パケット群の最終パケットの受信終了後、前記第２の制御パケット群を当該第２の制御パケット群内の制御パケットに含まれる前記通信経路情報により特定される送信先インタフェースへ出力する制御部
をさらに有する請求項１記載の中継装置。
【請求項３】
動作周期を表すフレーム列のうち第１のフレームの後の第２のフレームの一定期間における第１のデータパケット群の送信を予約するための第１の制御パケット群を、前記第１のフレームにおける第１の送信タイミングで前記第１のデータパケット群の送信先通信装置宛に送信するスケジューラと、
前記第１のデータパケット群の送信先通信装置までの通信経路中の中継装置において送信先インタフェースが一致する第２のデータパケット群又は第２の制御パケット群を受信している間に前記第１の制御パケット群を受信するという衝突が発生した際に当該中継装置から送信され且つ当該第１の制御パケット群の最初のパケットの受信開始から当該第２のデータパケット群又は第２の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を受信した場合、前記第１の送信タイミングを前記調整時間分だけ後にシフトさせた第２の送信タイミングを計算し、前記スケジューラに前記第２のフレームにおける前記第２の送信タイミングで前記第１の制御パケット群を再送信させる送信タイミング計算部と、
を有する通信装置。
【請求項４】
制御パケット群の送信予定時刻を基準時刻としてデータパケット群の送信に利用可能な期間を表すデータを生成し、前記送信予定時刻に、前記利用可能な期間を表すデータと前記データパケット群の送信に対して割り当てられている識別子とを含む制御パケットを含む前記制御パケット群を、前記データパケット群の送信先通信装置宛に送信するスケジューラと、
前記データパケット群の送信先通信装置までの通信経路中の中継装置における空き期間と前記利用可能な期間との重複期間である送信可能期間を表すデータを含む応答パケットを受信した場合、前記送信可能期間から前記データパケット群に用いる送信期間を決定する送信期間決定部と、
を有し、
前記スケジューラが、
決定された前記送信期間において、前記データパケット群の最初のパケットに、当該データパケット群の送信に割り当てられている前記識別子を設定して当該データパケット群を送信する
通信装置。
【請求項５】
通信装置からデータパケット群の送信に利用可能な期間を表すデータと当該データパケット群の送信に割り当てられている識別子と通信経路情報とを含む制御パケットを含む制御パケット群を受信した場合、自中継装置における動作周期を表すフレーム列のうち前記制御パケット群の最初のパケットの受信開始時のフレームのフレーム開始から前記制御パケット群の最初のパケットの受信開始までの時間であるシフト時間を計算する時間差計算部と、
前記制御パケットに含まれる前記通信経路情報により特定される送信先インタフェースの空き期間と前記利用可能な期間とのいずれかを基準に他方を前記シフト時間シフトさせた上で前記送信先インタフェースの空き期間と前記利用可能な期間との第１の重複期間を特定し、特定した前記第１の重複期間を表すデータを前記制御パケットに設定して前記送信先インタフェースに前記制御パケット群を出力する期間データ処理部と、
を有する中継装置。
【請求項６】
第１の通信装置から第１のデータパケット群又は第１の制御パケット群を第１の送信元インタフェースにおいて受信している間に、第２の送信元インタフェースにおいて第２の通信装置から当該第２の通信装置における動作周期を表すフレーム列のうち現フレームの１フレーム先の一定期間における第２のデータパケット群の送信を予約するために用いられ且つ送信先インタフェースが前記第１のデータパケット群又は第１の制御パケット群の送信先インタフェースと一致する第２の制御パケット群を受信するという衝突を検出するステップと、
前記衝突が検出された場合、前記第２の制御パケット群の最初のパケットの受信開始から前記第１のデータパケット群又は第１の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を、前記第２の通信装置へ送信するステップと、
を含み、中継装置により実行される通信制御方法。
【請求項７】
動作周期を表すフレーム列のうち第１のフレームの後の第２のフレームの一定期間における第１のデータパケット群の送信を予約するための第１の制御パケット群を、前記第１のフレームにおける第１の送信タイミングで前記第１のデータパケット群の送信先通信装置宛に送信するステップと、
前記第１のデータパケット群の送信先通信装置までの通信経路中の中継装置において送信先インタフェースが一致する第２のデータパケット群又は第２の制御パケット群を受信している間に前記第１の制御パケット群を受信するという衝突が発生した際に当該中継装置から送信され且つ当該第１の制御パケット群の最初のパケットの受信開始から当該第２のデータパケット群又は第２の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を受信した場合、前記第１の送信タイミングを前記調整時間分だけ後にシフトさせた第２の送信タイミングを計算するステップと、
前記第２のフレームにおける前記第２の送信タイミングで前記第１の制御パケット群を再送信するステップと、
を含み、通信装置により実行される通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、有線ネットワークにおける通信制御技術に関する。
【背景技術】
【０００２】
近年、情報通信ネットワークを流れるトラフィック量が大きく増加しており、それに伴いネットワークにおける消費電力も増加している。特にルータの消費電力が著しく増加している。
【０００３】
ところで、従来から、時分割でデータ転送を行う技術（例えばＴＤＭ（Time Division Multiplexing）など）が存在している。ＴＤＭでは、１フレームを複数のタイムスロット（以下、単にスロットと呼ぶ）に区切り、スロット毎に別々のデータ転送を行う。しかし、時分割でデータ転送を行うには、通信装置が高精度な時刻同期を行うことになり、IEEE 1588などの仕様に沿った高精度の時計機能を用いることになるため、コストがかかってしまう。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平３−４６４３２号公報
【特許文献２】特開２００６−２７７３０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従って、本技術の目的は、一側面において、有線ネットワークにおいて同期の取れていない複数の通信装置が時分割で通信できるようにするための技術を提供することである。
【課題を解決するための手段】
【０００６】
本技術の第１の態様に係る中継装置は、（Ａ）第１の通信装置から第１のデータパケット群又は第１の制御パケット群を第１の送信元インタフェースにおいて受信している間に、第２の送信元インタフェースにおいて第２の通信装置から当該第２の通信装置における動作周期を表すフレーム列のうち現フレームの１フレーム先の一定期間における第２のデータパケット群の送信を予約するために用いられ且つ送信先インタフェースが第１のデータパケット群又は第１の制御パケット群の送信先インタフェースと一致する第２の制御パケット群を受信するという衝突を検出する衝突検出部と、（Ｂ）上記衝突が検出された場合、第２の制御パケット群の最初のパケットの受信開始から第１のデータパケット群又は第１の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を、第２の通信装置へ送信する衝突発生通知部とを有する。
【０００７】
本技術の第２の態様に係る通信装置は、（Ａ）動作周期を表すフレーム列のうち第１のフレームの後の第２のフレームの一定期間における第１のデータパケット群の送信を予約するための第１の制御パケット群を、第１のフレームにおける第１の送信タイミングで第１のデータパケット群の送信先通信装置宛に送信するスケジューラと、（Ｂ）第１のデータパケット群の送信先通信装置までの通信経路中の中継装置において送信先インタフェースが一致する第２のデータパケット群又は第２の制御パケット群を受信している間に第１の制御パケット群を受信するという衝突が発生した際に当該中継装置から送信され且つ当該第１の制御パケット群の最初のパケットの受信開始から当該第２のデータパケット群又は第２の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を受信した場合、第１の送信タイミングを調整時間分だけ後にシフトさせた第２の送信タイミングを計算し、スケジューラに第２のフレームにおける第２の送信タイミングで第１の制御パケット群を再送信させる送信タイミング計算部とを有する。
【０００８】
本技術の第３の態様に係る通信装置は、（Ａ）制御パケット群の送信予定時刻を基準時刻としてデータパケット群の送信に利用可能な期間を表すデータを生成し、送信予定時刻に、利用可能な期間を表すデータとデータパケット群の送信に対して割り当てられている識別子とを含む制御パケットを含む制御パケット群を、データパケット群の送信先通信装置宛に送信するスケジューラと、（Ｂ）データパケット群の送信先通信装置までの通信経路中の中継装置における空き期間と利用可能な期間との重複期間である送信可能期間を表すデータを含む応答パケットを受信した場合、送信可能期間からデータパケット群に用いる送信期間を決定する送信期間決定部とを有する。そして、上で述べたスケジューラが、決定された送信期間において、データパケット群の最初のパケットに、当該データパケット群の送信に割り当てられている識別子を設定して当該データパケット群を送信する。
【０００９】
本技術の第４の態様に係る中継装置は、（Ａ）通信装置からデータパケット群の送信に利用可能な期間を表すデータと当該データパケット群の送信に割り当てられている識別子と通信経路情報とを含む制御パケットを含む制御パケット群を受信した場合、自中継装置における動作周期を表すフレーム列のうち制御パケット群の最初のパケットの受信開始時のフレームのフレーム開始から制御パケット群の最初のパケットの受信開始までの時間であるシフト時間を計算する時間差計算部と、（Ｂ）制御パケットに含まれる通信経路情報により特定される送信先インタフェースの空き期間と利用可能な期間とのいずれかを基準に他方をシフト時間シフトさせた上で送信先インタフェースの空き期間と利用可能な期間との第１の重複期間を特定し、特定した第１の重複期間を表すデータを制御パケットに設定して送信先インタフェースに制御パケット群を出力する期間データ処理部とを有する。
【発明の効果】
【００１０】
有線ネットワークにおいて同期の取れていない複数の通信装置が時分割で通信できるようになる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本技術の実施の形態におけるネットワークシステムの構成の一例を示す図である。
【図２】図２は、エッジルータの機能ブロック図である。
【図３】図３は、宛先ノードテーブルの一例を示す図である。
【図４】図４は、キュー管理テーブルの一例を示す図である。
【図５Ａ】図５Ａは、スケジュールＤＢに格納されるデータの一例を示す図である。
【図５Ｂ】図５Ｂは、エッジノードにおけるフレームとスロットの関係を説明するための図である。
【図６】図６（ａ）は、制御パケット群の構成例を示す図であり、図６（ｂ）は、データパケット群の構成例を示す図である。
【図７】図７は、第１の実施の形態に係る中継ルータの機能ブロック図である。
【図８】図８は、中継テーブルの一例を示す図である。
【図９】図９は、管理サーバの機能ブロック図である。
【図１０】図１０は、データパケットの送信予約の流れを説明するための図である。
【図１１】図１１は、衝突発生時の動作を説明するための図である。
【図１２】図１２は、衝突発生時のシーケンス例を示す図である。
【図１３】図１３は、外部ネットワークからパケットを受信した際のエッジノードの処理フローを示す図である。
【図１４】図１４は、送信予約処理の処理フローを示す図である。
【図１５】図１５は、制御パケット群を受信した際のエッジノードの処理フローを示す図である。
【図１６】図１６は、データパケット群を受信した際の中継ルータの処理フローを示す図である。
【図１７】図１７は、制御パケット群を受信した際の中継ルータの処理フローを示す図である。
【図１８】図１８は、ＩＰパケット及びＩＰヘッダの模式図である。
【図１９】図１９（ａ）は、衝突発生通知の場合のオプションフィールドのフォーマット例を示す図であり、図１９（ｂ）は、確認通知の場合のオプションフィールドのフォーマット例を示す図である。
【図２０】図２０は、中継ノードに３つのエッジノードが接続されるネットワーク構成例を示す図である。
【図２１】図２１は、図２０に示したネットワーク構成における衝突発生時の動作を説明するための図である。
【図２２】図２２は、第２の実施の形態におけるシーケンス例を示す図である。
【図２３】図２３は、第２の実施の形態に係る中継ルータの機能ブロック図である。
【図２４】図２４は、第２の実施の形態に係る中継ルータの処理フローを示す図である。
【図２５】図２５は、第２の実施の形態に係る中継ルータの処理フローを示す図である。
【図２６】図２６は、第２の実施の形態に係る中継ルータの処理フローを示す図である。
【図２７】図２７は、第３の実施の形態におけるシーケンス例を示す図である。
【図２８】図２８は、第３の実施の形態に係る中継ルータの機能ブロック図である。
【図２９】図２９は、第３の実施の形態における中継テーブルの一例を示す図である。
【図３０】図３０は、シフト時間格納部に格納されるデータの一例を示す図である。
【図３１】図３１は、送信予約処理２の処理フローを示す図である。
【図３２】図３２は、利用可能期間データ及び送信可能期間データの場合のオプションフィールドのフォーマット例を示す図である。
【図３３】図３３は、第３の実施の形態に係る中継ルータの処理フローを示す図である。
【図３４】図３４は、利用可能期間と空き期間との重複期間を特定する処理を説明するための図である。
【図３５】図３５は、第３の実施の形態に係る中継ルータの処理フローを示す図である。
【図３６】図３６は、第３の実施の形態に係る中継ルータの処理フローを示す図である。
【図３７】図３７は、予約期間の更新処理を説明するための図である。
【図３８】図３８は、コンピュータの機能ブロック図である。
【図３９】図３９は、コンピュータの機能ブロック図である。
【図４０】図４０は、中継装置の機能ブロック図である。
【図４１】図４１は、通信装置の機能ブロック図である。
【図４２】図４２は、通信制御方法の処理フローを示す図である。
【図４３】図４３は、通信制御方法の処理フローを示す図である。
【発明を実施するための形態】
【００１２】
［実施の形態１］
まず、図１乃至図２１を用いて、第１の実施の形態について説明する。本実施の形態では、図１に示すように、エッジルータ１（図１では１Ａ乃至１Ｄ）と、中継ルータ３（図１では３Ａ及び３Ｂ）と、管理サーバ５とを有するネットワークシステム１００を想定する。図１において、中継ルータ３Ａはエッジルータ１Ａとエッジルータ１Ｂと中継ルータ３Ｂとに接続され、中継ルータ３Ｂはエッジルータ１Ｃとエッジルータ１Ｄとに接続されている。また、エッジルータ１Ａ乃至１Ｄ並びに中継ルータ３Ａ及び３Ｂは、管理サーバ５と制御線（図１では点線）によって接続されている。さらに、エッジルータ１Ａ乃至１Ｄは、図示しない外部ネットワークと接続されている。以下では、エッジルータをエッジノードと呼び、中継ルータを中継ノードと呼ぶ。なお、図１は、簡単なネットワークシステムの一例であり、ネットワーク構成はこれに限定されるものではない。
【００１３】
また、図１では、管理サーバ５が、起動時に、フレーム長を表すデータをエッジルータ１Ａ乃至１Ｄに配信するようになっている。そして、エッジルータ１Ａ乃至１Ｄは、管理サーバ５からフレーム長を表すデータを受信し、そのフレーム長に従って動作する。なお、ここでは、エッジルータ１Ａ乃至１Ｄは、非同期に動作しているものとし、エッジルータ１Ａ乃至１Ｄにおけるフレーム開始タイミングは同期していないものとする。
【００１４】
図２に、図１に示したエッジルータ１の機能ブロック図を示す。エッジルータ１は、パケット受信部１１と、宛先エッジノード毎のキュー１２１（図２では１２１ａ乃至１２１ｃ）を有するパケット分類部１２と、宛先ノードテーブル格納部１３と、キュー管理テーブル格納部１４と、スケジューラ１５と、スケジュールＤＢ１６と、送信タイミング計算部１７と、応答信号受信部１８と、通信部１９とを有する。通信部１９は、複数の入出力インタフェース（ＩＦ）と接続されている。
【００１５】
パケット受信部１１は、通信部１９を介して外部ネットワークからのパケットを受信し、パケット分類部１２に出力する。パケット分類部１２は、宛先ノードテーブル格納部１３とキュー管理テーブル格納部１４とに格納されているデータを用いて、パケット受信部１１が受信したパケットを該当するキュー１２１に格納する。なお、該当するキュー１２１が存在しない場合には、パケット分類部１２は、新たなキュー１２１を生成し、キューＩＤなどをキュー管理テーブル格納部１４に登録する。また、パケット分類部１２は、新たなキュー１２１を生成した場合には、そのキュー１２１に格納されているパケット（以下、データパケットと呼ぶ場合もある）の送信予約を行うようスケジューラ１５に指示する。スケジューラ１５は、パケット分類部１２からの指示を受けると、データパケットの通信経路を管理サーバ５に問い合わせたり、スケジュールデータベース（ＤＢ）１６に格納されているデータに従って、データパケットの送信予約のための制御パケット群を通信部１９を介して宛先エッジノード宛に送信したりする。応答信号受信部１８は、通信部１９を介して制御パケット群に対する応答を受信し、送信タイミング計算部１７に出力する。送信タイミング計算部１７は、制御パケット群に対する応答に従って、制御パケット群の送信タイミングを計算し、スケジュールＤＢ１６に格納する。なお、データパケットの送信予約が完了した場合、スケジューラ１５が、スケジュールＤＢ１６に格納されているデータに従って、データパケット群を通信部１９を介して宛先エッジノード宛に送信したりする。
【００１６】
宛先ノードテーブル格納部１３には、例えば図３に示すような宛先ノードテーブルが予め格納されている。図３の例では、宛先ノードテーブルには、宛先アドレスの列と、宛先エッジノードの列とが含まれる。例えば、宛先アドレスが１９２．１６８．１．１０であれば、宛先エッジノードはノードＢであることが分かる。
【００１７】
また、キュー管理テーブル格納部１４には、例えば図４に示すようなキュー管理テーブルが格納される。図４の例では、キュー管理テーブルには、キューＩＤの列と、宛先エッジノードの列とが含まれる。例えば宛先エッジノードがノードＢであるパケットの格納先は、ＩＤ「ｑ００１」のキューであることが分かる。
【００１８】
また、スケジュールＤＢ１６には、例えば図５Ａに示すようなデータが格納される。図５Ａの例では、スケジュールＤＢ１６には、宛先エッジノード毎に、キューＩＤと、通信経路情報と、出力インタフェース（ＩＦ）と、スロットＩＤと、送信タイミングと、送信時間と、調整時間の累計とが格納されるようになっている。スケジューラ１５が、パケット分類部１２からデータパケットの送信予約を行う旨の指示を受け取ると、新たなレコードをスケジュールＤＢ１６に追加する。キューＩＤの列には、そのレコードに係る宛先エッジノードへ送信すべきパケットが格納されているキュー１２１のキューＩＤが格納される。通信経路情報の列には、管理サーバ５から受信した通信経路情報が格納される。出力ＩＦの列には、そのレコードに係る宛先エッジノードへのデータパケットの出力先となるＩＦの識別情報が格納される。スロットＩＤの列には、そのレコードに係る宛先エッジノードとの通信を行うスロットのＩＤが格納される。なお、詳細は後で説明するが、本実施の形態では、スロットＩＤの列に設定されているＩＤをデータパケット群の先頭パケット及び最終パケットに設定して当該データパケット群を送信する。また、送信タイミングの列には、自エッジノードのフレーム開始時刻を基準にパケット送信を開始する時刻が格納される。なお、詳細は後で説明するが、通信経路中の中継ルータ３においてパケット衝突が発生した場合には、当該中継ルータ３から通知される調整時間分だけ送信タイミングをずらす。調整時間の累計の列には、送信タイミングをずらした時間の累計が格納される。なお、データパケットの送信予約が完了した場合には、調整時間の累計の列に「予約完了」が設定される。また、送信時間の列には、パケット送信を開始してから終了するまでの時間が格納される。図５Ａでは、ノードＤへのパケット送信については、送信予約が完了しており、自エッジノードの時刻ｔ１から１ｍｓ経過するまでの期間（スロット１）において、ＩＤ「ｑ００２」に格納されているデータパケットをｅｔｈ１の出力ＩＦに出力するようスケジューリングされていることを示している。また、例えばノードＢへのパケット送信については、送信予約が未だ完了しておらず、時刻ｔ２が最初の送信タイミングから１０ｍｓずらした時刻であることを示している。
【００１９】
例えば図５Ｂに、エッジノード１Ａにおけるフレームとスロットとの関係を模式的に示す。図５Ｂに示すように、可変時間長のスロットを含む固定長のフレームが周期的に繰り返されるようになっている。例えば、エッジノード１Ａは、あるフレームにおけるスロット１においてデータパケットの送信予約のための制御パケット群をエッジノード１Ｄ宛に送信し、エッジノード１Ｄからの確認通知が返ってきた場合には、次のフレーム以降におけるスロット１においてエッジノード１Ｄとのパケット通信を行う。同様に、エッジノード１Ａは、あるフレームにおけるスロット３において制御パケット群をエッジノード１Ｂ宛に送信し、エッジノード１Ｂからの確認通知が返ってきた場合には、次のフレーム以降におけるスロット３においてエッジノード１Ｂとのパケット通信を行う。なお、スロットＩＤは、データパケットの送信予約を行う際に、スロットの並び順とは関係なく、エッジノード１により割り振られる。そのため、フレーム内におけるスロットは、スロットＩＤの順番で並んでいるとは限らない。また、本実施の形態では、制御パケット群を送信するスロットのことを制御スロットと呼び、データパケット群を送信するスロットをデータスロットと呼ぶことにする。
【００２０】
なお、図６に、本実施の形態における制御パケット群及びデータパケット群の構成例を示しておく。図６（ａ）は、制御パケット群の構成例を示す。図６（ａ）に示すように、制御パケット群には、スロットＩＤと予約を表すデータと通信経路情報とを含む複数の制御パケットが含まれる。なお、制御パケット群の先頭の制御パケットは、開始を表すデータをさらに含み、最終の制御パケットは、終了を表すデータをさらに含む。なお、１フレーム先の一定期間で送信しようとしているデータパケット群に合わせて制御パケット群を用意する。例えばデータパケット群の長さの上限及び下限を決めておき、送信すべきデータパケットの量を考慮してデータパケット群の長さを決定するようにしてもよい。また、デフォルトの長さを決めておき、デフォルトの長さを用いるようにしてもよい。また、図６（ｂ）に示すように、データパケット群には、スロットＩＤと開始を表すデータとを含む制御パケットと、１又は複数のデータパケットと、スロットＩＤと終了を表すデータとを含む制御パケットとが含まれる。なお、制御パケット群を送信することによって宛先エッジノードまでの通信経路中の中継ノードでパケット衝突が起きないことを確認した後で、データパケット群を送信することになるが、パケット衝突が起きないことが保証されているのは、前のフレームで制御パケット群を送信していた期間である。この期間について、予約状態を維持するためには、制御パケット群と同じ長さを有するデータパケット群を周期的に送信する。例えばキューが一時的に空になっても、ＮＵＬＬパケットなどを含むデータパケット群を周期的に送信しておけば、予約状態を維持できるので、当該キューに新たなデータパケットが格納された場合に、改めて制御パケット群を送信しなくても済む。
【００２１】
また、図７に、図１に示した中継ルータ３の機能ブロック図を示す。中継ルータ３は、スイッチ部３１と、中継テーブル格納部３２と、衝突検出部３３と、衝突発生通知部３４とを有する。なお、中継ルータ３は、データパケット用のバッファを持たず、バッファレスでデータパケット群の中継を行う。
【００２２】
スイッチ部３１は、複数の入出力ＩＦと接続されており、制御パケット群を受信した際に中継テーブル格納部３２にデータを登録したり、中継テーブル格納部３２に格納されているデータに従ってＩＦの切り替えを行ったりする。衝突検出部３３は、ＩＦを流れるパケットを監視し、ある入力ＩＦにおいてデータパケット群又は他の制御パケット群を受信している間に、出力ＩＦが一致する制御パケット群を他の入力ＩＦにおいて受信するという衝突の発生を検出する。衝突発生通知部３４は、衝突検出部３３により上記のような衝突が検出された場合、調整時間を計算し、調整時間を含む衝突発生通知を送信元エッジノードに送信する。
【００２３】
中継テーブル格納部３２には、例えば図８に示すような中継テーブルが格納される。図８の例では、中継テーブルには、入力（ＩＮ）の列と、出力（ＯＵＴ）の列とが含まれる。入力の列には、パケットが入力されるＩＦの識別情報とスロットＩＤとが格納されるようになっている。また、出力の列には、パケットの出力先となるＩＦの識別情報が格納されるようになっている。例えば最初のパケットにスロット１が設定され且つｅｔｈ０のＩＦから入力されるデータパケット群については、ｅｔｈ１のＩＦへ出力することを示している。
【００２４】
また、図９に、図１に示した管理サーバ５の機能ブロック図を示す。管理サーバ５は、経路情報格納部５１と、制御部５２と、受信部５３と、経路情報取得部５４と、送信部５５とを有する。経路情報格納部５１には、送信元エッジノード及び宛先エッジノードの組み合わせ毎に、当該送信元エッジノードから当該宛先エッジノードまでの最短経路上のノードの識別情報及び各ノードが使用すべき入出力ＩＦの識別情報を含む通信経路情報が予め格納されている。制御部５２は、管理サーバ５の起動時に、フレーム長を表すデータを各エッジノードへ送信するよう送信部５５に指示する。受信部５３は、送信元エッジノードから宛先エッジノードまでの通信経路の問い合わせをエッジノードから受信すると、当該問い合わせを経路情報取得部５４に出力する。経路情報取得部５４は、問い合わせに係る送信元エッジノード及び宛先エッジノードに対応する通信経路情報を経路情報格納部５１から取得し、取得した通信経路情報を問い合わせの送信元へ送信するよう送信部５５に指示する。送信部５５は、制御部５２又は経路情報取得部５４からの指示に応じてデータを送信する。
【００２５】
次に、図１０乃至図１２を用いて、データパケットの送信予約の流れについて説明する。ここでは、エッジノード１Ａが、エッジノード１Ｃへのパケット送信を予約する場面を例に説明する。最初に、図１０を用いて、通信経路中の中継ノード３Ａ及び３Ｂにおいて衝突が発生せずに、予約が完了する場合について説明する。まず、エッジノード１Ａは、エッジノード１Ｃを宛先エッジノードとする新たなレコードをスケジュールＤＢ１６に登録する。また、エッジノード１Ａは、エッジノード１Ｃまでの通信経路の問い合わせを管理サーバ５に送信する。そして、エッジノード１Ａは、通信経路の問い合わせの応答として管理サーバ５から通信経路情報を受信すると、受信した通信経路情報と当該通信経路情報から特定される出力ＩＦの識別情報とを追加したレコードに設定する。なお、通信経路は、「エッジノード１Ａ−＞中継ノード３Ａ−＞中継ノード３Ｂ−＞エッジノード１Ｃ」であるものとする。また、エッジノード１Ｃへ送信すべきパケットが格納されているキューのＩＤを追加したレコードに設定する。また、新たなスロットＩＤ（識別子）を割り振り、追加したレコードに設定する。そして、エッジノード１Ａは、自エッジノードにおける送信可能な期間から制御パケット群の送信タイミング及び送信時間を決定し、追加したレコードに設定し、さらに調整時間の累計を０で初期化する。
【００２６】
そして、エッジノード１Ａは、決定された送信タイミングにて、制御パケット群を送信する。この際、追加したレコードに設定されているスロットＩＤと通信経路情報とを制御パケット群内の制御パケットに設定する。
【００２７】
そして、中継ノード３Ａは、制御パケット群を受信すると、出力ＩＦが制御パケット群の出力ＩＦと一致するデータパケット群又は他の制御パケット群との衝突が起きていないか確認する。ここでは、衝突は起きていないものとする。そうすると、中継ノード３Ａは、入力ＩＦの識別情報と制御パケットに含まれるスロットＩＤと通信経路情報から特定される出力ＩＦの識別情報とを中継テーブルに設定し、制御パケット群を当該出力ＩＦに出力する。同様に、中継ノード３Ｂも制御パケット群を受信すると、出力ＩＦが制御パケット群の出力ＩＦと一致するデータパケット群又は他の制御パケット群との衝突が起きていないか確認する。ここでは、衝突は起きていないものとする。そうすると、中継ノード３Ｂは、入力ＩＦの識別情報と制御パケットに含まれるスロットＩＤと通信経路情報から特定される出力ＩＦの識別情報とを中継テーブルに設定し、制御パケット群を当該出力ＩＦに出力する。
【００２８】
そして、エッジノード１Ｃは、制御パケット群の先頭パケットを受信すると、制御パケット群に対する応答として確認信号（以下、確認通知とも呼ぶ）をエッジノード１Ａ宛に送信する。なお、中継ノード３Ａ及び３Ｂでは、制御パケット群の最終パケットを受信するまでは、エッジノード１Ａとエッジノード１Ｃとの間でパケットが流れるようにスイッチングされている。従って、エッジノード１Ａは、制御スロットの時間内に、エッジノード１Ｃからの確認通知を受信する。
【００２９】
このように、通信経路中の中継ノード３Ａ及び３Ｂにおいて衝突が起こらなければ、制御パケット群に対する応答としてエッジノード１Ｃからの確認通知がエッジノード１Ａに返ってくる。この確認通知を受信したということは、データパケットの送信予約が完了したことを意味する。すなわち、１フレーム先の送信タイミングにて、データパケット群を送信することができる。なお、中継ノード３Ａ及び３Ｂにおける中継テーブルには、スロットＩＤと入出力ＩＦの識別情報とが登録されているので、エッジノード１Ａからエッジノード１Ｃへのデータパケットは適切に中継される。
【００３０】
次に、図１１を用いて、通信経路中の中継ノード３Ａにおいて衝突が発生する場合について説明する。ここでは、図１１に示すように、エッジノード１Ｂがデータパケット群をエッジノード１Ｃ宛に送信するのに対し、エッジノード１Ａが制御パケット群をエッジノード１Ｃ宛に送信する場面を想定する。なお、エッジノード１Ｂとエッジノード１Ｃとの通信については事前に予約が完了しているものとする。
【００３１】
エッジノード１Ａは、上で述べたような処理を行い、制御パケット群をエッジノード１Ｃ宛に送信する。ここでは、中継ノード３Ａは、エッジノード１Ｂからのデータパケット群を中継している間に、エッジノード１Ａからの制御パケット群を受信したものとする。そうすると、中継ノード３Ａは、衝突発生を検出し、受信した制御パケット群については廃棄する。一方、エッジノード１Ｂからのデータパケット群については、バッファレスで転送し続ける。そして、中継ノード３Ａは、制御パケット群の先頭パケットの受信開始からデータパケット群の最終パケットの受信終了までの時間である調整時間δｔを計測し、調整時間を含む衝突信号（以下、衝突発生通知とも呼ぶ）をエッジノード１Ａ宛に送信する。
【００３２】
そして、エッジノード１Ａは、制御スロットの時間内に、中継ノード３Ａから調整時間δｔを含む衝突発生通知を受信する。そして、エッジノード１Ａは、制御パケット群の送信タイミングを調整時間δｔだけ後にずらした新たな送信タイミングを計算し、新たな送信タイミングを、スケジュールＤＢ１６内の該当するレコードに設定し、当該レコードにおける調整時間の累計に調整時間δｔを加算する。そして、エッジノード１Ａは、調整時間の累計がフレーム長未満であるか判断し、調整時間の累計がフレーム長未満であれば、新たな送信タイミングで、制御パケット群をエッジノード１Ｃ宛に再送信する。
【００３３】
このように送信タイミングを調整することで、中継ノード３Ａでは、エッジノード１Ｂからのデータパケット群の受信終了後に、エッジノード１Ａからの制御パケット群を受信することとなるため、エッジノード１Ｂからのデータパケット群との衝突は起こらない。この場合、中継ノード３Ａは、制御パケット群を受信し、衝突が起こらないことを確認し、入力ＩＦの識別情報と制御パケットに含まれるスロットＩＤと通信経路情報から特定される出力ＩＦの識別情報とを中継テーブルに設定し、制御パケット群を当該出力ＩＦに出力する。この後、中継ノード３Ｂにおいても衝突が起こらなければ、上で述べたように、エッジノード１Ａは、エッジノード１Ｃからの確認通知を受信し、データパケットの送信予約が完了する。
【００３４】
なお、送信タイミングを調整時間δｔだけずらすことで、今回発生した衝突を回避できるようになるが、通信経路中の他の中継ノードで新たな衝突が発生する可能性もある。他の中継ノードで新たな衝突が発生した場合には、当該他の中継ノードから送信されてくる衝突発生通知に含まれる調整時間を用いて、さらに送信タイミングを調整し、調整後の送信タイミングで、制御パケット群を再送信すればよい。但し、調整時間の累計がフレーム長以上になった場合は、他のエッジノードの通信状況との関係で、衝突を起こさずに通信できるスロットが存在しないということになる。従って、この場合は、処理を終了する。なお、通信状況に応じてスロットが解放されるようになっている場合には、送信元エッジノードは、一定時間経過後に、調整時間の累計を０で初期化し、データパケットの送信予約を改めて行うようにすればよい。
【００３５】
例えば図１２に、衝突発生時のシーケンス例を示す。まず、送信元エッジノードが、時刻０（すなわち、フレーム開始時刻）のときに制御パケット群を宛先エッジノード宛に送信する（図１２：ステップ（１））。なお、図１２における「Ｒｅｑ」は、制御パケット群の先頭パケットを表している。また、括弧内の数値は、送信タイミングを表している。ここでは、中継ノードＡにおいて衝突が発生したものとする。そうすると、中継ノードＡは、調整時間δｔ１を含む衝突発生通知を送信元エッジノードに送信する（ステップ（２））。なお、「Ｒｅｓｐ（ＮＧ，δｔ１）」は、調整時間δｔ１を含む衝突発生通知を表している。
【００３６】
そして、送信元エッジノードは、制御スロットの時間内に、中継ノードＡから調整時間δｔ１を含む衝突発生通知を受信すると、調整時間δｔ１を用いて新たな送信タイミングを計算する。ここでは、元の送信タイミングが時刻０であったため、δｔ１が新たな送信タイミングとなる。そして、送信元エッジノードは、時刻δｔ１のときに制御パケット群を宛先エッジノード宛に再送信する（ステップ（３））。
【００３７】
そして、中継ノードＡは、送信元エッジノードから制御パケット群を受信すると、衝突が起きていないことを確認し、制御パケット群を中継ノードＢへ転送する（ステップ（４））。そして、中継ノードＢは、中継ノードＡから制御パケット群を受信すると、衝突が起きていないことを確認し、制御パケット群を宛先エッジノードに転送する（ステップ（５））。
【００３８】
そして、宛先エッジノードは、制御パケット群の先頭パケットを受信すると、確認通知を送信元エッジノード宛に送信する（ステップ（６））。なお、「Ｒｅｓｐ（ＯＫ）」は、確認通知を表している。そして、中継ノードＢは、宛先エッジノードから確認通知を受信すると、当該確認通知を中継ノードＡに転送する（ステップ（７））。同様に、中継ノードＡは、中継ノードＡから確認通知を受信すると、当該送信元エッジノードに転送する（ステップ（８））。そして、送信元エッジノードは、制御スロットの時間内に、宛先エッジノードからの確認通知を受信し、データパケットの送信予約が完了する。
【００３９】
次に、図１３乃至図２１を用いて、図１に示したネットワークシステムの処理の詳細を説明する。最初に、図１３及び図１４を用いて、外部ネットワークからパケットを受信した際のエッジルータ１の処理を説明する。まず、パケット受信部１１は、通信部１９を介して外部ネットワークからパケットを受信し（図１３：ステップＳ１）、パケット分類部１２に出力する。そして、パケット分類部１２は、パケット受信部１１からパケットを受信すると、格納先となるキュー１２１が存在しているか判断する（ステップＳ３）。具体的には、受信したパケットのＩＰヘッダから宛先ＩＰアドレスを取得し、宛先ＩＰアドレスを用いて、宛先ノードテーブル格納部１３に格納されている宛先ノードテーブルを検索し、宛先エッジノードを特定する。そして、特定された宛先エッジノードの識別子を用いて、キュー管理テーブル格納部１４に格納されているキュー管理テーブルを検索する。特定された宛先エッジノードの識別子がキュー管理テーブルに登録されていれば、格納先となるキュー１２１が存在していると判断する。なお、キュー管理テーブルにおいて、特定された宛先エッジノードの識別子に対応付けて格納されているキューＩＤを持つキュー１２１が格納先となる。一方、特定された宛先エッジノードの識別子がキュー管理テーブルに登録されていなければ、格納先となるキュー１２１が存在していないと判断する。格納先となるキュー１２１が存在すると判断された場合（ステップＳ３：Ｙｅｓルート）、パケット分類部１２は、格納先となるキュー１２１にパケットを格納し（ステップＳ５）、処理を終了する。なお、キュー１２１に格納されたパケットは、スケジュールＤＢ１６に格納されているデータに従って、スケジューラ１５により、宛先エッジノード宛に送信される。
【００４０】
一方、格納先となるキュー１２１が存在していないと判断された場合（ステップＳ３：Ｎｏルート）、パケット分類部１２は、格納先となるキュー１２１を生成し、当該キュー１２１にパケットを格納する（ステップＳ７）。また、パケット分類部１２は、生成したキュー１２１を識別するためのキューＩＤと、宛先エッジノードの識別子とを含む新たなレコードをキュー管理テーブル格納部１４のキュー管理テーブルに登録する（ステップＳ９）。そして、パケット分類部１２は、生成したキュー１２１に格納されているパケットの送信予約を行うようスケジューラ１５に指示する。この際、パケット分類部１２は、生成したキュー１２１のキューＩＤと宛先エッジノードの識別子とをスケジューラ１５に出力する。
【００４１】
そして、スケジューラ１５は、パケット分類部１２からパケットの送信予約を行う旨の指示と共に、キューＩＤと宛先エッジノードの識別子とを受信すると、スケジュールＤＢ１６に新たなレコード（以下、予約対象レコードと呼ぶ）を追加し、キューＩＤと宛先エッジノードの識別子とを設定する。そして、スケジューラ１５は、宛先エッジノードまでの通信経路の問い合わせを制御線を介して管理サーバ５に送信する（ステップＳ１１）。この問い合わせには、送信元エッジノードの識別子（すなわち、自エッジノードの識別子）と宛先エッジノードの識別子とが含まれる。そして、スケジューラ１５は、通信経路の問い合わせに対する応答として管理サーバ５から通信経路情報を受信すると（ステップＳ１３）、受信した通信経路情報を、スケジュールＤＢ１６における予約対象レコードに設定する。また、スケジューラ１５は、パケットを出力すべきＩＦの識別情報をスケジュールＤＢ１６における予約対象レコードに設定する。なお、いずれのＩＦに出力すべきかは通信経路情報から特定される。その後、スケジューラ１５と送信タイミング計算部１７と応答信号受信部１８とが、スケジュールＤＢ１６における予約対象レコードを用いて送信予約処理を実施する（ステップＳ１５）。その後、処理を終了する。なお、送信予約処理については図１４を用いて説明する。
【００４２】
まず、スケジューラ１５が、スケジュールＤＢ１６に格納されているデータを用いて、送信タイミングと送信時間とを決定し、さらに新たなスロットＩＤを割り振る（図１４：ステップＳ２１）。スケジューラ１５は、送信タイミングと送信時間とスロットＩＤとをスケジュールＤＢ１６内の予約対象レコードに設定する。また、スケジューラ１５は、予約対象レコードにおける調整時間の累計の値を０に初期化する（ステップＳ２２）。そして、スケジューラ１５は、決定された送信タイミングで、スケジュールＤＢ１６内の予約対象レコードに設定されているデータを用いて、図６（ａ）に示したような制御パケット群を宛先エッジノード宛に送信する（ステップＳ２３）。より具体的には、予約対象レコードに設定されているスロットＩＤ及び通信経路情報と予約を表すデータとを制御パケットに設定し、当該制御パケットを含む制御パケット群を、予約対象レコードに設定されている出力ＩＦに出力する。
【００４３】
その後、応答信号受信部１８が、制御パケット群に対する応答として確認通知又は衝突発生通知を受信し（ステップＳ２５）、受信した確認通知又は衝突発生通知を送信タイミング計算部１７に出力する。なお、通信経路中のどの中継ノードにおいても衝突が起こらなければ、応答信号受信部１８は、制御パケット群に対する応答として、宛先エッジノードからの確認通知を受信することになる。一方、通信経路中の中継ノードにおいて衝突が発生した場合には、応答信号受信部１８は、制御パケット群に対する応答として、衝突が発生した中継ノードからの衝突発生通知を受信することになる。送信タイミング計算部１７は、応答信号受信部１８から確認通知を受信した場合には（ステップＳ２７：Ｙｅｓルート）、スケジュールＤＢ１６内の予約対象レコードにおける調整時間の累計の列に「予約完了」を設定する。この後、スケジューラ１５が、１フレーム先の送信タイミングにて、データパケット群を宛先エッジノード宛に送信する（ステップＳ２９）。そして、処理を終了し、元の処理に戻る。
【００４４】
一方、送信タイミング計算部１７は、応答信号受信部１８から衝突発生通知を受信した場合には（ステップＳ２７：Ｎｏルート）、衝突発生通知から調整時間δｔを取得する（ステップＳ３１）。そして、送信タイミング計算部１７は、取得した調整時間δｔをスケジュールＤＢ１６内の予約対象レコードにおける調整時間の累計の値に加算し（ステップＳ３３）、調整時間の累計の値がフレーム長未満であるか判断する（ステップＳ３５）。調整時間の累計の値がフレーム長以上である場合には（ステップＳ３５：Ｎｏルート）、処理を終了し、元の処理に戻る。なお、調整時間の累計がフレーム長以上であるということは、他のエッジノードの通信状況との関係で、衝突を起こさずに通信できるスロットが存在しないということを意味する。
【００４５】
一方、調整時間の累計の値がフレーム長未満であれば（ステップＳ３５：Ｙｅｓルート）、送信タイミング計算部１７は、スケジュールＤＢ１６内の予約対象レコードに設定されている送信タイミングを調整時間δｔだけ後にシフトさせた新たな送信タイミングを計算し、新たな送信タイミングを予約対象レコードに設定する（ステップＳ３７）。そして、ステップＳ２３の処理に戻る。なお、ステップＳ２３の処理に戻ると、スケジューラ１５により、新たな送信タイミングにて、制御パケット群が再送信される。
【００４６】
次に、図１５を用いて、送信元エッジノードから制御パケット群を受信した際のエッジルータ１の処理を説明する。スケジューラ１５が、通信部１９を介して送信元エッジノードからの制御パケット群の先頭パケットを受信すると（図１５：ステップＳ４１）、確認通知を送信元エッジノード宛に送信する（ステップＳ４３）。なお、通信経路中の中継ノードでは、制御パケット群の最終パケットを受信するまでの間は、自エッジノードと送信元エッジノードとの間でパケットが流れるようにスイッチングされている。従って、送信元エッジノードは、制御スロットの時間内に確認通知を受信することになる。
【００４７】
次に、図１６を用いて、データパケット群を受信した際の中継ルータ３の処理について説明する。スイッチ部３１は、ある入力ＩＦにおいてデータパケット群の先頭パケットを受信すると（図１６：ステップＳ５１）、受信した先頭パケットからスロットＩＤを抽出する（ステップＳ５３）。そして、スイッチ部３１は、中継テーブル格納部３２に格納されている中継テーブルにおいて、抽出したスロットＩＤと入力ＩＦの識別情報とに対応する出力ＩＦを特定する（ステップＳ５５）。そして、スイッチ部３１は、特定された出力ＩＦにデータパケット群を出力する（ステップＳ５７）。その後、スイッチ部３１は、データパケット群の最終パケットを受信したかどうか判断する（ステップＳ５９）。データパケット群の最終パケットを受信していなければ（ステップＳ５９：Ｎｏルート）、ステップＳ５７に戻り、特定された出力ＩＦにデータパケット群を出力し続ける。
【００４８】
一方、データパケット群の最終パケットを受信した場合（ステップＳ５９：Ｙｅｓルート）、スイッチ部３１は、特定された出力ＩＦに最終パケットを出力した後、当該出力ＩＦへの出力を終了する（ステップＳ６１）。そして、処理を終了する。
【００４９】
なお、送信元エッジノードは、制御パケット群を用いて衝突が発生するか確認し、衝突が起こらないタイミングでデータパケット群を送信するようになっている。従って、中継ノードにおいてデータパケット群同士の衝突は起こらないため、バッファレスでデータパケット群を中継することができる。
【００５０】
次に、図１７を用いて、制御パケット群を受信した際の中継ルータ３の処理について説明する。まず、スイッチ部３１が、スロットＩＤと通信経路情報とを含む制御パケットを含む制御パケット群を受信する（図１７：ステップＳ７１）。この際、制御パケット群の先頭パケットの受信開始時刻を記憶装置に記録しておく。そして、衝突検出部３３が、出力先が制御パケット群の出力先と一致するデータパケット群又は他の制御パケット群との衝突が発生したかどうか判断する（ステップＳ７３）。衝突が検出された場合（ステップＳ７３：Ｙｅｓルート）、衝突発生通知部３４が、制御パケット群の先頭パケットの受信開始からデータパケット群の最終パケットの受信終了までの時間である調整時間δｔを算出する（ステップＳ７５）。例えば、データパケット群の最終パケットの受信終了時刻を記憶装置に記録する。そして、記憶装置に記録されている、制御パケット群の先頭パケットの受信開始時刻とデータパケット群の最終パケットの受信終了時刻とから調整時間δｔを計算する。なお、制御パケット群の先頭パケットの受信開始時にタイマ（図示せず）をスタートさせ、データパケット群の終了パケットの受信終了までの時間を計測するようにしてもよい。また、制御パケット群同士の衝突が発生した場合には、後に受信した制御パケット群の先頭パケットの受信開始から、先に受信した制御パケット群の最終パケットの受信終了までの時間を調整時間δｔとして算出する。そして、衝突発生通知部３４は、調整時間δｔを含む衝突発生通知を送信元エッジノード宛に送信する（ステップＳ７７）。なお、衝突が発生した場合には、制御パケット群（制御パケット群同士の衝突の場合には、後に受信した制御パケット群）は廃棄される。その後、処理を終了する。
【００５１】
一方、衝突が検出されなければ（ステップＳ７３：Ｎｏルート）、スイッチ部３１は、スロットＩＤと入力ＩＦの識別情報と通信経路情報から特定される出力ＩＦの識別情報とを中継テーブルに仮登録する（ステップＳ７９）。なお、通信経路中の他の中継ノードにおいて衝突が発生する可能性があるため、ここでは仮登録とする。そして、スイッチ部３１は、受信した制御パケット群を出力ＩＦに出力する（ステップＳ８１）。
【００５２】
その後、スイッチ部３１は、制御パケット群に対する応答として確認通知又は衝突発生通知を受信する（ステップＳ８３）。なお、通信経路中のどの中継ノードにおいても衝突が起こらなければ、スイッチ部３１は、制御パケット群に対する応答として、宛先エッジノードからの確認通知を受信することになる。一方、通信経路中の中継ノードにおいて衝突が発生した場合には、スイッチ部３１は、制御パケット群に対する応答として、衝突が発生した中継ノードからの衝突発生通知を受信することになる。ステップＳ８３において受信した通知が衝突発生通知である場合（ステップＳ８５：Ｙｅｓルート）、スイッチ部３１は、ステップＳ７９において中継テーブルに仮登録したデータを削除する（ステップＳ８７）。その後、ステップＳ８９の処理に移行する。
【００５３】
一方、ステップＳ８３において受信した通知が確認通知である場合には（ステップＳ８５：Ｎｏルート）、ステップＳ８９の処理に移行する。なお、この場合、ステップＳ７９において仮登録したデータを本登録とみなし、送信されてくるデータパケット群の中継に使用する。
【００５４】
そして、スイッチ部３１は、ステップＳ８３において受信した確認通知又は衝突発生通知を送信元エッジノード宛に送信する（ステップＳ８９）。そして、処理を終了する。
【００５５】
以上のような処理を実施することによって、衝突が発生した場合には、調整時間を含む衝突発生通知を送信元エッジノードに通知するので、送信元エッジノードは送信タイミングを適切に調整できるようになる。また、スロットＩＤと入出力ＩＦの識別情報とを中継テーブルに登録しておくことで、この後送信されてくるデータパケット群をバッファレスで中継できるようになる。
【００５６】
なお、上で述べた衝突発生通知及び確認通知については、例えばＩＰパケットのＩＰヘッダに含まれるオプションフィールドを利用するようにしてもよい。図１８に、ＩＰパケット及びＩＰヘッダの模式図を示す。なお、ＩＰヘッダは周知であるから詳しく述べないが、送信側ＩＰアドレス、受信側ＩＰアドレス、オプションフィールドなどを含むようになっている。例えば衝突発生通知の場合、図１９（ａ）に示すようなデータをオプションフィールドに設定するようにする。図１９（ａ）では、オプションフィールドには、「タイプ」と、「長さ」と、「信号種別」と、「時間単位」と、「調整時間」とが含まれる。ここでは、オプションフィールドの内容が「衝突・確認信号」であることを表すコードを新たに用意し、当該コードを「タイプ」に設定するようにする。また、「長さ」は、オプションフィールドのデータ長（単位：バイト）を表す。また、「信号種別」には、１（＝衝突発生通知）を設定するようにする。また、「時間単位」は、調整時間の単位（０：ｓ、１：ｍｓ、２：μｓ）を表す。また、「調整時間」は、０〜２32の範囲内の値で表される。
【００５７】
また、例えば確認通知の場合、図１９（ｂ）に示すようなデータをオプションフィールドに設定する。図１９（ｂ）の例では、オプションフィールドには、「タイプ」と、「長さ」と、「信号種別」と、「パディング」とが含まれる。なお、「タイプ」及び「長さ」は、衝突発生通知の場合と同じである。また、確認通知の場合には、「信号種別」には、０（＝確認通知）を設定するようにする。
【００５８】
なお、上では、中継ノードが２つのエッジノードと接続されるようなネットワーク構成を示したが、中継ノードが３以上のエッジノードと接続されるような場合もある。図２０に、例えば中継ノードが３つのエッジノードと接続されるネットワーク構成の一例を示す。図２０では、中継ノード３Ａはエッジノード１Ａとエッジノード１Ｂとエッジノード１Ｃと中継ノード３Ｂと接続され、中継ノード３Ｂはエッジノード１Ｄと接続されている。なお、図２０では、エッジノード１Ｃとエッジノード１Ｄとの通信については事前に予約が完了しているものとし、エッジノード１Ａとエッジノード１Ｂとは、エッジノード１Ｃ宛に制御パケット群を送信しようとしているものとする。
【００５９】
ここで、例えば図２１に示すような衝突が中継ノード３Ａにおいて発生したものとする。図２１では、中継ノード３Ａがエッジノード１Ｃからのデータパケット群を受信している間に、エッジノード１Ａからの制御パケット群とエッジノード１Ｂからの制御パケット群とを受信したことを示している。この場合、中継ノード３Ａは、エッジノード１Ａ及び１Ｂからの制御パケット群のうち、先に受信した制御パケット群（図２１ではエッジノード１Ａからの制御パケット群）については、エッジノード１Ａからの制御パケット群の先頭パケットの受信開始からデータパケット群の最終パケットの受信終了までの時間Ｔ1（＝δｔ１）を算出し、調整時間δｔ１を含む衝突発生通知をエッジノード１Ａに送信する。
【００６０】
一方、後に受信した制御パケット群（図２１ではエッジノード１Ｂからの制御パケット群）については、ステップＳ７５において、エッジノード１Ｂからの制御パケット群の先頭パケットの受信開始からデータパケット群の最終パケットの受信終了までの時間Ｔ2を算出し、Ｔ2とエッジノード１Ａからの制御パケット群の長さＴSLとの和を調整時間δｔ２として算出するようにすればよい。例えばＴ2を調整時間δｔ２とすると、エッジノード１Ａとエッジノード１Ｂとから調整後の送信タイミングで再送信される制御パケット群が衝突を起こすことになるためである。そして、この調整時間δｔ２を含む衝突発生通知をエッジノード１Ｂに送信するようにすればよい。
【００６１】
［実施の形態２］
次に、図２２乃至図２６を用いて、第２の実施の形態について説明する。なお、本実施の形態では、衝突が発生した場合、中継ノードが衝突発生通知を送信元エッジノードに送信すると共に、データパケット群の最終パケットの受信終了後に制御パケット群を次の中継ノードに送信するようにする。これにより、調整時間分ずらしたタイミングで通信可能かどうかを先行して調べる。
【００６２】
図２２に、本実施の形態におけるシーケンス例を示す。なお、図２２は、衝突発生時のシーケンス例を示している。まず、送信元エッジノードが、時刻０（すなわち、フレーム開始時刻）のときに制御パケット群を宛先エッジノード宛に送信する（図２２：ステップ（１１））。なお、図２２における「Ｒｅｑ」は、制御パケット群の先頭パケットを表している。また、括弧内の数値は、送信タイミングを表している。ここでは、中継ノードＡにおいて衝突が発生したものとする。そうすると、中継ノードＡは、調整時間δｔ１を含む衝突発生通知を送信元エッジノードに送信すると共に、調整時間δｔ１ずらしたタイミングで制御パケット群を中継ノードＢに送信する（ステップ（１２）及び（１３））。図２２の例では、時刻０のときに送信元エッジノードから制御パケット群が送信され、同一フレーム内の時刻δｔ１のときに中継ノードＡから制御パケット群が送信されることになる。なお、「Ｒｅｓｐ（ＮＧ，δｔ１）」は、調整時間δｔ１を含む衝突発生通知を表している。
【００６３】
そして、中継ノードＢは、中継ノードＡから制御パケット群を受信すると、衝突が起きていないことを確認し、制御パケット群を宛先エッジノードに転送する（ステップ（１４））。そして、宛先エッジノードは、制御パケット群の先頭パケットを受信すると、確認通知を送信元エッジノード宛に送信する（ステップ（１５））。なお、「Ｒｅｓｐ（ＯＫ）」は、確認通知を表している。そして、中継ノードＢは、宛先エッジノードから確認通知を受信すると、当該確認通知を中継ノードＡに転送する（ステップ（１６））。
【００６４】
また、送信元エッジノードは、制御スロットの時間内に、中継ノードＡから調整時間δｔ１を含む衝突発生通知を受信すると、調整時間δｔ１を用いて新たな送信タイミングを計算する。ここでは、元の送信タイミングが時刻０であったため、δｔ１が新たな送信タイミングとなる。そして、送信元エッジノードは、時刻δｔ１のときに制御パケット群を宛先エッジノード宛に再送信する（ステップ（１７））。そして、中継ノードＡは、送信元エッジノードからの制御パケット群と、中継ノードＢからの確認通知とを受信すると、確認通知を送信元エッジノードに送信する（ステップ（１８））。そして、送信元エッジノードは、制御スロットの時間内に、宛先エッジノードからの確認通知を受信し、データパケットの送信予約が完了する。
【００６５】
図２３に、本実施の形態における中継ルータ３の機能ブロックを示す。なお、本実施の形態についても図１に示したようなネットワークシステム１００を想定する。また、エッジルータ１及び管理サーバ５の機能ブロック図は、第１の実施の形態のものと同じである。
【００６６】
本実施の形態における中継ルータ３は、スイッチ部３１と、中継テーブル格納部３２と、衝突検出部３３と、衝突発生通知部３４と、バッファ３５と、制御部３６とを有する。なお、スイッチ部３１と、中継テーブル格納部３２と、衝突検出部３３と、衝突発生通知部３４とは、基本的には第１の実施の形態と同じものである。但し、本実施の形態では、スイッチ部３１は、受信した制御パケット群をコピーしてバッファ３５に一時的に格納する。また、衝突検出部３３は、衝突を検出した場合には、その旨を制御部３６に通知する。制御部３６は、衝突検出部３３から衝突が発生した旨の通知を受信すると、データパケット群の最終パケットの受信終了後に、バッファ３５に一時的に保管されている制御パケット群をスイッチ部３１を介して出力ＩＦに出力する。
【００６７】
図２４乃至図２６を用いて、制御パケット群を受信した際の中継ルータ３の処理について説明する。なお、他の処理については、基本的には第１の実施の形態と同じである。まず、スイッチ部３１が、スロットＩＤと通信経路情報とを含む制御パケットを含む制御パケット群を受信する（図２４：ステップＳ９１）。この際、制御パケット群の先頭パケットの受信開始時刻を記憶装置に記録しておく。また、スイッチ部３１は、受信した制御パケット群をコピーしてバッファ３５に格納する。そして、衝突検出部３３が、出力先が制御パケット群の出力先と一致するデータパケット群又は他の制御パケット群との衝突が発生したかどうか判断する（ステップＳ９３）。衝突が検出されなければ（ステップＳ９３：Ｎｏルート）、スイッチ部３１は、スロットＩＤと入力ＩＦの識別情報と通信経路情報から特定される出力ＩＦの識別情報とを中継テーブルに仮登録する（ステップＳ９５）。そして、スイッチ部３１は、受信した制御パケット群を出力ＩＦに出力する（ステップＳ９７）。
【００６８】
その後、スイッチ部３１は、ステップＳ９７において出力した制御パケット群に対する応答として確認通知又は衝突発生通知を受信する（ステップＳ９９）。なお、通信経路中のどの中継ノードにおいても衝突が起こらなければ、スイッチ部３１は、制御パケット群に対する応答として、宛先エッジノードからの確認通知を受信することになる。一方、通信経路中の中継ノードにおいて衝突が発生した場合には、スイッチ部３１は、制御パケット群に対する応答として、衝突が発生した中継ノードからの衝突発生通知を受信することになる。ステップＳ９９において受信した通知が衝突発生通知である場合（ステップＳ１０１：Ｙｅｓルート）、スイッチ部３１は、ステップＳ９５において中継テーブルに仮登録したデータを削除する（ステップＳ１０３）。その後、ステップＳ１０５の処理に移行する。
【００６９】
一方、ステップＳ９９において受信した通知が確認通知である場合には（ステップＳ１０１：Ｎｏルート）、ステップＳ１０５の処理に移行する。なお、この場合、ステップＳ９５において仮登録したデータを本登録とみなし、送信されてくるデータパケット群の中継に使用する。
【００７０】
そして、スイッチ部３１は、ステップＳ９９において受信した確認通知又は衝突発生通知を送信元エッジノード宛に送信する（ステップＳ１０５）。なお、衝突が検出されなかった際の処理（ステップＳ９５乃至Ｓ１０５）は、第１の実施の形態における処理（ステップＳ７９乃至Ｓ８９）と同じである。その後、端子Ａを介して図２６に移行し、処理を終了する。
【００７１】
一方、衝突が検出された場合（ステップＳ９３：Ｙｅｓルート）、処理は端子Ｂを介して図２５に移行する。
【００７２】
図２５の説明に移行して、端子Ｂの後、衝突発生通知部３４が、制御パケット群の先頭パケットの受信開始からデータパケット群の最終パケットの受信終了までの時間である調整時間δｔを算出する（図２５：ステップＳ１０７）。そして、衝突発生通知部３４は、調整時間δｔを含む衝突発生通知を送信元エッジノード宛に送信する（ステップＳ１０９）。なお、ステップＳ１０７及びＳ１０９は、上で説明したステップＳ７５及びＳ７７と同じであるため、ここでは詳細な説明は省略する。
【００７３】
その後、制御部３６が、衝突していたデータパケット群の最終パケットの受信終了後に、バッファ３５に格納されている制御パケット群をスイッチ部３１を介して出力ＩＦに出力する（ステップＳ１１１）。制御パケット群同士の衝突の場合には、先に受信した制御パケット群の最終パケットの受信終了後に、バッファ３５に格納されている制御パケット群（すなわち、後に受信した制御パケット群）をスイッチ部３１を介して出力ＩＦに出力する。そして、制御部３６は、内部状態を「応答待ち」に設定する（ステップＳ１１３）。
【００７４】
なお、ステップＳ１０９において衝突発生通知を送信元エッジノードに送信しているので、この後、送信元エッジノードから新たな送信タイミングで再送信される制御パケット群を受信することになる。また、ステップＳ１１１において制御パケット群を出力ＩＦに出力しているので、この制御パケット群に対する応答として、確認通知又は衝突発生通知を受信することになる。
【００７５】
そして、制御部３６は、送信元エッジノードから再送信される制御パケット群を受信したかどうか判断する（ステップＳ１１５）。送信元エッジノードから再送信される制御パケット群を受信したと判断された場合（ステップＳ１１５：Ｙｅｓルート）、処理は端子Ｃを介して図２６に移行する。
【００７６】
一方、送信元エッジノードから再送信される制御パケット群を受信していないと判断された場合（ステップＳ１１５：Ｎｏルート）、制御部３６は、ステップＳ１１１において出力した制御パケット群に対する応答（すなわち、確認通知又は衝突発生通知）を受信したかどうか判断する（ステップＳ１１７）。制御パケット群に対する応答を受信していないと判断された場合には（ステップＳ１１７：Ｎｏルート）、ステップＳ１１５に戻る。
【００７７】
一方、制御パケット群に対する応答を受信したと判断された場合（ステップＳ１１７：Ｙｅｓルート）、制御部３６は、制御パケット群に対する応答として衝突発生通知を受信したかどうか判断する（ステップＳ１１９）。制御パケット群に対する応答として衝突発生通知を受信した場合（ステップＳ１１９：Ｙｅｓルート）、制御部３６は、内部状態を「応答ＮＧ」に設定する（ステップＳ１２１）。その後、処理はステップＳ１１５に戻る。一方、制御パケット群に対する応答として確認通知を受信した場合（ステップＳ１１９：Ｎｏルート）、制御部３６は、内部状態を「応答ＯＫ」に設定する（ステップＳ１２３）。その後、処理はステップＳ１１５に戻る。なお、制御部３６は、受信した確認通知又は衝突発生通知をバッファ３５に格納しておく。
【００７８】
図２６の説明に移行して、端子Ｃの後、制御部３６は、内部状態が「応答待ち」であるかどうか判断する（図２６：ステップＳ１２５）。上で説明したように、ステップＳ１１１において出力した制御パケット群に対する応答を受信した場合には、ステップＳ１２１又はＳ１２３の処理が実施され、内部状態は「応答ＮＧ」又は「応答ＯＫ」に設定される。従って、制御パケット群に対する応答を本ステップより前に受信している場合には、内部状態は「応答ＮＧ」又は「応答ＯＫ」となっており、制御パケット群に対する応答を本ステップより前に受信していなければ、内部状態は「応答待ち」となっている。内部状態が「応答待ち」ではない場合（ステップＳ１２５：Ｎｏルート）、すなわち内部状態が「応答ＮＧ」又は「応答ＯＫ」である場合には、ステップＳ１３３の処理に移行する。
【００７９】
一方、内部状態が「応答待ち」である場合（ステップＳ１２５：Ｙｅｓルート）、制御部３６は、一定時間経過後、内部状態を再確認する（ステップＳ１２７）。なお、図２６では図示していないが、一定時間経過するまでの間に、制御パケット群に対する応答を受信した場合には、本ステップの処理とは別スレッドで上で説明したステップＳ１１７乃至Ｓ１２３の処理が実施されるようになっているものとする。従って、正常動作中であれば、一定時間経過するまでの間に、制御パケット群に対する応答を受信し、ステップＳ１２１又はＳ１２３の処理によって、内部状態が「応答ＮＧ」又は「応答ＯＫ」に設定されるはずである。そして、制御部３６が一定時間経過後に内部状態を再確認した結果、内部状態が「応答待ち」ではない場合（ステップＳ１２９：Ｎｏルート）、ステップＳ１３３の処理に移行する。
【００８０】
一方、一定時間経過後に内部状態を再確認した結果、内部状態が「応答待ち」のままである場合（ステップＳ１２９：Ｙｅｓルート）、制御部３６は、一定時間経過しても応答が返ってこないため、異常状態と判断する。そして、制御部３６は、異常発生通知を送信元エッジノード宛に送信する（ステップＳ１３１）。その後、処理を終了する。
【００８１】
また、ステップＳ１３３の処理に移行して、制御部３６は、内部状態が「応答ＯＫ」であるかどうか判断する（ステップＳ１３３）。内部状態が「応答ＯＫ」であると判断された場合（ステップＳ１３３：Ｙｅｓルート）、制御部３６は、スロットＩＤと入力ＩＦの識別情報と通信経路情報から特定される出力ＩＦの識別情報とを中継テーブルに登録する（ステップＳ１３５）。なお、内部状態が「応答ＯＫ」であると判断されるのは、ステップＳ１１１において出力した制御パケット群に対する応答として確認通知を受信している場合である。そして、制御部３６は、バッファ３５に格納してある確認通知を送信元エッジノード宛に送信する（ステップＳ１３７）。その後、処理を終了する。
【００８２】
一方、内部状態が「応答ＯＫ」ではないと判断された場合（ステップＳ１３３：Ｎｏルート）、すなわち内部状態が「応答ＮＧ」であると判断された場合、ステップＳ１３９の処理に移行する。なお、内部状態が「応答ＮＧ」であると判断されるのは、ステップＳ１１１において出力した制御パケット群に対する応答として衝突発生通知を受信している場合である。そして、制御部３６は、バッファ３５に格納してある衝突発生通知を送信元エッジノード宛に送信する（ステップＳ１３９）。その後、処理を終了する。
【００８３】
以上のような処理を実施することによって、通信経路中の他の中継ノードにおいて衝突が発生するかどうかを先行して調べることができる。
【００８４】
［実施の形態３］
次に、図２７乃至図３７を用いて、第３の実施の形態について説明する。なお、本実施の形態では、送信元エッジノードが、データパケットの送信に利用可能な期間を表すデータを含む制御パケットを出力し、通信経路中の中継ノードでは、利用可能期間と自ノードの空き期間とで重複する期間を残して次の中継ノードに出力するようにする。そして、最終的に残った期間を送信元エッジノードに返し、送信元エッジノードは、最終的に残った期間から送信タイミングを決定する。なお、エッジノード及び中継ノードは、管理サーバ５からフレーム長を表すデータを受信し、そのフレーム長に従って動作する。但し、各ノードのフレーム開始タイミングは同期されていないものとする。
【００８５】
図２７に、本実施の形態におけるシーケンス例を示す。まず、送信元エッジノードが、制御パケット群を宛先エッジノード宛に送信する（図２７：ステップ（２１））。制御パケット群には、データパケット群の送信に利用可能な期間を表すデータと通信経路情報とを含む制御パケットが含まれる。ここでは、制御パケットには、０からＴｍａｘまでの期間が利用可能期間として設定されているものとする。なお、図２７における「Ｒｅｑ」は、制御パケット群の先頭パケットを表している。
【００８６】
そして、中継ノードＡは、制御パケット群を受信すると、制御パケットに設定されている利用可能期間と、通信経路情報から特定される出力ＩＦの空き期間との重複期間を特定する。ここでは、Ｔ１からＴｍａｘまでの期間が重複期間として特定されたものとする。そして、中継ノードＡは、重複期間を制御パケットに設定し、制御パケット群を中継ノードＢに出力する（ステップ（２２））。
【００８７】
そして、中継ノードＢは、制御パケット群を受信すると、制御パケットに設定されている利用可能期間と、通信経路情報から特定される出力ＩＦの空き期間との重複期間を特定する。ここでは、Ｔ２からＴｍａｘまでの期間が重複期間として特定されたものとする。そして、中継ノードＢは、重複期間を制御パケットに設定し、制御パケット群を宛先エッジノードに出力する（ステップ（２３））。
【００８８】
宛先エッジノードは、中継ノードＢから制御パケット群を受信すると、最終的に残った期間（Ｔ２〜Ｔｍａｘ）を設定した応答パケットを送信元エッジノード宛に送信する（ステップ（２４））。なお、図２７における「Ｒｅｓｐ」は、応答パケットを表している。そして、中継ノードＢは、宛先エッジノードから応答パケットを受信すると、中継ノードＡに転送する（ステップ（２５））。また、中継ノードＡは、中継ノードＢから応答パケットを受信すると、送信元エッジノードに転送する（ステップ（２６））。
【００８９】
そして、送信元エッジノードは、応答パケットを受信すると、応答パケットに設定されている期間から送信タイミングを決定し、データパケットの送信を行う。なお、詳細は後で説明するが、各ノードのフレーム開始タイミングは同期されていないので、ノード間の時間差を考慮して重複期間を特定する。
【００９０】
図２８に、本実施の形態における中継ルータ３の機能ブロックを示す。なお、本実施の形態についても図１に示したようなネットワークシステム１００を想定する。また、エッジルータ１及び管理サーバ５の機能ブロック図は、第１の実施の形態のものと同じである。
【００９１】
本実施の形態における中継ルータ３は、スイッチ部３１と、中継テーブル格納部３２と、衝突検出部３３と、時間差計算部３７と、シフト時間格納部３８と、期間データ処理部３９とを有する。なお、スイッチ部３１と、衝突検出部３３とは、基本的には第１の実施の形態と同じものである。但し、本実施の形態では、スイッチ部３１は、受信した制御パケット群を期間データ処理部３９に出力したり、制御パケット群の先頭パケットの受信開始通知を時間差計算部３７に出力したりする。また、衝突検出部３３は、衝突を検出した場合には、その旨を期間データ処理部３９に通知する。また、時間差計算部３７は、スイッチ部３１から受信開始通知を受信すると、自ノードにおけるフレーム開始時刻から制御パケット群の先頭パケットの受信開始までの時間（以下、シフト時間と呼ぶ）を計算し、シフト時間格納部３８に格納する。また、期間データ処理部３９は、スイッチ部３１から制御パケット群を受信すると、中継テーブル格納部３２及びシフト時間格納部３８に格納されているデータとを用いて、制御パケットに設定されてる利用可能期間と空き期間との重複期間を特定するための処理を実施する。また、期間データ処理部３９は、重複期間を制御パケットに設定し、制御パケット群をスイッチ部３１を介して出力ＩＦに出力する。
【００９２】
本実施の形態における中継テーブル格納部３２には、例えば図２９に示すような中継テーブルが格納される。図２９の例では、中継テーブルには、スロットＩＤの列と、入力ＩＦの列と、出力ＩＦの列と、予約期間の列とが含まれる。例えば、スロットＩＤ「１」が割り当てられているパケット送信については、時刻ｔ１から時刻ｔ２までの期間が予約されており、ｅｔｈ１のＩＦから入力されるデータパケットを、ｅｔｈ２のＩＦへ出力することを示している。なお、予約期間は、その中継ノードにおけるフレーム開始時刻を基準にした時刻で表される。
【００９３】
また、シフト時間格納部３８には、例えば図３０に示すようなデータが格納される。図３０の例では、シフト時間格納部３８には、送信元エッジノードのアドレスと、宛先エッジノードのアドレスと、シフト時間とが格納されるようになっている。
【００９４】
次に、外部ネットワークからパケットを受信した際のエッジルータ１の処理を説明する。なお、メインの処理フローは、上で説明した図１３と同じであるが、ステップＳ１５において、図１４に示した送信予約処理の代わりに、図３１に示すような処理（以下、送信予約処理２と呼ぶ）を実施する。以下、送信予約処理２について説明する。
【００９５】
まず、スケジューラ１５が、制御パケット群の送信予定時刻を決定し、新たなスロットＩＤを割り振る（図３１：ステップＳ１４１）。スケジューラ１５は、割り振ったスロットＩＤをスケジュールＤＢ１６内の予約対象レコードに設定する。そして、スケジューラ１５は、スケジュールＤＢ１６に格納されているデータを用いて、決定された送信予定時刻を基準にデータパケット群の送信に利用可能な期間を表すデータ（以下、利用可能期間データとも呼ぶ）を生成する（ステップＳ１４３）。
【００９６】
そして、スケジューラ１５は、決定された送信予定時刻で、利用可能区間データとスロットＩＤと通信経路情報とを含む制御パケットを含む制御パケット群を宛先エッジノード宛に送信する（ステップＳ１４５）。
【００９７】
その後、応答信号受信部１８は、通信経路中の中継ノードにおいて衝突せずにデータパケット群を送信することが可能な送信可能期間を表すデータを含む応答パケットを受信し（ステップＳ１４７）、送信タイミング計算部１７に出力する。
【００９８】
そして、送信タイミング計算部１７は、応答信号受信部１８から応答パケットを受信すると、応答パケットに含まれる送信可能期間から、データパケット群の送信に用いる送信期間（すなわち、送信タイミング及び送信時間）を決定する（ステップＳ１４９）。なお、送信タイミング計算部１７は、送信タイミング及び送信時間をスケジュールＤＢ１６内の予約対象レコードに設定し、調整時間の累計の列に「予約完了」を設定する。
【００９９】
この後、スケジューラ１５が、１フレーム先の送信期間において、データパケット群を宛先エッジノード宛に送信する（ステップＳ１５１）。この際、データパケット群の先頭パケットには、スケジュールＤＢ１６内の予約対象レコードに含まれるスロットＩＤを設定する。そして、処理を終了し、元の処理に戻る。
【０１００】
なお、利用可能期間データ及び送信可能期間データについては、ＩＰヘッダのオプションフィールドに設定するようにしてもよい。この場合、例えば図３２に示すようなデータをオプションフィールドに設定するようにする。図３２の例では、オプションフィールドには、「タイプ」と、「長さ」と、「信号種別」と、「時間単位」と、「期間１の開始時刻」と、「期間１の終了時刻」と、・・・とが含まれる。なお、オプションフィールドの内容が、利用可能期間データ又は送信可能期間データであることを表すコードを新たに用意し、当該コードを「タイプ」に設定するようにする。また、「長さ」は、オプションフィールドのデータ長（単位：バイト）を表す。また、「信号種別」には、０（＝制御パケット）、１（＝応答パケット）を設定するようにする。また、「時間単位」は、調整時間の単位（０：ｓ、１：ｍｓ、２：μｓ）を表す。また、例えば利用可能期間（もしくは送信可能期間）が連続する１つの期間であれば、「期間１の開始時刻」及び「期間１の終了時刻」のみが設定される。一方、複数の期間に分断されているような場合には、各期間について「開始時刻」及び「終了時刻」が設定される。
【０１０１】
次に、図３３乃至図３５を用いて、制御パケット群を中継する際の中継ルータ３の処理について説明する。まず、スイッチ部３１が、データパケット群の送信に利用可能な期間を表すデータとスロットＩＤと通信経路情報とを含む制御パケットを含む制御パケット群を受信する（ステップＳ１６１）。この際、スイッチ部３１は、制御パケット群の先頭パケットの受信開始時刻と制御パケットとを時間差計算部３７に出力すると共に、制御パケットを期間データ処理部３９に出力する。
【０１０２】
そして、時間差計算部３７は、スイッチ部３１から受信開始時刻及び制御パケットを受信すると、自中継ノードにおけるフレーム開始から制御パケット群の先頭パケットの受信開始までのシフト時間を計算し、シフト時間格納部３８に格納する（ステップＳ１６３）。なお、時間差計算部３７は、制御パケットのＩＰヘッダに設定されている送信元エッジノードのアドレスと宛先エッジノードのアドレスとに対応付けて、シフト時間をシフト時間格納部３８に格納する
【０１０３】
そして、期間データ処理部３９は、スイッチ部３１から制御パケットを受信すると、制御パケットに含まれる通信経路情報から出力ＩＦを特定し、中継テーブル格納部３２に格納されているデータから、特定された出力ＩＦの空き期間を特定する（ステップＳ１６５）。具体的には、中継テーブル格納部３２から、特定された出力ＩＦの識別情報を含むレコードを抽出し、抽出されたレコードに設定されている予約期間以外の期間を空き期間として特定する。そして、期間データ処理部３９は、出力ＩＦの空き期間を基準に、利用可能な期間をシフト時間だけシフトさせた上で出力ＩＦの空き期間と利用可能な期間との重複期間を特定する（ステップＳ１６７）。本ステップの処理内容を図３４に模式的に示す。
【０１０４】
図３４の例では、１フレームが１００ｍｓであり、期間１（開始時刻：５０ｍｓ、終了時刻：１００ｍｓ）が利用可能期間として制御パケットに設定されているものとする。なお、図３４における「Ｒｅｑ」は、制御パケットを表している。また、制御パケット群の先頭パケットの受信開始時刻は５０ｍｓであるものとし、出力ＩＦの空き期間として時刻０から時刻２０までの期間が特定されたものとする。ここで、シフト時間は５０ｍｓであり、出力ＩＦの空き期間を基準に利用可能期間をシフト時間だけシフトさせると、図３４に示すようになり、時刻０から時刻２０までの期間が重複期間として特定される。
【０１０５】
なお、出力ＩＦの空き期間と利用可能期間とで重複している部分がなかった場合には（ステップＳ１６９：Ｙｅｓルート）、期間データ処理部３９は、衝突発生通知を送信元エッジノード宛に送信する（ステップＳ１７１）。本実施の形態では、衝突発生通知を送信することで、送信可能期間がないことを送信元エッジノードに知らせる。そして、処理を終了する。
【０１０６】
一方、出力ＩＦの空き期間と利用可能期間とで重複している部分があった場合には（ステップＳ１６９：Ｎｏルート）、端子Ｄを介して図３５に移行する。
【０１０７】
図３５の説明に移行して、端子Ｄの後、期間データ処理部３９は、重複期間を表すデータを制御パケットに設定し、制御パケット群をスイッチ部３１を介して出力ＩＦに出力する（ステップＳ１７３）。例えば図３４の例では、開始時刻：０、終了時刻：２０が制御パケットに設定される。
【０１０８】
そして、期間データ処理部３９は、スロットＩＤと入力ＩＦの識別情報と出力ＩＦの識別情報とを中継テーブル格納部３２に登録し、重複期間を予約期間として中継テーブル格納部３２に登録する（ステップＳ１７５）。なお、この時点では、重複期間のうちいずれの部分が実際にデータパケット群の送信に使用されるか分からないため、重複期間を予約期間として登録する。
【０１０９】
その後、スイッチ部３１は、制御パケット群に対する応答として、送信可能期間を表すデータを含む応答パケット又は衝突発生通知を受信し（ステップＳ１７７）、期間データ処理部３９に出力する。なお、制御パケット群が宛先エッジノードまで到達した場合には、スイッチ部３１は、宛先エッジノードから応答パケットを受信することになる。一方、通信経路中の中継ノードにおいて重複期間がないと判断された場合には、スイッチ部３１は、中継ノードから衝突発生通知を受信することになる。
【０１１０】
そして、期間データ処理部３９は、スイッチ部３１から衝突発生通知を受信した場合には（ステップＳ１７９：Ｙｅｓルート）、ステップＳ１７５において中継テーブルに登録したデータを削除する（ステップＳ１８１）。そして、期間データ処理部３９は、衝突発生通知を送信元エッジノード宛に送信する（ステップＳ１８３）。その後、端子Ｅを介して図３３に戻り、処理を終了する。
【０１１１】
一方、期間データ処理部３９は、スイッチ部３１から応答パケットを受信した場合には（ステップＳ１７９：Ｎｏルート）、応答パケットのＩＰヘッダに含まれる送信側ＩＰアドレス及び受信側ＩＰアドレスを用いてシフト時間格納部３８を検索し、送信元エッジノード及び宛先エッジノードのアドレスに対応するシフト時間を用いて、送信可能期間を更新する（ステップＳ１８５）。本ステップの処理については図３４を用いて具体的に説明する。
【０１１２】
図３４において、中継ノードＡは、０ｍｓから２０ｍｓまでの期間を重複期間として特定し、当該重複期間（開始時刻：０ｍｓ、終了時刻：２０ｍｓ）を制御パケットに設定して次のノードに出力するようになっている。その後、例えば、中継ノードＡが、送信可能期間（開始時刻：０、終了時刻：２０）を表すデータを含む応答パケットを受信したものとする。図３４に示すように、中継ノードＡにおける時刻０から時刻２０までの期間は、送信元における時刻５０から時刻７０までの期間に該当する。従って、中継ノードＡは、送信可能期間を送信元における時刻に直してから応答パケットを送信元に出力するようにする。図３４の例では、シフト時間として５０ｍｓが算出されており、送信可能期間の開始時刻は、０−５０＝−５０ｍｓとなり、終了時刻は、２０−５０＝−３０ｍｓとなる。ここで、１フレームが１００ｍｓであったとすると、開始時刻は、ｍｏｄ（−５０，１００）＝５０ｍｓとなり、終了時刻は、ｍｏｄ（−３０，１００）＝７０となる。
【０１１３】
そして、期間データ処理部３９は、更新後の送信可能期間を表すデータを応答パケットに設定し、当該応答パケットを送信元エッジノード宛に送信する（ステップＳ１８７）。図３４の例では、中継ノードＡは、送信可能期間（開始時刻：５０、終了時刻：７０）を表すデータを含む応答パケットを送信元に出力する。その後、端子Ｅを介して図３３に戻り、処理を終了する。
【０１１４】
以上のような処理を実施することによって、利用可能期間と中継ノードにおける空き期間との重複期間を適切に特定できるようになる。
【０１１５】
なお、ステップＳ１６７では、中継ノードにおける空き期間を基準に、利用可能期間をシフト時間だけシフトさせるようになっていたが、利用可能期間を基準に、中継ノードにおける空き期間をシフト時間だけシフトさせるようにしてもよい。但し、この場合には、ステップＳ１７５において、特定された重複期間を、空き期間とは逆方向にシフト時間だけシフトさせた期間を予約期間として登録するようにする。例えば図３４の場合、利用可能期間を基準に、中継ノードＡにおける空き期間をシフト時間（＝５０ｍｓ）だけシフトさせた上で重複期間を特定すると、時刻５０から時刻７０までの期間が重複期間として特定される。この重複期間をシフト時間だけ逆シフトさせると、開始時刻は５０−５０＝０、終了時刻は７０−５０＝２０となるので、時刻０から時刻２０までの期間を予約期間として中継テーブル格納部３２に登録するようにする。なお、利用可能期間を基準に、中継ノードＡにおける空き期間をシフト時間だけシフトさせた上で重複期間を特定した場合には、送信元における時刻が基準になっているので、ステップＳ１８５の処理は省略される。
【０１１６】
次に、図３６及び図３７を用いて、データパケット群を受信した際の中継ノード３の処理について説明する。まず、スイッチ部３１は、ある入力ＩＦにおいてデータパケット群の先頭パケットを受信する（図３６：ステップＳ１９１）。この際、スイッチ部３１は、データパケット群の先頭パケットの受信開始時刻を記憶装置に記録しておく。そして、スイッチ部３１は、受信した先頭パケットからスロットＩＤを抽出する（ステップＳ１９３）。そして、スイッチ部３１は、中継テーブル格納部３２に格納されている中継テーブルにおいて、抽出したスロットＩＤと入力ＩＦの識別情報とに対応する出力ＩＦを特定する（ステップＳ１９５）。そして、スイッチ部３１は、特定された出力ＩＦにデータパケット群を出力する（ステップＳ１９７）。その後、スイッチ部３１は、データパケット群の最終パケットを受信したかどうか判断する（ステップＳ１９９）。データパケット群の最終パケットを受信していなければ（ステップＳ１９９：Ｎｏルート）、ステップＳ１９７に戻り、特定された出力ＩＦにデータパケット群を出力し続ける。
【０１１７】
一方、データパケット群の最終パケットを受信した場合（ステップＳ１９９：Ｙｅｓルート）、スイッチ部３１は、特定された出力ＩＦに最終パケットを出力した後、当該出力ＩＦへの出力を終了する（ステップＳ２０１）。また、スイッチ部３１は、データパケット群の最終パケットの受信終了時刻を記録装置に記録する。
【０１１８】
そして、スイッチ部３１は、記憶装置に記録されている、データパケット群の先頭パケットの受信開始時刻と最終パケットの受信終了時刻とから、当該データパケット群の送信に用いられていた期間を特定する（ステップＳ２０３）。そして、スイッチ部３１は、中継テーブル格納部３２において、ステップＳ１９３において抽出されたスロットＩＤを含むレコードを特定する。そして、スイッチ部３１は、特定されたレコードにおける予約期間と、データパケット群の送信に用いられていた期間との重複期間を特定し、特定した重複期間で当該レコードの予約期間を更新する（ステップＳ２０５）。なお、本ステップの処理内容を図３７に模式的に示す。
【０１１９】
例えば上で述べたような処理（ステップＳ１６７）により、時刻ｔaから時刻ｔbまでの期間が重複期間として特定され、予約期間として登録されているものとする。なお、中継ノードでは、データパケット群が送られてくるまでは、重複期間のいずれの部分が使われるかが分からないため、重複期間を予約期間として登録される。ここでは、実際にデータパケット群の送信に用いられていた期間が、時刻ｔaから時刻ｔcまでの期間であったとする。そうすると、ステップＳ２０５では、時刻ｔaから時刻ｔcまでの期間が重複期間として特定され、予約期間は、時刻ｔaから時刻ｔcまでの期間となる。これにより、時刻ｔcから時刻ｔbまでの期間は空き期間とみなされ、別のデータパケット群の送信に利用することができるようになる。
【０１２０】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上で説明したエッジルータ１、中継ルータ３及び管理サーバ５の機能ブロック図は必ずしも実際のプログラムモジュール構成に対応するものではない。データ格納部の構成も同様に一例にすぎない。また、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしてもよい。
【０１２１】
なお、上で述べた管理サーバ５は、コンピュータ装置であって、図３８に示すように、メモリ２５０１とＣＰＵ２５０３とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１２２】
また、上で述べたエッジルータ１及び中継ルータ３は、図３９に示すように、メモリ２６０１とＣＰＵ２６０３とハードディスク・ドライブ（ＨＤＤ）２６０５と表示装置２６０９に接続される表示制御部２６０７とリムーバブル・ディスク２６１１用のドライブ装置２６１３と入力装置２６１５とネットワークに接続するための通信部２６１７（図３９では、２６１７ａ乃至２６１７ｃ）とがバス２６１９で接続されている。なお、場合によっては、表示制御部２６０７、表示装置２６０９、ドライブ装置２６１３、入力装置２６１５は含まれない場合もある。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２６０５に格納されており、ＣＰＵ２６０３により実行される際にはＨＤＤ２６０５からメモリ２６０１に読み出される。ＣＰＵ２６０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２６０７、通信部２６１７、ドライブ装置２６１３を制御して、所定の動作を行わせる。なお、通信部２６１７のいずれかを介して入力されたデータは、他の通信部２６１７を介して出力される。ＣＰＵ２６０３は、通信部２６１７を制御して、適切に出力先を切り替える。また、処理途中のデータについては、主としてメモリ２６０１に格納されるが、ＨＤＤ２６０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２６１１に格納されて頒布され、ドライブ装置２６１３からＨＤＤ２６０５にインストールされる。インターネットなどのネットワーク及び通信部２６１７を経由して、ＨＤＤ２６０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２６０３、メモリ２６０１などのハードウエアとＯＳ及びアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１２３】
以上本実施の形態をまとめると以下のようになる。
【０１２４】
本技術の第１の態様に係る中継装置は、（Ａ）第１の通信装置から第１のデータパケット群又は第１の制御パケット群を第１の送信元インタフェースにおいて受信している間に、第２の送信元インタフェースにおいて第２の通信装置から当該第２の通信装置における動作周期を表すフレーム列のうち現フレームの１フレーム先の一定期間における第２のデータパケット群の送信を予約するために用いられ且つ送信先インタフェースが第１のデータパケット群又は第１の制御パケット群の送信先インタフェースと一致する第２の制御パケット群を受信するという衝突を検出する衝突検出部（図４０：１５０１）と、（Ｂ）上記衝突が検出された場合、第２の制御パケット群の最初のパケットの受信開始から第１のデータパケット群又は第１の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を、第２の通信装置へ送信する衝突発生通知部（図４０：１５０３）とを有する。
【０１２５】
中継装置において上で述べたような衝突が発生する場合には、第２の通信装置が意図する送信タイミングではバッファレスでデータパケット群を中継できない。そこで、上で述べたような調整時間を第２の通信装置に通知して第２の制御パケット群の送信タイミングをずらさせるものである。第２の制御パケット群が通信経路中のどの中継装置においても衝突を起こさなければ、通信装置間で同期が取れていなくともデータ通信を行うことができるようになる。
【０１２６】
また、上で述べた第２の制御パケット群には、第２のデータパケット群の最初のパケットに設定されるべき識別子と通信経路情報とを含む制御パケットが含まれる場合もある。そして、第１の態様に係る中継装置が、第２の制御パケット群受信時に上記衝突が検出されなければ、第２の制御パケット群内の制御パケットに含まれる通信経路情報から特定される送信先インタフェースに第２の制御パケット群を出力すると共に、制御パケットに含まれる識別子と第２の送信元インタフェース及び送信先インタフェースの識別情報とを含む予約情報を中継テーブルに登録するスイッチ部をさらに有する場合もある。このような予約情報を登録しておくことで、後に送信される第２のデータパケット群を適切に中継できるようになる。
【０１２７】
さらに、上で述べたスイッチ部が、第２の制御パケット群に対する応答として通信経路情報により特定される通信経路中の他の中継装置からの衝突発生通知を受信した場合には、登録された予約情報を中継テーブルから削除すると共に、当該衝突発生通知を第２の通信装置に送信するようにしてもよい。また、上で述べたスイッチ部が、第２の制御パケット群に対する応答として通信経路情報により特定される送信先通信装置からの確認通知を受信した後、登録された予約情報を第２のデータパケット群の中継に使用すると共に、当該確認通知を第２の通信装置に送信するようにしてもよい。このように、自中継装置で衝突が検出されなくても、他の中継装置で衝突が検出される場合があり、その場合は、自中継装置において登録された予約情報を削除する。また、通信経路中の他の中継装置で衝突が検出されなければ、登録された予約情報を用いてデータパケット群の中継を行う。
【０１２８】
また、上で述べた第２のデータパケット群の最初のパケットには、当該第２のデータパケット群の送信の予約に用いられた制御パケットに含まれる識別子と同一の識別子が含まれる場合もある。そして、上で述べたスイッチ部が、第２の送信元インタフェースにおいて第２のデータパケット群の最初のパケットを受信すると、中継テーブルにおいて、第２の送信元インタフェースの識別情報と第２のデータパケット群の最初のパケットに含まれる識別子とに対応する送信先インタフェースを特定し、第２のデータパケット群の最終パケットの受信終了までの間、特定された送信先インタフェースに第２のデータパケット群を出力する場合もある。このようにすれば、ルーティング処理を行わずに、データパケット群を中継できる。また、データパケット群同士の衝突は生じないため、バッファが不要となる。従って、中継装置の省電力化が可能となる。
【０１２９】
また、上記衝突が検出された場合、第１のデータパケット群又は第１の制御パケット群の最終パケットの受信終了後、第２の制御パケット群を当該第２の制御パケット群内の制御パケットに含まれる通信経路情報により特定される送信先インタフェースへ出力する制御部をさらに有するようにしてもよい。このようにすれば、他の中継装置で衝突が発生するか否かを先行して調べることができる。
【０１３０】
さらに、上で述べた制御部が、通信経路情報により特定される送信先通信装置からの確認通知と、上記衝突発生通知部が送信した衝突発生通知に応じて第２の通信装置から再度送信される第２の制御パケット群とを受信した場合には、制御パケットに含まれる識別子と第２の送信元インタフェース及び送信先インタフェースの識別情報とを含む予約情報を中継テーブルに登録すると共に、当該確認通知を第２の通信装置に送信するようにしてもよい。また、通信経路情報により特定される通信経路中の他の中継装置からの衝突発生通知と、第２の通信装置から再度送信される第２の制御パケット群とを受信した場合には、当該衝突発生通知を第２の通信装置に送信するようにしてもよい。他の中継装置で衝突が発生するか否かを先行して調べるために第２の制御パケット群を送信先インタフェースへ出力している場合には、送信先通信装置からの確認通知と、第２の通信装置から再送信される第２の制御パケット群とを受信した際に予約情報を登録するようにすればよい。
【０１３１】
本技術の第２の態様に係る通信装置は、（Ａ）動作周期を表すフレーム列のうち第１のフレームの後の第２のフレームの一定期間における第１のデータパケット群の送信を予約するための第１の制御パケット群を、第１のフレームにおける第１の送信タイミングで第１のデータパケット群の送信先通信装置宛に送信するスケジューラ（図４１：１６０１）と、（Ｂ）第１のデータパケット群の送信先通信装置までの通信経路中の中継装置において送信先インタフェースが一致する第２のデータパケット群又は第２の制御パケット群を受信している間に第１の制御パケット群を受信するという衝突が発生した際に当該中継装置から送信され且つ当該第１の制御パケット群の最初のパケットの受信開始から当該第２のデータパケット群又は第２の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を受信した場合、第１の送信タイミングを調整時間分だけ後にシフトさせた第２の送信タイミングを計算し、スケジューラに第２のフレームにおける第２の送信タイミングで第１の制御パケット群を再送信させる送信タイミング計算部（図４１：１６０３）とを有する。
【０１３２】
このようにすれば、今回発生した衝突を回避する形で第１の制御パケット群を再送信できるようになる。別の衝突が発生した場合には、さらにずらして第１の制御パケット群を再送信すればよい。これにより、１フレーム先の一定期間におけるデータパケット群の送信を予約することができるようになり、通信装置間で同期が取れていない場合でも、時分割で通信できるようになる。
【０１３３】
また、上で述べた第１の制御パケット群には、フレーム内における一定期間を識別するための識別子を含む制御パケットが含まれる場合もある。そして、上で述べたスケジューラが、第１の制御パケット群に対する応答として第１のデータパケット群の送信先通信装置からの確認通知を受信した場合、最後に送信した第１の制御パケット群の送信タイミングから１フレーム先の送信タイミングにて、第１のデータパケット群の最初のパケットに、最後に送信した第１の制御パケット群内の制御パケットに含まれる識別子と同一の識別子を設定して当該第１のデータパケット群を送信する場合もある。これにより、他のデータパケット群との衝突が生ずることのないタイミングで、データパケット群を送信先通信装置へ送信できる。
【０１３４】
本技術の第３の態様に係る通信装置は、（Ａ）制御パケット群の送信予定時刻を基準時刻としてデータパケット群の送信に利用可能な期間を表すデータを生成し、送信予定時刻に、利用可能な期間を表すデータとデータパケット群の送信に対して割り当てられている識別子とを含む制御パケットを含む制御パケット群を、データパケット群の送信先通信装置宛に送信するスケジューラと、（Ｂ）データパケット群の送信先通信装置までの通信経路中の中継装置における空き期間と利用可能な期間との重複期間である送信可能期間を表すデータを含む応答パケットを受信した場合、送信可能期間からデータパケット群に用いる送信期間を決定する送信期間決定部とを有する。そして、上で述べたスケジューラが、決定された送信期間において、データパケット群の最初のパケットに、当該データパケット群の送信に割り当てられている識別子を設定して当該データパケット群を送信する。このようにすれば、送信可能期間からデータパケット群の送信期間を決定するので、他のデータパケット群と衝突することなく通信できる。すなわち、通信装置間で同期が取れていなくとも、時分割で通信できるようになる。
【０１３５】
本技術の第４の態様に係る中継装置は、（Ａ）通信装置からデータパケット群の送信に利用可能な期間を表すデータと当該データパケット群の送信に割り当てられている識別子と通信経路情報とを含む制御パケットを含む制御パケット群を受信した場合、自中継装置における動作周期を表すフレーム列のうち制御パケット群の最初のパケットの受信開始時のフレームのフレーム開始から制御パケット群の最初のパケットの受信開始までの時間であるシフト時間を計算する時間差計算部と、（Ｂ）制御パケットに含まれる通信経路情報により特定される送信先インタフェースの空き期間と利用可能な期間とのいずれかを基準に他方をシフト時間シフトさせた上で送信先インタフェースの空き期間と利用可能な期間との第１の重複期間を特定し、特定した第１の重複期間を表すデータを制御パケットに設定して送信先インタフェースに制御パケット群を出力する期間データ処理部とを有する。このように、制御パケットにおける利用可能な期間と送信元インタフェースの空き期間とのいずれかを基準に他方をシフトさせることで、重複期間を適切に特定できる。
【０１３６】
また、上で述べた制御パケットが、データパケット群の送信に割り当てられている識別子をさらに含む場合もある。そして、上で述べた期間データ処理部が、第１の重複期間が上記利用可能な期間を基準に特定された期間である場合には、送信先インタフェースの空き期間とは逆方向に第１の重複期間をシフト時間シフトさせた期間である予約期間を表すデータと制御パケットに含まれる識別子と送信元インタフェース及び送信先インタフェースの識別情報とを含む予約情報を中継テーブルに登録するようにしてもよい。また、上で述べた期間データ処理部が、第１の重複期間が送信元インタフェースの空き期間を基準に特定された期間である場合には、第１の重複期間を表すデータを予約期間を表すデータとして含み且つ制御パケットに含まれる識別子と送信元インタフェース及び送信先インタフェースの識別情報とを含む予約情報を中継テーブルに登録するようにしてもよい。なお、制御パケット群を受信した時点では、重複期間のうちいずれの部分がデータパケット群の送信に使用されるか分からないため、重複期間を予約期間として含む予約情報を登録しておく。
【０１３７】
さらに、上で述べたデータパケット群の最初のパケットには、当該データパケット群の送信に割り当てられている識別子が含まれる場合もある。そして、第４の態様に係る中継装置が、データパケット群の最初のパケットを受信すると、中継テーブルにおいて送信元インタフェースの識別情報とデータパケット群の最初のパケットに含まれる識別子とに対応する送信先インタフェースを特定し、データパケット群の最終パケットの受信終了までの間、特定された送信先インタフェースにデータパケット群を出力し、中継テーブルにおいて送信元インタフェースの識別情報とデータパケット群の最初のパケットに含まれる識別子とに対応する予約期間とデータパケット群の最初のパケットの受信開始から最終パケットの受信終了までの期間との第２の重複期間を特定し、特定された第２の重複期間で中継テーブルにおける予約期間を更新するスイッチ部をさらに有する場合もある。このようにすれば、予約期間のうちデータパケット群の送信に使用されていない部分については予約期間から外すことができ、別のデータパケット群の送信に割り当てることができるようになる。
【０１３８】
本技術の第５の態様に係る通信制御方法は、（Ａ）第１の通信装置から第１のデータパケット群又は第１の制御パケット群を第１の送信元インタフェースにおいて受信している間に、第２の送信元インタフェースにおいて第２の通信装置から当該第２の通信装置における動作周期を表すフレーム列のうち現フレームの１フレーム先の一定期間における第２のデータパケット群の送信を予約するために用いられ且つ送信先インタフェースが第１のデータパケット群と一致する第２の制御パケット群を受信するという衝突を検出するステップ（図４２：Ｓ１００１）と、（Ｂ）上記衝突が検出された場合、第２の制御パケット群の最初のパケットの受信開始から第１のデータパケット群又は第１の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を、第２の通信装置へ送信するステップ（図４２：Ｓ１００３）とを含む。
【０１３９】
本技術の第６の態様に係る通信制御方法は、（Ａ）動作周期を表すフレーム列のうち第１のフレームの後の第２のフレームの一定期間における第１のデータパケット群の送信を予約するための第１の制御パケット群を、第１のフレームにおける第１の送信タイミングで第１のデータパケット群の送信先通信装置宛に送信するステップ（図４３：Ｓ１１０１）と、（Ｂ）第１のデータパケット群の送信先通信装置までの通信経路中の中継装置において送信先インタフェースが一致する第２のデータパケット群又は第２の制御パケット群を受信している間に第１の制御パケット群を受信するという衝突が発生した際に当該中継装置から送信され且つ当該第１の制御パケット群の最初のパケットの受信開始から当該第２のデータパケット群又は第２の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を受信した場合、第１の送信タイミングを調整時間分だけ後にシフトさせた第２の送信タイミングを計算するステップ（図４３：Ｓ１１０３）と、（Ｃ）第２のフレームにおける第２の送信タイミングで第１の制御パケット群を再送信するステップ（図４３：Ｓ１１０５）とを含む。
【０１４０】
本技術の第７の態様に係る通信制御方法は、（Ａ）制御パケット群の送信予定時刻を基準時刻としてデータパケット群の送信に利用可能な期間を表すデータを生成し、送信予定時刻に、利用可能な期間を表すデータとデータパケット群の送信に対して割り当てられている識別子とを含む制御パケットを含む制御パケット群を、データパケット群の送信先通信装置宛に送信するステップと、（Ｂ）データパケット群の送信先通信装置までの通信経路中の中継装置における空き期間と利用可能な期間との重複期間である送信可能期間を表すデータを含む応答パケットを受信した場合、送信可能期間からデータパケット群に用いる送信期間を決定するステップと、（Ｃ）決定された送信期間において、データパケット群の最初のパケットに、当該データパケット群の送信に割り当てられている識別子を設定して当該データパケット群を送信するステップとを含む。
【０１４１】
本技術の第８の態様に係る通信制御方法は、（Ａ）通信装置からデータパケット群の送信に利用可能な期間を表すデータと当該データパケット群の送信に割り当てられている識別子と通信経路情報とを含む制御パケットを含む制御パケット群を受信した場合、自中継装置における動作周期を表すフレーム列のうち制御パケット群の最初のパケットの受信開始時のフレームのフレーム開始から制御パケット群の最初のパケットの受信開始までの時間であるシフト時間を計算するステップと、（Ｂ）制御パケットに含まれる通信経路情報により特定される送信先インタフェースの空き期間と利用可能な期間とのいずれかを基準に他方をシフト時間シフトさせた上で送信先インタフェースの空き期間と利用可能な期間との第１の重複期間を特定するステップと、（Ｃ）特定した第１の重複期間を表すデータを制御パケットに設定して送信先インタフェースに制御パケット群を出力するステップとを含む。
【０１４２】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ（例えばＲＯＭ）、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、ＲＡＭ等の記憶装置に一時保管される。
【０１４３】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１４４】
（付記１）
第１の通信装置から第１のデータパケット群又は第１の制御パケット群を第１の送信元インタフェースにおいて受信している間に、第２の送信元インタフェースにおいて第２の通信装置から当該第２の通信装置における動作周期を表すフレーム列のうち現フレームの１フレーム先の一定期間における第２のデータパケット群の送信を予約するために用いられ且つ送信先インタフェースが前記第１のデータパケット群又は第１の制御パケット群の送信先インタフェースと一致する第２の制御パケット群を受信するという衝突を検出する衝突検出部と、
前記衝突が検出された場合、前記第２の制御パケット群の最初のパケットの受信開始から前記第１のデータパケット群又は第１の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を、前記第２の通信装置へ送信する衝突発生通知部と、
を有する中継装置。
【０１４５】
（付記２）
前記第２の制御パケット群には、前記第２のデータパケット群の最初のパケットに設定されるべき識別子と通信経路情報とを含む制御パケットが含まれ、
前記第２の制御パケット群受信時に前記衝突が検出されなければ、前記第２の制御パケット群内の制御パケットに含まれる前記通信経路情報から特定される送信先インタフェースに前記第２の制御パケット群を出力すると共に、前記制御パケットに含まれる前記識別子と前記第２の送信元インタフェース及び前記送信先インタフェースの識別情報とを含む予約情報を中継テーブルに登録するスイッチ部
をさらに有する付記１記載の中継装置。
【０１４６】
（付記３）
前記スイッチ部は、
前記第２の制御パケット群に対する応答として前記通信経路情報により特定される通信経路中の他の中継装置からの衝突発生通知を受信した場合には、登録された前記予約情報を前記中継テーブルから削除すると共に、当該衝突発生通知を前記第２の通信装置に送信し、
前記第２の制御パケット群に対する応答として前記通信経路情報により特定される送信先通信装置からの確認通知を受信した後、登録された前記予約情報を前記第２のデータパケット群の中継に使用すると共に、当該確認通知を前記第２の通信装置に送信する
付記２記載の中継装置。
【０１４７】
（付記４）
前記第２のデータパケット群の最初のパケットには、当該第２のデータパケット群の送信の予約に用いられた前記制御パケットに含まれる前記識別子と同一の識別子が含まれ、
前記スイッチ部は、
前記第２の送信元インタフェースにおいて前記第２のデータパケット群の最初のパケットを受信すると、前記中継テーブルにおいて、前記第２の送信元インタフェースの識別情報と前記第２のデータパケット群の最初のパケットに含まれる前記識別子とに対応する送信先インタフェースを特定し、前記第２のデータパケット群の最終パケットの受信終了までの間、特定された前記送信先インタフェースに前記第２のデータパケット群を出力する
付記３記載の中継装置。
【０１４８】
（付記５）
前記第２の制御パケット群には、通信経路情報を含む制御パケットが含まれ、
前記衝突が検出された場合、前記第１のデータパケット群又は第１の制御パケット群の最終パケットの受信終了後、前記第２の制御パケット群を当該第２の制御パケット群内の制御パケットに含まれる前記通信経路情報により特定される送信先インタフェースへ出力する制御部
をさらに有する付記１記載の中継装置。
【０１４９】
（付記６）
前記制御パケットは、前記第２のデータパケット群の最初のパケットに設定されるべき識別子をさらに含み、
前記制御部は、
前記通信経路情報により特定される送信先通信装置からの確認通知と、前記衝突発生通知部が送信した前記衝突発生通知に応じて前記第２の通信装置から再度送信される前記第２の制御パケット群とを受信した場合には、前記制御パケットに含まれる前記識別子と前記第２の送信元インタフェース及び前記送信先インタフェースの識別情報とを含む予約情報を中継テーブルに登録すると共に、当該確認通知を前記第２の通信装置に送信し、
前記通信経路情報により特定される通信経路中の他の中継装置からの衝突発生通知と、前記第２の通信装置から再度送信される前記第２の制御パケット群とを受信した場合には、当該衝突発生通知を前記第２の通信装置に送信する
付記５記載の中継装置。
【０１５０】
（付記７）
動作周期を表すフレーム列のうち第１のフレームの後の第２のフレームの一定期間における第１のデータパケット群の送信を予約するための第１の制御パケット群を、前記第１のフレームにおける第１の送信タイミングで前記第１のデータパケット群の送信先通信装置宛に送信するスケジューラと、
前記第１のデータパケット群の送信先通信装置までの通信経路中の中継装置において送信先インタフェースが一致する第２のデータパケット群又は第２の制御パケット群を受信している間に前記第１の制御パケット群を受信するという衝突が発生した際に当該中継装置から送信され且つ当該第１の制御パケット群の最初のパケットの受信開始から当該第２のデータパケット群又は第２の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を受信した場合、前記第１の送信タイミングを前記調整時間分だけ後にシフトさせた第２の送信タイミングを計算し、前記スケジューラに前記第２のフレームにおける前記第２の送信タイミングで前記第１の制御パケット群を再送信させる送信タイミング計算部と、
を有する通信装置。
【０１５１】
（付記８）
前記第１の制御パケット群には、フレーム内における前記一定期間を識別するための識別子を含む制御パケットが含まれ、
前記スケジューラが、
前記第１の制御パケット群に対する応答として前記第１のデータパケット群の送信先通信装置からの確認通知を受信した場合、最後に送信した前記第１の制御パケット群の送信タイミングから１フレーム先の送信タイミングにて、前記第１のデータパケット群の最初のパケットに、最後に送信した前記第１の制御パケット群内の制御パケットに含まれる識別子と同一の識別子を設定して当該第１のデータパケット群を送信する
付記７記載の通信装置。
【０１５２】
（付記９）
制御パケット群の送信予定時刻を基準時刻としてデータパケット群の送信に利用可能な期間を表すデータを生成し、前記送信予定時刻に、前記利用可能な期間を表すデータと前記データパケット群の送信に対して割り当てられている識別子とを含む制御パケットを含む前記制御パケット群を、前記データパケット群の送信先通信装置宛に送信するスケジューラと、
前記データパケット群の送信先通信装置までの通信経路中の中継装置における空き期間と前記利用可能な期間との重複期間である送信可能期間を表すデータを含む応答パケットを受信した場合、前記送信可能期間から前記データパケット群に用いる送信期間を決定する送信期間決定部と、
を有し、
前記スケジューラが、
決定された前記送信期間において、前記データパケット群の最初のパケットに、当該データパケット群の送信に割り当てられている前記識別子を設定して当該データパケット群を送信する
通信装置。
【０１５３】
（付記１０）
通信装置からデータパケット群の送信に利用可能な期間を表すデータと当該データパケット群の送信に割り当てられている識別子と通信経路情報とを含む制御パケットを含む制御パケット群を受信した場合、自中継装置における動作周期を表すフレーム列のうち前記制御パケット群の最初のパケットの受信開始時のフレームのフレーム開始から前記制御パケット群の最初のパケットの受信開始までの時間であるシフト時間を計算する時間差計算部と、
前記制御パケットに含まれる前記通信経路情報により特定される送信先インタフェースの空き期間と前記利用可能な期間とのいずれかを基準に他方を前記シフト時間シフトさせた上で前記送信先インタフェースの空き期間と前記利用可能な期間との第１の重複期間を特定し、特定した前記第１の重複期間を表すデータを前記制御パケットに設定して前記送信先インタフェースに前記制御パケット群を出力する期間データ処理部と、
を有する中継装置。
【０１５４】
（付記１１）
前記制御パケットは、前記データパケット群の送信に割り当てられている識別子をさらに含み、
前記期間データ処理部は、
前記第１の重複期間が前記利用可能な期間を基準に特定された期間である場合には、前記送信先インタフェースの空き期間とは逆方向に前記第１の重複期間を前記シフト時間シフトさせた期間である予約期間を表すデータと前記制御パケットに含まれる前記識別子と送信元インタフェース及び前記送信先インタフェースの識別情報とを含む予約情報を中継テーブルに登録し、
前記第１の重複期間が前記送信元インタフェースの空き期間を基準に特定された期間である場合には、前記第１の重複期間を表すデータを予約期間を表すデータとして含み且つ前記制御パケットに含まれる前記識別子と送信元インタフェース及び前記送信先インタフェースの識別情報とを含む予約情報を中継テーブルに登録する
付記１０記載の中継装置。
【０１５５】
（付記１２）
前記データパケット群の最初のパケットには、当該データパケット群の送信に割り当てられている前記識別子が含まれ、
前記データパケット群の最初のパケットを受信すると、前記中継テーブルにおいて送信元インタフェースの識別情報と前記データパケット群の最初のパケットに含まれる前記識別子とに対応する送信先インタフェースを特定し、前記データパケット群の最終パケットの受信終了までの間、特定された前記送信先インタフェースに前記データパケット群を出力し、前記中継テーブルにおいて送信元インタフェースの識別情報と前記データパケット群の最初のパケットに含まれる前記識別子とに対応する予約期間と前記データパケット群の最初のパケットの受信開始から最終パケットの受信終了までの期間との第２の重複期間を特定し、特定された前記第２の重複期間で前記中継テーブルにおける前記予約期間を更新するスイッチ部
をさらに有する付記１１記載の中継装置。
【０１５６】
（付記１３）
第１の通信装置から第１のデータパケット群又は第１の制御パケット群を第１の送信元インタフェースにおいて受信している間に、第２の送信元インタフェースにおいて第２の通信装置から当該第２の通信装置における動作周期を表すフレーム列のうち現フレームの１フレーム先の一定期間における第２のデータパケット群の送信を予約するために用いられ且つ送信先インタフェースが前記第１のデータパケット群又は第１の制御パケット群の送信先インタフェースと一致する第２の制御パケット群を受信するという衝突を検出するステップと、
前記衝突が検出された場合、前記第２の制御パケット群の最初のパケットの受信開始から前記第１のデータパケット群又は第１の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を、前記第２の通信装置へ送信するステップと、
を含み、中継装置により実行される通信制御方法。
【０１５７】
（付記１４）
動作周期を表すフレーム列のうち第１のフレームの後の第２のフレームの一定期間における第１のデータパケット群の送信を予約するための第１の制御パケット群を、前記第１のフレームにおける第１の送信タイミングで前記第１のデータパケット群の送信先通信装置宛に送信するステップと、
前記第１のデータパケット群の送信先通信装置までの通信経路中の中継装置において送信先インタフェースが一致する第２のデータパケット群又は第２の制御パケット群を受信している間に前記第１の制御パケット群を受信するという衝突が発生した際に当該中継装置から送信され且つ当該第１の制御パケット群の最初のパケットの受信開始から当該第２のデータパケット群又は第２の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を受信した場合、前記第１の送信タイミングを前記調整時間分だけ後にシフトさせた第２の送信タイミングを計算するステップと、
前記第２のフレームにおける前記第２の送信タイミングで前記第１の制御パケット群を再送信するステップと、
を含み、通信装置により実行される通信制御方法。
【０１５８】
（付記１５）
制御パケット群の送信予定時刻を基準時刻としてデータパケット群の送信に利用可能な期間を表すデータを生成し、前記送信予定時刻に、前記利用可能な期間を表すデータと前記データパケット群の送信に対して割り当てられている識別子とを含む制御パケットを含む前記制御パケット群を、前記データパケット群の送信先通信装置宛に送信するステップと、
前記データパケット群の送信先通信装置までの通信経路中の中継装置における空き期間と前記利用可能な期間との重複期間である送信可能期間を表すデータを含む応答パケットを受信した場合、前記送信可能期間から前記データパケット群に用いる送信期間を決定するステップと、
決定された前記送信期間において、前記データパケット群の最初のパケットに、当該データパケット群の送信に割り当てられている前記識別子を設定して当該データパケット群を送信するステップと、
を含み、通信装置により実行される通信制御方法。
【０１５９】
（付記１６）
通信装置からデータパケット群の送信に利用可能な期間を表すデータと当該データパケット群の送信に割り当てられている識別子と通信経路情報とを含む制御パケットを含む前記制御パケット群を受信した場合、自中継装置における動作周期を表すフレーム列のうち前記制御パケット群の最初のパケットの受信開始時のフレームのフレーム開始から前記制御パケット群の最初のパケットの受信開始までの時間であるシフト時間を計算するステップと、
前記制御パケットに含まれる前記通信経路情報により特定される送信先インタフェースの空き期間と前記利用可能な期間とのいずれかを基準に他方を前記シフト時間シフトさせた上で前記送信先インタフェースの空き期間と前記利用可能な期間との第１の重複期間を特定するステップと、
特定した前記第１の重複期間を表すデータを前記制御パケットに設定して前記送信先インタフェースに前記制御パケット群を出力するステップと、
を含み、中継装置により実行される通信制御方法。
【符号の説明】
【０１６０】
１  エッジルータ    ３  中継ルータ    ５  管理サーバ
１１  パケット受信部    １２  パケット分類部
１３  宛先ノードテーブル格納部    １４  キュー管理テーブル格納部
１５  スケジューラ    １６  スケジュールＤＢ
１７  送信タイミング計算部    １８  応答信号受信部
１９  通信部
３１  スイッチ部    ３２  中継テーブル格納部
３３  衝突検出部    ３４  衝突発生通知部
３５  バッファ    ３６  制御部
３７  時間差計算部    ３８  シフト時間格納部
３９  期間データ処理部
５１  経路情報格納部    ５２  制御部
５３  受信部    ５４  経路情報取得部
５５  送信部
１００  ネットワークシステム    １２１  キュー
【図１】
2012039539.tif 000003
【図２】
2012039539.tif 000004
【図３】
2012039539.tif 000005
【図４】
2012039539.tif 000006
【図５Ａ】
2012039539.tif 000007
【図５Ｂ】
2012039539.tif 000008
【図６】
2012039539.tif 000009
【図７】
2012039539.tif 000010
【図８】
2012039539.tif 000011
【図９】
2012039539.tif 000012
【図１０】
2012039539.tif 000013
【図１１】
2012039539.tif 000014
【図１２】
2012039539.tif 000015
【図１３】
2012039539.tif 000016
【図１４】
2012039539.tif 000017
【図１５】
2012039539.tif 000018
【図１６】
2012039539.tif 000019
【図１７】
2012039539.tif 000020
【図１８】
2012039539.tif 000021
【図１９】
2012039539.tif 000022
【図２０】
2012039539.tif 000023
【図２１】
2012039539.tif 000024
【図２２】
2012039539.tif 000025
【図２３】
2012039539.tif 000026
【図２４】
2012039539.tif 000027
【図２５】
2012039539.tif 000028
【図２６】
2012039539.tif 000029
【図２７】
2012039539.tif 000030
【図２８】
2012039539.tif 000031
【図２９】
2012039539.tif 000032
【図３０】
2012039539.tif 000033
【図３１】
2012039539.tif 000034
【図３２】
2012039539.tif 000035
【図３３】
2012039539.tif 000036
【図３４】
2012039539.tif 000037
【図３５】
2012039539.tif 000038
【図３６】
2012039539.tif 000039
【図３７】
2012039539.tif 000040
【図３８】
2012039539.tif 000041
【図３９】
2012039539.tif 000042
【図４０】
2012039539.tif 000043
【図４１】
2012039539.tif 000044
【図４２】
2012039539.tif 000045
【図４３】
2012039539.tif 000046