説明

ネットワーク中継装置および中継方法

【課題】通信状況に応じて効果的に低消費電力化を実現することができるネットワーク中継装置を得ること。
【解決手段】パケットを中継するネットワーク中継装置であって、ソフトウェアによる転送処理を行うソフトウェア転送処理部31と、ハードウェアによる転送処理を行うハードウェア転送処理部24と、受信したパケットに基づいて当該パケットが所属するパケットフローの通信量を示す通信量情報を取得する受信情報監視部21と、受信したパケットの入力先を切替えるパケットフロー転送処理切替部22と、通信量情報に基づいてパケットフローごとに受信したパケットの入力先としてソフトウェア転送処理部31と前記ハードウェア転送処理部24のいずれかを選択し、パケットフロー転送処理切替部22に対して選択した入力先への切替えを指示するパケットフロー転送制御部23と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パケットを転送するネットワーク中継装置に関する。
【背景技術】
【0002】
パケットフローの転送処理は、一般的に、一旦、ソフトウェアによって宛先等の転送情報を解析して解析結果をハードウェアのレジスタ等に設定し、以降のパケットフローは、ハードウェアにより固定的に処理する。このように固定的に転送処理を行うと、通信量によらず一定の消費電力が必要となることから、転送処理を行うネットワーク中継装置の消費電力の低減が課題となっている。
【0003】
そこで、消費電力の異なるモードへ切り替え可能な複数の物理インタフェースを備え、パケットの流量を測定し、流量が大きいときは高クロックのモードで動作し、流量が少ないときは低クロックの動作モードへ切り替えることで、消費電力を優先した動作と中継処理を優先した動作とを切り替え、消費電力を削減する技術が開示されている(例えば、下記特許文献1参照)。
【0004】
また、測定したパケット流量や過去の流量の統計情報に基づいて、高い転送性能が必要ないと判断したときは転送性能を降下させることにより、パケットロスを抑制しつつ、低消費電力化を実現する技術が開示されている(例えば、下記特許文献2参照)。
【0005】
さらに、消費電力(動作周波数)の異なる複数の動作モードを備えることにより、転送パケットの流量や時間帯に応じて動作モードを変更し、転送性能が不要の場合は消費電力が低い動作モードとすることで、低消費電力化を実現する方法も開示されている(例えば、下記特許文献3参照)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2007-228490号公報
【特許文献2】特開2010-147744号公報
【特許文献3】特開2007-228491号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上記特許文献1や特許文献3の方法は、複数のインタフェースそれぞれの動作周波数を変更することによって、必要に応じて消費電力が低い動作モードに切り替えることで、消費電力を削減している。このため、転送するパケットフローのサイズやCPU(Central Processing Unit)の負荷等によってはソフトウェア処理による転送の方が電力を抑えられる場合がある、という問題がある。また、設定ファイル等を用いた切り替えでは、ユーザの意図とは異なるパケットフローが発生した場合は、低消費電力化の効果が十分でない可能性がある、という問題がある。
【0008】
上記特許文献2は、TCP(Transmission Control Protocol)プロトコルを用いた通信を行う際、パケット流量を測定し、過去の流量の統計情報に基づいて、転送性能(帯域)を上下させることで、転送性能不要時の消費電力の削減を図っている。このため、TCPコネクションが確立されていない場合においても、電力消費が発生する、という問題がある。また、対応する通信プロトコルがTCPに限定されるという問題もある。
【0009】
本発明は、上記に鑑みてなされたものであって、通信状況に応じて効果的に低消費電力化を実現することができるネットワーク中継装置および中継方法を得ることを目的とする。
【課題を解決するための手段】
【0010】
上述した課題を解決し、目的を達成するために、本発明は、パケットを中継するネットワーク中継装置であって、入力されたパケットに対してソフトウェアによる転送処理を行うソフトウェア転送処理部と、入力されたパケットに対してハードウェアによる転送処理を行うハードウェア転送処理部と、受信したパケットに基づいて当該パケットが所属するパケットフローの通信量を示す通信量情報を取得する通信量情報取得部と、受信したパケットの入力先を前記ソフトウェア転送処理部と前記ハードウェア転送処理部との間で切替える転送処理切替部と、前記通信量情報に基づいて、パケットフローごとに受信したパケットの入力先として前記ソフトウェア転送処理部と前記ハードウェア転送処理部のいずれか一方を選択し、前記転送処理切替部に対して選択した入力先への切替えを指示する転送制御部と、を備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、通信状況に応じて効果的に低消費電力化を実現することができる、という効果を奏する。
【図面の簡単な説明】
【0012】
【図1】図1は、実施の形態1のネットワーク中継装置の機能構成例を示す図である。
【図2】図2は、実施の形態1のパケットフローの振り分けの概念を示す図である。
【図3】図3は、実施の形態1のパケット転送処理手順の一例を示すフローチャートである。
【図4】図4は、パケットフロー転送制御部が保持するパケットフロー送信履歴管理テーブルの構成例を示す図である。
【図5】図5は、実施の形態2のパケット転送処理手順の一例を示すフローチャートである。
【図6】図6は、実施の形態2のパケットフロー送信履歴管理テーブルの構成例を示す図である。
【図7】図7は、実施の形態3の転送処理手順の一例を示すフローチャートである。
【図8】図8は、実施の形態4の消費電力削減手順の一例を示すシーケンスチャートである。
【図9】図9は、実施の形態5の消費電力削減手順の一例を示すシーケンスチャートである。
【図10】図10は、実施の形態6のパケット送信手順の一例を示すフローチャートである。
【図11】図11は、パケットフロー送信部が保持する送信パケットフロー情報の一例を示す図である。
【発明を実施するための形態】
【0013】
以下に、本発明にかかるネットワーク中継装置および中継方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【0014】
実施の形態1.
図1は、本発明にかかるネットワーク中継装置の実施の形態1の機能構成例を示す図である。図1に示すように、本実施の形態のネットワーク中継装置1は、受信したパケットを転送性能に対する要求によって振り分け、転送性能に対する要求が高いパケットに対してハードウェアによる転送処理を行うパケット転送部2と、転送性能に対する要求が高くないパケットに対してソフトウェアによる転送処理(宛先情報の解析等)を行うソフトウェア転送処理部31を備えるCPU(演算装置)3と、CPU3およびパケット転送部2による転送処理後のパケットを送信先に向けて送信するパケットフロー送信部4と、で構成される。また、パケットフロー送信部4は、順序制御を実現するシーケンス番号を解析するため、送信用バッファを備えている。
【0015】
本実施の形態のネットワーク中継装置1は、例えば、インターネットとホームネットワークの間に配置され、ホーム・ルータやプロトコル変換などの機能を持つホームゲートウェイ装置等のように、送信元の装置と送信先の装置との間を中継するネットワーク中継装置である。
【0016】
パケット転送部2は、パケットフロー受信時に、パケットフローの解析(送信元、宛先等の確認)やパケットフローの受信間隔の測定等により受信情報を取得する受信情報監視部(通信量情報取得部)21と、受信情報監視部21が取得した受信情報に基づいてソフトウェア転送処理とするか、ハードウェア転送処理とするかの決定や、解析履歴情報の保持、必要に応じてCPU3の動作クロックの低下、ハードウェア転送処理部への電源供給の停止を指示するパケットフロー転送制御部(転送制御部)23と、を備える。
【0017】
また、パケット転送部2は、パケットフロー転送制御部23からの指示に基づいてパケットフローの転送先の処理部を切り替えるパケットフロー転送処理切替部(転送処理切替部)22と、パケットフロー転送処理切替部22から転送されたパケットフローに対して予めレジスタ等に設定された情報に従いハードウェアによる転送処理を行いパケットフロー送信部4へ出力するハードウェア転送処理部24と、を備える。
【0018】
さらに、パケット転送部2は、ハードウェア転送処理部24への電源供給をパケットフロー転送制御部23からの指示に基づいて停止または開始する電源供給制御部25と、ハードウェア転送で処理するパケットフローの存在有無、ハードウェア転送処理部24の負荷、温度を監視し、パケットフロー転送制御部23へ通知するハードウェア転送処理監視部26と、ソフトウェア転送で処理するパケットフローの存在有無、他の処理中(実行中)処理の有無、CPU3の負荷、温度を監視し、パケットフロー転送制御部23へ通知するCPU監視部(演算装置監視部)27と、パケットフロー転送制御部23からの指示により、CPU3への動作クロックを変更する動作クロック制御部28と、を備える。
【0019】
本実施の形態では、パケットフローごとの通信量を示す通信量情報として受信したパケットの受信間隔を用いる。そして、受信間隔に基づいてパケットフローのトラフィックの大小を判断し、判断結果に基づいて転送処理を切り替える。少ない通信量の転送時はソフトウェアによる転送処理を行ってハードウェアの電源供給を停止し、通信量が多い場合にはハードウェアによる転送を行うとともにCPU3の動作クロックを低下させることにより、パケット中継時の消費電力を削減する。
【0020】
図2は、本実施の形態のパケットフローの振り分けの概念を示す図である。図2に示すように、パケットフロー転送制御部23が、受信したパケットフローのトラフィック(通信量)に基づいてパケットフロー転送処理切替部22に対して受信したパケットフローの転送先の転送処理部(ハードウェア転送処理部24とソフトウェア転送処理部31のいずれか)を指示する。パケットフロー転送処理切替部22は、パケットフロー転送制御部23からの指示に基づいて、受信したパケットフローの転送先を切替える。これにより、受信したパケットフローは、トラフィックの大小によりハードウェア転送処理部24とソフトウェア転送処理部31とに振り分けられる。
【0021】
図2では、パケットフロー#1(フロー#1)およびパケットフロー#2(フロー#2)のトラフィック量が少なく、パケットフロー#3(フロー#3)、パケットフロー#4(フロー#4)およびパケットフロー#5(フロー#5)のトラフィック量が多い場合の振り分け例を示している。
【0022】
図3は、本実施の形態のネットワーク中継装置1のパケット転送処理手順の一例を示すフローチャートである。図4は、本実施の形態のパケットフロー転送制御部23が保持するパケットフロー送信履歴管理テーブルの構成例を示す図である。パケットフロー送信履歴管理テーブルは、パケット送信履歴情報を格納するテーブルである。図3および図4を用いて本実施の形態のネットワーク中継装置1のパケット転送方法を説明する。
【0023】
図3に示すように、まず、受信情報監視部21が、あるパケットフローのパケットを受信する(ステップS1)。次に、受信情報監視部21は、当該パケットフローのパケットの受信間隔を測定する(ステップS2)。なお、パケットの受信間隔の測定の際、パケットを受信してから次のパケットを受信し測定が完了するまでの間は、パケットフロー転送処理切替部22がソフトウェア転送処理部31またはハードウェア転送処理部24のいずれかに受信したパケットを出力することとし、受信情報監視部21は測定に用いるパケットをパケットフロー転送処理切替部22に出力してもよいし、受信情報監視部21が受信バッファを備え、測定対象のパケットを保持するようにしてもよい。また、パケットフロー転送処理切替部22が受信バッファを備え、パケットフロー転送制御部23による転送先の決定まで測定対象のパケットを保持するようにしてもよい。
【0024】
次に、受信情報監視部21は、受信したパケットからパケットフローの受信情報を抽出し、測定した受信間隔とともにパケットフロー転送制御部23へ通知する(ステップS3)。通知を受けたパケットフロー転送制御部23は、受信情報に基づいて保持しているパケットフロー送信履歴管理テーブルを更新する(ステップS4)。図4に示すように、パケットフロー送信履歴管理テーブルは、送信元アドレス、送信先アドレス、受信間隔および転送先を含む。また、本実施の形態では、受信情報を送信元アドレス、送信先アドレス、受信間隔とする。
【0025】
なお、ここでは、パケットフローは、送信元アドレスおよび送信先アドレスにより識別することとし、同一の送信元アドレスおよび送信先アドレスの場合は同一パケットフローと認識することとする。なお、これに限らず、送信元アドレスおよび送信先アドレスが一致していても、プロトコルやアプリケーションによりさらにパケットフローを識別してもよい。この場合、パケットフローを識別するための情報をパケットフロー送信履歴管理テーブルに追加すればよい。
【0026】
パケットフロー転送制御部23は、ステップS4の受信情報に基づくテーブル更新の際、通知された受信情報が既にパケットフロー送信履歴管理テーブルへ格納済みのパケットフローに関する受信情報であった場合、必要に応じて(例えば、送信パケット数または送信パケットサイズが変化した場合等)テーブルを更新する。また、新規の(パケットフロー送信履歴管理テーブルへ格納済みでない)パケットフローであればパケットフロー送信履歴管理テーブルに追加する。受信情報に変化がなければテーブル更新は行なわなくてよい。
【0027】
次に、パケットフロー転送制御部23は、受信間隔を用いてトラフィックの大小を求めトラフィックの大小に基づいて転送先の転送処理部を選択する(ステップS5)。受信パケットの受信間隔が大きい(長い)場合は転送するトラフィックが小さい(データ量が少ない)と判断できる。従って、パケットフロー転送制御部23は、受信間隔が所定のしきい値より大きいか否かに基づいてトラフィックの大小を判定することができる。トラフィックが小さい場合、転送性能(転送速度)が低い(転送性能が低いソフトウェア転送でも対応可能)と判断できるため、パケットフロー転送制御部23は転送先としてソフトウェア転送処理部31を選択する。トラフィックが大きい場合、転送性能(転送速度)が高い(転送性能が高いハードウェアによる転送が必要)と判断できるため、パケットフロー転送制御部23は転送先としてハードウェア転送処理部24を選択する。また、パケットフロー転送制御部23は、転送先の転送処理部を選択するとパケットフロー送信履歴管理テーブルの欄に転送先を格納する。図4の例では、転送先をソフトウェア転送処理部31とする場合をソフトウェアと記載し、転送先をハードウェア転送処理部24とする場合をハードウェアと記載している。
【0028】
そして、トラフィックが小さいか否かを判断し、トラフィックが小さい場合(ステップS6 Yes)、パケットフロー転送処理切替部22へパケットの出力先(転送先)をソフトウェア転送処理部31へ切替えるよう指示する(ステップS7)。
【0029】
また、ステップS5,6の代りに、パケットフロー送信履歴管理テーブルに受信情報を格納済みのパケットフローであり、受信情報に変更がなければ、パケットフロー送信履歴管理テーブルに格納されている当該パケットフローの転送先を転送先の転送処理部として選択し、選択した転送処理部に切替えるようパケットフロー転送処理切替部22へ指示してもよい。
【0030】
パケットフロー転送処理切替部22は、ステップS7のパケットフロー転送制御部23からの指示に基づいて、指示されたパケットフローのパケットの転送先をソフトウェア転送処理部31へ切り替え、以降の当該パケットフローの受信パケットをソフトウェア転送処理部31へ出力する(ステップS8)。なお、パケットフロー転送処理切替部22は、受信バッファに保持しているパケットがあればそのパケットもソフトウェア転送処理部31へ出力する。
【0031】
次に、パケットフロー転送制御部23はハードウェア転送処理監視部26からの通知に基づいてハードウェア転送処理中であるか否かを確認する(ステップS9)。なお、ハードウェア転送処理監視部26は、監視対象であるハードウェア転送で処理するパケットフローの存在有無、ハードウェア転送処理部24の負荷および温度等を定期的にパケットフロー転送制御部23へ通知するようにしてもよいし、パケットフロー転送制御部23から要求のあった場合に通知するようにしてもよい。
【0032】
ハードウェア転送処理中である(ステップS9 Yes)場合、パケットフロー転送制御部23は一連の処理を終了する。ハードウェア転送処理中でなければ(ステップS9 No)、パケットフロー転送制御部23は電源供給制御部25にハードウェア転送処理部24への電源供給の停止を指示し、電源供給制御部25は指示に基づいて電源の供給を停止し(ステップS10)、処理を終了する。
【0033】
一方、ステップS6でトラフィックが大きいと判断した場合(ステップS6 No)、パケットフロー転送処理切替部22へパケットの出力先(転送先)をハードウェア転送処理部24へ切替えるよう指示する(ステップS11)。
【0034】
パケットフロー転送処理切替部22は、ステップS11のパケットフロー転送制御部23からの指示に基づいて、指示されたパケットフローのパケットの転送先をハードウェア転送処理部24へ切り替え、以降の当該パケットフローの受信パケットをハードウェア転送処理部24へ出力する(ステップS12)。なお、パケットフロー転送処理切替部22は、受信バッファに保持しているパケットがあればそのパケットもハードウェア転送処理部24へ出力する。
【0035】
次に、パケットフロー転送制御部23はCPU監視部27からソフトウェア転送で処理するパケットフローの存在有無、他の処理中の有無を取得し、取得した情報に基づいてソフトウェア転送処理中であるか、または他に処理中の処理があるか否かを確認する(ステップS13)。なお、CPU監視部27はソフトウェア転送で処理するパケットフローの存在有無、他の処理中の有無を定期的にパケットフロー転送制御部23へ通知してもよいし、パケットフロー転送制御部23から要求のあった場合に通知するようにしてもよい。
【0036】
ソフトウェア転送処理がなく、かつ他に処理中の処理がない(ステップS13 No)場合、パケットフロー転送制御部23は動作クロック制御部28に対してCPU3の動作クロックを低下させるよう指示し、動作クロック制御部28は指示に基づいてCPU3の動作クロックを低下させ(ステップS14)、処理を終了する。
【0037】
ソフトウェア転送処理があるか、または他に処理中の処理がある(ステップS13 Yes)場合、パケットフロー転送制御部23は一連の処理を終了する。
【0038】
なお、本実施の形態では、ハードウェア転送による消費電力が大きいと仮定して説明しているが、ソフトウェア転送処理部31よりもハードウェア転送処理部24の消費電力が小さければ、ステップS6で用いるしきい値を大きくする等によりハードウェア転送処理部24に優先的にパケットを振り分けても良い。その場合、例えば、ソフトウェア転送時のCPU3の動作クロックを上述の例よりさらに低下させ、さらなる消費電力の削減を図る。
【0039】
以上のように、本実施の形態では、ソフトウェア転送処理部31とハードウェア転送処理部24とパケットフローごとにパケットの受信間隔を測定する受信情報監視部21と転送処理部を選択するパケットフロー転送制御部23と転送処理部を切替えるパケットフロー転送処理切替部22とを備える。そして、ソフトウェア転送の方の消費電力が少ない場合、パケットフロー転送制御部23は、受信間隔の大きいパケットフローに対してはソフトウェア転送処理部31を選択し、受信間隔の小さいパケットフローに対してはハードウェア転送処理部24を選択して、パケットフロー転送処理切替部22へ切替え先として指示するようにした。そのため、通信状況に応じて効果的に低消費電力化を実現することができる。
【0040】
また、受信したトラフィックが小さい(受信間隔の長い)場合は、ソフトウェア転送処理部31を選択し、かつハードウェア転送処理部24の電源供給を停止することで、さらなる消費電力の削減が可能となる。
【0041】
また、一度転送先を選択したパケットフローについては、パケットフロー送信履歴管理テーブルに選択した転送先を格納することにより、以降、同一フローであれば、パケットフロー転送制御部23は、受信間隔による選択の代りにパケットフロー送信履歴管理テーブルに基づいて転送処理部を選択することができる。
【0042】
また、ソフトウェア転送処理部31による転送を行いハードウェア転送処理部24による転送を行っていない場合、他に処理中の処理が無い場合には、ソフトウェア転送処理部31を備えるCPU3のクロックを低下させることにより、さらなる省電力化を実現できる。
【0043】
さらに、パケットの受信間隔の測定によりトラフィック(通信量)の大小を判定しているため、通信プロトコルを限定することなく省電力化を実現することができる。
【0044】
実施の形態2.
図5は、本発明にかかる実施の形態2のネットワーク中継装置1のパケット転送処理手順の一例を示すフローチャートである。本実施の形態のパケット中継装置1の構成は実施の形態1と同様である。実施の形態1と同様の機能を有する構成要素は同一の符号を付し、重複する説明を省略する。
【0045】
実施の形態1では、パケットの受信間隔に基づいて受信したトラフィックの大小を判定して転送処理部を切り替えることにより、パケット中継時の消費電力を削減する動作について説明した。本実施の形態では、パケット内容を受信情報監視部21が、受信したパケットを解析することにより、受信間隔を測定することなく、パケットにプロトコル処理により付加される既存の情報に基づいて通信量を把握する。
【0046】
本実施の形態のネットワーク中継装置1のパケット転送処理は、実施の形態1のステップS2の代りにステップS21を実施し、ステップS5の代りにステップ5aを実施する以外は、実施の形態1と同様である。
【0047】
ステップS21では、受信情報監視部21は、パケットフローを受信すると、パケットに格納されている受信情報(パケットのヘッダ中の利用帯域、送信パケット数、ウィンドウサイズ等のトラフィック量を示す情報)を抽出し、パケットフロー転送制御部23に通知する(ステップS21)。
【0048】
具体的には、例えばパケットのデータが、SIP(Session Initiation Protocol)メッセージの場合、SDP(Session Description Protocol)により記述される“b=”行はパケットフローに利用するセッションの利用帯域を示している。このため、受信情報監視部21は、“b=”行に格納されている情報(以下、利用帯域という)を送信元および送信先アドレスとともにこの利用帯域を受信情報として抽出すればよい。また、RTCP(Real-time Transport Protocol Control Protocol)のパケットの場合、送信者のパケットカウント数(送信パケット数)や送信オクテット数(送信パケットサイズ)を受信情報として抽出すればよい。また、TCP(Transmission Control Protocol)パケットの場合には、TCPのウィンドウサイズを抽出すればよい。以上述べた情報は一例であり、これら以外にもパケットの格納されているトラフィック量を示す情報であれば受信情報として抽出することができる。
【0049】
そして、実施の形態1と同様に、受信情報監視部21がパケットフロー転送制御部23へ受信情報を通知し(ステップS3)、パケットフロー転送制御部23がパケットフロー送信履歴管理テーブルへ受信情報を格納する(ステップS4)。なお、本実施の形態では、受信情報の項目が実施の形態1と異なるため、パケットフロー送信履歴管理テーブルへ格納される項目は、実施の形態1と異なる。
【0050】
図6は、本実施の形態のパケットフロー送信履歴管理テーブルの構成例を示す図である。図6では、RTCPパケットの送信パケット数および送信パケットサイズを受信情報として抽出した例を示している。例えば、SDPの利用帯域を受信情報として抽出する場合は、図6の送信パケット数および送信パケットサイズの代りに利用帯域を格納する等、受信情報に応じてパケットフロー送信履歴管理テーブルを構成する。
【0051】
なお、受信するパケットフローが異なるプロトコルの場合は、例えば図6に示すパケットフロー送信履歴管理テーブルをプロトコルごとに備え、プロトコルにより格納する項目を変えるようにしてもよい。または、パケットフロー送信履歴管理テーブルはプロトコルごとに備えず、図6の送信パケット数および送信パケットサイズの代りにトラフィック情報を格納し、トラフィック情報としてプロトコルの識別情報ととともに利用帯域、送信パケット数および送信パケット等を格納してもよい。
【0052】
次に、パケットフロー転送制御部23は、トラフィックの大小により転送先の転送処理部を選択する(ステップS5a)。具体的には、例えば、RTCPの利用帯域を受信情報として抽出した場合は、利用帯域が小さいときはトラフィックが小さいと判断できる。従って、例えば利用帯域が所定の帯域しきい値以下の場合は、ソフトウェア転送処理部31を選択し、利用帯域が帯域しきい値より大きい場合には、ハードウェア転送処理部24を選択する。また、RTCPパケット内の送信パケット数および送信データサイズを受信情報として抽出した場合は、送信パケット数に送信データサイズを乗じた値が小さい場合に通信量が小さいと判断できる。TCPパケットの場合は、ウィンドウサイズが小さい場合に通信量が小さいと判断できる。
【0053】
以降のステップS6〜ステップS14は実施の形態1と同様である。なお、ステップS6では、ステップS5aでのトラフィックの大小の判断結果を用いて、トラフィックの大小を判定する。以上述べた以外の本実施の形態の動作は実施の形態1と同様である。
【0054】
以上のように、本実施の形態では、受信したパケットからトラフィック(通信量)を示す情報を受信情報として抽出して、受信情報に基づいて転送先の転送処理部を選択するようにした。このため、受信間隔を測定することなく、実施の形態1と同様の効果を得ることができる。随時受信間隔の測定をする必要がないため、解析処理の負荷軽減や受信バッファ等の削減ができる。
【0055】
また、SIPやRTCP等の既存プロトコルを利用して通信量を判定しているため、通信プロトコルを限定することなく上述の効果を実現することができる。
【0056】
実施の形態3.
図7は、本発明にかかる実施の形態3のネットワーク中継装置1の転送処理手順の一例を示すフローチャートである。本実施の形態のパケット中継装置1の構成は実施の形態1と同様である。実施の形態1と同様の機能を有する構成要素は同一の符号を付し、重複する説明を省略する。
【0057】
本実施の形態では、ハードウェア転送処理部24、ソフトウェア転送処理部31および受信情報監視部21がRTT(Round Trip Time)を測定し、RTTの時間が大きいときは、トラフィックが大きいと判断してハードウェア転送を実施し、小さい場合はソフトウェア転送を実施する。
【0058】
図7に示すように、まず、ソフトウェア転送処理部31またはハードウェア転送処理部24は、送信するパケットの送信パケットフロー情報をパケットフロー転送制御部23へ通知する(ステップS31)。送信パケットフロー情報としては、送信時刻、シーケンス番号等を含むとする。そして、ソフトウェア転送処理部31またはハードウェア転送処理部24は、送信パケットをパケットフロー送信部4経由で送信する(ステップS32)。
【0059】
次に、受信情報監視部21は、応答(Ack)パケットを受信する(ステップS33)と、受信時間、シーケンス番号等を受信情報としてパケットフロー転送制御部23に通知する(ステップS34)。
【0060】
パケットフロー転送制御部23は、ソフトウェア転送処理部31またはハードウェア転送処理部24から通知された送信パケットフロー情報と受信情報監視部21から通知された受信情報とに基づいて、受信したAckパケットに対応するパケットの送信時刻を求め、求めた送信時刻とAckパケットの受信時刻とに基づいてRTTを算出し、RTTに基づいて転送先の転送処理部を選択する(ステップS35)。具体的には、例えばRTTが所定のRTTしきい値以下の場合にはトラフィックが小さいと判断してソフトウェア転送処理部31を選択し、RTTが所定のRTTしきい値より大きい場合にはトラフィックが大きいと判断してハードウェア転送処理部24を選択する。
【0061】
以降のステップS6〜ステップS14は、実施の形態1と同様である。以上述べた以外の本実施の形態の動作は実施の形態1と同様である。
【0062】
以上のように、本実施の形態では、受信情報監視部21がRTTを算出し、RTTに基づいてトラフィックの大小を判定するようにした。このため、受信間隔を測定することなく、実施の形態1と同様の効果を得ることができる。随時受信間隔の測定をする必要がないため、受信バッファ等の削減ができる。
【0063】
実施の形態4.
図8は、本発明にかかる実施の形態4のネットワーク中継装置1の消費電力削減手順の一例を示すシーケンスチャートである。本実施の形態のパケット中継装置1の構成は実施の形態1と同様である。実施の形態1と同様の機能を有する構成要素は同一の符号を付し、重複する説明を省略する。
【0064】
本実施の形態では、実施の形態1、実施の形態2または実施の形態3と同様に、トラフィックの大小に基づいて転送先の転送処理部を選択する。本実施の形態では、さらに次のような処理を実施する。CPU監視部27がCPU3を監視しCPU3の負荷が増大してきたときは、パケットフロー転送制御部23へCPU3の負荷増大を通知する。パケットフロー転送制御部23は、負荷増大の通知を受信すると、以降に受信したパケットについては、ハードウェア転送処理部24で優先的に処理を行うようにパケットフロー転送処理切替部22へ指示する。これにより、CPU3の消費電力を削減する。
【0065】
図8に示すように、CPU監視部27は、CPU3の負荷を監視する(ステップS41)。負荷の監視方法は、例えばポーリングによる方法、CPU3からの割り込み通知による方法等CPU3から情報を取得するどのような方法でも良い。
【0066】
次に、CPU監視部27がCPU3の負荷増大を検出した(ステップS42)場合は、CPU3の負荷増大をパケットフロー転送制御部23に通知する(ステップS43)。パケットフロー転送制御部23は、負荷増大の通知により、以降の受信パケットの転送先をハードウェア転送処理部24へ切替えるよう判定し(ステップS44)、転送先をハードウェア転送処理部24へ切替えるようパケットフロー転送処理切替部22に指示する(ステップS45)。そして、パケットフロー転送処理切替部22は指示に基づいて、受信したパケットの出力先をハードウェア転送処理部24とする切替えを実施する(ステップS46)。
【0067】
なお、ここでは、パケットフロー転送制御部23は、CPU3の負荷増大の通知を受けると、全ての受信パケットフローをハードウェア転送処理部24を用いて転送するようにしたが、これに限らずトラフィックの大小の判定のしきい値を変更する等により、ソフトウェア転送を行なっているパケットフローの一部をハードウェア転送処理部24による処理とするよう切替えてもよい。
【0068】
同様に、ハードウェア転送処理監視部26がハードウェア転送処理部24の負荷を監視し、負荷の増大を検出した場合にハードウェア転送処理部24の負荷の増大をパケットフロー転送制御部23へ通知し、パケットフロー転送制御部23がソフトウェア転送とする方が消費電力に関して有利であると判断した場合は、ソフトウェア転送処理部31による転送に切替えるよう指示することができる。
【0069】
ハードウェア転送処理部24の負荷の判定は、例えばハードウェア転送処理部24のバッファ内のデータサイズなどを監視することにより実施できる。また、ハードウェア転送を行なっているパケットフローの一部をソフトウェア転送処理部31による処理とするよう切替えてもよい。
【0070】
なお、本実施の形態では、負荷の増大により消費電力が大きくなることを仮定して説明しているが、CPU3の負荷が大きくなっても転送性能を満足し消費電力も小さい場合は、負荷増大を検出したときでも、ハードウェア転送処理部24への切替えを行なわなくてもよい。また、本実施の形態では、CPU3の負荷増大によるハードウェア転送処理部24への優先転送と、ハードウェア転送処理部24の負荷増大によるソフトウェア転送処理部31への優先転送と、の両方を行なうようにしたが、いずれか一方を行なってもよい。
【0071】
なお、本実施の形態では、CPU3の負荷増大またはハードウェア転送処理部24の負荷増大が検出されていない場合(通常時)には、実施の形態1〜実施の形態3のいずれか1つの転送処理方法を実施することとしたが、通常時の転送処理部の選択方法は、実施の形態1〜実施の形態3以外の方法で選択してもよい。
【0072】
以上のように、本実施の形態では、CPU監視部27がCPU3の負荷を監視しCPU3の負荷が増大した場合にパケットフロー転送制御部23へ通知し、パケットフロー転送制御部23は当該通知に基づいて以降に受信したパケットをハードウェア転送処理部24へ優先的に処理を行うよう転送先を選択する。また、ハードウェア転送処理監視部26がハードウェア転送処理部24の負荷を監視し、ハードウェア転送処理部24の負荷が増大した場合にパケットフロー転送制御部23へ通知し、パケットフロー転送制御部23は当該通知に基づいて以降に受信したパケットをソフトウェア転送処理部31へ優先的に処理を行うよう転送先を選択するようにした。このため、負荷の最適化を図り消費電力を削減することができる。
【0073】
実施の形態5.
図9は、本発明にかかる実施の形態5のネットワーク中継装置1の消費電力削減手順の一例を示すシーケンスチャートである。本実施の形態のパケット中継装置1の構成は実施の形態1と同様である。実施の形態1と同様の機能を有する構成要素は同一の符号を付し、重複する説明を省略する。
【0074】
実施の形態4では、CPU3の負荷増大またはハードウェア転送処理部24の負荷増大に基づいて転送先の転送処理部を変更する例を説明したが、本実施の形態では、CPU3およびハードウェア転送処理部24の温度により、CPU3、ハードウェア転送処理部24負荷増大を検出する。
【0075】
図9に示すように、CPU監視部27はCPU3の温度を監視する(ステップS51)。温度の監視は、CPU3に温度測定用の回路(サーミスタ等の利用)を設けてもよく、またCPU3内部の温度センサで測定した温度をポーリング方式で読み出して確認する方法でもよくどのような方法を利用しても良い。
【0076】
CPU監視部27はCPU3の温度上昇を検出した(ステップS52)場合は、CPU3の温度上昇をパケットフロー転送制御部23に通知する(ステップS53)。CPU3の温度上昇の検出方法は、例えば、CPU3の温度が所定の温度しきい値以上となったことを検出する方法等が考えられる。
【0077】
パケットフロー転送制御部23は、温度上昇を通知されソフトウェア転送では消費電力が大きくなると判断した場合は、ハードウェア転送処理部24へ転送部を切り替えると判定する(ステップS54)。以降のステップS55,56は、実施の形態4のステップS45,46と同様である。
【0078】
同様に、ハードウェア転送処理部24についてもハードウェア転送処理監視部26が温度を監視し温度上昇を検出した場合はパケットフロー転送制御部23へ通知する。そして、パケットフロー転送制御部23は、当該通知によりソフトウェアにて転送する方が消費電力に関して有利であると判断した場合は、パケットフロー転送処理切替部22に、以降のパケット転送先をソフトウェア転送処理部31へ切り替えるよう指示する。
【0079】
なお、本実施の形態では、CPU3の温度上昇またはハードウェア転送処理部24の温度上昇が検出されていない場合(通常時)には、実施の形態1〜実施の形態3のいずれか1つの転送処理方法を実施することとしたが、通常時の転送処理部の選択方法は、実施の形態1〜実施の形態3以外の方法で選択してもよい。
【0080】
以上のように、本実施の形態では、CPU監視部27がCPU3の温度を監視しCPU3の温度上昇を検出した場合にパケットフロー転送制御部23へ通知し、パケットフロー転送制御部23は当該通知に基づいて以降に受信したパケットをハードウェア転送処理部24へ優先的に処理を行うよう転送先を選択する。また、ハードウェア転送処理監視部26がハードウェア転送処理部24の温度を監視し、ハードウェア転送処理部24の温度上昇を検出した場合にパケットフロー転送制御部23へ通知し、パケットフロー転送制御部23は当該通知に基づいて以降に受信したパケットをソフトウェア転送処理部31へ優先的に処理を行うよう転送先を選択するようにした。このため、負荷の最適化を図り消費電力を削減することができる。
【0081】
実施の形態6.
図10は、本発明にかかる実施の形態6のネットワーク中継装置1のパケット送信手順の一例を示すフローチャートである。本実施の形態のパケット中継装置1の構成は実施の形態1と同様である。実施の形態1と同様の機能を有する構成要素は同一の符号を付し、重複する説明を省略する。
【0082】
本実施の形態では、実施の形態1〜実施の形態5のいずれかと同様にパケット転送処理を実施する。本実施の形態では、ソフトウェア転送処理部31およびハードウェア転送処理部24からパケットフロー送信部4へ出力されるパケットをパケットフロー送信部4がシーケンス番号に基づいて順序逆転を抑止する処理を実施する。
【0083】
図10に示すように、パケットフロー送信部4は、ソフトウェア転送処理部31およびハードウェア転送処理部24から出力されるパケットの送信パケットフロー情報(通信プロトコル、送信元アドレス、送信先アドレス、シーケンス番号等)を抽出して保持するとともに、送信パケットフロー情報に基づいてパケットフローを特定する(ステップS61)。
【0084】
図11は、本実施の形態のパケットフロー送信部4が保持する送信パケットフロー情報の一例を示す図である。図11に示す例では、送信パケットフロー情報は、通信プロトコル、送信元アドレス、送信先アドレス、シーケンス番号、送信サイズを含む。ハードウェア転送処理部24は、例えば、これらのうち通信プロトコル、送信元アドレスおよび送信先アドレスを用いてパケットフローを特定することができる。
【0085】
次に、パケットフロー送信部4は、保持している送信パケットフロー情報を参照して、ステップS61で特定したパケットフローと同一のパケットフローのシーケンス番号を確認する(ステップS62)ことにより、シーケンス番号が順序通り(ステップS61で抽出したシーケンス番号が、パケットフロー送信部4がそれまでに受け取った同一パケットフローのシーケンス番号の次のシーケンス番号である)であるか否かを判断する(ステップS63)。順序通り(ステップS63 Yes)の場合、パケット(ステップS61で送信パケットフロー情報を抽出したパケット)を送信し(ステップS64)、処理を終了する。
【0086】
シーケンス番号が順序通りでない(ステップS63 No)場合、パケットフロー送信部4は、自身が備える送信バッファにパケットを一旦格納して当該パケットの送信を待機し(ステップS65)、次のパケットが到着すると次のパケットを処理対象としてステップS61からの処理を繰り返す。
【0087】
なお、送信パケットフロー情報については、送信済みの最新のパケットについての情報を保持していればよく、送信済みの最新以外のパケットについては送信パケットフロー情報を破棄してもよい。
【0088】
なお、シーケンス番号が順序通りでないために送信バッファに格納されたパケットについても、シーケンス番号の順序通りに送信するがこの送信方法についてもどのような方法で行なってもよい。例えば、送信バッファに格納されているパケットの送信パケットフロー情報を待機パケット情報として保持し、新たなパケットを受け取った場合に、ステップS62で、待機パケット情報を参照して、待機パケット情報のシーケンス番号が新たなパケットのシーケンス番号の次のシーケンス番号であった場合には、新たなパケット、送信バッファに格納されている当該パケットの順で送信する。
【0089】
なお、シーケンス番号の逆転を防ぐ方法は、上述の方法に限定されず、他の方法としてもよい。
【0090】
以上のように本実施の形態では、パケットフロー送信部4がソフトウェア転送処理部31およびハードウェア転送処理部24から出力されるパケットをパケットフローごとにシーケンス番号順に送信するようにした。このため、通信状況に応じて効果的に低消費電力化を実現することができとともに、パケットの順序保証を実現することができる。
【0091】
このため、パケットフロー送信中に、通信状況に対応して消費電力を考慮した転送処理部の切り替えを行っても、転送処理部の処理速度の差などによるパケットの順序逆転が生じない。したがって、より柔軟に通信状況に応じて消費電力の適正化を図ることができる。
【産業上の利用可能性】
【0092】
以上のように、本発明にかかるネットワーク中継装置および中継方法は、パケットを転送するネットワーク中継装置に有用であり、特に、省電力化を図るネットワーク中継装置に適している。
【符号の説明】
【0093】
1 ネットワーク中継装置
2 パケット転送部
3 CPU
4 パケットフロー送信部
21 受信情報監視部
22 パケットフロー転送処理切替部
23 パケットフロー転送制御部
24 ハードウェア転送処理部
25 電源供給制御部
26 ハードウェア転送処理監視部
27 CPU監視部
28 動作クロック制御部
31 ソフトウェア転送処理部

