説明

通信装置、中継装置及び通信制御方法

【課題】有線ネットワークにおいて同期の取れていない複数の通信装置が時分割で通信できるようにする。
【解決手段】本中継装置は、第1の通信装置から第1のデータパケット群又は第1の制御パケット群を第1の送信元IFにおいて受信している間に、第2の送信元IFにおいて第2の通信装置から当該第2の通信装置における動作周期を表すフレーム列のうち現フレームの1フレーム先の一定期間における第2のデータパケット群の送信を予約するために用いられ且つ送信先IFが第1のデータパケット群又は第1の制御パケット群の送信先IFと一致する第2の制御パケット群を受信するという衝突を検出する衝突検出部と、上記衝突が検出された場合、第2の制御パケット群の最初のパケットの受信開始から第1のデータパケット群又は第1の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を、第2の通信装置へ送信する衝突発生通知部とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本技術は、有線ネットワークにおける通信制御技術に関する。
【背景技術】
【0002】
近年、情報通信ネットワークを流れるトラフィック量が大きく増加しており、それに伴いネットワークにおける消費電力も増加している。特にルータの消費電力が著しく増加している。
【0003】
ところで、従来から、時分割でデータ転送を行う技術(例えばTDM(Time Division Multiplexing)など)が存在している。TDMでは、1フレームを複数のタイムスロット(以下、単にスロットと呼ぶ)に区切り、スロット毎に別々のデータ転送を行う。しかし、時分割でデータ転送を行うには、通信装置が高精度な時刻同期を行うことになり、IEEE 1588などの仕様に沿った高精度の時計機能を用いることになるため、コストがかかってしまう。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平3−46432号公報
【特許文献2】特開2006−277306号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従って、本技術の目的は、一側面において、有線ネットワークにおいて同期の取れていない複数の通信装置が時分割で通信できるようにするための技術を提供することである。
【課題を解決するための手段】
【0006】
本技術の第1の態様に係る中継装置は、(A)第1の通信装置から第1のデータパケット群又は第1の制御パケット群を第1の送信元インタフェースにおいて受信している間に、第2の送信元インタフェースにおいて第2の通信装置から当該第2の通信装置における動作周期を表すフレーム列のうち現フレームの1フレーム先の一定期間における第2のデータパケット群の送信を予約するために用いられ且つ送信先インタフェースが第1のデータパケット群又は第1の制御パケット群の送信先インタフェースと一致する第2の制御パケット群を受信するという衝突を検出する衝突検出部と、(B)上記衝突が検出された場合、第2の制御パケット群の最初のパケットの受信開始から第1のデータパケット群又は第1の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を、第2の通信装置へ送信する衝突発生通知部とを有する。
【0007】
本技術の第2の態様に係る通信装置は、(A)動作周期を表すフレーム列のうち第1のフレームの後の第2のフレームの一定期間における第1のデータパケット群の送信を予約するための第1の制御パケット群を、第1のフレームにおける第1の送信タイミングで第1のデータパケット群の送信先通信装置宛に送信するスケジューラと、(B)第1のデータパケット群の送信先通信装置までの通信経路中の中継装置において送信先インタフェースが一致する第2のデータパケット群又は第2の制御パケット群を受信している間に第1の制御パケット群を受信するという衝突が発生した際に当該中継装置から送信され且つ当該第1の制御パケット群の最初のパケットの受信開始から当該第2のデータパケット群又は第2の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を受信した場合、第1の送信タイミングを調整時間分だけ後にシフトさせた第2の送信タイミングを計算し、スケジューラに第2のフレームにおける第2の送信タイミングで第1の制御パケット群を再送信させる送信タイミング計算部とを有する。
【0008】
本技術の第3の態様に係る通信装置は、(A)制御パケット群の送信予定時刻を基準時刻としてデータパケット群の送信に利用可能な期間を表すデータを生成し、送信予定時刻に、利用可能な期間を表すデータとデータパケット群の送信に対して割り当てられている識別子とを含む制御パケットを含む制御パケット群を、データパケット群の送信先通信装置宛に送信するスケジューラと、(B)データパケット群の送信先通信装置までの通信経路中の中継装置における空き期間と利用可能な期間との重複期間である送信可能期間を表すデータを含む応答パケットを受信した場合、送信可能期間からデータパケット群に用いる送信期間を決定する送信期間決定部とを有する。そして、上で述べたスケジューラが、決定された送信期間において、データパケット群の最初のパケットに、当該データパケット群の送信に割り当てられている識別子を設定して当該データパケット群を送信する。
【0009】
本技術の第4の態様に係る中継装置は、(A)通信装置からデータパケット群の送信に利用可能な期間を表すデータと当該データパケット群の送信に割り当てられている識別子と通信経路情報とを含む制御パケットを含む制御パケット群を受信した場合、自中継装置における動作周期を表すフレーム列のうち制御パケット群の最初のパケットの受信開始時のフレームのフレーム開始から制御パケット群の最初のパケットの受信開始までの時間であるシフト時間を計算する時間差計算部と、(B)制御パケットに含まれる通信経路情報により特定される送信先インタフェースの空き期間と利用可能な期間とのいずれかを基準に他方をシフト時間シフトさせた上で送信先インタフェースの空き期間と利用可能な期間との第1の重複期間を特定し、特定した第1の重複期間を表すデータを制御パケットに設定して送信先インタフェースに制御パケット群を出力する期間データ処理部とを有する。
【発明の効果】
【0010】
有線ネットワークにおいて同期の取れていない複数の通信装置が時分割で通信できるようになる。
【図面の簡単な説明】
【0011】
【図1】図1は、本技術の実施の形態におけるネットワークシステムの構成の一例を示す図である。
【図2】図2は、エッジルータの機能ブロック図である。
【図3】図3は、宛先ノードテーブルの一例を示す図である。
【図4】図4は、キュー管理テーブルの一例を示す図である。
【図5A】図5Aは、スケジュールDBに格納されるデータの一例を示す図である。
【図5B】図5Bは、エッジノードにおけるフレームとスロットの関係を説明するための図である。
【図6】図6(a)は、制御パケット群の構成例を示す図であり、図6(b)は、データパケット群の構成例を示す図である。
【図7】図7は、第1の実施の形態に係る中継ルータの機能ブロック図である。
【図8】図8は、中継テーブルの一例を示す図である。
【図9】図9は、管理サーバの機能ブロック図である。
【図10】図10は、データパケットの送信予約の流れを説明するための図である。
【図11】図11は、衝突発生時の動作を説明するための図である。
【図12】図12は、衝突発生時のシーケンス例を示す図である。
【図13】図13は、外部ネットワークからパケットを受信した際のエッジノードの処理フローを示す図である。
【図14】図14は、送信予約処理の処理フローを示す図である。
【図15】図15は、制御パケット群を受信した際のエッジノードの処理フローを示す図である。
【図16】図16は、データパケット群を受信した際の中継ルータの処理フローを示す図である。
【図17】図17は、制御パケット群を受信した際の中継ルータの処理フローを示す図である。
【図18】図18は、IPパケット及びIPヘッダの模式図である。
【図19】図19(a)は、衝突発生通知の場合のオプションフィールドのフォーマット例を示す図であり、図19(b)は、確認通知の場合のオプションフィールドのフォーマット例を示す図である。
【図20】図20は、中継ノードに3つのエッジノードが接続されるネットワーク構成例を示す図である。
【図21】図21は、図20に示したネットワーク構成における衝突発生時の動作を説明するための図である。
【図22】図22は、第2の実施の形態におけるシーケンス例を示す図である。
【図23】図23は、第2の実施の形態に係る中継ルータの機能ブロック図である。
【図24】図24は、第2の実施の形態に係る中継ルータの処理フローを示す図である。
【図25】図25は、第2の実施の形態に係る中継ルータの処理フローを示す図である。
【図26】図26は、第2の実施の形態に係る中継ルータの処理フローを示す図である。
【図27】図27は、第3の実施の形態におけるシーケンス例を示す図である。
【図28】図28は、第3の実施の形態に係る中継ルータの機能ブロック図である。
【図29】図29は、第3の実施の形態における中継テーブルの一例を示す図である。
【図30】図30は、シフト時間格納部に格納されるデータの一例を示す図である。
【図31】図31は、送信予約処理2の処理フローを示す図である。
【図32】図32は、利用可能期間データ及び送信可能期間データの場合のオプションフィールドのフォーマット例を示す図である。
【図33】図33は、第3の実施の形態に係る中継ルータの処理フローを示す図である。
【図34】図34は、利用可能期間と空き期間との重複期間を特定する処理を説明するための図である。
【図35】図35は、第3の実施の形態に係る中継ルータの処理フローを示す図である。
【図36】図36は、第3の実施の形態に係る中継ルータの処理フローを示す図である。
【図37】図37は、予約期間の更新処理を説明するための図である。
【図38】図38は、コンピュータの機能ブロック図である。
【図39】図39は、コンピュータの機能ブロック図である。
【図40】図40は、中継装置の機能ブロック図である。
【図41】図41は、通信装置の機能ブロック図である。
【図42】図42は、通信制御方法の処理フローを示す図である。
【図43】図43は、通信制御方法の処理フローを示す図である。
【発明を実施するための形態】
【0012】
[実施の形態1]
まず、図1乃至図21を用いて、第1の実施の形態について説明する。本実施の形態では、図1に示すように、エッジルータ1(図1では1A乃至1D)と、中継ルータ3(図1では3A及び3B)と、管理サーバ5とを有するネットワークシステム100を想定する。図1において、中継ルータ3Aはエッジルータ1Aとエッジルータ1Bと中継ルータ3Bとに接続され、中継ルータ3Bはエッジルータ1Cとエッジルータ1Dとに接続されている。また、エッジルータ1A乃至1D並びに中継ルータ3A及び3Bは、管理サーバ5と制御線(図1では点線)によって接続されている。さらに、エッジルータ1A乃至1Dは、図示しない外部ネットワークと接続されている。以下では、エッジルータをエッジノードと呼び、中継ルータを中継ノードと呼ぶ。なお、図1は、簡単なネットワークシステムの一例であり、ネットワーク構成はこれに限定されるものではない。
【0013】
また、図1では、管理サーバ5が、起動時に、フレーム長を表すデータをエッジルータ1A乃至1Dに配信するようになっている。そして、エッジルータ1A乃至1Dは、管理サーバ5からフレーム長を表すデータを受信し、そのフレーム長に従って動作する。なお、ここでは、エッジルータ1A乃至1Dは、非同期に動作しているものとし、エッジルータ1A乃至1Dにおけるフレーム開始タイミングは同期していないものとする。
【0014】
図2に、図1に示したエッジルータ1の機能ブロック図を示す。エッジルータ1は、パケット受信部11と、宛先エッジノード毎のキュー121(図2では121a乃至121c)を有するパケット分類部12と、宛先ノードテーブル格納部13と、キュー管理テーブル格納部14と、スケジューラ15と、スケジュールDB16と、送信タイミング計算部17と、応答信号受信部18と、通信部19とを有する。通信部19は、複数の入出力インタフェース(IF)と接続されている。
【0015】
パケット受信部11は、通信部19を介して外部ネットワークからのパケットを受信し、パケット分類部12に出力する。パケット分類部12は、宛先ノードテーブル格納部13とキュー管理テーブル格納部14とに格納されているデータを用いて、パケット受信部11が受信したパケットを該当するキュー121に格納する。なお、該当するキュー121が存在しない場合には、パケット分類部12は、新たなキュー121を生成し、キューIDなどをキュー管理テーブル格納部14に登録する。また、パケット分類部12は、新たなキュー121を生成した場合には、そのキュー121に格納されているパケット(以下、データパケットと呼ぶ場合もある)の送信予約を行うようスケジューラ15に指示する。スケジューラ15は、パケット分類部12からの指示を受けると、データパケットの通信経路を管理サーバ5に問い合わせたり、スケジュールデータベース(DB)16に格納されているデータに従って、データパケットの送信予約のための制御パケット群を通信部19を介して宛先エッジノード宛に送信したりする。応答信号受信部18は、通信部19を介して制御パケット群に対する応答を受信し、送信タイミング計算部17に出力する。送信タイミング計算部17は、制御パケット群に対する応答に従って、制御パケット群の送信タイミングを計算し、スケジュールDB16に格納する。なお、データパケットの送信予約が完了した場合、スケジューラ15が、スケジュールDB16に格納されているデータに従って、データパケット群を通信部19を介して宛先エッジノード宛に送信したりする。
【0016】
宛先ノードテーブル格納部13には、例えば図3に示すような宛先ノードテーブルが予め格納されている。図3の例では、宛先ノードテーブルには、宛先アドレスの列と、宛先エッジノードの列とが含まれる。例えば、宛先アドレスが192.168.1.10であれば、宛先エッジノードはノードBであることが分かる。
【0017】
また、キュー管理テーブル格納部14には、例えば図4に示すようなキュー管理テーブルが格納される。図4の例では、キュー管理テーブルには、キューIDの列と、宛先エッジノードの列とが含まれる。例えば宛先エッジノードがノードBであるパケットの格納先は、ID「q001」のキューであることが分かる。
【0018】
また、スケジュールDB16には、例えば図5Aに示すようなデータが格納される。図5Aの例では、スケジュールDB16には、宛先エッジノード毎に、キューIDと、通信経路情報と、出力インタフェース(IF)と、スロットIDと、送信タイミングと、送信時間と、調整時間の累計とが格納されるようになっている。スケジューラ15が、パケット分類部12からデータパケットの送信予約を行う旨の指示を受け取ると、新たなレコードをスケジュールDB16に追加する。キューIDの列には、そのレコードに係る宛先エッジノードへ送信すべきパケットが格納されているキュー121のキューIDが格納される。通信経路情報の列には、管理サーバ5から受信した通信経路情報が格納される。出力IFの列には、そのレコードに係る宛先エッジノードへのデータパケットの出力先となるIFの識別情報が格納される。スロットIDの列には、そのレコードに係る宛先エッジノードとの通信を行うスロットのIDが格納される。なお、詳細は後で説明するが、本実施の形態では、スロットIDの列に設定されているIDをデータパケット群の先頭パケット及び最終パケットに設定して当該データパケット群を送信する。また、送信タイミングの列には、自エッジノードのフレーム開始時刻を基準にパケット送信を開始する時刻が格納される。なお、詳細は後で説明するが、通信経路中の中継ルータ3においてパケット衝突が発生した場合には、当該中継ルータ3から通知される調整時間分だけ送信タイミングをずらす。調整時間の累計の列には、送信タイミングをずらした時間の累計が格納される。なお、データパケットの送信予約が完了した場合には、調整時間の累計の列に「予約完了」が設定される。また、送信時間の列には、パケット送信を開始してから終了するまでの時間が格納される。図5Aでは、ノードDへのパケット送信については、送信予約が完了しており、自エッジノードの時刻t1から1ms経過するまでの期間(スロット1)において、ID「q002」に格納されているデータパケットをeth1の出力IFに出力するようスケジューリングされていることを示している。また、例えばノードBへのパケット送信については、送信予約が未だ完了しておらず、時刻t2が最初の送信タイミングから10msずらした時刻であることを示している。
【0019】
例えば図5Bに、エッジノード1Aにおけるフレームとスロットとの関係を模式的に示す。図5Bに示すように、可変時間長のスロットを含む固定長のフレームが周期的に繰り返されるようになっている。例えば、エッジノード1Aは、あるフレームにおけるスロット1においてデータパケットの送信予約のための制御パケット群をエッジノード1D宛に送信し、エッジノード1Dからの確認通知が返ってきた場合には、次のフレーム以降におけるスロット1においてエッジノード1Dとのパケット通信を行う。同様に、エッジノード1Aは、あるフレームにおけるスロット3において制御パケット群をエッジノード1B宛に送信し、エッジノード1Bからの確認通知が返ってきた場合には、次のフレーム以降におけるスロット3においてエッジノード1Bとのパケット通信を行う。なお、スロットIDは、データパケットの送信予約を行う際に、スロットの並び順とは関係なく、エッジノード1により割り振られる。そのため、フレーム内におけるスロットは、スロットIDの順番で並んでいるとは限らない。また、本実施の形態では、制御パケット群を送信するスロットのことを制御スロットと呼び、データパケット群を送信するスロットをデータスロットと呼ぶことにする。
【0020】
なお、図6に、本実施の形態における制御パケット群及びデータパケット群の構成例を示しておく。図6(a)は、制御パケット群の構成例を示す。図6(a)に示すように、制御パケット群には、スロットIDと予約を表すデータと通信経路情報とを含む複数の制御パケットが含まれる。なお、制御パケット群の先頭の制御パケットは、開始を表すデータをさらに含み、最終の制御パケットは、終了を表すデータをさらに含む。なお、1フレーム先の一定期間で送信しようとしているデータパケット群に合わせて制御パケット群を用意する。例えばデータパケット群の長さの上限及び下限を決めておき、送信すべきデータパケットの量を考慮してデータパケット群の長さを決定するようにしてもよい。また、デフォルトの長さを決めておき、デフォルトの長さを用いるようにしてもよい。また、図6(b)に示すように、データパケット群には、スロットIDと開始を表すデータとを含む制御パケットと、1又は複数のデータパケットと、スロットIDと終了を表すデータとを含む制御パケットとが含まれる。なお、制御パケット群を送信することによって宛先エッジノードまでの通信経路中の中継ノードでパケット衝突が起きないことを確認した後で、データパケット群を送信することになるが、パケット衝突が起きないことが保証されているのは、前のフレームで制御パケット群を送信していた期間である。この期間について、予約状態を維持するためには、制御パケット群と同じ長さを有するデータパケット群を周期的に送信する。例えばキューが一時的に空になっても、NULLパケットなどを含むデータパケット群を周期的に送信しておけば、予約状態を維持できるので、当該キューに新たなデータパケットが格納された場合に、改めて制御パケット群を送信しなくても済む。
【0021】
また、図7に、図1に示した中継ルータ3の機能ブロック図を示す。中継ルータ3は、スイッチ部31と、中継テーブル格納部32と、衝突検出部33と、衝突発生通知部34とを有する。なお、中継ルータ3は、データパケット用のバッファを持たず、バッファレスでデータパケット群の中継を行う。
【0022】
スイッチ部31は、複数の入出力IFと接続されており、制御パケット群を受信した際に中継テーブル格納部32にデータを登録したり、中継テーブル格納部32に格納されているデータに従ってIFの切り替えを行ったりする。衝突検出部33は、IFを流れるパケットを監視し、ある入力IFにおいてデータパケット群又は他の制御パケット群を受信している間に、出力IFが一致する制御パケット群を他の入力IFにおいて受信するという衝突の発生を検出する。衝突発生通知部34は、衝突検出部33により上記のような衝突が検出された場合、調整時間を計算し、調整時間を含む衝突発生通知を送信元エッジノードに送信する。
【0023】
中継テーブル格納部32には、例えば図8に示すような中継テーブルが格納される。図8の例では、中継テーブルには、入力(IN)の列と、出力(OUT)の列とが含まれる。入力の列には、パケットが入力されるIFの識別情報とスロットIDとが格納されるようになっている。また、出力の列には、パケットの出力先となるIFの識別情報が格納されるようになっている。例えば最初のパケットにスロット1が設定され且つeth0のIFから入力されるデータパケット群については、eth1のIFへ出力することを示している。
【0024】
また、図9に、図1に示した管理サーバ5の機能ブロック図を示す。管理サーバ5は、経路情報格納部51と、制御部52と、受信部53と、経路情報取得部54と、送信部55とを有する。経路情報格納部51には、送信元エッジノード及び宛先エッジノードの組み合わせ毎に、当該送信元エッジノードから当該宛先エッジノードまでの最短経路上のノードの識別情報及び各ノードが使用すべき入出力IFの識別情報を含む通信経路情報が予め格納されている。制御部52は、管理サーバ5の起動時に、フレーム長を表すデータを各エッジノードへ送信するよう送信部55に指示する。受信部53は、送信元エッジノードから宛先エッジノードまでの通信経路の問い合わせをエッジノードから受信すると、当該問い合わせを経路情報取得部54に出力する。経路情報取得部54は、問い合わせに係る送信元エッジノード及び宛先エッジノードに対応する通信経路情報を経路情報格納部51から取得し、取得した通信経路情報を問い合わせの送信元へ送信するよう送信部55に指示する。送信部55は、制御部52又は経路情報取得部54からの指示に応じてデータを送信する。
【0025】
次に、図10乃至図12を用いて、データパケットの送信予約の流れについて説明する。ここでは、エッジノード1Aが、エッジノード1Cへのパケット送信を予約する場面を例に説明する。最初に、図10を用いて、通信経路中の中継ノード3A及び3Bにおいて衝突が発生せずに、予約が完了する場合について説明する。まず、エッジノード1Aは、エッジノード1Cを宛先エッジノードとする新たなレコードをスケジュールDB16に登録する。また、エッジノード1Aは、エッジノード1Cまでの通信経路の問い合わせを管理サーバ5に送信する。そして、エッジノード1Aは、通信経路の問い合わせの応答として管理サーバ5から通信経路情報を受信すると、受信した通信経路情報と当該通信経路情報から特定される出力IFの識別情報とを追加したレコードに設定する。なお、通信経路は、「エッジノード1A−>中継ノード3A−>中継ノード3B−>エッジノード1C」であるものとする。また、エッジノード1Cへ送信すべきパケットが格納されているキューのIDを追加したレコードに設定する。また、新たなスロットID(識別子)を割り振り、追加したレコードに設定する。そして、エッジノード1Aは、自エッジノードにおける送信可能な期間から制御パケット群の送信タイミング及び送信時間を決定し、追加したレコードに設定し、さらに調整時間の累計を0で初期化する。
【0026】
そして、エッジノード1Aは、決定された送信タイミングにて、制御パケット群を送信する。この際、追加したレコードに設定されているスロットIDと通信経路情報とを制御パケット群内の制御パケットに設定する。
【0027】
そして、中継ノード3Aは、制御パケット群を受信すると、出力IFが制御パケット群の出力IFと一致するデータパケット群又は他の制御パケット群との衝突が起きていないか確認する。ここでは、衝突は起きていないものとする。そうすると、中継ノード3Aは、入力IFの識別情報と制御パケットに含まれるスロットIDと通信経路情報から特定される出力IFの識別情報とを中継テーブルに設定し、制御パケット群を当該出力IFに出力する。同様に、中継ノード3Bも制御パケット群を受信すると、出力IFが制御パケット群の出力IFと一致するデータパケット群又は他の制御パケット群との衝突が起きていないか確認する。ここでは、衝突は起きていないものとする。そうすると、中継ノード3Bは、入力IFの識別情報と制御パケットに含まれるスロットIDと通信経路情報から特定される出力IFの識別情報とを中継テーブルに設定し、制御パケット群を当該出力IFに出力する。
【0028】
そして、エッジノード1Cは、制御パケット群の先頭パケットを受信すると、制御パケット群に対する応答として確認信号(以下、確認通知とも呼ぶ)をエッジノード1A宛に送信する。なお、中継ノード3A及び3Bでは、制御パケット群の最終パケットを受信するまでは、エッジノード1Aとエッジノード1Cとの間でパケットが流れるようにスイッチングされている。従って、エッジノード1Aは、制御スロットの時間内に、エッジノード1Cからの確認通知を受信する。
【0029】
このように、通信経路中の中継ノード3A及び3Bにおいて衝突が起こらなければ、制御パケット群に対する応答としてエッジノード1Cからの確認通知がエッジノード1Aに返ってくる。この確認通知を受信したということは、データパケットの送信予約が完了したことを意味する。すなわち、1フレーム先の送信タイミングにて、データパケット群を送信することができる。なお、中継ノード3A及び3Bにおける中継テーブルには、スロットIDと入出力IFの識別情報とが登録されているので、エッジノード1Aからエッジノード1Cへのデータパケットは適切に中継される。
【0030】
次に、図11を用いて、通信経路中の中継ノード3Aにおいて衝突が発生する場合について説明する。ここでは、図11に示すように、エッジノード1Bがデータパケット群をエッジノード1C宛に送信するのに対し、エッジノード1Aが制御パケット群をエッジノード1C宛に送信する場面を想定する。なお、エッジノード1Bとエッジノード1Cとの通信については事前に予約が完了しているものとする。
【0031】
エッジノード1Aは、上で述べたような処理を行い、制御パケット群をエッジノード1C宛に送信する。ここでは、中継ノード3Aは、エッジノード1Bからのデータパケット群を中継している間に、エッジノード1Aからの制御パケット群を受信したものとする。そうすると、中継ノード3Aは、衝突発生を検出し、受信した制御パケット群については廃棄する。一方、エッジノード1Bからのデータパケット群については、バッファレスで転送し続ける。そして、中継ノード3Aは、制御パケット群の先頭パケットの受信開始からデータパケット群の最終パケットの受信終了までの時間である調整時間δtを計測し、調整時間を含む衝突信号(以下、衝突発生通知とも呼ぶ)をエッジノード1A宛に送信する。
【0032】
そして、エッジノード1Aは、制御スロットの時間内に、中継ノード3Aから調整時間δtを含む衝突発生通知を受信する。そして、エッジノード1Aは、制御パケット群の送信タイミングを調整時間δtだけ後にずらした新たな送信タイミングを計算し、新たな送信タイミングを、スケジュールDB16内の該当するレコードに設定し、当該レコードにおける調整時間の累計に調整時間δtを加算する。そして、エッジノード1Aは、調整時間の累計がフレーム長未満であるか判断し、調整時間の累計がフレーム長未満であれば、新たな送信タイミングで、制御パケット群をエッジノード1C宛に再送信する。
【0033】
このように送信タイミングを調整することで、中継ノード3Aでは、エッジノード1Bからのデータパケット群の受信終了後に、エッジノード1Aからの制御パケット群を受信することとなるため、エッジノード1Bからのデータパケット群との衝突は起こらない。この場合、中継ノード3Aは、制御パケット群を受信し、衝突が起こらないことを確認し、入力IFの識別情報と制御パケットに含まれるスロットIDと通信経路情報から特定される出力IFの識別情報とを中継テーブルに設定し、制御パケット群を当該出力IFに出力する。この後、中継ノード3Bにおいても衝突が起こらなければ、上で述べたように、エッジノード1Aは、エッジノード1Cからの確認通知を受信し、データパケットの送信予約が完了する。
【0034】
なお、送信タイミングを調整時間δtだけずらすことで、今回発生した衝突を回避できるようになるが、通信経路中の他の中継ノードで新たな衝突が発生する可能性もある。他の中継ノードで新たな衝突が発生した場合には、当該他の中継ノードから送信されてくる衝突発生通知に含まれる調整時間を用いて、さらに送信タイミングを調整し、調整後の送信タイミングで、制御パケット群を再送信すればよい。但し、調整時間の累計がフレーム長以上になった場合は、他のエッジノードの通信状況との関係で、衝突を起こさずに通信できるスロットが存在しないということになる。従って、この場合は、処理を終了する。なお、通信状況に応じてスロットが解放されるようになっている場合には、送信元エッジノードは、一定時間経過後に、調整時間の累計を0で初期化し、データパケットの送信予約を改めて行うようにすればよい。
【0035】
例えば図12に、衝突発生時のシーケンス例を示す。まず、送信元エッジノードが、時刻0(すなわち、フレーム開始時刻)のときに制御パケット群を宛先エッジノード宛に送信する(図12:ステップ(1))。なお、図12における「Req」は、制御パケット群の先頭パケットを表している。また、括弧内の数値は、送信タイミングを表している。ここでは、中継ノードAにおいて衝突が発生したものとする。そうすると、中継ノードAは、調整時間δt1を含む衝突発生通知を送信元エッジノードに送信する(ステップ(2))。なお、「Resp(NG,δt1)」は、調整時間δt1を含む衝突発生通知を表している。
【0036】
そして、送信元エッジノードは、制御スロットの時間内に、中継ノードAから調整時間δt1を含む衝突発生通知を受信すると、調整時間δt1を用いて新たな送信タイミングを計算する。ここでは、元の送信タイミングが時刻0であったため、δt1が新たな送信タイミングとなる。そして、送信元エッジノードは、時刻δt1のときに制御パケット群を宛先エッジノード宛に再送信する(ステップ(3))。
【0037】
そして、中継ノードAは、送信元エッジノードから制御パケット群を受信すると、衝突が起きていないことを確認し、制御パケット群を中継ノードBへ転送する(ステップ(4))。そして、中継ノードBは、中継ノードAから制御パケット群を受信すると、衝突が起きていないことを確認し、制御パケット群を宛先エッジノードに転送する(ステップ(5))。
【0038】
そして、宛先エッジノードは、制御パケット群の先頭パケットを受信すると、確認通知を送信元エッジノード宛に送信する(ステップ(6))。なお、「Resp(OK)」は、確認通知を表している。そして、中継ノードBは、宛先エッジノードから確認通知を受信すると、当該確認通知を中継ノードAに転送する(ステップ(7))。同様に、中継ノードAは、中継ノードAから確認通知を受信すると、当該送信元エッジノードに転送する(ステップ(8))。そして、送信元エッジノードは、制御スロットの時間内に、宛先エッジノードからの確認通知を受信し、データパケットの送信予約が完了する。
【0039】
次に、図13乃至図21を用いて、図1に示したネットワークシステムの処理の詳細を説明する。最初に、図13及び図14を用いて、外部ネットワークからパケットを受信した際のエッジルータ1の処理を説明する。まず、パケット受信部11は、通信部19を介して外部ネットワークからパケットを受信し(図13:ステップS1)、パケット分類部12に出力する。そして、パケット分類部12は、パケット受信部11からパケットを受信すると、格納先となるキュー121が存在しているか判断する(ステップS3)。具体的には、受信したパケットのIPヘッダから宛先IPアドレスを取得し、宛先IPアドレスを用いて、宛先ノードテーブル格納部13に格納されている宛先ノードテーブルを検索し、宛先エッジノードを特定する。そして、特定された宛先エッジノードの識別子を用いて、キュー管理テーブル格納部14に格納されているキュー管理テーブルを検索する。特定された宛先エッジノードの識別子がキュー管理テーブルに登録されていれば、格納先となるキュー121が存在していると判断する。なお、キュー管理テーブルにおいて、特定された宛先エッジノードの識別子に対応付けて格納されているキューIDを持つキュー121が格納先となる。一方、特定された宛先エッジノードの識別子がキュー管理テーブルに登録されていなければ、格納先となるキュー121が存在していないと判断する。格納先となるキュー121が存在すると判断された場合(ステップS3:Yesルート)、パケット分類部12は、格納先となるキュー121にパケットを格納し(ステップS5)、処理を終了する。なお、キュー121に格納されたパケットは、スケジュールDB16に格納されているデータに従って、スケジューラ15により、宛先エッジノード宛に送信される。
【0040】
一方、格納先となるキュー121が存在していないと判断された場合(ステップS3:Noルート)、パケット分類部12は、格納先となるキュー121を生成し、当該キュー121にパケットを格納する(ステップS7)。また、パケット分類部12は、生成したキュー121を識別するためのキューIDと、宛先エッジノードの識別子とを含む新たなレコードをキュー管理テーブル格納部14のキュー管理テーブルに登録する(ステップS9)。そして、パケット分類部12は、生成したキュー121に格納されているパケットの送信予約を行うようスケジューラ15に指示する。この際、パケット分類部12は、生成したキュー121のキューIDと宛先エッジノードの識別子とをスケジューラ15に出力する。
【0041】
そして、スケジューラ15は、パケット分類部12からパケットの送信予約を行う旨の指示と共に、キューIDと宛先エッジノードの識別子とを受信すると、スケジュールDB16に新たなレコード(以下、予約対象レコードと呼ぶ)を追加し、キューIDと宛先エッジノードの識別子とを設定する。そして、スケジューラ15は、宛先エッジノードまでの通信経路の問い合わせを制御線を介して管理サーバ5に送信する(ステップS11)。この問い合わせには、送信元エッジノードの識別子(すなわち、自エッジノードの識別子)と宛先エッジノードの識別子とが含まれる。そして、スケジューラ15は、通信経路の問い合わせに対する応答として管理サーバ5から通信経路情報を受信すると(ステップS13)、受信した通信経路情報を、スケジュールDB16における予約対象レコードに設定する。また、スケジューラ15は、パケットを出力すべきIFの識別情報をスケジュールDB16における予約対象レコードに設定する。なお、いずれのIFに出力すべきかは通信経路情報から特定される。その後、スケジューラ15と送信タイミング計算部17と応答信号受信部18とが、スケジュールDB16における予約対象レコードを用いて送信予約処理を実施する(ステップS15)。その後、処理を終了する。なお、送信予約処理については図14を用いて説明する。
【0042】
まず、スケジューラ15が、スケジュールDB16に格納されているデータを用いて、送信タイミングと送信時間とを決定し、さらに新たなスロットIDを割り振る(図14:ステップS21)。スケジューラ15は、送信タイミングと送信時間とスロットIDとをスケジュールDB16内の予約対象レコードに設定する。また、スケジューラ15は、予約対象レコードにおける調整時間の累計の値を0に初期化する(ステップS22)。そして、スケジューラ15は、決定された送信タイミングで、スケジュールDB16内の予約対象レコードに設定されているデータを用いて、図6(a)に示したような制御パケット群を宛先エッジノード宛に送信する(ステップS23)。より具体的には、予約対象レコードに設定されているスロットID及び通信経路情報と予約を表すデータとを制御パケットに設定し、当該制御パケットを含む制御パケット群を、予約対象レコードに設定されている出力IFに出力する。
【0043】
その後、応答信号受信部18が、制御パケット群に対する応答として確認通知又は衝突発生通知を受信し(ステップS25)、受信した確認通知又は衝突発生通知を送信タイミング計算部17に出力する。なお、通信経路中のどの中継ノードにおいても衝突が起こらなければ、応答信号受信部18は、制御パケット群に対する応答として、宛先エッジノードからの確認通知を受信することになる。一方、通信経路中の中継ノードにおいて衝突が発生した場合には、応答信号受信部18は、制御パケット群に対する応答として、衝突が発生した中継ノードからの衝突発生通知を受信することになる。送信タイミング計算部17は、応答信号受信部18から確認通知を受信した場合には(ステップS27:Yesルート)、スケジュールDB16内の予約対象レコードにおける調整時間の累計の列に「予約完了」を設定する。この後、スケジューラ15が、1フレーム先の送信タイミングにて、データパケット群を宛先エッジノード宛に送信する(ステップS29)。そして、処理を終了し、元の処理に戻る。
【0044】
一方、送信タイミング計算部17は、応答信号受信部18から衝突発生通知を受信した場合には(ステップS27:Noルート)、衝突発生通知から調整時間δtを取得する(ステップS31)。そして、送信タイミング計算部17は、取得した調整時間δtをスケジュールDB16内の予約対象レコードにおける調整時間の累計の値に加算し(ステップS33)、調整時間の累計の値がフレーム長未満であるか判断する(ステップS35)。調整時間の累計の値がフレーム長以上である場合には(ステップS35:Noルート)、処理を終了し、元の処理に戻る。なお、調整時間の累計がフレーム長以上であるということは、他のエッジノードの通信状況との関係で、衝突を起こさずに通信できるスロットが存在しないということを意味する。
【0045】
一方、調整時間の累計の値がフレーム長未満であれば(ステップS35:Yesルート)、送信タイミング計算部17は、スケジュールDB16内の予約対象レコードに設定されている送信タイミングを調整時間δtだけ後にシフトさせた新たな送信タイミングを計算し、新たな送信タイミングを予約対象レコードに設定する(ステップS37)。そして、ステップS23の処理に戻る。なお、ステップS23の処理に戻ると、スケジューラ15により、新たな送信タイミングにて、制御パケット群が再送信される。
【0046】
次に、図15を用いて、送信元エッジノードから制御パケット群を受信した際のエッジルータ1の処理を説明する。スケジューラ15が、通信部19を介して送信元エッジノードからの制御パケット群の先頭パケットを受信すると(図15:ステップS41)、確認通知を送信元エッジノード宛に送信する(ステップS43)。なお、通信経路中の中継ノードでは、制御パケット群の最終パケットを受信するまでの間は、自エッジノードと送信元エッジノードとの間でパケットが流れるようにスイッチングされている。従って、送信元エッジノードは、制御スロットの時間内に確認通知を受信することになる。
【0047】
次に、図16を用いて、データパケット群を受信した際の中継ルータ3の処理について説明する。スイッチ部31は、ある入力IFにおいてデータパケット群の先頭パケットを受信すると(図16:ステップS51)、受信した先頭パケットからスロットIDを抽出する(ステップS53)。そして、スイッチ部31は、中継テーブル格納部32に格納されている中継テーブルにおいて、抽出したスロットIDと入力IFの識別情報とに対応する出力IFを特定する(ステップS55)。そして、スイッチ部31は、特定された出力IFにデータパケット群を出力する(ステップS57)。その後、スイッチ部31は、データパケット群の最終パケットを受信したかどうか判断する(ステップS59)。データパケット群の最終パケットを受信していなければ(ステップS59:Noルート)、ステップS57に戻り、特定された出力IFにデータパケット群を出力し続ける。
【0048】
一方、データパケット群の最終パケットを受信した場合(ステップS59:Yesルート)、スイッチ部31は、特定された出力IFに最終パケットを出力した後、当該出力IFへの出力を終了する(ステップS61)。そして、処理を終了する。
【0049】
なお、送信元エッジノードは、制御パケット群を用いて衝突が発生するか確認し、衝突が起こらないタイミングでデータパケット群を送信するようになっている。従って、中継ノードにおいてデータパケット群同士の衝突は起こらないため、バッファレスでデータパケット群を中継することができる。
【0050】
次に、図17を用いて、制御パケット群を受信した際の中継ルータ3の処理について説明する。まず、スイッチ部31が、スロットIDと通信経路情報とを含む制御パケットを含む制御パケット群を受信する(図17:ステップS71)。この際、制御パケット群の先頭パケットの受信開始時刻を記憶装置に記録しておく。そして、衝突検出部33が、出力先が制御パケット群の出力先と一致するデータパケット群又は他の制御パケット群との衝突が発生したかどうか判断する(ステップS73)。衝突が検出された場合(ステップS73:Yesルート)、衝突発生通知部34が、制御パケット群の先頭パケットの受信開始からデータパケット群の最終パケットの受信終了までの時間である調整時間δtを算出する(ステップS75)。例えば、データパケット群の最終パケットの受信終了時刻を記憶装置に記録する。そして、記憶装置に記録されている、制御パケット群の先頭パケットの受信開始時刻とデータパケット群の最終パケットの受信終了時刻とから調整時間δtを計算する。なお、制御パケット群の先頭パケットの受信開始時にタイマ(図示せず)をスタートさせ、データパケット群の終了パケットの受信終了までの時間を計測するようにしてもよい。また、制御パケット群同士の衝突が発生した場合には、後に受信した制御パケット群の先頭パケットの受信開始から、先に受信した制御パケット群の最終パケットの受信終了までの時間を調整時間δtとして算出する。そして、衝突発生通知部34は、調整時間δtを含む衝突発生通知を送信元エッジノード宛に送信する(ステップS77)。なお、衝突が発生した場合には、制御パケット群(制御パケット群同士の衝突の場合には、後に受信した制御パケット群)は廃棄される。その後、処理を終了する。
【0051】
一方、衝突が検出されなければ(ステップS73:Noルート)、スイッチ部31は、スロットIDと入力IFの識別情報と通信経路情報から特定される出力IFの識別情報とを中継テーブルに仮登録する(ステップS79)。なお、通信経路中の他の中継ノードにおいて衝突が発生する可能性があるため、ここでは仮登録とする。そして、スイッチ部31は、受信した制御パケット群を出力IFに出力する(ステップS81)。
【0052】
その後、スイッチ部31は、制御パケット群に対する応答として確認通知又は衝突発生通知を受信する(ステップS83)。なお、通信経路中のどの中継ノードにおいても衝突が起こらなければ、スイッチ部31は、制御パケット群に対する応答として、宛先エッジノードからの確認通知を受信することになる。一方、通信経路中の中継ノードにおいて衝突が発生した場合には、スイッチ部31は、制御パケット群に対する応答として、衝突が発生した中継ノードからの衝突発生通知を受信することになる。ステップS83において受信した通知が衝突発生通知である場合(ステップS85:Yesルート)、スイッチ部31は、ステップS79において中継テーブルに仮登録したデータを削除する(ステップS87)。その後、ステップS89の処理に移行する。
【0053】
一方、ステップS83において受信した通知が確認通知である場合には(ステップS85:Noルート)、ステップS89の処理に移行する。なお、この場合、ステップS79において仮登録したデータを本登録とみなし、送信されてくるデータパケット群の中継に使用する。
【0054】
そして、スイッチ部31は、ステップS83において受信した確認通知又は衝突発生通知を送信元エッジノード宛に送信する(ステップS89)。そして、処理を終了する。
【0055】
以上のような処理を実施することによって、衝突が発生した場合には、調整時間を含む衝突発生通知を送信元エッジノードに通知するので、送信元エッジノードは送信タイミングを適切に調整できるようになる。また、スロットIDと入出力IFの識別情報とを中継テーブルに登録しておくことで、この後送信されてくるデータパケット群をバッファレスで中継できるようになる。
【0056】
なお、上で述べた衝突発生通知及び確認通知については、例えばIPパケットのIPヘッダに含まれるオプションフィールドを利用するようにしてもよい。図18に、IPパケット及びIPヘッダの模式図を示す。なお、IPヘッダは周知であるから詳しく述べないが、送信側IPアドレス、受信側IPアドレス、オプションフィールドなどを含むようになっている。例えば衝突発生通知の場合、図19(a)に示すようなデータをオプションフィールドに設定するようにする。図19(a)では、オプションフィールドには、「タイプ」と、「長さ」と、「信号種別」と、「時間単位」と、「調整時間」とが含まれる。ここでは、オプションフィールドの内容が「衝突・確認信号」であることを表すコードを新たに用意し、当該コードを「タイプ」に設定するようにする。また、「長さ」は、オプションフィールドのデータ長(単位:バイト)を表す。また、「信号種別」には、1(=衝突発生通知)を設定するようにする。また、「時間単位」は、調整時間の単位(0:s、1:ms、2:μs)を表す。また、「調整時間」は、0〜232の範囲内の値で表される。
【0057】
また、例えば確認通知の場合、図19(b)に示すようなデータをオプションフィールドに設定する。図19(b)の例では、オプションフィールドには、「タイプ」と、「長さ」と、「信号種別」と、「パディング」とが含まれる。なお、「タイプ」及び「長さ」は、衝突発生通知の場合と同じである。また、確認通知の場合には、「信号種別」には、0(=確認通知)を設定するようにする。
【0058】
なお、上では、中継ノードが2つのエッジノードと接続されるようなネットワーク構成を示したが、中継ノードが3以上のエッジノードと接続されるような場合もある。図20に、例えば中継ノードが3つのエッジノードと接続されるネットワーク構成の一例を示す。図20では、中継ノード3Aはエッジノード1Aとエッジノード1Bとエッジノード1Cと中継ノード3Bと接続され、中継ノード3Bはエッジノード1Dと接続されている。なお、図20では、エッジノード1Cとエッジノード1Dとの通信については事前に予約が完了しているものとし、エッジノード1Aとエッジノード1Bとは、エッジノード1C宛に制御パケット群を送信しようとしているものとする。
【0059】
ここで、例えば図21に示すような衝突が中継ノード3Aにおいて発生したものとする。図21では、中継ノード3Aがエッジノード1Cからのデータパケット群を受信している間に、エッジノード1Aからの制御パケット群とエッジノード1Bからの制御パケット群とを受信したことを示している。この場合、中継ノード3Aは、エッジノード1A及び1Bからの制御パケット群のうち、先に受信した制御パケット群(図21ではエッジノード1Aからの制御パケット群)については、エッジノード1Aからの制御パケット群の先頭パケットの受信開始からデータパケット群の最終パケットの受信終了までの時間T1(=δt1)を算出し、調整時間δt1を含む衝突発生通知をエッジノード1Aに送信する。
【0060】
一方、後に受信した制御パケット群(図21ではエッジノード1Bからの制御パケット群)については、ステップS75において、エッジノード1Bからの制御パケット群の先頭パケットの受信開始からデータパケット群の最終パケットの受信終了までの時間T2を算出し、T2とエッジノード1Aからの制御パケット群の長さTSLとの和を調整時間δt2として算出するようにすればよい。例えばT2を調整時間δt2とすると、エッジノード1Aとエッジノード1Bとから調整後の送信タイミングで再送信される制御パケット群が衝突を起こすことになるためである。そして、この調整時間δt2を含む衝突発生通知をエッジノード1Bに送信するようにすればよい。
【0061】
[実施の形態2]
次に、図22乃至図26を用いて、第2の実施の形態について説明する。なお、本実施の形態では、衝突が発生した場合、中継ノードが衝突発生通知を送信元エッジノードに送信すると共に、データパケット群の最終パケットの受信終了後に制御パケット群を次の中継ノードに送信するようにする。これにより、調整時間分ずらしたタイミングで通信可能かどうかを先行して調べる。
【0062】
図22に、本実施の形態におけるシーケンス例を示す。なお、図22は、衝突発生時のシーケンス例を示している。まず、送信元エッジノードが、時刻0(すなわち、フレーム開始時刻)のときに制御パケット群を宛先エッジノード宛に送信する(図22:ステップ(11))。なお、図22における「Req」は、制御パケット群の先頭パケットを表している。また、括弧内の数値は、送信タイミングを表している。ここでは、中継ノードAにおいて衝突が発生したものとする。そうすると、中継ノードAは、調整時間δt1を含む衝突発生通知を送信元エッジノードに送信すると共に、調整時間δt1ずらしたタイミングで制御パケット群を中継ノードBに送信する(ステップ(12)及び(13))。図22の例では、時刻0のときに送信元エッジノードから制御パケット群が送信され、同一フレーム内の時刻δt1のときに中継ノードAから制御パケット群が送信されることになる。なお、「Resp(NG,δt1)」は、調整時間δt1を含む衝突発生通知を表している。
【0063】
そして、中継ノードBは、中継ノードAから制御パケット群を受信すると、衝突が起きていないことを確認し、制御パケット群を宛先エッジノードに転送する(ステップ(14))。そして、宛先エッジノードは、制御パケット群の先頭パケットを受信すると、確認通知を送信元エッジノード宛に送信する(ステップ(15))。なお、「Resp(OK)」は、確認通知を表している。そして、中継ノードBは、宛先エッジノードから確認通知を受信すると、当該確認通知を中継ノードAに転送する(ステップ(16))。
【0064】
また、送信元エッジノードは、制御スロットの時間内に、中継ノードAから調整時間δt1を含む衝突発生通知を受信すると、調整時間δt1を用いて新たな送信タイミングを計算する。ここでは、元の送信タイミングが時刻0であったため、δt1が新たな送信タイミングとなる。そして、送信元エッジノードは、時刻δt1のときに制御パケット群を宛先エッジノード宛に再送信する(ステップ(17))。そして、中継ノードAは、送信元エッジノードからの制御パケット群と、中継ノードBからの確認通知とを受信すると、確認通知を送信元エッジノードに送信する(ステップ(18))。そして、送信元エッジノードは、制御スロットの時間内に、宛先エッジノードからの確認通知を受信し、データパケットの送信予約が完了する。
【0065】
図23に、本実施の形態における中継ルータ3の機能ブロックを示す。なお、本実施の形態についても図1に示したようなネットワークシステム100を想定する。また、エッジルータ1及び管理サーバ5の機能ブロック図は、第1の実施の形態のものと同じである。
【0066】
本実施の形態における中継ルータ3は、スイッチ部31と、中継テーブル格納部32と、衝突検出部33と、衝突発生通知部34と、バッファ35と、制御部36とを有する。なお、スイッチ部31と、中継テーブル格納部32と、衝突検出部33と、衝突発生通知部34とは、基本的には第1の実施の形態と同じものである。但し、本実施の形態では、スイッチ部31は、受信した制御パケット群をコピーしてバッファ35に一時的に格納する。また、衝突検出部33は、衝突を検出した場合には、その旨を制御部36に通知する。制御部36は、衝突検出部33から衝突が発生した旨の通知を受信すると、データパケット群の最終パケットの受信終了後に、バッファ35に一時的に保管されている制御パケット群をスイッチ部31を介して出力IFに出力する。
【0067】
図24乃至図26を用いて、制御パケット群を受信した際の中継ルータ3の処理について説明する。なお、他の処理については、基本的には第1の実施の形態と同じである。まず、スイッチ部31が、スロットIDと通信経路情報とを含む制御パケットを含む制御パケット群を受信する(図24:ステップS91)。この際、制御パケット群の先頭パケットの受信開始時刻を記憶装置に記録しておく。また、スイッチ部31は、受信した制御パケット群をコピーしてバッファ35に格納する。そして、衝突検出部33が、出力先が制御パケット群の出力先と一致するデータパケット群又は他の制御パケット群との衝突が発生したかどうか判断する(ステップS93)。衝突が検出されなければ(ステップS93:Noルート)、スイッチ部31は、スロットIDと入力IFの識別情報と通信経路情報から特定される出力IFの識別情報とを中継テーブルに仮登録する(ステップS95)。そして、スイッチ部31は、受信した制御パケット群を出力IFに出力する(ステップS97)。
【0068】
その後、スイッチ部31は、ステップS97において出力した制御パケット群に対する応答として確認通知又は衝突発生通知を受信する(ステップS99)。なお、通信経路中のどの中継ノードにおいても衝突が起こらなければ、スイッチ部31は、制御パケット群に対する応答として、宛先エッジノードからの確認通知を受信することになる。一方、通信経路中の中継ノードにおいて衝突が発生した場合には、スイッチ部31は、制御パケット群に対する応答として、衝突が発生した中継ノードからの衝突発生通知を受信することになる。ステップS99において受信した通知が衝突発生通知である場合(ステップS101:Yesルート)、スイッチ部31は、ステップS95において中継テーブルに仮登録したデータを削除する(ステップS103)。その後、ステップS105の処理に移行する。
【0069】
一方、ステップS99において受信した通知が確認通知である場合には(ステップS101:Noルート)、ステップS105の処理に移行する。なお、この場合、ステップS95において仮登録したデータを本登録とみなし、送信されてくるデータパケット群の中継に使用する。
【0070】
そして、スイッチ部31は、ステップS99において受信した確認通知又は衝突発生通知を送信元エッジノード宛に送信する(ステップS105)。なお、衝突が検出されなかった際の処理(ステップS95乃至S105)は、第1の実施の形態における処理(ステップS79乃至S89)と同じである。その後、端子Aを介して図26に移行し、処理を終了する。
【0071】
一方、衝突が検出された場合(ステップS93:Yesルート)、処理は端子Bを介して図25に移行する。
【0072】
図25の説明に移行して、端子Bの後、衝突発生通知部34が、制御パケット群の先頭パケットの受信開始からデータパケット群の最終パケットの受信終了までの時間である調整時間δtを算出する(図25:ステップS107)。そして、衝突発生通知部34は、調整時間δtを含む衝突発生通知を送信元エッジノード宛に送信する(ステップS109)。なお、ステップS107及びS109は、上で説明したステップS75及びS77と同じであるため、ここでは詳細な説明は省略する。
【0073】
その後、制御部36が、衝突していたデータパケット群の最終パケットの受信終了後に、バッファ35に格納されている制御パケット群をスイッチ部31を介して出力IFに出力する(ステップS111)。制御パケット群同士の衝突の場合には、先に受信した制御パケット群の最終パケットの受信終了後に、バッファ35に格納されている制御パケット群(すなわち、後に受信した制御パケット群)をスイッチ部31を介して出力IFに出力する。そして、制御部36は、内部状態を「応答待ち」に設定する(ステップS113)。
【0074】
なお、ステップS109において衝突発生通知を送信元エッジノードに送信しているので、この後、送信元エッジノードから新たな送信タイミングで再送信される制御パケット群を受信することになる。また、ステップS111において制御パケット群を出力IFに出力しているので、この制御パケット群に対する応答として、確認通知又は衝突発生通知を受信することになる。
【0075】
そして、制御部36は、送信元エッジノードから再送信される制御パケット群を受信したかどうか判断する(ステップS115)。送信元エッジノードから再送信される制御パケット群を受信したと判断された場合(ステップS115:Yesルート)、処理は端子Cを介して図26に移行する。
【0076】
一方、送信元エッジノードから再送信される制御パケット群を受信していないと判断された場合(ステップS115:Noルート)、制御部36は、ステップS111において出力した制御パケット群に対する応答(すなわち、確認通知又は衝突発生通知)を受信したかどうか判断する(ステップS117)。制御パケット群に対する応答を受信していないと判断された場合には(ステップS117:Noルート)、ステップS115に戻る。
【0077】
一方、制御パケット群に対する応答を受信したと判断された場合(ステップS117:Yesルート)、制御部36は、制御パケット群に対する応答として衝突発生通知を受信したかどうか判断する(ステップS119)。制御パケット群に対する応答として衝突発生通知を受信した場合(ステップS119:Yesルート)、制御部36は、内部状態を「応答NG」に設定する(ステップS121)。その後、処理はステップS115に戻る。一方、制御パケット群に対する応答として確認通知を受信した場合(ステップS119:Noルート)、制御部36は、内部状態を「応答OK」に設定する(ステップS123)。その後、処理はステップS115に戻る。なお、制御部36は、受信した確認通知又は衝突発生通知をバッファ35に格納しておく。
【0078】
図26の説明に移行して、端子Cの後、制御部36は、内部状態が「応答待ち」であるかどうか判断する(図26:ステップS125)。上で説明したように、ステップS111において出力した制御パケット群に対する応答を受信した場合には、ステップS121又はS123の処理が実施され、内部状態は「応答NG」又は「応答OK」に設定される。従って、制御パケット群に対する応答を本ステップより前に受信している場合には、内部状態は「応答NG」又は「応答OK」となっており、制御パケット群に対する応答を本ステップより前に受信していなければ、内部状態は「応答待ち」となっている。内部状態が「応答待ち」ではない場合(ステップS125:Noルート)、すなわち内部状態が「応答NG」又は「応答OK」である場合には、ステップS133の処理に移行する。
【0079】
一方、内部状態が「応答待ち」である場合(ステップS125:Yesルート)、制御部36は、一定時間経過後、内部状態を再確認する(ステップS127)。なお、図26では図示していないが、一定時間経過するまでの間に、制御パケット群に対する応答を受信した場合には、本ステップの処理とは別スレッドで上で説明したステップS117乃至S123の処理が実施されるようになっているものとする。従って、正常動作中であれば、一定時間経過するまでの間に、制御パケット群に対する応答を受信し、ステップS121又はS123の処理によって、内部状態が「応答NG」又は「応答OK」に設定されるはずである。そして、制御部36が一定時間経過後に内部状態を再確認した結果、内部状態が「応答待ち」ではない場合(ステップS129:Noルート)、ステップS133の処理に移行する。
【0080】
一方、一定時間経過後に内部状態を再確認した結果、内部状態が「応答待ち」のままである場合(ステップS129:Yesルート)、制御部36は、一定時間経過しても応答が返ってこないため、異常状態と判断する。そして、制御部36は、異常発生通知を送信元エッジノード宛に送信する(ステップS131)。その後、処理を終了する。
【0081】
また、ステップS133の処理に移行して、制御部36は、内部状態が「応答OK」であるかどうか判断する(ステップS133)。内部状態が「応答OK」であると判断された場合(ステップS133:Yesルート)、制御部36は、スロットIDと入力IFの識別情報と通信経路情報から特定される出力IFの識別情報とを中継テーブルに登録する(ステップS135)。なお、内部状態が「応答OK」であると判断されるのは、ステップS111において出力した制御パケット群に対する応答として確認通知を受信している場合である。そして、制御部36は、バッファ35に格納してある確認通知を送信元エッジノード宛に送信する(ステップS137)。その後、処理を終了する。
【0082】
一方、内部状態が「応答OK」ではないと判断された場合(ステップS133:Noルート)、すなわち内部状態が「応答NG」であると判断された場合、ステップS139の処理に移行する。なお、内部状態が「応答NG」であると判断されるのは、ステップS111において出力した制御パケット群に対する応答として衝突発生通知を受信している場合である。そして、制御部36は、バッファ35に格納してある衝突発生通知を送信元エッジノード宛に送信する(ステップS139)。その後、処理を終了する。
【0083】
以上のような処理を実施することによって、通信経路中の他の中継ノードにおいて衝突が発生するかどうかを先行して調べることができる。
【0084】
[実施の形態3]
次に、図27乃至図37を用いて、第3の実施の形態について説明する。なお、本実施の形態では、送信元エッジノードが、データパケットの送信に利用可能な期間を表すデータを含む制御パケットを出力し、通信経路中の中継ノードでは、利用可能期間と自ノードの空き期間とで重複する期間を残して次の中継ノードに出力するようにする。そして、最終的に残った期間を送信元エッジノードに返し、送信元エッジノードは、最終的に残った期間から送信タイミングを決定する。なお、エッジノード及び中継ノードは、管理サーバ5からフレーム長を表すデータを受信し、そのフレーム長に従って動作する。但し、各ノードのフレーム開始タイミングは同期されていないものとする。
【0085】
図27に、本実施の形態におけるシーケンス例を示す。まず、送信元エッジノードが、制御パケット群を宛先エッジノード宛に送信する(図27:ステップ(21))。制御パケット群には、データパケット群の送信に利用可能な期間を表すデータと通信経路情報とを含む制御パケットが含まれる。ここでは、制御パケットには、0からTmaxまでの期間が利用可能期間として設定されているものとする。なお、図27における「Req」は、制御パケット群の先頭パケットを表している。
【0086】
そして、中継ノードAは、制御パケット群を受信すると、制御パケットに設定されている利用可能期間と、通信経路情報から特定される出力IFの空き期間との重複期間を特定する。ここでは、T1からTmaxまでの期間が重複期間として特定されたものとする。そして、中継ノードAは、重複期間を制御パケットに設定し、制御パケット群を中継ノードBに出力する(ステップ(22))。
【0087】
そして、中継ノードBは、制御パケット群を受信すると、制御パケットに設定されている利用可能期間と、通信経路情報から特定される出力IFの空き期間との重複期間を特定する。ここでは、T2からTmaxまでの期間が重複期間として特定されたものとする。そして、中継ノードBは、重複期間を制御パケットに設定し、制御パケット群を宛先エッジノードに出力する(ステップ(23))。
【0088】
宛先エッジノードは、中継ノードBから制御パケット群を受信すると、最終的に残った期間(T2〜Tmax)を設定した応答パケットを送信元エッジノード宛に送信する(ステップ(24))。なお、図27における「Resp」は、応答パケットを表している。そして、中継ノードBは、宛先エッジノードから応答パケットを受信すると、中継ノードAに転送する(ステップ(25))。また、中継ノードAは、中継ノードBから応答パケットを受信すると、送信元エッジノードに転送する(ステップ(26))。
【0089】
そして、送信元エッジノードは、応答パケットを受信すると、応答パケットに設定されている期間から送信タイミングを決定し、データパケットの送信を行う。なお、詳細は後で説明するが、各ノードのフレーム開始タイミングは同期されていないので、ノード間の時間差を考慮して重複期間を特定する。
【0090】
図28に、本実施の形態における中継ルータ3の機能ブロックを示す。なお、本実施の形態についても図1に示したようなネットワークシステム100を想定する。また、エッジルータ1及び管理サーバ5の機能ブロック図は、第1の実施の形態のものと同じである。
【0091】
本実施の形態における中継ルータ3は、スイッチ部31と、中継テーブル格納部32と、衝突検出部33と、時間差計算部37と、シフト時間格納部38と、期間データ処理部39とを有する。なお、スイッチ部31と、衝突検出部33とは、基本的には第1の実施の形態と同じものである。但し、本実施の形態では、スイッチ部31は、受信した制御パケット群を期間データ処理部39に出力したり、制御パケット群の先頭パケットの受信開始通知を時間差計算部37に出力したりする。また、衝突検出部33は、衝突を検出した場合には、その旨を期間データ処理部39に通知する。また、時間差計算部37は、スイッチ部31から受信開始通知を受信すると、自ノードにおけるフレーム開始時刻から制御パケット群の先頭パケットの受信開始までの時間(以下、シフト時間と呼ぶ)を計算し、シフト時間格納部38に格納する。また、期間データ処理部39は、スイッチ部31から制御パケット群を受信すると、中継テーブル格納部32及びシフト時間格納部38に格納されているデータとを用いて、制御パケットに設定されてる利用可能期間と空き期間との重複期間を特定するための処理を実施する。また、期間データ処理部39は、重複期間を制御パケットに設定し、制御パケット群をスイッチ部31を介して出力IFに出力する。
【0092】
本実施の形態における中継テーブル格納部32には、例えば図29に示すような中継テーブルが格納される。図29の例では、中継テーブルには、スロットIDの列と、入力IFの列と、出力IFの列と、予約期間の列とが含まれる。例えば、スロットID「1」が割り当てられているパケット送信については、時刻t1から時刻t2までの期間が予約されており、eth1のIFから入力されるデータパケットを、eth2のIFへ出力することを示している。なお、予約期間は、その中継ノードにおけるフレーム開始時刻を基準にした時刻で表される。
【0093】
また、シフト時間格納部38には、例えば図30に示すようなデータが格納される。図30の例では、シフト時間格納部38には、送信元エッジノードのアドレスと、宛先エッジノードのアドレスと、シフト時間とが格納されるようになっている。
【0094】
次に、外部ネットワークからパケットを受信した際のエッジルータ1の処理を説明する。なお、メインの処理フローは、上で説明した図13と同じであるが、ステップS15において、図14に示した送信予約処理の代わりに、図31に示すような処理(以下、送信予約処理2と呼ぶ)を実施する。以下、送信予約処理2について説明する。
【0095】
まず、スケジューラ15が、制御パケット群の送信予定時刻を決定し、新たなスロットIDを割り振る(図31:ステップS141)。スケジューラ15は、割り振ったスロットIDをスケジュールDB16内の予約対象レコードに設定する。そして、スケジューラ15は、スケジュールDB16に格納されているデータを用いて、決定された送信予定時刻を基準にデータパケット群の送信に利用可能な期間を表すデータ(以下、利用可能期間データとも呼ぶ)を生成する(ステップS143)。
【0096】
そして、スケジューラ15は、決定された送信予定時刻で、利用可能区間データとスロットIDと通信経路情報とを含む制御パケットを含む制御パケット群を宛先エッジノード宛に送信する(ステップS145)。
【0097】
その後、応答信号受信部18は、通信経路中の中継ノードにおいて衝突せずにデータパケット群を送信することが可能な送信可能期間を表すデータを含む応答パケットを受信し(ステップS147)、送信タイミング計算部17に出力する。
【0098】
そして、送信タイミング計算部17は、応答信号受信部18から応答パケットを受信すると、応答パケットに含まれる送信可能期間から、データパケット群の送信に用いる送信期間(すなわち、送信タイミング及び送信時間)を決定する(ステップS149)。なお、送信タイミング計算部17は、送信タイミング及び送信時間をスケジュールDB16内の予約対象レコードに設定し、調整時間の累計の列に「予約完了」を設定する。
【0099】
この後、スケジューラ15が、1フレーム先の送信期間において、データパケット群を宛先エッジノード宛に送信する(ステップS151)。この際、データパケット群の先頭パケットには、スケジュールDB16内の予約対象レコードに含まれるスロットIDを設定する。そして、処理を終了し、元の処理に戻る。
【0100】
なお、利用可能期間データ及び送信可能期間データについては、IPヘッダのオプションフィールドに設定するようにしてもよい。この場合、例えば図32に示すようなデータをオプションフィールドに設定するようにする。図32の例では、オプションフィールドには、「タイプ」と、「長さ」と、「信号種別」と、「時間単位」と、「期間1の開始時刻」と、「期間1の終了時刻」と、・・・とが含まれる。なお、オプションフィールドの内容が、利用可能期間データ又は送信可能期間データであることを表すコードを新たに用意し、当該コードを「タイプ」に設定するようにする。また、「長さ」は、オプションフィールドのデータ長(単位:バイト)を表す。また、「信号種別」には、0(=制御パケット)、1(=応答パケット)を設定するようにする。また、「時間単位」は、調整時間の単位(0:s、1:ms、2:μs)を表す。また、例えば利用可能期間(もしくは送信可能期間)が連続する1つの期間であれば、「期間1の開始時刻」及び「期間1の終了時刻」のみが設定される。一方、複数の期間に分断されているような場合には、各期間について「開始時刻」及び「終了時刻」が設定される。
【0101】
次に、図33乃至図35を用いて、制御パケット群を中継する際の中継ルータ3の処理について説明する。まず、スイッチ部31が、データパケット群の送信に利用可能な期間を表すデータとスロットIDと通信経路情報とを含む制御パケットを含む制御パケット群を受信する(ステップS161)。この際、スイッチ部31は、制御パケット群の先頭パケットの受信開始時刻と制御パケットとを時間差計算部37に出力すると共に、制御パケットを期間データ処理部39に出力する。
【0102】
そして、時間差計算部37は、スイッチ部31から受信開始時刻及び制御パケットを受信すると、自中継ノードにおけるフレーム開始から制御パケット群の先頭パケットの受信開始までのシフト時間を計算し、シフト時間格納部38に格納する(ステップS163)。なお、時間差計算部37は、制御パケットのIPヘッダに設定されている送信元エッジノードのアドレスと宛先エッジノードのアドレスとに対応付けて、シフト時間をシフト時間格納部38に格納する
【0103】
そして、期間データ処理部39は、スイッチ部31から制御パケットを受信すると、制御パケットに含まれる通信経路情報から出力IFを特定し、中継テーブル格納部32に格納されているデータから、特定された出力IFの空き期間を特定する(ステップS165)。具体的には、中継テーブル格納部32から、特定された出力IFの識別情報を含むレコードを抽出し、抽出されたレコードに設定されている予約期間以外の期間を空き期間として特定する。そして、期間データ処理部39は、出力IFの空き期間を基準に、利用可能な期間をシフト時間だけシフトさせた上で出力IFの空き期間と利用可能な期間との重複期間を特定する(ステップS167)。本ステップの処理内容を図34に模式的に示す。
【0104】
図34の例では、1フレームが100msであり、期間1(開始時刻:50ms、終了時刻:100ms)が利用可能期間として制御パケットに設定されているものとする。なお、図34における「Req」は、制御パケットを表している。また、制御パケット群の先頭パケットの受信開始時刻は50msであるものとし、出力IFの空き期間として時刻0から時刻20までの期間が特定されたものとする。ここで、シフト時間は50msであり、出力IFの空き期間を基準に利用可能期間をシフト時間だけシフトさせると、図34に示すようになり、時刻0から時刻20までの期間が重複期間として特定される。
【0105】
なお、出力IFの空き期間と利用可能期間とで重複している部分がなかった場合には(ステップS169:Yesルート)、期間データ処理部39は、衝突発生通知を送信元エッジノード宛に送信する(ステップS171)。本実施の形態では、衝突発生通知を送信することで、送信可能期間がないことを送信元エッジノードに知らせる。そして、処理を終了する。
【0106】
一方、出力IFの空き期間と利用可能期間とで重複している部分があった場合には(ステップS169:Noルート)、端子Dを介して図35に移行する。
【0107】
図35の説明に移行して、端子Dの後、期間データ処理部39は、重複期間を表すデータを制御パケットに設定し、制御パケット群をスイッチ部31を介して出力IFに出力する(ステップS173)。例えば図34の例では、開始時刻:0、終了時刻:20が制御パケットに設定される。
【0108】
そして、期間データ処理部39は、スロットIDと入力IFの識別情報と出力IFの識別情報とを中継テーブル格納部32に登録し、重複期間を予約期間として中継テーブル格納部32に登録する(ステップS175)。なお、この時点では、重複期間のうちいずれの部分が実際にデータパケット群の送信に使用されるか分からないため、重複期間を予約期間として登録する。
【0109】
その後、スイッチ部31は、制御パケット群に対する応答として、送信可能期間を表すデータを含む応答パケット又は衝突発生通知を受信し(ステップS177)、期間データ処理部39に出力する。なお、制御パケット群が宛先エッジノードまで到達した場合には、スイッチ部31は、宛先エッジノードから応答パケットを受信することになる。一方、通信経路中の中継ノードにおいて重複期間がないと判断された場合には、スイッチ部31は、中継ノードから衝突発生通知を受信することになる。
【0110】
そして、期間データ処理部39は、スイッチ部31から衝突発生通知を受信した場合には(ステップS179:Yesルート)、ステップS175において中継テーブルに登録したデータを削除する(ステップS181)。そして、期間データ処理部39は、衝突発生通知を送信元エッジノード宛に送信する(ステップS183)。その後、端子Eを介して図33に戻り、処理を終了する。
【0111】
一方、期間データ処理部39は、スイッチ部31から応答パケットを受信した場合には(ステップS179:Noルート)、応答パケットのIPヘッダに含まれる送信側IPアドレス及び受信側IPアドレスを用いてシフト時間格納部38を検索し、送信元エッジノード及び宛先エッジノードのアドレスに対応するシフト時間を用いて、送信可能期間を更新する(ステップS185)。本ステップの処理については図34を用いて具体的に説明する。
【0112】
図34において、中継ノードAは、0msから20msまでの期間を重複期間として特定し、当該重複期間(開始時刻:0ms、終了時刻:20ms)を制御パケットに設定して次のノードに出力するようになっている。その後、例えば、中継ノードAが、送信可能期間(開始時刻:0、終了時刻:20)を表すデータを含む応答パケットを受信したものとする。図34に示すように、中継ノードAにおける時刻0から時刻20までの期間は、送信元における時刻50から時刻70までの期間に該当する。従って、中継ノードAは、送信可能期間を送信元における時刻に直してから応答パケットを送信元に出力するようにする。図34の例では、シフト時間として50msが算出されており、送信可能期間の開始時刻は、0−50=−50msとなり、終了時刻は、20−50=−30msとなる。ここで、1フレームが100msであったとすると、開始時刻は、mod(−50,100)=50msとなり、終了時刻は、mod(−30,100)=70となる。
【0113】
そして、期間データ処理部39は、更新後の送信可能期間を表すデータを応答パケットに設定し、当該応答パケットを送信元エッジノード宛に送信する(ステップS187)。図34の例では、中継ノードAは、送信可能期間(開始時刻:50、終了時刻:70)を表すデータを含む応答パケットを送信元に出力する。その後、端子Eを介して図33に戻り、処理を終了する。
【0114】
以上のような処理を実施することによって、利用可能期間と中継ノードにおける空き期間との重複期間を適切に特定できるようになる。
【0115】
なお、ステップS167では、中継ノードにおける空き期間を基準に、利用可能期間をシフト時間だけシフトさせるようになっていたが、利用可能期間を基準に、中継ノードにおける空き期間をシフト時間だけシフトさせるようにしてもよい。但し、この場合には、ステップS175において、特定された重複期間を、空き期間とは逆方向にシフト時間だけシフトさせた期間を予約期間として登録するようにする。例えば図34の場合、利用可能期間を基準に、中継ノードAにおける空き期間をシフト時間(=50ms)だけシフトさせた上で重複期間を特定すると、時刻50から時刻70までの期間が重複期間として特定される。この重複期間をシフト時間だけ逆シフトさせると、開始時刻は50−50=0、終了時刻は70−50=20となるので、時刻0から時刻20までの期間を予約期間として中継テーブル格納部32に登録するようにする。なお、利用可能期間を基準に、中継ノードAにおける空き期間をシフト時間だけシフトさせた上で重複期間を特定した場合には、送信元における時刻が基準になっているので、ステップS185の処理は省略される。
【0116】
次に、図36及び図37を用いて、データパケット群を受信した際の中継ノード3の処理について説明する。まず、スイッチ部31は、ある入力IFにおいてデータパケット群の先頭パケットを受信する(図36:ステップS191)。この際、スイッチ部31は、データパケット群の先頭パケットの受信開始時刻を記憶装置に記録しておく。そして、スイッチ部31は、受信した先頭パケットからスロットIDを抽出する(ステップS193)。そして、スイッチ部31は、中継テーブル格納部32に格納されている中継テーブルにおいて、抽出したスロットIDと入力IFの識別情報とに対応する出力IFを特定する(ステップS195)。そして、スイッチ部31は、特定された出力IFにデータパケット群を出力する(ステップS197)。その後、スイッチ部31は、データパケット群の最終パケットを受信したかどうか判断する(ステップS199)。データパケット群の最終パケットを受信していなければ(ステップS199:Noルート)、ステップS197に戻り、特定された出力IFにデータパケット群を出力し続ける。
【0117】
一方、データパケット群の最終パケットを受信した場合(ステップS199:Yesルート)、スイッチ部31は、特定された出力IFに最終パケットを出力した後、当該出力IFへの出力を終了する(ステップS201)。また、スイッチ部31は、データパケット群の最終パケットの受信終了時刻を記録装置に記録する。
【0118】
そして、スイッチ部31は、記憶装置に記録されている、データパケット群の先頭パケットの受信開始時刻と最終パケットの受信終了時刻とから、当該データパケット群の送信に用いられていた期間を特定する(ステップS203)。そして、スイッチ部31は、中継テーブル格納部32において、ステップS193において抽出されたスロットIDを含むレコードを特定する。そして、スイッチ部31は、特定されたレコードにおける予約期間と、データパケット群の送信に用いられていた期間との重複期間を特定し、特定した重複期間で当該レコードの予約期間を更新する(ステップS205)。なお、本ステップの処理内容を図37に模式的に示す。
【0119】
例えば上で述べたような処理(ステップS167)により、時刻taから時刻tbまでの期間が重複期間として特定され、予約期間として登録されているものとする。なお、中継ノードでは、データパケット群が送られてくるまでは、重複期間のいずれの部分が使われるかが分からないため、重複期間を予約期間として登録される。ここでは、実際にデータパケット群の送信に用いられていた期間が、時刻taから時刻tcまでの期間であったとする。そうすると、ステップS205では、時刻taから時刻tcまでの期間が重複期間として特定され、予約期間は、時刻taから時刻tcまでの期間となる。これにより、時刻tcから時刻tbまでの期間は空き期間とみなされ、別のデータパケット群の送信に利用することができるようになる。
【0120】
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上で説明したエッジルータ1、中継ルータ3及び管理サーバ5の機能ブロック図は必ずしも実際のプログラムモジュール構成に対応するものではない。データ格納部の構成も同様に一例にすぎない。また、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしてもよい。
【0121】
なお、上で述べた管理サーバ5は、コンピュータ装置であって、図38に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【0122】
また、上で述べたエッジルータ1及び中継ルータ3は、図39に示すように、メモリ2601とCPU2603とハードディスク・ドライブ(HDD)2605と表示装置2609に接続される表示制御部2607とリムーバブル・ディスク2611用のドライブ装置2613と入力装置2615とネットワークに接続するための通信部2617(図39では、2617a乃至2617c)とがバス2619で接続されている。なお、場合によっては、表示制御部2607、表示装置2609、ドライブ装置2613、入力装置2615は含まれない場合もある。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2605に格納されており、CPU2603により実行される際にはHDD2605からメモリ2601に読み出される。CPU2603は、アプリケーション・プログラムの処理内容に応じて表示制御部2607、通信部2617、ドライブ装置2613を制御して、所定の動作を行わせる。なお、通信部2617のいずれかを介して入力されたデータは、他の通信部2617を介して出力される。CPU2603は、通信部2617を制御して、適切に出力先を切り替える。また、処理途中のデータについては、主としてメモリ2601に格納されるが、HDD2605に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2611に格納されて頒布され、ドライブ装置2613からHDD2605にインストールされる。インターネットなどのネットワーク及び通信部2617を経由して、HDD2605にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2603、メモリ2601などのハードウエアとOS及びアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【0123】
以上本実施の形態をまとめると以下のようになる。
【0124】
本技術の第1の態様に係る中継装置は、(A)第1の通信装置から第1のデータパケット群又は第1の制御パケット群を第1の送信元インタフェースにおいて受信している間に、第2の送信元インタフェースにおいて第2の通信装置から当該第2の通信装置における動作周期を表すフレーム列のうち現フレームの1フレーム先の一定期間における第2のデータパケット群の送信を予約するために用いられ且つ送信先インタフェースが第1のデータパケット群又は第1の制御パケット群の送信先インタフェースと一致する第2の制御パケット群を受信するという衝突を検出する衝突検出部(図40:1501)と、(B)上記衝突が検出された場合、第2の制御パケット群の最初のパケットの受信開始から第1のデータパケット群又は第1の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を、第2の通信装置へ送信する衝突発生通知部(図40:1503)とを有する。
【0125】
中継装置において上で述べたような衝突が発生する場合には、第2の通信装置が意図する送信タイミングではバッファレスでデータパケット群を中継できない。そこで、上で述べたような調整時間を第2の通信装置に通知して第2の制御パケット群の送信タイミングをずらさせるものである。第2の制御パケット群が通信経路中のどの中継装置においても衝突を起こさなければ、通信装置間で同期が取れていなくともデータ通信を行うことができるようになる。
【0126】
また、上で述べた第2の制御パケット群には、第2のデータパケット群の最初のパケットに設定されるべき識別子と通信経路情報とを含む制御パケットが含まれる場合もある。そして、第1の態様に係る中継装置が、第2の制御パケット群受信時に上記衝突が検出されなければ、第2の制御パケット群内の制御パケットに含まれる通信経路情報から特定される送信先インタフェースに第2の制御パケット群を出力すると共に、制御パケットに含まれる識別子と第2の送信元インタフェース及び送信先インタフェースの識別情報とを含む予約情報を中継テーブルに登録するスイッチ部をさらに有する場合もある。このような予約情報を登録しておくことで、後に送信される第2のデータパケット群を適切に中継できるようになる。
【0127】
さらに、上で述べたスイッチ部が、第2の制御パケット群に対する応答として通信経路情報により特定される通信経路中の他の中継装置からの衝突発生通知を受信した場合には、登録された予約情報を中継テーブルから削除すると共に、当該衝突発生通知を第2の通信装置に送信するようにしてもよい。また、上で述べたスイッチ部が、第2の制御パケット群に対する応答として通信経路情報により特定される送信先通信装置からの確認通知を受信した後、登録された予約情報を第2のデータパケット群の中継に使用すると共に、当該確認通知を第2の通信装置に送信するようにしてもよい。このように、自中継装置で衝突が検出されなくても、他の中継装置で衝突が検出される場合があり、その場合は、自中継装置において登録された予約情報を削除する。また、通信経路中の他の中継装置で衝突が検出されなければ、登録された予約情報を用いてデータパケット群の中継を行う。
【0128】
また、上で述べた第2のデータパケット群の最初のパケットには、当該第2のデータパケット群の送信の予約に用いられた制御パケットに含まれる識別子と同一の識別子が含まれる場合もある。そして、上で述べたスイッチ部が、第2の送信元インタフェースにおいて第2のデータパケット群の最初のパケットを受信すると、中継テーブルにおいて、第2の送信元インタフェースの識別情報と第2のデータパケット群の最初のパケットに含まれる識別子とに対応する送信先インタフェースを特定し、第2のデータパケット群の最終パケットの受信終了までの間、特定された送信先インタフェースに第2のデータパケット群を出力する場合もある。このようにすれば、ルーティング処理を行わずに、データパケット群を中継できる。また、データパケット群同士の衝突は生じないため、バッファが不要となる。従って、中継装置の省電力化が可能となる。
【0129】
また、上記衝突が検出された場合、第1のデータパケット群又は第1の制御パケット群の最終パケットの受信終了後、第2の制御パケット群を当該第2の制御パケット群内の制御パケットに含まれる通信経路情報により特定される送信先インタフェースへ出力する制御部をさらに有するようにしてもよい。このようにすれば、他の中継装置で衝突が発生するか否かを先行して調べることができる。
【0130】
さらに、上で述べた制御部が、通信経路情報により特定される送信先通信装置からの確認通知と、上記衝突発生通知部が送信した衝突発生通知に応じて第2の通信装置から再度送信される第2の制御パケット群とを受信した場合には、制御パケットに含まれる識別子と第2の送信元インタフェース及び送信先インタフェースの識別情報とを含む予約情報を中継テーブルに登録すると共に、当該確認通知を第2の通信装置に送信するようにしてもよい。また、通信経路情報により特定される通信経路中の他の中継装置からの衝突発生通知と、第2の通信装置から再度送信される第2の制御パケット群とを受信した場合には、当該衝突発生通知を第2の通信装置に送信するようにしてもよい。他の中継装置で衝突が発生するか否かを先行して調べるために第2の制御パケット群を送信先インタフェースへ出力している場合には、送信先通信装置からの確認通知と、第2の通信装置から再送信される第2の制御パケット群とを受信した際に予約情報を登録するようにすればよい。
【0131】
本技術の第2の態様に係る通信装置は、(A)動作周期を表すフレーム列のうち第1のフレームの後の第2のフレームの一定期間における第1のデータパケット群の送信を予約するための第1の制御パケット群を、第1のフレームにおける第1の送信タイミングで第1のデータパケット群の送信先通信装置宛に送信するスケジューラ(図41:1601)と、(B)第1のデータパケット群の送信先通信装置までの通信経路中の中継装置において送信先インタフェースが一致する第2のデータパケット群又は第2の制御パケット群を受信している間に第1の制御パケット群を受信するという衝突が発生した際に当該中継装置から送信され且つ当該第1の制御パケット群の最初のパケットの受信開始から当該第2のデータパケット群又は第2の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を受信した場合、第1の送信タイミングを調整時間分だけ後にシフトさせた第2の送信タイミングを計算し、スケジューラに第2のフレームにおける第2の送信タイミングで第1の制御パケット群を再送信させる送信タイミング計算部(図41:1603)とを有する。
【0132】
このようにすれば、今回発生した衝突を回避する形で第1の制御パケット群を再送信できるようになる。別の衝突が発生した場合には、さらにずらして第1の制御パケット群を再送信すればよい。これにより、1フレーム先の一定期間におけるデータパケット群の送信を予約することができるようになり、通信装置間で同期が取れていない場合でも、時分割で通信できるようになる。
【0133】
また、上で述べた第1の制御パケット群には、フレーム内における一定期間を識別するための識別子を含む制御パケットが含まれる場合もある。そして、上で述べたスケジューラが、第1の制御パケット群に対する応答として第1のデータパケット群の送信先通信装置からの確認通知を受信した場合、最後に送信した第1の制御パケット群の送信タイミングから1フレーム先の送信タイミングにて、第1のデータパケット群の最初のパケットに、最後に送信した第1の制御パケット群内の制御パケットに含まれる識別子と同一の識別子を設定して当該第1のデータパケット群を送信する場合もある。これにより、他のデータパケット群との衝突が生ずることのないタイミングで、データパケット群を送信先通信装置へ送信できる。
【0134】
本技術の第3の態様に係る通信装置は、(A)制御パケット群の送信予定時刻を基準時刻としてデータパケット群の送信に利用可能な期間を表すデータを生成し、送信予定時刻に、利用可能な期間を表すデータとデータパケット群の送信に対して割り当てられている識別子とを含む制御パケットを含む制御パケット群を、データパケット群の送信先通信装置宛に送信するスケジューラと、(B)データパケット群の送信先通信装置までの通信経路中の中継装置における空き期間と利用可能な期間との重複期間である送信可能期間を表すデータを含む応答パケットを受信した場合、送信可能期間からデータパケット群に用いる送信期間を決定する送信期間決定部とを有する。そして、上で述べたスケジューラが、決定された送信期間において、データパケット群の最初のパケットに、当該データパケット群の送信に割り当てられている識別子を設定して当該データパケット群を送信する。このようにすれば、送信可能期間からデータパケット群の送信期間を決定するので、他のデータパケット群と衝突することなく通信できる。すなわち、通信装置間で同期が取れていなくとも、時分割で通信できるようになる。
【0135】
本技術の第4の態様に係る中継装置は、(A)通信装置からデータパケット群の送信に利用可能な期間を表すデータと当該データパケット群の送信に割り当てられている識別子と通信経路情報とを含む制御パケットを含む制御パケット群を受信した場合、自中継装置における動作周期を表すフレーム列のうち制御パケット群の最初のパケットの受信開始時のフレームのフレーム開始から制御パケット群の最初のパケットの受信開始までの時間であるシフト時間を計算する時間差計算部と、(B)制御パケットに含まれる通信経路情報により特定される送信先インタフェースの空き期間と利用可能な期間とのいずれかを基準に他方をシフト時間シフトさせた上で送信先インタフェースの空き期間と利用可能な期間との第1の重複期間を特定し、特定した第1の重複期間を表すデータを制御パケットに設定して送信先インタフェースに制御パケット群を出力する期間データ処理部とを有する。このように、制御パケットにおける利用可能な期間と送信元インタフェースの空き期間とのいずれかを基準に他方をシフトさせることで、重複期間を適切に特定できる。
【0136】
また、上で述べた制御パケットが、データパケット群の送信に割り当てられている識別子をさらに含む場合もある。そして、上で述べた期間データ処理部が、第1の重複期間が上記利用可能な期間を基準に特定された期間である場合には、送信先インタフェースの空き期間とは逆方向に第1の重複期間をシフト時間シフトさせた期間である予約期間を表すデータと制御パケットに含まれる識別子と送信元インタフェース及び送信先インタフェースの識別情報とを含む予約情報を中継テーブルに登録するようにしてもよい。また、上で述べた期間データ処理部が、第1の重複期間が送信元インタフェースの空き期間を基準に特定された期間である場合には、第1の重複期間を表すデータを予約期間を表すデータとして含み且つ制御パケットに含まれる識別子と送信元インタフェース及び送信先インタフェースの識別情報とを含む予約情報を中継テーブルに登録するようにしてもよい。なお、制御パケット群を受信した時点では、重複期間のうちいずれの部分がデータパケット群の送信に使用されるか分からないため、重複期間を予約期間として含む予約情報を登録しておく。
【0137】
さらに、上で述べたデータパケット群の最初のパケットには、当該データパケット群の送信に割り当てられている識別子が含まれる場合もある。そして、第4の態様に係る中継装置が、データパケット群の最初のパケットを受信すると、中継テーブルにおいて送信元インタフェースの識別情報とデータパケット群の最初のパケットに含まれる識別子とに対応する送信先インタフェースを特定し、データパケット群の最終パケットの受信終了までの間、特定された送信先インタフェースにデータパケット群を出力し、中継テーブルにおいて送信元インタフェースの識別情報とデータパケット群の最初のパケットに含まれる識別子とに対応する予約期間とデータパケット群の最初のパケットの受信開始から最終パケットの受信終了までの期間との第2の重複期間を特定し、特定された第2の重複期間で中継テーブルにおける予約期間を更新するスイッチ部をさらに有する場合もある。このようにすれば、予約期間のうちデータパケット群の送信に使用されていない部分については予約期間から外すことができ、別のデータパケット群の送信に割り当てることができるようになる。
【0138】
本技術の第5の態様に係る通信制御方法は、(A)第1の通信装置から第1のデータパケット群又は第1の制御パケット群を第1の送信元インタフェースにおいて受信している間に、第2の送信元インタフェースにおいて第2の通信装置から当該第2の通信装置における動作周期を表すフレーム列のうち現フレームの1フレーム先の一定期間における第2のデータパケット群の送信を予約するために用いられ且つ送信先インタフェースが第1のデータパケット群と一致する第2の制御パケット群を受信するという衝突を検出するステップ(図42:S1001)と、(B)上記衝突が検出された場合、第2の制御パケット群の最初のパケットの受信開始から第1のデータパケット群又は第1の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を、第2の通信装置へ送信するステップ(図42:S1003)とを含む。
【0139】
本技術の第6の態様に係る通信制御方法は、(A)動作周期を表すフレーム列のうち第1のフレームの後の第2のフレームの一定期間における第1のデータパケット群の送信を予約するための第1の制御パケット群を、第1のフレームにおける第1の送信タイミングで第1のデータパケット群の送信先通信装置宛に送信するステップ(図43:S1101)と、(B)第1のデータパケット群の送信先通信装置までの通信経路中の中継装置において送信先インタフェースが一致する第2のデータパケット群又は第2の制御パケット群を受信している間に第1の制御パケット群を受信するという衝突が発生した際に当該中継装置から送信され且つ当該第1の制御パケット群の最初のパケットの受信開始から当該第2のデータパケット群又は第2の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を受信した場合、第1の送信タイミングを調整時間分だけ後にシフトさせた第2の送信タイミングを計算するステップ(図43:S1103)と、(C)第2のフレームにおける第2の送信タイミングで第1の制御パケット群を再送信するステップ(図43:S1105)とを含む。
【0140】
本技術の第7の態様に係る通信制御方法は、(A)制御パケット群の送信予定時刻を基準時刻としてデータパケット群の送信に利用可能な期間を表すデータを生成し、送信予定時刻に、利用可能な期間を表すデータとデータパケット群の送信に対して割り当てられている識別子とを含む制御パケットを含む制御パケット群を、データパケット群の送信先通信装置宛に送信するステップと、(B)データパケット群の送信先通信装置までの通信経路中の中継装置における空き期間と利用可能な期間との重複期間である送信可能期間を表すデータを含む応答パケットを受信した場合、送信可能期間からデータパケット群に用いる送信期間を決定するステップと、(C)決定された送信期間において、データパケット群の最初のパケットに、当該データパケット群の送信に割り当てられている識別子を設定して当該データパケット群を送信するステップとを含む。
【0141】
本技術の第8の態様に係る通信制御方法は、(A)通信装置からデータパケット群の送信に利用可能な期間を表すデータと当該データパケット群の送信に割り当てられている識別子と通信経路情報とを含む制御パケットを含む制御パケット群を受信した場合、自中継装置における動作周期を表すフレーム列のうち制御パケット群の最初のパケットの受信開始時のフレームのフレーム開始から制御パケット群の最初のパケットの受信開始までの時間であるシフト時間を計算するステップと、(B)制御パケットに含まれる通信経路情報により特定される送信先インタフェースの空き期間と利用可能な期間とのいずれかを基準に他方をシフト時間シフトさせた上で送信先インタフェースの空き期間と利用可能な期間との第1の重複期間を特定するステップと、(C)特定した第1の重複期間を表すデータを制御パケットに設定して送信先インタフェースに制御パケット群を出力するステップとを含む。
【0142】
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROM、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。
【0143】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0144】
(付記1)
第1の通信装置から第1のデータパケット群又は第1の制御パケット群を第1の送信元インタフェースにおいて受信している間に、第2の送信元インタフェースにおいて第2の通信装置から当該第2の通信装置における動作周期を表すフレーム列のうち現フレームの1フレーム先の一定期間における第2のデータパケット群の送信を予約するために用いられ且つ送信先インタフェースが前記第1のデータパケット群又は第1の制御パケット群の送信先インタフェースと一致する第2の制御パケット群を受信するという衝突を検出する衝突検出部と、
前記衝突が検出された場合、前記第2の制御パケット群の最初のパケットの受信開始から前記第1のデータパケット群又は第1の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を、前記第2の通信装置へ送信する衝突発生通知部と、
を有する中継装置。
【0145】
(付記2)
前記第2の制御パケット群には、前記第2のデータパケット群の最初のパケットに設定されるべき識別子と通信経路情報とを含む制御パケットが含まれ、
前記第2の制御パケット群受信時に前記衝突が検出されなければ、前記第2の制御パケット群内の制御パケットに含まれる前記通信経路情報から特定される送信先インタフェースに前記第2の制御パケット群を出力すると共に、前記制御パケットに含まれる前記識別子と前記第2の送信元インタフェース及び前記送信先インタフェースの識別情報とを含む予約情報を中継テーブルに登録するスイッチ部
をさらに有する付記1記載の中継装置。
【0146】
(付記3)
前記スイッチ部は、
前記第2の制御パケット群に対する応答として前記通信経路情報により特定される通信経路中の他の中継装置からの衝突発生通知を受信した場合には、登録された前記予約情報を前記中継テーブルから削除すると共に、当該衝突発生通知を前記第2の通信装置に送信し、
前記第2の制御パケット群に対する応答として前記通信経路情報により特定される送信先通信装置からの確認通知を受信した後、登録された前記予約情報を前記第2のデータパケット群の中継に使用すると共に、当該確認通知を前記第2の通信装置に送信する
付記2記載の中継装置。
【0147】
(付記4)
前記第2のデータパケット群の最初のパケットには、当該第2のデータパケット群の送信の予約に用いられた前記制御パケットに含まれる前記識別子と同一の識別子が含まれ、
前記スイッチ部は、
前記第2の送信元インタフェースにおいて前記第2のデータパケット群の最初のパケットを受信すると、前記中継テーブルにおいて、前記第2の送信元インタフェースの識別情報と前記第2のデータパケット群の最初のパケットに含まれる前記識別子とに対応する送信先インタフェースを特定し、前記第2のデータパケット群の最終パケットの受信終了までの間、特定された前記送信先インタフェースに前記第2のデータパケット群を出力する
付記3記載の中継装置。
【0148】
(付記5)
前記第2の制御パケット群には、通信経路情報を含む制御パケットが含まれ、
前記衝突が検出された場合、前記第1のデータパケット群又は第1の制御パケット群の最終パケットの受信終了後、前記第2の制御パケット群を当該第2の制御パケット群内の制御パケットに含まれる前記通信経路情報により特定される送信先インタフェースへ出力する制御部
をさらに有する付記1記載の中継装置。
【0149】
(付記6)
前記制御パケットは、前記第2のデータパケット群の最初のパケットに設定されるべき識別子をさらに含み、
前記制御部は、
前記通信経路情報により特定される送信先通信装置からの確認通知と、前記衝突発生通知部が送信した前記衝突発生通知に応じて前記第2の通信装置から再度送信される前記第2の制御パケット群とを受信した場合には、前記制御パケットに含まれる前記識別子と前記第2の送信元インタフェース及び前記送信先インタフェースの識別情報とを含む予約情報を中継テーブルに登録すると共に、当該確認通知を前記第2の通信装置に送信し、
前記通信経路情報により特定される通信経路中の他の中継装置からの衝突発生通知と、前記第2の通信装置から再度送信される前記第2の制御パケット群とを受信した場合には、当該衝突発生通知を前記第2の通信装置に送信する
付記5記載の中継装置。
【0150】
(付記7)
動作周期を表すフレーム列のうち第1のフレームの後の第2のフレームの一定期間における第1のデータパケット群の送信を予約するための第1の制御パケット群を、前記第1のフレームにおける第1の送信タイミングで前記第1のデータパケット群の送信先通信装置宛に送信するスケジューラと、
前記第1のデータパケット群の送信先通信装置までの通信経路中の中継装置において送信先インタフェースが一致する第2のデータパケット群又は第2の制御パケット群を受信している間に前記第1の制御パケット群を受信するという衝突が発生した際に当該中継装置から送信され且つ当該第1の制御パケット群の最初のパケットの受信開始から当該第2のデータパケット群又は第2の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を受信した場合、前記第1の送信タイミングを前記調整時間分だけ後にシフトさせた第2の送信タイミングを計算し、前記スケジューラに前記第2のフレームにおける前記第2の送信タイミングで前記第1の制御パケット群を再送信させる送信タイミング計算部と、
を有する通信装置。
【0151】
(付記8)
前記第1の制御パケット群には、フレーム内における前記一定期間を識別するための識別子を含む制御パケットが含まれ、
前記スケジューラが、
前記第1の制御パケット群に対する応答として前記第1のデータパケット群の送信先通信装置からの確認通知を受信した場合、最後に送信した前記第1の制御パケット群の送信タイミングから1フレーム先の送信タイミングにて、前記第1のデータパケット群の最初のパケットに、最後に送信した前記第1の制御パケット群内の制御パケットに含まれる識別子と同一の識別子を設定して当該第1のデータパケット群を送信する
付記7記載の通信装置。
【0152】
(付記9)
制御パケット群の送信予定時刻を基準時刻としてデータパケット群の送信に利用可能な期間を表すデータを生成し、前記送信予定時刻に、前記利用可能な期間を表すデータと前記データパケット群の送信に対して割り当てられている識別子とを含む制御パケットを含む前記制御パケット群を、前記データパケット群の送信先通信装置宛に送信するスケジューラと、
前記データパケット群の送信先通信装置までの通信経路中の中継装置における空き期間と前記利用可能な期間との重複期間である送信可能期間を表すデータを含む応答パケットを受信した場合、前記送信可能期間から前記データパケット群に用いる送信期間を決定する送信期間決定部と、
を有し、
前記スケジューラが、
決定された前記送信期間において、前記データパケット群の最初のパケットに、当該データパケット群の送信に割り当てられている前記識別子を設定して当該データパケット群を送信する
通信装置。
【0153】
(付記10)
通信装置からデータパケット群の送信に利用可能な期間を表すデータと当該データパケット群の送信に割り当てられている識別子と通信経路情報とを含む制御パケットを含む制御パケット群を受信した場合、自中継装置における動作周期を表すフレーム列のうち前記制御パケット群の最初のパケットの受信開始時のフレームのフレーム開始から前記制御パケット群の最初のパケットの受信開始までの時間であるシフト時間を計算する時間差計算部と、
前記制御パケットに含まれる前記通信経路情報により特定される送信先インタフェースの空き期間と前記利用可能な期間とのいずれかを基準に他方を前記シフト時間シフトさせた上で前記送信先インタフェースの空き期間と前記利用可能な期間との第1の重複期間を特定し、特定した前記第1の重複期間を表すデータを前記制御パケットに設定して前記送信先インタフェースに前記制御パケット群を出力する期間データ処理部と、
を有する中継装置。
【0154】
(付記11)
前記制御パケットは、前記データパケット群の送信に割り当てられている識別子をさらに含み、
前記期間データ処理部は、
前記第1の重複期間が前記利用可能な期間を基準に特定された期間である場合には、前記送信先インタフェースの空き期間とは逆方向に前記第1の重複期間を前記シフト時間シフトさせた期間である予約期間を表すデータと前記制御パケットに含まれる前記識別子と送信元インタフェース及び前記送信先インタフェースの識別情報とを含む予約情報を中継テーブルに登録し、
前記第1の重複期間が前記送信元インタフェースの空き期間を基準に特定された期間である場合には、前記第1の重複期間を表すデータを予約期間を表すデータとして含み且つ前記制御パケットに含まれる前記識別子と送信元インタフェース及び前記送信先インタフェースの識別情報とを含む予約情報を中継テーブルに登録する
付記10記載の中継装置。
【0155】
(付記12)
前記データパケット群の最初のパケットには、当該データパケット群の送信に割り当てられている前記識別子が含まれ、
前記データパケット群の最初のパケットを受信すると、前記中継テーブルにおいて送信元インタフェースの識別情報と前記データパケット群の最初のパケットに含まれる前記識別子とに対応する送信先インタフェースを特定し、前記データパケット群の最終パケットの受信終了までの間、特定された前記送信先インタフェースに前記データパケット群を出力し、前記中継テーブルにおいて送信元インタフェースの識別情報と前記データパケット群の最初のパケットに含まれる前記識別子とに対応する予約期間と前記データパケット群の最初のパケットの受信開始から最終パケットの受信終了までの期間との第2の重複期間を特定し、特定された前記第2の重複期間で前記中継テーブルにおける前記予約期間を更新するスイッチ部
をさらに有する付記11記載の中継装置。
【0156】
(付記13)
第1の通信装置から第1のデータパケット群又は第1の制御パケット群を第1の送信元インタフェースにおいて受信している間に、第2の送信元インタフェースにおいて第2の通信装置から当該第2の通信装置における動作周期を表すフレーム列のうち現フレームの1フレーム先の一定期間における第2のデータパケット群の送信を予約するために用いられ且つ送信先インタフェースが前記第1のデータパケット群又は第1の制御パケット群の送信先インタフェースと一致する第2の制御パケット群を受信するという衝突を検出するステップと、
前記衝突が検出された場合、前記第2の制御パケット群の最初のパケットの受信開始から前記第1のデータパケット群又は第1の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を、前記第2の通信装置へ送信するステップと、
を含み、中継装置により実行される通信制御方法。
【0157】
(付記14)
動作周期を表すフレーム列のうち第1のフレームの後の第2のフレームの一定期間における第1のデータパケット群の送信を予約するための第1の制御パケット群を、前記第1のフレームにおける第1の送信タイミングで前記第1のデータパケット群の送信先通信装置宛に送信するステップと、
前記第1のデータパケット群の送信先通信装置までの通信経路中の中継装置において送信先インタフェースが一致する第2のデータパケット群又は第2の制御パケット群を受信している間に前記第1の制御パケット群を受信するという衝突が発生した際に当該中継装置から送信され且つ当該第1の制御パケット群の最初のパケットの受信開始から当該第2のデータパケット群又は第2の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を受信した場合、前記第1の送信タイミングを前記調整時間分だけ後にシフトさせた第2の送信タイミングを計算するステップと、
前記第2のフレームにおける前記第2の送信タイミングで前記第1の制御パケット群を再送信するステップと、
を含み、通信装置により実行される通信制御方法。
【0158】
(付記15)
制御パケット群の送信予定時刻を基準時刻としてデータパケット群の送信に利用可能な期間を表すデータを生成し、前記送信予定時刻に、前記利用可能な期間を表すデータと前記データパケット群の送信に対して割り当てられている識別子とを含む制御パケットを含む前記制御パケット群を、前記データパケット群の送信先通信装置宛に送信するステップと、
前記データパケット群の送信先通信装置までの通信経路中の中継装置における空き期間と前記利用可能な期間との重複期間である送信可能期間を表すデータを含む応答パケットを受信した場合、前記送信可能期間から前記データパケット群に用いる送信期間を決定するステップと、
決定された前記送信期間において、前記データパケット群の最初のパケットに、当該データパケット群の送信に割り当てられている前記識別子を設定して当該データパケット群を送信するステップと、
を含み、通信装置により実行される通信制御方法。
【0159】
(付記16)
通信装置からデータパケット群の送信に利用可能な期間を表すデータと当該データパケット群の送信に割り当てられている識別子と通信経路情報とを含む制御パケットを含む前記制御パケット群を受信した場合、自中継装置における動作周期を表すフレーム列のうち前記制御パケット群の最初のパケットの受信開始時のフレームのフレーム開始から前記制御パケット群の最初のパケットの受信開始までの時間であるシフト時間を計算するステップと、
前記制御パケットに含まれる前記通信経路情報により特定される送信先インタフェースの空き期間と前記利用可能な期間とのいずれかを基準に他方を前記シフト時間シフトさせた上で前記送信先インタフェースの空き期間と前記利用可能な期間との第1の重複期間を特定するステップと、
特定した前記第1の重複期間を表すデータを前記制御パケットに設定して前記送信先インタフェースに前記制御パケット群を出力するステップと、
を含み、中継装置により実行される通信制御方法。
【符号の説明】
【0160】
1 エッジルータ 3 中継ルータ 5 管理サーバ
11 パケット受信部 12 パケット分類部
13 宛先ノードテーブル格納部 14 キュー管理テーブル格納部
15 スケジューラ 16 スケジュールDB
17 送信タイミング計算部 18 応答信号受信部
19 通信部
31 スイッチ部 32 中継テーブル格納部
33 衝突検出部 34 衝突発生通知部
35 バッファ 36 制御部
37 時間差計算部 38 シフト時間格納部
39 期間データ処理部
51 経路情報格納部 52 制御部
53 受信部 54 経路情報取得部
55 送信部
100 ネットワークシステム 121 キュー

