JP4771988B2 - 負荷分散装置及びネットワーク装置 - Google Patents

負荷分散装置及びネットワーク装置 Download PDF

Info

Publication number
JP4771988B2
JP4771988B2 JP2007105045A JP2007105045A JP4771988B2 JP 4771988 B2 JP4771988 B2 JP 4771988B2 JP 2007105045 A JP2007105045 A JP 2007105045A JP 2007105045 A JP2007105045 A JP 2007105045A JP 4771988 B2 JP4771988 B2 JP 4771988B2
Authority
JP
Japan
Prior art keywords
route
control unit
hash value
packet
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007105045A
Other languages
English (en)
Other versions
JP2008263436A (ja
Inventor
嘉宏 中尾
智行 高瀬
晴大 加賀野井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alaxala Networks Corp
Original Assignee
Alaxala Networks Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alaxala Networks Corp filed Critical Alaxala Networks Corp
Priority to JP2007105045A priority Critical patent/JP4771988B2/ja
Publication of JP2008263436A publication Critical patent/JP2008263436A/ja
Application granted granted Critical
Publication of JP4771988B2 publication Critical patent/JP4771988B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、負荷分散装置及びネットワーク装置に係り、特に、ヘッダ情報等のパケットの属性を識別するための情報に基づいて、当該パケットの振り分けを行う負荷分散方法及び負荷分散装置において、パケットの順序を保証しつつ、経路の開放及び再割り当てを行うことによって、入力パケットの負荷分散を行う負荷分散装置及びネットワーク装置に関する。
近年、電子商取引や映像配信等、インターネットを用いた通信サービスの高度化により、トラヒック量の増加と通信速度の高速化は急激に進行している。これに伴って、ネットワーク内においてルータやサーバ等の通信装置の処理負荷が一層大きくなってきている。このため、通信装置の処理能力の向上が急務となっている。
例えば、通信装置の処理能力を向上する手法の一つとして、負荷分散技術がある。負荷分散技術は、同じ機能を持つ装置を複数台設け、これらの装置間で処理を分担することにより、各単一装置における処理負荷を低減するとともに、全体として処理能力の向上を図る方法である。負荷分散を実現するためには、負荷分散の対象となる複数の装置に対して、適切にパケットを振り分けて転送することが必要である。
従来の技術では、ハッシュ値による方法で入力パケットの情報からパケットの負荷分散を行う方法がある。しかし、この方法では入力パケットの情報からハッシュ値を求める為、パケットの振り分けが均等にできないケースが発生する。例えば、入力パケットのIPアドレス、ポート情報に基づいてハッシュ値を求める場合、同一IPアドレス、同一ポート情報のパケットは同じ振り分け先(例えば、同じバッファ)に振り分けられることになる。例えば、複数のプライベートIPアドレスをひとつのグローバルIPアドレスに変換して通信するシステムにおいては、そのグローバルIPアドレスのパケットは同じバッファに入ることになる。従って、複数のプライベートアドレスのパケットが同じバッファに入り、負荷が集中する場合がある。
この課題を解決する為に、例えば特許文献1に示すように、ハッシュ値による方法でパケットの負荷分散を行い、受信ポートでのバックプレッシャ計測値と送信ポートでの送信統計情報に基づく輻輳情報によって負荷情報を把握し、負荷が集中していればハッシュ値に対するルートの割り当てを変更して負荷が均等になるように制御を行うものがあった。
特開2005−252766号公報
しかしながら、上述の方式ではパケット転送中にハッシュ値に対して割り当てた経路を変更する為、パケットの順序が入れ替わって送信・受信される場合があり、パケットの順序が保証できない。保証できないパケットに対しては宛先到達時にパケットの順序が乱れることがある。このため、パケットの再送が発生したりアプリケーションデータとして使えないケースがある。また、例えば、高信頼ネットワークには適していない。
本発明は、以上の点に鑑み、パケットの順序を保証した負荷分散を行う負荷分散装置及びネットワーク装置を提供することを目的とする。本発明は、高信頼ネットワークに適した、パケットの順序保証が可能な負荷分散技術を提供することを目的とする。また、本発明は、パケットの順序を保証することで無駄な再送トラフィックを低減し、アプリケーションレベルでのネットワークでの遅延を低減し、さらにネットワークの帯域をより効率的に利用可能することを目的のひとつとする。
本発明の装置は、例えば、ネットワークを介してパケットを伝送する複数の経路への負荷分散を行う伝送装置であって、受信したパケットのヘッダ情報等のパケットの属性を識別するための情報からハッシュ値を求めるハッシュ値生成制御と、パケットの振り分け先からの情報に基づいて経路を選択する経路選択制御と、経路値の再割り当てを判定する経路割り当て制御と、経路選択テーブルを制御するテーブル制御と、一定時間パケットを受信しない場合はそのハッシュ値に対する経路割り当てを開放する経路開放制御を備える。
上記ハッシュ値生成制御は一例であり、パケットの順序が制御できる方式であれば他の方式でも良い。
本発明の第1の解決手段によると、
受信されたパケットを複数の経路へ振り分けて負荷分散を行うための負荷分散装置であって、
受信したパケットのヘッダー情報又はパケットの属性を識別するための情報に基づき、ハッシュ値を求めるハッシュ値生成部と、
ハッシュ値に対応して、予め割り当てられた振り分け先の経路を示す第1の経路情報が記憶される経路選択テーブルと、
前記ハッシュ値生成部により求められたハッシュ値に基づき前記経路選択テーブルを参照して、対応する第1の経路情報を取得するテーブル制御部と、
取得された第1の経路情報に従い、パケットを前記複数の経路のいずれかに振り分けるパケット転送制御部と、
ハッシュ値毎のタイマーを有し、前記ハッシュ値生成部からハッシュ値を受信することにより、受信されたハッシュ値に対応する前記タイマーがリセットされ、及び、所定のハッシュ値を生成するパケットを一定期間受信しないことにより、該ハッシュ値の前記タイマーが予め定められた設定値に達すると、該ハッシュ値に対応する経路の割り当てを開放するための、該ハッシュ値を含む経路開放要求を出力する経路開放制御部と、
を備え、
前記テーブル制御部は、
前記経路開放制御部からのハッシュ値を含む経路開放要求に従い、前記経路選択テーブルに記憶された該ハッシュ値に対応する第1の経路情報を削除し又は経路が開放されたことを示す情報を第1の経路情報に記憶し、
割り当てた経路の開放時又は開放後のタイミングで、新たに割り当てられた振り分け先の経路を示す第2の経路情報を、前記経路選択テーブルの該ハッシュ値に対応して記憶する
前記負荷分散装置が提供される。
本発明の第2の解決手段によると、
受信されたパケットを複数の経路へ振り分けて負荷分散を行うための負荷分散装置であって、
受信したパケットのヘッダー情報又はパケットの属性を識別するための情報に基づき、予め定められた複数の識別子のひとつを選択する識別子生成部と、
前記識別子に対応して、予め割り当てられた振り分け先の経路を示す第1の経路情報が記憶される経路選択テーブルと、
前記識別子生成部により求められた前記識別子に基づき前記経路選択テーブルを参照して、対応する第1の経路情報を取得するテーブル制御部と、
取得された第1の経路情報に従い、パケットを前記複数の経路のいずれかに振り分けるパケット転送制御部と、
前記識別子毎のタイマーを有し、前記識別子生成部から前記識別子を受信することにより、受信された前記識別子に対応する前記タイマーがリセットされ、及び、所定の前記識別子を生成するパケットを一定期間受信しないことにより、該識別子の前記タイマーが予め定められた設定値に達すると、該識別子に対応する経路の割り当てを開放するための、該識別子を含む経路開放要求を出力する経路開放制御部と、
を備え、
前記テーブル制御部は、
前記経路開放制御部からの前記識別子を含む経路開放要求に従い、前記経路選択テーブルに記憶された該識別子に対応する第1の経路情報を削除し又は経路が開放されたことを示す情報を第1の経路情報に記憶し、
割り当てた経路の開放時又は開放後のタイミングで、新たに割り当てられた振り分け先の経路を示す第2の経路情報を、前記経路選択テーブルの該識別子に対応して記憶する前記負荷分散装置が提供される。
本発明の第3の解決手段によると、
他のネットワーク装置と複数の経路を介して接続されるネットワーク装置であって、
上記負荷分散装置と、
前記複数の経路に対応する複数のバッファと
を備え、
受信された前記他のネットワーク装置へのパケットが、前記負荷分散装置により前記複数のバッファに振り分けられ、前記他のネットワーク装置へパケットが出力される前記ネットワーク装置が提供される。
本発明の第4の解決手段によると、
上記負荷分散装置と、
受信されたパケットが前記負荷分散装置により振り分けられる複数のバッファと、
前記バッファからパケットを入力して、該パケットをネットワークへ転送するための複数の転送エンジンと
を備えたネットワーク装置が提供される。
本発明によれば、パケットの順序を保証した負荷分散を行う負荷分散装置及びネットワーク装置を提供することができる。本発明によれば、高信頼ネットワークに適した、パケットの順序保証が可能な負荷分散技術を提供することができる。本発明によれば、パケットの順序を保証することで無駄な再送トラフィックを低減でき、アプリケーションレベルでのネットワークでの遅延を低減でき、さらにネットワークの帯域をより効率的に利用することができる。
以下、図面を参照して本実施の形態を説明する。
図1は、本実施の形態によるパケット通信装置のネットワーク構成の一例を示すものである。
ネットワーク装置A10は、例えば、ネットワーク装置B14−1、ネットワーク装置C14−2、ネットワーク装置D14−3に接続されている。特にネットワーク装置B14−1に対しては、複数の経路を介してマルチリンク接続されており、経路A、経路B、経路Cに対して負荷分散する例である。本実施の形態は、このネットワーク装置B14−1に対するマルチリンク接続に対する負荷分散を制御する。なお、接続されるネットワーク装置は、適宜の数でもよい。例えば、マルチリンク接続により、ネットワーク装置B14−1にのみ接続されていてもよい。
ネットワーク装置A10は、出力ポート選択制御部11、データ振り分け制御部12、データバッファ13−1〜データバッファ13−5、及び、テストパケット制御部15を備える。なお、ネットワーク装置A10は、パケットを入力する入力インタフェース部、パケットを出力する出力インタフェース部を適宜備えてもよい。
ネットワーク装置A10はパケットを受信すると、出力ポート選択制御部11にてパケットのヘッダー情報からネットワーク装置B14−1、ネットワーク装置C14−2、ネットワーク装置D14−3のどのネットワーク装置にパケットを転送するか判定する。例えば、パケットの転送先となる出力ポートを求める。ここで、データ振り分け制御部12で宛先が判別できるようにパケットに拡張ヘッダーを付加する。データ振り分け制御部12は拡張ヘッダーから宛先を決定し、それぞれのネットワーク装置への経路に対応するデータバッファ13−1〜5へパケットを転送する。パケットは、データバッファ13から適宜読み出されてネットワーク装置へ出力される。なお、データバッファ(第1のバッファ)13−1〜13−3からは、データバッファの情報(例えば負荷状態情報)がデータ振り分け制御部12に送られる。詳細は後述する。
図2は、データ振り分け制御部12の構成図である。
データ振り分け制御部12は、例えば、負荷分散制御部(負荷分散装置)20と、宛先検索部(振り分け部)30と、パケット転送制御部C31、D32とを有する。また、負荷分散制御部20は、ハッシュ値生成制御部21と、経路選択テーブル22と、テーブル制御部23と、経路開放制御部24と、経路割り当て制御部25と、経路選択制御部26と、パケット転送制御部B27とを有する。経路開放制御部24は、ハッシュ値毎にタイマー90を有する。なお、タイマーは外部の適宜のタイマーを用いてもよい。また、負荷分散制御部20の出力先は、バッファ以外にも適宜の装置・構成であってもよい。
出力ポート選択制御部11から拡張ヘッダーを付加されたパケットを受信すると、宛先検索部30では拡張ヘッダーから宛先(出力ポート)を判定し、宛先に従いパケット転送制御部B27、パケット転送制御部C31、パケット転送制御部D32のいずれかにパケットを転送する。
パケット転送制御部C31、パケット転送制御部D32にパケットが転送されるとデータバッファ(第2のバッファ)13−4、13−5を介してネットワーク装置C14−2、ネットワーク装置D14−3にパケットが転送される。
パケット転送制御部B27にパケットが転送された場合、ネットワーク装置B14−1とはマルチリンク接続されている為、負荷分散制御部20で経路選択を行い、経路A、経路B、経路Cに対して負荷分散を行う。
まず、パケット転送制御部B27は、ハッシュ値生成制御部21にパケットのヘッダー情報を転送する。ハッシュ値生成制御部21は、ヘッダー情報に基づきハッシュ値を求め、テーブル制御部23及び経路開放制御部24に転送する。なお、ハッシュ値の求め方は、従来と同様の手法を用いることができる。例えば、パケットに含まれるIPアドレスやポート情報に基づきハッシュ値を求める。
経路選択テーブル22は、ハッシュ値に対応して、パケットの振り分け先経路情報(経路割り当て値)が予め記憶される。図8に、経路選択テーブル22の構成例を示す。
テーブル制御部23は、そのハッシュ値に対応した経路割り当て値(第1の経路情報)を経路選択テーブル22から読み出し、経路割り当て制御部25に知らせる。なお、この例では、経路割り当て値が「0」であれば経路割り宛てが開放中、「0」以外であれば経路割り当て済としている。
経路割り当て制御部25は、経路割り当て値が「0」であれば経路割り当てがされていないと判断し、経路選択制御部26から転送される経路値(第2の経路情報)をパケット転送制御部B27に知らせる。また、その経路値をテーブル制御部23にも知らせる。パケット転送制御部B27はその経路のバッファ13−1〜3に対してパケットを転送する。
テーブル制御部23は、その経路値を経路選択テーブル22に書き込む。「0」以外であれば経路が既に割り当てられていると判断し、その経路値をパケット転送制御部B27に知らせる。
また、経路開放制御部24は、ハッシュ値ごとにタイマー90を備え、一定時間内にパケットを受信しなければテーブル制御部23にそのハッシュ値に対する経路値に「0」をライトする(記憶されている経路値を削除する)ように要求を出し、そのハッシュ値に対する経路割り当てを開放する。
ここで、上記一定時間とは、図1に示すようにネットワーク装置A10にパケットを入力して、そのパケットがネットワーク装置B14−1へ出力される期間又はそれ以上の期間とすることができる。こうすると、通信の途中でハッシュ値に対する経路の割り当てを変更しても、その装置内には前回送出したパケット(すくなくとも該ハッシュ値を生成するパケット)は存在しないので、パケットの追い越しは発生しない。ネットワーク装置A10は、その期間を計測する為のテストパケット制御部15を備えてもよい。なお、テストパケット制御部15は、負荷分散制御部20に含まれることもできる。
テストパケット制御部15は、上記タイマーの設定値を求める為に内部に計測タイマーを備え、テストパケットを出力ポート選択制御部11(又はネットワーク装置Aの入力端)に送信し、データバッファ13−1〜データバッファ13−3(又はネットワーク装置Aの出力端)から受信するまでの時間を計測する。なお、テストパケットには、予め定められたテストパケットであることを識別するための識別子等を付加することができる。テストパケット制御部15は、計測された時間をタイマー90に設定する。例えば、テストパケット制御部15は、定期的にテストパケットを送信して、タイマー90の値を定期的に設定・更新してもよい。また、複数回の計測値の平均を求め、又は、複数回の計測値のうち最も長い時間を求め、それらをタイマー90に設定してもよい。
なお、テストパケット制御部15で計測する方法は一例であり、上記タイマーの設定値は任意の値(予め定められた値)を設定をするようにしても良い。
図3、図4は、本実施の形態のネットワーク装置によるパケット転送の手順の説明図である。
ネットワーク装置A10は、他のネットワーク装置から送られたパケットを出力ポート選択制御部11で受信し、例えば、パケットの宛先に従いネットワーク装置に応じた出力ポートの割り当てを決定後、その情報をパケットに拡張ヘッダーとして付加する(ステップ11、以下S11のように略記する)。宛先検索部31では、その拡張ヘッダー情報をもとにネットワーク装置の割り当てを行う(S12)。例えば、宛先検索部31は、出力先のネットワーク装置に対応するパケット転送制御部27、31、32にパケットを転送する。
パケット転送制御部B27にパケットが転送されると、負荷分散制御部20にてマルチリンク接続に対する負荷分散制御部(振り分け制御)を行う(S13、S120)。
パケット転送制御部B27でなければパケット転送制御部C31又はパケット転送制御部D32にパケットが転送され、データバッファ13−4、13−5を介してネットワーク装置C14−2、ネットワーク装置D14−3にパケットを転送する(S14)。
次に、図4を参照して、負荷分散制御(S120)について説明する。
パケット転送制御部B27にパケットが転送されるとハッシュ値生成制御部21へパケットのヘッダー情報を転送し、ハッシュ値を生成する(S17)。そのハッシュ値をテーブル制御部23、経路開放制御部24に転送し、経路開放制御部24ではハッシュ値に対応したタイマー90をリセットする(S24)。テーブル制御部23は、そのハッシュ値に対応した経路値を経路選択テーブル22から読み出す(S18)。読み出した経路値を経路割り当て制御部25に転送し、「0」であるか判定する(S19)。「0」以外であればその値をパケット転送制御部B27へ転送する(S21)。「0」であれば経路選択制御部26から転送された経路値をパケット転送制御部B27、テーブル制御部23へ転送する(S20)。
パケット転送制御部B27は、転送された経路値に従い、データバッファ13−1〜13−3にパケットを転送する(S22)。
ハッシュ値に対応したタイマー90が設定された値になると、テーブル制御部23にそのハッシュ値に対する経路値に「0」をライトするように要求を出す(S25)。S25、S20で転送した経路値を経路選択テーブルにライトする(S26)。
以上説明した流れにおける主要な機能の詳細について説明する。
図5は、経路選択制御部26における経路選択処理の説明図である。
経路Aのデータバッファ13−1、経路Bのデータバッファ13−2、経路Cのデータバッファ13−3があり、図に示す網掛け部はパケットが溜まっている状態を示している。このケースを例として説明する。
それぞれのデータバッファにどれだけパケットが溜まっているか判定する為に、例えば、閾値1〜閾値4の4つの閾値を予め設定する。それらの閾値とデータバッファに溜まったパケットの数を比較して、データバッファにおけるパケットの溜まり具合を領域(ランク)1−領域5に分割して判定している。なお、閾値の数及び分割する領域数は適宜の数を用いることができる。また、パケットの数以外にも、パケットのサイズの合計など、適宜の負荷状態であってもよい。
図に示す状態では経路Cのデータバッファ13−3は領域4まで溜まっており、経路Aのデータバッファ13−1、経路Bのデータバッファ13−2は領域2まで溜まっている。次の経路を選択する候補は、パケット数などが小さい経路Aのデータバッファ13−1、経路Bのデータバッファ13−2のどちらかである。どちらも同じ領域2になる為、これを選択する方法は、例えば、ラウンドロビン方式を用いることができる。ラウンドロビン方式は一例であり、上記以外の方式として経路ごとに閾値を変更し、優先度を持った振り分け方式としても良い。
図6は、経路開放制御の説明図である。
図に示すように経路開放制御部24にはハッシュ値に対応したタイマー90をそれぞれ備える。このタイマー90が、設定された値、例えばテストパケット制御部15で計測した値(ここでは例えば「6」としている)になると、一定時間パケット転送要求がないと判断し、経路開放要求を出す。例えば、ハッシュ値に対する経路の割り当てを開放する為、そのハッシュ値に対する経路値に「0」をライトするように要求を出す。テーブル制御部23は、経路選択テーブル22にそのハッシュ値に対応した経路値を削除して、「0」を記憶する(上書きする)。タイマー90のリセットはハッシュ値生成制御部21からハッシュ値を受け付けると、そのハッシュ値に対応したタイマー90をリセットする。
上記一定時間とは図1に示すようにテストパケット制御部15から出力ポート選択制御部11にパケットを入力してそのパケットがデータバッファ13−1〜データバッファ13−3から出力される期間とすれば、通信の途中でハッシュ値に対する経路の割り当てを変更してもその装置内には前回送出したパケットは存在しないのでパケットの追い越しは発生しない。
図7は、経路開放制御部24におけるハッシュ値「0」に対する経路割り当て開放処理の説明図である。
この例では、4個のパケット80−1〜4は、ハッシュ値生成制御部21ですべてハッシュ値「0」が生成されるとする。また、ハッシュ値「0」に対する割り当て経路は「3」が予め割り当てられて経路選択テーブルに記憶されている(図8(a)参照)。ハッシュ値「0」に対するタイマーの経路開放値(設定値)は、例えば「6」である。図に示すような間隔で4個のパケットを受信したケースを例として説明する。
パケット80−1に対するハッシュ値「0」をハッシュ値生成制御部21から受け付けると、ハッシュ値「0」に対応するタイマー90−0をリセットする(例えば、「0」にする)。
パケット80−2、パケット80−3のハッシュ値を受け付けるごとに、ハッシュ値「0」のタイマー90−0を「0」にしていく。ハッシュ値「0」のタイマー90−0の値が、設定値「6」にならない間隔でパケット80−1〜パケット80−3のハッシュ値をハッシュ値生成制御部21から受け付けたので、割り当て経路は「3」のままである。従ってパケット80−1〜パケット80−3は、予め定められた割り当て経路「3」に対応するバッファ13−3に送信される(図8(a)の経路選択テーブルT90−1の状態)。
その後、パケット80−4のハッシュ値を受け付ける前にハッシュ値「0」のタイマー90−0が設定値「6」になった為、経路開放要求をテーブル制御部23に送信する。例えば、ハッシュ値「0」に対する経路値に「0」をライトするようにテーブル制御部23に要求を出す。また、タイマー90−0を「0」に戻す。テーブル制御部23は経路選択テーブル22のハッシュ値「0」に対する経路を「3」から「0」に変更する(図8(b)の経路選択テーブルT90−2の状態)。
ここで、パケット80−4のハッシュ値を受け付けると、ハッシュ値「0」のタイマー90を「0」にする。図8(b)に示すように、ハッシュ値の「0」の割り当て経路は「0」の為、経路割り当て制御部25により、経路が再割り当てされる。ここでは割り当て経路は「2」が割り当てられたとする(図8(c)の経路選択テーブルT90−3の状態)。パケット80−4は、割り当て経路「2」に対応するバッファ13−2に送信される。なお、経路の割り当てのタイミングは、上述のように同じハッシュ値を生成するパケットを受信したときの他、経路開放時に割り当てられてもよい。
図9〜図11は、テーブル制御部23における処理の説明図である。
テーブル制御部21が、ハッシュ値生成制御部21からハッシュ値を受け付けると経路選択テーブル22からそのハッシュ値に対応した経路値を読み出し、経路割り当て制御部25に送信する処理(以下処理1のように略記する)と、テーブル制御部21が経路開放制御部24から経路開放要求を受け付け、経路選択テーブル22のハッシュ値に対応した経路を開放する処理(以下処理2のように略記する)と、経路選択テーブル22から読み出された経路値が「0」であることにより、経路割り当て制御部25から新たな経路値を受け付けると経路選択テーブル22にライトする処理(以下処理3のように略記する)の3つの処理のタイミングを考える。
ここで、特に重要なひとつは処理1と処理2のタイミングである。処理1と処理2は非同期である為、処理1と処理2がぶつかるケースが発生する。例えば、処理1はパケットの受信が契機であり、一方、処理2はタイマー90の値が契機であり、非同期で処理が発生する。なお、処理3は処理1を実行した後に動作する為、処理2とぶつからない。
図9、図10は、処理1と処理2がぶつかるケースを示している。
図9は、処理2を実行中に処理1が実行されたケースの説明図である。
この時のテーブル制御部23の動作は、処理2で処理1のハッシュ値に対する経路値を「0」に設定中の為、処理1は経路選択テーブル22からの読み出しは行わずに、経路割り当て制御部25に「0」を送信する。その結果、新たな経路値が割り当てられ、その経路値に従いパケットが振り分けられる。
図10は、処理1を実行中に処理2が実行されたケースである。
この時のテーブル制御部23の動作は、処理1のハッシュ値に対する経路値を経路選択テーブル22から読み出し、経路割り当て制御部25にその経路値を送信しようとしたが処理2とぶつかった為、経路割り当て制御部25に「0」を送信し、経路選択テーブル22のハッシュ値に対する経路値を「0」に設定する。
処理1と平行して、処理1−1(タイマーリセット処理)も実行しているが、例えば、処理1−1でタイマー90をリセットする前にタイマーが設定値(例えば、「6」)になり、処理2の実行が開始されたケースでは、処理1を実行した後に処理2を実行するケースが発生することがある。このため、経路割り当て制御部25に送信した経路値(第1の値)と経路選択テーブル22のハッシュ値に対する経路値(第2の値)が異なってしまう。
例えば、上記第1の値が混んでいるバッファを示し、第1のパケットが混んでいるバッファに入り、一方、上記第2の値が空いているバッファに割り当てられると、第2のパケットが空いているバッファに入ることがあり、第2のパケットが第1のパケットよりも早く出力される場合がある。その為、経路が変わってしまい、パケットの追い越しが発生する場合がある。
これを回避する為、図11に示す時間A〜Cについて、「処理1の時間A>処理1−1の時間B+処理2の時間C」の関係を守る。処理1の時間A(第1時間)とは、ハッシュ値生成制御部21がハッシュ値を送信し、テーブル制御部23で経路選択テーブル22からそのハッシュ値に対する経路値を読み出し、経路割り当て制御部25に送信するまでの時間である。処理1−1の時間B(第2時間)とは、ハッシュ値生成制御部21がハッシュ値を送信し、経路開放制御部24でそのハッシュ値に対応するタイマーをリセットするまでの時間である。処理2の時間C(第3時間)とは、経路開放制御部24でタイマーが設定値になり経路開放要求をテーブル制御部23で受け付けるまでの時間である。
上記で示した関係を守るには、例えば、テーブル制御部23内にハッシュ値生成制御部21からのハッシュ値を所定時間バッファする機能(例えば、バッファ)を備えることによって処理1と処理2が必ずぶつかることになり、パケットの追い越しは発生しない。
(他の適用例)
次にネットワーク装置内でのマルチリンク接続における負荷分散方法について説明する。
図11は、負荷分散装置の適用例としてのネットワーク装置110の概略構成を示す説明図である。上述のように、他のネットワーク装置とマルチリンク接続されるネットワーク装置以外にも、例えば、自装置内のブロックに対して負荷分散するものにも適用できる。例えば、複数のパケット転送エンジンを有するルータなどのネットワーク装置に適用することもできる。
本例のネットワーク装置110は、ルータ機能を備えたパケット検索転送エンジンA111−1、パケット検索転送エンジンB111−2、パケット検索転送エンジンC111−3に対してマルチリンク接続されており、経路A、経路B、経路Cに対して負荷分散が必要な例である。本例は、このマルチリンク接続に対する負荷分散を制御するものであり、負荷分散制御部20、テストパケット制御部15は上述の機能と同じである。
(変形例)
上述の実施の形態では、ハッシュ値を用いて説明したが、ハッシュ値以外でもよい。例えば、ハッシュ値生成制御部(識別子生成部)は、受信したパケットのヘッダー情報又はパケットの属性を識別するための情報に基づき、予め定められた複数の識別子のひとつを選択するようにしてもよい。また、経路選択テーブル22や、他の制御部による処理についても、ハッシュ値の変わりに上記識別子を用いればよく、処理の詳細は同様である。
本発明は、例えば、パケットの振り分けを行うネットワーク装置に利用可能である。また、例えば、複数経路を介して他のネットワーク装置とマルチリンク接続される装置及びシステムに利用可能である。また、例えば、複数のパケット転送エンジンを有するルータ等の通信装置に利用可能である。
本実施の形態によるパケット通信装置のネットワーク構成の一例を示す図。 本実施の形態によるデータ振り分け制御部の構成の一例を示す図。 本実施の形態によるパケット通信装置における処理手順の一例を示すフローチャート。 本実施の形態による振り分け制御の処理手順の一例を示すフローチャート。 本実施の形態による経路割り当て制御部の経路選択の説明図。 本実施の形態による経路割り当て制御部の構成の一例を示す図。 本実施の形態による経路割り当て開放処理の説明図。 本実施の形態による経路選択テーブルの説明図。 本実施の形態によるテーブル制御部の説明図(1)。 本実施の形態によるテーブル制御部の説明図(2)。 本実施の形態によるテーブル制御部に必要な処理時間を示す図。 本実施の形態によるネットワーク装置の一例を示す図。
符号の説明
10 ネットワーク装置A
11 出力ポート選択制御部
12 データ振り分け制御部
13 データバッファ
14−1 ネットワーク装置B
14−2 ネットワーク装置C
14−3 ネットワーク装置D
15 テストパケット制御部15
20 負荷分散制御部
21 ハッシュ値生成制御部
22 経路選択テーブル
23 テーブル制御部
24 経路開放制御部
25 経路割り当て制御部
26 経路選択制御部
27 パケット転送制御部B
30 宛先検索部
31 パケット転送制御部C
32 パケット転送制御部D
80 パケット
90 ハッシュ値「0」のタイマー
T90 経路選択テーブル
110 ネットワーク装置
111 パケット検索転送エンジン

Claims (17)

  1. 受信されたパケットを複数の経路へ振り分けて負荷分散を行うための負荷分散装置であって、
    受信したパケットのヘッダー情報又はパケットの属性を識別するための情報に基づき、ハッシュ値を求めるハッシュ値生成部と、
    ハッシュ値に対応して、予め割り当てられた振り分け先の経路を示す第1の経路情報が記憶される経路選択テーブルと、
    前記ハッシュ値生成部により求められたハッシュ値に基づき前記経路選択テーブルを参照して、対応する第1の経路情報を取得するテーブル制御部と、
    取得された第1の経路情報に従い、パケットを前記複数の経路のいずれかに振り分けるパケット転送制御部と、
    ハッシュ値毎のタイマーを有し、前記ハッシュ値生成部からハッシュ値を受信することにより、受信されたハッシュ値に対応する前記タイマーがリセットされ、及び、所定のハッシュ値を生成するパケットを一定期間受信しないことにより、該ハッシュ値の前記タイマーが予め定められた設定値に達すると、該ハッシュ値に対応する経路の割り当てを開放するための、該ハッシュ値を含む経路開放要求を出力する経路開放制御部と、
    を備え、
    前記テーブル制御部は、
    前記経路開放制御部からのハッシュ値を含む経路開放要求に従い、前記経路選択テーブルに記憶された該ハッシュ値に対応する第1の経路情報を削除し又は経路が開放されたことを示す情報を第1の経路情報に記憶し、
    割り当てた経路の開放時又は開放後のタイミングで、新たに割り当てられた振り分け先の経路を示す第2の経路情報を、前記経路選択テーブルの該ハッシュ値に対応して記憶する
    前記負荷分散装置。
  2. 前記タイマーに設定される前記設定値は、前記負荷分散装置を備えたネットワーク装置にパケットが入力されてから、該パケットが該ネットワーク装置から出力されるまでの時間、又は、それ以上の時間である請求項1に記載の負荷分散装置。
  3. テストパケットを前記ネットワーク装置の入力端に送信し、及び、該ネットワーク装置の出力端から該テストパケットを受信して、該テストパケットを送信してから受信されるまでの時間を計測し、計測された時間又はそれ以上の時間を前記タイマーに設定するテストパケット制御部
    をさらに備えた請求項2に記載の負荷分散装置。
  4. パケットの振り分け先の負荷状態に基づいて振り分け先の経路を選択し、該振り分け先の経路を示す第2の経路情報を出力する経路選択制御部
    をさらに備え、
    前記テーブル制御部は、前記経路選択制御部により出力された第2の経路情報を、前記経路選択テーブルに記憶する請求項1に記載の負荷分散装置。
  5. 前記パケット転送制御部によるパケットの振り分け先は、複数のバッファであり、
    前記経路選択制御部は、各バッファに存在するパケットの数又はパケットの合計サイズに基づき、パケットの数又はパケットの合計サイズが小さいバッファを振り分け先の経路として選択する請求項4に記載の負荷分散装置。
  6. 前記パケット転送制御部によるパケットの振り分け先は、複数のバッファであり、
    前記経路選択制御部は、各バッファに存在するパケットの数又はパケットの合計サイズと、予め定められた複数の閾値とに基づき、各バッファを該複数の閾値により定まる複数のランクに分け、パケットの数又はパケットの合計サイズが少ないランクのバッファのひとつを振り分け先の経路として選択する請求項4に記載の負荷分散装置。
  7. 前記経路選択制御部は、
    同じランクの前記バッファが複数ある場合には、ラウンドロビン方式を用いて前記バッファをひとつ選択する請求項6に記載の負荷分散装置。
  8. 記タイミングは、
    該ハッシュ値を生成するパケットを新たに受信したタイミングである請求項1に記載の負荷分散装置。
  9. 前記テーブル制御部が、前記ハッシュ値生成制御部からハッシュ値を入力して、前記経路選択テーブルから該ハッシュ値に対応した第1の経路情報を読み出し、出力する第1処理と、
    前記テーブル制御部が、前記経路開放制御部から経路開放要求を入力して、前記経路選択テーブルのハッシュ値に対応した第1の経路情報を削除する第2処理ついて、
    前記第2処理を実行中に前記第1処理が実行された場合、前記経路選択制御部からの第2の経路情報に従いパケットが振り分けられる請求項4に記載の負荷分散装置。
  10. 前記テーブル制御部が、前記ハッシュ値生成制御部からハッシュ値を入力して、前記経路選択テーブルから該ハッシュ値に対応した第1の経路情報を読み出し、出力する第1処理と、
    前記テーブル制御部が、前記経路開放制御部から経路開放要求を入力して、前記経路選択テーブルのハッシュ値に対応した第1の経路情報を削除する第2処理について、
    前記第1処理を実行中に前記第2処理が実行された場合、前記経路選択テーブルのハッシュ値に対す第1の経路情報を削除し、及び、前記経路選択制御部からの第2の経路情報に従いパケットが振り分けられる請求項4に記載の負荷分散装置。
  11. 前記テーブル制御部は、前記ハッシュ値生成制御部からのハッシュ値を所定時間バッファリングする第2のバッファ
    を有し、
    前記ハッシュ値生成制御部がハッシュ値を送信してから、前記テーブル制御部で経路選択テーブルからそのハッシュ値に対する第1の経路情報が読み出されて、出力されるまでの第1時間と、
    前記ハッシュ値生成制御部がハッシュ値を送信してから、前記経路開放制御部でそのハッシュ値に対応する前記タイマーをリセットするまでの第2時間と、
    前記経路開放制御部で前記タイマーが前記設定値になってから、経路開放要求を前記テーブル制御部が入力するまでの第3時間とについて、
    前記第1時間が、前記第2時間と前記第3時間の和より大きくなるように、受信されたハッシュ値を前記第2のバッファで所定時間バッファする請求項4に記載の負荷分散装置。
  12. 受信されたパケットを複数の経路へ振り分けて負荷分散を行うための負荷分散装置であって、
    受信したパケットのヘッダー情報又はパケットの属性を識別するための情報に基づき、予め定められた複数の識別子のひとつを選択する識別子生成部と、
    前記識別子に対応して、予め割り当てられた振り分け先の経路を示す第1の経路情報が記憶される経路選択テーブルと、
    前記識別子生成部により求められた前記識別子に基づき前記経路選択テーブルを参照して、対応する第1の経路情報を取得するテーブル制御部と、
    取得された第1の経路情報に従い、パケットを前記複数の経路のいずれかに振り分けるパケット転送制御部と、
    前記識別子毎のタイマーを有し、前記識別子生成部から前記識別子を受信することにより、受信された前記識別子に対応する前記タイマーがリセットされ、及び、所定の前記識別子を生成するパケットを一定期間受信しないことにより、該識別子の前記タイマーが予め定められた設定値に達すると、該識別子に対応する経路の割り当てを開放するための、該識別子を含む経路開放要求を出力する経路開放制御部と、
    を備え、
    前記テーブル制御部は、
    前記経路開放制御部からの前記識別子を含む経路開放要求に従い、前記経路選択テーブルに記憶された該識別子に対応する第1の経路情報を削除し又は経路が開放されたことを示す情報を第1の経路情報に記憶し、
    割り当てた経路の開放時又は開放後のタイミングで、新たに割り当てられた振り分け先の経路を示す第2の経路情報を、前記経路選択テーブルの該識別子に対応して記憶する前記負荷分散装置。
  13. 他のネットワーク装置と複数の経路を介して接続されるネットワーク装置であって、
    請求項1又は12に記載の負荷分散装置と、
    前記複数の経路に対応する複数のバッファと
    を備え、
    受信された前記他のネットワーク装置へのパケットが、前記負荷分散装置により前記複数のバッファに振り分けられ、前記他のネットワーク装置へパケットが出力される前記ネットワーク装置。
  14. 第2のネットワーク装置と第2経路を介してさらに接続され、
    前記第2経路に対応した第2のバッファと、
    受信されたパケットの宛先に従い、出力ポート情報を選択する出力ポート選択制御部と、
    選択された出力ポート情報に従い、パケットを前記負荷分散装置及び前記第2のバッファに振り分ける振り分け部と
    をさらに備えた請求項13に記載のネットワーク装置。
  15. 請求項1又は12に記載の負荷分散装置と、
    受信されたパケットが前記負荷分散装置により振り分けられる複数のバッファと、
    前記バッファからパケットを入力して、該パケットをネットワークへ転送するための複数の転送エンジンと
    を備えたネットワーク装置。
  16. 第1の経路情報が、経路が開放されたことを示す特定の情報であれば経路割り宛てが開放中、前記特定の情報以外であれば経路割り当て済と判断する経路割り当て制御部を、さらに備え、
    前記経路割り当て制御部は、第1の経路情報が前記特定の情報であれば経路割り当てがされていないと判断し、振り分け先の経路を示す第2の経路情報を前記パケット転送制御部及び前記テーブル制御部に知らせ、
    前記経路割り当て制御部は、第1の経路情報が前記特定の情報以外であれば経路が既に割り当てられていると判断し、第1の経路情報を前記パケット転送制御部に知らせ、
    前記パケット転送制御部は、転送された第1又は第2の経路情報で定められる経路に対してパケットを転送すること
    を特徴とする請求項1又は12に記載の負荷分散装置。
  17. 前記識別子は、ハッシュ値であることを特徴とする請求項12に記載の負荷分散装置。
JP2007105045A 2007-04-12 2007-04-12 負荷分散装置及びネットワーク装置 Expired - Fee Related JP4771988B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007105045A JP4771988B2 (ja) 2007-04-12 2007-04-12 負荷分散装置及びネットワーク装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007105045A JP4771988B2 (ja) 2007-04-12 2007-04-12 負荷分散装置及びネットワーク装置

Publications (2)

Publication Number Publication Date
JP2008263436A JP2008263436A (ja) 2008-10-30
JP4771988B2 true JP4771988B2 (ja) 2011-09-14

Family

ID=39985597

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007105045A Expired - Fee Related JP4771988B2 (ja) 2007-04-12 2007-04-12 負荷分散装置及びネットワーク装置

Country Status (1)

Country Link
JP (1) JP4771988B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5001932B2 (ja) * 2008-12-24 2012-08-15 日本電信電話株式会社 マルチリンク試験装置、マルチリンク試験システム、マルチリンク試験方法およびそのプログラム
JP5028431B2 (ja) * 2009-01-07 2012-09-19 株式会社日立製作所 ネットワーク中継装置およびパケット振り分け方法
US8572342B2 (en) 2010-06-01 2013-10-29 Hitachi, Ltd. Data transfer device with confirmation of write completion and method of controlling the same
EP3253006B1 (en) * 2010-12-27 2018-12-12 NEC Corporation Mapping server, network system, packet forwarding method and program
JP2012205048A (ja) * 2011-03-25 2012-10-22 Nec Corp パケット伝送装置、パケット伝送方法、及びコンピュータプログラム
JP6147040B2 (ja) * 2013-03-19 2017-06-14 三菱電機株式会社 通信装置およびフレーム分配方法
GB201322883D0 (en) * 2013-12-23 2014-02-12 Bae Systems Plc Data capture
WO2015097153A1 (en) 2013-12-23 2015-07-02 Bae Systems Plc Data capture
JP6461834B2 (ja) * 2016-02-03 2019-01-30 日本電信電話株式会社 ネットワーク負荷分散装置および方法
CN110109915B (zh) * 2018-01-18 2024-01-05 伊姆西Ip控股有限责任公司 用于管理哈希表的方法、设备和计算机程序产品

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4252003B2 (ja) * 2004-03-05 2009-04-08 富士通株式会社 伝送装置
JP3869440B2 (ja) * 2004-08-31 2007-01-17 日本電信電話株式会社 パケット転送装置

Also Published As

Publication number Publication date
JP2008263436A (ja) 2008-10-30

Similar Documents

Publication Publication Date Title
JP4771988B2 (ja) 負荷分散装置及びネットワーク装置
Hong et al. Finishing flows quickly with preemptive scheduling
CN1689278B (zh) 网络拥塞控制方法和装置
KR101494561B1 (ko) 라우터에서 트래픽을 관리하는 기법
US6836808B2 (en) Pipelined packet processing
CN107454017B (zh) 一种云数据中心网络中混合数据流协同调度方法
WO2009073312A2 (en) Network bandwidth detection, distribution and traffic prioritization
DK2460317T3 (en) System and method for identifying multiple paths between network nodes
US7916743B2 (en) System and method for improved multicast performance
JP6351363B2 (ja) 通信装置およびそのデータ処理方法
WO2021147354A1 (zh) 服务等级配置方法以及装置
KR20210130766A (ko) 메모리 관리 방법 및 장치
JP2012015667A (ja) パケット中継装置
JP2008060700A (ja) バッファ制御装置及びバッファ制御方法
US11310164B1 (en) Method and apparatus for resource allocation
KR101541168B1 (ko) 소프트웨어 정의 네트워크 환경에서 컨트롤러의 플로우에 대한 경로 제어방법
JP2010258660A (ja) ネットワーク装置
JP2019146099A (ja) 負荷分散システム及び負荷分散方法
JP4630231B2 (ja) パケット処理システム、パケット処理方法、およびプログラム
KR20010038486A (ko) 이더넷 큐오에스 지원 버퍼 및 큐 구조와 그 운용 방법
JP6144559B2 (ja) 並列分散管理装置、プログラム及び並列分散処理システム
US20170063725A1 (en) Control method, control device, and storage medium
US9922000B2 (en) Packet buffer with dynamic bypass
Meyer et al. Low latency packet processing in software routers
JPH11196135A (ja) Ipアドレス変換装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090714

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110428

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110524

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110621

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140701

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4771988

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees