説明

データ転送装置及び方法

【課題】 ネットワークリソースの有効利用やエンド−エンドの端末間のデータ転送の柔軟なスケジューリングを可能にする。
【解決手段】 本発明は、外部ネットワークの各回線の余剰帯域情報をルータ外部の余剰帯域測定装置から一定の時間間隔で受信し、当該データ転送装置から出力される複数のフローについて、一定時間間隔で通知されてくる外部ネットワークの各回線の余剰帯域情報、及び、各フローの伝送経路に基づいて、各フローのデータの出力速度を上記の一定時間間隔で随時決定し、各フローのデータを回線へ出力する際の速度を、一定時間間隔で通知される各フローのデータの出力速度に随時調整し、入力側回線から入力された各フローのデータを一旦蓄積手段に蓄積しながら、出力速度制御ステップで調整された出力速度で一定時間間隔毎に調整しながら出力側回線へ出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ転送装置及び方法に係り、特に、IP(Internet Protocol)ネットワークなどのパケット交換方式に基づく計算機ネットワークの内部に配置され、OSI参照モデルにおけるネットワーク層のパケットやデータリンク層のフレームの転送を司るルータやスイッチ等のデータ転送装置及びデータ転送方法に関する。
【背景技術】
【0002】
従来のルータやスイッチの標準的な構成を図9に示す。ルータの場合は1つの回線から入力されたネットワーク層のパケット、スイッチの場合はデータリンク層のフレーム(以下、本発明の要旨に係らないことを鑑み、簡単のため前者に統一して記述する )は、まず、回線モジュール120a上の小容量のメモリであるバッファ123aに格納される。
【0003】
当該パケットをバッファ123aに格納する理由は、当該パケットの出力先となる回線モジュール120c上のバッファ123cに空きが生じるまで転送を待つようにするため、及び、回線からのデータ受信速度と、スイッチ部130を経由したルータ内のデータ転送速度との一時的な差を吸収するためである。
【0004】
当該パケットがバッファ123aに格納されている間に、データ転送制御部122aは、制御部110から得た転送先情報に基づいて当該パケットの送出先の回線モジュールを決定する。
【0005】
出力先の回線モジュールが決定し、同回線モジュール120c上のバッファ123cに当該パケットを格納できるだけの空きがあることが確認できると、回線モジュール120aのバッファ123a内の当該パケットはスイッチ部130を介して出力先回線モジュール120c上のバッファ123cへ転送される。そして、適宜必要な処理が施された後、出力側の回線へ送出される。
【0006】
従来のルータは上記のような流れで、それぞれの回線から入力されたパケットを別の回線へ転送する処理を繰り返す。ルータ内部で特定の出力回線に対する激しい競合が生じない限り、トラヒックの各フローは入力時のデータ入力速度とほぼ同様の速度でそのまま出力される。
【0007】
上記で述べた内部構造を持つ従来のルータを使用した計算機ネットワークにおいて発生する課題として、ルータ内のある回線を出力先とするトラヒックの総量がその回線の物理的な回線容量を上回った場合にパケットの損失が発生する可能性がある、という課題がある。
【0008】
図10は、ルータ内のある回線を出力先とするトラヒックの総量がその回線の物理的な回線容量を上回った場合にパケットの損失が発生する可能性があることを示している。図10の例を用いて説明する。ルータ20bにつながっている端末10bからの1つのフローが回線30bへ流れており、回線30bの物理的な回線容量(帯域)の70%を使用しているものとする。なお、ここでは回線30aと回線30bの物理的な回線容量は同じとする。
【0009】
この状況で、ルータ20aにつながった端末10aが回線の帯域使用率50%のフローを送出し、それが回線30aとルータ20bを経由して回線30bへ流入したとする。この場合、回線30bには端末10aからのフローを合わせて流すだけの余剰帯域がない。したがって、このような状況がある程度の時間継続すると、ルータ20bの内部の小容量のバッファがあふれ、端末10a、及び、端末10bからのフローのパケットの損失が発生する可能性がある(どちらのフローのパケットが損失するかは、ルータ内部でのフローの処理方法や、それぞれのフローがOSI参照モデルのトランスポート層で使用しているプロトコル等に依存する)。
【0010】
OSI(Open Systems Interconnection)参照モデルのトランスポート層のプロトコルにデータの再送機能などの信頼性保証機構のないUDP(User Datagram Protocol)を使用している場合、上記のパケット損失は直ちにエンド-エンドの端末間での通信データの欠損を引き起こす。
【0011】
トランスポート層のプロトコルにパケット損失確率を低減するためのレート制御機能やデータの再送機能などの信頼性保証機構を有するTCP(Transmission control Protocol)を使用している場合、上記のパケット損失は以下に述べるような問題を引き起こす。
【0012】
TCPでは、送信側端末は、受信側端末からの当該データの受信確認応答(Ack)を受信するまでに送信可能なデータ量(cwnd)を送信し、Ackを待ち、Ackを受け取ると再びcwndのデータ量を送信するという処理を繰り返す(例えば、非特許文献1参照)。(より厳密には、上記cwndの値と、受信側端末から通知される受信可能なデータ量rwndとの値を比較し、小さい方の値に相当するデータを送信する)。
【0013】
TCPでは、セッション開始時にはcwndの値を比較的小さい値から始め、トラヒックを流しながら徐々にcwndの値を大きくしていく。すなわち、トラヒックの送出開始時に他のトラヒックへ与える影響を小さくし、徐々にスループットを上げていくという動作をする。
【0014】
この動作の途中で通信の経路上のいずれかの箇所で上述のようなパケット損失が発生した場合、TCPでは、cwndの値を半減させて一旦スループットを落とすという動作をする。この結果パケット損失が無くなればcwndの値を少しずつ増やしながらスループットを回復させるフェーズに入るが、パケット損失が発生する度にcwndの値は半減される。
【0015】
したがって、最終的に安定するスループットの値は、送受信端末間の経路上の全ての回線の中で可用帯域が最も狭い回線部分(以下、エンド-エンドでのボトルネック可用帯域、と呼ぶ)のそれとほぼ同じ値となる。例えば、図11の例は、ルータ50aに接続された端末40aとルータ50dに接続された端末40bとの間で、回線60a〜60cとルータ50a〜50dを経由して確立されたTCPセッション上でデータ通信を行っているものであるが、この端末間の通信のスループットは回線60bの余剰帯域とほぼ同じ値となる。回線60aでは回線60bよりも多くの余剰帯域があるにもかかわらず、端末40aは回線60bの可用帯域に相当する速度以上でデータを送信することはできない。
【0016】
また、TCPでは上述のようにネットワークの輻輳によってパケットロスが生じる度にcwndの値を一旦半減させてから、再び増加させるという動作をするため、ネットワークの輻輳時の送信端末からのデータ送信速度が激しく変動し安定しない、さらに、元々のデータ送信速度が高速であった場合に、cwndの値を減少させてから送信速度を元通りに回復するまでに時間がかかってしまう、という問題もある。
【0017】
この問題については、パケット損失が発生した際のcwndの値の減少率や回復時の増加率を元々の輻輳ウィンドウサイズ(cwnd)の値に応じて決定する技術が提案されている(例えば、非特許文献2参照)。これによれば、パケット損失時のcwndの減少量を小さくしたり回復を早めたりすることができるため、ネットワークの輻輳時におけるエンド-エンドのスループットの不安定化を防ぐことができ、高速通信時においてもスループットを素早く回復することができる。
【0018】
また、受信側端末において、パケットデータの到着間隔をもとに、常時エンド-エンドのボトルネック可用帯域を推定しておき、パケット損失を検出した時に送信側に対してこの推定値を送信し、これを受けとった送信側端末がデータの送信速度を調整する技術が提案されている(例えば、非特許文献3参照)。本技術も、ネットワークの輻輳時におけるエンド-エンドのスループットを安定化する技術である。
【先行技術文献】
【非特許文献】
【0019】
【非特許文献1】M. Allman, et al., "TCP Congestion Control," RFC2581, April 1999.
【非特許文献2】S.Floyd, "HighSpeed TCP for Large Congestion Windows,"RFC3649, Dec. 2003.
【非特許文献3】Nadeem Aboobaker, David Chanady, Mario Gerla, M. Y. Sanadidi, "Streaming Media Congestion Control using Bandwidth Estimation", Proceedings of the 5th IFIP/IEEE International Conference on Management of Multimedia Networks and Services: Management of Multimedia on the Internet 2002.
【発明の概要】
【発明が解決しようとする課題】
【0020】
このように、ネットワークの輻輳時におけるエンド-エンドのスループットの不安定性やスループット回復の困難性を改善する技術としては非特許文献2,3のような例が存在する。しかし、これらを用いたとしても、送信側端末がデータを送信することができる速度は、実質的にはその時々におけるエンド-エンドのボトルネック可用帯域に近い値であり、したがって、エンド-エンドの実効スループットもその時々におけるエンド-エンドのボトルネック可用帯域にほぼ等しい値に抑えられてしまうという、上述の課題を解決することはできない。
【0021】
従来のルータを使用した計算機ネットワークにおいて発生するもう1つの課題として、内部に小容量のバッファしかなく、回線から続いて入力されてくるトラヒックのデータを迅速に出力側の回線に出力しなければならない、換言すれば、ネットワーク上を流れる各フローのデータをルータへの入力時の速度を保ったまま出力側の回線へ出力することしかできないために、データ出力の速度や送出を開始するタイミングをネットワークのデータ転送ノード上で柔軟に制御することができず、ネットワークリソースの有効利用やエンド-エンドの端末間のデータ転送の柔軟なスケジューリングといった高度なサービスの実現ができない、という課題がある。
【0022】
本発明は、上記の点に鑑みなされたもので、外部ネットワークの余剰の変動に応じてデータ出力の速度を柔軟に制御することができ、その結果、ネットワークリソースの有効利用やエンド−エンドの端末間のデータ転送の柔軟なスケジューリングを可能とするデータ転送装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【0023】
上記の課題を解決するために、本発明(請求項1)は、IPネットワークなどのパケット交換方式に基づく計算機ネットワークの内部に配置され、OSI参照モデルにおけるネットワーク層のパケットの転送を司るルータあるいはデータリンク層のフレームの転送を司るスイッチを含むデータ転送装置であって、
内部に大容量のハードディスクドライブ(HDD)や大容量のソリッドステートディスク(SSD)のような大容量の記憶装置によって実現される蓄積手段と、
外部ネットワークの各回線の余剰帯域情報をルータ外部の余剰帯域測定装置から一定の時間間隔で受信し、受信した余剰帯域情報を出力する余剰帯域情報受信手段と、
当該データ転送装置から出力される複数のフローについて、前記余剰帯域情報受信手段から上記の一定時間間隔で通知されてくる外部ネットワークの各回線の余剰帯域情報、及び、各フローの伝送経路に基づいて、各フローのデータの出力速度を上記の一定時間間隔で随時決定し、通知する機能を有する出力速度計算手段と、
各フローのデータを回線へ出力する際の速度を、前記出力速度計算手段から上記の一定時間間隔で通知される前記各フローのデータの出力速度に随時調整する出力速度制御手段と、
を有し、
入力側回線から入力された各フローのデータを一旦前記蓄積手段に蓄積しながら、前記速度制御手段で調整された前記出力速度で一定時間間隔毎に調整しながら出力側回線へ出力する機能を有する。
【0024】
また、本発明(請求項2)は、IPネットワークなどのパケット交換方式に基づく計算機ネットワークの内部に配置され、OSI参照モデルにおけるネットワーク層のパケットの転送を司るルータあるいはデータリンク層のフレームの転送を司るスイッチを含むデータ転送装置におけるデータ転送方法であって、
内部に大容量のハードディスクドライブ(HDD)や大容量のソリッドステートディスク(SSD)のような大容量の記憶装置によって実現される蓄積手段と、余剰帯域情報受信手段、出力速度計算手段、出力速度制御手段と、有する装置において、
前記余剰帯域情報受信手段が、外部ネットワークの各回線の余剰帯域情報をルータ外部の余剰帯域測定装置から一定の時間間隔で受信し、受信した余剰帯域情報を前記出力速度計算手段に通知する余剰帯域情報受信ステップと、
前記出力速度計算手段が、当該データ転送装置から出力される複数のフローについて、前記余剰帯域情報受信手段から上記の一定時間間隔で通知されてくる外部ネットワークの各回線の余剰帯域情報、及び、各フローの伝送経路に基づいて、各フローのデータの出力速度を上記の一定時間間隔で随時決定し、前記出力速度制御手段に通知する出力速度計算ステップと、
前記出力速度制御手段が、各フローのデータを回線へ出力する際の速度を、前記出力速度計算手段から上記の一定時間間隔で通知される前記各フローのデータの出力速度に随時調整する出力速度制御ステップと、
を行い、
入力側回線から入力された各フローのデータを一旦前記蓄積手段に蓄積しながら、前記出力速度制御ステップで調整された前記出力速度で一定時間間隔毎に調整しながら出力側回線へ出力する。
【発明の効果】
【0025】
上記のように、本発明によれば、データ転送装置が装置内の大容量の蓄積手段に入力データを一旦蓄積し、余剰帯域に応じて送信レートを制御することで、外部ネットワークの余剰の変動に応じてデータ出力の速度を柔軟に制御することができ、その結果、ネットワークリソースの有効利用やエンド−エンドの端末間のデータ転送の柔軟なスケジューリングが可能となる。
【図面の簡単な説明】
【0026】
【図1】本発明の一実施の形態におけるルータの構成図である。
【図2】余剰帯域情報と各フローの出力速度との関係を説明するための図である。
【図3】本発明の一実施の形態における蓄積部の機能を説明するための図である。
【図4】本発明の一実施の形態における余剰帯域情報受信部・出力速度計算部・出力速度制御部の機能を説明するための図である。
【図5】本発明の一実施の形態におけるネットワーク構成及び可用帯域推移の例である。
【図6】本発明の一実施例のルータの構成図である。
【図7】本発明の一実施例における回線からのトラヒックデータ入力時の動作を説明するための図である。
【図8】本発明の一実施例における回線へのトラヒックデータ出力時の動作を説明するための図である。
【図9】従来のルータやスイッチの標準的な構成図である。
【図10】従来の課題を説明するための図(その1)である。
【図11】従来の課題を説明するための図(その2)である。
【発明を実施するための形態】
【0027】
以下図面と共に、本発明の実施の形態を説明する。
【0028】
図1は、本発明の一実施の形態におけるルータの構成を示す。
【0029】
同図に示すルータ200は、制御部210、回線モジュール220、スイッチ部230、蓄積部240を有する。回線モジュール220は、回線インタフェース部221、データ転送制御部222、バッファ部223を有する。
【0030】
上記の構成において、本発明では、蓄積部240を具備しているが、これは、前述の課題は、ルータの入力側回線に出力側回線の物理的な回線容量以上の帯域を要するトラヒックが流入した場合に、内部に小容量のバッファしか持たない既存のルータでは容易にパケット損失が発生してしまうことに起因しているため、この現象を回避するために用いる。
【0031】
この蓄積部240は、従来のルータが持つバッファのような、高価で小容量のDRAMのようなメモリではなく、ハードディスクドライブ(HDD)やソリッドステートディスク(SSD)のような大容量の記憶装置である。並列処理による速度向上のために、本蓄積部240を複数個搭載してもよい。
【0032】
さらに、本発明では、回線インタフェース部221に余剰帯域情報受信部2211、データ転送制御部222に出力速度制御部2221を備え、さらに、制御部210には出力速度計算部211を有する。
【0033】
余剰帯域情報受信部2211は、外部ネットワークの各回線の余剰帯域情報を、図2に示すように、外部ネットワークの余剰帯域測定装置400から一定の時間間隔で受信し、受信した値を後述の出力速度計算部211へ通知する機能を有する。
【0034】
余剰帯域測定装置400とは、本発明によるルータ以外の従来のルータで構成される外部ネットワークにおける回線の余剰帯域を測定する機能を有する装置である。内部に大容量の蓄積装置を持たない従来のルータと本発明によるルータとを組み合わせてネットワークを構築する場合、本発明によるルータの間を接続している従来のルータで構築されたネットワーク部分において、過剰なトラヒックの流入によるパケット損失を回避するため、あるいは、その部分のネットワークリソースの使用状況に応じてデータ転送速度や送出タイミングを柔軟に制御するような高度なサービスを実現するために、各回線の余剰帯域を測定し、その範囲内でデータ転送速度を調整する必要がある。余剰帯域測定装置400はこの余剰帯域測定を行う装置である。なお、この余剰帯域測定装置400については既存技術の流用でよく、本発明の要旨に係らないため詳細は省略する。また、余剰帯域情報受信部2211へ通知されてくる余剰帯域情報の形式についても特に規定しない。
【0035】
制御部210の出力速度計算部211は、本発明のルータ200から出力する各フローの伝送経路、及び、上記余剰帯域情報受信部2211から上記の一定時間間隔で通知されてくる外部ネットワークの各回線の余剰帯域情報に基づいて、各フローの回線への出力時のデータ出力速度を上記の一定時間間隔で随時計算し決定する機能を有する。
【0036】
理解を容易にするため、図2を用いて余剰帯域情報を用いたフローのデータの出力速度調整の例を説明する。同図では、図1に示す構成を有する本発明のルータ200a,200b,200c,200dが、従来技術に基づくルータ100a,100b,100c,100dによって構成されるネットワークを介して接続されている。ここでは、従来技術に基づくルータ100で構成された部分において、過剰なトラヒック量の流入によるパケット損失を防止するための制御例を示す。
【0037】
ルータ200aから回線300a、300b、300cを経由してルータ200cを宛先とするフローaのデータが流れている状態において、ルータ200bが回線300d、300e、300b、300cを経由してルータ200cを宛先とするフローbのデータを新たに流すものとする。この場合、ルータ200bは、フローbの伝送経路である回線300d、300e,300b,300cの各余剰帯域測定装置400b,400e,400c,400gから時々刻々と通知されてくる余剰帯域情報に基づき、上記伝送経路上の全ての回線において、常時余剰帯域を上回るトラヒック量が流れることのないように、フローbのデータ出力速度を制御しながら出力する。
【0038】
具体的には、フローbのデータ出力速度を常時、ルータ200bからルータ200cへのエンド-エンドのボトルネック可用帯域以下の値となるように制御すれば、2つのフローa,bが共通に使用している回線300b,300cの各回線において、2つのフローが使用する帯域の和を常時それぞれの物理的な回線容量の範囲内に収めることができ、パケット損失を防ぐことができる。
【0039】
なお、各フローの伝送経路の導出方法の詳細、及び、各フローのデータの出力速度の最終的な決定方法の詳細については本発明の要旨に係らないため詳細は省略する。
【0040】
次に、データ転送制御部222の出力速度制御部2221は、出力側回線へ各フローのデータを送出する際の実際の送出速度を調整する機能を有する。各フローの出力側回線へのデータ送出速度が、上記の一定時間間隔で出力速度計算部211から通知されてくる値の通りになるように、データ転送制御部を上記の一定時間間隔で制御する。
【0041】
上記の構成を有する本発明のルータ200においては、入力側回線から入力されたデータを全て一旦上記蓄積部240へ書き込み、その後、出力側回線へ出力する。
【0042】
データの出力側回線への出力時には、入力回線側のデータ入力速度に関係なく、各フローの出力速度を、上記の一定時間間隔毎に出力速度計算部211が決定した値となるように制御しながら、データを出力する。
【0043】
本発明では、蓄積部240に入力トラヒックのデータを一旦蓄積する処理が入る。このため、図3に示すように、1本以上の入力回線を経由して入力されてくる、ある特定の回線を出力先とするフローのトラヒック量の総和がそれらの出力先回線から出力可能なデータ速度(当該出力回線の物理的な回線容量、あるいは、当該出力回線に接続された外部ネットワークの余剰帯域測定装置400から通知されてくる余剰帯域の値によって決まる)より大きくなる状態が継続しても、両者の速度差に相当するデータを蓄積部240へ蓄積していくことができる。
【0044】
また、図4示すように、余剰帯域情報受信部2211により出力側の外部ネットワークの余剰帯域が増加したことを検知した場合、蓄積部240に十分な量のデータが蓄積されていれば、出力速度計算部211が当該フローのデータの出力速度を増加させ、データ転送制御部222の出力速度制御部2221はそれを反映した速度で蓄積部240から回線への当該フローのデータ出力が行われるように制御することができる。
【0045】
これらの機能により、データの送信速度が送受信端末間のエンド-エンドのボトルネック可用帯域に支配されるという、前述の発明が解決しようとする課題の項に述べた問題がなくなり、送受信間でデータをより早く送ることが可能となるという、1つ目の効果が得られる。
【0046】
本効果の具体的な例を図5に基づいて説明する。同図の上段に、説明に用いるネットワークの構成を示す。データの送信端末と受信端末が、本発明によるルータA,B,C,Dを経由して接続されている。本発明によるルータ同士は、従来ルータからなるネットワークa,b,cを介して接続されている。
【0047】
また、同図の下段には、上記ネットワークa,b,cのそれぞれのネットワークの両端に接続された本発明によるルータ間のエンド-エンドのボトルネック可用帯域の推移を表したグラフを示す。
【0048】
同図のネットワークにおいては、内部に蓄積部を持たない従来のルータから成るそれぞれのネットワーク部分においてボトルネック可用帯域以上のデータを流さないように制御しさえすれば、パケットの損失は発生しない。送信端末から受信端末へ30Gbitsのデータを送信する場合を例に、この効果を説明する。
【0049】
従来技術のように、送信端末からのデータ送信速度を常時、送信端末から受信端末までのデータ転送経路のエンド-エンドのボトルネック帯域にあわせて送信した場合、上記30Gbitsのデータの送信が完了するまでにかかる時間は、送信端末から受信端末までのエンド-エンドのボトルネック帯域が、
0分〜5分 : 3Gbps
5分〜10分 : 5Gbps
なので、最初の5分間は3Gbpsで送信可能であり、次の5分間で残りのデータ15Gbitsを送信可能であることから、データ転送の完了に要する時間は、
5 + (30 - 5 x 3) / 5 = 8 (分)
となる。
【0050】
一方、本発明によるルータが有する図1に示す構成を用いて、従来のルータから成るそれぞれのネットワーク部分のローカルなボトルネック可用帯域を常時観測しながら、本発明によるルータにおいて、出力側のネットワークに対しては上記可用帯域以上の速度でデータを流さないようにデータ送信速度を調整し、入力側のネットワークからそれ以上の速度でデータが入力されてきたデータについては蓄積部240に蓄積していくようにして、ネットワークa,b,cに対してそれぞれのローカルなボトルネック可用帯域以上のデータを流さないという条件のみを満足するようにデータ送信速度の制御を行った場合、
・ルータAからは5Gbpsの速度で6分間データが送信される:
・ルータBは最初の5分間は3Gbpsでデータを送信し、次の1分間で最初の5分間 の間に自身の蓄積部240に蓄積された10Gbitsのデータを(10Gbpsの速度で)送信し、最後の0.5分間で残りの5Gbitsのデータを(10Gbpsの速度で)送信する:
このため、データ転送の完了に要する時間は、
5 + 1 + 0.5 = 6.5(分)
となり、前者の場合に比べてデータ転送の完了に要する時間を短くすることができる。
【0051】
なお、簡単のため、両者の場合においてデータの伝送遅延は考慮していない。また、トランスポート層のプロトコルにTCPのようなウインドウ制御を持つプロトコルを使用した場合は、トランスポート層自身によるデータ送信速度の制御機能が働いてしまうため、本発明による効果を直接享受することはできないが、本発明の要旨ではないため、トランスポート層に用いるプロトコルについてはここでは既定しない。
【0052】
さらに、本発明によれば、各ルータにおいて蓄積部240に蓄積したデータを送信するタイミングや速度を外部ネットワークの可用帯域情報を加味しながら自由に調整できる。このため、ゆるやかな配信時間制約のある大容量のデータを、ネットワークの使用状況をみて、ネットワークの使用率が低い時に高速に転送するなどの柔軟なサービスの実現が可能となるという、2つ目の効果もある。
【実施例】
【0053】
以下、添付図面を参照しながら本発明の実施例を詳細に説明する。
【0054】
図6は、本発明の一実施例のルータの構成を示す。
【0055】
同図に示すルータ200は、N個の回線モジュール220〜220、制御部210、M個の蓄積部240〜240、スイッチ部230からなる。
【0056】
N個の回線モジュール220〜220はそれぞれ、データ転送制御部222、回線インタフェース部221、バッファ部223を含んでいる。
【0057】
回線インタフェース部221は、余剰帯域情報受信部2211とパケット処理部2212を有し、1本の回線を収容し、パケット処理部2212においてパケット単位で回線を介したデータ入出力を行う。
【0058】
余剰帯域情報受信部2211は、外部の余剰帯域測定装置から、当該回線が接続された外部ネットワークの余剰帯域に関する情報を一定時間間隔で受信し、その値を受信するたびに後述の制御部210の出力速度計算部211へ通知する。
【0059】
バッファ部223は、回線とのデータの送受信速度と蓄積部240とのデータ転送速度との差を吸収し、ルータ内部でのデータの欠落を防ぐためのものである。本バッファ部223はDRAM等で構成される高速小容量の記憶装置である。トラヒックのフロー毎に領域分割して使用され、各領域はFIFOとして用いられる。
【0060】
データ転送制御部222は、回線インタフェース部221とバッファ部223との間、及び、バッファ部223と蓄積部240との間のデータ転送を制御する。
【0061】
データ転送制御部222の中の出力速度制御部2221は、出力側回線へ各フローのデータを送出する際の実際の出力速度を制御する機能を有する。後述する制御部210の出力速度計算部211から一定時間間隔で各フローの出力速度の値が通知されてくる度に、各フローのデータをその速度でバッファ部から回線インタフェース部221へ転送する。
【0062】
以上が各回線モジュール220に含まれる構成要素である。
【0063】
制御部210は、汎用のマイクロプロセッサで構成され、他の構成要素との間の各種情報のやり取りやそれらの制御、及び、各種演算処理を行う。
【0064】
制御部210の出力速度計算部211は、制御部210で実行される、演算処理を実現したソフトウェアである。本ルータから出力される複数のフローについて、上記の余剰帯域情報受信部2211から上記の一定時間間隔で通知されてくる外部ネットワークの各回線の余剰帯域情報、及び、各フローの伝送経路に基づき、各フローのデータの出力速度を上記の一定時間間隔で随時決定、上記の出力速度制御部へ通知する機能を有する
蓄積部240は、ハードディスクドライブ(HDD)やソリッドステートディスク(SSD)のような大容量の記憶装置である。回線から入力したトラヒックのデータを、出力側回線へ出力するまで一時的に蓄積する。
【0065】
スイッチ部230は、各回線モジュールと各蓄積部との間のトラヒックデータの転送をスイッチングする。
【0066】
これらの構成要素は制御信号線、及び、データ線によって同図に示すように相互に接続されている。データ線はトラヒックのデータが流れる経路、制御信号線は各構成要素間で制御信号や各種情報を送受する信号線である。
【0067】
以上説明した構成要素のうち、図中に太線で示した余剰帯域情報受信部2211、出力速度制御部2221、出力速度計算部211、蓄積部240が、本発明独自の機能を実現する。
【0068】
次に、本実施例のルータの動作を述べる。
【0069】
図7は、本発明の一実施例における回線からのトラヒックデータ入力時の動作を説明するための図であり、図8は、本発明の一実施例における回線へのトラヒックデータ出力時の動作を説明するための図である。
【0070】
以下、図7及び図8を用いて、回線Aから入力されたフロー(a)のデータを回線モジュール220Bから出力するまでの処理を説明する。
【0071】
まず、図7を用いて、回線からのトラヒックデータ入力時の動作を説明する。
【0072】
回線Aからパケットデータが入力された回線モジュール220Aのパケット処理部2212Aは、パケットの(送信元IPアドレス、送信先IPアドレス、送信元ポート番号、送信先ポート番号)の組からなるフローを識別し、新規のフローのパケットであった場合は、入力側の回線モジュール220A、及び、出力側の回線モジュール220B上のデータ転送制御部222に対し、「新規フロー情報」として当該フロー(a)に関する情報を送信する(図中(1))。
【0073】
回線モジュール220Aのこの情報を受信したデータ転送制御部222Aは、バッファ部223Aの中に当該フロー(a)のデータを格納するための新規FIFOキューを生成(図中(2))すると共に、自身の中に有する、フローとバッファ中のFIFOキューとの対応表である「フロー/キューマップ」に対して、当該フロー(a)用の新規エントリを生成する(図中(3))。
【0074】
ここまでの処理で、回線から次々に入力される当該フロー(a)のパケットデータをバッファ内の当該フロー(a)用のFIFOキューに格納する操作を開始することができる(図中(4))。なお、同回線Aから入力されるフロー(a)以外のフロー(図中ではフロー(b)と表記)のパケットデータは、図中に示すようにバッファ部223A内の、フロー(a)用とは別のFIFOキュー内に格納される。
【0075】
データ転送制御部222Aは図中(4)の動作と並行して、制御部210に対し上記の新規フロー情報を送信する(図中(5))。
【0076】
この情報を受信した制御部210は、本ルータ200を通過するフローの一覧表に当該フロー(a)のエントリを新規に追加した(図中(6))後、蓄積部240に、当該フロー(a)のデータ格納用のファイルを生成する(図中(7))。本発明においては、フローとそのデータを格納する蓄積部240を対応付ける方法については、発明の要旨ではないため特に既定しない。但し、本実施例においては、バッファ部223Aから蓄積部240へのデータ転送を高速化するために、蓄積部240〜240への全ての蓄積部に当該フロー(a)のデータ格納用ファイルを生成し、バッファ部223Aから蓄積部240へのデータ転送時にはこれらの蓄積部へ当該フロー(a)のデータをストライピングして並列に書き込むものとする。なお、同回線から入力されるフロー(a)以外のフロー(図中のフロー(b))のデータは、図中に示すように、フロー(a)用とは別のファイル内に格納される。
【0077】
上記ファイルの生成が完了すると、当該フロー(a)の入力側の回線モジュール220A、及び、出力側の回線モジュール220B上のデータ転送制御部222に対し、生成したファイルのロケーション情報(蓄積部の番号、及び、その蓄積部内の当該ファイルの位置情報)を送信する(図中(8))。
【0078】
この情報を受信した入力側の回線モジュール220A上のデータ転送制御部222Aは、バッファ部223Aの当該フロー(a)用のFIFOキュー内に格納されている、当該フロー(a)のデータを蓄積部240内の上記ファイルへ書き込む操作を開始する(図中(9))。前述のように、蓄積部240〜240の全ての蓄積部に生成した書き込み用ファイルに対してバッファ部223Aのデータを並列に書き込むことにより、バッファ部223Aから蓄積部240へのデータ転送を高速化する。
【0079】
このファイルへの書き込み操作は、必ずしもパケット単位で行う必要はなく、書き込み効率の向上を図るためにより大きな単位で行えばよい。図7ではその単位をチャンクと記した。但し、本装置がパケットの転送を扱うルータであることから、当該フロー(a)のデータのパケット境界やパケットのヘッダ情報を、出力側回線へのデータ出力が完了するまで保持して扱えるようにする必要があり、バッファ部223AのFIFOキューへのデータ書き込み操作、及び、蓄積部240のファイルへのデータ書き込み操作はこれらの情報を保持できるデータ形式で行う必要がある。但し、この形式の詳細は本発明の要旨ではないため省略する。
【0080】
以上が回線からのトラヒックデータ入力時の動作の説明である。次に、図8を用いて、回線へのトラヒックデータ出力時の動作を説明する。
【0081】
入力側の回線モジュール220A上のパケット処理部2212Aから上述の新規フロー情報(図中(1))を受信した出力側の回線モジュール220B上のデータ転送制御部222222Bは、まず、入力側のそれと同様に、バッファ部223Bの中に当該フロー(a)のデータを格納するための新規FIFOキューを生成(図中(2))すると共に、自身の中に有する、フローとバッファ中のFIFOキューとの対応表である「フロー/キューマップ」に対して、当該フロー(a)用の新規エントリを生成する(図中(3))。その後、蓄積部240内に当該フロー(a)のデータ格納用ファイルとしてオープンされたファイルのロケーション情報が制御部210から通知されるまで待つ。
【0082】
制御部210からこの情報が通知されると(図中(8))、蓄積部240の当該ファイルに書き込まれた当該フロー(a)のデータをバッファ部223B内の当該フロー(a)用のFIFOキュー内に格納する操作を開始することができる(図(9))。データの入力時に蓄積部240〜240の全ての蓄積部にまたがって書き込まれた当該フロー(a)のデータを並列にバッファ部223Bへ転送することにより、この部分のデータ転送を高速化する。また、このバッファ部223Bと蓄積部240との間のデータ転送操作は、入力側と同様のデータ単位(チャンク)で行う。なお、図中のフロー(b)のデータは、ここでも図中に示すようにバッファ部内の、フロー(a)用とは別のFIFOキュー内に格納される。
【0083】
ここまでの処理を通してバッファ部223Bへ当該フロー(a)のデータが格納され始めると、当該フロー(a)のデータを出力回線Bへ出力する準備が整ったことになる。
【0084】
次に、当該データの出力回線Bへの出力を開始するまでの処理を説明する。
【0085】
本ルータ200の外部に設置された余剰帯域測定装置から回線Bを経由して送信されてくる、回線Bに接続された外部ネットワークの各回線の余剰帯域情報を受信(図中(10))した余剰帯域情報受信部2211Bは、この余剰帯域情報を制御部210へ送信する(図中(11))。
【0086】
上記余剰帯域情報を受信した制御部210は、出力速度計算部211の演算機能を用いて、本ルータ200を通過するフローの一覧表を参照しながら(図中(12))、外部ネットワークの各回線の余剰帯域情報、及び、フロー(a)の伝送経路に基づいて、当該フロー(a)の出力側回線への出力速度を決定する。この出力速度の具体的な決定方法については、本発明の要旨ではないため省略する。
【0087】
制御部210の出力速度計算部211は、当該フロー(a)の出力速度が決まると、その情報を、回線モジュール210Bのデータ転送制御部222bの出力速度制御部2221Bへ送信する(図中(14))。
【0088】
これを受信した出力速度制御部2221Bは、出力速度計算部211から通知された速度で当該フロー(a)用のFIFOキューから当該フロー(a)のパケットデータを出力側回線インタフェース部221Bのパケット処理部2212Bへ転送する処理を開始する(図中(15))。
【0089】
パケット処理部2212Bは、バッファ部223Bから転送されてくるパケットデータのIPヘッダ処理を行って回線Bへ出力する。この処理をバッファ部223Bからデータが転送されてくる速度に等しい速度で追随して行うことにより、制御部210が当該フロー(a)に対して割り当てた出力帯域で当該フロー(a)のデータが回線Bへ出力されることになる。
【0090】
これ以降は、余剰帯域情報受信部2211B、制御部210の出力速度計算部211、データ転送制御部222Bの出力速度制御部2221Bが一定時間間隔毎に図中(10)から(15)の処理を繰り返し行って、その都度、当該フロー(a)のデータのバッファ部223Bからパケット処理部2212Bへの転送速度を調整することにより、回線Bに接続された外部ネットワークの余剰帯域の変化に応じた出力速度制御を実現する。
【0091】
なお、本発明は、上記の実施の形態及び実施例の記載に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。
【符号の説明】
【0092】
100 ルータ
110 制御部
120 回線モジュール
121 回線インタフェース
122 データ転送制御部
123 バッファ
130 スイッチ部
200 ルータ
210 制御部
211 出力速度計算部
220 回線モジュール
221 回線インタフェース部
222 データ転送部
223 バッファ部
230 スイッチ部
240 蓄積部
300 回線
400 余剰帯域測定装置
2211 余剰帯域情報受信部
2212 パケット処理部
2221 出力速度制御部

【特許請求の範囲】
【請求項1】
IP(Internet Protocol)ネットワークなどのパケット交換方式に基づく計算機ネットワークの内部に配置され、OSI(Open Systems Interconnection)参照モデルにおけるネットワーク層のパケットの転送を司るルータあるいはデータリンク層のフレームの転送を司るスイッチを含むデータ転送装置であって、
内部に大容量のハードディスクドライブ(HDD)や大容量のソリッドステートディスク(SSD)のような大容量の記憶装置によって実現される蓄積手段と、
外部ネットワークの各回線の余剰帯域情報をルータ外部の余剰帯域測定装置から一定の時間間隔で受信し、受信した余剰帯域情報を出力する余剰帯域情報受信手段と、
当該データ転送装置から出力される複数のフローについて、前記余剰帯域情報受信手段から上記の一定時間間隔で通知されてくる外部ネットワークの各回線の余剰帯域情報、及び、各フローの伝送経路に基づいて、各フローのデータの出力速度を上記の一定時間間隔で随時決定し、通知する機能を有する出力速度計算手段と、
各フローのデータを回線へ出力する際の速度を、前記出力速度計算手段から上記の一定時間間隔で通知される前記各フローのデータの出力速度に随時調整する出力速度制御手段と、
を有し、
入力側回線から入力された各フローのデータを一旦前記蓄積手段に蓄積しながら、前記速度制御手段で調整された前記出力速度で一定時間間隔毎に調整しながら出力側回線へ出力する機能を有する
ことを特徴とするデータ転送装置。
【請求項2】
IP(Internet Protocol)ネットワークなどのパケット交換方式に基づく計算機ネットワークの内部に配置され、OSI(Open Systems Interconnection)参照モデルにおけるネットワーク層のパケットの転送を司るルータあるいはデータリンク層のフレームの転送を司るスイッチを含むデータ転送装置におけるデータ転送方法であって、
内部に大容量のハードディスクドライブ(HDD)や大容量のソリッドステートディスク(SSD)のような大容量の記憶装置によって実現される蓄積手段と、余剰帯域情報受信手段、出力速度計算手段、出力速度制御手段と、有する装置において、
前記余剰帯域情報受信手段が、外部ネットワークの各回線の余剰帯域情報をルータ外部の余剰帯域測定装置から一定の時間間隔で受信し、受信した余剰帯域情報を前記出力速度計算手段に通知する余剰帯域情報受信ステップと、
前記出力速度計算手段が、当該データ転送装置から出力される複数のフローについて、前記余剰帯域情報受信手段から上記の一定時間間隔で通知されてくる外部ネットワークの各回線の余剰帯域情報、及び、各フローの伝送経路に基づいて、各フローのデータの出力速度を上記の一定時間間隔で随時決定し、前記出力速度制御手段に通知する出力速度計算ステップと、
前記出力速度制御手段が、各フローのデータを回線へ出力する際の速度を、前記出力速度計算手段から上記の一定時間間隔で通知される前記各フローのデータの出力速度に随時調整する出力速度制御ステップと、
を行い、
入力側回線から入力された各フローのデータを一旦前記蓄積手段に蓄積しながら、前記出力速度制御ステップで調整された前記出力速度で一定時間間隔毎に調整しながら出力側回線へ出力する
ことを特徴とするデータ転送方法。

【図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


【公開番号】特開2012−80420(P2012−80420A)
【公開日】平成24年4月19日(2012.4.19)
【国際特許分類】
【出願番号】特願2010−225176(P2010−225176)
【出願日】平成22年10月4日(2010.10.4)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成22年度、独立行政法人情報通信研究機構、「高度通信・放送研究開発委託研究/ダイナミックネットワーク技術の研究開発」、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】