JP3831920B2 - Data transfer device, data transfer method, data transfer program, and storage medium on which data transfer program is recorded - Google Patents
Data transfer device, data transfer method, data transfer program, and storage medium on which data transfer program is recorded Download PDFInfo
- Publication number
- JP3831920B2 JP3831920B2 JP2002340626A JP2002340626A JP3831920B2 JP 3831920 B2 JP3831920 B2 JP 3831920B2 JP 2002340626 A JP2002340626 A JP 2002340626A JP 2002340626 A JP2002340626 A JP 2002340626A JP 3831920 B2 JP3831920 B2 JP 3831920B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- data transfer
- input
- buffer
- stored
- 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
Images
Landscapes
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、データ転送装置、データ転送方法、データ転送プログラム、ならびに、データ転送プログラムが記録された記憶媒体に関する。
【0002】
【従来の技術】
ネットワーク上を流れるデータパケットを所定の宛先に転送するデータ転送装置が、インターネットなどのネットワークにおける主要な構成要素として知られている。これらのデータ転送装置による転送方式は、通信を行う端末同士についてエンドツーエンドで確立された接続手段を用いて通信を行う回線接続型の転送方式と、データ転送装置がデータパケットを一時蓄積してからヘッダ部を参照して適切な宛先に送信する蓄積型の転送方式がある。
【0003】
そして、蓄積型の転送方式は、入力されたパケットを一時的にバッファに蓄積するため、蓄積に伴う遅延の低減化、ならびに、度々到着する入力パケットのバッファあふれによるパケットロスを低減させることが、課題となっており、様々な対処方法が提案されている(例えば、特許文献1)。
【0004】
【特許文献1】
特開平8−293867号公報(例えば、段落[0020])
【0005】
【発明が解決しようとする課題】
ここで、データ転送装置がパケットを受信する際に使用される入力ポート、ならびに、データ転送装置がパケットを送信する際に使用される出力ポートに対応して、バッファを設ける方式が、知られている。
【0006】
まず、データ転送装置の入力ポートに対応する入力バッファを設ける方式が知られている。本方式は、入力ポートに到着したパケットを、その入力ポートに対応する入力バッファに一時格納するもので、入力ポートのトラフィック分だけを考慮して入力バッファを用意するために、入力バッファのメモリ効率に優れている反面、遅延が大きいことが知られている。つまり、入力バッファ内の先着したパケットを転送する出力ポートが通信中によって塞がっていた場合に、入力バッファ内の後から受信したパケットは、先着したパケットの送信を待つために遅延が発生する。
【0007】
また、データ転送装置の出力ポートに対応する出力バッファを設ける方式が知られている。これにより、入力ポートに先着したパケットの送信を待つことなく、次々にパケットが出力バッファに格納されるため、遅延は低減される。しかし、所定の出力ポートに複数の入力ポートからのトラフィックが集中することも考えられるので、複数の入力ポートからのトラフィック分の出力バッファのメモリ量を確保するために、出力バッファのメモリの使用は、あまり効率的とはいえないので、パケットロスを発生させてしまうこともある。
【0008】
よって、入力バッファおよび出力バッファの効果は異なっており、どちらの方式が優れているかは、データ転送装置が処理するトラフィックの量などによって変わってくるため、一概に決めるのは困難である。また、ネットワーク上を流れるトラフィックは、映像情報のようにデータ量に周期性があるものや、電子メールのように一時的に大量の通信を伴うバースト性のあるものなど、様々である。よって、こうしたトラフィックに対応して、パケットロスおよび遅延を低減させる蓄積型の転送方式が、求められている。
【0009】
そこで本発明は、前記に鑑み、パケットロスを減らしつつ転送に関する遅延を低減させるデータ転送装置を提供することを、主な目的とする。
【0010】
【課題を解決するための手段】
本発明は、前記目的を達成するために創案されたものであり、まず、請求項1に記載のデータ転送装置は、入力ポートから受信したパケットを前記入力ポートに対応する入力バッファに格納する手段と、前記パケットの経路を検索する手段と、前記パケットの経路となる出力ポートに対応する出力バッファに前記パケットを格納する手段と、前記出力バッファから前記出力ポートを介して前記パケットを送信する手段とを有するデータ転送装置において、前記データ転送装置が、前記パケットの経路に対応する前記出力バッファに格納されているパケットの量を調査する出力バッファ制御部と、前記出力バッファ制御部から通知された前記出力バッファに格納されている前記パケットの量に応じて前記入力バッファに格納されているパケットの保留時間を、前記出力バッファが複数の入力バッファからパケットを集中して受けることを回避するように入力バッファごとに決定する入力バッファ制御部とを含めて構成されることを特徴とする。
【0011】
かかる構成によれば、出力バッファに格納されたパケットの量に応じて、入力バッファの保留時間が決定される。その結果、入力バッファにパケットを保留させておくことにより、出力バッファは、複数の入力バッファからパケットを集中して受けることを回避できる。
【0012】
また、請求項2に記載のデータ転送装置は、請求項1に記載のデータ転送装置であって、前記入力バッファ制御部が、前記出力バッファに格納されているパケットの量が所定のしきい値を超えている場合は、前記入力バッファに格納されているパケットの保留時間を増加させることを特徴とする。
【0013】
かかる構成によれば、出力バッファのパケット量の増加に応じて、入力バッファは、格納するパケットの保留時間を増加させる。
【0014】
さらに、請求項3に記載のデータ転送装置は、請求項1に記載のデータ転送装置であって、前記入力バッファ制御部が、所定の期間における前記出力バッファに格納されているパケットの量の平均値が、所定のしきい値を上回ることを契機として、前記入力バッファに格納されているパケットの保留時間を増加させることを特徴とする。
【0015】
かかる構成によれば、出力バッファのパケット量の所定期間における平均値の増加に応じて、入力バッファは、格納するパケットの保留時間を増加させる。
【0016】
また、請求項4に記載のデータ転送装置は、請求項1ないし請求項3のいずれか1項に記載のデータ転送装置であって、前記入力バッファ制御部が、所定の期間における前記出力バッファに格納されているパケットの量が、所定のしきい値を下回り続けることを契機として、前記入力バッファに格納されているパケットの保留時間を減少させることを特徴とする。
【0017】
かかる構成によれば、出力バッファのパケット量の減少に応じて、入力バッファは、格納するパケットの保留時間を減少させる。
【0018】
さらに、請求項5に記載のデータ転送装置は、請求項1ないし請求項3のいずれか1項に記載のデータ転送装置であって、前記入力バッファ制御部が、所定の期間における前記出力バッファに格納されているパケットの量の平均値が、所定のしきい値を下回ることを契機として、前記入力バッファに格納されているパケットの保留時間を減少させることを特徴とする。
【0019】
かかる構成によれば、出力バッファのパケット量の所定期間における平均値の減少に応じて、入力バッファは、格納するパケットの保留時間を減少させる。
【0020】
また、請求項6に記載のデータ転送装置は、請求項1ないし請求項5のいずれか1項に記載のデータ転送装置であって、前記入力バッファ制御部が、前記パケットの経路に対応する、複数の前記出力バッファに格納されているパケットの量から、前記入力バッファに格納されているパケットの保留時間を決定することを特徴とする。
【0021】
かかる構成によれば、入力バッファは、複数の出力バッファに関するパケット量を参照して、保留時間を決定する。
【0022】
さらに、請求項7に記載のデータ転送方法は、前記データ転送装置が、前記入力ポートから受信した前記パケットを、前記出力ポートに対応する複数の前記入力バッファに分配して格納することを特徴とする。
【0023】
かかる方法によれば、所定の入力ポートに到着したパケットは、出力ポートに対応する複数の入力バッファに格納される。
【0024】
また、請求項8に記載のデータ転送方法は、データ転送方法であって、入力ポートから受信したパケットを前記入力ポートに対応する入力バッファに格納し、前記パケットの経路を検索し、前記パケットの経路となる出力ポートに対応する出力バッファに前記パケットを格納し、前記出力バッファから前記出力ポートを介して前記パケットを送信するデータ転送方法において、計算機が、前記パケットの経路に対応する前記出力バッファに格納されているパケットの量を調査し、前記調査された前記出力バッファに格納されている前記パケットの量に応じて前記入力バッファに格納されているパケットの保留時間を、前記出力バッファが複数の入力バッファからパケットを集中して受けることを回避するように入力バッファごとに決定することを特徴とする。
【0025】
かかる方法によれば、出力バッファに格納されたパケットの量に応じて、入力バッファの保留時間が決定される。その結果、入力バッファにパケットを保留させておくことにより、出力バッファは、複数の入力バッファからパケットを集中して受けることを回避できる。
【0026】
さらに、請求項9に記載のデータ転送方法は、請求項8に記載のデータ転送方法であって、計算機が、前記出力バッファに格納されているパケットの量が所定のしきい値を超えている場合は、前記入力バッファに格納されているパケットの保留時間を増加させることを特徴とする。
【0027】
かかる方法によれば、出力バッファのパケット量の増加に応じて、入力バッファは、格納するパケットの保留時間を増加させる。
【0028】
また、請求項10に記載のデータ転送方法は、請求項8に記載のデータ転送方法であって、計算機が、所定の期間における前記出力バッファに格納されているパケットの量の平均値が、所定のしきい値を上回ることを契機として、前記入力バッファに格納されているパケットの保留時間を増加させることを特徴とする。
【0029】
かかる方法によれば、出力バッファのパケット量の所定期間における平均値の増加に応じて、入力バッファは、格納するパケットの保留時間を増加させる。
【0030】
また、請求項11に記載のデータ転送プログラムは、入力ポートから受信したパケットを前記入力ポートに対応する入力バッファに格納するステップと、前記パケットの経路を検索するステップと、前記パケットの経路となる出力ポートに対応する出力バッファに前記パケットを格納するステップと、前記出力バッファから前記出力ポートを介して前記パケットを送信するステップとを有するデータ転送プログラムにおいて、前記プログラムが、計算機に、前記パケットの経路に対応する前記出力バッファに格納されているパケットの量を調査するステップと、前記調査された前記出力バッファに格納されている前記パケットの量に応じて前記入力バッファに格納されているパケットの保留時間を、前記出力バッファが複数の入力バッファからパケットを集中して受けることを回避するように入力バッファごとに決定するステップを実行させることを特徴とする。
【0031】
かかる構成によれば、データ転送プログラムは、計算機に実行されることで、出力バッファに格納されたパケットの量に応じて、入力バッファの保留時間を決定させる。その結果、入力バッファにパケットを保留させておくことにより、出力バッファは、複数の入力バッファからパケットを集中して受けることを回避できる。
【0032】
【発明の実施の形態】
以下に、本発明が適用されるデータ転送装置の一実施形態について、図面を参照して詳細に説明する。まず、本実施形態のデータ転送装置の構成について、図1を参照して説明する。
【0033】
図1に示すデータ転送装置1は、パケットロスを減らしつつ転送に関する遅延を低減させる機能を有する。このため、データ転送装置1は、データ転送装置1に入力されたパケットを保持する入力処理と、入力処理により保持されたパケットの宛先を決定する経路処理と、宛先が決定されたパケットを出力する出力処理とを各構成要素が分担して行う。なお、請求項における“計算機”は、データ転送装置1に相当する。以下、データ転送装置1の各構成要素について、より具体的に説明する。
【0034】
データ転送装置1の入力処理を担当する構成要素は、データ転送装置1と外部のネットワークとのインタフェースである入力ポート11と、入力ポート11から受信したパケットを格納する入力バッファ12と、入力バッファ12の動作を制御する入力バッファ制御部13とを含んで構成される。
【0035】
データ転送装置1の経路処理を担当する経路処理部20は、パケットのヘッダを参照して経路を検索する経路検索部21と、経路検索部21によって参照される経路表22とを含んで構成される。
【0036】
データ転送装置1の出力処理を担当する構成要素は、データ転送装置1と外部のネットワークとのインタフェースである出力ポート31と、出力ポート31から送信するパケットを格納する出力バッファ32と、出力バッファ32の動作を制御する出力バッファ制御部33とを含んで構成される。
【0037】
ここで、ポートとバッファとの対応について、説明する。入力バッファ12は、入力ポート11に対応付けられている。つまり、所定の入力ポート11から受信したパケットは、その入力ポート11に対応付けられた所定の入力バッファ12に格納される。また、出力バッファ32についても同様に、出力ポート31に対応付けられている。つまり、所定の出力ポート31から送信するパケットは、その出力ポート31に対応付けられた所定の出力バッファ32に格納され、出力ポート31が通信可能になると、対応する出力バッファ32の先頭に格納されたデータが、出力ポート31を介して、送信される。
【0038】
以上、本実施形態のデータ転送装置1の構成について、説明した。次に、図1を参照しつつ、本実施形態のデータ転送装置1の動作について、図2に沿って説明する。なお、図2は、データ転送装置1の動作に着目したフローチャートである。
【0039】
まず、前準備(S101)について、説明する。データ転送装置1は、転送するデータのパケットが到着する前に、前準備をさせる。より具体的には、前準備は、例えば、入力ポート11および出力ポート31への回線の接続、入力バッファ12および出力バッファ32の領域の確保、入力ポート11および出力ポート31にネットワークのアドレスの割り当て、ならびに、経路表22へのネットワークの経路の設定である。
【0040】
次に、パケット到着(S102)について、説明する。データ転送装置1は、入力ポート11に到着したパケットを受信し、その入力ポート11に対応する入力バッファ12に格納する。
【0041】
そして、経路の検索(S103)について、説明する。データ転送装置1は、経路処理部20を用いて、入力バッファ12に格納されたパケットの経路を検索して、その経路の送信先となる出力ポート31を決定する。具体的には、経路検索部21は、パケットのヘッダに記入されているネットワークのアドレスをキーとして、経路表22から検索を行う。
【0042】
さらに、パケットの保留時間の設定(S104)について、説明する。データ転送装置1は、入力バッファ制御部13を用いて、入力バッファ12に格納するパケットの保留時間を、入力バッファ12ごとに設定する。具体的には、まず、出力バッファ制御部33は、経路の送信先となる出力ポート31に対応する出力バッファ32に格納されているパケットの量を調査する。次に、出力バッファ制御部33は、入力バッファ制御部13に、調査したパケットの量を通知する。さらに、入力バッファ制御部13は、通知を受けたパケットの量を参照して、入力バッファ12に格納するパケットの保留時間を設定する。
【0043】
ここで、パケットの保留時間を算出する方法について、より具体的に説明する。まず、出力バッファ32のパケットの量が所定のしきい値を超えている場合は、パケットの保留時間を増加させる。また、所定の期間における出力バッファ32のパケットの量の平均値が所定のしきい値を超えている場合は、パケットの保留時間を増加させてもよい。一方、所定の期間における出力バッファ32のパケットの量が、所定のしきい値を下回りつづけている場合は、パケットの保留時間を減少させる。なお、出力バッファ32のパケットの量と所定のしきい値との比較は、所定の一時刻における測定量だけを用いてもよいし、所定の期間の測定量を平均化したものを、パケットの量の代表値として、所定のしきい値と比較してもよい。
【0044】
また、パケットの待機(S105)について、説明する。データ転送装置1は、入力バッファ12に格納されているパケットについて、少なくとも設定されている保留時間だけ、待機させる。
【0045】
そして、パケット送信準備(S106)について、説明する。データ転送装置1は、経路検索(S103)および保留時間分の待機(S105)を終えたパケットを、その経路の出力ポート31に対応する出力バッファ32に格納する。次に、データ転送装置1は、出力バッファ32に格納されたパケットの量が変更されたので、所定の時刻に、出力バッファ32に格納されたパケットの量を、入力バッファ制御部13に通知する。なお、入力バッファ制御部13は、前記したように、通知された出力バッファ32に格納されたパケットの量から、パケットの保留時間を適宜設定する(S104)。
【0046】
さらに、パケットの送信(S107)について、説明する。データ転送装置1は、出力バッファ32に格納されたパケットについて、出力ポート31を用いて、他装置へ送信する。送信の終えたパケットは、出力バッファ32から廃棄される。以上の、パケットの保留時間の設定(S104)から、パケットの送信(S107)までの動作が、繰り返される。
【0047】
ここで、データ転送装置1が転送するパケットとして、複数の宛先に送信すべきパケットを扱う動作について、補足説明する。まず、経路検索(S103)によって、データ転送装置1は、所定のパケットが、複数の出力ポート31に送信する旨を認識する。次に、データ転送装置1は、パケットの保留時間の設定(S104)を行う際に、パケットの保留時間を決定するための出力バッファ32のパケット量について、複数の出力バッファ32を参照する。
【0048】
なお、複数の出力バッファ32を参照した保留時間の決定は、例えば、マルチキャスト通信やブロードキャスト通信のように、所定のパケットが複数の出力ポート31にコピーされて送信される場合に、送信対象となる出力バッファ32のパケット量のうち、最大のパケット量を代表値として、その代表値から保留時間を計算する方法がある。
【0049】
また、複数の出力バッファ32を参照した保留時間の決定における別の例では、IPv6(Internet Protocol version 6)におけるエニキャスト通信のように、所定のパケットが複数の出力ポート31のいずれかに送信される場合に、送信対象となる出力バッファ32のパケット量のうち、経路選択プロトコルによって選択された出力ポート31に対応する出力バッファ32のパケット量を代表値とし、または、送信対象となる出力バッファ32のパケット量のうち、最小のパケット量を代表値として、その代表値から保留時間を計算する方法がある。
【0050】
以上、本発明の一実施形態について説明した。かかる構成によれば、データ転送装置1は、出力バッファ32に格納されたパケットの量に応じて、入力バッファ12の保留時間を決定する。その結果、入力バッファ12にパケットを保留させておくことにより、出力バッファ32は、複数の入力バッファ12からパケットを集中して受けることを回避できる。よって、出力バッファ32は、複数の入力バッファ12分のメモリを確保する必要がなくなり、データ転送装置1のメモリ効率が向上して、パケットロスが低減されるとともに、入力バッファ12からパケットを受け付けることで、遅延を低減させることができる。
【0051】
また、本発明においては、周期性があるバーストトラヒックを効率的に収容し、かつ、パケット廃棄を少なくするために、蓄積型スイッチ(例えば、データ転送装置1)内に「通勤時間帯における渋滞緩和策」と同様のトラヒックのタイムシフトを行うバッファを設置することにより、スイッチ内での渋滞を避けられ、かつ、渋滞回避ができるため遅延時間も短くでき、遅延時間の揺らぎも小さくできる。
【0052】
以上説明した本発明は、発明の趣旨を逸脱しない範囲で広く変形実施することができる。
【0053】
例えば、データ転送装置1は、入力バッファ12について、様々な構成とすることができる。入力バッファ12の構成は、例えば、図3に示すように1つの入力ポート11を、1つの入力バッファ12に対応させる構成としてもよい。また、入力バッファ12の構成は、図4に示すように1つの入力ポート11を、出力バッファ32に対応する複数の入力バッファ12に対応させる構成としてもよい。さらに、データ転送装置1は、図4に示された構成を用いて、複数の宛先に送信するパケット(マルチキャスト通信のパケットなど)を、複数の入力バッファ12にコピーして、入力バッファ12ごとに、保留時間分だけパケットを待機させてから送信してもよい(図5参照)。
【0054】
また、データ転送装置1は、転送するデータパケットのプロトコルの種別には依存しないので、IPv4(Internet Protocol version 4)などの様々なプロトコルのパケットを、効率的に転送することができる。
【0055】
さらに、データ転送装置1がパケットを通信するための入力および出力のポートは、物理的な通信回線としてもよいし、ATM(Asynchronous Transfer Mode)におけるVC(Virtual Connection)などの論理的な通信回線としてもよい。
【0056】
【発明の効果】
請求項1に記載した発明により、出力バッファに格納されたパケットの量に応じて、入力バッファの保留時間が、前記出力バッファが複数の入力バッファからパケットを集中して受けることを回避するように入力バッファごとに決定される。その結果、入力バッファにパケットを保留させておくことにより、出力バッファは、複数の入力バッファからパケットを集中して受けることを回避できる。その結果、出力バッファは、複数の入力バッファ分のメモリを確保する必要がなくなり、バッファのメモリ効率が向上する。それにより、パケットロスが低減されるとともに、入力バッファ12からパケットを受け付けることで、遅延を低減させることができる。
【0057】
請求項2に記載した発明により、出力バッファのパケット量の増加に応じて、入力バッファは、格納するパケットの保留時間を増加させる。それにより、入力バッファは、空きの少ない出力バッファにパケットを格納させることを回避でき、パケットロスを低減させることができる。
【0058】
請求項3に記載した発明により、出力バッファのパケット量の所定期間における平均値の増加に応じて、入力バッファは、格納するパケットの保留時間を増加させる。その結果、出力バッファは、格納するパケット量について、一時的な大きいパケット量の変化を吸収することができる。
【0059】
請求項4に記載した発明により、出力バッファのパケット量の減少に応じて、入力バッファは、格納するパケットの保留時間を減少させる。それにより、入力バッファは、空きの多い出力バッファにパケットを格納させることで、保留時間に関する遅延を低減させることができる。
【0060】
請求項5に記載した発明により、出力バッファのパケット量の所定期間における平均値の減少に応じて、入力バッファは、格納するパケットの保留時間を減少させる。その結果、出力バッファは、格納するパケット量について、一時的な大きいパケット量の変化を吸収することができる。
【0061】
請求項6に記載した発明により、入力バッファは、複数の出力バッファに関するパケット量を参照して、保留時間を決定する。それにより、マルチキャストやブロードキャストのような複数の宛先に送信するパケットについても、パケットロスおよび遅延を低減させることができる。
【0062】
請求項7に記載した発明により、所定の入力ポートに到着したパケットは、出力ポートに対応する複数の入力バッファに格納される。その結果、同一の入力バッファに格納されたパケットは、先着したパケットの送信動作に関する遅延が低減する。
【0063】
請求項8に記載した発明により、出力バッファに格納されたパケットの量に応じて、入力バッファの保留時間が、前記出力バッファが複数の入力バッファからパケットを集中して受けることを回避するように入力バッファごとに決定される。その結果、入力バッファにパケットを保留させておくことにより、出力バッファは、複数の入力バッファからパケットを集中して受けることを回避できる。それにより、出力バッファは、複数の入力バッファ分のメモリを確保する必要がなくなり、バッファのメモリ効率が向上する。それにより、パケットロスが低減されるとともに、入力バッファからパケットを受け付けることで、遅延を低減させることができる。
【0064】
請求項9に記載した発明により、出力バッファのパケット量の増加に応じて、入力バッファは、格納するパケットの保留時間を増加させる。その結果、入力バッファは、空きの少ない出力バッファにパケットを格納させることを回避でき、パケットロスを低減させることができる。
【0065】
請求項10に記載した発明により、出力バッファのパケット量の所定期間における平均値の増加に応じて、入力バッファは、格納するパケットの保留時間を増加させる。それにより、出力バッファは、格納するパケット量について、一時的な大きいパケット量の変化を吸収することができる。
【0066】
請求項11または請求項12に記載した発明により、データ転送プログラムは、計算機に実行されることで、出力バッファに格納されたパケットの量に応じて、入力バッファの保留時間を、前記出力バッファが複数の入力バッファからパケットを集中して受けることを回避するように入力バッファごとに決定させる。その結果、入力バッファにパケットを保留させておくことにより、出力バッファは、複数の入力バッファからパケットを集中して受けることを回避できる。それにより、出力バッファは、複数の入力バッファ分のメモリを確保する必要がなくなり、バッファのメモリ効率が向上する。それにより、パケットロスが低減されるとともに、入力バッファからパケットを受け付けることで、遅延を低減させることができる。
【図面の簡単な説明】
【図1】 本発明の一実施形態に係るデータ転送装置の構成図である。
【図2】 本発明の一実施形態に係るデータの転送動作を示すフローチャートである。
【図3】 本発明の一実施形態に係る1つの入力ポートに1つの入力バッファを対応させる構成図である。
【図4】 本発明の一実施形態に係る1つの入力ポートに複数の入力バッファを対応させる構成図である。
【図5】 本発明の一実施形態に係る複数の宛先に送信するパケットの転送動作を説明するイメージ図である。
【符号の説明】
1…データ転送装置
11…入力ポート
12…入力バッファ
13…入力バッファ制御部
20…経路処理部
21…経路検索部
22…経路表
31…出力ポート
32…出力バッファ
33…出力バッファ制御部[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a data transfer device, a data transfer method, a data transfer program, and a storage medium on which the data transfer program is recorded.
[0002]
[Prior art]
2. Description of the Related Art A data transfer device that transfers a data packet flowing on a network to a predetermined destination is known as a main component in a network such as the Internet. These data transfer apparatuses use a line connection type transfer system in which end-to-end connection means is established between communicating terminals, and the data transfer apparatus temporarily stores data packets. There is a storage type transfer method in which a header part is referred to and transmitted to an appropriate destination.
[0003]
The storage-type transfer method temporarily stores input packets in a buffer, so that the delay associated with storage can be reduced, and packet loss due to buffer overflow of input packets that frequently arrive can be reduced. There are problems and various coping methods have been proposed (for example, Patent Document 1).
[0004]
[Patent Document 1]
JP-A-8-293867 (for example, paragraph [0020])
[0005]
[Problems to be solved by the invention]
Here, a method of providing a buffer corresponding to an input port used when a data transfer device receives a packet and an output port used when the data transfer device transmits a packet is known. Yes.
[0006]
First, a method of providing an input buffer corresponding to an input port of a data transfer apparatus is known. In this method, packets that arrive at an input port are temporarily stored in the input buffer corresponding to the input port. In order to prepare the input buffer considering only the traffic of the input port, the memory efficiency of the input buffer is reduced. However, it is known that the delay is large. That is, when the output port for transferring the first-arrival packet in the input buffer is blocked during communication, the packet received later in the input buffer is delayed because it waits for transmission of the first-arrival packet.
[0007]
There is also known a method of providing an output buffer corresponding to the output port of the data transfer apparatus. As a result, the packets are successively stored in the output buffer without waiting for the transmission of the packets arriving at the input port, thereby reducing the delay. However, traffic from multiple input ports may be concentrated on a given output port. Therefore, in order to secure the amount of output buffer memory for traffic from multiple input ports, the use of output buffer memory is not recommended. Because it is not very efficient, packet loss may occur.
[0008]
Therefore, the effects of the input buffer and the output buffer are different, and which method is superior depends on the amount of traffic processed by the data transfer apparatus and so on, and it is difficult to determine generally. Further, the traffic flowing on the network is various such as data having periodicity in the amount of data such as video information and bursting having a large amount of communication temporarily such as e-mail. Therefore, there is a need for a storage-type transfer method that reduces packet loss and delay in response to such traffic.
[0009]
Therefore, in view of the above, the present invention has as its main object to provide a data transfer apparatus that can reduce a packet-related delay while reducing packet loss.
[0010]
[Means for Solving the Problems]
The present invention has been developed to achieve the above object, and first, the data transfer apparatus according to claim 1 stores a packet received from an input port in an input buffer corresponding to the input port. Means for searching for a route of the packet, means for storing the packet in an output buffer corresponding to an output port serving as the route of the packet, and means for transmitting the packet from the output buffer via the output port An output buffer control unit that examines the amount of packets stored in the output buffer corresponding to the path of the packet; Stored in the output buffer notified from the output buffer control unit The packet holding time stored in the input buffer according to the amount of the packet , For each input buffer so that the output buffer avoids receiving packets from multiple input buffers in a concentrated manner And an input buffer control unit to be determined.
[0011]
According to such a configuration, the hold time of the input buffer is determined according to the amount of packets stored in the output buffer. As a result, by holding packets in the input buffer, the output buffer can avoid receiving packets from a plurality of input buffers in a concentrated manner.
[0012]
The data transfer device according to claim 2 is the data transfer device according to claim 1, wherein the input buffer control unit determines that the amount of packets stored in the output buffer is a predetermined threshold value. Is exceeded, the hold time of the packet stored in the input buffer is increased.
[0013]
According to such a configuration, the input buffer increases the holding time of the packet to be stored as the packet amount of the output buffer increases.
[0014]
Furthermore, the data transfer device according to claim 3 is the data transfer device according to claim 1, wherein the input buffer control unit averages the amount of packets stored in the output buffer in a predetermined period. The hold time of the packet stored in the input buffer is increased when the value exceeds a predetermined threshold value.
[0015]
According to such a configuration, the input buffer increases the hold time of the packet to be stored in accordance with the increase in the average value of the packet amount of the output buffer in the predetermined period.
[0016]
Further, the data transfer device according to claim 4 is the data transfer device according to any one of claims 1 to 3, wherein the input buffer control unit sets the output buffer in a predetermined period. The hold time of the packet stored in the input buffer is reduced when the amount of the stored packet continues to fall below a predetermined threshold value.
[0017]
According to such a configuration, the input buffer reduces the hold time of the packet to be stored in accordance with the decrease in the packet amount of the output buffer.
[0018]
Furthermore, the data transfer device according to claim 5 is the data transfer device according to any one of claims 1 to 3, wherein the input buffer control unit sets the output buffer in a predetermined period. The hold time of the packet stored in the input buffer is reduced when the average value of the amount of stored packets falls below a predetermined threshold value.
[0019]
According to this configuration, the input buffer decreases the hold time of the packet to be stored in accordance with the decrease in the average value of the packet amount of the output buffer in the predetermined period.
[0020]
A data transfer device according to claim 6 is the data transfer device according to any one of claims 1 to 5, wherein the input buffer control unit corresponds to a path of the packet. The holding time of the packet stored in the input buffer is determined from the amount of packets stored in the plurality of output buffers.
[0021]
According to such a configuration, the input buffer determines the holding time with reference to the packet amounts related to the plurality of output buffers.
[0022]
The data transfer method according to claim 7, wherein the data transfer device distributes and stores the packet received from the input port to a plurality of the input buffers corresponding to the output port. To do.
[0023]
According to this method, a packet that arrives at a predetermined input port is stored in a plurality of input buffers corresponding to the output port.
[0024]
The data transfer method according to claim 8 is a data transfer method, wherein a packet received from an input port is stored in an input buffer corresponding to the input port, a route of the packet is searched, In the data transfer method for storing the packet in an output buffer corresponding to an output port serving as a path, and transmitting the packet from the output buffer via the output port, the computer outputs the output buffer corresponding to the path of the packet. The amount of packets stored in the Stored in the examined output buffer The packet holding time stored in the input buffer according to the amount of the packet , For each input buffer so that the output buffer avoids receiving packets from multiple input buffers in a concentrated manner It is characterized by determining.
[0025]
According to this method, the hold time of the input buffer is determined according to the amount of packets stored in the output buffer. As a result, by holding packets in the input buffer, the output buffer can avoid receiving packets from a plurality of input buffers in a concentrated manner.
[0026]
Furthermore, the data transfer method according to claim 9 is the data transfer method according to claim 8, wherein the computer has an amount of packets stored in the output buffer exceeding a predetermined threshold value. In this case, the holding time of the packet stored in the input buffer is increased.
[0027]
According to this method, the input buffer increases the hold time of the packet to be stored in accordance with the increase in the packet amount of the output buffer.
[0028]
The data transfer method according to claim 10 is the data transfer method according to claim 8, wherein the computer has an average value of the amount of packets stored in the output buffer in a predetermined period as a predetermined value. The holding time of the packet stored in the input buffer is increased when the threshold value is exceeded.
[0029]
According to this method, the input buffer increases the hold time of the packet to be stored in accordance with the increase in the average value of the packet amount of the output buffer in the predetermined period.
[0030]
The data transfer program according to
[0031]
According to such a configuration, the data transfer program is executed by the computer to determine the hold time of the input buffer according to the amount of packets stored in the output buffer. As a result, by holding packets in the input buffer, the output buffer can avoid receiving packets from a plurality of input buffers in a concentrated manner.
[0032]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, an embodiment of a data transfer device to which the present invention is applied will be described in detail with reference to the drawings. First, the configuration of the data transfer apparatus of this embodiment will be described with reference to FIG.
[0033]
The data transfer apparatus 1 shown in FIG. 1 has a function of reducing delay related to transfer while reducing packet loss. For this reason, the data transfer apparatus 1 outputs an input process for holding a packet input to the data transfer apparatus 1, a path process for determining the destination of the packet held by the input process, and a packet for which the destination has been determined. Each component performs the output process. The “computer” in the claims corresponds to the data transfer apparatus 1. Hereinafter, each component of the data transfer apparatus 1 will be described more specifically.
[0034]
The components in charge of input processing of the data transfer device 1 are an
[0035]
The
[0036]
The components in charge of output processing of the data transfer apparatus 1 are an
[0037]
Here, the correspondence between ports and buffers will be described. The
[0038]
The configuration of the data transfer device 1 according to this embodiment has been described above. Next, the operation of the data transfer apparatus 1 of this embodiment will be described with reference to FIG. 2 with reference to FIG. FIG. 2 is a flowchart focusing on the operation of the data transfer apparatus 1.
[0039]
First, preparation (S101) will be described. The data transfer apparatus 1 makes preparations before a packet of data to be transferred arrives. More specifically, the preparation includes, for example, connection of a line to the
[0040]
Next, packet arrival (S102) will be described. The data transfer apparatus 1 receives a packet that has arrived at the
[0041]
The route search (S103) will be described. The data transfer device 1 uses the
[0042]
Further, the setting of the packet hold time (S104) will be described. The data transfer device 1 uses the input buffer control unit 13 to set the hold time of the packet stored in the
[0043]
Here, a method for calculating the packet hold time will be described more specifically. First, when the amount of packets in the
[0044]
The packet waiting (S105) will be described. The data transfer apparatus 1 causes the packet stored in the
[0045]
The packet transmission preparation (S106) will be described. The data transfer apparatus 1 stores the packet for which the route search (S103) and the standby time for the hold time (S105) have been completed in the
[0046]
Further, packet transmission (S107) will be described. The data transfer device 1 transmits the packet stored in the
[0047]
Here, a supplementary description will be given of an operation for handling a packet to be transmitted to a plurality of destinations as a packet to be transferred by the data transfer apparatus 1. First, the data transfer apparatus 1 recognizes that a predetermined packet is transmitted to the plurality of
[0048]
The determination of the hold time with reference to the plurality of
[0049]
In another example of determining the hold time with reference to a plurality of
[0050]
The embodiment of the present invention has been described above. According to this configuration, the data transfer apparatus 1 determines the holding time of the
[0051]
Further, in the present invention, in order to efficiently accommodate periodic burst traffic and to reduce packet discard, the storage type switch (for example, the data transfer apparatus 1) has a “congestion alleviation during commuting time zone”. Shift the traffic time in the same way as Ba By installing a buffer, it is possible to avoid traffic jams in the switch and to avoid traffic jams, so that the delay time can be shortened and fluctuations in the delay time can be reduced.
[0052]
The present invention described above can be widely modified without departing from the spirit of the invention.
[0053]
For example, the data transfer apparatus 1 can have various configurations for the
[0054]
In addition, since the data transfer apparatus 1 does not depend on the protocol type of the data packet to be transferred, it can efficiently transfer packets of various protocols such as IPv4 (Internet Protocol version 4).
[0055]
Furthermore, the input and output ports through which the data transfer apparatus 1 communicates packets may be physical communication lines, or logical communication lines such as VC (Virtual Connection) in ATM (Asynchronous Transfer Mode). Also good.
[0056]
【The invention's effect】
According to the first aspect of the present invention, the holding time of the input buffer depends on the amount of packets stored in the output buffer. , For each input buffer so that the output buffer avoids receiving packets from multiple input buffers in a concentrated manner It is determined. As a result, by holding packets in the input buffer, the output buffer can avoid receiving packets from a plurality of input buffers in a concentrated manner. As a result, the output buffer does not need to secure memory for a plurality of input buffers, and the buffer memory efficiency is improved. Thereby, the packet loss is reduced, and the delay can be reduced by receiving the packet from the
[0057]
According to the second aspect of the present invention, the input buffer increases the hold time of the packet to be stored in accordance with the increase in the packet amount of the output buffer. As a result, the input buffer can avoid storing the packet in the output buffer with a small vacancy, and the packet loss can be reduced.
[0058]
According to the invention described in claim 3, the input buffer increases the hold time of the packet to be stored in accordance with the increase in the average value of the packet amount of the output buffer in the predetermined period. As a result, the output buffer can absorb a temporary large change in the packet amount with respect to the stored packet amount.
[0059]
According to the invention described in claim 4, the input buffer reduces the hold time of the packet to be stored in accordance with the decrease in the packet amount of the output buffer. Thereby, the input buffer can reduce the delay related to the hold time by storing the packet in the output buffer with a lot of free space.
[0060]
According to the fifth aspect of the present invention, the input buffer reduces the hold time of the packet to be stored in accordance with a decrease in the average value of the packet amount of the output buffer in a predetermined period. As a result, the output buffer can absorb a temporary large change in the packet amount with respect to the stored packet amount.
[0061]
According to the sixth aspect of the present invention, the input buffer determines the hold time with reference to the packet amounts related to the plurality of output buffers. Thereby, packet loss and delay can be reduced even for packets transmitted to a plurality of destinations such as multicast and broadcast.
[0062]
According to the seventh aspect of the present invention, a packet that arrives at a predetermined input port is stored in a plurality of input buffers corresponding to the output port. As a result, the packets stored in the same input buffer reduce the delay related to the transmission operation of the first-arrival packet.
[0063]
According to the invention described in claim 8, the holding time of the input buffer is determined according to the amount of packets stored in the output buffer. , For each input buffer so that the output buffer avoids receiving packets from multiple input buffers in a concentrated manner It is determined. As a result, by holding packets in the input buffer, the output buffer can avoid receiving packets from a plurality of input buffers in a concentrated manner. As a result, the output buffer does not need to secure memory for a plurality of input buffers, and the memory efficiency of the buffer is improved. Thereby, the packet loss is reduced, and the delay can be reduced by receiving the packet from the input buffer.
[0064]
According to the ninth aspect of the present invention, the input buffer increases the hold time of the packet to be stored in accordance with the increase in the packet amount of the output buffer. As a result, the input buffer can avoid storing the packet in the output buffer with a small vacancy, and the packet loss can be reduced.
[0065]
According to the invention described in claim 10, the input buffer increases the hold time of the packet to be stored in accordance with the increase of the average value of the packet amount of the output buffer in the predetermined period. Thereby, the output buffer can absorb a temporary large change in the packet amount with respect to the packet amount to be stored.
[0066]
According to the invention described in
[Brief description of the drawings]
FIG. 1 is a configuration diagram of a data transfer apparatus according to an embodiment of the present invention.
FIG. 2 is a flowchart showing a data transfer operation according to an embodiment of the present invention.
FIG. 3 is a configuration diagram in which one input buffer is associated with one input port according to an embodiment of the present invention.
FIG. 4 is a configuration diagram in which a plurality of input buffers are associated with one input port according to an embodiment of the present invention.
FIG. 5 is an image diagram illustrating a transfer operation of a packet transmitted to a plurality of destinations according to an embodiment of the present invention.
[Explanation of symbols]
1 Data transfer device
11 ... Input port
12 ... Input buffer
13 ... Input buffer controller
20: Route processing unit
21 ... Route search part
22 ... Route table
31 ... Output port
32 ... Output buffer
33 ... Output buffer control unit
Claims (12)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002340626A JP3831920B2 (en) | 2002-11-25 | 2002-11-25 | Data transfer device, data transfer method, data transfer program, and storage medium on which data transfer program is recorded |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002340626A JP3831920B2 (en) | 2002-11-25 | 2002-11-25 | Data transfer device, data transfer method, data transfer program, and storage medium on which data transfer program is recorded |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2004179731A JP2004179731A (en) | 2004-06-24 |
| JP3831920B2 true JP3831920B2 (en) | 2006-10-11 |
Family
ID=32703191
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002340626A Expired - Fee Related JP3831920B2 (en) | 2002-11-25 | 2002-11-25 | Data transfer device, data transfer method, data transfer program, and storage medium on which data transfer program is recorded |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3831920B2 (en) |
-
2002
- 2002-11-25 JP JP2002340626A patent/JP3831920B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2004179731A (en) | 2004-06-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4627669B2 (en) | Packet transfer apparatus and transfer control method thereof | |
| EP1384356B1 (en) | Selective data frame dropping in a network device | |
| US5457681A (en) | ATM-Ethernet portal/concentrator | |
| US20020167950A1 (en) | Fast data path protocol for network switching | |
| US20040042456A1 (en) | Method and system for processing data packets | |
| US7408879B2 (en) | Router, terminal apparatus, communication system and routing method | |
| JP2001024678A (en) | Method and node for predicting and controlling congestion in a data transmission network | |
| CN1267419A (en) | Flow control in telecommunications network | |
| US8838782B2 (en) | Network protocol processing system and network protocol processing method | |
| US6735207B1 (en) | Apparatus and method for reducing queuing memory access cycles using a distributed queue structure | |
| CN101616078A (en) | A method for discovering the maximum transmission unit of a path, a router and a node device | |
| US7174394B1 (en) | Multi processor enqueue packet circuit | |
| JPH07235943A (en) | Ring communication network node device having buffer and control method | |
| JP4087408B2 (en) | Packet transfer method and apparatus | |
| US7233598B2 (en) | System and method for speculatively issuing memory requests while maintaining a specified packet order | |
| JP3831921B2 (en) | Data transfer device, data transmission device, data transfer method, data transfer program, and storage medium on which data transfer program is recorded | |
| JP2000138684A (en) | ATM repeater | |
| JP2004179731A (en) | Data transfer device, data transfer method, data transfer program, and storage medium on which data transfer program is recorded | |
| JP2000078188A (en) | Priority route control method and router device | |
| TW202335471A (en) | Apparatus for managing network flow congestion and method thereof | |
| JP2005210385A (en) | Method and apparatus for sharing buffer with other apparatus | |
| Jaakkola | Implementation of transmission control protocol in linux | |
| KR100429907B1 (en) | Router and routing method for combined unicast and multicast traffic | |
| CN101416066A (en) | Systems and methods of improving performance of transport protocols | |
| JPH10112726A (en) | Packet router processing equipment |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041215 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060412 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060612 |
|
| 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: 20060705 |
|
| RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7426 Effective date: 20060707 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060707 |
|
| 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: 20090728 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100728 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100728 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110728 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120728 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130728 Year of fee payment: 7 |
|
| S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| LAPS | Cancellation because of no payment of annual fees |