JP3584885B2 - パケット伝送装置および伝送方法 - Google Patents
パケット伝送装置および伝送方法 Download PDFInfo
- Publication number
- JP3584885B2 JP3584885B2 JP2001019419A JP2001019419A JP3584885B2 JP 3584885 B2 JP3584885 B2 JP 3584885B2 JP 2001019419 A JP2001019419 A JP 2001019419A JP 2001019419 A JP2001019419 A JP 2001019419A JP 3584885 B2 JP3584885 B2 JP 3584885B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- transmission
- line
- lines
- packet data
- 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
Links
- 230000005540 biological transmission Effects 0.000 title claims description 163
- 238000000034 method Methods 0.000 title claims description 46
- 230000001186 cumulative effect Effects 0.000 claims description 28
- 238000009432 framing Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 35
- 239000000872 buffer Substances 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 238000012546 transfer Methods 0.000 description 8
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Description
【発明の属する技術分野】
本発明は、複数の回線を介して相互に接続された送信装置と受信装置間でパケットデータの送受信を行うパケット伝送装置および伝送方法に関するものである。
【0002】
【従来の技術】
従来より、対向する通信装置間を複数の回線で接続し、パケットデータ転送を高速化する技術が知られている。この手法は、一般的にマルチリンクと呼ばれる。このマルチリンク接続において最大のスループットを得るには、回線負荷が均等になるように、入力パケットを各回線に振り分ける必要がある。
【0003】
パケットの負荷分散を行う方法として、例えば、特開平11−154989号公報に記載されている負荷分散方式では、1つの回線に送出されたデータ量の累計が、ある閾値(これを、以後、キーと呼ぶ)を超えたときに、送出する回線を切り替えている。
【0004】
また、他の従来技術として、特開2000−216815号公報に示されている負荷分散手法がある。この手法には、パケットを回線速度に比例する長さの短パケットに分割して、各回線に分配する方式と、パケットを固定長の短パケットに分割し、各回線に割り振る短パケットの数を回線速度に比例させる方式、の2つがある。
【0005】
【発明が解決しようとする課題】
しかしながら、上記従来の技術には、以下の問題点が存在する。すなわち、特開平11−154989号公報に記載の技術についての第1の問題点は、回線負荷の均一化が困難である、ということである。その理由は、累計送信データ量がキーの値を上回ったときにのみ、回線が切り替わるためである。言い換えれば、この技術では、累計送信データ量がキーの値をどれだけ超過しているかを考慮せずに回線を切り替えるため、この超過分が大きいと、各回線の負荷が不均等になる。
【0006】
この第1の問題点を顕著に表す例を、図11に示す。同図において、通信装置900へ7つのパケット950が入力され、それぞれが、信号制御部902によって、接続部903−1〜903−2のいずれかに振り分けられる。ここで、これら7つのパケット950の長さを、その到着順に4,6,7,19,9,3,8とし、さらに、キー904の値を“8”とする。
【0007】
このとき、回線(#0)901−1、回線(#1)901−2に割り振られるパケットの長さの合計は、図11に示すように、それぞれ19,37となり、回線901−2の負荷は、回線901−1の約2倍になる。
【0008】
特開平11−154989号公報に記載の技術の第2の問題点は、何らかの手段によりキーの値を求める必要がある、ということである。例えば、トラヒックの状態から最適なキーの値を算出するには、それを行うためのアルゴリズムと回路が必要になる。また、キーの値を、あらかじめ人手により設定しておくにしても、その値が適切であるかを十分に検証しなければならない。
【0009】
また、上述した特開2000−216815号公報に示されている負荷分散手法は、受信側が、短パケットから元のパケットを復元する必要があり、高速動作は困難である。よって、この技術を大容量の回線へ適用することは難しいという問題がある。
【0010】
本発明は、上述の課題に鑑みてなされたものであり、その目的とするところは、複数の回線で接続されたパケット伝送装置において、それぞれの回線の負荷が等しくなるようにパケットを振り分けることのできるパケット伝送装置および伝送方法を提供することである。
【0011】
本発明の他の目的は、伝送速度の異なる回線が混在している場合でも、均一な負荷分散を実現できるパケット伝送装置および伝送方法を提供することである。
【0012】
【課題を解決するための手段】
上記の目的を達成するために、第1の発明は、複数の回線を介して相互に接続された送信装置と受信装置からなるパケット伝送装置において、入力されたパケットデータをフレーム化する手段と、上記回線を介して、上記フレーム化されたパケットデータを送信する送信手段と、上記回線ごとに、上記送信されたパケットデータのデータ量の累計を保持する保持手段とを備え、上記送信手段は、上記複数の回線の内、上記データ量の累計が最小の回線を介して上記パケットデータの送信を行うパケット伝送装置を提供する。
【0013】
好ましくは、上記保持手段は、上記送信の度に、その送信されたパケットデータのフレーム長の分についてカウントアップを行う。また、上記送信手段は、上記回線に対応した上記保持手段によるカウント値の差分をもとに、あらかじめ設定した関係に基づいて、上記フレーム化されたパケットデータの転送対象とする回線を選択する。
【0014】
また、好ましくは、伝送速度の異なる回線が混在している場合、上記送信手段は、上記回線各々の伝送速度に反比例する、あらかじめ設定した倍率と上記フレーム長との積に基づいて更新された上記データ量の累計が最小の回線を介して、上記パケットデータの送信を行う。
【0015】
第2の発明は、複数の回線を介して相互に接続された送信装置と受信装置からなるパケット伝送装置における伝送方法であって、入力されたパケットデータをフレーム化するステップと、上記回線を介して、上記フレーム化されたパケットデータを送信する送信ステップと、上記回線ごとに、上記送信されたパケットデータのデータ量の累計を保持する保持ステップとを備え、上記送信ステップは、上記複数の回線の内、上記データ量の累計が最小の回線を介して上記パケットデータの送信を行う伝送方法を提供する。
【0016】
【発明の実施の形態】
以下、添付図面を参照して、本発明の実施の形態を詳細に説明する。
[第1の実施の形態]
図1は、本発明の第1の実施の形態に係るパケット伝送装置の全体構成を示すブロック図である。同図に示すパケット伝送装置は、パケット送信装置1とパケット受信装置2を備え、これらの装置が、N本の並行する回線(#0〜#(N−1))3−1〜3−Nで相互に接続される構成を有する。
【0017】
なお、図1に示すパケット伝送装置の構成は、本発明に係る負荷分散手法を実現するための一構成例である。また、パケット送信装置1とパケット受信装置2とを接続する、N本の並行する回線3−1〜3−Nの伝送速度は、ここでは、全て等しいと仮定する。
【0018】
図2は、パケット送信装置1内の負荷分散処理部4の構成を示すブロック図である。この負荷分散処理部4の累積送信データ量カウンタ(#0〜#(N−1))25−1〜25−Nには、回線3−1〜3−Nがそれまでに送出したデータ量の累計が保持される。ここでは、この累積送信データ量カウンタの値が最小である回線が、パケットの振り分け先となる。
【0019】
図1に示すように、パケット送信装置1は、負荷分散処理部4と送信部(#0〜#(N−1))6−1〜6−Nからなり、パケット受信装置2は、パケット整列処理部7と受信部(#0〜#(N−1))8−1〜8−Nを有する。これらの送信部6−1〜6−Nと受信部8−1〜8−Nは、回線3−1〜3−Nを介して互いに接続されている。
【0020】
負荷分散処理部4は、信号入力端子5から入力されたパケットに対して、パケットの順序を示す通し番号(以後、シーケンス番号と呼ぶ)を付加して、フレームを生成し、そのフレームを送信部6−1〜6−Nのいずれかに送出する。また、パケット整列処理部7は、受信部8−1〜8−Nが受信したフレームを、シーケンス番号の順に並び替えるとともに、フレームからシーケンス番号を除去して、それらを信号出力端子9にパケットとして出力する。
【0021】
次に、図2を参照して、負荷分散処理部4の詳細な構成について説明する。同図に示す負荷分散処理部4のリンクアップフラグ(#0〜#(N−1))24−1〜24−Nは、対応する回線3−1〜3−Nの状態を示すフラグであり、回線が正常であれば“1”、異常時に“0”となる。累積送信データ量カウンタ(#0〜#(N−1))25−1〜25−Nは、対応する回線3−1〜3−Nに送出されたフレームの長さの累計を保持する。
【0022】
フレーム生成部20は、信号入力端子5から入力されたパケットに、シーケンス番号カウンタ21が出力するシーケンス番号を付加して、フレームを生成し、それをスイッチ22に供給する。また、フレーム生成部20は、生成したフレームの長さをフレーム長26として出力する。
【0023】
回線選択部23は、フレーム生成部20にフレームが入力されたことを契機として、リンクアップフラグ24−1〜24−N、および累積送信データ量カウンタ25−1〜25−Nの値を参照して、フレームの転送先を決定する。また、スイッチ22は、回線選択部23の決定に従って、フレームを送信部6−1〜6−Nのいずれかに転送する。これらの送信部6−1〜6−Nにフレームが送出されると、対応する累積送信データ量カウンタ(25)は、フレーム長26の分だけ、カウントアップする。
【0024】
次に、パケット受信装置2内のパケット整列処理部7について説明する。図3は、パケット整列処理部7の詳細な構成を示すブロック図である。同図に示すバッファ選択部60は、受信部8−1〜8−Nが受信したフレームを、パケットとシーケンス番号に分離する。ここでパケットは、受信バッファ(#0〜#M−1)62−1〜62−Mのいずれかに転送され、シーケンス番号は、受信シーケンス番号レジスタ(#0〜#M−1)64−1〜64−Mのいずれかに代入される。なお、受信バッファ62−1〜62−Mそれぞれは、フレーム生成部20が生成するフレームを、常に収容できる大きさを持つ。
【0025】
パケット送出制御部61は、受信フラグ(#0〜#M−1)63−1〜63−M、受信シーケンス番号レジスタ(#0〜#M−1)64−1〜64−M、リンクアップフラグ(#0〜#(N−1))65−1〜65−N、回線シーケンス番号レジスタ(#0〜#(N−1))66−1〜66−N、シーケンス番号カウンタ67を参照して、受信バッファ62−1〜62−Mに格納されているパケットを、信号出力端子9へ送出する。
【0026】
リンクアップフラグ65−1〜65−Nは、対応する回線3−1〜3−Nの状態を示すフラグであり、回線が正常であれば“1”、異常であれば“0”をとる。また、受信フラグ63−1〜63−Mは、対応する受信バッファ62−1〜62−Mにパケットが格納されているときに“1”を、それ以外のときに“0”をとる。
【0027】
受信シーケンス番号レジスタ64−1〜64−Mは、対応する受信バッファ62−1〜62−Mに格納されているパケットのシーケンス番号を保持する。回線シーケンス番号レジスタ66−1〜66−Nは、対応する受信部8−1〜8−Nが受信したフレームのシーケンス番号を記憶する。また、シーケンス番号カウンタ67は、信号出力端子9に送出すべきパケットのシーケンス番号を示す。
【0028】
アイドルタイマー68は、送出すべきパケットが受信バッファ内に存在しない間、カウントダウンされる。そして、このタイマーの値が“0”になると、シーケンス番号カウンタ67を強制的にカウントアップする。
【0029】
次に、本実施の形態に係るパケット伝送装置の動作について詳細に説明する。最初に、図4に示すフローチャートを参照して、パケット送信装置1の負荷分散処理部4の動作を説明する。
【0030】
なお、図4中の変数の定義は、以下の通りである。
AATD[x] (0≦x <N)…累積送信データ量カウンタ25−1〜25−Nの値
linkup[x] (0≦x <N)…リンクアップフラグ24−1〜24−Nの値
SN…シーケンス番号カウンタ21の値
【0031】
図4のステップS100では、パケット送信装置1の初期化時における、累積送信データ量カウンタ25−1〜25−N、およびシーケンス番号カウンタ21のゼロクリア処理を行う。そして、続くステップS101において、信号入力端子5からパケットが入力されたどうかを調べる。ここで、パケットが入力されていれば、フレーム生成部20は、シーケンス番号カウンタ21の値をパケットに付加し、フレームを生成する(ステップS102)。このとき、エラー検出のためのCRC(巡回冗長検査)をパケットに付加してもよい。
【0032】
回線選択部23は、回線3−1〜3−Nの中から、累積送信データ量カウンタ(25)の値が最小(つまり、AATD [i] (ただし、0 ≦i<N )の最小値)であり、かつ、リンクアップフラグ(24)がセットされている(つまり、linkup[x] =1)回線を検索する(ステップS103)。これを満たす回線が見つからなければ(ステップS104でNo)、ステップS101に戻る。
【0033】
一方、上記の条件を満たす回線が見つかれば、スイッチ22は、その回線に対応する送信部(6)にフレームを転送する(ステップS105)。例えば、ステップS103で、回線3−3が検索されたとき(すなわち、図4のxが“2”のとき)には、送信部6−3にフレームが転送される。
【0034】
ステップS106では、上記の検索された回線に対応する累積送信データ量カウンタ(25)にフレーム長を加算し、かつ、シーケンス番号カウンタ21をカウントアップする。そして、処理をステップS101に戻す。
【0035】
次に、パケット受信装置2のパケット整列処理部7の動作を説明する。図5、図6は、パケット整列処理部7の動作を示すフローチャートであり、同図中での変数の定義は、以下の通りである。
【0036】
SNcurrent …シーケンス番号カウンタ67の値
SNlatest[x] (0≦x <N)…回線シーケンス番号レジスタ66−1〜66−Nの値
SNbuffer[x] (0≦x <M)…受信シーケンス番号レジスタ64−1〜64−Mの値
recv[x] (0≦x <M)…受信フラグ63−1〜63−Mの値
linkup[x] (0≦x <N)…リンクアップフラグ65−1〜65−Nの値
【0037】
また、図5、図6中における記号の意味は、
mod …除算の剰余
min[x]…x の最小値
である。
【0038】
図5のステップS140では、パケット受信装置2の初期化時において、シーケンス番号カウンタ67および回線シーケンス番号レジスタ66−1〜66−Nをゼロクリアし、受信フラグ63−1〜63−Mのリセットとアイドルタイマー68の初期化を行う。その後、受信部8−1〜8−Nのいずれかが、フレームを受信したかどうかを調べる(ステップS141)。
【0039】
フレームが受信された場合(ステップS141でYes)、バッファ選択部60によって、受信したフレームを適切な受信バッファ(62)へ格納する処理が行われる。そのため、まず、図6のステップS160において、受信したフレームにエラーがあるかどうかを調べる。これは、例えば、フレームに付加されたCRCで判定できる。
【0040】
受信フレームにエラーがあれば、そのフレームを廃棄し(ステップS165)、処理をステップS141に戻す。しかし、エラーがなければ、そのフレームに付加されているシーケンス番号とシーケンス番号カウンタ67の値を比較する(ステップS161)。
【0041】
ここで、シーケンス番号よりも、シーケンス番号カウンタ67の値の方が大きければ、そのフレームを廃棄し(ステップS165)、ステップS141に戻る。しかし、そうでなければ、処理を継続する。すなわち、フレームを受信した回線に対応する回線シーケンス番号レジスタ(66)に、受信フレームに付加されているシーケンス番号を入力する(ステップS162)。
【0042】
さらに、ステップS163において、フレームからパケットを抽出して、それを受信バッファ(62)に転送する。ここで、パケットの転送先となる受信バッファ(62)の番号は、フレームに付加されているシーケンス番号をMで割ったときの剰余とする。例えば、剰余が1のときには、受信バッファ62−2がパケットの転送先となる。以後、この剰余に“1”を加えた数値をRFとする。
【0043】
フレームに付加されているシーケンス番号を受信シーケンス番号レジスタ64−RFに入れ、受信フラグ63−RFをセットする(ステップS164)。その後、処理は、ステップS141に戻る。
【0044】
ステップS141においてフレームが受信されなかった場合について述べる。この場合、パケット送出処理部61によって、送出すべきパケットを受信バッファ62−1〜62−Mの中から探索して、それを信号出力端子9に送出する処理と、フレームが伝送中に失われたか否かを判定する処理の2つが行われる。これら2つの処理のどちらを実行するかは、受信フラグ63−1〜63−Mの値で決定される。以下、これらの処理について説明する。
【0045】
まず、ステップS142で、受信フラグ(63)の値を調べる。ここで、参照される受信フラグ(63)の番号は、シーケンス番号カウンタ67の値をMで割ったときの剰余である。例えば、この剰余が“0”であれば、受信フラグ63−1の値が参照される。以後、この剰余に“1”を加えた数値をRCとする。
【0046】
ステップS142において、受信フラグ63−RCがセットされている(=1)と判断された場合、受信シーケンス番号レジスタ64−RCの値と、シーケンス番号カウンタ67の値が一致しているかどうかを判定する(ステップS143)。これらの値が一致していなければ、シーケンス番号カウンタ67のカウントアップと、アイドルタイマー68の初期化を行い(ステップS147)、その後、処理は、ステップS141へ戻る。
【0047】
しかし、受信シーケンス番号レジスタ64−RCの値と、シーケンス番号カウンタ67の値が一致していれば、ステップS144において、信号出力端子9にパケットを送出できるかどうかを判定する。そして、パケットの送出が可能であれば、受信バッファ62−RCに格納されているパケットを信号出力端子9へ送出する(ステップS145)。
【0048】
その後、ステップS146において、受信フラグ63−RCをリセットし、さらに、シーケンス番号カウンタ67のカウントアップと、アイドルタイマー68の初期化を行い(ステップS147)、処理をステップS141に戻す。
【0049】
他方、受信フラグ63−RCがリセットされている(=0)場合、伝送途中でフレームが失われたか否かを判断するために、回線シーケンス番号レジスタ66−1〜66−Nの最小値と、シーケンス番号カウンタ67の値を比較する(ステップS148)。この際、リンクアップフラグ(65)がセットされている回線についてのみ、最小値を計算する。
【0050】
ここで、シーケンス番号カウンタ67の値の方が、回線シーケンス番号レジスタ(66)の最小値よりも小さいと判定されたときには、フレームが失われたと判断し、失われたフレームの送出を諦める。そこで、ステップS147において、シーケンス番号カウンタ67のカウントアップと、アイドルタイマー68の初期化を行い、処理をステップS141に戻す。
【0051】
しかし、ステップS148での条件が満たされなければ(つまり、シーケンス番号カウンタ67の値が、回線シーケンス番号レジスタ(66)の最小値以上であれば)、当該処理を継続し、次のステップS149において、アイドルタイマー68の値が“0”であるかどうかを調べる。
【0052】
アイドルタイマー68の値が“0”のときは、そのアイドルタイマーの初期値で指定された時間が経過しても、送出すべきパケットを受信していない状態であるため、そのパケットの送出を諦める。そこで、ステップS147において、シーケンス番号カウンタ67のカウントアップと、アイドルタイマー68の初期化を行う。その後、処理をステップS141へ戻す。
【0053】
しかし、アイドルタイマー68の値が“0”でなければ、受信フラグ63−1〜63−Mの全てがリセットされているかどうかを調べる(ステップS150)。そして、受信フラグ63−1〜63−Mが、1つでもセットされていれば、ステップS151において、アイドルタイマー68をカウントダウンし、処理をステップS141へ戻す。
【0054】
受信フラグ63−1〜63−Mの全てがリセットされていれば(ステップS150でYes)、受信バッファ62−1〜62−Mは、全て空であり、送出すべきパケットは存在しない。よって、この場合、アイドルタイマー68をカウントダウンする必要がないため、ステップS151をスキップして、処理をステップS141に戻す。
【0055】
ここで、累積送信データ量カウンタ、またはシーケンス番号カウンタのオーバーフローによって発生する不具合を解決する手法について述べる。負荷分散処理部4の累積送信データ量カウンタ25−1〜25−N、およびシーケンス番号カウンタ21は、パケットの送信が行われるたびに増加するが、減少することはない。よって、これらのカウンタは、遅かれ早かれオーバーフローする。
【0056】
このようなオーバーフローの発生を考慮せずに、累積送信データ量またはシーケンス番号の大小比較を行うと、負荷分散処理が正しく動作しなくなる可能性がある。この現象について、以下に例を挙げて説明する。
【0057】
簡単のため、ここでは、パケット伝送装置を構成する回線(3)の本数Nを、N=2とし、累積送信データ量カウンタ25−1,25−2のビット幅をそれぞれ3とする。すなわち、これら2つのカウンタは、0以上7以下の整数値をとる。さらに、これらのカウンタの値を、
累積送信データ量カウンタ25−1の値=6
累積送信データ量カウンタ25−2の値=7
のように仮定し、負荷分散処理部4の動作を、図4のステップS103より開始する。
【0058】
図4のステップS103において、累積送信データ量カウンタ25−1と25−2の値を比較すると、累積送信データ量カウンタ25−1の値の方が小さいため、送信部6−1にフレームが送出される(ステップS105)。ここで、フレーム長26が“3”であるとした場合、累積送信データ量カウンタ25−1は、“3”だけカウントアップする(ステップS106)。
【0059】
上述のように、カウンタは3ビット幅であり、9(=6+3)を表現できないため、オーバーフローする。よって、この時点での累積送信データ量カウンタ25−1〜25−2の値は、
累積送信データ量カウンタ25−1の値=1
累積送信データ量カウンタ25−2の値=7
となる。
【0060】
この状態で新たなパケットが到着し、ステップS103の処理が実行されると、その場合には、累積送信データ量カウンタ25−1が選択される。その結果、前回と同様に、送信部6−1にフレームが送出されてしまう(ステップS105)。これは、明らかに送信部6−1、および回線3−1に負荷が偏っており、均一な負荷分散が達成されていないことになる。
【0061】
この問題に対処するため、ステップS103で実行される累積送信データ量カウンタ25−1〜25−2の大小比較の方法を考慮する。すなわち、ここでは、図7に示す関係に従って大小を決定する。図7中の変数X,Yそれぞれを、累積送信データ量カウンタ25−1,25−2の値として、上記のステップS103における処理例を再度、検証する。
【0062】
ステップS103の1回目の実行では、X=6,Y=7,X−Y=−1であるから、図7からは、X<Yが得られる。よって、この場合、累積送信データ量カウンタ25−1が選択される。これは前回の結果と等しい。
【0063】
ステップS103の2回目の実行では、X=1,Y=7,X−Y=−6であるから、図7を参照すると、X≧Yが得られる。この場合、累積送信データ量カウンタ25−2が選択され、ステップS105において、送信部6−2にフレームが転送される。
【0064】
なお、上記の実施の形態1に示す例では、累積送信データ量カウンタ25−1〜25−Nのビット幅を3と仮定したが、ビット幅は、2以上であれば任意の値でよい。また、ビット幅をBと表したときの、累積送信データ量カウンタ25−1〜25−Nの値X,Yの大小関係は、以下に示すようになる。
【0065】
−2B <X−Y<−2B−1 ならば、X≧Yと判定する。
−2B−1 ≦X−Y<0ならば、X<Yと判定する。
0≦X−Y<2B−1 ならば、X≧Yと判定する。
2B−1 ≦X−Y<2B ならば、X<Yと判定する。
【0066】
また、ここでは、累積送信データ量カウンタ25−1〜25−Nの大小比較方法について説明したが、同様の方法で、シーケンス番号カウンタ21のオーバーフローに対処できる。
【0067】
以上説明したように、本実施の形態によれば、パケット伝送装置の送信側において、回線毎に送出データ量の累計を保持するカウンタを設け、その送出データ量が最小の回線をパケットの送出先とする負荷分散手法を用いることで、それぞれの回線の負荷が等しくなるようにパケットが振り分けられ、パケット伝送装置間のスループットが最大になる。
【0068】
また、かかる負荷分散手法は、パケット単位で処理を行うものであり、従来技術のようにパケットを分割して、複数の短パケットを生成するものではないため、高速動作が可能であり、大容量の回線にも適用できる。
【0069】
さらに、累積送信データ量カウンタのカウンタ値の差分に応じて、カウンタ値の大小比較をすることで、これらの累積送信データ量カウンタにオーバーフローが生じても、均一な負荷分散を実現できる。
【0070】
また、送信装置側でパケットにシーケンス番号を付加し、受信装置側で、そのシーケンス番号の順にパケットを整列させるため、負荷分散処理の前後でパケットの順序が入れ替わることはない、という効果がある。
【0071】
[第2の実施の形態]
以下、本発明の第2の実施の形態について説明する。なお、本実施の形態に係るパケット伝送装置は、図1に示す、上記第1の実施の形態に係るパケット伝送装置と同じ構成をとるため、ここでは、その図示および説明を省略する。
【0072】
第1の実施の形態では、パケット伝送装置を構成する回線3−1〜3−Nの伝送速度は、全て等しいと仮定したが、本実施の形態に係るパケット伝送装置は、伝送速度が異なる回線の混在を許容する。従って、かかる混在を許容するために、本実施の形態に係るパケット送信装置1の負荷分散処理部4は、図8に示す構成を有する。なお、図8において、図2に示す、上記第1の実施の形態に係る負荷分散処理部4と同一構成要素には、同一符号を付してある。
【0073】
そこで、図8に示すブロック図を参照して、本実施の形態に係る負荷分散処理部4の詳細な構成について説明する。同図に示すリンクアップフラグ(#0〜#(N−1))44−1〜44−Nは、対応する回線3−1〜3−Nの状態を示すフラグであり、回線が正常であれば“1”を、異常時には“0”をとる。フレーム生成部40は、信号入力端子5から入力されたパケットに、シーケンス番号カウンタ41が出力するシーケンス番号を付加してフレームを生成し、それらをスイッチ42に供給する。また、フレーム生成部40は、生成したフレームの長さを、フレーム長48として出力する。
【0074】
プライマリ累積送信データ量カウンタ(#0〜#(N−1))47−1〜47−Nは、対応する回線3−1〜3−Nに送出されたフレームの長さの累計を保持する。カウント増分算出部(#0〜#(N−1))46−1〜46−Nは、対応する回線3−1〜3−Nの伝送速度とフレーム長48に応じて、プライマリ累積送信データ量カウンタ47−1〜47−Nの増分値を求める。
【0075】
この増分値とプライマリ累積送信データ量カウンタ47−1〜47−Nの値を加算した結果が、セカンダリ累積送信データ量カウンタ(#0〜#(N−1))45−1〜45−Nに代入される。回線選択部43は、フレーム生成部40にフレームが入力されたことを契機として、リンクアップフラグ44−1〜44−N、およびセカンダリ累積送信データ量カウンタ45−1〜45−Nの値を参照して、フレームの転送先を決定する。
【0076】
スイッチ42は、回線選択部43での決定に従って、フレームを送信部6−1〜6−Nのいずれかに転送する。送信部6−1〜6−Nにフレームが送出されると、対応するセカンダリ累積送信データ量カウンタ(45)の値をプライマリ累積送信データ量カウンタ(47)に代入する。
【0077】
図9は、第2の実施の形態に係るパケット伝送装置の負荷分散処理部4の動作を詳細に示すフローチャートである。なお、図9中における変数の定義は、以下の通りである。
【0078】
AATD1[x] (0 ≦x <N)…プライマリ累積送信データ量カウンタ47−1〜47−Nの値
AATD2[x] (0 ≦x <N)…セカンダリ累積送信データ量カウンタ45−1〜45−Nの値
linkup[x] (0≦x <N)…リンクアップフラグ44−1〜44−Nの値
SN…シーケンス番号カウンタ41の値
Rate Factor[x] (0 ≦X <N)…回線3−1〜3−Nの伝送速度に反比例する倍率
【0079】
図9のステップS120において、パケット送信装置の初期化時、プライマリ累積送信データ量カウンタ47−1〜47−N、およびシーケンス番号カウンタ41をゼロクリアし、続くステップS121で、信号入力端子5からパケットが入力されたかどうかを調べる。ここで、パケットが入力されていれば、フレーム生成部40は、シーケンス番号カウンタ41の値をパケットに付加し、フレームを生成する(ステップS122)。なお、このとき、エラー検出のためのCRCをパケットに付加してもよい。
【0080】
カウント増分算出部46−1〜46−Nは、回線3−1〜3−Nの伝送速度に反比例する倍率(Rate Factor )とフレーム長48の積を計算し、その積と、プライマリ累積送信データ量カウンタ47−1〜47−Nの和を、セカンダリ累積送信データ量カウンタ45−1〜45−Nに代入する(ステップS123)。ここで、回線3−1〜3−Nの伝送速度に反比例する倍率とは、例えば、図10に示すような関係を意味している。
【0081】
ステップS124において、回線選択部43は、回線3−1〜3−Nの中から、セカンダリ累積送信データ量カウンタ(45)の値が最小であり、かつ、リンクアップフラグ(44)がセットされている回線を検索する。そのような回線が見つからなければ(ステップS125でNo)、処理をステップS121に戻す。
【0082】
しかし、上記の条件を満たす回線が見つかれば、スイッチ42は、その回線に対応する送信部(6)へフレームを転送する(ステップS126) 。例えば、ステップS124で、回線3−3が検索されたとき(すなわち、図9のxが“2”のとき)には、送信部6−3にフレームが転送される。
【0083】
ステップS127では、検索された回線に対応するセカンダリ累積送信データ量カウンタ(45)の値をプライマリ累積送信データ量カウンタ(47)に代入して、シーケンス番号カウンタ41をカウントアップする。その後、処理をステップS121に戻す。
【0084】
なお、セカンダリ累積送信データ量カウンタ45−1〜45−N、およびシーケンス番号カウンタ41のオーバーフローに対処する方法は、上記第1の実施の形態に係る負荷分散処理部における方法と同じである。
【0085】
このように、本実施の形態によれば、各回線の伝送速度に反比例する所定の倍率とフレーム長との積を用いて送出データ量の累計を更新し、その更新された送信データ量の累計が最小である回線に対してパケットデータを送信するため、パケット伝送装置の各回線の伝送速度が互いに異なっていても、均一な負荷分散を実現できる。
【0086】
【発明の効果】
以上説明したように、第1の発明によれば、複数の回線で接続されたパケット伝送装置の送信装置側に入力されたパケットデータをフレーム化する手段と、これらの回線を介して、上記フレーム化されたパケットデータを送信する手段と、上記回線ごとに、上記送信されたパケットデータのデータ量の累計を保持する手段を備え、上記複数の回線の内、データ量の累計が最小の回線を介してパケットデータの送信を行うことで、各回線の負荷が等しくなるようにパケットが振り分けられ、結果として、均一な負荷分散が達成される。
【0087】
また、伝送速度の異なる回線が混在している場合、伝送速度に反比例する所定の倍率を各回線に設定し、その倍率とフレーム長との積に基づいて更新された送信データ量の累計が最小である回線に対してパケットデータを送信することで、パケット伝送装置の各回線の伝送速度が互いに異なっていても、均一な負荷分散を実現できる。
【0088】
第2の発明によれば、入力されたパケットデータをフレーム化するステップと、上記の回線を介して、フレーム化されたパケットデータを送信するステップと、上記回線ごとに、上記送信されたパケットデータのデータ量の累計を保持するステップとを備え、上記の送信ステップが、複数の回線の内、上記データ量の累計が最小の回線を介してパケットデータの送信を行うことで、各回線に対して均一な負荷分散を実現できる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態に係るパケット伝送装置の全体構成を示すブロック図である。
【図2】第1の実施の形態に係るパケット送信装置内の負荷分散処理部の構成を示すブロック図である。
【図3】第1の実施の形態に係るパケット整列処理部の詳細な構成を示すブロック図である。
【図4】第1の実施の形態に係る負荷分散処理部の動作を示すフローチャートである。
【図5】第1の実施の形態に係るパケット整列処理部の動作を示すフローチャートである。
【図6】第1の実施の形態に係るパケット整列処理部の動作を示すフローチャートである。
【図7】累積送信データ量カウンタとシーケンス番号カウンタの大小関係を示す図である。
【図8】本発明の第2の実施の形態に係るパケット伝送装置の負荷分散処理部の構成を示すブロック図である。
【図9】第2の実施の形態に係るパケット伝送装置の負荷分散処理部の動作を詳細に示すフローチャートである。
【図10】第2の実施の形態に係る回線の伝送速度と、それに反比例する倍率との関係の一例を示す図である。
【図11】従来技術の問題点を説明するための図である。
【符号の説明】
1 パケット送信装置
2 パケット受信装置、
3−1〜3−N 回線(#0〜#(N−1))
4 負荷分散処理部
6−1〜6−N 送信部(#0〜#(N−1))
7 パケット整列処理部
8−1〜8−N 受信部(#0〜#(N−1))
20 フレーム生成部
21 シーケンス番号カウンタ
22 スイッチ
23 回線選択部
24−1〜24−N リンクアップフラグ(#0〜#(N−1))
25−1〜25−N 累積送信データ量カウンタ(#0〜#(N−1))
60 バッファ選択部
61 パケット送出制御部
62−1〜62−M 受信バッファ(#0〜#M−1)
63−1〜63−M 受信フラグ(#0〜#M−1)
64−1〜64−M 受信シーケンス番号レジスタ(#0〜#M−1)
65−1〜65−N リンクアップフラグ(#0〜#(N−1))
66−1〜66−N 回線シーケンス番号レジスタ(#0〜#(N−1))
67 シーケンス番号カウンタ
Claims (8)
- 複数の回線を介して相互に接続された送信装置と受信装置からなるパケット伝送装置において、
入力されたパケットデータをフレーム化する手段と、
前記回線を介して、前記フレーム化されたパケットデータを送信する送信手段と、
前記回線ごとに、前記送信されたパケットデータのデータ量の累計を保持する保持手段とを備え、
前記保持手段は、前記送信の度に、その送信されたパケットデータのフレーム長の分についてカウントアップを行い、
前記送信手段は、前記回線に対応した前記保持手段によるカウント値の差分をもとに、あらかじめ設定した関係に基づいて、前記フレーム化されたパケットデータの転送対象とする回線を選択することを特徴とするパケット伝送装置。 - 前記カウント値の対比する値をX,Yとし、そのカウントのビット幅をBとしたとき、前記関係は、
−2B <X−Y<−2B-1 ならば、X≧Y,−2B-1 ≦X−Y<0ならば、X<Y,0≦X−Y<2B-1 ならば、X≧Y,そして、2B-1 ≦X−Y<2B ならば、X<Yで表されることを特徴とする請求項1記載のパケット伝送装置。 - 前記複数の回線各々は、伝送速度が等しいことを特徴とする請求項2記載のパケット伝送装置。
- 前記複数の回線は、伝送速度の異なる回線が混在していることを特徴とする請求項2記載のパケット伝送装置。
- 前記送信手段は、前記回線各々の伝送速度に反比例する、あらかじめ設定した倍率と前記フレーム長との積に基づいて更新された前記データ量の累計が最小の回線を介して、前記パケットデータの送信を行うことを特徴とする請求項4記載のパケット伝送装置。
- 前記送信装置において、前記入力されたパケットデータにシーケンス番号を付与し、前記受信装置において、そのシーケンス番号に従って、受信したパケットデータを整列させることを特徴とする請求項3または5に記載のパケット伝送装置。
- 複数の回線を介して相互に接続された送信装置と受信装置からなるパケット伝送装置における伝送方法であって、
入力されたパケットデータをフレーム化するステップと、
前記回線を介して、前記フレーム化されたパケットデータを送信する送信ステップと、
前記回線ごとに、前記送信されたパケットデータのデータ量の累計を保持する保持ステップとを備え、
前記保持ステップは、前記送信の度に、その送信されたパケットデータのフレーム長の分をカウントアップし、
前記送信ステップでは、前記回線に対応した前記保持ステップでのカウント値の差分に応じた、あらかじめ設定した関係に基づいて、前記フレーム化されたパケットデータの転送対象とする回線が選択されることを特徴とする伝送方法。 - 前記送信ステップは、前記複数の回線に伝送速度の異なる回線が混在している場合、これらの回線各々の伝送速度に反比例する、あらかじめ設定した倍率と前記フレーム長との積に基づいて前記データ量の累計を更新し、この更新された累計が最小の回線を介して、前記パケットデータの送信を行うことを特徴とする請求項7記載の伝送方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001019419A JP3584885B2 (ja) | 2001-01-29 | 2001-01-29 | パケット伝送装置および伝送方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001019419A JP3584885B2 (ja) | 2001-01-29 | 2001-01-29 | パケット伝送装置および伝送方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2002223234A JP2002223234A (ja) | 2002-08-09 |
| JP3584885B2 true JP3584885B2 (ja) | 2004-11-04 |
Family
ID=18885299
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2001019419A Expired - Fee Related JP3584885B2 (ja) | 2001-01-29 | 2001-01-29 | パケット伝送装置および伝送方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3584885B2 (ja) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004147029A (ja) * | 2002-10-23 | 2004-05-20 | Hiroaki Higaki | データ転送方法及びその装置 |
| WO2004088940A1 (ja) * | 2003-03-31 | 2004-10-14 | Fujitsu Limited | 負荷分散システム |
| JP2009130759A (ja) * | 2007-11-27 | 2009-06-11 | Fujitsu Ltd | 回線通信方法及び装置 |
| JP6482296B2 (ja) * | 2015-01-28 | 2019-03-13 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | パケット処理システム、通信システム、パケット処理装置、パケット処理方法、及びプログラム |
-
2001
- 2001-01-29 JP JP2001019419A patent/JP3584885B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2002223234A (ja) | 2002-08-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6876669B2 (en) | Packet fragmentation with nested interruptions | |
| US9654419B2 (en) | Fabric channel control apparatus and method | |
| EP1018823B1 (en) | Apparatus and method for packet switching with supertrunking | |
| Cheriton | Sirpent: A high-performance internetworking approach | |
| US6788686B1 (en) | Method of maintaining packet order in multipath transmission systems having non-uniform traffic splitting | |
| US7158637B2 (en) | Security communication packet processing apparatus and the method thereof | |
| US7027443B2 (en) | Reassembly engines for multilink applications | |
| CN108243120B (zh) | 基于灵活以太网的业务流传输方法、装置和通信系统 | |
| EP1411684B1 (en) | Inter-packet gap generator for a network device and corresponding process | |
| EP0836781A1 (en) | Method and apparatus for synchronizing data transmission with on-demand links of a network | |
| CN108881056A (zh) | 一种拥塞控制方法、网络设备及其网络接口控制器 | |
| EP1297665B1 (en) | Apparatus and method for efficient hashing in networks | |
| EP1037497A2 (en) | Method and apparatus for bundling serial data transmission links to obtain increased data throughput | |
| US7184402B1 (en) | Method for multi-link load balancing to improve sequenced delivery of frames at peer end | |
| Sabnani et al. | A high speed transport protocol for datagram/virtual circuit networks | |
| EP2289210A1 (en) | Method and system for connecting two nodes over multiple communication links | |
| JP3584885B2 (ja) | パケット伝送装置および伝送方法 | |
| US5587997A (en) | Method and apparatus for determining when all packets of a message have arrived | |
| Bolot et al. | Performance analysis of transport protocols over congestive channels | |
| Martin-Flatin et al. | TCP congestion control in fast long-distance networks | |
| Lau et al. | Design and analysis of a multilink access subsystem based on the Batcher-banyan network architecture | |
| WO2008117128A1 (en) | Improvements in or relating to packet based data cell delineation | |
| US20250080471A1 (en) | Scalable ip fragmentation using packet replication | |
| JP2001111556A (ja) | Redによる輻輳回避装置及びその方法 | |
| US20030169764A1 (en) | Network device for sampling a packet |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040406 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040413 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040607 |
|
| 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: 20040713 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040726 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070813 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080813 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080813 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090813 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090813 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100813 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110813 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110813 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120813 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130813 Year of fee payment: 9 |
|
| LAPS | Cancellation because of no payment of annual fees |