まず、本発明の好ましい実施形態による通信ネットワークシステムの概要を説明する。
既存システムと新規システムがネットワークを共有する通信ネットワークシステムにおいて、新規システムで発生するパケットを、既存システムのゲートウェイを介して上位のアプリケーションサーバに転送する場合、新規システムのゲートウェイから既存システムのゲートウェイまでパケットを転送するための、通信チャネル及びスロットを割り当てる。更に、パケットには許容遅延時間Dtが存在するため、既存システムのゲートウェイから上位アプリケーションサーバに至るまでの最大遅延時間Tmaxに対して、X=Dt-Tmaxで定義される時間X以内に新規システムのゲートウェイから既存システムのゲートウェイまでパケットを転送する。
そこで、新規システムのゲートウェイは、既存システムのゲートウェイと、そこに至るまでの経路上の端末に対して、空きチャネル・空きスロットの中から、既存システムのゲートウェイへX以内にパケットを転送するための通信チャネル及びスロットを割り当てるように要求する。端末及びゲートウェイは、自身ならびに自身と干渉する範囲内に存在する近隣の端末が使用する通信チャネル及びスロットを、チャネル・スロット管理テーブルで管理する。そして、新規システムのゲートウェイから既存システムのゲートウェイに至る経路上の各リンクにおいて、リンク上の転送元と転送先のチャネル・スロット管理テーブルを参照して空きチャネル・空きスロットを抽出し、時間Xに収まる範囲内で、各リンク上でパケット転送を行うための通信チャネル及びスロットを割り当てる。この時、既存システムと新規システムのトラフィック特性に応じて、スロットの割当順序を規定する。
このトラフィック特性に関して、既存システムのトラフィック負荷が新規システムのトラフィック負荷よりも低い場合は、新規システムのゲートウェイでパケットを蓄積せずに出来るだけ早くパケットを送信することが望ましい。そこで、この場合は新規システムのゲートウェイから既存システムのゲートウェイに至る経路上のリンクのうち、新規システムのゲートウェイに近いリンクから順に、時間Xに収まる範囲内で転送用の通信チャネル及びスロットを確保する。また、この時、空きチャネル・空きスロットのうち、最も早いスロット番号のものから順に確保する。
一方、既存システムのトラフィック負荷が新規システムのトラフィック負荷よりも高い場合は、新規システムの通信による帯域消費量削減の観点から、新規システムのゲートウェイで出来るだけ長い時間パケットを蓄積し、より多くのパケットを1つに結合(アグリゲーション)して纏めて送信することが望ましい。そこで、この場合は新規システムのゲートウェイから既存システムのゲートウェイに至る経路上のリンクのうち、既存システムのゲートウェイに近いリンクから順に、時間Xに収まる範囲内で転送用の通信チャネル及びスロットを確保する。また、この時、空きチャネル・空きスロットのうち、最も遅いスロット番号のものから順に確保する。
本発明の好ましい例においては、通信チャネル及びスロット割当処理をゲートウェイ及び端末間の自律分散制御、または管理装置による集中制御で実施する。新規システムのゲートウェイから既存システムのゲートウェイに至る経路上の各リンクにおいて、転送用の通信チャネル及びスロットの割当が完了すると、新規システムに関するパケットを既存システムの通信と干渉することなく、且つパケットの許容遅延時間以内に上位のアプリケーションサーバまで届けることが可能となる。
以下、図面を参照して、好ましい実施形態(実施例1〜実施例4)による、通信ネットワークシステム構成、端末及びゲートウェイ、テーブル構成ならびにパケット構成、通信チャネル及びスロット割当制御について説明する。尚、端末及びゲートウェイを総じて通信装置と言ってもよい。
実施例1は、既存システムのトラフィック負荷が新規システムのトラフィック負荷よりも低い場合、ゲートウェイ及び端末間の自律分散制御によって通信チャネル及びスロット割当を実現する例である。狭帯域の環境でマルチホップネットワークが構築される場合や、端末台数が多い場合など、端末が頻繁にチャネル・スロット管理テーブルの情報を管理装置に通知することが困難な場合は、管理装置による集中制御ではなく、本実施例のような自律分散制御が有効である。また、既存システムのトラフィック負荷が新規システムのトラフィック負荷よりも低い場合は、遅延時間低減の観点から、新規システムのゲートウェイでパケットを蓄積せずに出来るだけ早くパケットを送信することが望ましい。
まず、図1〜図4を用いて通信ネットワークシステムの構成、端末及びゲートウェイについて説明する。次に、図5を用いてチャネル・スロット管理テーブル、図6を用いてパケットフォーマットについて説明する。その後、図7〜10を用いて通信チャネル及びスロットの割当制御と、その動作例について説明する。
図1は、1つのシステムによって構成される通信ネットワークシステムの構成例である。図1において、通信ネットワークシステム1は、アプリケーションサーバ100にネットワークを介して接続される、ゲートウェイ400と、ゲートウェイ400に階層的に接続される複数の端末300−a〜300−f(以下300と総称することがある)を有して構成される。ゲートウェイ400は、アプリケーションサーバ100と、一部の端末300−a,300−bに無線または有線で通信可能に接続されている。端末300から収集されるデータは、ゲートウェイ400を介してアプリケーションサーバ100に送信される。ここで、ゲートウェイ400と端末300で構成されるネットワークをField Area Network(以下、FAN)という。図示の例では、根となるゲートウェイ400から枝分かれする形で端末300が接続されるツリー構造のトポロジとなっているが、トポロジの形状はメッシュ構造などであってもよい。
図2は、複数のシステムで構成される通信ネットワークシステムの構成例である。図2において、通信ネットワークシステム2は、それぞれ稼動するアプリケーションサーバ201及び202にネットワークを介してシステム31のFAN1が接続され、更にFAN1にシステム32のFAN2が接続して構成される。各システム31、32は、ゲートウェイ400−1とゲートウェイ400−2、各ゲートウェイの配下に階層構成された端末300−1a〜1f、端末300−2a〜2dを有する。端末300−1a〜1fから収集されるデータは、ゲートウェイ400−1を介してアプリケーションサーバ201に送信される。
一方、システム32に属する端末300−2a〜2dから収集されるデータは、ゲートウェイ400−2に送信され、更にゲートウェイ400−2からシステム31に属する複数の端末300−1d、300−1aを通ってゲートウェイ400−1に転送されて、アプリケーションサーバ202に送信される。即ち、システム31のFAN1を共有する形で、システム32の端末300−2a〜2dから送信されるデータがアプリケーションサーバ202へ送信される。
本実施例では、アプリケーションサーバ201、ゲートウェイ400−1、端末300−1a〜1fで構成されるシステム31が既存システムとして存在しており、それぞれ端末300−1a〜1fが、各自割り当てられた通信チャネル及びスロットに従って、干渉を起こさないように通信しているとする。そして、システム31に新規のシステム32、即ちアプリケーションサーバ202、ゲートウェイ400−2、端末300−2a〜dで構成されるシステムが新たに追加されることを想定する。
本実施例は、システム32に属する端末300−2a〜2dの送信データを、ゲートウェイ400−2からシステム31にあるゲートウェイ400−1に転送する際に必要となる、通信チャネル及びスロットを割り当ての技術を説明するものである。(以下の説明では、既存システム31、新規システム32ということがある。)
なお、図示の例では、2つのFANのシステムによって通信ネットワークシステムが構成されるが、3つ以上のシステムで構成してもよい。また、FAN1とFAN2は異なる通信チャネルを利用することで、分離して構成してもよい。ただし、この場合は、ゲートウェイ400−2はFAN1とFAN2の両方に属しているため、2つのFANで使用されている通信チャネルを用いて、それぞれFAN1及びFAN2での通信を行う。
図3は、端末300のハードウェア構成を示す。
端末300は、ゲートウェイ400または他の端末300との通信機能を有する組込み機器である。端末300は、マイコン301と、クロック生成回路308と、電源回路309と、送受信回路310を有して構成される。マイコン301は、ROM302と、RAM307を有し、クロック生成回路308と、電源回路309と、送受信回路310に接続されている。
ROM302は、読み出し専用の半導体メモリなどから構成される記憶装置である。ROM302は、中央制御部303と、通信処理部304と、経路管理部305と、通信チャネル・スロット管理部306を備え、RAM307に接続されている。中央制御部303は、ROM302の内のプログラムの実行を制御する。中央制御部303は、通信処理部304と、経路管理部305と、通信チャネル・スロット管理部306に接続されている。
通信処理部304は、通信における送受信処理を行う。具体的には、通信処理部304は、送信する際の送信宛先指定等のパケット組立て処理、及び受信する際の自端末宛のパケットか否かの判断等を始めとしたパケット解析処理を行なう。経路管理部305は、ネットワーク内の通信における経路を管理する。通信チャネル・スロット管理部306は、チャネル・スロット管理テーブル500(図5参照)を有し、自身の通信チャネル及びスロット使用状況、ならびに自身と干渉する範囲に存在する近隣端末によって使用されている通信チャネル及びスロットを管理する。RAM307は、書き換え可能な半導体メモリ素子などの記憶装置であり、通信における送受信バッファなどに利用される。
クロック生成回路308は、電源回路309と、マイコン301と、送受信回路310と接続され、マイコン301および送受信回路310で利用するクロックを生成する。電源回路309は、クロック生成回路308と、マイコン301と、送受信回路310とに接続され、各部に電源を供給する。送受信回路310は、クロック生成回路308と、電源回路309と、マイコン301に接続され、信号の送信および受信を行なう。無線通信を行なう場合、RF周辺回路が送受信回路310に該当する。なお、端末300は、組み込み機器でなく独立した装置であってもよい。
図4は、ゲートウェイのハードウェア構成を示す。
ゲートウェイ400は、端末300やアプリケーションサーバと通信を行ない、端末300からのデータ収集等を行なう。ゲートウェイ400のハードウェア構成は、外部ネットワーク接続回路411を搭載する点を除いて、端末300と同様である。外部ネットワーク接続回路411は、Ethernet(登録商標)、WiFi(登録商標)、光回線、電話網等の外部ネットワークを利用するための機能である。ただし、図2のゲートウェイ400−2のように外部ネットワークとの接続が発生しないものについては、必ずしも外部ネットワーク接続回路411を搭載する必要は無い。
図5は、端末及びゲートウェイが保持するチャネル・スロット管理テーブルを示す。
チャネル・スロット管理テーブル500は、端末300及びゲートウェイ400の通信チャネル・スロット管理部306に保持されて、自身の通信チャネル及びスロット使用状況、ならびに自身と干渉する範囲に存在する近隣端末によって使用されている通信チャネル及びスロットを管理する。
チャネル・スロット管理テーブル500において、通信チャネル501は自身が属するFAN内で使用可能な通信チャネルを示し、スロット502は有限長の通信フレームを単位時間のスロットに時分割した際のスロット番号を示している。自身または自身と干渉する範囲に存在する近隣端末が使用していない空きチャネル・空きスロットについては、チャネル・スロット管理テーブル500に“0”が登録される。例えば、通信チャネルYのスロット番号Zを(Y, Z)と表すとすると、図5の例では(C1,S1)が“0”となっており、自身も近隣端末も使用していない状態であることを示す。
チャネル・スロット管理テーブル500において、自身が送信もしくは受信用に使用するチャネル・スロットには“1”が登録される。図示の例で(C2,S1)が“1”となっており、自身が送信もしくは受信するために割り当てられている。尚、図3や図4の送受信回路310が送信用と受信用に分離されており、パケットを送信しながら、同時に別パケットを受信するための特殊な機構が設けられていない限り、あるスロットに“1”が割り当てられている場合は、同じスロットの別チャネルに“0”の枠が存在したとしても、自身が使用することは出来ない。以降、本実施例では端末やゲートウェイに、同時に送受信するための機構が設けられていないことを想定して説明する。
チャネル・スロット管理テーブル500において、自身と干渉する範囲に存在する近隣端末が送信用に使用するチャネル・スロットには“2”が登録される。図示の例で(C3,S1)が“2”となっており、近隣端末が使用するチャネル・スロットであるため、自身が送受信用に使用することは出来ない。尚、これまで“0”が登録されていた空きチャネル・スロットを、自身が新規に使用することが決定した場合は、自身と干渉する範囲に存在する近隣端末が当該チャネル・スロットを使用しないように、ブロードキャストまたはマルチキャストによって新規確保の旨を近隣端末へ通知する。この通知を受信した近隣端末は、自身の保持する管理テーブル500のうち、該当するチャネル・スロットの部分に“2”を登録する。本実施例では、“0”、“1”、“2”の表記でチャネル・スロット使用状況を識別しているが、その他の識別子を使用してもよい。
図6は、通信チャネル及びスロットの割当に使用するパケットのフォーマットを示す。
パケット600は、ヘッダ601と、ペイロード602とから構成される。ヘッダ601は、宛先アドレス603、最終宛先アドレス604、送信元アドレス605、発信元アドレス606、パケットID607、スロット割当順序フラグ608、割当範囲の始点スロット番号609、割当範囲の終点スロット番号610、トラフィックID611から構成される。ただし、この他にもパケット長や、TTL(Time To Live)などのフィールドが必要であれば、適宜ヘッダに追加してもよい。つまり、宛先アドレス603〜トラフィックID611と同等のフィールドを含むものであれば、ヘッダの構成は、特に限定されるものではない。ヘッダの構成は、MACヘッダとIPヘッダとから構成されるヘッダであってもよい。
宛先アドレス603は、リンク間通信における宛先のアドレスまたはIDを登録するフィールドである。このフィールドに登録するアドレスまたはID等の識別子は、通信システムで採用している方式に準拠させる。IPアドレス、MACアドレスまたは独自のIDで識別しているのであれば、そのIDを登録してもよい。
最終宛先アドレス604は、当該パケットの最終的な宛先のアドレスまたはIDを登録するフィールドである。例えば、図2のゲートウェイ400−2がゲートウェイ400−1までパケットを転送する上で必要となる通信チャネル及びスロットの割当を要求する場合は、最終宛先アドレス604にゲートウェイ400−1のアドレスまたはIDを登録する。
送信元アドレス605は、パケットを中継した送信元のアドレスまたはIDを登録するフィールドである。発信元となる端末やゲートウェイが送信する際は、送信元アドレス605に発信元のアドレスまたはIDを登録する。
発信元アドレス606は、パケットの発信元のアドレスまたはIDを登録するフィールドである。
パケットID607は、パケットの識別に用いるためのIDを登録するフィールドである。パケットID607は、発信元によって登録され、IPヘッダに用いられるシーケンス番号などがパケットIDに該当する。発信元アドレス606、及びパケットID607が同じパケットを重複して受信した場合は、当該パケットを破棄するものとする。
スロット割当順序フラグ608は、空きスロットのうち早いものから順に確保するのか、遅いものから順に確保するのかを規定するフラグである。早いものから順に確保する場合は“0”、遅いものから順に確保する場合は“1”を登録する。登録するフラグ値の判定は、例えば既存システムと新規システムのトラフィック負荷の大小比較を基に行い、本実施例のように既存システムのトラフィック負荷が新規システムのトラフィック負荷よりも低い場合は、新規システムのゲートウェイでパケットを蓄積せずに出来るだけ早くパケットを送信することが望ましいため、スロット割当順序フラグ608に“0”を登録して、空きスロットのうち早いものから順に確保するように規定する。一方、既存システムのトラフィック負荷が新規システムのトラフィック負荷よりも高い場合は、スロット割当順序フラグ608に“1”を登録して、空きスロットのうち遅いものから順に確保するように規定する。後者については実施例2にて詳述する。
割当範囲の始点スロット番号609は、通信チャネル及びスロットの割当要求を行うにあたって、割当を希望するスロット範囲の始点となるスロット番号を登録するフィールドである。例えば、図5のチャネル・スロット管理テーブルのうち、スロット番号S3以降のスロットで割当を希望する場合は、割当範囲の始点スロット番号609に“3”を登録する。
割当範囲の終点スロット番号610は、通信チャネル及びスロットの割当要求を行うにあたって、割当を希望するスロット範囲の終点となるスロット番号を登録するフィールドである。例えば、図5のチャネル・スロット管理テーブルのうち、スロット番号S10以前のスロットで割当を希望する場合は、割当範囲の終点スロット番号610に“10”を登録する。
トラフィックID611は、パケットのトラフィック種別の識別に用いるためのIDを登録するフィールドである。トラフィックID611は、発信元によって登録される。例えば、図2の端末300−2aが送信するシステム32に関するトラフィックパケットの場合は、トラフィックID611に“2”を登録する。ただし、同一システムに関するパケットの中でも、許容遅延などが異なり、複数のトラフィック種別が存在する場合は、さらに細かい粒度でトラフィックIDを規定してもよい。このトラフィックID611を設けることで、各トラフィックパケットをどの通信チャネル・スロットで転送すべきかを、端末やゲートウェイが管理することが可能となる。
ペイロード602は、スロット・チャネル管理テーブル612を格納する。本フィールドには、送信元端末のスロット・チャネル管理テーブルに関する情報を登録する。ただし、必ずしも全スロットに関する情報を登録する必要はなく、パケット長削減のために、割当範囲の始点スロット番号609と、割当範囲の終点スロット番号610で指定された範囲のスロット・チャネル管理テーブルの情報のみを登録してもよい。尚、ペイロード602には、スロット・チャネル管理テーブル612だけでなく、必要に応じてアプリケーションデータを格納してもよい。
次に、図7を参照して、通信チャネル及びスロット割当制御動作について説明する。
新規システム32のパケットを、既存システム31のFAN1を介してアプリケーションサーバに送信するため、図7の制御動作に従って、予め通信チャネル及びスロットの割当を実施する。第1の実施例における通信チャネル及びスロット割当制御では、出来るだけ早いスロットから順に確保するため、新規システム32のゲートウェイ400−2から既存システム31のゲートウェイ400−1に至る経路上のリンクのうち、新規システムのゲートウェイに近いリンクから順に転送用の通信チャネル及びスロットを確保する。この制御動作は、チャネル・スロット割当要求パケットを受信した端末300またはゲートウェイ400の通信チャネル・スロット管理部306によって行われる。
図7において、ステップ701は、新規システム32のゲートウェイ400−2が、配下に接続する端末から受信したパケットを許容遅延時間内にアプリケーションサーバへ届ける上で、割当が必要となるスロットの範囲を算出する処理である。パケットには、上位アプリケーションサーバへ届けられるまでの許容遅延時間Dtが存在するため、既存システム31のゲートウェイ400−1から上位アプリケーションサーバに至るまでの最大遅延時間をTmaxとした時、X=Dt-Tmaxで定義される時間X以内に新規システムのゲートウェイから既存システムのゲートウェイにパケットを転送する必要がある。そこで、新規システム32のゲートウェイ400−2の通信チャネル・スロット管理部306が、許容遅延時間Dtと最大遅延時間Tmaxを基に時間Xを計算し、自身の配下に接続する端末からパケットを受信する時間を起点に、何スロット目に収まる範囲内でスロットの割当を要求する必要があるかを算出する。このスロットの範囲は、既存システム31に属する端末が通信に用いるスロット幅をStとした時、Floor(X/St)で計算することが出来(Floorは小数点以下を切り捨てる関数)、新規システム32のゲートウェイは割当範囲の始点スロット番号にFloor(X/St)の値を足した番号を、割当範囲の終点スロット番号に指定する。尚、割当範囲の始点スロット番号は、新規システムのゲートウェイが配下に接続する端末からパケットを受信するスロット番号に対して、1を足した番号である。新規システムのゲートウェイは、割当を要求するスロットの範囲を算出すると、ステップ702へ進む。
ステップ702は、新規システム32のゲートウェイ400−2が、図6のパケットフォーマットに従ってチャネル・スロット割当要求パケットを作成し、経路管理部305に記憶された転送先(トポロジがツリー構造の場合、親端末)に対して、作成したチャネル・スロット割当要求パケットを送信する処理である。
チャネル・スロット割当要求パケットの作成について言えば、まず宛先アドレス603にパケット転送先のアドレスまたはIDを登録する。例えば、端末300−1dのアドレスまたはIDを登録する。次に、最終宛先アドレス604には、既存システム31のゲートウェイ400−1のアドレスまたはIDを登録する。送信元アドレス605と発信元アドレス606には、新規システム32のゲートウェイ400−2のアドレスまたはIDを登録する。パケットID607には固有のパケットIDを登録する。スロット割当順序フラグ608には、“0”を登録する。割当範囲の始点スロット番号609と、割当範囲の終点スロット番号610には、ステップ701で算出した始点及び終点のスロット番号をそれぞれ登録する。トラフィックID611には、通信チャネル及びスロットの割当後に送信することとなるパケットのトラフィック種別を示すIDを登録する。そして、スロット・チャネル管理テーブル612には、新規システム32のゲートウェイ400−2のスロット・チャネル管理テーブルを登録する。この時、上述の通り、割当範囲の始点スロット番号609と、割当範囲の終点スロット番号610で指定された範囲のスロット・チャネル管理テーブルのみを登録してもよい。本チャネル・スロット割当要求パケットを作成すると、当該パケットを送信して、ステップ703に進む。
ステップ703は、チャネル・スロット割当要求パケットを受信した端末またはゲートウェイの通信チャネル・スロット管理部306が、当該パケットの送信元と自身のチャネル・スロット管理テーブルを参照して、要求されたスロットの範囲内で空きチャネル・空きスロットを抽出する処理である。この処理は、チャネル・スロット割当要求パケットの送信元から、当該パケットの受信端末またはゲートウェイに対してパケットを転送する上で、確保可能な通信チャネル及びスロットを抽出するものである。具体的な抽出方法は図8を参照して後述する。本処理が終了すると、ステップ704に進む。
ステップ704は、ステップ703の処理の結果、要求されたスロットの範囲内で空きチャネル・空きスロットが存在するかどうかを判定する処理である。判定の結果、空きチャネル・空きスロットが存在する場合(YES)はステップ705に進み、存在しない場合(NO)はステップ707に進む。
ステップ705は、要求されたスロット範囲内の空きチャネル・空きスロットの中から、最も早いスロット番号のものを確保する処理である。具体的には、チャネル・スロット割当要求パケットを受信した端末またはゲートウェイの通信チャネル・スロット管理部306は、当該パケットのスロット割当順序フラグ608に“0”が登録されていることを確認して、要求されたスロット範囲内の空きチャネル・空きスロットの中から、最も早いスロット番号のものを確保する必要があることを判定する。複数チャネルにおいて、この番号のスロットを確保可能な場合は、何れか1つの通信チャネルを選択する。ここで確保したものが、チャネル・スロット割当要求パケットの送信元から、当該パケットの受信端末またはゲートウェイへパケットを転送するための、通信チャネル及びスロットである。本処理が終了すると、ステップ706に進む。
ステップ706は、ステップ705で確保した通信チャネル及びスロットをチャネル・スロット割当要求パケットの送信元に通知し、送信元と自身の両方がチャネル・スロット管理テーブルを更新する処理である。具体的には、チャネル・スロット管理テーブルのうち、ステップ705で確保した通信チャネル及びスロット部分に“1”を登録する。本処理が終了すると、ステップ708に進む。
ステップ707は、ステップ703の処理の結果、要求されたスロットの範囲内で空きチャネル・空きスロットが存在しなかった場合、割当不可の旨を新規システム42のゲートウェイ400−2に通知する処理である。この通知は、新規システムのゲートウェイから既存システム31のゲートウェイ400−1に至る経路上の一部端末を中継して新規システムのゲートウェイ宛てに送信されるが、この通知を中継した端末のうち、ステップ706でチャネル・スロット管理テーブルを更新した端末については、ステップ706で“1”を登録した部分を“0”に戻して、確保していた通信チャネル及びスロットを開放する。また、本通知を受信した新規システムのゲートウェイも同様であり、本処理の後に図7のフローチャートを終了する。この時、新規システムのゲートウェイは、必要に応じてパケットの転送先を変更し、別経路に対して通信チャネル及びスロットの割当要求を試みてもよい。
ステップ708は、チャネル・スロット割当要求パケットを受信したのが、既存システム31のゲートウェイ400−1であるかを判定する処理である。既存システムのゲートウェイである場合(YES)、新規システム32のゲートウェイ400−2から既存システムのゲートウェイへパケットを転送する上での、通信チャネル及びスロットの割当が完了したことになり、次にステップ710に進む。一方、既存システムのゲートウェイでない場合(NO)は、通信チャネル及びスロットの割当が完了していないため、ステップ709に進む。
ステップ709は、チャネル・スロット割当要求パケットを受信した端末が当該パケットを更新して、次の転送先に送信する処理である。具体的には、チャネル・スロット割当要求パケットのうち宛先アドレス603を、経路管理部305に記憶された転送先のアドレスまたはIDに更新する。送信元アドレス605は、自身のアドレスまたはIDに更新する。また、割当範囲の始点スロット番号609は、ステップ705で確保したスロット番号に1を加算した値に更新する。パケットのスロット・チャネル管理テーブル612は、自身のスロット・チャネル管理テーブルに更新する。その他のフィールドについては特に更新を行わない。ただし、チャネル・スロット割当要求パケットに登録のフィールド以外に別途追加したフィールドがあれば、これらを適宜更新してもよい。その後、更新したチャネル・スロット割当要求パケットを次の転送先に送信して、ステップ703に戻る。
ステップ710は、新規システムのゲートウェイから既存システムのゲートウェイへパケットを転送するための通信チャネル及びスロットの割当が完了した旨を、既存システムのゲートウェイから新規システムのゲートウェイへ通知する処理である。この処理で一連の通信チャネル及びスロット割当制御動作を終了する。
尚、ステップ706でチャネル・スロット管理テーブルの更新を行った際に、新たに通信チャネル及びスロットを確保したことを近隣端末にも通知する必要があるが、この通知を行うのはステップ706のタイミングでも、ステップ710で送信される割当完了通知を受信した後でもよい。
次に、図8を参照して、図7のステップ703の処理、即ち空きチャネル・空きスロットの抽出の処理について説明する。
ステップ801は、チャネル・スロット割当要求パケットを受信した端末またはゲートウェイが、変数iを割当範囲の始点スロット番号とする処理である。本処理の後に、ステップ802に進む。
ステップ802は、受信したチャネル・スロット割当要求パケットで得た送信元のチャネル・スロット管理テーブルと、自身(当該割当要求を受信した端末またはゲートウェイ)が有するチャネル・スロット管理テーブルを比較し、少なくとも一方にて何れかのチャネルのi番目のスロットに“1”が登録されていないかを判定する処理である。判定の結果、“1”が登録されている場合(YES)はステップ803に進み、登録されていない場合(NO)はステップ804に進む。
ステップ803は、i番目のスロットが全チャネルにおいて使用不可、即ちi番目のスロットには空きが無いことを判定する処理である。上述の通り、端末及びゲートウェイにて同時に送受信を行うための特殊な機構が設けられていない限り、あるスロットに“1”が割り当たっている場合は、当該スロットを利用することが出来ないため、本判定を下すこととなる。ただし、同時送受信を可能にする機構が備わっている場合は、この限りではない。本処理の後に、ステップ806に進む。
ステップ804は、受信したチャネル・スロット割当要求パケットで得た送信元のチャネル・スロット管理テーブルと、自身が有するチャネル・スロット管理テーブルを比較し、少なくとも一方にて何れかのチャネルのi番目のスロットに“2”が登録されていないかを判定する処理である。判定の結果、“2”が登録されている場合(YES)はステップ805に進み、登録されていない場合(NO)はステップ806に進む。
ステップ805は、ステップ804で“2”が登録されていることを確認した通信チャネルにおいて、i番目のスロットが使用不可であることを判定する処理である。判定の結果、“2”が登録されている場合、チャネル・スロット割当要求パケットの送信元または自身と干渉を起こす範囲内に存在する近隣端末が、当該チャネル及びスロットを用いて通信を行うことを示しているため、使用することが出来ない。本処理の後に、ステップ806に進む。
ステップ806は、i番目のスロットが割当範囲の終点スロット番号と一致しているかどうかを判定する処理である。判定の結果、一致している場合(YES)は図8のフローチャートを終了し、一致していない場合(NO)はステップ807に進む。ステップ807は、iに1を加算する処理であり、本処理の後にステップ802に戻る。
図8に示す処理により、使用不可と判定されなかった通信チャネル及びスロットが、空きチャネル・空きスロットとして抽出される。即ち、自端末または自ゲートウェイに対して、チャネル・スロット割当要求パケットの送信元がパケットを転送する上で、これらの空きチャネル・空きスロットの何れかを使用可能であると判断することが出来る。
図9は、チャネル・スロット管理テーブルと、空きチャネル・空きスロットの抽出結果に関する例を示す。ここでは、新規システム32のゲートウェイ400−2から既存システム31のゲートウェイ400−1へパケットを転送するための通信チャネル及びスロットを、スロットS1〜S10の範囲で割り当てることを想定する。ここで、ゲートウェイ400−1、端末300−1a、端末300−1d、ゲートウェイ400−2が保持する、スロットS1〜S10の範囲のチャネル・スロット管理テーブルの例を500A〜500Dに示す。
500Aと500Bのチャネル・スロット管理テーブルを基に、図8の処理に従って、端末300−1aからゲートウェイ400−1へのパケット転送に使用可能な空きチャネル・空きスロットを抽出した結果を900Aに示す。900Aの中で、×印が登録されている通信チャネル及びスロットが、使用不可と判定された箇所であり、何も登録されていない箇所が空きチャネル・空きスロットである。
同様に、500Bと500Cのチャネル・スロット管理テーブル、500Cと500Dのチャネル・スロット管理テーブルを基に抽出した空きチャネル・空きスロットの結果を、それぞれ900B、900Cに示す。
図10のシーケンス図を参照して、実施例1による通信チャネル及びスロット割当の動作例を説明する。本動作例においては、図2の通信ネットワークシステムにおける新規システム32のゲートウェイ400−2から既存システム31のゲートウェイ400−1へパケットを転送するための通信チャネル及びスロットを、スロットS1〜S10の範囲で割り当てることを想定する。
まず、ゲートウェイ400−2は、ステップ1001で割当を要求するスロット範囲を算出する。その後、ステップ1002でチャネル・スロット割当要求パケットを作成し、次の転送先である端末300−1dへ送信する。
次に、端末300−1dは、ステップ1003でチャネル・スロット割当要求パケットを受信すると、ステップ1004で空きチャネル・空きスロットを抽出し、その中からS1〜S10の範囲で最も早いスロット番号のものを確保する。具体的には、図9の900Cが抽出した空きチャネル・空きスロットの結果であり、その中で最も早いスロットである(C2,S1)を確保する。その後、ステップ1005で、ゲートウェイ400−2から端末300−1d へのパケット転送用に(C2,S1)を確保した旨をゲートウェイ400−2へ通知し、ステップ1006で端末300−1dのチャネル・スロット管理テーブルを更新する。また、ゲートウェイ400−2もステップ1007で通知を受信すると、ステップ1008にて自身のチャネル・スロット管理テーブルを更新する。そして、端末300−1dはステップ1009でチャネル・スロット割当要求パケットを更新し、端末300−1aに送信する。この時、端末300−1dは(C2,S1)を確保したため、割当範囲となるスロットはS2〜S10に更新される。
続いて、端末300−1aは、ステップ1010でチャネル・スロット割当要求パケットを受信すると、ステップ1011で空きチャネル・空きスロットを抽出し、その中からS2〜S10の範囲で最も早いスロット番号のものを確保する。具体的には、図9の900Bが抽出した空きチャネル・空きスロットの結果であり、その中で最も早いスロットであるS3を確保する。ここで、(C1,S3)または(C2,S3)の何れかを選択可能であるが、今回は(C1,S3)を確保する。その後、ステップ1012にて、端末300−1dから端末300−1a へのパケット転送用に(C1,S3)を確保した旨を端末300−1dへ通知し、ステップ1013にて端末300−1aのチャネル・スロット管理テーブルを更新する。また、端末300−1dもステップ1014で通知を受信すると、ステップ1015にて自身のチャネル・スロット管理テーブルを更新する。そして、端末300−1aは、ステップ1016でチャネル・スロット割当要求パケットを更新し、ゲートウェイ400−1に送信する。この時、端末300−1aは(C1,S3)を確保したため、割当範囲となるスロットはS4〜S10に更新される。
ゲートウェイ400−1は、ステップ1017でチャネル・スロット割当要求パケットを受信すると、ステップ1018で空きチャネル・空きスロットを抽出し、その中からS4〜S10の範囲で最も早いスロット番号のものを確保する。具体的には、図9の900Aが抽出した空きチャネル・空きスロットの結果であり、その中で最も早いスロットであるS5を確保する。(スロットS2も空いているが、スロット割当の対象範囲がS4〜S10であるため除外される。)ここで、(C1,S5)または(C2,S5)の何れかを選択可能であるが、今回は(C1,S5)を確保する。その後、ステップ1019にて、端末300−1aからゲートウェイ400−1へのパケット転送用に(C1,S5)を確保した旨を端末300−1aへ通知し、ステップ1020にてゲートウェイ400−1のチャネル・スロット管理テーブルを更新する。また、端末300−1aもステップ1021で通知を受信すると、ステップ1022にて自身のチャネル・スロット管理テーブルを更新する。
そして、ゲートウェイ400−1は、ステップ1023で、要求された範囲内での通信チャネル及びスロット割当が完了した旨の通知パケットを作成し、ゲートウェイ400−2を最終宛先として、端末300−1aに送信する。端末300−1aは、ステップ1024でチャネル・スロット割当完了通知を受信すると、端末300−1dへ転送する。同じく、端末300−1dは、ステップ1025でチャネル・スロット割当完了通知を受信すると、ゲートウェイ400−2へ転送する。ゲートウェイ400−2がステップ1026でチャネル・スロット割当完了通知を受信すると、通信チャネル及びスロット割当に関する制御が完了する。
以後、ゲートウェイ400−2が受信した新規システム32に関するパケットは、図10の一連のシーケンスを通じて確保された通信チャネル及びスロットを用いてゲートウェイ400−1まで転送され、最終的にシステム32のアプリケーションサーバ202へ送信される。尚、図10のシーケンスにおいて、通信チャネル及びスロット確保の旨を近隣端末に対して通知する処理の登録を省いているが、本処理については自身のチャネル・スロット管理テーブルを更新したタイミング、もしくはチャネル・スロット割当完了通知を受信したタイミングの何れでも行うことができる。
以上、実施例1によれば、新規システム32のゲートウェイから既存システム31のゲートウェイに至る経路上に存在する端末と、ゲートウェイの自律分散制御によって、通信チャネル及びスロットの割当制御を行うことができる。このような構成乃至制御動作により、既存システムに属する端末のスケジュール変更の必要性が解消する。また、新規システムのゲートウェイから既存システムのゲートウェイに至る経路上の端末及びゲートウェイが、空きチャネル・空きスロットの中から新規チャネル及びスロットの確保を行うことで、既存システムの通信と干渉することなく、新規システムに関するパケットを上位アプリケーションサーバに送信することが可能となる。
また、既存システムと新規システムのトラフィック負荷の大小関係に応じて、スロットの割当順序を規定することで、トラフィック特性に応じて帯域を有効活用することができる。即ち、既存システムのトラフィック負荷が新規システムのトラフィック負荷よりも低い場合に、空きチャネル・空きスロットの中から、時間Xに収まる範囲内でスロット番号の早い順に確保を行うことで、パケットの許容遅延を満たし、かつ出来るだけ短い遅延時間で上位アプリケーションサーバにパケットを届けることが可能である。
実施例1が、既存システムのトラフィック負荷が新規システムのトラフィック負荷よりも低い場合の例であるのに対して、実施例2は、既存システムのトラフィック負荷が新規システムのトラフィック負荷よりも高い場合の例である。この場合、新規システムの通信による帯域消費量削減の観点から、新規システムのゲートウェイで出来るだけ長い時間パケットを蓄積し、より多くのパケットを1つに結合して纏めて送信することが望ましい。即ち、実施例2では、時間Xに収まる範囲内のスロットにおいて、遅いものから順に確保する。尚、実施例2においても、ゲートウェイ及び端末間の自律分散制御によって、通信チャネル及びスロット割当を実現する。図11及び図12を用いて、実施例2に係る通信チャネル及びスロットの割当方法とその動作例について説明する。
尚、実施例2に係る通信ネットワークシステムの構成(図2)、ならびに端末及びゲートウェイのハードウェア構成(図3及び図4)、チャネル・スロット管理テーブルの構成(図5)、通信チャネル及びスロット割当に使用するパケットのフォーマット(図6)、空きチャネル・空きスロットの抽出方法(図8)は第1の実施例と同様である。
図11を参照して、実施例2による通信チャネル及びスロット割当制御を説明する。
新規システム32のパケットを、既存システム31のFANを介してアプリケーションサーバに送信するため、図11の処理に従って、予め通信チャネル及びスロットの割当を実施する。実施例2に係る通信チャネル及びスロット割当制御では、時間Xに収まる範囲内で出来るだけ遅いスロットから順に確保するため、新規システムのゲートウェイから既存システムのゲートウェイに至る経路上のリンクのうち、既存システムのゲートウェイに近いリンクから順に転送用の通信チャネル及びスロットを確保する。
図11において、ステップ1101は、新規システムのゲートウェイが、配下に接続する端末から受信したパケットを許容遅延時間内にアプリケーションサーバ202へ送信する上で、割当が必要となるスロットの範囲を算出する処理である。算出方法は、図7のステップ701と同様である。本処理の後に、ステップ1102に進む。
ステップ1102は、新規システムのゲートウェイが図6のパケットフォーマットに従ってチャネル・スロット割当要求パケットを作成し、ゲートウェイ400の経路管理部305に記憶された転送先(トポロジがツリー構造の場合、親端末)に対して、作成したチャネル・スロット割当要求パケットを送信する処理である。本処理は、チャネル・スロット割当要求パケットの作成において、スロット割当順序フラグ608のフィールドに“1”を登録する点を除いて、図7のステップ702と同様である。本処理の後に、ステップ1103に進む。
ステップ1103は、ステップ1102または後述のステップ1104で送信されたチャネル・スロット割当要求パケットを受信したのが、既存システムのゲートウェイであるかどうかを判定する処理である。判定の結果、既存システムのゲートウェイである場合(YES)はステップ1105に進み、既存システムのゲートウェイでない場合(NO)はステップ1104に進む。
ステップ1104は、チャネル・スロット割当要求パケットを受信した端末が当該パケットを更新して、次の転送先に送信する処理である。具体的には、チャネル・スロット割当要求パケットのうち、宛先アドレス603を、端末300の経路管理部305に記憶された転送先のアドレスまたはIDに更新する。送信元アドレス605は、自身のアドレスまたはIDに更新する。スロット・チャネル管理テーブル612は、自身のスロット・チャネル管理テーブルに更新する。その他のフィールドについては、特に更新は行わない。ただし、図6に登録のフィールド以外に別途追加したフィールドがあれば、これらを適宜更新してもよい。その後、更新したチャネル・スロット割当要求パケットを次の転送先に送信して、ステップ1103に戻る。
ステップ1105は、チャネル・スロット割当要求パケットを受信したゲートウェイが、当該パケットの送信元と自身のチャネル・スロット管理テーブルを参照して、要求されたスロットの範囲内で空きチャネル・空きスロットを抽出する処理である。空きチャネル・空きスロットの抽出は、図8のフローチャートに従って実施する。本処理が終了すると、ステップ1106に進む。
ステップ1106は、ステップ1105の処理の結果、要求されたスロットの範囲内で空きチャネル・空きスロットが存在したかどうかを判定する処理である。判定の結果、空きチャネル・空きスロットが存在する場合(YES)はステップ1107に進み、一方それが存在しない場合(NO)はステップ1109に進む。
ステップ1107は、要求されたスロット範囲内の空きチャネル・空きスロットの中から、最も遅いスロット番号のものを確保する処理である。具体的には、チャネル・スロット割当要求パケットを受信した端末またはゲートウェイは、当該パケットのスロット割当順序フラグ608を参照し、“1”が登録されていることを確認することで、要求されたスロット範囲内の空きチャネル・空きスロットの中から、最も遅いスロット番号のものを確保する必要があることを判定する。複数チャネルにおいて、この番号のスロットを確保可能な場合は、何れか1つの通信チャネルを選択する。ここで確保したものが、チャネル・スロット割当要求パケットの送信元から、当該パケットの受信端末またはゲートウェイへパケットを転送するための、通信チャネル及びスロットである。本処理が終了すると、ステップ1108に進む。
ステップ1108は、ステップ1107で確保した通信チャネル及びスロットをチャネル・スロット割当要求パケットの送信元に通知し、送信元と自身の両方がチャネル・スロット管理テーブルを更新する処理である。具体的には、チャネル・スロット管理テーブルのうち、ステップ1107で確保した通信チャネル及びスロット部分に“1”を登録する。本処理が終了すると、ステップ1110に進む。
ステップ1109は、ステップ1105の処理の結果、要求されたスロットの範囲内で空きチャネル・空きスロットが存在しなかった際に、割当不可の旨を新規システムのゲートウェイ、及び既存システムのゲートウェイ宛てに通知する処理である。この通知は、新規システムのゲートウェイから既存システムのゲートウェイに至る経路上の一部端末を中継して送信されるが、この通知を中継した端末のうち、ステップ1108でチャネル・スロット管理テーブルを更新した端末については、ステップ1108で“1”を登録した部分を“0”に戻して、確保していた通信チャネル及びスロットを開放する。また、本通知を受信した既存システムのゲートウェイも同様であり、本処理の後に図11の一連の処理を終了する。この時、新規システムのゲートウェイは、必要に応じてパケットの転送先を変更し、別経路に対して通信チャネル及びスロットの割当要求を試みてもよい。
ステップ1110は、ステップ1108で送信された通知を受信したのが新規システムのゲートウェイであるかどうかを判定する処理である。判定の結果、新規システムのゲートウェイである場合(YES)は、新規システムのゲートウェイから既存システムのゲートウェイにパケットを転送する上での、通信チャネル及びスロットの割当が完了したことになるため、一連の処理を終了する。第1の実施例と異なり、新規システムのゲートウェイがステップ1108で送信された通知を受信することで、一連の通信チャネル及びスロット割当が完了したことを判断出来るため、図7のステップ710のような割当完了通知を送信する必要は無い。ただし、既存システムのゲートウェイや転送経路上の端末に対して、別途割当完了の旨を通知してもよい。
一方、ステップ1111の判定において、ステップ1108で送信された通知を受信したのが新規システムのゲートウェイでない場合(NO)は、新規システムのゲートウェイから既存システムのゲートウェイへパケットを転送する上で必要な、通信チャネル及びスロットの割当が未完了の状態であるため、ステップ1111へ進む。
ステップ1111は、ステップ1108の通知を受信した端末が、チャネル・スロット割当要求パケットの送信元と、自身のチャネル・スロット管理テーブルを参照して、空きチャネル・空きスロットを抽出する処理である。この場合、図8に示す処理に従って、空きチャネル・空きスロットを抽出するが、割当範囲の終点スロット番号はステップ1108で通知されたスロット番号の一つ前とする。例えば、ステップ1108でスロット番号S8の確保を通知された場合は、空きチャネル・空きスロットを抽出する際の終点スロット番号はS7となる。即ち、ステップ1111で空きチャネル・空きスロットの抽出を行う際は、図8のステップ806にて、ステップ1108で通知されたスロット番号の一つ前がi番目のスロットであるかを判定する。ステップ1111の処理を終えると、ステップ1106に戻る。
尚、ステップ1108でチャネル・スロット管理テーブルの更新を行った際に、新たに通信チャネル及びスロットを確保したことを近隣端末にも通知する必要があるが、ステップ1108のタイミングで通知してもよい。一方、新規システムのゲートウェイから通信チャネル及びスロット割当完了の旨が通知される場合は、当該割当完了通知を受信した後に近隣端末へ通知してもよい。
次に、図12を参照して実施例2による通信チャネル及びスロット割当の動作を説明する。以下の説明では、新規システム32のゲートウェイ400−2から既存システム31のゲートウェイ400−1へパケットを転送するための通信チャネル及びスロットを、スロットS1〜S10の範囲で割り当てることを想定する。
まず、ゲートウェイ400−2は、ステップ1201で割当を要求するスロット範囲を算出する。その後、ステップ1202でチャネル・スロット割当要求パケットを作成し、次の転送先である端末300−1dへ送信する。
次に、端末300−1dはステップ1203でチャネル・スロット割当要求パケットを受信すると、当該パケットを更新して端末300−1aへ転送する。同じく、端末300−1aはステップ1204でチャネル・スロット割当要求パケットを受信すると、当該パケットを更新してゲートウェイ400−1へ転送する。
続いて、ゲートウェイ400−1はステップ1205でチャネル・スロット割当要求パケットを受信すると、ステップ1206で当該割当要求パケットの送信元(端末300−1a)と自身のチャネル・スロット管理テーブルを参照して空きチャネル・空きスロットを抽出し、その中からS1〜S10の範囲で最も遅いスロット番号のものを確保する。具体的には、図9の900Aが抽出した空きチャネル・空きスロットの結果であり、その中で最も遅いスロットである(C2,S10)を確保する。その後、ステップ1207にて、端末300−1aからゲートウェイ400−1へのパケット転送用に(C2,S10)を確保した旨を端末300−1aへ通知し、ステップ1208でゲートウェイ400−1のチャネル・スロット管理テーブルを更新する。
端末300−1aは、ステップ1209で通信チャネル及びスロット確保の通知を受信すると、ステップ1210で自身のチャネル・スロット管理テーブルを更新する。その後、ステップ1211で、ステップ1204で受信したチャネル・スロット割当要求パケットの送信元(端末300−1d)と自身のチャネル・スロット管理テーブルを参照して空きチャネル・空きスロットを抽出し、ステップ1209で確保の旨を通知されたスロット番号よりも前、即ちS1〜S9の範囲で最も遅いスロット番号のものを確保する。具体的には、図9の900Bが抽出した空きチャネル・空きスロットの結果であり、その中で最も遅いスロットであるS9を確保する。ここで、(C1,S9)または(C3,S9)の何れかを選択可能であるが、今回は(C1,S9)を確保する。その後、ステップ1212で、端末300−1dから端末300−1a へのパケット転送用に(C1,S9)を確保した旨を端末300−1dへ通知し、ステップ1213で端末300−1aのチャネル・スロット管理テーブルを更新する。
次に、端末300−1dは、ステップ1214で通信チャネル及びスロット確保の通知を受信すると、ステップ1215で自身のチャネル・スロット管理テーブルを更新する。その後、ステップ1216で、ステップ1203で受信したチャネル・スロット割当要求パケットの送信元(ゲートウェイ400−2)と自身のチャネル・スロット管理テーブルを参照して空きチャネル・空きスロットを抽出し、ステップ1214で確保の旨を通知されたスロット番号よりも前、即ちS1〜S8の範囲で最も遅いスロット番号のものを確保する。具体的には、図9の900Cが抽出した空きチャネル・空きスロットの結果であり、その中で最も遅いスロットであるS7を確保する。(スロットS9も空いているが、スロット割当の対象範囲がS1〜S8であるため除外される。)ここで、(C1,S7)または(C3,S7)の何れかを選択可能であるが、今回は(C1,S7)を確保する。その後、ステップ1217で、ゲートウェイ400−2から端末300−1dへのパケット転送用に(C1,S7)を確保した旨をゲートウェイ400−2へ通知し、ステップ1218で端末300−1dのチャネル・スロット管理テーブルを更新する。
ゲートウェイ400−2は、ステップ1219で通信チャネル及びスロット確保の通知を受信すると、ステップ1220で自身のチャネル・スロット管理テーブルを更新する。ステップ1220が終了した時点で、通信チャネル及びスロット割当に関する制御が完了し、以後ゲートウェイ400−2が受信したシステム32に関するパケットは、図12の一連のシーケンスを通じて確保された通信チャネル及びスロットを用いてゲートウェイ400−1まで転送され、最終的にシステム32のアプリケーションサーバ202へ送信される。尚、ステップ1220が終了したタイミングでゲートウェイ400−2から、端末300−1dや端末300−1a、ゲートウェイ400−1に対して、別途チャネル・スロット割当完了の旨を通知してもよい。また、図12のシーケンスにおいて、通信チャネル及びスロット確保の旨を近隣端末に対して通知する処理の説明を省いているが、本処理については自身のチャネル・スロット管理テーブルを更新したタイミング、もしくはチャネル・スロット割当完了通知を受信したタイミングのどちらで行ってもよい。
以上のように、第1の実施例と同様に、既存システムに属する端末のスケジュール変更の必要性を解消でき、更に既存システムの通信と干渉することなく、新規システムに関するパケットを上位のアプリケーションサーバに届けることが可能となる。また、実施例2では、既存システムのトラフィック負荷が新規システムのトラフィック負荷よりも高い場合に、空きチャネル・空きスロットの中から、時間Xに収まる範囲内でスロット番号の遅い順に確保を行うことで、パケットの許容遅延を満たしつつ、かつ新規システムのゲートウェイで出来るだけ長い時間でパケットを蓄積し、複数のパケットを1つに結合することで、新規システムの通信による帯域消費量を削減することが可能となる。
尚、上記実施例1及び2では、新規システムのゲートウェイから既存システムのゲートウェイに至る1つの経路で構成されるとした。しかし、新規システムのゲートウェイが既存システムのゲートウェイに対して複数の経路を保持している場合は、各経路に対して通信チャネル及びスロットの割当要求を行い、例えばその中で最も短い遅延時間で既存システムのゲートウェイに対するパケット転送が実現できる経路を選択するようにしてもよい。
また、上記実施例1及び2では、新規システムのための通信チャネル及びスロットの割当を前提に説明したが、既存システムに属する端末を新たに追加する際に、当該端末が通信を行うための通信チャネル及びスロットを割り当てる場合、上記実施例を適用することができる。具体的には、図7のステップ701やステップ702、図11のステップ1101やステップ1102で新規システムのゲートウェイが行う処理を当該端末が実施し、図7のステップ707やステップ710、図11のステップ1109で送信される通知の最終宛先を当該端末に置き換えて、図11のステップ1110の宛先に関する判定基準を新規システムのゲートウェイから当該端末に置き換えることによって実現可能である。
実施例1及び2がゲートウェイの自律分散制御によって、通信チャネル及びスロットの割当制御を行う例であるのに対して、実施例3は、通信ネットワークシステム上の端末、及びゲートウェイのチャネル・スロット管理テーブルを管理する管理装置の集中制御によって通信チャネル及びスロット割当を実現する例である。広帯域な環境や、端末台数が少ない場合など、ゲートウェイや端末が更新の度にチャネル・スロット管理テーブルの情報を管理装置に通知することが可能な場合は、管理装置による集中制御が実現出来る。管理装置による集中制御を行う場合、通信チャネル及びスロットの割当可否を管理装置で一括判定することが可能となり、新規システムのゲートウェイが既存システムのゲートウェイに対して複数の経路を保持している場合は、各経路で割当可能な通信チャネル及びスロットを管理装置が算出することで、最も良好な経路を新規システムのゲートウェイに通知するなどの処理が可能となる。
実施例3に係る端末及びゲートウェイのハードウェア構成(図3及び図4)、チャネル・スロット管理テーブルの構成(図5)、通信チャネル及びスロット割当に使用するパケットのフォーマット(図6)、空きチャネル・空きスロットの抽出方法(図8)は実施例1、実施例2と同様である。
図13に示す通信ネットワークシステムにおいて、ネットワークに管理装置1300が接続される以外は、図2の通信ネットワークシステムの構成と同様である。管理装置1300は、有線または無線通信を用いて、通信ネットワークシステム上の端末及びゲートウェイのチャネル・スロット管理テーブル情報を収集し、これらの情報を一元管理する。そのため、管理装置1300がこれらの情報を随時管理出来るように、各端末ならびに各ゲートウェイは、定期的もしくは更新が生じた時に、管理装置1300へ自身のチャネル・スロット管理テーブルを通知する。また、管理装置1300はチャネル・スロット割当要求パケットを受信すると、各端末ならびに各ゲートウェイのチャネル・スロット管理テーブルを参照して空きチャネル・空きスロットを抽出し、通信チャネル及びスロットの割当を行う機能を搭載する。
次に、図14を参照して実施例3に係る通信チャネル及びスロット割当制御を説明する。ここで、新規システム32のパケットを、既存システム31のFANを介してアプリケーションサーバ202に送信するに当たり、図14の処理によって通信チャネル及びスロットの割当が実施される。
図14においてステップ1401は、新規システム32のゲートウェイ400−2がその配下に接続される端末から受信したパケットを許容遅延時間内にアプリケーションサーバ202へ送信する上で、割当が必要となるスロットの範囲を算出する処理である。算出方法は、図7のステップ701と同様である。本処理の後に、ステップ1402に進む。
ステップ1402は、新規システムのゲートウェイが図6のパケットフォーマットに従ってチャネル・スロット割当要求パケットを作成し、ゲートウェイ400−2の経路管理部305に記憶された転送先(トポロジがツリー構造の場合、親端末)に対して、作成したチャネル・スロット割当要求パケットを送信する処理である。
チャネル・スロット割当要求パケットの作成については、まず宛先アドレス603にパケットの転送先のアドレスまたはIDを登録する。図13の例では、端末300−1dのアドレスまたはIDを登録する。次に、最終宛先アドレス604には、管理装置1300のアドレスまたはIDを登録する。送信元アドレス605と発信元アドレス606には、新規システム32のゲートウェイ400−2のアドレスまたはIDを登録する。パケットID607には固有のパケットIDを登録する。スロット割当順序フラグ608には、既存システム31のトラフィック負荷が新規システム32のトラフィック負荷よりも低い場合は“0”、高い場合は“1”を登録する。割当範囲の始点スロット番号609と、割当範囲の終点スロット番号610には、ステップ1401で算出した始点及び終点のスロット番号をそれぞれ登録する。トラフィックID611には、通信チャネル及びスロットの割当後に送信することとなるパケットのトラフィック種別を示すIDを登録する。スロット・チャネル管理テーブル612については、管理装置1300で情報が把握・管理されているため、特に情報を登録する必要は無い。本チャネル・スロット割当要求パケットを作成すると、当該パケットを送信して、ステップ1403に進む。
ステップ1403は、ステップ1402または後述のステップ1404で送信されたチャネル・スロット割当要求パケットを受信したのが、既存システムのゲートウェイであるかどうかを判定する処理である。判定の結果、既存システムのゲートウェイである場合(YES)はステップ1405に進み、既存システムのゲートウェイでない場合(NO)はステップ1404に進む。
ステップ1404は、チャネル・スロット割当要求パケットを受信した端末またはゲートウェイが当該パケットを更新して、次の転送先に送信する処理である。具体的には、チャネル・スロット割当要求パケットのうち、宛先アドレス603を、端末300の経路管理部305に記憶された転送先のアドレスまたはIDに更新する。送信元アドレス605は、自身のアドレスまたはIDに更新する。その他のフィールドについては、特に更新は行わない。その後、更新したチャネル・スロット割当要求パケットを次の転送先に送信して、ステップ1403に戻る。
ステップ1405は、チャネル・スロット割当要求パケットを受信した管理装置1300が、当該割当要求パケットのスロット割当順序フラグ608に登録された値が“0”であるかを判定する処理である。判定の結果、“0”である場合(YES)はステップ1406へ進み、“0”でない場合即ち“1”の場合(NO)はステップ1410へ進む。
ステップ1406は、管理装置で、新規システムのゲートウェイから既存システムのゲートウェイに至る経路のうち、新規システムのゲートウェイに近いリンクから順に空きチャネル・空きスロットを抽出する処理である。図13の例では、ゲートウェイ400−2〜端末300−1d、端末300−1d〜端末300−1a、端末300−1a〜ゲートウェイ400−1の順で、各リンクでのパケット転送に使用可能な空きチャネル・空きスロットを抽出する。1つのリンクにおける抽出が完了すると、ステップ1407に進む。空きチャネル・空きスロットの抽出は図8のフローチャートに従って実施するが、ステップ802・ステップ804では、リンク上の転送元と転送先の2つのチャネル・スロット管理テーブルを参照して判定を行う。
ステップ1407は、ステップ1406の処理の結果、割当範囲内に空きチャネル・空きスロットが存在するかを判定する処理である。判定の結果、空きチャネル・空きスロットが存在する場合(YES)はステップ1408に進み、一方存在しない場合(NO)はステップ1414に進む。
ステップ1408は、割当範囲内の空きチャネル・空きスロットの中から、最も早いスロット番号のものを確保する処理である。複数チャネルにおいて、同じ番号のスロットを確保可能な場合は、何れか1つの通信チャネルを選択する。確保するスロット番号が決定すると、割当範囲の始点スロット番号を、確保したスロット番号に1を足した値に更新する。本処理が終了すると、ステップ1409に進む。
ステップ1409は、新規システムのゲートウェイから既存システムのゲートウェイに至る経路上の全リンクにおいて、通信チャネル及びスロットの割当が完了したかどうかを判定する処理である。完了した場合(YES)はステップ1415に進み、未完了の場合(NO)はステップ1406に戻る。
ステップ1410は、管理装置で、新規システムのゲートウェイから既存システムのゲートウェイに至る経路のうち、既存システムのゲートウェイに近いリンクから順に空きチャネル・空きスロットを抽出する処理である。図13の例では、端末300−1a〜ゲートウェイ400−1、端末300−1d〜端末300−1a、ゲートウェイ400−2〜端末300−1dの順で、各リンクでのパケット転送に使用可能な空きチャネル・空きスロットを抽出する。1つのリンクにおける抽出が完了すると、ステップ1411に進む。空きチャネル・空きスロットの抽出は図8のフローチャートに従って実施するが、ステップ1406と同様、ステップ802・ステップ804では、リンク上の転送元と転送先の2つのチャネル・スロット管理テーブルを参照して判定を行う。
ステップ1412は、ステップ1411の処理の結果、割当範囲内に空きチャネル・空きスロットが存在するかを判定する処理である。その結果、存在する場合(YES)はステップ1412に進み、存在しない場合(NO)はステップ1414に進む。
ステップ1412は、割当範囲内の空きチャネル・空きスロットの中から、最も遅いスロット番号のものを確保する処理である。複数チャネルにおいて、同じ番号のスロットを確保可能な場合は、何れか1つの通信チャネルを選択する。確保するスロット番号が決定すると、割当範囲の終点スロット番号を、確保したスロット番号から1引いた値に更新する。本処理が終了すると、ステップ1413に進む。
ステップ1413は、新規システムのゲートウェイから既存システムのゲートウェイに至る経路上の全リンクにおいて、通信チャネル及びスロットの割当が完了したかどうかを判定する処理である。判定の結果完了した場合(YES)はステップ1415に進み、未完了の場合(NO)はステップ1410に戻る。
ステップ1414は、ステップ1406またはステップ1410の処理の結果、割当範囲内に空きチャネル・空きスロットが存在しなかった際に、割当不可の旨を新規システムのゲートウェイ宛てに通知する処理である。本処理の後に、図14のフローチャートを終了する。
ステップ1415は、ステップ1408やステップ1412で確保した通信チャネル及びスロットを、新規システムのゲートウェイと既存システムのゲートウェイ、ならびに両ゲートウェイの経路上に存在する端末へ通知する処理である。また、本通知を受信した端末及びゲートウェイは、確保の旨が通知された通信チャネル及びスロットにつき、自身のチャネル・スロット管理テーブルを更新し、更新の旨を近隣端末へ通知する。本処理の後に、一連の処理を終了する。
次に図15を用いて、実施例3に係る通信チャネル及びスロット割当の動作例を説明する。本動作例においては、図13において、新規システムのゲートウェイ400−2から既存システムのゲートウェイ400−1へパケットを転送するための通信チャネル及びスロットを、スロットS1〜S10の範囲で割り当てることを想定する。また、既存システムのトラフィック負荷が新規システムのトラフィック負荷よりも低い場合を想定して説明する。
まず、ゲートウェイ400−2は、ステップ1501で割当を要求するスロット範囲を算出する。その後、ステップ1502でチャネル・スロット割当要求パケットを作成し、次の転送先である端末300−1dへ送信する。
次に、端末300−1dはステップ1503でチャネル・スロット割当要求パケットを受信すると、当該パケットを更新して端末300−1aへ転送する。同じく、端末300−1aはステップ1504でチャネル・スロット割当要求パケットを受信すると、当該パケットを更新してゲートウェイ400−1へ転送する。ゲートウェイ400−1についても、ステップ1505でチャネル・スロット割当要求パケットを受信すると、当該パケットを更新して管理装置1300へ転送する。
管理装置1300は、ステップ1506でチャネル・スロット割当要求パケットを受信すると、ステップ1507でゲートウェイ400−2から端末300−1dへパケットを転送する上での空きチャネル・空きスロットを抽出し、その中からS1〜S10の範囲で最も早いスロット番号のものを確保する。具体的には、図9の900Cが抽出した空きチャネル・空きスロットの結果であり、その中で最も早いスロットである(C2,S1)を確保する。
続いて、ステップ1508で、端末300−1dから端末300−1aへパケットを転送する上での空きチャネル・空きスロットを抽出し、その中からS2〜S10の範囲で最も早いスロット番号のものを確保する。具体的には、図9の900Bが抽出した空きチャネル・空きスロットの結果であり、その中で最も早いスロットであるS3を確保する。ここで、(C1,S3)または(C2,S3)の何れかを選択可能であるが、今回は(C1,S3)を確保する。
そして、ステップ1509で、端末300−1aからゲートウェイ400−1へパケットを転送するための空きチャネル・空きスロットを抽出し、その中からS4〜S10の範囲で最も早いスロット番号のものを確保する。具体的には、図9の900Aが抽出した空きチャネル・空きスロットの結果であり、その中で最も早いスロットであるS5を確保する。ここで、(C1,S5)または(C2,S5)の何れかを選択可能であるが、今回は(C1,S5)を確保する。(スロットS2も空いているが、スロット割当の対象範囲がS4〜S10であるため除外される。)その後、管理装置1300はステップ1510で、ゲートウェイ400−2、端末300−1d、端末300−1a、ゲートウェイ400−1に対して、確保した通信チャネル及びスロットを通知する。
ゲートウェイ400−1は、確保された通信チャネル及びスロットの通知をステップ1511で受信すると、当該通知を端末300−1aへ転送し、ステップ1512でチャネル・スロット管理テーブルの更新、ならびに近隣端末への更新通知を行う。
端末300−1aは、確保された通信チャネル及びスロットの通知をステップ1513で受信すると、当該通知を端末300−1dへ転送し、ステップ1514でチャネル・スロット管理テーブルの更新、ならびに近隣端末への更新通知を行う。同様に、端末300−1dは、確保された通信チャネル及びスロットの通知をステップ1515で受信すると、当該通知をゲートウェイ400−2へ転送し、ステップ1516でチャネル・スロット管理テーブルの更新、ならびに近隣端末への更新通知を行う。
最後に、ゲートウェイ400−2は、確保された通信チャネル及びスロットの通知をステップ1517で受信すると、ステップ1518でチャネル・スロット管理テーブルの更新、ならびに近隣端末への更新通知を行う。ステップ1518が終了した時点で、通信チャネル及びスロット割当に関する制御が完了し、以後ゲートウェイ400−2が受信したシステム32に関するパケットは、図15の一連のシーケンスを通じて確保された通信チャネル及びスロットを用いてゲートウェイ400−1まで転送され、最終的にシステム32のアプリケーションサーバ202へ送信される。
以上のように、実施例3は管理装置の集中制御によって通信チャネル及びスロットの割当制御を行うにあたり、管理装置が保持するチャネル・スロット管理テーブルのうち、新規システムのゲートウェイから既存システムのゲートウェイに至る経路上のリンクにて、空きチャネル・空きスロットの抽出を行い、その中から通信チャネル及びスロットの確保を行う。このように制御することで、実施例1及び2と同様、既存システムに属する端末のスケジュール変更の必要性を解消し、かつ既存システムの通信と干渉することなく、新規システムに関するパケットを上位のアプリケーションサーバに届けることが可能となる。さらに、既存システムと新規システムのトラフィック特性に応じてスロット割当順序を規定することにより、管理装置での集中制御の場合においても、トラフィック特性に応じた帯域を有効活用できる。
尚、実施例3では管理装置による集中制御の例を説明したが、ゲートウェイが十分な記憶容量を保持しており、通信ネットワークシステム上の端末や他ゲートウェイのチャネル・スロット管理テーブルを管理出来る場合、ゲートウェイによる集中制御を行ってもよい。この場合、管理装置による集中制御と比較して、通信チャネル及びスロットの割当に要する時間を短縮することが可能となる。
また、実施例3においても、新規システムのゲートウェイから既存システムのゲートウェイに至る経路が1つしか構築されていないことを想定して説明した。しかし、実施例1及び2と同様、新規システムのゲートウェイが既存システムのゲートウェイに対して複数の経路を保持している場合は、管理装置で各経路における通信チャネル及びスロットの割当処理を行い、その中で最も良好な通信チャネル及びスロットを確保出来た経路を選択し、当該経路を使用するように新規システムのゲートウェイへ通知することができる。
また、実施例1及び2と同様、既存システムに属する端末を新たに追加する際の通信チャネル及びスロットの割当として実施例3を適応することができる。
実施例1〜3は、空きチャネル・空きスロットを抽出する際に、自身もしくは自身と干渉する範囲に存在する近隣端末が、ある通信チャネル及びスロットを送信または受信用に使用済みである場合、これを使用不可と判定する例である。この場合、これらのスロットがスロット幅に対して一部の時間しか使用されていないことがある。例えば、各スロット幅が50ミリ秒で設計されている場合、あるパケットを送信または受信するのに最初の30ミリ秒しか使用されていないスロットが存在することがある。このとき、20ミリ秒以内に送信または受信可能なパケットを転送するために必要な、通信チャネル及びスロットを割り当てようとする場合、現実的には30ミリ秒しか使用されていない当該スロットも空きスロットとして使用することが出来る。そこで、このように各スロットにおいて、送信または受信用に使用されている時間を参照して、より細かい粒度で空きチャネル・空きスロットを抽出する例を説明するものである。実施例4では、実施例1〜3において説明した、通信ネットワークシステム上の端末やゲートウェイ、管理装置が保持するそれぞれのチャネル・スロット管理テーブルによって各スロットで送信または受信用に使用されている時間長を管理する。
実施例4に係る通信ネットワークシステムの構成(図2、図13)、端末及びゲートウェイのハードウェア構成(図3及び図4)、通信チャネル及びスロット割当に使用するパケットのフォーマット(図6)、通信チャネル及びスロット割当制御(図7、図11、図14)は、の実施例1〜3と同様である。
図16を参照して、実施例4によるチャネル・スロット管理テーブル、及び使用時間管理テーブルについて説明する。
チャネル・スロット管理テーブル1600Aは、図5と同様に、各チャネル・スロットにおいて、自身、または自身と干渉する範囲に存在する近隣端末やゲートウェイが使用していない空きチャネル・空きスロットには“0”、自身が送信もしくは受信用に使用するチャネル・スロットには“1”、自身と干渉する範囲に存在する近隣端末やゲートウェイが送信用に使用するチャネル・スロットには“2”を登録する。ただし、実施例4では、1つのスロット内で自身が複数のパケットを送受信する場合が発生する。そのため、自身が送信もしくは受信用に使用するチャネル・スロットについては、各スロットで送受信するパケットのトラフィック種別を合わせて管理する。例えば、図示の管理テーブル1600Aでは、括弧内にパケットの種別情報を格納している。これにより、図示の例では、(C2,S1)が種別1のパケット用に使用され、(C1,S3)が種別1と種別2の2つのパケット用に使用されることが把握出来る。尚、ここでトラフィック種別とは、図6のトラフィックID611に格納される種別情報に等しいものである。
次に、使用時間管理テーブル1600Bも同様に端末及びゲートウェイ、または管理装置が保持する。使用時間管理テーブルは、チャネル・スロット管理テーブル1600Aにおいて、“1”または“2”が登録された各チャネル・スロットについて、送受信用に使用される時間を管理するテーブルであり、各使用時間の情報を格納する。即ち、図示の例では、(C2,S1)では30ミリ秒、(C1,S3)では45ミリ秒が送受信用に使用済みであることがわかる。ここでは、記載する時間の単位をミリ秒と仮定したが、ネットワークのスループットやパケットサイズに応じて、単位をマイクロ秒や秒にしてもよい。尚、使用時間管理テーブル1600Bは上述の通り、自身と干渉する範囲に存在する近隣端末やゲートウェイがそれぞれのスロットで、どの程度の時間を送受信に使用するのかも管理する。そこで、これを実現するため、実施例1〜3では新規にチャネル・スロットを確保すると、近隣端末やゲートウェイへチャネル・スロット情報を通知していたが、実施例4では使用時間も合わせて通知するものとする。
次に図17を参照して、実施例4による空きチャネル・空きスロットの抽出動作について説明する。
まず、ステップ1701は、図8のステップ801と同様、変数iを割当範囲の始点スロット番号とする処理である。本処理の後に、ステップ1702に進む。
ステップ1702も、図8のステップ802と同様、2つのチャネル・スロット管理テーブルを比較し、少なくとも一方にて何れかのチャネルのi番目のスロットに“1”が登録されていないかを判定する処理である。判定の結果“1”が登録されている場合(YES)はステップ1703に進み、登録されていない場合(NO)はステップ1705に進む。
ステップ1703は、ステップ1702で“1”が登録されていたスロットにおいて、既に送信または受信用に使用されることが分かっている時間長に対し、所望のパケットを送信または受信するだけの空き時間が残っていないことを判定する処理である。具体的には、使用時間管理テーブルを参照して、該当するスロットの使用時間を確認する。この時、スロット幅から当該使用時間を差し引いた時間がスロットの空き時間である。例えば、スロット幅が50ミリ秒で、使用時間管理テーブルに登録された値が30ミリ秒であった場合、当該スロットの空き時間は20ミリ秒と判定される。判定の結果、空き時間が残っていない場合(YES)は、ステップ1704に進み、空き時間が残っている場合(NO)は、ステップ1705に進む。
ステップ1704は、図8のステップ803と同様、i番目のスロットが全チャネルにおいて使用不可、即ちi番目のスロットには空きが無いことを判定する処理である。上述の通り、端末及びゲートウェイで同時に送受信を行うための特殊な機構が設けられていない限り、あるスロットに“1”が割り当たっている場合は、当該スロットを利用することが出来ないため、この判定を行うことになる。本処理の後に、ステップ1708に進む。
ステップ1705も、図8のステップ804と同様、2つのチャネル・スロット管理テーブルを比較し、少なくとも一方で何れかのチャネルのi番目のスロットに“2”が登録されていないかを判定する処理である。判定の結果“2”が登録されている場合(YES)はステップ1706に進み、登録されていない場合(NO)はステップ1708に進む。
ステップ1706は、ステップ1705で“2”が登録されていたスロットにおいて、既に送信または受信用に使用されることが分かっている時間長に対し、所望のパケットを送信または受信するだけの空き時間が残っていないことを判定する処理である。こちらもステップ1703と同様、使用時間管理テーブルを参照することによって、該当するスロットの空き時間を算出する。判定の結果空き時間が残っていない場合(YES)は、ステップ1707に進み、空き時間が残っている(NO)は、ステップ1708に進む。
ステップ1704は、ステップ1705で“2”が登録されていることを確認し、かつステップ1706で所望のパケットを送信または受信するための空き時間が残されていないことを確認した通信チャネルのi番目のスロットが使用不可であることを判定する処理である。本処理の後に、ステップ1708に進む。
ステップ1708は、図8のステップ806と同様、i番目のスロットが割当範囲の終点スロット番号と一致しているかどうかを判定する処理である。判定の結果一致している場合(YES)は図17のフローチャートを終了し、一致していない場合(NO)はステップ1709に進む。
ステップ1709は、図8のステップ807と同様、iに1を加算する処理であり、本処理の後にステップ1702に戻る。
上記の処理により、使用不可と判定されなかった通信チャネル及びスロットが、空きチャネル・空きスロットとして抽出される。このように、各スロットにおいて送信または受信用に使用されている時間を参照し、所望のパケットを送信または受信する上で必要となる空き時間が残されているかどうかを判定することで、帯域をより有効に活用することが可能となる。