【特許請求の範囲】
【請求項1】
パケットを中継するネットワーク中継装置であって、
入力されたパケットに対してソフトウェアによる転送処理を行うソフトウェア転送処理部と、
入力されたパケットに対してハードウェアによる転送処理を行うハードウェア転送処理部と、
受信したパケットに基づいて当該パケットが所属するパケットフローの通信量を示す通信量情報を取得する通信量情報取得部と、
受信したパケットの入力先を前記ソフトウェア転送処理部と前記ハードウェア転送処理部との間で切替える転送処理切替部と、
前記通信量情報に基づいて、パケットフローごとに受信したパケットの入力先として前記ソフトウェア転送処理部と前記ハードウェア転送処理部のいずれか一方を選択し、前記転送処理切替部に対して選択した入力先への切替えを指示する転送制御部と、
を備えることを特徴とするネットワーク中継装置。
【請求項2】
前記転送制御部は、通信量が所定のしきい値以下の場合に前記ソフトウェア転送処理部へ切替えるよう指示し、通信量が所定のしきい値を超える場合に前記ハードウェア転送処理部へ切替えるよう指示する、
ことを特徴とする請求項1に記載のネットワーク中継装置。
【請求項3】
前記ソフトウェア転送処理部が実装される演算装置における実行中の処理を監視し、実行中の処理の有無を前記転送制御部へ通知する演算装置監視部と、
前記演算装置の動作クロックを制御する動作クロック制御部と、
をさらに備え、
前記転送制御部は、受信したパケットの入力先を前記ハードウェア転送処理部に切替えるよう指示した場合に、前記演算装置監視部からの通知に基づいて前記演算装置で実行中の処理が無いと判断した場合は、前記動作クロック制御部に対して前記演算装置の動作クロックを低下させるよう指示する、
ことを特徴とする請求項1または2に記載のネットワーク中継装置。
【請求項4】
前記演算装置監視部は、前記演算装置の負荷を監視し、負荷の増大を検出した場合に前記転送制御部へ前記演算装置の負荷増大を通知し、
前記転送制御部は、前記演算装置の負荷増大を通知されると、受信パケットの入力先として前記ハードウェア転送処理部を優先して選択する、
ことを特徴とする請求項3に記載のネットワーク中継装置。
【請求項5】
前記演算装置監視部は、前記演算装置の温度を監視し、温度上昇を検出した場合に前記転送制御部へ前記演算装置の温度上昇を通知し、
前記転送制御部は、前記演算装置の温度上昇を通知されると、受信パケットの入力先として前記ハードウェア転送処理部を優先して選択する、
ことを特徴とする請求項3に記載のネットワーク中継装置。
【請求項6】
前記ハードウェア転送処理部における実行中の処理を監視し、実行中の処理の有無を前記転送制御部へ通知するハードウェア転送処理監視部と、
前記ハードウェア転送処理監視部への電源供給を制御する電源供給制御部と、
をさらに備え、
前記転送制御部は、受信したパケットの入力先を前記ソフトウェア転送処理部に切替えるよう指示した場合に、前記ハードウェア転送処理監視部からの通知に基づいて前記ハードウェア転送処理部で実行中の処理が無いと判断した場合は、前記電源供給制御部に対して前記ハードウェア転送処理部への電源供給を停止するよう指示する、
ことを特徴とする請求項1〜5のいずれか1つに記載のネットワーク中継装置。
【請求項7】
前記ハードウェア転送処理監視部は、前記ハードウェア転送処理部の負荷を監視し、負荷の増大を検出した場合に前記転送制御部へ前記ハードウェア転送処理部の負荷増大を通知し、
前記転送制御部は、前記ハードウェア転送処理部の負荷増大を通知されると、受信パケットの入力先として前記ソフトウェア転送処理部を優先して選択する、
ことを特徴とする請求項6に記載のネットワーク中継装置。
【請求項8】
前記ハードウェア転送処理監視部は、前記ハードウェア転送処理部の温度を監視し、温度上昇を検出した場合に前記転送制御部へ前記ハードウェア転送処理部の温度上昇を通知し、
前記転送制御部は、前記ハードウェア転送処理部の温度上昇を通知されると、受信パケットの入力先として前記ソフトウェア転送処理部を優先して選択する、
ことを特徴とする請求項6に記載のネットワーク中継装置。
【請求項9】
前記通信量情報取得部は、受信したパケットからパケットフローを識別する情報である受信情報を抽出し、前記受信情報を転送制御部へ出力し、
前記転送制御部は、パケットフローごとに前記受信情報と前記転送処理切替部へ切替えを指示した入力先とを対応付けてパケットフロー送信履歴情報として保持し、受け取った前記受信情報に対応するパケットフローが前記パケットフロー送信履歴情報に入力先が格納されているパケットフローである場合には、前記通信量情報を用いずに前記転送処理切替部に対して前記パケットフロー送信履歴情報に格納されている入力先へ切替えるよう指示する、
ことを特徴とする請求項1〜8のいずれか1つに記載のネットワーク中継装置。
【請求項10】
前記通信量情報取得部は、パケットフローごとにパケットの受信間隔を測定し、前記通信量情報を前記受信間隔とする、
ことを特徴とする請求項1〜9のいずれか1つに記載のネットワーク中継装置。
【請求項11】
前記通信量情報取得部は、パケットフローごとにプロトコル処理によりパケットに格納される通信量を示す情報を受信したパケットから前記通信量情報として抽出する、
ことを特徴とする請求項1〜9のいずれか1つに記載のネットワーク中継装置。
【請求項12】
前記通信量情報をSDPにより記述される利用帯域を示す情報とする、
ことを特徴とする請求項11に記載のネットワーク中継装置。
【請求項13】
前記通信量情報をRTCPパケットに格納される送信パケット数および送信データサイズとする、
ことを特徴とする請求項11に記載のネットワーク中継装置。
【請求項14】
前記通信量情報をTCPパケットに格納されるウィンドウサイズとする、
ことを特徴とする請求項11に記載のネットワーク中継装置。
【請求項15】
前記通信量情報取得部は、自装置から送信したパケットのRTTを算出し、前記通信量情報を前記RTTとする、
ことを特徴とする請求項1〜9のいずれか1つに記載のネットワーク中継装置。
【請求項16】
前記ソフトウェア転送処理部および前記ハードウェア転送処理部から入力される転送処理後のパケットをパケットフローごとにシーケンス番号が連続するよう順序制御を行って送信するパケットフロー送信部、
をさらに備えることを特徴とする請求項1〜15のいずれか1つに記載のネットワーク中継装置。
【請求項17】
パケットを中継するネットワーク中継装置における中継方法であって、
前記ネットワーク中継装置は、ソフトウェアによる転送処理を行うソフトウェア転送処理部とハードウェアによる転送処理を行うハードウェア転送処理部とを備え、
受信したパケットに基づいて当該パケットが所属するパケットフローの通信量を示す通信量情報を取得する通信量取得ステップと、
前記通信量情報に基づいて、パケットフローごとに受信したパケットの入力先として前記ソフトウェア転送処理部と前記ハードウェア転送処理部のいずれか一方を選択し、選択した入力先への切替えを指示する転送制御ステップと、
前記転送制御ステップの指示に基づいて受信したパケットの入力先を前記ソフトウェア転送処理部と前記ハードウェア転送処理部との間で切替える転送処理切替ステップと、
を含むことを特徴とする中継方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate