<第1実施形態>
[ネットワーク構成]
図1は、本実施形態における通信装置としてのルータ100を含んで構築されるネットワーク構成の一例を示している。この図に示すルータ100は、複数の端末装置5および電話機6とともに例えば家屋やビルディングなどの建物1内に設置される。建物1において、ルータ100は、有線によるLAN(Local Area Network)回線2を介して複数の端末装置5と接続されている。また、無線LAN回線3を介して複数の端末装置5と接続されている。また、ルータ100は、WAN(Wide Area Network)4を介して建物1外部のネットワーク(例えばインターネット)上の端末装置5と接続される。
ルータ100は、上記LAN回線2、無線LAN回線3およびWAN4の通信網の間で送受信されるパケット形式のデータを中継する。また、ルータ100はIP(Internet Protocol)電話機能を備えており、電話機6と上記LAN回線2無線LAN回線3およびWAN4のいずれかを経由して接続される他の電話機(図1においては図示せず)とIP電話対応の通信を行う。なお、図1に示されるネットワーク構成例は、以降説明する第1〜第3実施形態において共通でよい。
本実施形態に係るルータ100は、CPU101にかかる処理負荷に応じて、優先制御対象として予めきめられた対象について優先制御を実行するものである。
具体的に説明すると、ルータ100は、優先制御対象に対応するパケットについては、このパケットに含まれるTOS値に優先度が高いことを示す情報を書き込み、優先制御対象以外の非優先制御対象に対応するパケットについては、この優先制御対象に設定する優先度よりも低い優先度であることを示す情報を書き込む。例えば、全てのパケットについて、優先度が低いことを示す情報を書き込んでおき、優先制御対象についてのみ、設定されている優先度よりも高い優先度を示す情報を書き込むことにより、実現するものであってもよい。
ルータ100は、このようにして、書き込まれた優先度に基づき、パケットを伝送することにより、結果的に、優先制御対象以外の非優先制御対象についてのパケットの伝送よりも、優先制御対象についてのパケットの伝送を優先することができる。
本実施形態において、優先制御対象としては、予め決められた端末装置を設定することができる。このように、優先制御対象として設定された端末装置へのパケット伝送についての優先制御を、以下、端末優先制御という。一方、後述する第2実施形態において、優先制御対象としては、予め決められたアプリケーションを設定することができる。このように、優先制御対象として設定されたアプリケーションに対応するパケット伝送についての優先制御を、以下、アプリケーション優先制御という。
[ルータの構成]
図2は、ルータ100の構成例を示している。ルータ100は、CPU(Central Processing Unit:中央処理装置)101、RAM102、記憶部103、LAN対応通信部104、無線LAN対応通信部105、ブリッジ部106、WAN対応通信部107、VoIP制御部108、電話機端子109、ルーティング部110、操作部111および優先度設定部250を備える。
CPU101は、記憶部103に記憶されるプログラムを実行することによりルータ100における各部の制御および各種演算を行い、これによってルータ100としての各種機能を実現する。
RAM102は、主記憶装置として機能するもので、CPU101が実行すべきプログラムが記憶部103から読み出されて展開される。また、RAM102は、CPU101が演算処理を実行する際の作業領域として使用される。
記憶部103は、補助記憶装置として機能するもので、CPU101により実行されるプログラムや各種データを格納する。なお、この記憶部103には、例えばハードディスクやフラッシュメモリなどの半導体記憶装置を採用することができる。この記憶部103は、優先制御対象として予め決められた端末装置5を示す情報(端末登録情報)を記憶する端末登録情報記憶領域131と、優先制御の実行の可否を判定するための閾値を記憶する閾値記憶領域132と、優先制御対象として予め決められたアプリケーション種別を示す情報(アプリケーション種別登録情報)を記憶するアプリケーション種別登録情報記憶領域133と、を備える。
LAN対応通信部104は、所定のLAN規格(本実施形態ではイーサネット(登録商標、以下省略)を想定する)に対応した通信を実行する。無線LAN対応通信部105は、所定の無線LAN規格に対応した通信を実行する。ブリッジ部106は、有線のLAN対応通信部104に対応するイーサネットフレームと、無線LAN対応通信部105に対応する無線LANフレーム(例えば、IEEE802.11フレーム)との間で相互変換を行う。WAN対応通信部107は、WAN4経由によるネットワークの通信を実行する。
VoIP制御部108は、VoIP(Voice over Internet Protocol)に対応する所定の通信プロトコルにしたがって、音声信号とIPパケットの間で相互変換を実行する。つまり、VoIP制御部108は、ルーティング部110から入力される受話音声を格納したパケットを音声信号に変換して電話機端子109に供給する。電話機端子109には図1に示した電話機6が接続されており、電話機6はVoIP制御部108から電話機端子109を介して出力される音声信号を受話音声として再生する。また、VoIP制御部108は、電話機6から電話機端子109を介して入力された送話音声信号をIPパケットに変換してルーティング部110に転送する。なお、本実施形態において、VoIP制御部108が対応する通信プロトコルとして、セッション確立についてはSIP(Session Initiation Protocol)を採用し、音声の送受信にはRTP(Real-time Transport Protocol)を採用するものとする。
ルーティング部110は、LAN対応通信部104(ブリッジ部106経由)、無線LAN対応通信部105(ブリッジ部106経由)、WAN対応通信部107およびVoIP制御部108の間で転送されるパケットのルーティングを実行する部位である。
なお、本実施形態において、ルーティング部110はIPパケットを対象にルーティングを行うものとする。そのうえで、以下のようにフレーム変換を行う。つまり、ルーティング部110は、LAN対応通信部104または無線LAN対応通信部105にIPパケットを転送する際には、当該IPパケットをイーサネットフレーム(MACフレーム)に格納する。ブリッジ部106は、ルーティング部110から転送されたイーサネットフレームが無線LAN対応通信部105経由で送信されるIPパケットを格納する場合、無線LANフレームに変換して無線LAN対応通信部105に転送する。また、ルーティング部110は、WAN対応通信部107にIPパケットを転送する際には、当該IPパケットをWAN4の方式に対応したPPP(Point to Point Protocol)フレームにIPパケットを格納する。また、VoIP制御部108にIPパケットを転送する際には、VoIPに対応したPPPフレームにIPパケットを格納する。
操作部111は、ユーザが操作を行うためにルータ100に備えられる操作子を一括して示している。また、本実施形態のルータ100は、LAN回線2、無線LAN3などを介して接続された端末装置5からのリモートコントロールにより各種設定などを行うことが可能とされている。つまり、ユーザは、端末装置5上で動作させたルータ設定用アプリケーションに対してルータ100に対する各種設定のための操作を行う。この操作に応じて、ルータ設定用アプリケーションはルータ100にアクセスし、ルータ100における各種設定処理を実行する。本実施形態の操作部111は、このようなユーザ操作に応じたルータ設定用アプリケーションからのアクセスを受け付ける機能も含むものとする。なお、優先度設定部250については、以下の端末優先度設定制御の説明において、当該端末優先度設定制御に対応する部位の1つとして説明する。
[第1実施形態の端末優先度設定制御に対応する構成例]
第1実施形態のルータ100は、ユーザ操作により登録された端末装置5のパケットの優先度を高く設定してルーティング部110に送出させる、「端末優先度設定制御」を実行する。図2を再度参照して、第1実施形態に対応する端末優先度設定制御のための構成について説明する。
図2のCPU101においては、第1実施形態の端末優先度設定制御に関する機能部として、優先制御管理部201が示される。優先制御管理部201は、端末優先度設定制御に対応して端末を管理し、登録部210、CPU使用率算出部220および端末対応判定部230を備える。なお、登録部210、CPU使用率算出部220および端末対応判定部230としての各機能部の動作は、CPU101がプログラムを実行することにより実現される。また、同じ優先制御管理部201において示されるアプリケーション種別対応判定部240は、後述の第2実施形態に対応する機能部であるため、ここでの説明は省略する。
また、図2においては、記憶部103が記憶するデータのうち、第1実施形態の端末優先度設定制御のためにCPU101が利用するデータとして、端末登録情報記憶領域131および閾値th10が示される。なお、アプリケーション種別登録情報記憶領域133については後述の第2実施形態において利用することからここでの説明は省略する。
登録部210(端末登録部)は、ユーザが操作部111に対して行った所定操作により端末優先度設定制御対象として指定した端末装置5の識別子を端末登録情報記憶領域131として記憶部103に登録する。ここでは、端末登録情報記憶領域131として登録される端末装置5の識別子はMAC(Media Access Control)アドレスであることとする。
なお、端末登録情報記憶領域131をユーザが変更するにあたっては、端末優先度設定制御の対象とする端末装置5の「登録無し」を設定することも可能とされている。この場合には、例えば端末登録情報記憶領域131には、MACアドレスに代えて「登録無し」を示す所定値が格納される。
CPU使用率算出部220は、CPU101についての「CPU使用率」を算出する。このCPU使用率は、CPU101による処理負荷の程度状態を示す。一具体例として、CPU101の状態は、処理の実行によりCPUが占有される占有状態と、処理を実行していない待機状態とに分けられる。CPU使用率は、単位時間における占有状態の時間の比率として表される。CPU使用率が0%の場合には、何も処理が実行されずに待機状態が維持されており、CPU101の負荷が最も軽い状態であることを示す。これに対して、CPU使用率が100%の場合には、上記単位時間において継続して処理が実行されており、CPU101の負荷が最も重い状態であることを示す。
なお、CPU使用率算出部220によるCPU使用率の算出には、例えばスレッドの処理時間などに基づいてCPU使用率を算出するなどの手法を採用できる。また、CPU使用率算出部220は、予め定められた最大パケット転送量に対する現時点におけるパケット転送量の比率によりCPU使用率を求めることもできる。このように、CPU使用率の算出手法については特に限定されるものではない。
端末対応判定部(判定部)230は、CPU使用率算出部220により算出されたCPU使用率と、記憶部103に記憶される閾値th10とを比較し、この比較結果に基づいて、端末登録情報記憶領域131に登録された端末装置5を対象とする端末優先度設定制御を実行するか否かを判定する。閾値th10は、端末優先度設定制御の実行可否を判定するために予め設定される値である。
なお、この閾値th10は、予め固定的に設定されるものであってもよいし、ユーザにより任意の値が設定されるものであってもよい。ユーザによる設定が可能であれば、実際のCPU使用率に応じたルータ100の動作速度やトラフィックの傾向などを考慮して最適とされる閾値を設定することが可能となる。
端末対応判定部230は、算出されたCPU使用率が閾値th10未満である場合、つまり、CPU負荷が軽いと判定される状態においては、端末優先度設定制御を実行しないと判定する。これに対して、算出されたCPU使用率が閾値th10以上である場合、つまり、CPU負荷が重いと判定される状態においては、端末優先度設定制御を実行すると判定する。
例えば、本実施形態によらないルータにおいては、設定された優先制御対象についての優先度設定制御を定常的に実行させるという構成を採ることも考えられる。しかし、CPU使用率が一定以下の状態においては、CPU101にかかる処理負荷が軽いため、優先度設定制御を行わなくとも通信品質を明らかに低下させるようなパケット廃棄は生じないと想定できる。このような状態にも係わらず優先度設定制御を実行させると、この優先度設定制御自体によりかえってCPUの負荷を不用意に重くしてしまう可能性がある。そこで、本実施形態に係るルータ100は、CPU負荷が重いと判定される状態、つまり、CPU使用率が閾値th10以上となる状態のときにのみ、端末優先度設定制御を行うこととしている。
優先度設定部250は、上述の端末対応判定部230による端末優先度設定制御の実行可否の判定結果に応じて端末優先度設定制御を実行する。つまり、端末対応判定部230は、端末優先度設定制御を実行すべきと判定した場合に、優先度設定部250に対して、端末登録情報記憶領域131に登録されているMACアドレスを示す情報とともに端末優先度設定要求を示す情報を送信する。この端末対応判定部230からの端末優先度設定要求に応じて、優先度設定部250は、端末優先度設定制御を実行するための設定登録を行う。つまり、優先度設定部250は、優先度設定制御要求とともに入力MACアドレスをルーティング部110の内部のレジスタ251に書き込み、登録する。そのうえで、優先度設定部250は、ルーティング部110が入力するフレームを監視する。
例えば、優先度設定部250は、受信したフレームがレジスタ251に登録したMACアドレスの端末装置5から送信されたフレームである場合、このフレーム内のIPパケットが格納するTOS(Type Of Service)値を、高優先度を示す所定値に書き換える。一方、優先度設定部250は、受信したフレームがレジスタ251に登録したMACアドレスの端末装置5から送信されたフレームでない場合、このフレーム内のIPパケットが格納するTOS値を書き換えない。なお、TOS値は、IPヘッダの所定位置に配置される8ビットのフィールドである。
ルーティング部110は、TOS値のフィールドが示す優先度にしたがってパケットを送出する優先制御を実行するようにされている。したがって、上記のように、優先度設定部250が優先制御対象についてのフレームのTOS値を高優先度を示す値に書き換えることによって、ルーティング部110は、この書き換え後のTOS値が示す優先度にしたがって、端末登録情報記憶領域131に登録されている端末装置5のパケットを優先して送信する。つまり、本実施形態の端末優先度設定制御が実行される。
これに対して、端末優先度設定制御を実行すべきではないと端末対応判定部230により判定された場合、優先度設定部250は、優先度制御対象に対するTOS値の書き換えは行わない。これにより、ルーティング部110は、端末装置5におけるパケット生成時に格納されたままのTOS値にしたがった優先度により端末装置5のパケットを送信する。つまり、本実施形態の端末優先度設定制御は実行されない。
なお、本実施形態におけるTOS値による優先制御は、IP Precedenceによるものであってもよいし、DSCP(Differentiated Services Code Point)によるものであってもよい。
また、端末対応判定部230は、端末優先度設定制御を実行すべきでないと判定した場合、優先度設定部250に対して端末優先度設定停止要求を行う。優先度設定部250は、この端末優先度設定停止要求に応じて、レジスタ251に登録してあるMACアドレスを消去する。これにより、優先度設定部250は、TOS値を書き換えなくなり、端末優先度設定制御が停止される。
[端末対応判定のための処理手順例]
図3のフローチャートは、第1実施形態としての端末優先度設定制御に対応して登録部210および端末対応判定部230が実行する処理手順例を示している。登録部210は、前述のようにユーザによる端末登録情報記憶領域131の登録内容変更のための操作が行われたか否かについて判定する(ステップS101)。
ここで、登録内容変更のための操作は行われていないと判定した場合(ステップS101−NO)、登録部210は、ステップS102〜S104の処理をスキップする。これに対して、登録内容変更のための操作が行われたと判定した場合(ステップS101−YES)、登録部210は、変更された登録内容が反映されるように端末登録情報記憶領域131を更新する(ステップS102)。つまり、新たにMACアドレスを設定するように登録内容が変更された場合、この設定されたMACアドレスを示す端末登録情報記憶領域131を記憶部103に記憶させる。また、「登録無し」に登録内容が変更された場合、「登録無し」を示す端末登録情報記憶領域131を記憶部103に記憶させる。
次に、端末対応判定部230は、変更後の端末登録情報記憶領域131を読み込み(ステップS103)、この読み込んだ端末登録情報記憶領域131においてMACアドレスが登録されているか否かについて判定する。(ステップS104)。
MACアドレスが登録されていると判定した場合(ステップS104−YES)、端末対応判定部230は、CPU使用率算出部220からCPU使用率を取得し(ステップS105)、CPU使用率が閾値th10以上であるか否かについて判定する(ステップS106)。
CPU使用率が閾値th10以上であると判定した場合(ステップS106−YES)、端末対応判定部230は、優先度設定部250に対して、端末優先度設定要求を送信し(ステップS107)、ステップS101に戻る。なお、この端末優先度設定要求の送信に際して、端末対応判定部230は、端末登録情報記憶領域131の記憶領域に登録されているMACアドレスを優先度設定部250に対して出力する。
これに対して、CPU使用率が閾値th10未満であると判定した場合(ステップS106−NO)、端末対応判定部230は、現在において優先度設定部250が端末優先度設定制御を実行中であるか否かについて判定する(ステップS108)。つまり、端末対応判定部230は、例えばRAM102を参照し、優先度設定部250が端末優先度設定制御を実行中であることを示すフラグ情報がRAM102に記憶してある場合、現在において優先度設定部250が端末優先度設定制御を実行中であると判定する。
また、先のステップS104において端末登録情報記憶領域131においてMACアドレスが登録されていないと判定した場合にも上記ステップS108による判定を実行する。このステップS108としては、例えば優先度設定部250に対して最後に送信した要求が端末優先度設定要求と端末優先度設定停止要求のいずれであるのかを判定するものであってもよい。あるいは、優先度設定部250に現在の状態を問い合わせて、この問い合わせに対する応答に基づいて判定するようにしてもよい。
端末優先度設定制御を実行中ではないと判定した場合(ステップS108−NO)、端末対応判定部230は、そのままステップS101に戻る。これに対して、端末優先度設定制御を実行中であると判定した場合(ステップS108−YES)、端末対応判定部230は、この実行中の端末優先度設定制御を停止させるため、優先度設定部250に対して端末優先度設定停止要求を送信し(ステップS109)、ステップS101に戻る。
このような処理によって、端末対応判定部230は、端末登録情報記憶領域131に制御対象の端末装置5のMACアドレスが登録されている場合には、CPU使用率に応じて、端末優先度設定制御の実行可否を優先度設定部250に対して設定することができる。また、端末対応判定部230は、端末登録情報記憶領域131において制御対象となる端末装置5のMACアドレスが登録されていない場合には、優先度設定部250に対して端末優先度設定制御の実行させないようにする設定することができる。
[優先度設定部の処理手順例]
図4のフローチャートは、第1実施形態としての端末優先度設定制御に対応して優先度設定部250が実行する処理手順例を示している。
優先度設定部250は、端末対応判定部230から送信される端末優先度設定要求が受信されたか否かについて判別している(ステップS201)。
端末優先度設定要求が受信されていないと判定した場合(ステップS201−NO)、優先度設定部250は、ステップS202をスキップする。これに対して、端末優先度設定要求が受信されたと判定した場合(ステップS201−YES)、優先度設定部250は、図3のステップS107により端末対応判定部230から端末優先度設定要求とともに転送されたMACアドレスを内部のレジスタ251に登録する(ステップS202)。
また、優先度設定部250は、端末優先度設定停止要求が受信されたか否かについて判別しており(ステップS203)、端末優先度設定停止要求を受信していないと判定した場合には(ステップS203−NO)、ステップS204をスキップする。これに対して、端末優先度設定停止要求が受信されたことを判定した場合には(ステップS203−YES)、レジスタ251に登録していたMACアドレスを消去する(ステップS204)。
次に、優先度設定部250は、現在においてレジスタ251にMACアドレスが登録されているか否かについて判定する(ステップS205)。MACアドレスが登録されていないと判定した場合(ステップS205−NO)、優先度設定部250はステップS201に戻る。つまり、優先度設定部250は、端末優先度設定制御を実行するため、優先制御対象を示す情報を登録する処理を実行しない。
これに対して、MACアドレスが登録されていると判定した場合(ステップS205−YES)、優先度設定部250は、さらに、ルーティング部110において、優先制御対象のパケットが受信されたか否かについて判定する(ステップS206)。この場合の優先制御対象パケットとは、付加されたフレームヘッダの送信元MACアドレスのフィールドにおいて、レジスタ251に登録されているMACアドレスと同じMACアドレスが格納されているパケットをいう。つまり、端末優先度設定制御対象の端末装置5から送信されたパケットであるである。
優先制御対象パケットを受信していないと判定した場合(ステップS206−NO)、優先度設定部250は、ステップS201に戻る。
これに対して、優先制御対象パケットを受信したと判定した場合(ステップS206−NO)、優先度設定部250は、この優先制御対象パケットが格納するTOS値について、予め決められている高優先度を設定するためにTOS値を書き換え(ステップS207)、ステップS201に戻る。この高優先度を設定するためのTOS値は、予めパケットに格納されているTOS値に書き込まれている値が示す優先度よりも高い優先度となる値が決められており、優先度設定部250のレジスタ251に登録されている。
このような処理により、優先度設定部250は、CPU101の処理負荷が高い場合に、端末優先度設定要求に応じて、ユーザにより制御対象として指定された端末装置5の送信パケットを優先して転送する。
これまでの説明から理解できるように、第1実施形態では、優先制御対象として指定された端末装置5が送信するIPパケットを優先して転送するという端末優先度設定制御を実行することができる。そのうえで、第1実施形態においては、CPU使用率に応じて端末優先度設定制御の実行可否を決定可能とされている。これにより、CPU使用率が低くCPU101の処理負荷が軽いとされる状態においては不要な優先制御処理を実行しないようにすることが可能となり、CPUの処理能力を効率よく発揮させることができる。
さらに、第1実施形態においては、端末優先度設定制御の対象とする端末装置5をユーザにより変更可能とされている。これにより、ユーザは、ネットワークを利用する際の状況や都合に応じて端末装置5を指定して、そのパケットを優先的に転送させることが可能になる。
なお、上記第1実施形態における端末優先度設定制御では、優先制御対象として、端末登録情報記憶領域131の記憶領域に登録されたMACアドレスの端末装置5が送信するパケットに高優先度を与えるように優先度設定を行うこととしている。しかし、本発明はこれに限られず、優先制御対象として、登録されたMACアドレスの端末装置5が受信するパケットに高優先度を与えるように優先度設定を行うものであってもよい。この場合、優先度設定部250は、フレームの宛先MACアドレスのフィールドに、レジスタ251に登録されているMACアドレスと同じMACアドレスを格納するパケットに格納されたTOS値を書き換える。
さらに、これに限られず、端末登録情報記憶領域131の記憶領域に登録されているMACアドレスの端末装置5が送信するパケットと、この端末装置5が受信するパケットの両者に高優先度を与えるように優先度設定を行ってもよい。
これにより、例えば、端末装置5の一例である端末装置51のMACアドレスが優先制御対象として端末登録情報記憶領域131に登録されている場合、本実施形態に係るルータ100は、CPU使用率が閾値th10以上である場合に、この端末装置51についてのパケットの送受信を優先するように、パケットに含まれる優先度を示す情報を高優先度に書き換える。つまり、高く設定された優先度に従って、送受信を優先する優先制御を実行する。一方、優先制御対象でない端末装置5の一例である端末装置52については、CPU使用率の値に関わらず、ルータ100は、優先度を書き換える処理はしない。つまり、優先制御における優先度をより高優先度に変更するような制御は実行しない。これにより、ルータ100は、CPU使用率に応じて、優先制御対象についてのパケットについては優先度をより高い優先度にするよう設定を変更することができる。
<第2実施形態>
[ルータの構成]
続いて、本発明に係る第1実施形態と異なる第2実施形態について説明する。第2実施形態は、予め登録されたアプリケーション種別に対応するパケットを受信した場合には、そのパケットの優先度を高く設定してルーティング部110に送信させるという制御を実行する。このような第2実施形態におけるアプリケーション種別に基づく優先度設定制御を「アプリケーション優先度設定制御」という。
なお、ここでのアプリケーション種別とは、IPパケットに格納されるデータを利用するアプリケーションを示すものであり、TCP(Transmission Control Protocol)ヘッダまたはUDP(User Datagram Protocol)ヘッダのポート番号に相当する。また、これに応じて、第2実施形態においては、優先して転送すべきパケットのアプリケーション種別をユーザが任意に設定し、記憶部103のアプリケーション種別登録情報記憶領域133に登録できるようにする。
図2を再度参照して、第2実施形態に対応するルータ100の構成例について説明する。第2実施形態においては、CPU101における機能部として、アプリケーション種別対応判定部(判定部)240を備える。また、記憶部103においてアプリケーション種別対応判定部240が利用するデータとしてアプリケーション種別登録情報記憶領域133を備える。
第2実施形態において、登録部210(アプリケーション種別登録部)は、ユーザが登録した優先制御対象であるアプリケーション種別をアプリケーション種別登録情報記憶領域133として記憶部103に登録する。アプリケーション種別登録情報記憶領域133におけるアプリケーション種別は、例えばTCPヘッダまたはUDPヘッダにおけるポート番号の定義により示されるものとする。
なお、ユーザによるアプリケーション種別登録情報記憶領域133の更新は、端末登録情報記憶領域131を登録する場合と同様に、操作部111に対する操作により行えるものとする。この操作により、ユーザは任意のアプリケーション種別(ポート番号)を変更設定することができる。そして、この操作に応じて、登録部210は、ユーザが設定したアプリケーション種別(ポート番号)が示されるようにアプリケーション種別登録情報記憶領域133を更新する。また、アプリケーション種別登録情報記憶領域133についても「登録無し」を設定することが可能とされている。第2実施形態における登録部210は、特許請求の範囲に記載のアプリケーション種別登録部に相当する。
アプリケーション種別対応判定部240は、上記のようにアプリケーション種別登録情報記憶領域133の記憶領域にアプリケーション種別が登録されている場合には、この登録されているアプリケーション種別を示す情報を、優先度設定部250に対して送信する。
優先度設定部250は、受信したアプリケーション種別を示す情報をレジスタ251に書き込み、登録する。そして、レジスタ251に登録したアプリケーション種別と同じアプリケーション種別を示す情報を格納するパケットに対して、当該パケットに格納されている優先度(TOS値)を示す情報をその優先度が高くなるような値に書き換えて、ルーティング部110に出力する。このルーティング部110は、優先度設定部250により書き換えられた優先度(TOS値)を示す情報に従って、パケットを送信する。これにより、本実施形態に係るアプリケーション優先度設定制御が実行される。
[アプリケーション種別対応判定のための処理手順例]
図5のフローチャートは、アプリケーション優先度設定制御に対応して登録部210およびアプリケーション種別対応判定部240が実行する処理手順例を示している。
登録部210は、ユーザによるアプリケーション種別登録情報記憶領域133の登録内容変更のための操作が行われたか否かについて判定する(ステップS301)。
ここで、登録内容変更のための操作は行われていないと判定した場合(ステップS301−NO)、登録部210は、ステップS302〜S304の処理をスキップする。これに対して、登録内容変更のための操作が行われたと判定した場合(ステップS301−YES)、登録部210は、変更された登録内容が反映されるようにアプリケーション種別登録情報記憶領域133を更新する(ステップS302)。つまり、新たなアプリケーション種別が示されるように登録内容が変更された場合、このアプリケーション種別を示すアプリケーション種別登録情報記憶領域133を記憶部103に書き込み、登録する。また、「登録無し」に登録内容が変更された場合、「登録無し」を示すアプリケーション種別登録情報記憶領域133を記憶部103に書き込み、登録する。なお、「登録無し」の場合、アプリケーション種別登録情報記憶領域133として、いずれの情報も書き込まず、書き込まれている情報がある場合消去するという処理を登録部210が実行するものであってもよい。
次に、アプリケーション種別対応判定部240は、変更後のアプリケーション種別登録情報記憶領域133を読み込み(ステップS303)、この読み込んだアプリケーション種別登録情報記憶領域133においてアプリケーション種別が登録されているか否かについて判定する。(ステップS304)。
アプリケーション種別が登録されていると判定した場合(ステップS304−YES)、アプリケーション種別対応判定部240は、CPU使用率算出部220からCPU使用率を取得し(ステップS305)、CPU使用率が閾値th10以上であるか否かについて判定する(ステップS306)。
CPU使用率が閾値th10以上であると判定した場合(ステップS306−YES)、アプリケーション種別対応判定部240は、優先度設定部250に対して、アプリケーション優先度設定要求を送信し(ステップS307)、ステップS301に戻る。なお、このアプリケーション優先度設定要求の送信に際して、アプリケーション種別対応判定部240は、アプリケーション種別登録情報記憶領域133の記憶領域に登録されているアプリケーション種別を示す情報を優先度設定部250に対して出力する。
これに対して、CPU使用率が閾値th10未満であると判定した場合(ステップS306−NO)、アプリケーション種別対応判定部240は、現在において優先度設定部250がアプリケーション優先度設定制御を実行中であるか否かについて判定する(ステップS308)。つまり、端末対応判定部230は、例えばRAM102を参照し、優先度設定部250がアプリケーション優先度設定制御を実行中であることを示すフラグ情報がRAM102に記憶してある場合、現在において優先度設定部250がアプリケーション優先度設定制御を実行中であると判定する。
また、先のステップS304においてアプリケーション種別登録情報記憶領域133においてアプリケーション種別が登録されていないと判定した場合にも上記ステップS308による判定を実行する。
アプリケーション優先度設定制御を実行中ではないと判定した場合(ステップS308−NO)、アプリケーション種別対応判定部240は、そのままステップS301に戻る。これに対して、アプリケーション優先度設定制御を実行中であると判定した場合(ステップS308−YES)、アプリケーション種別対応判定部240は、この実行中のアプリケーション優先度設定制御を停止させるため、優先度設定部250に対してアプリケーション優先度設定停止要求を送信し(ステップS309)、ステップS301に戻る。
[優先度設定部の処理手順例]
図6のフローチャートは、第2実施形態のアプリケーション優先度設定制御に対応して優先度設定部250が実行する処理手順例を示している。
優先度設定部250は、端末対応判定部230から送信されるアプリケーション優先度設定要求が受信されたか否かについて判別している(ステップS401)。アプリケーション優先度設定要求を受信していないと判定した場合(ステップS401−NO)、優先度設定部250は、ステップS402をスキップする。これに対して、アプリケーション優先度設定要求を受信したと判定した場合、優先度設定部250は、先のステップS305によりアプリケーション種別対応判定部240からアプリケーション優先度設定要求とともに転送されたアプリケーション種別(ポート番号)を内部のレジスタ251に登録する(ステップS402)。なお、アプリケーション種別対応判定部240は、アプリケーション種別登録情報記憶領域133から読み出したアプリケーション種別を示す情報を優先度設定部250に送信する。
また、優先度設定部250は、アプリケーション優先度設定停止要求が受信されたか否かについて判別しており(ステップS403)、アプリケーション優先度設定停止要求を受信していないと判定した場合には(ステップS403−NO)、ステップS404をスキップする。これに対して、アプリケーション優先度設定停止要求が受信されたことを判定した場合には(ステップS403−YES)、レジスタ251に登録していたアプリケーション種別を消去する(ステップS404)。
次に、優先度設定部250は、現在において内部のレジスタ251にアプリケーション種別が登録されているか否かについて判定する(ステップS405)。アプリケーション種別が登録されていないと判定した場合(ステップS405−NO)、優先度設定部250はステップS401に戻る。つまり、優先度設定部250は、アプリケーション優先度設定制御を実行するため、優先制御対象を示す情報を登録する処理を実行しない。よってり、アプリケーション種別登録情報記憶領域133においてアプリケーション種別の「登録無し」の状態であるのに応じて、アプリケーション優先度設定制御が実行されないように動作することができる。
これに対して、内部のレジスタ251にアプリケーション種別が登録されていると判定した場合(ステップS405−YES)、優先度設定部250は、さらに、ルーティング部110にて、レジスタ251に登録されているアプリケーション種別と同じアプリケーション種別のフィールドが格納されたパケットが受信されたか否かについて判定する(ステップS406)。
レジスタ251に登録されているアプリケーション種別と同じアプリケーション種別のフィールドが格納されたパケットが受信されていないと判定した場合(ステップS406−NO)、優先度設定部250は、ステップS401に戻る。これに対して、レジスタ251に登録されているアプリケーション種別と同じアプリケーション種別のフィールドが格納されたパケットが受信されたと判定した場合(ステップS406−NO)、優先度設定部250は、このパケットが格納するTOS値について、予め決められている高優先度を設定するためにTOS値を書き換え(ステップS407)、ステップS401に戻る。この高優先度を設定するためのTOS値は、予めパケットに格納されているTOS値に書き込まれている値が示す優先度よりも高い優先度となる値が決められており、優先度設定部250のレジスタ251に登録されている。
このような処理によって、第2実施形態においては、優先度設定部250は、CPU101の処理負荷が高い場合に、優先制御対象として登録されたアプリケーション種別に対応するパケットを優先して転送するという制御が実行される。具体例として、IP電話の通信について高い品質を維持したい場合には、IP電話に対応するSIPやRTPなどを示すアプリケーション種別(ポート番号)をアプリケーション種別登録情報記憶領域133に登録する。これにより、IP電話通信のためのパケットが優先して転送されることになり、高い通話品質が維持される。また、ユーザがDHCP(Dynamic Host Configuration Protocol)の通信を重視しているのであれば、DHCPを示すアプリケーション種別(ポート番号)をアプリケーション種別登録情報記憶領域133に登録すればよい。これにより、DHCPのための通信が確実に実行される確率が高くなる。
なお、第2実施形態のアプリケーション優先度設定制御は、先の第1実施形態の端末優先度設定制御と組み合わせることができる。このようにアプリケーション優先度設定制御と端末優先度設定制御を併用するにあたっては、それぞれの制御が個別に実行されるようにしてもよい。また、一例として、端末優先度設定制御の対象として登録された端末装置5が、アプリケーション優先度設定制御の対象として登録されたアプリケーションのパケットの通信を行う際において、CPU使用率が閾値th10以上となった場合に高優先度を設定するという構成も考えることができる。
<第3実施形態>
[端末登録情報の構造]
続いて、第3実施形態について説明する。第3実施形態におけるルータ100の構成は、第1実施形態と同様となる。ただし、第3実施形態は、優先して転送すべきパケットの送信元となる端末装置5と、優先して転送すべきパケットの宛先となる端末装置5をそれぞれ個別に設定して端末優先度設定制御を行う。これに応じて、端末登録情報記憶領域131は、送信元と宛先の端末装置をそれぞれ個別に登録することができる。
図7は、第3実施形態における端末登録情報記憶領域131の構造例を示している。この図に示す端末登録情報記憶領域131は、送信元MACアドレスM11と宛先MACアドレスM12を格納する領域を備えた構造を有する。送信元MACアドレスM11は、パケット送信元として制御対象とすべき端末装置5のMACアドレスを格納する領域である。宛先MACアドレスM12は、パケットを受信する側(すなわち、パケットの宛先)として制御対象とすべき端末装置5のMACアドレスを格納する領域である。
なお、送信元MACアドレスM11と宛先MACアドレスM12のそれぞれには、互いに異なる端末装置5のMACアドレスを登録可能である。これにより、送信パケットと受信パケットとのそれぞれに対応して個別に端末優先度設定制御を可能となり、端末優先度設定制御の設定自由度が向上する。ただし、両者に同じ端末装置5のMACアドレスが登録されてもかまわない。具体的に、或る1つの端末装置5の送信と受信のいずれもが重要であるような場合に、送信元MACアドレスM11と宛先MACアドレスM12に同じ端末装置5のMACアドレスを登録する。これにより、1つの端末装置5に対応する送信パケットと受信パケットの両者を優先して転送させることが可能になる。
また、第3実施形態において、上記端末登録情報記憶領域131における送信元MACアドレスM11と宛先MACアドレスM12は、ユーザの設定操作に応じて、それぞれ個別に変更可能とされている。
[端末対応判定のための処理手順例]
図8のフローチャートは、第3実施形態としての端末優先度設定制御に対応して登録部210および端末対応判定部230が実行する処理手順例を示している。登録部210は、登録内容変更のための操作が行われたか否かについて判定する(ステップS501)。なお、第3実施形態においては、送信元MACアドレスM11と宛先MACアドレスM12のいずれか一方のみを変更する操作を行うことも可能である。
ここで、登録内容変更のための操作は行われていないと判定した場合には(ステップS501−NO)、ステップS502〜S504をスキップする。これに対して、登録内容変更のための操作が行われたと判定した場合(ステップS501−YES)、登録部210は、変更された登録内容が反映されるように端末登録情報記憶領域131を更新する(ステップS502)。
次に、端末対応判定部230は、変更後の端末登録情報記憶領域131から、送信元MACアドレスM11と宛先MACアドレスM12の両者を読み込む(ステップS503)。そして、送信元MACアドレスM11と宛先MACアドレスM12の少なくともいずれが端末登録情報記憶領域131に登録されているか否かについて判定する。(ステップS504)。
端末登録情報記憶領域131に送信元MACアドレスM11あるいは宛先MACアドレスM12の少なくともいずれか一方が登録されていると判定した場合(ステップS504−YES)、端末対応判定部230は、CPU使用率算出部220からCPU使用率を取得し(ステップS505)、CPU使用率が閾値th10以上であるか否かについて判定する(ステップS506)。
CPU使用率が閾値th10以上であると判定した場合(ステップS506−YES)、端末対応判定部230は、さらに、端末登録情報記憶領域131に送信元MACアドレスM11が登録されているか否かについて判定する(ステップS507)。
ここで、端末登録情報記憶領域131に送信元MACアドレスM11が登録されていると判定した場合(ステップS507−YES)、端末対応判定部230は、端末装置5の送信パケットを対象とする優先度設定制御の要求(送信元端末優先度設定要求)を送信する(ステップS508)。端末対応判定部230は、この送信元端末優先度設定要求とともに、送信元MACアドレスM11を転送する。一方、端末登録情報記憶領域131に送信元MACアドレスM11が登録されていないと判定した場合(ステップS507−NO)、上記ステップS508をスキップする。
また、端末対応判定部230は、端末登録情報記憶領域131に宛先MACアドレスM12が登録されているか否かについて判定する(ステップS509)。ここで、端末登録情報記憶領域131に宛先MACアドレスM12が登録されていると判定した場合(ステップS509−YES)、端末対応判定部230は、端末装置5が受信するパケットを対象とする優先度設定制御の要求(宛先端末優先度設定要求)を送信し(ステップS510)、ステップS501に戻る。端末対応判定部230は、この宛先端末優先度設定要求とともに、宛先MACアドレスM12を転送する。
一方、端末登録情報記憶領域131に宛先MACアドレスM12が登録されていないと判定した場合(ステップS509−NO)、端末対応判定部230は、宛先端末優先度設定制御について実行中であるか否かについて判定する(ステップS511)。宛先端末優先度設定制御が実行中ではないと判定した場合(ステップS511−NO)、端末対応判定部230は、そのままステップS501に戻る。これに対して、宛先端末優先度設定制御が実行中であると判定した場合(ステップS511−YES)、端末対応判定部230は、実行中の宛先端末優先度設定制御を停止させるための要求を優先度設定部250に対して送信し(ステップS512)、ステップS501に戻る。
また、端末登録情報記憶領域131に送信元MACアドレスM11あるいは宛先MACアドレスM12のいずれも登録されていない「登録無し」状態であると判定した場合(ステップS504−NO)、または、CPU使用率が閾値th10未満であると判定した場合(ステップS506−YES)、端末対応判定部230は、送信元端末優先度設定制御と宛先端末優先度設定制御の少なくともいずれか一方について実行中であるか否かについて判定する(ステップS511)。
送信元端末優先度設定制御と宛先端末優先度設定制御のいずれも実行中ではないと判定した場合(ステップS511−NO)、端末対応判定部230は、そのままステップS501に戻る。これに対して、送信元端末優先度設定制御と宛先端末優先度設定制御の少なくともいずれか一方が実行中であると判定した場合(ステップS511−YES)、端末対応判定部230は、この実行中の端末優先度設定制御を停止させるための要求を優先度設定部250に対して送信し(ステップS512)、ステップS501に戻る。
[優先度設定部の処理手順例]
図9のフローチャートは、第3実施形態の端末優先度設定制御に対応して優先度設定部250が実行する処理手順例を示している。優先度設定部250は、端末対応判定部230から送信される送信元端末優先度設定要求が受信されたか否かについて判別する(ステップS601)。
送信元端末優先度設定要求が受信されたと判定した場合(ステップS601−YES)、優先度設定部250は、先のステップS508により端末対応判定部230から送信元端末優先度設定要求を示す情報とともに転送された送信元MACアドレスM11を示す情報を内部のレジスタ251に登録する(ステップS602)。
これに対して、送信元端末優先度設定要求が受信されていないと判定した場合(ステップS601−NO)、優先度設定部250は、さらに、端末対応判定部230からの宛先端末優先度設定要求が受信されたか否かについて判別する(ステップS603)。宛先端末優先度設定要求が受信されたと判定した場合(ステップS603−YES)、優先度設定部250は、先のステップS510により端末対応判定部230から宛先端末優先度設定要求とともに転送された宛先MACアドレスM12を内部のレジスタ251に登録する(ステップS604)。
次に、優先度設定部250は、端末対応判定部230から送信される送信端末優先度設定停止要求が受信されたか否かについて判別する(ステップS605)。送信元端末優先度設定停止要求が受信されたと判定した場合(ステップS605−YES)、優先度設定部250は、レジスタ251に登録している送信元MACアドレスM11を消去する(ステップS606)。
これに対して、送信元端末優先度設定停止要求が受信されていないと判定した場合(ステップS605−NO)、優先度設定部250は、さらに、端末対応判定部230からの宛先端末優先度設定停止要求が受信されたか否かについて判別する(ステップS607)。宛先端末優先度設定停止要求が受信されたと判定した場合(ステップS607−YES)、優先度設定部250は、レジスタ251に登録している宛先MACアドレスM12を消去する(ステップS608)。
次に、優先度設定部250は、現在において内部のレジスタ251に送信元MACアドレスM11が登録されているか否かについて判定し(ステップS609)、登録されていると判定した場合には(ステップS609−YES)、この登録されている送信元MACアドレスM11の優先制御対象パケットがルーティング部110にて受信されたか否かについて判定する(ステップS610)。ここでの優先制御対象パケットとは、そのパケットを格納するフレームのヘッダに格納されたMACアドレスとして、レジスタ251に登録されているMACアドレスと同じ送信元MACアドレスを格納しているパケットをいう。
優先制御対象パケットが受信されていることを判定した場合(ステップS610−YES)、優先度設定部250は、この優先制御対象パケットのTOS値について高優先度を示す所定値に書き換え(ステップS611)、ステップS612に進む。
また、優先度設定部250は、送信元MACアドレスM11がレジスタ251に登録されていないと判定した場合(ステップS609−NO)、または、送信元MACアドレスM11に対応する優先制御対象パケットが受信されていないと判定した場合には(ステップS610−NO)、ステップS612に進む。
優先度設定部250は、現在において内部のレジスタ251に宛先MACアドレスM12が登録されているか否かについて判定し(ステップS612)、登録されていないと判定した場合には(ステップS612−NO)、優先度の変更を行うことなく、ステップS601に戻る。
これに対して、宛先MACアドレスM12が登録されていると判定した場合には(ステップS612−YES)、この登録している宛先MACアドレスM12に対応する優先制御対象パケットがルーティング部110にて受信されたか否かについて判定する(ステップS613)。
優先制御対象パケットが受信されていることを判定した場合(ステップS613−YES)、優先度設定部250は、この優先制御対象パケットのTOS値を高優先度を示す値に書き換え(ステップS614)、ステップS601に戻る。また、宛先MACアドレスM12に対応する優先制御対象パケットが受信されていないと判定した場合には、そのままステップS601に戻る。
このように第3実施形態においては、上記図8および図9の処理が実行されることにより、送信元MACアドレスM11と宛先MACアドレスM12のそれぞれに個別に対応して端末優先度設定制御を行うことが可能とされている。また、ユーザは、送信元MACアドレスM11と宛先MACアドレスM12をそれぞれ個別に設定することも可能とされている。これにより、ネットワーク構成やユーザの都合などに応じた端末優先度設定制御設定に関する自由度が高くなる。
[変形例]
次に、第3実施形態における変形例について説明する。先の図8の処理においては、CPU使用率に対する閾値th10を送信元MACアドレスM11と宛先MACアドレスM12とで共通に適用している。これに対して、変形例においては、送信元MACアドレスM11と宛先MACアドレスM12のそれぞれに対応して個別に閾値th10を設定できるものであってもよい。以降において、送信元MACアドレスM11に対応する閾値th10については送信元対応閾値th11といい、宛先MACアドレスM12に対応する閾値th10については宛先対応閾値th12という。
図10のフローチャートは、第3実施形態の変形例に対応して、登録部210と端末対応判定部230が実行する処理手順例を示している。図10において、ステップS701〜S708の処理は、図8のステップS501〜S508と同様となるため、詳細な説明は省略する。ただし、ステップS706において、端末対応判定部230は、CPU使用率と比較する閾値th10として、送信元MACアドレスM11に対応して登録された送信元対応閾値th11を利用する。
また、ステップS709とステップS711〜S713は、それぞれ、図8のステップS509〜S512と同様となる。ただし、この変形例においては、ステップS709により端末登録情報記憶領域131に宛先MACアドレスM12が登録されていると判定した場合、ステップS710の判定処理を実行する。つまり、CPU使用率が宛先MACアドレスM12に対応して登録された宛先対応閾値th12以上であるか否かについて判定する。
そして、CPU使用率が宛先対応閾値th12以上であると判定した場合(ステップS710−YES)、端末対応判定部230は、宛先MACアドレスM12とともに宛先端末優先度設定要求を送信する(ステップS711)。これに対して、CPU使用率が宛先対応閾値未満であると判定した場合(ステップS710−NO)、端末対応判定部230は、宛先端末優先度設定制御について実行中であるか否かについて判定する処理に移行する(ステップS712)。
なお、第3実施形態における優先度設定部250の処理手順例は、図9と同様でよい。
このように、図10に示した処理が実行されることで、送信元端末優先度設定制御と宛先端末優先度設定制御は、それぞれ異なるCPU使用率に応じてその実行可否を個別に設定できることになり、優先度設定制御に関する設定の自由度がさらに向上する。
なお、第3実施形態として上記図8〜図10により説明した端末優先度設定制御に対して、図5および図6により説明した第2実施形態のアプリケーション優先度設定制御を併用した構成とすることも可能である。
<第4実施形態>
[端末登録情報および閾値の構造]
続いて、第4実施形態について説明する。第4実施形態におけるルータ100の構成は、送信元対応実施形態と同様となる。そのうえで、第4実施形態は、優先順が異なる複数の端末装置を端末登録情報記憶領域131の記憶領域に登録可能とする。そして、これらの登録された端末装置のパケットがルーティング部110によって異なる優先度により送出されるようにする。なお、以下の説明においては、説明を簡単で分かりやすいものとするために、優先順が異なる端末装置としての2つを登録可能である場合を前提とする。
図11(a)は、第4実施形態における記憶部103の端末登録情報記憶領域131の構造例を示している。この図に示す端末登録情報記憶領域131は、最優先MACアドレスM31を示す情報と準優先MACアドレスM32を示す情報とを格納する領域を備えた構造を有する。最優先MACアドレスM31は、優先度設定の制御対象として最も優先すべき端末装置5のMACアドレスを示す情報である。宛先MACアドレスM12は、最も優先すべき端末装置5の次に優先すべき端末装置5のMACアドレスを示す情報である。
また、第4実施形態においては、記憶部103の閾値記憶領域132は、最優先の制御対象の優先制御の可否を判定する最優先対応閾値th21と準優先の制御対象の優先制御の可否を判定する準優先対応閾値th22とを格納する。つまり、閾値記憶領域132は、図11(b)に示すように、最優先対応閾値th21と準優先対応閾値th22との2つを格納する構造を有する。同図では、最優先対応閾値th21をα、準優先対応閾値th22をβとして示しているが、α>βの関係となるように設定される。本実施形態において、これら最優先対応閾値th21と準優先対応閾値th22はユーザ操作に応じて任意に設定可能とされてよいが、この際にも、α>βが成立するように設定が行われる。
そして、第4実施形態では、CPU使用率(γ)について、最優先対応閾値th21(α)未満であり、かつ、準優先対応閾値th22(β)以上である場合(β≦γ<α)には、最優先MACアドレスM31の端末装置5のみのパケットの優先度(TOS値)を高く設定してルーティング部110から転送させる最優先端末優先度設定制御を行う。
また、CPU使用率(γ)が最優先対応閾値th21(α)以上である場合(γ≧α)には、上記最優先端末優先度設定制御とともに、準優先MACアドレスM32の端末装置5のパケットの優先度(TOS値)を高く設定してルーティング部110から転送させる準優先端末優先度設定制御を行う。
そのうえで、優先度設定部250が、最優先端末優先度設定制御においては、準優先端末優先度設定制御により設定される優先度より高い優先度値を設定するものとする。なお、各優先度設定制御において設定される優先度については、予め決められており、レジスタ251に登録されている。
このように最優先端末優先度設定制御と準優先端末優先度設定制御を行うことにより、最優先すべきとして登録された端末装置5のパケットを、次に優先すべき端末装置5のパケットよりも優先させてルーティング部110から転送させることができる。
[端末対応判定のための手順例]
図12のフローチャートは、第4実施形態に対応して、端末対応判定部230が実行する処理手順例を示している。端末対応判定部230は、登録部210は、端末登録情報記憶領域131における最優先MACアドレスM31と準優先MACアドレスM32の少なくともいずれか一方についての登録内容変更のための操作が行われたか否かについて判定する(ステップS801)。ステップS802〜S805の処理は、図10のステップS702〜705と同様となる。
次に、端末対応判定部230は、上記ステップS805により取得したCPU使用率γと、最優先対応閾値th21の値αおよび準優先対応閾値th22の値βについて、
β≦γ<α
が成立するか否かについて判定する(ステップS806)。
上式が成立すると判定した場合(ステップS806−YES)、端末対応判定部230は、さらに、現在において準優先端末優先度設定制御が実行中であるか否かについて判定する(ステップS807)。準優先端末優先度設定制御が実行中でないと判定した場合(ステップS807−NO)、端末対応判定部230は、ステップS808をスキップしてステップS811に進む。これに対して、準優先端末優先度設定制御を実行中であると判定した場合(ステップS807−YES)、端末対応判定部230は、準優先端末優先度設定制御を停止させるための要求(準優先端末優先度設定停止要求)を優先度設定部250に対して送信し(ステップS808)、ステップS811に進む。
ステップS811において、端末対応判定部230は、最優先MACアドレスM31として登録されたMACアドレスの端末装置5を対象とする優先度設定制御の要求(最優先端末優先度設定要求)を優先度設定部250に対して送信する。つまり、端末対応判定部230は、最優先MACアドレスM31を示す情報と、最優先端末優先度設定要求を優先度設定部250に対して出力する。このように、CPU使用率γが最優先対応閾値th21の値α未満、かつ、準優先対応閾値th22の値β以上の状態においては、最優先端末優先度設定制御のみが実行され、準優先端末優先度設定制御は実行されない。
また、上式が成立しないと判定した場合(ステップS806−NO)、端末対応判定部230は、
γ≧α
が成立するか否かについて判定する(ステップS809)。
上式が成立すると判定した場合(ステップS809−YES)、端末対応判定部230は、準優先MACアドレスM32として登録されたMACアドレスの端末装置5を対象とする優先度設定制御の要求(準優先端末優先度設定要求)を優先度設定部250に対して出力する(ステップS810)。つまり、端末対応判定部230は、準優先MACアドレスM32を示す情報と、準優先端末優先度設定要求を優先度設定部250に対して出力する。さらに、端末対応判定部230は、ステップS811により、最優先端末優先度設定要求を優先度設定部250に対して送信する。これにより、CPU使用率γが最優先対応閾値th21の値α以上の状態においては、最優先端末優先度設定制御と準優先端末優先度設定制御の両者が実行される。
また、ステップS804にて、端末登録情報記憶領域131において、最優先MACアドレスM31と準優先MACアドレスM32のいずれも登録されていないと判定した場合、また、ステップS809にて上式が成立しないと判定した場合には、以下の処理が実行される。
つまり、端末対応判定部230は、最優先端末優先度設定制御と準優先端末優先度設定制御の少なくともいずれか一方が実行中であるか否かについて判定する(ステップS812)。ここで、いずれも実行中ではないと判定した場合には(ステップS812−NO)、ステップS801に戻る。これに対して、少なくともいずれか一方が実行中であると判定した場合(ステップS812−YES)、端末対応判定部230は、この実行中の端末優先度設定制御に対応する端末優先度設定停止要求を優先度設定部250に送信し(ステップS813)、ステップS801に戻る。例えば、最優先端末優先度設定制御と準優先端末優先度設定制御の両者が実行中であれば、端末対応判定部230は、最優先端末優先度設定停止要求と準優先端末優先度設定停止要求の両者を送信する。また、端末対応判定部230は、最優先端末優先度設定制御のみを実行中であれば、最優先端末優先度設定停止要求を送信する。
[優先度設定部の処理手順例]
図13のフローチャートは、第4実施形態の端末優先度設定制御に対応して優先度設定部250が実行する処理手順例を示している。優先度設定部250は、端末対応判定部230から送信される最優先端末優先度設定要求が受信されたか否かについて判別する(ステップS901)。
最優先端末優先度設定要求が受信されたと判定した場合(ステップS901−YES)、優先度設定部250は、先のステップS811により端末対応判定部230から最優先端末優先度設定要求とともに転送された最優先MACアドレスM31を内部のレジスタ251に登録する(ステップS902)。
これに対して、最優先端末優先度設定要求が受信されていないと判定した場合(ステップS901−NO)、優先度設定部250は、さらに、端末対応判定部230からの準優先端末優先度設定要求が受信されたか否かについて判別する(ステップS903)。準優先端末優先度設定要求が受信されたと判定した場合(ステップS903−YES)、優先度設定部250は、先のステップS810により端末対応判定部230から準優先端末優先度設定要求とともに転送された準優先MACアドレスM32を内部のレジスタ251に登録する(ステップS904)。
次に、優先度設定部250は、端末対応判定部230から送信される送信端末優先度設定停止要求が受信されたか否かについて判別する(ステップS905)。最優先端末優先度設定停止要求が受信されたと判定した場合(ステップS905−YES)、優先度設定部250は、レジスタ251に登録している最優先MACアドレスM31を消去する(ステップS906)。
これに対して、最優先端末優先度設定停止要求が受信されていないと判定した場合(ステップS905−NO)、優先度設定部250は、さらに、端末対応判定部230からの準優先端末優先度設定停止要求が受信されたか否かについて判別する(ステップS907)。準優先端末優先度設定停止要求が受信されたと判定した場合(ステップS907−YES)、優先度設定部250は、レジスタ251に登録している準優先MACアドレスM32を消去する(ステップS908)。
次に、優先度設定部250は、現在においてレジスタ251に最優先MACアドレスM31が登録されているか否かについて判定し(ステップS909)、登録されていると判定した場合には(ステップS909−YES)、この登録している最優先MACアドレスM31の優先制御対象パケットがルーティング部110にて受信されたか否かについて判定する(ステップS910)。ここでの優先制御対象パケットとは、そのパケットを格納するフレームのヘッダにおいて上記レジスタ251に登録されているのと同じ最優先MACアドレスM31を格納しているパケットをいう。
優先制御対象パケットが受信されていることを判定した場合(ステップS910−YES)、優先度設定部250は、この優先制御対象パケットのTOS値について、最優先としての優先度を示す所定値に書き換え(ステップS911)、ステップS912に進む。
また、優先度設定部250は、最優先MACアドレスM31がレジスタ251に登録されていないと判定した場合(ステップS909−NO)、または、最優先MACアドレスM31に対応する優先制御対象パケットが受信されていないと判定した場合には(ステップS910−NO)、ステップS912に進む。
優先度設定部250は、現在においてレジスタ251に準優先MACアドレスM32が登録されているか否かについて判定し(ステップS912)、登録されていないと判定した場合には(ステップS912−NO)、優先度の変更を行うことなく、ステップS901に戻る。
これに対して、準優先MACアドレスM32が登録されていると判定した場合には(ステップS912−YES)、この登録している準優先MACアドレスM32に対応する優先制御対象パケットがルーティング部110にて受信されたか否かについて判定する(ステップS913)。
優先制御対象パケットが受信されていることを判定した場合(ステップS913−YES)、優先度設定部250は、この優先制御対象パケットのTOS値について、準優先に対応する優先度を示す所定値に書き換え(ステップS914)、ステップS901に戻る。なお、ここでの書き換えによっては、ステップS911にて設定される最優先に対応した優先度よりも低い所定値を設定することになる。また、準優先MACアドレスM32に対応する優先制御対象パケットが受信されていないと判定した場合には、そのままステップS901に戻る。
なお、この第4実施形態の構成は、アプリケーション優先度設定制御にも適用できる。一具体例として、アプリケーション種別登録情報記憶領域133の領域に最優先アプリケーション種別と準優先アプリケーション種別を登録可能とする。また、閾値についても、図11(b)に準じて、最優先アプリケーション種別と準優先アプリケーション種別に応じた2つの閾値を設定する。そのうえで、図12および図13に準じた処理を、アプリケーション種別対応判定部240と優先度設定部250のそれぞれに実行させる。
また、本発明に係るルータは、上述の実施形態に限られず、以下に説明するような実施形態に係るルータであってもよい。
例えば、第4実施形態では、複数の閾値th21と閾値th22を設定して、優先制御対象を変更する実施形態について説明したが、本発明は、これに限られず、複数の閾値th31と閾値th32を設定して、優先制御対象に設定する優先度を変更するものであってもよい。なお、閾値th31>閾値th32という関係が成立つ。
例えば、使用率γが閾値th31≦γの範囲であった場合、最優先MACアドレスM31および準優先MACアドレスM32が示す双方の端末装置5に対して、より高い優先度σ1を設定する。つまり、優先度設定部250は、使用率γが閾値th31≦γの範囲であった場合に設定する優先度としてレジスタ251に予め登録されている優先度σ1を読み出し、この優先度σ1を示す情報を、優先MACアドレス131Aあるいは準優先MACアドレスM32を格納するパケットのTOS値に書き込む。
一方、使用率γが閾値th32≦γ<閾値th31の範囲であった場合、最優先MACアドレスM31および準優先MACアドレスM32が示す双方の端末装置5に対して、優先度σ1よりも低い優先度σ2を設定する。つまり、優先度設定部250は、使用率γが閾値th32≦γ<閾値th31の範囲であった場合に設定する優先度としてレジスタ251に予め登録されている優先度σ2を読み出し、この優先度σ2を示す情報を、優先MACアドレス131Aあるいは準優先MACアドレスM32を格納するパケットのTOS値に書き込む。
このようにして、本実施形態に係るルータは、CPU使用率に応じて、異なる優先度を設定することができる。
また、本実施形態の優先制御の構成は、例えば、LANスイッチや基地局などをはじめ、ルータ100以外の他の通信装置にも適用することができる。
また、上述のルータ100は内部に、コンピュータシステムを有している。そして、上述した優先制御の処理過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
また、図2における各機能部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより本実施形態としての優先制御を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。