【特許請求の範囲】
【請求項1】
第1の通信装置から第1のデータパケット群又は第1の制御パケット群を第1の送信元インタフェースにおいて受信している間に、第2の送信元インタフェースにおいて第2の通信装置から当該第2の通信装置における動作周期を表すフレーム列のうち現フレームの1フレーム先の一定期間における第2のデータパケット群の送信を予約するために用いられ且つ送信先インタフェースが前記第1のデータパケット群又は第1の制御パケット群の送信先インタフェースと一致する第2の制御パケット群を受信するという衝突を検出する衝突検出部と、
前記衝突が検出された場合、前記第2の制御パケット群の最初のパケットの受信開始から前記第1のデータパケット群又は第1の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を、前記第2の通信装置へ送信する衝突発生通知部と、
を有する中継装置。
【請求項2】
前記第2の制御パケット群には、通信経路情報を含む制御パケットが含まれ、
前記衝突が検出された場合、前記第1のデータパケット群又は第1の制御パケット群の最終パケットの受信終了後、前記第2の制御パケット群を当該第2の制御パケット群内の制御パケットに含まれる前記通信経路情報により特定される送信先インタフェースへ出力する制御部
をさらに有する請求項1記載の中継装置。
【請求項3】
動作周期を表すフレーム列のうち第1のフレームの後の第2のフレームの一定期間における第1のデータパケット群の送信を予約するための第1の制御パケット群を、前記第1のフレームにおける第1の送信タイミングで前記第1のデータパケット群の送信先通信装置宛に送信するスケジューラと、
前記第1のデータパケット群の送信先通信装置までの通信経路中の中継装置において送信先インタフェースが一致する第2のデータパケット群又は第2の制御パケット群を受信している間に前記第1の制御パケット群を受信するという衝突が発生した際に当該中継装置から送信され且つ当該第1の制御パケット群の最初のパケットの受信開始から当該第2のデータパケット群又は第2の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を受信した場合、前記第1の送信タイミングを前記調整時間分だけ後にシフトさせた第2の送信タイミングを計算し、前記スケジューラに前記第2のフレームにおける前記第2の送信タイミングで前記第1の制御パケット群を再送信させる送信タイミング計算部と、
を有する通信装置。
【請求項4】
制御パケット群の送信予定時刻を基準時刻としてデータパケット群の送信に利用可能な期間を表すデータを生成し、前記送信予定時刻に、前記利用可能な期間を表すデータと前記データパケット群の送信に対して割り当てられている識別子とを含む制御パケットを含む前記制御パケット群を、前記データパケット群の送信先通信装置宛に送信するスケジューラと、
前記データパケット群の送信先通信装置までの通信経路中の中継装置における空き期間と前記利用可能な期間との重複期間である送信可能期間を表すデータを含む応答パケットを受信した場合、前記送信可能期間から前記データパケット群に用いる送信期間を決定する送信期間決定部と、
を有し、
前記スケジューラが、
決定された前記送信期間において、前記データパケット群の最初のパケットに、当該データパケット群の送信に割り当てられている前記識別子を設定して当該データパケット群を送信する
通信装置。
【請求項5】
通信装置からデータパケット群の送信に利用可能な期間を表すデータと当該データパケット群の送信に割り当てられている識別子と通信経路情報とを含む制御パケットを含む制御パケット群を受信した場合、自中継装置における動作周期を表すフレーム列のうち前記制御パケット群の最初のパケットの受信開始時のフレームのフレーム開始から前記制御パケット群の最初のパケットの受信開始までの時間であるシフト時間を計算する時間差計算部と、
前記制御パケットに含まれる前記通信経路情報により特定される送信先インタフェースの空き期間と前記利用可能な期間とのいずれかを基準に他方を前記シフト時間シフトさせた上で前記送信先インタフェースの空き期間と前記利用可能な期間との第1の重複期間を特定し、特定した前記第1の重複期間を表すデータを前記制御パケットに設定して前記送信先インタフェースに前記制御パケット群を出力する期間データ処理部と、
を有する中継装置。
【請求項6】
第1の通信装置から第1のデータパケット群又は第1の制御パケット群を第1の送信元インタフェースにおいて受信している間に、第2の送信元インタフェースにおいて第2の通信装置から当該第2の通信装置における動作周期を表すフレーム列のうち現フレームの1フレーム先の一定期間における第2のデータパケット群の送信を予約するために用いられ且つ送信先インタフェースが前記第1のデータパケット群又は第1の制御パケット群の送信先インタフェースと一致する第2の制御パケット群を受信するという衝突を検出するステップと、
前記衝突が検出された場合、前記第2の制御パケット群の最初のパケットの受信開始から前記第1のデータパケット群又は第1の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を、前記第2の通信装置へ送信するステップと、
を含み、中継装置により実行される通信制御方法。
【請求項7】
動作周期を表すフレーム列のうち第1のフレームの後の第2のフレームの一定期間における第1のデータパケット群の送信を予約するための第1の制御パケット群を、前記第1のフレームにおける第1の送信タイミングで前記第1のデータパケット群の送信先通信装置宛に送信するステップと、
前記第1のデータパケット群の送信先通信装置までの通信経路中の中継装置において送信先インタフェースが一致する第2のデータパケット群又は第2の制御パケット群を受信している間に前記第1の制御パケット群を受信するという衝突が発生した際に当該中継装置から送信され且つ当該第1の制御パケット群の最初のパケットの受信開始から当該第2のデータパケット群又は第2の制御パケット群の最終パケットの受信終了までの時間以上の調整時間を含む衝突発生通知を受信した場合、前記第1の送信タイミングを前記調整時間分だけ後にシフトさせた第2の送信タイミングを計算するステップと、
前記第2のフレームにおける前記第2の送信タイミングで前記第1の制御パケット群を再送信するステップと、
を含み、通信装置により実行される通信制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate