以下、発明を実施するための形態を、図面に基づいて説明する。
(1)通信システムの構成
図1を参照して、本実施形態の通信システム1の構成について説明する。図1は、本実施形態の通信システム1の構成の一例を示すブロック図である。
図1に示すように、本実施形態の通信システム1は、サーバ10と、「通信装置」の一例であるルータ20と、「端末」の一例であるクライアント30とを備えている。
サーバ10は、ルータ20を介して複数のクライアント30の夫々との間で通信を行う。その結果、サーバ10は、ルータ20を介して、複数のクライアント30の夫々との間で任意のデータ(例えば、映像データや、音声データや、その他のデータ等)を送受信することができる。
サーバ10とルータ20とは、ネットワーク回線40を介して接続されている。同様に、複数のクライアント30の夫々とルータ20とは、ネットワーク回線40を介して接続されている。ネットワーク回線40は、その内部で区分される物理的な又は論理的な回線(言い換えれば、帯域)として、通信品質が保証された品質保証回線41と、品質保証回線41と比較して通信品質が保証される優先度が低いベストエフォート回線42とを含んでいる。
品質保証回線41では、送受信されるデータの特性(例えば、データ量やデータ種別等)に応じた帯域が各クライアント30に保証される。一方で、ベストエフォート回線42では、送受信されるデータの特性に関わらず、各クライアント30に均一な帯域が保証される。このため、品質保証回線41では、ベストエフォート回線42を介して送受信されるデータと比較して、データが優先的に送受信される。言い換えれば、ベストエフォート回線42では、品質保証回線41を介して送受信されるデータと比較して、データが非優先的に送受信される。従って、ネットワーク回線40の容量に空きが少なくなる又はなくなると、品質保証回線41を介して送受信されるデータと比較して、ベストエフォート回線42を介して送受信されるデータが欠落する確率が高くなる。或いは、ネットワーク回線40の容量に空きが少なくなる又はなくなると、品質保証回線41を介して送受信されるデータと比較して、ベストエフォート回線42を介して送受信されるデータのデータ量が少なくなる確率が高くなる。
ルータ20は、レイヤ3ネットワーク間でのデータの転送(つまり、ルーティング)を行う機器である。上述したように、本実施形態のネットワーク回線40は、品質保証回線41とベストエフォート回線42とを含んでいる。本実施形態のルータ20は、複数のクライアント30の夫々とサーバ10との間のデータの送受信に使用される回線として、品質保証回線41及びベストエフォート回線42のいずれかを割り当てる。尚、ルータ20によって行われる品質保証回線41及びベストエフォート回線42のいずれかを割り当てる処理については、後に詳述する(図4等参照)。
尚、図1では、サーバ10とクライアント30とがルータ20を介して接続される例を示している。しかしながら、ルータ20は、任意の通信機器を接続していてもよい。
(2)ルータの構成
図2を参照して、本実施形態のルータ20の構成について説明する。図2は、本実施形態のルータ20の構成を示すブロック図である。
図2に示すように、ルータ20は、CPU21と、メモリ22と、TCAM(Ternary Content Addressable Memory)23と、複数の回線インタフェース部24と、データバス25と、転送エンジン26とを備えている。
CPU21は、所定のファームウェア等に基づいて動作する制御回路であって、ルータ20全体の動作を制御する。
CPU21は、その内部に実現される物理的な、論理的な又は機能的な処理ブロックとして、受信信号制御部211と、クライアント要求分析制御部212と、回線情報管理部213と、クライアント接続情報管理部214と、送信信号制御部215とを備える。
受信信号制御部211は、サーバ10及びクライアント30から送信されるデータを受信する。受信信号制御部211は、受信したデータを他の制御部へ転送してもよい。受信信号制御部211は、受信したデータを分析することで、他の制御部への処理要求を行ってもよい。
クライアント要求分析制御部212は、受信信号制御部211が受信したデータを解析することで、クライアント30の要求の内容を分析する。また、クライアント要求分析制御部212は、クライアント30の要求の内容に応じた処理を行う。
回線情報管理部213は、クライアント30からの要求に基づいて、品質保証回線情報221の管理(例えば、更新等)を行う。
クライアント接続情報管理部214は、クライアント30からの要求に基づいて、クライアント接続情報222の管理(例えば、更新等)を行う。また、クライアント接続情報管理部214は、例えば品質保証回線41に接続しているクライアント30を監視することで、クライアント接続情報222の管理(例えば、更新等)を行う。
送信信号制御部215は、サーバ10及びクライアント30に対するデータの送信を制御する。
メモリ22は、ルータ20内部で使用する情報を一時的に格納したり、ルータ20としての動作を行うためのプログラム(即ち、ファームウェア)を格納したりする。
メモリ22は、その内部に、品質保証回線情報221と、クライアント接続情報222とを備える。
品質保証回線情報221は、品質保証回線41を管理するための情報である。尚、品質保証回線情報221のデータ構造については、後に詳述する(図5参照)。
クライアント接続情報222は、ルータ20の配下にある各クライアント30の品質保証回線41への接続状況を管理するための情報である。尚、クライアント接続情報222のデータ構造については、後に詳述する(図6参照)。
TCAM23は、ルータ20によって実際にルーティングが行われる際に、メモリ22中のルーティングテーブルに格納されているルーティング情報が読みだされるメモリである。従って、ルータ20は、ルーティング(つまり、サーバ10と複数のクライアント30との間で送受信されるデータの転送処理)を行う際には、TCAM23に読みだされているルーティング情報を検索することで、実際のルーティング先を決定する。
複数の回線インタフェース部24の夫々は、ルータ20の外部の装置(例えば、サーバ10や、複数のクライアント30や、不図示の他のルータ等)との間の情報の送受信を制御する。
データバス25は、CPU21と、メモリ22と、TCAM23と、複数の回線インタフェース部24と、転送エンジン26との間の情報の伝送を行う。
転送エンジン26は、ある回線インタフェース部24から入力してくるデータ(例えば、パケット)を、TCAM23に読みだされているルーティング情報を検索することで決定されるルーティング先に対応する他の回線インタフェース部24に対して転送する。その結果、転送されたデータは、他の回線インタフェース部24からルーティング先に向かって出力される。
(3)クライアントの構成
図3を参照して、本実施形態のクライアント30の構成について説明する。図3は、本実施形態のクライアント30の構成を示すブロック図である。
図3に示すように、クライアント30は、CPU31と、メモリ32と、回線インタフェース部34と、ユーザインタフェース部35とを備えている。
CPU31は、所定のファームウェア等に基づいて動作する制御回路であって、HGW30全体の動作を制御する。
CPU31は、その内部に実現される物理的な、論理的な又は機能的な処理ブロックとして、送信信号制御部311と、受信信号制御部312とを備える。
受信信号制御部311は、ルータ20から送信されるデータの受信を制御する。
送信信号制御部315は、ルータ20に対するデータの送信を制御する。
メモリ32は、クライアント30内部で使用する情報を一時的に格納したり、クライアント30としての動作を行うためのプログラム(即ち、ファームウェア)を格納したりする。
回線インタフェース部34は、クライアント30の外部の装置(例えば、サーバ10や、ルータ20や、不図示の他のルータ等)との間の情報の送受信を制御する。
ユーザインタフェース部35は、クライアント30のユーザによる入力を受け付ける。ユーザインタフェース部35の一例として、例えば、キーボード、マウス、タブレット、タッチパネル又はポインティングデバイス等の物理的な入力装置や、GUI(Graphic User Interface)等のソフトウェア的な入力装置等があげられる。
データバス36は、CPU31と、メモリ32と、回線インタフェース部34と、ユーザインタフェース部35との間の情報の伝送を行う。
(4)ルータが行う処理
以下、図4から図12を参照して、本実施形態のルータ20が行う処理(特に、品質保証回線41及びベストエフォート回線42のいずれかを割り当てる処理)について説明する。
(4−1)品質保証回線41への切替要求が送信された時の処理
図4を参照して、本実施形態のルータ20が行う処理のうち、品質保証回線41への切替要求がクライアント30から送信されてきた場合の処理について説明する。図4は、本実施形態のルータ20が行う処理のうち、品質保証回線41への切替要求がクライアント30から送信されてきた場合の処理の流れを示すフローチャートである。尚、図4に示す処理は、ベストエフォート回線42に接続しているクライアント30が、新たに品質保証回線41への接続を望む場合に行われる処理を想定している。もちろん、ベストエフォート回線42に接続していないクライアント30が、新たに品質保証回線41への接続を望む場合にも、図4に示す処理が行われてもよい。
図4に示すように、クライアント要求分析制御部212は、複数のクライアント30のうちのいずれかから、品質保証回線41への切替要求が送信されているか否かを判定する(ステップS101)。クライアント要求分析制御部212は、受信信号制御部211が受信したクライアント30からのデータを監視することで、品質保証回線41への切替要求が送信されているか否かを判定してもよい。
ステップS101における判定の結果、品質保証回線41への切替要求が送信されていないと判定される場合には(ステップS101:No)、クライアント要求分析制御部212は、品質保証回線41への切替要求が送信されているか否かを継続して判定する。
他方で、ステップS101における判定の結果、品質保証回線41への切替要求が送信されていると判定される場合には(ステップS101:Yes)、クライアント要求分析制御部212は、品質保証回線41に空きがあるか否かを判定する(ステップS102)。つまり、クライアント要求分析制御部212は、切替要求を送信したクライアント30に対して品質保証回線41を割り当てることができるか否かを判定する。クライアント要求分析制御部212は、品質保証回線情報221を参照することで、品質保証回線41に空きがあるか否かを判定してもよい。
ここで、図5を参照して、品質保証回線情報221について説明する。図5は、品質保証回線情報221のデータ構造を示すデータ構造図である
図5に示すように、品質保証回線情報221は、最大同時接続数情報と、現在接続数情報と、サービス時間情報とを含んでいる。
最大同時接続数情報は、品質保証回線41に同時に接続可能なクライアント30の最大数(つまり、上限数)を示す。図5に示す例では、最大同時接続数情報として、「2」という情報が格納されている。従って、図5に示す最大同時接続数情報の例は、品質保証回線41に対して最大で2つのクライアント30が同時に接続可能であることを示している。
現在接続数情報は、品質保証回線41に対して今現在接続しているクライアント30の数を示す。図5に示す例では、現在接続数情報として、「2」という情報が格納されている。従って、図5に示す現在接続数情報の例は、品質保証回線41に対して現在2つのクライアント30が同時に接続していることを示している。
サービス時間情報は、クライアント30が品質保証回線41に継続して(言い換えれば、連続して)接続可能な上限時間(以降、“サービス時間”と称する)を示す。図5に示す例では、サービス時間情報として、「30分」という情報が格納されている。従って、図5に示すサービス時間情報の例は、クライアント30が品質保証回線41に継続して接続可能なサービス時間が30分であることを示している。
尚、サービス時間情報は、品質保証回線41に空きがない場合にクライアント30が品質保証回線41に継続して接続可能なサービス時間を示していてもよい。例えば、図5に示すサービス時間情報の例は、品質保証回線41に空きがない場合にはクライアント30が品質保証回線41に継続して接続可能なサービス時間が30分であることを示していてもよい。言い換えれば、サービス時間情報は、品質保証回線41に空きがある場合にクライアント30が品質保証回線41に継続して接続可能なサービス時間を示していなくともよい。例えば、図5に示すサービス時間情報の例は、品質保証回線41に空きがある場合にはクライアント30が品質保証回線41に継続して接続可能なサービス時間が30分に限られないことを示していてもよい。
図4のステップS103では、クライアント要求分析制御部212は、最大同時接続数情報と現在接続数情報とを比較することで、品質保証回線41に空きがあるか否かを判定してもよい。より具体的には、例えば、クライアント要求分析制御部212は、現在接続数情報が最大同時接続数情報未満となる場合には、品質保証回線41に空きがあると判定してもよい。一方で、例えば、クライアント要求分析制御部212は、現在接続数情報が最大同時接続数情報と一致する(又は以上となる)場合には、品質保証回線41に空きがないと判定してもよい。
再び図4において、ステップS102における判定の結果、品質保証回線41に空きがあると判定される場合には(ステップS102:Yes)、クライアント要求分析制御部212は、切替要求を送信したクライアント30が品質保証回線41に接続することを許可してもよいと判定する。このため、回線情報管理部213は、切替要求を送信したクライアント30の品質保証回線41への接続に応じて、品質保証回線情報221を更新する(ステップS103)。具体的には、回線情報管理部213は、品質保証回線情報221に含まれる現在接続数情報を1だけインクリメントする。
ステップS103に続いて、相前後して又は並行して、クライアント接続情報管理部214は、切替要求を送信したクライアント30の品質保証回線41への接続に応じて、クライアント接続情報222を更新する(ステップS104)。
ここで、図6を参照して、クライアント接続情報222について説明する。図6は、クライアント接続情報222のデータ構造を示すデータ構造図である
図6に示すように、クライアント接続情報222は、品質保証回線41への切替要求を送信してきたクライアント30による品質保証回線41への接続状況を管理するための情報である。クライアント接続情報222は、クライアント識別情報と、接続開始時刻と、切替要求時刻と、切替予定時刻とを含むレコードを、品質保証回線41への切替要求を送信してきたクライアント30毎に含んでいる。
クライアント識別情報は、クライアント30を識別するための情報(例えば、クライアントIDやIPアドレス等)である。接続開始時刻は、クライアント30が品質保証回線41に対する接続を実際に開始したときの時刻である。接続要求時刻は、クライアント30が品質保証回線41への接続要求を送信した時刻である。切替予定時刻は、クライアント30の接続先が品質保証回線41からベストエフォート回線42に切り替えられる予定時刻である。具体的には、例えば、切替予定時刻は、接続開始時刻に対して品質保証回線情報221に含まれるサービス時間を加算した時刻となる。
図6に示すクライアント接続情報の例は、クライアント識別情報が「クライアント#2」となるクライアント30について、(i)12:00に品質保証回線41への切替要求が送信され、(ii)12:00に品質保証回線41への接続が開始され、(iii)品質保証回線41に空きがない状況で新たなクライアント30から品質保証回線41への切替要求が送信された場合には、12:30以降に品質保証回線41への接続が切断され得ることを示すレコードを含んでいる。同様に、図6に示すクライアント接続情報の例は、クライアント識別情報が「クライアント#3」となるクライアント30について、(i)12:15に品質保証回線41への接続要求が送信され、(ii)12:15に品質保証回線41への接続が開始され、(iii)品質保証回線41に空きがない状況で新たなクライアント30から品質保証回線41への接続要求が送信された場合には、12:45以降に品質保証回線41への接続が切断され得ることを示すレコードを含んでいる。同様に、図6に示すクライアント接続情報の例は、クライアント識別情報が「クライアント#1」となるクライアント30について、(i)12:20に品質保証回線41への接続要求が送信されたことを示すレコードを含んでいる。尚、図6に示すクライアント接続情報の例では、クライアント#1に関するレコードのうち接続開始時刻及び切替予定時刻が空白(又は、Nullデータ等)となっている。接続開始時刻及び切替予定時刻の空白は、品質保証回線41への接続要求を送信したクライアント#1が、品質保証回線41の空きがないことに起因して、品質保証回線41に未だ接続していないことを示している。
図4のステップS104では、クライアント接続情報管理部214は、接続要求を送信したクライアント30の品質保証回線41への接続に応じて、当該クライアント30に対応する既存のレコードを上書きする又は当該クライアント30に対応する新たなレコードを追加する。尚、図4のステップS104では、クライアント30の品質保証回線41への接続が許可されたため、クライアント接続情報管理部214は、クライアント識別情報、接続開始時刻、切替要求時刻及び切替予定時刻の全てに必要な情報を書き込む。
再び図4において、ステップS104に続いて、相前後して又は並行して、クライアント要求分析制御部212は、接続要求を送信したクライアント30に対して、品質保証回線41への接続を許可する応答(OK)メッセージを送信する(ステップS105)。
ステップS105に続いて、相前後して又は並行して、クライアント要求分析制御部212は、接続要求を送信したクライアント30のために確保した品質保証回線41を、当該クライアント30に対して割り当てる。その結果、接続要求を送信したクライアント30の接続先が、品質保証回線41に切り替えられる(ステップS106)。従って、以降、接続要求を送信したクライアント30とルータ20との間(或いは、クライアント30とサーバ10との間)では、ネットワーク回線40中に確保される品質保証回線41を介して、データの送受信が行われる。
他方で、ステップS102における判定の結果、品質保証回線41に空きがないと判定される場合には(ステップS102:No)、クライアント要求分析制御部212は、接続要求を送信したクライアント30が品質保証回線41に接続することを許可することができないと判定する。従って、クライアント要求分析制御部212は、接続要求を送信したクライアント30を、品質保証回線41への接続待ちクライアント30(以降、“接続待ちクライアント30R”と称する)として取り扱う。このため、クライアント接続情報管理部214は、接続要求を送信した接続待ちクライアント30Rの品質保証回線41への非接続に応じて、クライアント接続情報222を更新する(ステップS107)。尚、図4のステップS107では、接続待ちクライアント30Rの品質保証回線41への接続が許可されなかったため、クライアント接続情報管理部214は、クライアント識別情報及び切替要求時刻に必要な情報を書き込み、接続開始時刻及び切替予定時刻に必要な情報を書き込まなくともよい。接続開始時刻及び切替予定時刻が空白になることで、当該レコードに対応するクライアント30は、接続待ちクライアント30Rであると識別される。
ステップS107に続いて、相前後して又は並行して、クライアント要求分析制御部212は、接続要求を送信した接続待ちクライアント30Rに対して、品質保証回線41への接続を許可しない応答(Wait)メッセージを送信する(ステップS108)。その結果、接続要求を送信した接続待ちクライアント30Rの接続先が、品質保証回線41に切り替えられることはない。このため、接続要求を送信した接続待ちクライアント30Rのベストエフォート回線42への接続がそのまま維持される。
(4−2)切断要求が送信された時の処理
図7を参照して、本実施形態のルータ20が行う処理のうち、品質保証回線41又はベストエフォート回線42からの切断要求がクライアント30から送信されてきた場合の処理について説明する。図7は、本実施形態のルータ20が行う処理のうち、品質保証回線41又はベストエフォート回線42からの切断要求がクライアント30から送信されてきた場合の処理の流れを示すフローチャートである。尚、図7に示す処理は、品質保証回線41への接続要求を送信したクライアント30が実際に品質保証回線41に接続している場合及び品質保証回線41の空きがないがゆえに一時的にベストエフォート回線42に接続している場合に行われる処理を想定している。
図7に示すように、クライアント要求分析制御部212は、複数のクライアント30のうちのいずれかから、品質保証回線41又はベストエフォート回線42からの切断要求が送信されているか否かを判定する(ステップS201)。クライアント要求分析制御部212は、受信信号制御部211が受信したクライアント30からのデータを監視することで、品質保証回線41又はベストエフォート回線42からの切断要求が送信されているか否かを判定してもよい。
ステップS201における判定の結果、品質保証回線41又はベストエフォート回線42からの切断要求が送信されていないと判定される場合には(ステップS201:No)、クライアント要求分析制御部212は、品質保証回線41又はベストエフォート回線42からの切断要求が送信されているか否かを継続して判定する。
他方で、ステップS201における判定の結果、品質保証回線41又はベストエフォート回線42からの切断要求が送信されていると判定される場合には(ステップS201:Yes)、クライアント要求分析制御部212は、切断要求を送信したクライアント30の接続先が品質保証回線41であるか否かを判定する(ステップS202)。クライアント要求分析制御部212は、クライアント接続情報222を参照することで、切断要求を送信したクライアント30の接続先が品質保証回線41であるか否かを判定してもよい。例えば、クライアント要求分析制御部212は、切断要求を送信したクライアント30に対応するクライアント接続情報222のレコードに含まれる接続開始時刻及び切替予定時刻が空白であるか否かを判定することで、切断要求を送信したクライアント30の接続先が品質保証回線41であるか否かを判定してもよい。クライアント要求分析制御部212は、対応するレコードに含まれる接続開始時刻及び切替予定時刻が空白でない場合には、切断要求を送信したクライアント30の接続先が品質保証回線41であると判定してもよい。他方で、クライアント要求分析制御部212は、対応するレコードに含まれる接続開始時刻及び切替予定時刻が空白である場合には、切断要求を送信したクライアント30の接続先がベストエフォート回線42であると判定してもよい。
ステップS202における判定の結果、切断要求を送信したクライアント30の接続先が品質保証回線41であると判定される場合には(ステップS202:Yes)、回線情報管理部213は、切断要求を送信したクライアント30の品質保証回線41からの切断に応じて、品質保証回線情報221を更新する(ステップS203)。具体的には、回線情報管理部213は、品質保証回線情報221に含まれる現在接続数情報を1だけデクリメントする。
ステップS203に続いて、相前後して又は並行して、クライアント接続情報管理部214は、切断要求を送信したクライアント30の品質保証回線41からの切断に応じて、クライアント接続情報222を更新する(ステップS204)。具体的には、切断要求を送信したクライアント30に対応するレコードを、クライアント接続情報222から削除する。
ステップS204に続いて、相前後して又は並行して、クライアント要求分析制御部212は、切断要求を送信したクライアント30のために確保されていた品質保証回線41を開放する。その結果、切断要求を送信したクライアント30の品質保証回線41への接続が切断される(ステップS205)。尚、クライアント要求分析制御部212は、切断要求を送信したクライアント30の品質保証回線41への接続の切断に加えて、切断要求を送信したクライアント30の接続先としてベストエフォート回線42を割り当ててもよい。
ステップS205の結果、品質保証回線41には空きが生じたと判定される。このため、ルータ20は、接続待ちクライアント30Rを品質保証回線41に接続させるための接続待ちリクエスト処理(ステップS206:図8参照)を行ってもよい。
他方で、ステップS202における判定の結果、切断要求を送信したクライアント30の接続先が品質保証回線41でないと判定される場合には(ステップS202:No)、クライアント要求分析制御部212は、切断要求を送信したクライアント30が、品質保証回線41への接続を一旦要求していながらも品質保証回線41の空きがないがゆえにベストエフォート回線42に接続している接続待ちクライアント30Rであると判定する。従って、クライアント要求分析制御部212は、切断要求を送信した接続待ちクライアント30Rが、品質保証回線41への接続を一旦要求していながらもその切替要求を取り下げることを意図していると判定する。このため、クライアント接続情報管理部214は、切断要求を送信した接続待ちクライアント30Rの品質保証回線41への切替要求の取り下げに応じて、クライアント接続情報222を更新する(ステップS207)。具体的には、切断要求を送信した接続待ちクライアント30Rに対応するレコードを、クライアント接続情報222から削除する。
ステップS207に続いて、相前後して又は並行して、クライアント要求分析制御部212は、切断要求を送信した接続待ちクライアント30Rに対して、切替要求の取り下げを了承する応答(Abort)メッセージを送信する(ステップS208)。
(4−3)接続待ちリクエスト処理
図8を参照して、本実施形態のルータ20が行う処理のうち、接続待ちリクエスト処理(図7のステップS206)について説明する。図8は、本実施形態のルータ20が行う動作のうち、接続待ちリクエスト処理の流れを示すフローチャートである。
尚、図8に示す接続待ちリクエスト処理が行われるタイミングは、図7に示すクライアント30の品質保証回線41からの切断が行われたタイミングが一例となる。或いは、図8に示す接続待ちリクエスト処理は、周期的に又は非周期的に行われてもよい。
図8に示すように、クライアント要求分析制御部212は、接続待ちクライアント30Rが存在するか否かを判定する(ステップS301)。つまり、クライアント要求分析制御部212は、品質保証回線41への接続を一旦要求していながらも品質保証回線41の空きがないがゆえにベストエフォート回線42に接続しているクライアント30が存在するか否かを判定する。クライアント要求分析制御部212は、クライアント接続情報222を参照することで、接続待ちクライアント30Rが存在するか否かを判定する。より具体的には、クライアント要求分析制御部212は、クライアント接続情報222に、接続開始情報及び切替予定時刻が空白となっているレコードが含まれている場合には、接続待ちクライアント30Rが存在すると判定する。
ステップS301における判定の結果、接続待ちクライアント30Rが存在しないと判定される場合には(ステップS301:No)、ルータ20は、図8に示す接続待ちリクエスト処理を終了する。
他方で、ステップS301における判定の結果、接続待ちクライアント30Rが存在すると判定される場合には(ステップS301:Yes)、クライアント要求分析制御部212は、品質保証回線品質保証回線41に空きがあるか否かを判定する(ステップS302)。つまり、クライアント要求分析制御部212は、接続待ちクライアント30Rに対して品質保証回線41を割り当てることができるか否かを判定する。クライアント要求分析制御部212は、品質保証回線情報211を参照することで、品質保証回線41に空きがあるか否かを判定してもよい。具体的には、クライアント要求分析制御部212は、現在接続数情報が最大同時接続数情報未満となる場合には、品質保証回線41に空きがあると判定してもよい。
尚、ステップS301における判定の結果、複数の接続待ちクライアント30Rが存在すると判定される場合には(ステップS301:Yes)、クライアント要求分析制御部212は、複数の接続待ちクライアント30Rの夫々に設定される優先度が相対的に高い順に、ステップS302以降の処理を行ってもよい。例えば、クライアント要求分析制御部212は、複数の接続待ちクライアント30Rのうち切替要求時刻が古い順に、ステップS302以降の処理を行ってもよい。
ステップS302における判定の結果、品質保証回線41に空きがあると判定される場合には(ステップS302:Yes)、クライアント要求分析制御部212は、接続待ちクライアント30Rが品質保証回線41に接続することを許可してもよいと判定する。このため、回線情報管理部213は、接続待ちクライアント30Rの品質保証回線41への接続に応じて、品質保証回線情報221を更新する(ステップS303)。具体的には、回線情報管理部213は、品質保証回線情報221に含まれる現在接続数情報を1だけインクリメントする。
ステップS303に続いて、相前後して又は並行して、クライアント接続情報管理部214は、接続待ちクライアント30Rの品質保証回線41への接続に応じて、クライアント接続情報222を更新する(ステップS304)。具体的には、クライアント接続情報管理部214は、接続待ちクライアント30Rに対応するレコードのうち接続開始時刻及び切替予定時刻に必要な情報を書き込む。
ステップS304に続いて、相前後して又は並行して、クライアント要求分析制御部212は、接続待ちクライアント30Rに対して、品質保証回線41への接続を許可する応答(OK)メッセージを送信する(ステップS305)。
ステップS305に続いて、相前後して又は並行して、クライアント要求分析制御部212は、接続待ちクライアント30Rのために確保した品質保証回線41を、当該接続待ちクライアント30Rに対して割り当てる。その結果、接続待ちクライアント30の接続先が、品質保証回線41に切り替えられる(ステップS306)。従って、以降、接続待ちクライアント30Rとルータ20との間(或いは、接続待ちクライアント30Rとサーバ10との間)では、ネットワーク回線40中に確保される品質保証回線41を介して、データの送受信が行われる。
他方で、ステップS302における判定の結果、品質保証回線41に空きがないと判定される場合には(ステップS302:No)、ルータ20は、品質保証回線41に接続しているクライアント30のうちのいずれかに対して、品質保証回線41からの強制切断処理(言い換えれば、ベストエフォート回線42への強制切替処理)を行う。具体的には、まず、クライアント要求分析制御部212は、ベストエフォート回線42へ強制的に切り替えられるクライアントを特定する切替候補データを初期化する(ステップS307)。
その後、クライアント要求分析制御部212は、品質保証回線41に接続している全てのクライアント30を対象として、ステップS308からステップS312の処理を行う。
まず、クライアント要求分析制御部212は、クライアント30が品質保証回線41に接続している時間(回線使用時間)を算出する(ステップS308)。クライアント要求分析制御部212は、クライアント接続情報222を参照することで、回線使用時間を算出してもよい。より具体的には、クライアント要求分析制御部212は、クライアント接続情報222中の対応するレコードに含まれる接続開始時刻と現在時刻との差分を、回線使用時間として算出してもよい。
その後、クライアント要求分析制御部212は、ステップS308で算出した回線使用時間が品質保証回線情報221に規定されているサービス時間を超えているか否かを判定する(ステップS309)。
ステップS309における判定の結果、回線使用時間がサービス時間を超えていないと判定される場合には(ステップS309:No)、ルータ20は、次のクライアント30に対して、ステップS308以降の処理を繰り返す。
他方で、ステップS309における判定の結果、回線使用時間がサービス時間を超えていると判定される場合には(ステップS309:Yes)、クライアント要求分析制御部212は、ベストエフォート回線42へ強制的に切り替えられる特定のクライアント30(以降、“切替候補クライアント30C”と称する)が既に存在するか否かを判定する(ステップS310)。具体的には、クライアント要求分析制御部212は、切替候補データに切替候補クライアント30Cを具体的に登録されているか否かを判定する。
ステップS310における判定の結果、切替候補クライアント30Cが存在しないと判定される場合には(ステップS310:No)、クライアント要求分析制御部212は、ステップS308で回線使用時間がサービス時間を超えていると判定されたクライアント30を、切替候補クライアント30Cに登録する(ステップS312)。つまり、クライアント要求分析制御部212は、切替候補データに、ステップS308で回線使用時間がサービス時間を超えていると判定されたクライアント30を特定する情報を登録する。その後、ルータ20は、次のクライアント30に対して、ステップS308以降の処理を繰り返す。
他方で、ステップS310における判定の結果、切替候補クライアント30Cが存在すると判定される場合には(ステップS310:No)、クライアント要求分析制御部212は、ステップS308で算出された回線使用時間が、切替候補クライアント30Cの回線使用時間を超えているか否かを判定する(ステップS311)。
ステップS311における判定の結果、クライアント要求分析制御部212は、ステップS308で算出された回線使用時間が切替候補クライアント30Cの回線使用時間を超えていると判定される場合には(ステップS311:Yes)、クライアント要求分析制御部212は、ステップS311で回線使用時間が切替候補クライアント30Cの回線使用時間を超えていると判定されたクライアント30を、切替候補クライアント30Cに登録する(ステップS312)。つまり、クライアント要求分析制御部212は、切替候補データを更新する。その後、ルータ20は、次のクライアント30に対して、ステップS308以降の処理を繰り返す。
他方で、ステップS311における判定の結果、クライアント要求分析制御部212は、ステップS308で算出された回線使用時間が切替候補クライアント30Cの回線使用時間を超えていないと判定される場合には(ステップS311:No)、ルータ20は、次のクライアント30に対して、ステップS308以降の処理を繰り返す。
ステップS308からステップS312の処理が品質保証回線41に接続している全てのクライアント30に対して行われた後、クライアント要求分析制御部212は、切替候補クライアント30Cが存在するか否かを判定する(ステップS313)。つまり、クライアント要求分析制御部212は、切替候補データに切替候補クライアント30Cを具体的に登録されているか否かを判定する。
ステップS313における判定の結果、切替候補クライアント30Cが存在しないと判定される場合には(ステップS313:No)、ルータ20は、図8に示す接続待ちリクエスト処理を終了する。
他方で、ステップS313における判定の結果、切替候補クライアント30Cが存在しないと判定される場合には(ステップS313:No)、クライアント要求分析制御部212は、切替候補クライアント30Cに対して、その接続先を品質保証回線41からベストエフォート回線42に切り替えるための指示メッセージを送信する(ステップS314)。その結果、切替候補クライアント30Cの接続先が、品質保証回線41からベストエフォート回線42に切り替えられる(ステップS315)。
その後、クライアント接続情報管理部214は、切替候補クライアント30Cの品質保証回線41からの切断に応じて、クライアント接続情報222を更新する(ステップS316)。具体的には、クライアント接続情報管理部214は、切替候補クライアント30Cに対応するレコードを削除する。
以上の処理により、品質保証回線41に空きが生じたため、以降、接続待ちクライアント30Rの品質保証回線41への接続処理が行われる。具体的には、クライアント接続情報管理部214は、接続待ちクライアント30Rの品質保証回線41への接続に応じて、クライアント接続情報222を更新する(ステップS304)。ステップS304に続いて、相前後して又は並行して、クライアント要求分析制御部212は、接続待ちクライアント30Rに対して、品質保証回線41への接続を許可する応答(OK)メッセージを送信する(ステップS305)。ステップS305に続いて、相前後して又は並行して、クライアント要求分析制御部212は、接続待ちクライアント30Rのために確保した品質保証回線41を、当該クライアント30に対して割り当てる。その結果、接続待ちクライアント30Rの接続先が、品質保証回線41に切り替えられる(ステップS306)。
(4−4)具体的な処理シーケンス
図9から図12を参照して、図4から図8を参照して説明した処理の流れについて、特定の状況毎の具体的な処理シーケンスを説明する。図9は、品質保証回線41への切替要求を送信したクライアント30が品質保証回線への接続を許可される場合の処理シーケンスを示すシーケンス図である。図10は、品質保証回線41への切替要求を送信したクライアント30が、一旦接続待ちクライアント30Rとなった後に改めて品質保証回線41への接続を許可される場合の処理シーケンスを示すシーケンス図である。図11は、品質保証回線41への接続要求を送信したクライアント30が、一旦接続待ちクライアント30Rとなった後に品質保証回線41への切替要求を取り下げる場合の処理シーケンスを示すシーケンス図である。図12は、品質保証回線41に接続している切替候補クライアント30Cの接続先が、品質保証回線41からベストエフォート回線42に強制的に切り替えられる場合の処理シーケンスを示すシーケンス図である。
図9に示すように、品質保証回線41への接続要求を送信したクライアント30が品質保証回線への接続を許可される場合、ベストエフォート回線42に接続しているクライアント30は、ルータ20に対して、品質保証回線41への接続要求を送信する。接続要求を受信したルータ20は、図4のステップS101からステップS106に示す処理を行い、品質保証回線41への接続を許可する応答(OK)メッセージをクライアント30に対して送信する。以降、接続要求を送信したクライアント30とルータ20との間(或いは、クライアント30とサーバ10との間)では、ネットワーク回線40中に確保される品質保証回線41を介して、データの送受信が行われる。その後、必要に応じて、クライアント30は、ルータ20に対して、品質保証回線41からの切断要求を送信する。切断要求を受信したルータ20は、図7のステップS201からステップS205に示す処理を行う。その結果、切断要求を送信したクライアント30の品質保証回線41への接続が切断される。続いて、ルータ20は、図8の接続待ちリクエスト処理を行う。
図10に示すように、品質保証回線41への接続要求を送信したクライアント30が、一旦接続待ちクライアント30Rとなった後に改めて品質保証回線41への接続を許可される場合、ベストエフォート回線42に接続しているクライアント30は、ルータ20に対して、品質保証回線41への接続要求を送信する。接続要求を受信したルータ20は、図4のステップS101からステップS102及びステップS107からステップS108に示す処理を行い、品質保証回線41への接続を許可しない応答(Wait)メッセージをクライアント30に対して送信する。その後、ルータ20は、図8に示す接続待ちリクエスト処理を行うことで、品質保証回線41への接続を許可する応答(OK)メッセージをクライアント30に対して送信する。以降、接続要求を送信したクライアント30とルータ20との間(或いは、クライアント30とサーバ10との間)では、ネットワーク回線40中に確保される品質保証回線41を介して、データの送受信が行われる。その後、必要に応じて、クライアント30は、ルータ20に対して、品質保証回線41からの切断要求を送信する。切断要求を受信したルータ20は、図7のステップS201からステップS205に示す処理を行う。その結果、切断要求を送信したクライアント30の品質保証回線41への接続が切断される。続いて、ルータ20は、図8の接続待ちリクエスト処理を行う。
図11に示すように、品質保証回線41への接続要求を送信したクライアント30が、一旦接続待ちクライアント30Rとなった後に品質保証回線41への接続要求を取り下げる場合、ベストエフォート回線42に接続しているクライアント30は、ルータ20に対して、品質保証回線41への接続要求を送信する。接続要求を受信したルータ20は、図4のステップS101からステップS102及びステップS107からステップS108に示す処理を行い、品質保証回線41への接続を許可しない応答(Wait)メッセージをクライアント30に対して送信する。その後、必要に応じて、クライアント30は、ルータ20に対して、品質保証回線41からの切断要求(言い換えれば、切替要求の取り下げ要求)を送信する。切断要求を受信したルータ20は、図7のステップS201からステップS202及びステップS207からステップS208に示す処理を行い、接続要求の取り下げを了承する応答(Abort)メッセージをクライアント30に対して送信する。
図12に示すように、品質保証回線41に接続している切替候補クライアント30Cの接続先が、品質保証回線41からベストエフォート回線42に強制的に切り替えられる場合、ベストエフォート回線42に接続しているクライアント30は、ルータ20に対して、品質保証回線41への切替要求を送信する。切替要求を受信したルータ20は、図4のステップS101からステップS106に示す処理を行い、品質保証回線41への接続を許可する応答(OK)メッセージをクライアント30に対して送信する。以降、切替要求を送信したクライアント30とルータ20との間(或いは、クライアント30とサーバ10との間)では、ネットワーク回線40中に確保される品質保証回線41を介して、データの送受信が行われる。その後、ルータ20は、図8の接続待ちリクエスト処理を行い、接続先を品質保証回線41からベストエフォート回線42に切り替えるための指示メッセージをクライアント30に対して送信する。その結果、品質回線に接続していたクライアント30の接続先がベストエフォート回線42に強制的に切り替えられる。その後、必要に応じて、クライアント30は、ルータ20に対して、ベストエフォート回線42からの切断要求を送信する。切断要求を受信したルータ20は、図7のステップS201からステップS202及びステップS207からステップS208に示す処理を行う。
以上説明したように、本実施形態の通信システム1によれば、品質保証回線41に空きがない場合には、接続要求を送信したクライアント30を、品質保証回線41への接続待ちクライアント30Rとして取り扱うことができる。従って、クライアント30が繰り返し接続要求を送信し続けてしまうことは殆ど又は全くなくなる。
本実施形態の通信システム1によれば、品質保証回線41に空きがない場合には、品質保証回線41に接続しているクライアント30(切替候補クライアント30C)の接続先をベストエフォート回線42に切り替えることで、品質保証回線41の空きを強制的に作り出すことができる。従って、接続要求を送信したクライアント30は、品質保証回線41に接続することができる。
本実施形態の通信システム1によれば、品質保証回線41に接続しているクライアント30のうちサービス時間を超えて接続し続けているクライアント30の接続先をベストエフォート回線42に切り替えることができる。従って、複数のクライアント30間で実質的には公平に品質保証回線に接続することができる。
本実施形態の通信システム1によれば、品質保証回線41に空きがない場合には、接続要求を送信したクライアント30の接続先をベストエフォート回線42のままで維持した状態で、品質保証回線41に空きが出るのを待つことができる。従って、クライアント30に対する通信の断絶を防ぎつつ、品質保証回線41を適切に割り当てることができる。
尚、上述の説明では、ルータ20自身が図4、図7及び図8に示す各種処理(つまり、品質保証回線41の割り当て処理)を行っている。しかしながら、ルータ20とは別個独立した任意の制御サーバ等を通信システムに導入し、当該制御装置が図4、図7及び図8に示す各種処理(つまり、品質保証回線41の割り当て処理)を行うと共にその処理の結果導かれる態様でルータ20が動作するようにルータ20を制御してもよい。
以上説明した実施形態に関して、更に以下の付記を開示する。
(付記1)
端末の接続先として、第1回線及び当該第1回線よりも通信品質保証の優先度が低い第2回線のいずれかを割り当てる通信装置であって、
前記端末から前記第1回線への切替要求が行われた場合に、前記第1回線に接続中の端末の数である現在接続数が前記第1回線に接続可能な端末の上限数を超えているか否かを判定する判定手段と、
前記現在接続数が前記上限数を超えている場合には、前記第1回線に接続中の端末のうちの少なくとも一つの端末の前記第1回線への接続を切断した後に、切替要求を行った前記端末の接続先として前記第1回線を割り当てる制御手段と
を備えることを特徴とする通信装置。
(付記2)
前記制御手段は、前記第1回線に接続中の端末のうち前記第1回線への接続時間が所定の閾値時間以上となる少なくとも一つの端末の前記第1回線への接続を切断した後に、切替要求を行った前記端末の接続先として前記第1回線を割り当てることを特徴とする付記1に記載の通信装置。
(付記3)
前記制御手段は、前記接続時間が前記閾値時間以上となる端末が存在しない場合には、切替要求を行った前記端末の接続先として前記第2回線を一旦割り当てることを特徴とする付記2に記載の通信装置。
(付記4)
前記制御手段は、切替要求を行った前記端末の接続先として前記第2回線を一旦割り当てた後、前記現在接続数が前記上限数を超えなくなった時点で、切替要求を行った前記端末の接続先を、前記第2回線から前記第1回線に切り替えることを特徴とする付記3に記載の通信装置。
(付記5)
前記制御手段は、切替要求を行った前記端末の接続先として前記第2回線を一旦割り当てた後、(i)前記第1回線に接続中の端末のうち前記接続時間が前記閾値時間以上となる少なくとも一つの端末の接続先を前記第1回線から前記第2回線に切り替えた時点又は(ii) 前記第1回線に接続中の端末が前記第1回線への接続を切断した時点で、切替要求を行った前記端末の接続先を、前記第2回線から前記第1回線に切り替えることを特徴とする付記4に記載の通信装置。
(付記6)
前記制御手段は、前記第1回線に接続中の端末のうち前記第1回線への接続時間が相対的に長い少なくとも一つの端末の接続先を前記第1回線から前記第2回線に切り替えた後に、切替要求を行った前記端末の接続先として前記第1回線を割り当てることを特徴とする付記1から5のいずれか一項に記載の通信装置。
(付記7)
前記制御手段は、前記切替要求を行った端末が複数存在する場合には、切替要求を行った前記複数の端末のうち所定の基準に応じて定められる優先度が相対的に高い端末の接続先として前記第1回線を割り当てることを特徴とする付記1から6のいずれか一項に記載の通信装置。
(付記8)
前記制御手段は、前記切替要求を行った端末が複数存在する場合には、切替要求を行った前記複数の端末のうち切替要求を行ってからの待ち時間が相対的に長い端末の接続先として前記第1回線を割り当てることを特徴とする付記7に記載の通信装置。
(付記9)
前記制御手段は、前記現在接続数が前記上限数を超えている場合には、前記第1回線に接続中の端末のうちの少なくとも一つの端末の接続先を前記第1回線から前記第2回線へと切り替えた後に、切替要求を行った前記端末の接続先として前記第1回線を割り当てることを特徴とする付記1から8のいずれか一項に記載の通信装置。
(付記10)
端末の接続先として、第1回線及び当該第1回線よりも通信品質保証の優先度が低い第2回線のいずれかを割り当てる通信方法であって、
前記端末から前記第1回線への切替要求が行われた場合に、前記第1回線に接続中の端末の数である現在接続数が前記第1回線に接続可能な端末の上限数を超えているか否かを判定する判定工程と、
前記現在接続数が前記上限数を超えている場合には、前記第1回線に接続中の端末のうちの少なくとも一つの端末の前記第1回線への接続を切断した後に、切替要求を行った前記端末の接続先として前記第1回線を割り当てる制御工程と
を備えることを特徴とする通信方法。
(付記11)
端末の接続先として、第1回線及び当該第1回線よりも通信品質保証の優先度が低い第2回線のいずれかを割り当てる通信装置を制御する制御装置であって、
前記端末から前記第1回線への切替要求が行われた場合に、前記第1回線に接続中の端末の数である現在接続数が前記第1回線に接続可能な端末の上限数を超えているか否かを判定する判定手段と、
前記現在接続数が前記上限数を超えている場合には、前記第1回線に接続中の端末のうちの少なくとも一つの端末の前記第1回線への接続を切断した後に、切替要求を行った前記端末の接続先として前記第1回線を割り当てる制御手段と
を備えることを特徴とする制御装置。
本発明は、上述した実施形態に限られるものではなく、請求の範囲及び明細書全体から読み取れる発明の要旨或いは思想に反しない範囲で適宜変更可能であり、そのような変更を伴う通信装置及び方法、並びに制御装置もまた本発明の技術的範囲に含まれるものである。