[本技術の実施の形態の概要]
まず、図1乃至図7を用いて、本技術の実施の形態に係るパケット通信システムの概要を説明する。本技術の実施の形態に係るパケット通信システムは、例えば図1に示すように、エッジルータ1(図1では、1a乃至1d)と、中継ルータ3(図1では、3a及び3b)と、管理サーバ5とを有する。なお、エッジルータ1は、図示しない外部ネットワークと接続されている。また、図1において、中継ルータ3aは、リンクL1を介してエッジルータ1aと接続され、リンクL2を介してエッジルータ1cと接続され、リンクL3を介して中継ルータ3bと接続されている。さらに、中継ルータ3bは、リンクL4を介してエッジルータ1bと接続され、リンクL5を介してエッジルータ1dと接続されている。なお、図1では、エッジルータ1の数は4台、中継ルータ3の数は2台となっているが、エッジルータ1及び中継ルータ3の数はこれに限定されない。また、本技術の実施の形態では、以下のような事項を前提とする。すなわち、リンクL1乃至リンクL5の各々における伝送速度はすべて等しいものとする。また、エッジルータ1間の伝播遅延は大きくとも数百ms程度であるものとする。さらに、管理サーバ5は、例えばSNMP(Simple Network Management Protocol)などのプロトコルを利用して、ネットワークの構成を把握可能とする。
図2乃至図4を用いて、本パケット通信システムの動作原理を説明する。例えば図2に示すように、1つのフレームには、n個のタイムスロット(スロット#1、スロット#2、・・・、スロット#n)が含まれる。なお、タイムスロットをスロットと略称する場合もある。ここで、例えば、あるパケット通信について例えばスロット#1を割り当て、各フレーム内のスロット#1を用いて当該パケット通信を行うようにする。この場合、スロット#1では、他のパケット通信が行われることはなく、他のパケットとパケット衝突は生じない。また、図3に示すような制御パケットを流し、スロット#1の開始及び終了のタイミングを中継ルータ3に知らせるようにする。スロット#1で行われるパケット通信の通信経路は一定であり、データパケットを、通信経路に対応する出力インタフェースに転送し続ければよくなり、データパケット毎にルーティング処理を行う必要がなくなる。このように、本パケット通信システムでは、あるパケット通信について、他のパケットとパケット衝突が生じることのないタイムスロットを割り当て、割り当てられたタイムスロットを用いて当該パケット通信を行うようにする。
図4に、1つのフレームに含まれるタイムスロットの数が3個の場合の例を示す。図4において、スロット#1(図4の時間軸では、t0〜t1、t3〜t4、・・・)では、エッジルータ1aとエッジルータ1c間のパケット通信と、エッジルータ1bとエッジルータ1d間のパケット通信とを行うようになっている。また、スロット#2(図4の時間軸上では、t1〜t2、t4〜t5、・・・)では、エッジルータ1aとエッジルータ1b間のパケット通信を行うようになっている。さらに、スロット#3(図4の時間軸上では、t2〜t3、t5〜t6、・・・)では、エッジルータ1aとエッジルータ1d間のパケット通信を行うようになっている。なお、図4の例では、他のパケット通信(例えばエッジルータ1cとエッジルータ1d間のパケット通信など)を行わない場面を想定しており、他のパケット通信を行う場合には、4以上のスロット数を予め用意しておくようにする。
次に、図1に示したパケット通信システムの処理概要を説明する。まず、管理サーバ5は、起動後、スロット定義情報を各エッジルータ1に配信する(図1:ステップ(1))。なお、スロット定義情報には、1フレームに含まれるタイムスロット(以下、スロットと略称する場合もある)の数や、後で説明する伝送時間などが含まれる。さらに、管理サーバ5は、定期的に同期時刻情報を各エッジルータ1に配信する。なお、各エッジルータ1では、スロット定義情報及び同期時刻情報に従ってタイムスロットの同期を取るようになっている。
そして、例えばエッジルータ1aが外部ネットワークからパケットを受信し(ステップ(2))、受信したパケットをキューに格納する。ここでは、エッジルータ1dを介して外部ネットワークへ送出されるパケットを受信したものとする。そして、エッジルータ1aは、当該パケットを送信するためのタイムスロットが既に割り当てられているか判断し、未だ割り当てられていなければ、スロット割当要求を管理サーバ5に送信する(ステップ(3))。なお、スロット割当要求には、送信元エッジルータの識別子及び送信先エッジルータの識別子が含まれる。
図5の説明に移行して、管理サーバ5は、スロット割当要求に応じて、パケット衝突が生じることのないタイムスロットの割り当てを行う。ここでは、スロット#iが割り当てられたものとする。そして、エッジルータ1a、中継ルータ3a、中継ルータ3b及びエッジルータ1dにおいて、スロット#iを予約するための処理を実施する(図5:ステップ(4))。なお、タイムスロットの割り当て処理及びタイムスロットを予約するための処理については、後で詳細に説明する。
図6の説明に移行して、エッジルータ1aは、スロット#iへの切り替わりを検出すると、タイムスロットのIDと制御種別「開始」とを含む制御パケットを送出し、当該制御パケットを送出した後、キューからパケット(以下、データパケットと呼ぶ場合もある)を読み出して送出する(ステップ(5))。また、エッジルータ1aは、当該タイムスロットの最後のパケットとして、タイムスロットのIDと制御種別「終了」とを含む制御パケットを送出する。
そして、エッジルータ1dは、中継ルータ3a及び中継ルータ3bを介してエッジルータ1aからの制御パケット及びデータパケットを受信し、データパケットを送信先となる外部ネットワークへ送出する。
そして、以降のフレームにおけるスロット#iにおいては、上記ステップ(5)の処理を繰り返す。
図7の説明に移行して、エッジルータ1aは、例えばパケットをキューに格納した後にタイマをスタートし、一定時間経過するまでに次のパケットを受信した場合にはタイマをリスタートする。すなわち、一定時間経過するまでに次のパケットを受信しない場合、エッジルータ1aは、タイマのタイムアウトを検出する(図7:ステップ(6))。そして、エッジルータ1aは、スロット解放要求を管理サーバ5に送信する(ステップ(7))。なお、スロット解放要求には、送信元エッジルータの識別子及び送信先エッジルータの識別子が含まれる。
そして、管理サーバ5は、スロット解放要求に応じて、解放すべきタイムスロットを特定する。ここでは、スロット#jが解放すべきタイムスロットとして特定されたものとする。そして、管理サーバ5、エッジルータ1a、中継ルータ3a、中継ルータ3b及びエッジルータ1dにおいて、スロット#jを解放するための処理を実施する(ステップ(8))。なお、タイムスロットを解放するための処理については、後で詳細に説明する。
[実施の形態1]
図8乃至図35を用いて、本技術の第1の実施の形態を説明する。第1の実施の形態に係るパケット通信システムは、図1に示したようにエッジルータ1と、中継ルータ3と、管理サーバ5とを有する。
図8に、第1の実施の形態におけるエッジルータ1の機能ブロック図を示す。第1の実施の形態におけるエッジルータ1は、パケット受信部101と、エッジルータテーブル格納部103と、パス管理テーブル格納部105と、パケット分類部107と、スロット生成部109と、スロット予約部111と、スロット予約テーブル格納部113と、スケジュール部115と、スロット解放部117とを有する。なお、エッジルータテーブル格納部103には、後で説明するエッジルータテーブルが格納されている。パス管理テーブル105には、後で説明するパス管理テーブルが格納されている。スロット予約テーブル格納部113には、後で説明するスロット予約テーブルが格納されている。
パケット受信部101は、外部ネットワークからのパケットを受信し、パケット分類部107へ出力する。パケット分類部107は、必要に応じて、送信先エッジルータに対応するキュー1071(図8では、1071a、1071b、1071c、・・・)を生成したり、削除したりする。また、パケット分類部107は、エッジルータテーブル格納部103及びパス管理テーブル格納部105に格納されているデータに基づき、パケット受信部101により受信したパケットをいずれかのキュー1071に格納したり、タイムスロットの割り当てが必要な場合には、スロット予約部111にその旨を通知したりする。スロット生成部109は、管理サーバ5から、1フレームに含まれるタイムスロットの数とスロット時間と伝送時間とを含むスロット定義情報を受信し、スケジュール部115に出力する。スロット予約部111は、パケット分類部107からの指示に応じて、スロット割当要求を管理サーバ5に送信し、管理サーバ5からタイムスロットの割り当てを受けた場合には、スロット予約テーブル格納部113に格納されているスロット予約テーブルに登録する。スケジュール部115は、スロット生成部109により受信したスロット定義情報と、管理サーバ5からの同期時刻情報と、スロット予約テーブル格納部113に格納されているスロット予約テーブルとに基づき、現時点のタイムスロットにおいて送出すべきデータパケットをパケット分類部107内のキュー1071から読み出して送出するなどの処理を実施する。スロット解放部117は、エッジルータテーブル格納部103及びスロット予約テーブル格納部113に格納されているデータに基づき、タイムスロットを解放するための処理を実施し、解放されたタイムスロットに対応していたキュー1071を削除する旨の指示をパケット分類部107に出力する。
図9に、第1の実施の形態における中継ルータ3の機能ブロック図を示す。第1の実施の形態における中継ルータ3は、複数のラインカード301(図9では、301a及び301b)と、インタフェース(IF)テーブル格納部303と、スロットテーブル格納部305と、フォワーディングエンジン307とを有する。なお、IFテーブル格納部303には、隣接するエッジルータ1又は他の中継ルータ3の情報と、当該ネットワーク装置に接続されるIFの情報とを含むIFテーブルが格納されている。スロットテーブル格納部305には、後で説明するスロットテーブルが格納されている。
ラインカード301は、伝送路を介して隣接するエッジルータ1又は他の中継ルータ3に接続される。フォワーディングエンジン307は、エッジルータ1からの通信経路の情報とIFテーブル格納部303に格納されているデータとを用いて、新たなレコードをスロットテーブル格納部305に登録したり、スロットテーブル格納部305に格納されているスロットテーブルに基づき、パケットを転送する。
図10に、第1の実施の形態における管理サーバ5の機能ブロック図を示す。第1の実施の形態における管理サーバ5は、制御部501と、入力部503と、スロット予約処理部505と、スロット解放処理部507と、出力部509と、経路IDテーブル格納部511と、経路/リンク管理テーブル格納部513と、スロット割当テーブル格納部515と、リンク利用状況テーブル格納部517とを有する。なお、経路IDテーブル格納部511には、後で説明する経路IDテーブルが格納されている。経路/リンク管理テーブル格納部513には、後で説明する経路/リンク管理テーブルが格納されている。スロット割当テーブル格納部515には、後で説明するスロット割当テーブルが格納されている。リンク利用状況テーブル格納部517には、後で説明するリンク利用状況テーブルが格納されている。
制御部501は、管理サーバ5の起動後、後で説明するガードタイムと伝送時間とスロット時間とを算出し、エッジルータ1に送信する。入力部503は、エッジルータ1からのスロット割当要求及びスロット解放要求を受信し、スロット予約処理部505又はスロット解放処理部507に出力する。スロット予約処理部505は、入力部503により受信したスロット割当要求に含まれるデータに基づき、後で説明するスロット予約処理を実施する。スロット解放処理部507は、入力部503により受信したスロット解放要求に含まれるデータに基づき、後で説明するスロット解放処理を実施する。出力部509は、スロット予約処理部505によるスロット予約処理の結果及びスロット解放処理部507によるスロット解放処理の結果を出力する。
図11に、エッジルータテーブル格納部103に格納されるエッジルータテーブルの一例を示す。図11の例では、エッジルータテーブルには、送信先アドレス(Dst)の列と、ネットマスク(Mask)の列と、デフォルト・ゲートウェイ(GW)の列と、出力インタフェース(IF)の列と、送信先エッジルータの列とが含まれる。なお、送信先アドレスとネットマスクとデフォルト・ゲートウェイと出力インタフェースとは、従来のルーティングテーブルに格納されているデータと同じものである。また、送信先エッジルータの列には、エッジルータのうち当該レコードの設定に従って送信されるパケットを外部ネットワークへ出力するエッジルータ(送信先エッジルータと呼ぶ)の識別子が予め設定される。
図12に、パス管理テーブル格納部105に格納されるパス管理テーブルの一例を示す。図12の例では、パス管理テーブルには、キューIDの列と、送信先エッジルータの列とが含まれる。なお、パス管理テーブルは、送信先エッジルータに対応するキュー1071を特定するために用いられる。
図13に、スロット予約テーブル113に格納されるスロット予約テーブルの一例を示す。図13の例では、スロット予約テーブルには、出力インタフェース(IF)の列と、スロットIDの列と、キューIDの列と、予約フラグ(0:未予約/1:予約済み)の列と、解放フラグ(0:解放しない/1:解放する)の列とが含まれる。出力インタフェースの列には、当該レコードに係るタイムスロットにおけるパケット通信で用いられる出力インタフェースの識別子が設定される。キューIDの列には、当該レコードに係るタイムスロットにおいて送信すべきパケットを格納しているキュー1071のIDが設定される。予約フラグ及び解放フラグの詳細については後で説明する。
図14に、スロットテーブル格納部305に格納されるスロットテーブルの一例を示す。図14の例では、スロットテーブルには、入力(IN)の列と、出力インタフェース(OUT(IF))の列とが含まれる。また、入力の列は、入力インタフェース(IF)の列と、スロットIDの列とに分かれている。入力インタフェースの列と、出力インタフェースの列とには、当該レコードに係るタイムスロットにおけるパケット通信で用いられる入力インタフェースの識別子及び出力インタフェースの識別子がそれぞれ設定される。
図15に、経路IDテーブル格納部511に格納される経路IDテーブルの一例を示す。図15の例では、経路IDテーブルにおける各列は、送信先エッジルータ(D−ER:Destination-Edge Router)の識別子毎に分かれており、さらに各行は、送信元エッジルータ(S−ER:Source-Edge Router)の識別子毎に分かれている。そして、経路IDテーブルは、送信元エッジルータと送信先エッジルータとの組み合わせ毎に、当該組み合わせに対応する経路IDを格納するようになっている。
図16に、経路/リンク管理テーブル格納部513に格納される経路/リンク管理テーブルの一例を示す。図16の例では、経路/リンク管理テーブルには、経路IDの列と、リンクID毎の列(図16では、L1の列、L2の列、L3の列、L4の列及びL5の列)とが含まれる。経路/リンク管理テーブルにおいて、当該レコードに係る経路において使用されるリンクについては「1」が設定される。例えば、図16では、経路ID「K1」の経路として、L1とL3とL4とが使用されることを示している。
図17に、スロット割当テーブル格納部515に格納されるスロット割当テーブルの一例を示す。図17の例では、スロット割当テーブルにおける各列は、送信先エッジルータ(D−ER)の識別子毎に分かれており、さらに各行は、送信元エッジルータ(S−ER)の識別子毎に分かれている。さらに、図17の例では、スロット割当テーブルをスロットID(図17では、スロット#1、スロット#2、スロット#3、・・・)毎に保持するようになっている。なお、スロット割当テーブルにおける「○」は、その送信元エッジルータと送信先エッジルータとの組み合わせに対してタイムスロットが割り当てられていることを意味する。
図18に、リンク利用状況テーブル格納部517に格納されるリンク利用状況テーブルの一例を示す。図18の例では、リンク利用状況テーブルには、スロットIDの列と、リンクID毎の列(図18では、L1の列、L2の列、L3の列、L4の列及びL5の列)とが含まれる。リンク利用状況テーブルにおいて、当該レコードに係るタイムスロットにおいて使用中であるリンクについては「1」が設定される。例えば、図18では、スロット#1において、L1とL2とL4とL5とが使用中であることを示している。
次に、第1の実施の形態におけるエッジルータ1、中継ルータ3及び管理サーバ5の各々の具体的な処理フローを説明する前に、図19乃至図22を用いて、タイムスロットを予約及び解放する際のパケット通信システム全体の処理の流れを説明する。図19に、タイムスロットを予約する際のパケット通信システム全体の処理の流れを示す。なお、図19は、図5に示した処理の詳細を示す。
図19において、管理サーバ5は、エッジルータ1aからのスロット割当要求を受信すると、パケット衝突が生じることのないタイムスロットを割り当て、スロット割当テーブル及びリンク利用状況テーブルを更新する(図19:ステップ(11))。そして、管理サーバ5は、割り当てたタイムスロットのIDと通信経路情報とをエッジルータ1aに送信する(ステップ(12))。なお、通信経路情報には、パケットが送信先エッジルータに到達するまでに経由する中継ルータ3のIPアドレスなどが含まれる。
そして、エッジルータ1aは、管理サーバ5からタイムスロットIDと通信経路情報とを受信すると、これらのデータを基に新たなレコードを生成してスロット予約テーブルに追加する。その後、エッジルータ1aは、割り当てられたタイムスロットへの切り替わりを検出すると、そのスロット内で、タイムスロットIDと制御種別「予約」と通信経路情報とを含む制御パケットをエッジルータ1d宛に送信する(ステップ(13))。なお、上記制御パケットは、中継ルータ3a及び中継ルータ3bを経由してエッジルータ1dに到達する。この際、中継ルータ3a及び中継ルータ3bの各々は、制御パケットに含まれるデータを基に新たなレコードを生成し、スロットテーブルに追加する。
その後、エッジルータ1aは、このタイムスロットへの切り替わりを検出すると、タイムスロットIDと制御種別「開始」とを含む制御パケットと、キュー1071から読み出されるデータパケットと、タイムスロットIDと制御種別「終了」とを含む制御パケットとを送出する。
例えばスロット#2が割り当てられた場合の例を図20に示す。図20の例では、時刻t11の時点でタイムスロットの割り当てを受けており、フレーム#k内のタイムスロット(スロット#2)が、割り当てから最初のタイムスロットとなる。すなわち、フレーム#k内のタイムスロット(スロット#2)では、制御パケット(制御種別:予約)のみが送信される。そして、フレーム#(k+1)以降の各フレーム内のタイムスロット(スロット#2)では、制御パケット(制御種別:開始)と、1又は複数のデータパケットと、制御パケット(制御種別:終了)とが送信される。
図21に、タイムスロットを解放する際のパケット通信システム全体の処理の流れを示す。なお、図21は、図7に示した処理の詳細を示す。例えばエッジルータ1aは、タイマのタイムアウトを検出すると、スロット解放要求を管理サーバ5に送信する。そして、管理サーバ5は、エッジルータ1aからのスロット解放要求を受信すると、スロット解放要求に係るタイムスロットを解放し、スロット割当テーブル及びリンク利用状況テーブルを更新する(図21:ステップ(21))。そして、管理サーバ5は、解放したタイムスロットのIDを含むスロット解放完了通知をエッジルータ1aに送信する(ステップ(22))。
そして、エッジルータ1aは、管理サーバ5からスロット解放完了通知を受信した後、解放されたタイムスロットへの切り替わりを検出すると、そのスロット内で、タイムスロットIDと制御種別「解放」とを含む制御パケットをエッジルータ1d宛に送信する(ステップ(23))。なお、当該制御パケットは、中継ルータ3a及び中継ルータ3bを経由してエッジルータ1dに到達する。この際、中継ルータ3a及び中継ルータ3bの各々は、制御パケットに含まれるタイムスロットIDに係るレコードをスロットテーブルから削除する。また、エッジルータ1aも、当該タイムスロットIDに係るレコードをスロット予約テーブルから削除する。
例えばスロット#2が解放された場合の例を図22に示す。図22の例では、時刻t12の時点でスロット解放完了通知を受信しており、フレーム#(k+m)内のタイムスロット(スロット#2)が、解放されてから最初のタイムスロットとなる。すなわち、フレーム#(k+m)内のタイムスロット(スロット#2)では、制御パケット(制御種別:解放)が送信される。
以上のように、第1の実施の形態では、送信元エッジルータが、制御種別として「予約」又は「解放」を含む制御パケットを送信先エッジルータ宛に送信することにより、タイムスロットの予約又は解放を行う。
次に、図23乃至図35を用いて、エッジルータ1、中継ルータ3及び管理サーバ5の各々の具体的な処理フローを説明する。なお、説明の便宜上、管理サーバ5の処理フローから説明する。
図23に、管理サーバ5の起動時の処理フローを示す。管理サーバ5の起動後、制御部501が、例えばSNMPコマンドを発行し、ネットワーク構成に関する情報を収集する。そして、制御部501は、予め設定されているリンク速度とノード内遅延とノード間距離とを取得する(図23:ステップS1)。そして、制御部501は、リンク速度とノード内遅延とノード間距離とを用いて、エッジルータ間の伝播遅延及びノード内遅延とをエッジルータの組み合わせ毎に算出し、記憶装置に格納する(ステップS3)。そして、制御部501は、エッジルータ間の伝播遅延の最大値と、エッジルータ間のノード内遅延の最大値とを特定する(ステップS5)。そして、制御部501は、これらの遅延の偏差(例えば10%)を算出し、エッジルータ間の伝播遅延の最大値と、エッジルータ間のノード内遅延と、遅延偏差とからガードタイムを算出し、記憶装置に格納する(ステップS7)。図24を用いてガードタイムについて説明する。図24に示すように、送信元エッジルータから送信されたパケットは、物理的な遅延(伝播遅延など)が生ずるため、送信時刻から遅れて送信先エッジルータに到達する。そのため、本実施の形態では、スロット時間内にガードタイムを設け、パケットがスロット時間内に送信先エッジルータまで届くことを保証するようになっている。なお、ガードタイムは、例えば以下の式により算出できる。
ガードタイム = エッジルータ間の伝播遅延の最大値 +
エッジルータ間のノード内遅延の最大値 + 遅延偏差
そして、制御部501は、算出されたガードタイムと予め設定されているネットワーク利用率(目標値)と伝送遅延とを用いて、伝送時間を算出する(ステップS9)。ここで、ネットワーク利用率が、以下の式で定義されているものとする。すなわち、算出されたガードタイムと予め設定されているネットワーク利用率(目標値)と伝送遅延とを(1)式に適用することにより、伝送時間を算出することができる。なお、図24に示したように、スロット時間は伝送時間+ガードタイムとなるが、ネットワーク利用率を上げるためには、伝送時間を長くし、いくつかのパケットをまとめて送信する必要がある。
ネットワーク利用率 = 伝送遅延 /(伝送時間+ガードタイム) (1)
そして、制御部501は、ステップS9において算出した伝送時間と、ステップS7において算出したガードタイムとからスロット時間を算出し、スロット数を決定する(ステップS11)。なお、スロット時間=伝送時間+ガードタイムとなる。図25に、スロット時間の算出例を示す。
そして、制御部501は、スロット時間とスロット数と伝送時間とを含むスロット定義情報と、同期時刻情報とを各エッジルータ1に送信する(ステップS13)。そして、本処理を終了する。
以上のような処理を実施することにより、タイムスロットの同期に必要なデータが各エッジルータ1に配信される。
次に、図26及び図27を用いて、タイムスロットを予約する際の管理サーバ5の処理フローを説明する。なお、管理サーバ5は、エッジルータ1からスロット割当要求を受信する毎に、図26に示すような処理を実施する。まず、入力部503が、エッジルータ1から、送信元エッジルータ及び送信先エッジルータの識別子を含むスロット割当要求を受信し、一旦記憶装置に格納する(図26:ステップS21)。そして、入力部503は、スロット割当要求を受信した旨をスロット予約処理部505に通知する。
そして、スロット予約処理部505は、入力部503からの通知を受信すると、経路IDテーブルと経路/リンク管理テーブルとスロット割当テーブルとリンク利用状況テーブルとを用いて、スロット予約処理を実施する(ステップS23)。スロット予約処理については、図27を用いて説明する。
まず、スロット予約処理部505は、記憶装置に格納されたスロット割当要求に含まれる送信元エッジルータ及び送信先エッジルータの識別子を基に経路IDテーブルを検索し、スロット割当要求に係るエッジルータ間の経路を特定する(図27:ステップS31)。そして、スロット予約処理部505は、特定経路のIDを基に経路/リンク管理テーブルを検索し、当該経路に属するリンクを特定する(ステップS33)。
そして、スロット予約処理部505は、特定リンクのIDを基にリンク利用状況テーブルを検索し、特定リンクが未使用となっているスロットを特定する(ステップS35)。なお、ステップS33において複数のリンクが特定された場合には、複数のリンクが全て未使用となっているスロットを特定する。そして、スロット予約処理部505は、特定スロットに対応するスロット割当テーブルにおいて、スロット割当要求に係るエッジルータ間のパケット通信に対して当該特定スロットを割り当てたことを表す情報(図17に示した「○」)を設定する(ステップS37)。また、スロット予約処理部505は、リンク利用状況テーブルにおいて、特定スロットのレコードにおける特定リンクの列に、使用中であることを表す情報(図18では「1」)を設定する(ステップS39)。その後、スロット予約処理を終了し、元の処理に戻る。
図26の説明に戻って、スロット予約処理を実施した後、スロット予約処理部505は、割り当てたスロットのIDと通信経路情報とを出力部509に通知する。そして、出力部509は、スロット予約処理部505からの通知を受けると、割り当てたスロットのIDと通信経路の情報とをスロット割当要求の送信元に送信する(ステップS25)。そして、本処理を終了する。
以上のような処理を実施することにより、管理サーバ5は、通信経路に属するリンクが全て未使用となっているタイムスロットを割り当てるので、当該タイムスロットにおいてパケット通信を行ったとしても他のパケットとパケット衝突が生じることはない。
次に、図28及び図29を用いて、タイムスロットを解放する際の管理サーバ5の処理フローを説明する。なお、管理サーバ5は、エッジルータ1からスロット解放要求を受信する毎に、図28に示すような処理を実施する。まず、入力部503が、エッジルータ1から、送信元エッジルータ及び送信先エッジルータの識別子を含むスロット解放要求を受信し、一旦記憶装置に格納する(図28:ステップS41)。そして、入力部503は、スロット解放要求を受信した旨をスロット解放処理部507に通知する。
そして、スロット解放処理部507は、入力部503からの通知を受信すると、経路IDテーブルと経路/リンク管理テーブルとスロット割当テーブルとリンク利用状況テーブルとを用いて、スロット解放処理を実施する(ステップS43)。スロット解放処理については、図29を用いて説明する。
まず、スロット解放処理部507は、記憶装置に格納されたスロット解放要求に含まれる送信元エッジルータ及び送信先エッジルータの識別子を基に経路IDテーブルを検索し、スロット解放要求に係るエッジルータ間の経路を特定する(図29:ステップS51)。そして、スロット解放処理部507は、特定経路のIDを基に経路/リンク管理テーブルを検索し、当該経路に属するリンクを特定する(ステップS53)。
そして、スロット解放処理部507は、記憶装置に格納されたスロット解放要求に含まれる送信元エッジルータ及び送信先エッジルータの識別子を基にスロット割当テーブルを検索し、スロット解放要求に係るエッジルータ間のパケット通信に対して割り当てられているスロットを特定する(ステップS55)。そして、スロット解放処理部507は、特定スロットに対応するスロット割当テーブルから、スロット解放要求に係るエッジルータ間のパケット通信に対して当該特定スロットを割り当てたことを表す情報(図17に示した「○」)を削除する(ステップS57)。また、スロット解放処理部507は、リンク利用状況テーブルにおいて、特定スロットのレコードにおける特定リンクの列から、使用中であることを表す情報(図18では「1」)を削除する(ステップS59)。その後、スロット解放処理を終了し、元の処理に戻る。
図28の説明に戻って、スロット解放処理を実施した後、スロット解放処理部507は、解放したスロットのIDを出力部509に通知する。そして、出力部509は、スロット解放処理部507からの通知を受けると、解放したスロットのIDを含むスロット解放完了通知をスロット解放要求の送信元に送信する(ステップS45)。そして、本処理を終了する。
以上のような処理を実施することにより、タイムスロットの解放に応じて、スロット割当テーブル及びリンク利用状況テーブルが適切に更新されるので、当該タイムスロットを別のパケット通信に割り当てることができるようになる。
次に、図30乃至図33を用いて、エッジルータ1の処理フローを説明する。図30に、新たにタイムスロットの割り当てを受ける場合の処理フローを示す。まず、パケット受信部101は、外部ネットワークからのパケットを受信し(図30:ステップS61)、パケット分類部107に出力する。そして、パケット分類部107は、パケット受信部101からパケットを受信すると、当該パケットに係る送信先アドレスを基にエッジルータテーブルを検索し、送信先エッジルータを特定する(ステップS63)。
そして、パケット分類部107は、特定送信先エッジルータの識別子を含むレコードがパス管理テーブルに登録されているか判断する(ステップS65)。特定送信先エッジルータの識別子を含むレコードがパス管理テーブルに登録されていないと判断された場合(ステップS65:Noルート)、パケット分類部107は、特定送信先エッジルータに対応するキュー1071を生成し、当該キュー1071にパケットを格納する(ステップS67)。そして、パケット分類部107は、当該キュー1071に対応するタイマを起動する(ステップS69)。そして、パケット分類部107は、キューIDと特定送信先エッジルータの識別子とを含むレコード生成し、パス管理テーブルに追加する(ステップS71)。そして、パケット分類部107は、タイムスロットの割り当てが必要であると判断し、その旨をスロット予約部111に通知する。
そして、スロット予約部111は、パケット分類部107からの通知を受けると、自エッジルータの識別子と特定送信先エッジルータの識別子とを含むスロット割当要求を管理サーバ5に送信する(ステップS73)。
その後、スロット予約部111は、管理サーバ5からスロットIDと通信経路情報とをスロット割当要求の応答として受信し、一旦記憶装置に格納する(ステップS75)。そして、スロット予約部111は、通信経路情報に従ってエッジルータテーブルからインタフェースを特定し、パス管理テーブルからキューIDを特定する。そして、スロット予約部111は、インタフェースの識別子とスロットIDとキューIDとを含むレコードを生成し、スロット予約テーブルに追加する(ステップS77)。その後、処理を終了する。
一方、ステップS65において特定送信先エッジルータの識別子を含むレコードがパス管理テーブルに登録されていると判断された場合(ステップS65:Yesルート)、パケット分類部107は、特定送信先エッジルータに対応するキュー1071にパケットを格納する(ステップS79)。そして、パケット分類部107は、当該キュー1071に対応するタイマをリスタートする(ステップS81)。
以上のような処理を実施することにより、必要に応じてスロット割当要求を管理サーバ5に送信し、タイムスロットの割り当てを受けることができる。
次に、図31及び図32を用いて、タイムスロットが切り替わった際のエッジルータ1の処理フローを説明する。なお、エッジルータ1は、タイムスロットが切り替わる毎に、図31及び図32に示すような処理を実施する。例えば、スケジュール部115は、スロット定義情報から特定されるタイムスロットの一連の流れにおいて、同期時刻情報に基づきタイムスロットの切り替わりを検出するようになっている。なお、各エッジルータ1が、同期時刻情報に従ってタイムスロットを切り替えることにより、タイムスロットの同期が取られる。そして、タイムスロットの切り替わりを検出した場合、スケジュール部115は、切り替え後のスロットを特定する(図31:ステップS91)。
そして、スケジュール部115は、特定スロットのIDを含むレコードがスロット予約テーブルに登録されているか判断する(ステップS93)。特定スロットのIDを含むレコードがスロット予約テーブルに登録されていないと判断された場合(ステップS93:Noルート)、端子Aを介して処理を終了する。
一方、特定スロットのIDを含むレコードがスロット予約テーブルに登録されていると判断された場合(ステップS93:Yesルート)、スケジュール部115は、スロット予約テーブルから特定スロットに対応する出力インタフェースを特定する(ステップS95)。
そして、スケジュール部115は、スロット予約テーブルにおいて、特定スロットのIDを含むレコードの予約フラグが0(未予約)であるか判断する(ステップS97)。スロット予約テーブルにおいて、特定スロットのIDを含むレコードの予約フラグが1(予約済み)であると判断された場合(ステップS97:Noルート)、端子Bを介してステップS103(図32)の処理に移行する。
一方、スロット予約テーブルにおいて、特定スロットのIDを含むレコードの予約フラグが0(未予約)であると判断された場合(ステップS97:Yesルート)、スケジュール部115は、特定スロットのIDと制御種別「予約」と通信経路情報とを含む制御パケットを生成し、特定出力インタフェースを介して送信先エッジルータ宛に送信する(ステップS99)。そして、スケジュール部115は、スロット予約テーブルにおいて、特定スロットのIDを含むレコードの予約フラグを1(予約済み)に設定する(ステップS101)。その後、端子Aを介して処理を終了する。なお、ステップS99及びステップS101の処理は、割り当てを受けてから最初のタイムスロットに係る処理である。
図32の説明に移行して、端子Bの後、スケジュール部115は、スロット予約テーブルにおいて、特定スロットのIDを含むレコードの解放フラグが0(解放しない)であるか判断する(図32:ステップS103)。スロット予約テーブルにおいて、特定スロットのIDを含むレコードの解放フラグが0(解放しない)であると判断された場合(ステップS103:Yesルート)、スケジュール部115は、スロット予約テーブルから、特定スロットに対応するキュー1071を特定する(ステップS105)。そして、スケジュール部115は、特定スロットのIDと制御種別「開始」とを含む制御パケットを生成し、特定出力インタフェースを介して送信先エッジルータ宛に送信する(ステップS107)。そして、スケジュール部115は、特定したキュー1071からデータパケットを順次読み出し、特定出力インタフェースを介して送信先エッジルータ宛に送信する(ステップS109)。なお、伝送時間から、タイムスロットにおいて送信できるパケット数の上限が決まる。そして、スケジュール部115は、特定スロットのIDと制御種別「終了」とを含む制御パケットを生成し、特定出力インタフェースを介して送信先エッジルータ宛に送信する(ステップS111)。そして、処理を終了する。なお、ステップS105乃至ステップS111の処理は、割り当てを受けてから、2回目以降のタイムスロットに係る処理である。
一方、スロット予約テーブルにおいて、特定スロットのIDを含むレコードの解放フラグが1(解放する)であると判断された場合(ステップS103:Noルート)、スケジュール部115は、特定スロットのIDと制御種別「解放」とを含む制御パケットを生成し、特定出力インタフェースを介して送信先エッジルータ宛に送信する(ステップS113)。そして、スケジュール部115は、スロット予約テーブルから、特定スロットのIDを含むレコードを削除する(ステップS115)。そして、処理を終了する。
以上のような処理を実施することにより、管理サーバ5からの割り当てに従ってパケットを送出するので、パケット衝突を生じさせずにエッジルータ間の通信を行うことができるようになる。
次に、図33を用いて、タイマのタイムアウトを検出した際のエッジルータ1の処理フローを説明する。上で説明したように、パケット分類部107は、キュー1071にパケットを格納する際、タイマを起動又はリスタートしており、新たなパケットが一定時間以上格納されないと、タイムアウトが発生する。以下、いずれかのキュー1071に対応するタイマがタイムアウトしたものとして説明する。
まず、スロット解放部117は、いずれかのキュー1071に対応するタイマのタイムアウトを検出する(図33:ステップS121)。そして、スロット解放部117は、タイムアウトが発生したタイマに対応するキュー1071を特定する(ステップS123)。そして、スロット解放部117は、パス管理テーブルから、特定したキュー1071に対応する送信先エッジルータを特定する(ステップS125)。そして、スロット解放部117は、自エッジルータの識別子と特定送信先エッジルータの識別子とを含むスロット解放要求を管理サーバ5に送信する(ステップS127)。
その後、スロット解放部117は、管理サーバ5から、解放されたスロットのIDを含むスロット解放完了通知を受信し、一旦記憶装置に格納する(ステップS129)。そして、スロット解放部117は、特定したキュー1071を削除する旨の指示をパケット分類部107に出力する。そして、パケット分類部107は、スロット解放部117からの指示に応じて、キュー1071を削除する(ステップS131)。
そして、スロット解放部117は、パス管理テーブルから、削除したキュー1071のIDを含むレコードを削除する(ステップS133)。また、スロット解放部117は、スロット予約テーブルにおいて、削除したキュー1071のIDを含むレコードの解放フラグを1(解放する)に設定する(ステップS135)。そして、処理を終了する。
以上のような処理を実施することにより、一定時間以上パケットを受信しない場合には、タイムスロットが解放され、当該タイムスロットを別のパケット通信に割り当てることができるようになる。
次に、図34及び図35を用いて、中継ルータ3の処理フローを説明する。まず、フォワーディングエンジン307は、ラインカード301を介して、隣接するエッジルータ1又は他の中継ルータ3からパケットを受信する(図34:ステップS141)。そして、フォワーディングエンジン307は、受信したパケットが制御パケットであるか判断する(ステップS143)。受信したパケットが制御パケットでないと判断された場合(ステップS143:Noルート)、端子Eを介してステップS171(図35)の処理に移行する。
一方、受信したパケットが制御パケットであると判断された場合(ステップS143:Yesルート)、フォワーディングエンジン307は、受信したパケットから制御種別を抽出する(ステップS145)。そして、フォワーディングエンジン307は、抽出した制御種別が「予約」であるか判断する(ステップS147)。抽出した制御種別が「予約」であると判断された場合(ステップS147:Yesルート)、フォワーディングエンジン307は、受信したパケットからスロットIDと通信経路情報とを抽出する(ステップS149)。なお、例えば図20に示したように、制御種別が「予約」である制御パケットには通信経路情報が含まれる。
そして、フォワーディングエンジン307は、抽出した通信経路情報から特定されるインタフェースの識別子と、抽出したスロットIDとを含むレコードを生成し、スロットテーブルに追加する(ステップS150)。例えば、パケットが次に経由する中継ルータ3を通信経路情報から特定し、当該中継ルータ3と接続されるインタフェースをIFテーブルから特定する。そして、端子Dを介してステップS169(図35)の処理に移行する。
一方、抽出した制御種別が「予約」でないと判断された場合(ステップS147:Noルート)、フォワーディングエンジン307は、抽出した制御種別が「開始」であるか判断する(ステップS151)。抽出した制御種別が「開始」であると判断された場合(ステップS151:Yesルート)、フォワーディングエンジン307は、受信したパケットからスロットIDを抽出する(ステップS153)。そして、フォワーディングエンジン307は、スロットテーブルを検索し、抽出したスロットIDに対応する出力インタフェースを特定し(ステップS155)、特定した出力インタフェースへの送出を開始する(ステップS157)。すなわち、フォワーディングエンジン307は、制御パケット(制御種別:終了)を受信するまでの間、入力インタフェースからのパケットを、ルーティングテーブルを検索することなく、特定の出力インタフェースへ送出する。そして、端子Dを介してステップS169(図35)の処理に移行する。
一方、抽出した制御種別が「開始」でないと判断された場合(ステップS151:Noルート)、端子Cを介してステップS159(図35)の処理に移行する。
図35の説明に移行して、端子Cの後、フォワーディングエンジン307は、抽出した制御種別が「終了」であるか判断する(図35:ステップS159)。抽出した制御種別が「終了」であると判断された場合(ステップS159:Yesルート)、フォワーディングエンジン307は、受信したパケット(制御パケット)を、特定の出力インタフェースを介して、隣接するエッジルータ1又は他の中継ルータ3に送出する(ステップS160)。そして、フォワーディングエンジン307は、特定の出力インタフェースへの送出を終了する(ステップS161)。そして、処理を終了する。
一方、抽出した制御種別が「終了」でないと判断された場合(ステップS159:Noルート)、フォワーディングエンジン307は、抽出した制御種別が「解放」であるか判断する(ステップS163)。抽出した制御種別が「解放」であると判断された場合(ステップS163:Yesルート)、フォワーディングエンジン307は、受信したパケットからスロットIDを抽出する(ステップS165)。そして、フォワーディングエンジン307は、スロットテーブルから、抽出したスロットIDを含むレコードを削除する(ステップS167)。そして、ステップS169の処理に移行する。
一方、抽出した制御種別が「解放」でないと判断された場合(ステップS163:Noルート)、処理を終了する。
また、端子Dの後又はステップS167の処理の後、フォワーディングエンジン307は、受信したパケット(制御パケット)を、隣接するエッジルータ1又は他の中継ルータ3に送出し(ステップS169)、処理を終了する。
また、端子Eの後、フォワーディングエンジン307は、受信したパケット(データパケット)を、特定の出力インタフェースへ送出し(ステップS171)、処理を終了する。
以上のような処理を実施することにより、中継ルータ3は、ルーティング処理を行わなくとも、データパケットを適切に中継できる。また、上で説明したように、パケット衝突が生ずることのないようにタイムスロットが割り当てられているので、中継ルータ3においてパケットバッファリングを行わずに済む。すなわち、パケットバッファリング及びルーティング処理で消費していた電力を削減でき、中継ルータ3の省電力化が図れる。
例えば、従来のネットワーク全体の消費電力を1とした場合、本パケット通信システムにおける消費電力は、以下のように見積もられる。なお、エッジルータ1の数と中継ルータ3の数との比率は、(エッジルータ1の数):(中継ルータ3の数)=1:2とする。また、中継ルータ3のパケットバッファリング及びルーティング処理による消費電力の割合が、中継ルータ3の全体の37%であるものとする。なお、この値(37%)は、例えば非特許文献「J. Baliga, R. Ayre, K. Hinton and R. S. Tucker, "Photonic Switch and the Energy Bottleneck", Proc. IEEE Photonics in Switching, Aug. 2007」の記載に基づく値であり、Forwarding engineの33.5%とBuffersの3.5%の合計である。また、エッジルータ1の消費電力は、従来と変わらないものとする。さらに、多数のエッジルータ1及び中継ルータ3の全消費電力に比べ、管理サーバ5の消費電力は微々たるものであり、無視できるものとする。
本パケット通信システムにおける消費電力 =
1×(1/3)+(1−0.37)×(2/3)≒0.75
このように、本パケット通信システムによれば、、従来と比べ、ネットワーク全体で25%の省電力化が図れる。
[実施の形態2]
次に、図36乃至図47を用いて本技術の第2の実施の形態を説明する。上で説明した第1の実施の形態では、送信元エッジルータが制御パケット(制御種別:予約、解放)を送信することにより、タイムスロットの予約又は解放を行っていたが、第2の実施の形態では、管理サーバ5が制御メッセージをエッジルータ1及び中継ルータ3の各々に送信することにより、タイムスロットの予約又は解放を行う。
図36に、第2の実施の形態における管理サーバ5の機能ブロック図を示す。第2の実施の形態における管理サーバ5は、制御部501と、入力部503と、スロット予約処理部505と、スロット解放処理部507と、スロット予約メッセージ送信部519と、スロット解放メッセージ送信部521と、経路IDテーブル格納部511と、経路/リンク管理テーブル格納部513と、スロット割当テーブル格納部515と、リンク利用状況テーブル格納部517とを有する。なお、制御部501と、入力部503と、スロット予約処理部505と、スロット解放処理部507と、経路IDテーブル格納部511と、経路/リンク管理テーブル格納部513と、スロット割当テーブル格納部515と、リンク利用状況テーブル格納部517とは、基本的には第1の実施の形態と同じものである。
なお、スロット予約メッセージ送信部519は、後で説明するスロット予約メッセージ送信処理を行う。スロット解放メッセージ送信部521は、後で説明するスロット解放メッセージ送信処理を実施する。
また、エッジルータ1及び中継ルータ3の機能ブロック図は、基本的には図8及び図9に示したものと同じであるが、第2の実施の形態では、エッジルータ1におけるスロット予約テーブル格納部113には、図37に示すようなスロット予約テーブルが格納される。図37の例では、スロット予約テーブルには、出力インタフェース(IF)の列と、スロットIDの列と、キューIDの列とが含まれる。すなわち、第1の実施の形態におけるスロット予約テーブル(図13)から予約フラグの列と解放フラグの列とを除いたものである。
次に、図38及び図39を用いて、タイムスロットを予約する際のパケット通信システム全体の処理の流れを説明する。なお、第2の実施の形態では、図38に示すように、エッジルータ1及び中継ルータ3の各々と管理サーバ5との間に、制御トラフィック用の管理ネットワーク(NW)が構築されているものとする。
図38において、管理サーバ5は、エッジルータ1aからのスロット割当要求を受信すると、パケット衝突が生じることのないタイムスロットを割り当て、スロット割当テーブル及びリンク利用状況テーブルを更新する(図38:ステップ(31))。そして、管理サーバ5は、エッジルータ1a、中継ルータ3a、中継ルータ3b及びエッジルータ1dの各々に、割り当てたタイムスロットのIDと通信経路情報とを含むスロット予約メッセージを送信する(ステップ(32))。
そして、エッジルータ1a、中継ルータ3a、中継ルータ3b及びエッジルータ1dの各々は、管理サーバ5からのスロット予約メッセージを受信すると、スロット予約メッセージに含まれるデータを基に新たなレコードを生成してスロット予約テーブル又はスロットテーブルに追加する。
その後、エッジルータ1aは、このタイムスロットへの切り替わりを検出すると、タイムスロットIDと制御種別「開始」とを含む制御パケットと、キュー1071から読み出されるデータパケットと、タイムスロットIDと制御種別「終了」とを含む制御パケットとを送出する。
例えばスロット#2が割り当てられた場合の例を図39に示す。図39の例では、時刻t21の時点でスロット予約メッセージを受信しており、フレーム#k内のタイムスロット(スロット#2)が、割り当てから最初のタイムスロットとなる。なお、第2の実施の形態では、制御パケット(制御種別:予約)を送信する必要がないため、最初のタイムスロットにおいても、制御パケット(制御種別:開始)と、1又は複数のデータパケットと、制御パケット(制御種別:終了)とが送信される。
図40に、タイムスロットを解放する際のパケット通信システム全体の処理の流れを示す。例えばエッジルータ1aは、タイマのタイムアウトを検出すると、スロット解放要求を管理サーバ5に送信する。そして、管理サーバ5は、エッジルータ1aからのスロット解放要求を受信すると、スロット解放要求に係るタイムスロットを解放し、スロット割当テーブル及びリンク利用状況テーブルを更新する(図40:ステップ(41))。そして、管理サーバ5は、エッジルータ1a、中継ルータ3a、中継ルータ3b及びエッジルータ1dの各々に、解放したタイムスロットのIDを含むスロット解放メッセージを送信する(ステップ(42))。
そして、エッジルータ1a、中継ルータ3a、中継ルータ3b及びエッジルータ1dの各々は、管理サーバ5からのスロット解放メッセージを受信すると、解放されたタイムスロットのIDを含むレコードをスロット予約テーブル又はスロットテーブルから削除する。
次に、第2の実施の形態における管理サーバ5の処理フローを説明する。なお、基本的には第1の実施の形態で説明した処理フローと同じであるが、第2の実施の形態では、ステップS25の処理の代わりに図41に示すような処理(スロット予約メッセージ送信処理)を実施する。さらに、ステップS45の処理の代わりに図42に示すような処理(スロット解放メッセージ送信処理)を実施する。なお、第2の実施の形態では、ステップS23の処理の後、スロット予約処理部505が、割り当てたスロットのIDと通信経路情報とをスロット予約メッセージ送信部519に通知するものとする。また、ステップS43の処理の後、スロット解放処理部507が、解放したスロットのIDをスロット解放メッセージ送信部521に通知するものとする。以下、各処理について説明する。
まず、図41を用いてスロット予約メッセージ送信処理を説明する。なお、スロット予約メッセージ送信処理は、スロット予約メッセージ送信部519により実施される。スロット予約メッセージ送信部519は、スロット予約処理部505から、割り当てたスロットのIDと通信経路情報と受信すると、通信経路情報から送信元エッジルータ、送信先エッジルータ及び中継ルータ3を抽出する(図41:ステップS181)。ここでは、パケットが送信先エッジルータに到達するまでに経由する中継ルータ3が抽出される。そして、スロット予約メッセージ送信部519は、抽出した送信元エッジルータ、送信先エッジルータ及び中継ルータ3の各々に、割り当てたスロットのIDと通信経路情報とを含むスロット予約メッセージを送信する(ステップS183)。そして、スロット予約メッセージ送信処理を終了し、元の処理に戻る。
次に、図42を用いてスロット解放メッセージ送信処理を説明する。なお、スロット解放メッセージ送信処理は、スロット解放メッセージ送信部521により実施される。スロット解放メッセージ送信部521は、スロット解放処理部507から、解放したスロットのIDを受信すると、通信経路情報から送信元エッジルータ、送信先エッジルータ及び中継ルータ3を抽出する(図42:ステップS191)。ここでは、パケットが送信先エッジルータに到達するまでに経由する中継ルータ3が抽出される。そして、スロット解放メッセージ送信処理部521は、抽出した送信元エッジルータ、送信先エッジルータ及び中継ルータ3の各々に、解放したスロットのIDを含むスロット解放メッセージを送信する(ステップS193)。そして、スロット解放メッセージ送信処理を終了し、元の処理に戻る。
次に、第2の実施の形態におけるエッジルータ1の処理フローを説明する。なお、基本的には第1の実施の形態で説明した処理フローと同じであるが、第2の実施の形態では、ステップS75及びステップS77の処理の代わりに図43に示すような処理(スロット予約メッセージ受信処理)を実施する。さらに、ステップS129乃至ステップS135の処理の代わりに図44に示すような処理(スロット解放メッセージ受信処理)を実施する。また、図31に示した処理の代わりに図45に示すような処理を実施する。以下、各処理について説明する。
まず、図43を用いてスロット予約メッセージ受信処理を説明する。なお、スロット予約メッセージ受信処理は、スロット予約部111により実施される。スロット予約部111は、管理サーバ5からスロット予約メッセージを受信し、記憶装置に格納する(図43:ステップS201)。そして、スロット予約部111は、スロット予約メッセージからスロットIDを抽出する(ステップS203)。そして、スロット予約部111は、通信経路情報に従ってエッジルータテーブルからインタフェースを特定し、パス管理テーブルからキューIDを特定する。そして、スロット予約部111は、抽出したスロットIDとインタフェースの識別子とキューIDとを含むレコードを生成し、スロット予約テーブルに追加する(ステップS205)。そして、スロット予約メッセージ受信処理を終了し、元の処理に戻る。
次に、図44を用いてスロット解放メッセージ受信処理を説明する。なお、スロット解放メッセージ受信処理は、スロット解放部117により実施される。スロット解放部117は、管理サーバ5からスロット解放メッセージを受信し、記憶装置に格納する(図44:ステップS211)。そして、スロット解放部117は、スロット解放メッセージからスロットIDを抽出する(ステップS213)。そして、スロット解放部117は、スロット予約テーブルから、抽出したスロットIDに対応するキュー1071を特定する(ステップS215)。そして、スロット解放部117は、特定したキュー1071を削除する旨の指示をパケット分類部107に出力する。そして、パケット分類部107は、スロット解放部117からの指示に応じて、キュー1071を削除する(ステップS217)。
そして、スロット解放部117は、削除したキューのIDを含むレコードをパス管理テーブルから削除する(ステップS219)。また、スロット解放部117は、抽出したスロットIDを含むレコードをスロット予約テーブルから削除する(ステップS221)。そして、スロット解放メッセージ受信処理を終了し、元の処理に戻る。
次に、図45を用いて、タイムスロットが切り替わった際のエッジルータ1の処理フローを説明する。タイムスロットの切り替わりを検出した場合、スケジュール部115は、切り替え後のスロットを特定する(図45:ステップS231)。
そして、スケジュール部115は、特定スロットのIDを含むレコードがスロット予約テーブルに登録されているか判断する(ステップS233)。特定スロットのIDを含むレコードがスロット予約テーブルに登録されていないと判断された場合(ステップS233:Noルート)、処理を終了する。
一方、特定スロットのIDを含むレコードがスロット予約テーブルに登録されていると判断された場合(ステップS233:Yesルート)、スケジュール部115は、スロット予約テーブルから特定スロットに対応する出力インタフェースを特定する(ステップS235)。また、スケジュール部115は、スロット予約テーブルから、特定スロットに対応するキュー1071を特定する(ステップS237)。そして、スケジュール部115は、特定スロットのIDと制御種別「開始」とを含む制御パケットを生成し、特定出力インタフェースを介して送信先エッジルータ宛に送信する(ステップS239)。そして、スケジュール部115は、特定したキュー1071からデータパケットを順次読み出し、特定出力インタフェースを介して送信先エッジルータ宛に送信する(ステップS241)。そして、スケジュール部115は、特定スロットのIDと制御種別「終了」とを含む制御パケットを生成し、特定出力インタフェースを介して送信先エッジルータ宛に送信する(ステップS243)。そして、処理を終了する。
次に、第2の実施の形態における中継ルータ3の処理フロー説明する。なお、基本的には第1の実施の形態で説明した処理フローと同じであるが、第2の実施の形態では、制御パケット(制御種別:予約、解放)を使用しないため、ステップS145の処理の後、ステップS147の処理をスキップし、ステップS151に移行する。また、ステップS159において制御種別が「終了」でないと判断された場合(ステップS159:Noルート)には、処理を終了する。従って、第2の実施の形態では、ステップS149、ステップS150、ステップS165及びステップS167の処理を実施する必要はない。
さらに、第2の実施の形態では、中継ルータ3は、スロット予約メッセージを受信した場合には図46に示すような処理を実施し、スロット解放メッセージを受信した場合には図47に示すような処理を実施する。以下、各処理について説明する。
まず、図46を用いてスロット予約メッセージを受信した場合の処理フローを説明する。フォワーディングエンジン307は、管理サーバ5からスロット予約メッセージを受信し、記憶装置に格納する(図46:ステップS251)。そして、フォワーディングエンジン307は、スロット予約メッセージからスロットIDと通信経路情報とを抽出する(ステップS253)。そして、フォワーディングエンジン307は、抽出した通信経路情報から特定されるインタフェースの情報と、抽出したスロットIDとを含むレコードを生成し、スロットテーブルに追加する(ステップS255)。そして、処理を終了する。
次に、図47を用いてスロット解放メッセージを受信した場合の処理フローを説明する。フォワーディングエンジン307は、管理サーバ5からスロット解放メッセージを受信し、記憶装置に格納する(図47:ステップS261)。そして、フォワーディングエンジン307は、スロット解放メッセージからスロットIDを抽出する(ステップS263)。そして、フォワーディングエンジン307は、抽出したスロットIDを含むレコードをスロットテーブルから削除する(ステップS265)。そして、処理を終了する。
以上のような処理を実施することにより、スロット予約メッセージ及びスロット解放メッセージを用いてタイムスロットの予約及び解放を行うようにしても、第1の実施の形態と同様に、中継ルータ3の省電力化が図れる。
[実施の形態3]
次に、図48乃至図53を用いて本技術の第3の実施の形態を説明する。上で説明した第1及び第2の実施の形態では、管理サーバ5が、リンク利用状況テーブルに基づき、割り当てるタイムスロットを決定していたが、第3の実施の形態では、通信経路同士の衝突関係を格納する衝突管理テーブルに基づき、割り当てるタイムスロットを決定する。
図48に、第3の実施の形態における管理サーバ5の機能ブロック図を示す。第3の実施の形態における管理サーバ5は、制御部501と、入力部503と、スロット予約処理部505と、スロット解放処理部507と、出力部509と、衝突管理テーブル生成部523と、経路IDテーブル格納部511と、スロット割当テーブル格納部515と、衝突管理テーブル格納部525とを有する。なお、制御部501と、入力部503と、スロット予約処理部505と、スロット解放処理部507と、出力部509と、経路IDテーブル格納部511と、スロット割当テーブル格納部515とは、基本的には第1の実施の形態と同じものである。
なお、エッジルータ1及び中継ルータ3の機能ブロック図は、基本的には図8及び図9に示したものと同じである
衝突管理テーブル格納部525には、後で説明する衝突管理テーブルが格納されている。衝突管理テーブル生成部523は、図51に示すような処理を実施し、衝突管理テーブルを生成する。図51の処理については後で説明する。
図49に、衝突管理テーブル格納部525に格納される衝突管理テーブルの一例を示す。図49の例では、列及び行が経路ID毎に分かれており、衝突管理テーブルは、経路IDの組み合わせ毎に、当該組み合わせにおいてパケット衝突が生じるか否か(×:パケット衝突発生/空欄:パケット衝突なし)が設定される。なお、衝突管理テーブルは、例えば図50に示すようなパケット衝突検査を行い、検査結果に従って設定される。すなわち、テストパケットを2つの経路(図50では、1aと1b間の経路と、1cと1d間の経路)に同時に流して、テストパケットが衝突するか否かを検査する。なお、以下のような判断方法によりパケット衝突が発生したか否かを判断する。例えばパケット衝突時に中継ルータ3が送信待ちを行う場合には、送信時のタイムスロットと同じタイムスロットで送信先エッジルータにテストパケットが到達すれば、パケット衝突なしと判断する。また、パケット衝突時に中継ルータ3がパケットを破棄する場合には、送信先エッジルータにテストパケットが到達すれば、パケット衝突なしと判断する。さらに、パケット衝突時に中継ルータ3が衝突信号を送信元エッジルータに出力する場合には、送信元エッジルータにて当該衝突信号を検出しなければ、パケット衝突なしと判断する。なお、他の判断方法で判断するようにしてもよい。そして、このような検査を経路の組み合わせ毎に行うことで、衝突管理テーブルを生成することができる。
次に、図51乃至図53を用いて、第3の実施の形態における管理サーバ5の処理フローを説明する。なお、基本的には第1の実施の形態で説明した処理フローと同じであるが、第3の実施の形態では、衝突管理テーブルを生成するため、図51に示すような処理を実施する。また、第3の実施の形態では、ステップS23の処理の代わりに図52に示すような処理(スロット予約処理2)を実施する。さらに、ステップS43の処理の代わりに図53に示すような処理(スロット解放処理2)を実施する。以下、各処理について説明する。
まず、図51を用いて衝突管理テーブルを生成する処理を説明する。なお、管理サーバ5の衝突管理テーブル生成部523が、任意のタイミングで図51に示すような処理を実施する。まず、衝突管理テーブル生成部523は、ネットワーク構成に関する情報に従って、2つの経路の組み合わせのうち未処理の組み合わせを特定する(図51:ステップS271)。そして、衝突管理テーブル生成部523は、特定の組み合わせに係るエッジルータの各々に、検査指示を送信する(ステップS273)。なお、検査指示には、テストパケットの送信タイミングや、送信元エッジルータ、送信先エッジルータなどの情報が含まれる。そして、検査指示を受信したエッジルータ1は、検査指示に従って図50に示したような検査を実施する。
その後、衝突管理テーブル生成部523は、エッジルータ1から検査結果を受信し(ステップS275)、テストパケットの衝突が発生したか判断する(ステップS277)。テストパケットの衝突が発生したと判断された場合(ステップS277:Yesルート)、衝突管理テーブル生成部523は、特定の組み合わせにおいてパケット衝突が発生することを表す情報(図49では「×」)を衝突管理テーブルに設定する(ステップS279)。その後、ステップS281の処理に移行する。
一方、テストパケットの衝突が発生していないと判断された場合(ステップS277:Noルート)、ステップS279の処理をスキップし、ステップS281の処理に移行する。
そして、衝突管理テーブル生成部523は、全ての組み合わせについて処理が完了したか判断する(ステップS281)。全ての組み合わせについて処理が完了してなければ(ステップS281:Noルート)、ステップS271の処理に戻り、ステップS271乃至ステップS281の処理を繰り返す。一方、全ての組み合わせについて処理が完了した場合(ステップS281:Yesルート)、処理を終了する。
次に、図52を用いてスロット予約処理2を説明する。まず、スロット予約処理部505は、スロット割当要求に含まれる送信元エッジルータ及び送信先エッジルータの識別子を基に経路IDテーブルを検索し、スロット割当要求に係るエッジルータ間の経路を特定する(図52:ステップS291)。
そして、スロット予約処理部505は、衝突管理テーブルにおいて、特定経路と衝突する経路(以下、衝突経路と呼ぶ)を特定する(ステップS293)。そして、スロット予約処理部505は、経路IDテーブルを検索し、衝突経路に係る送信元エッジルータ及び送信先エッジルータを特定する(ステップS295)。
そして、スロット予約処理部505は、スロット割当テーブルを検索し、衝突経路に係るエッジルータ間のパケット通信に対して割り当てられているスロット以外のスロットを特定する(ステップS297)。そして、スロット予約処理部505は、特定スロットに対応するスロット割当テーブルにおいて、スロット割当要求に係るエッジルータ間のパケット通信に対して当該特定スロットを割り当てたことを表す情報を設定する(ステップS299)。そして、スロット予約処理2を終了し、元の処理に戻る。
次に、図53を用いてスロット解放処理2を説明する。まず、スロット解放処理部507は、スロット解放要求に含まれる送信元エッジルータ及び送信先エッジルータの識別子を基にスロット割当テーブルを検索し、スロット解放要求に係るエッジルータ間のパケット通信に対して割り当てられているスロットを特定する(図53:ステップS301)。そして、スロット解放処理部507は、特定スロットに対応するスロット割当テーブルから、スロット解放要求に係るエッジルータ間のパケット通信に対して当該特定スロットを割り当てたことを表す情報(図17に示した「○」)を削除する(ステップS303)。そして、スロット解放処理2を終了し、元の処理に戻る。
以上のような処理を実施することにより、衝突管理テーブルを用いるようにしても、第1の実施の形態と同様に、中継ルータ3の省電力化が図れる。
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上で説明したエッジルータ1、中継ルータ3及び管理サーバ5の機能ブロック図は必ずしも実際のプログラムモジュール構成に対応するものではない。
また、上で説明した各テーブルの構成は一例であって、必ずしも上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
また、上では、例えばエッジルータ1aからエッジルータ1dへのパケット通信と、エッジルータ1dからエッジルータ1aへのパケット通信とを区別せず、1つの経路IDで管理するようになっていたが、別々の経路IDで管理するようにしてもよい。この場合、別々のタイムスロットが割り当てられることとなる。
以上述べた本技術の実施の形態をまとめると以下のとおりになる。
第1の態様に係るネットワーク装置は、ネットワークにおけるエッジルータ間で通信されるパケットを中継するネットワーク装置であって、特定の送信元から特定の送信先へのパケット送信に対して割り当てられているタイムスロットの識別子と、当該パケット送信に用いられる入力インタフェース及び出力インタフェースの識別子とを含むレコードを格納するスロットテーブルと、特定のタイムスロットの識別子を含み且つ当該特定のタイムスロットの開始を示す第1の制御パケットを受信した場合、スロットテーブルから特定のタイムスロットに対応する入力インタフェース及び出力インタフェースを特定し、特定のタイムスロットの識別子を含み且つ当該特定のタイムスロットの終了を示す第2の制御パケットを受信するまでの間、特定された入力インタフェースからのパケットを、特定された出力インタフェースへ送出する手段とを有する。
このようにすれば、第1の制御パケットを受信してから第2の制御パケットを受信するまでの間は、ルーティング処理を行わなくとも、エッジルータ間で通信されるパケットを適切に中継できるようになる。また、例えばタイムスロットを適切に割り当てておくことで、パケット衝突を回避することができるようになり、ネットワーク装置においてパケットバッファリングを行わずに済むようになる。すなわち、パケットバッファリング及びルーティング処理で消費していた電力を削減でき、ネットワーク装置の省電力化が図れる。
また、タイムスロットの識別子及び通信経路の情報を含むスロット予約指示を受信した場合、スロット予約指示に含まれるタイムスロットの識別子と、スロット予約指示に含まれる通信経路の情報から特定される入力インタフェース及び出力インタフェースの識別子とを含むレコードをスロットテーブルに格納する手段をさらに有するようにしてもよい。このようにすれば、新たな割り当てがなされた場合についても対処できるようになる。
さらに、タイムスロットの識別子を含むスロット解放指示を受信した場合、スロットテーブルから、スロット解放指示に含まれるタイムスロットの識別子を含むレコードを削除する手段をさらに含むようにしてもよい。このようにすれば、いずれかの割り当てが不要になった場合についても対処できるようになる。
第2の態様に係るエッジルータは、パケットの送信先アドレスと、当該送信先アドレスに対応する送信先エッジルータの識別子とを格納するエッジルータテーブルと、送信先エッジルータ毎のキューと、特定の送信先エッジルータへのパケット送信に対して割り当てられているタイムスロットの識別子と、当該パケット送信に用いられる出力インタフェースの識別子と、特定の送信先エッジルータに対応するキューの識別子とを含むレコードを格納するスロット予約テーブルと、外部ネットワークからパケットを受信するパケット受信手段と、エッジルータテーブルから、受信したパケットの送信先アドレスに対応する送信先エッジルータを特定し、特定された送信先エッジルータに対応するキューに、受信したパケットを格納するパケット分類手段と、特定のタイムスロットへの切り替わりを検出した場合、スロット予約テーブルから特定のタイムスロットに対応する出力インタフェース及びキューを特定し、特定された出力インタフェースを介して、特定のタイムスロットの識別子を含み且つ当該特定のタイムスロットの開始を示す第1の制御パケットを送信し、第1の制御パケットを送信した後に、特定されたキューから読み出されるパケットを順次送信し、特定のタイムスロットにおける最後のパケットとして特定のタイムスロットの識別子を含み且つ当該特定のタイムスロットの終了を示す第2の制御パケットを送信するスケジュール手段とを有する。
このようにすれば、あるタイムスロットにおいては、当該タイムスロットに割り当てられているパケット通信のみが行われるので、例えばタイムスロットを適切に割り当てておくことで、パケット衝突を生じさせずにエッジルータ間の通信を行うことができるようになる。また、第1の制御パケット及び第2の制御パケットを送信することにより、タイムスロットの開始及び終了のタイミングを、例えば送信先エッジルータまでの通信経路上のネットワーク装置(ルータなど)に知らせることができる。すなわち、ネットワーク装置では、タイムスロットの同期を取らなくてもよくなる。
また、上で述べたパケット分類手段により特定された送信先エッジルータへのパケット送信に対してタイムスロットの割り当てがなされているか判断し、当該パケット送信に対してタイムスロットの割り当てがなされていないと判断された場合、スロット割当要求を、タイムスロットを管理する管理サーバに送信する手段と、管理サーバから、タイムスロットの識別子及び通信経路の情報を含むスロット割当通知を受信した場合、スロット割当通知に含まれるタイムスロットの識別子と、スロット割当通知に含まれる通信経路の情報から特定される出力インタフェースの識別子と、上で述べたパケット分類手段により特定された送信先エッジルータに対応するキューの識別子とを含むレコードをスロット予約テーブルに登録するスロット予約手段とをさらに有するようにしてもよい。さらに、上で述べたスケジュール手段が、新たなタイムスロットの割り当てがなされた場合、新たなタイムスロットの識別子を含み且つ当該新たなタイムスロットの予約を表す第3の制御パケットを送信する手段を有する場合もある。このようにすれば、タイムスロットが割り当てられていない新たなパケット通信が発生した場合にも対処できるようになる。
また、パケットをキューに格納してから一定期間経過するまでの間に当該キューに格納すべき次のパケットを受信しない場合、スロット解放要求を管理サーバに送信する手段と、管理サーバから、解放されたタイムスロットの識別子を含むスロット解放完了通知を受信した場合、スロット予約テーブルから、スロット解放完了通知に含まれるタイムスロットの識別子を含むレコードを削除する手段とをさらに有するようにしてもよい。さらに、上で述べたスケジュール手段が、いずれかのタイムスロットの解放がなされた場合、解放されたタイムスロットの識別子を含み且つ当該タイムスロットの解放を示す第4の制御パケットを送信する手段を有する場合もある。このようにすれば、一定期間以上パケットを受信しない場合には、割り当て済みのタイムスロットは解放され、当該タイムスロットを別のパケット通信に割り当てることができるようになる。すなわち、限られたタイムスロットを有効に利用することができるようになる。
第3の態様に係るパケット通信システムは、タイムスロットの定義情報及び同期時刻情報を用いてタイムスロットの同期を取り、パケット送信を行うエッジルータと、エッジルータ間で通信されるパケットを中継するネットワーク装置と、タイムスロットの定義情報及び同期時刻情報を各エッジルータに配信する管理サーバとを有する。そして、上で述べたエッジルータは、パケットの送信先アドレスと、当該送信先アドレスに対応する送信先エッジルータの識別子とを格納するエッジルータテーブルと、送信先エッジルータ毎のキューと、特定の送信先エッジルータへのパケット送信に対して割り当てられているタイムスロットの識別子と、当該パケット送信に用いられる第1出力インタフェースの識別子と、特定の送信先エッジルータに対応するキューの識別子とを格納するスロット予約テーブルと、外部ネットワークからパケットを受信する手段と、エッジルータテーブルから、受信したパケットの送信先アドレスに対応する送信先エッジルータを特定し、特定された送信先エッジルータに対応するキューに、受信したパケットを格納する手段と、タイムスロットの定義情報に従って定められる、タイムスロットの一連の流れにおいて、特定のタイムスロットへの切り替わりを検出した場合、スロット予約テーブルから特定のタイムスロットに対応する第1出力インタフェース及びキューを特定し、特定された第1出力インタフェースを介して、特定のタイムスロットの識別子を含み且つ当該特定のタイムスロットの開始を示す第1の制御パケットを送信し、第1の制御パケットを送信した後に、特定されたキューから読み出されるパケットを順次送信し、特定のタイムスロットにおける最後のパケットとして特定のタイムスロットの識別子を含み且つ当該特定のタイムスロットの終了を示す第2の制御パケットを送信する手段とを有する。また、上で述べたネットワーク装置は、タイムスロットの識別子と、当該タイムスロットにおけるパケット送信に用いられる入力インタフェース及び第2出力インタフェースの識別子とを格納するスロットテーブルと、第1の制御パケットを受信した場合、スロットテーブルから、受信した第1の制御パケットに含まれる特定のタイムスロットの識別子に対応する入力インタフェース及び第2出力インタフェースを特定し、第2の制御パケットを受信するまでの間、特定された入力インタフェースからのパケットを、特定された第2出力インタフェースへ送出する手段とを有する。
なお、上記エッジルータ1、中継ルータ3及び管理サーバ5をハードウェアと共に実現するためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
なお、管理サーバ5は、図54に示すように、メモリ2501(記憶部)とCPU2503(処理部)とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。OS及びWebブラウザを含むアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。このようなコンピュータは、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
ネットワークにおけるエッジルータ間で通信されるパケットを中継するネットワーク装置であって、
特定の送信元から特定の送信先へのパケット送信に対して割り当てられているタイムスロットの識別子と、当該パケット送信に用いられる入力インタフェース及び出力インタフェースの識別子とを含むレコードを格納するスロットテーブルと、
特定のタイムスロットの識別子を含み且つ当該特定のタイムスロットの開始を示す第1の制御パケットを受信した場合、前記スロットテーブルから前記特定のタイムスロットに対応する前記入力インタフェース及び前記出力インタフェースを特定し、前記特定のタイムスロットの識別子を含み且つ当該特定のタイムスロットの終了を示す第2の制御パケットを受信するまでの間、特定された前記入力インタフェースからのパケットを、特定された前記出力インタフェースへ送出する手段と、
を有するネットワーク装置。
(付記2)
パケットの送信先アドレスと、当該送信先アドレスに対応する送信先エッジルータの識別子とを格納するエッジルータテーブルと、
前記送信先エッジルータ毎のキューと、
特定の送信先エッジルータへのパケット送信に対して割り当てられているタイムスロットの識別子と、当該パケット送信に用いられる出力インタフェースの識別子と、前記特定の送信先エッジルータに対応する前記キューの識別子とを含むレコードを格納するスロット予約テーブルと、
外部ネットワークから前記パケットを受信するパケット受信手段と、
前記エッジルータテーブルから、受信した前記パケットの送信先アドレスに対応する前記送信先エッジルータを特定し、特定された前記送信先エッジルータに対応する前記キューに、受信した前記パケットを格納するパケット分類手段と、
特定のタイムスロットへの切り替わりを検出した場合、前記スロット予約テーブルから前記特定のタイムスロットに対応する前記出力インタフェース及び前記キューを特定し、特定された前記出力インタフェースを介して、前記特定のタイムスロットの識別子を含み且つ当該特定のタイムスロットの開始を示す第1の制御パケットを送信し、前記第1の制御パケットを送信した後に、特定された前記キューから読み出される前記パケットを順次送信し、前記特定のタイムスロットにおける最後のパケットとして前記特定のタイムスロットの識別子を含み且つ当該特定のタイムスロットの終了を示す第2の制御パケットを送信するスケジュール手段と、
を有するエッジルータ。
(付記3)
タイムスロットの定義情報及び同期時刻情報を用いて前記タイムスロットの同期を取り、パケット送信を行うエッジルータと、
前記エッジルータ間で通信されるパケットを中継するネットワーク装置と、
前記タイムスロットの定義情報及び同期時刻情報を各前記エッジルータに配信する管理サーバと、
を有し、
前記エッジルータは、
パケットの送信先アドレスと、当該送信先アドレスに対応する送信先エッジルータの識別子とを格納するエッジルータテーブルと、
前記送信先エッジルータ毎のキューと、
特定の送信先エッジルータへのパケット送信に対して割り当てられているタイムスロットの識別子と、当該パケット送信に用いられる第1出力インタフェースの識別子と、前記特定の送信先エッジルータに対応する前記キューの識別子とを格納するスロット予約テーブルと、
外部ネットワークから前記パケットを受信する手段と、
前記エッジルータテーブルから、受信した前記パケットの送信先アドレスに対応する前記送信先エッジルータを特定し、特定された前記送信先エッジルータに対応する前記キューに、受信した前記パケットを格納する手段と、
前記タイムスロットの定義情報に従って定められる、前記タイムスロットの一連の流れにおいて、特定のタイムスロットへの切り替わりを検出した場合、前記スロット予約テーブルから前記特定のタイムスロットに対応する前記第1出力インタフェース及び前記キューを特定し、特定された前記第1出力インタフェースを介して、前記特定のタイムスロットの識別子を含み且つ当該特定のタイムスロットの開始を示す第1の制御パケットを送信し、前記第1の制御パケットを送信した後に、特定された前記キューから読み出される前記パケットを順次送信し、前記特定のタイムスロットにおける最後のパケットとして前記特定のタイムスロットの識別子を含み且つ当該特定のタイムスロットの終了を示す第2の制御パケットを送信する手段と、
を有し、
前記ネットワーク装置は、
前記タイムスロットの識別子と、当該タイムスロットにおけるパケット送信に用いられる入力インタフェース及び第2出力インタフェースの識別子とを格納するスロットテーブルと、
前記第1の制御パケットを受信した場合、前記スロットテーブルから、受信した前記第1の制御パケットに含まれる前記特定のタイムスロットの識別子に対応する前記入力インタフェース及び前記第2出力インタフェースを特定し、前記第2の制御パケットを受信するまでの間、特定された前記入力インタフェースからのパケットを、特定された前記第2出力インタフェースへ送出する手段と、
を有するパケット通信システム。
(付記4)
前記タイムスロットの識別子及び通信経路の情報を含むスロット予約指示を受信した場合、前記スロット予約指示に含まれる前記タイムスロットの識別子と、前記スロット予約指示に含まれる前記通信経路の情報から特定される前記入力インタフェース及び前記出力インタフェースの識別子とを含む前記レコードを前記スロットテーブルに格納する手段
をさらに有する付記1記載のネットワーク装置。
(付記5)
前記タイムスロットの識別子を含むスロット解放指示を受信した場合、前記スロットテーブルから、前記スロット解放指示に含まれる前記タイムスロットの識別子を含む前記レコードを削除する手段
をさらに有する付記1又は4記載のネットワーク装置。
(付記6)
前記パケット分類手段により特定された前記送信先エッジルータへのパケット送信に対して前記タイムスロットの割り当てがなされているか判断し、当該パケット送信に対して前記タイムスロットの割り当てがなされていないと判断された場合、スロット割当要求を、前記タイムスロットを管理する管理サーバに送信する手段と、
前記管理サーバから、前記タイムスロットの識別子及び通信経路の情報を含むスロット割当通知を受信した場合、前記スロット割当通知に含まれる前記タイムスロットの識別子と、前記スロット割当通知に含まれる前記通信経路の情報から特定される前記出力インタフェースの識別子と、前記パケット分類手段により特定された前記送信先エッジルータに対応する前記キューの識別子とを含む前記レコードを前記スロット予約テーブルに登録するスロット予約手段と、
をさらに有する付記2記載のエッジルータ。
(付記7)
前記スケジュール手段が、
新たなタイムスロットの割り当てがなされた場合、前記新たなタイムスロットの識別子を含み且つ当該新たなタイムスロットの予約を表す第3の制御パケットを送信する手段
を有する付記6記載のエッジルータ。
(付記8)
前記パケットを前記キューに格納してから一定期間経過するまでの間に当該キューに格納すべき次のパケットを受信しない場合、スロット解放要求を前記管理サーバに送信する手段と、
前記管理サーバから、解放された前記タイムスロットの識別子を含むスロット解放完了通知を受信した場合、前記スロット予約テーブルから、前記スロット解放完了通知に含まれる前記タイムスロットの識別子を含む前記レコードを削除する手段と、
をさらに有する付記2、6及び7のいずれか1つ記載のエッジルータ。
(付記9)
前記スケジュール手段が、
いずれかの前記タイムスロットの解放がなされた場合、解放された前記タイムスロットの識別子を含み且つ当該タイムスロットの解放を示す第4の制御パケットを送信する手段
を有する付記8記載のエッジルータ。
(付記10)
ネットワークにおけるエッジルータ間で通信されるパケットを中継するネットワーク装置に、
特定のタイムスロットの識別子を含み且つ当該特定のタイムスロットの開始を示す第1の制御パケットを受信した場合、特定の送信元から特定の送信先へのパケット送信に対して割り当てられているタイムスロットの識別子と、当該パケット送信に用いられる入力インタフェース及び出力インタフェースの識別子とを含むレコードを格納するスロットテーブルから、前記特定のタイムスロットに対応する前記入力インタフェース及び前記出力インタフェースを特定するステップと、
前記特定のタイムスロットの識別子を含み且つ当該特定のタイムスロットの終了を示す第2の制御パケットを受信するまでの間、特定された前記入力インタフェースからのパケットを、特定された前記出力インタフェースへ送出するステップと、
を実行させるプログラム。
(付記11)
外部ネットワークからパケットを受信するステップと、
送信先アドレスと当該送信先アドレスに対応する送信先エッジルータの識別子とを格納するエッジルータテーブルから、受信した前記パケットの送信先アドレスに対応する前記送信先エッジルータを特定し、特定された前記送信先エッジルータに対応するキューに、受信した前記パケットを格納するステップと、
特定のタイムスロットへの切り替わりを検出した場合、特定の送信先エッジルータへのパケット送信に対して割り当てられているタイムスロットの識別子と、当該パケット送信に用いられる出力インタフェースの識別子と、前記特定の送信先エッジルータに対応する前記キューの識別子とを含むレコードを格納するスロット予約テーブルから、前記特定のタイムスロットに対応する前記出力インタフェース及び前記キューを特定し、特定された前記出力インタフェースを介して、前記特定のタイムスロットの識別子を含み且つ当該特定のタイムスロットの開始を示す第1の制御パケットを送信し、前記第1の制御パケットを送信した後に、特定された前記キューから読み出される前記パケットを順次送信し、前記特定のタイムスロットにおける最後のパケットとして前記特定のタイムスロットの識別子を含み且つ当該特定のタイムスロットの終了を示す第2の制御パケットを送信するステップと、
をエッジルータに実行させるプログラム。