説明

パケット受信装置、パケットバッファの輻輳状態復旧方法及びプログラム

【課題】ハードウェアで実装可能な回路規模で、パケットバッファ輻輳状態からの効率的な復旧方法を実現するパケット受信装置、パケットバッファの輻輳状態復旧方法及びプログラムを提供すること。
【解決手段】本発明は、フレームが分割されたフラグメントパケットが格納されるバッファエリアを有するパケットバッファと、パケットバッファの輻輳状態を検出する検出部と、パケットバッファの輻輳状態が検出されると、パケットバッファのバッファエリアのうち、フラグメントパケットの格納頻度の低いバッファエリアを判定する判定部と、格納頻度の低いバッファエリアを解放するバッファエリア解放部とを有するパケット受信装置である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パケット受信装置、パケットバッファの輻輳状態復旧方法及びプログラムに関する。
【背景技術】
【0002】
パケット受信装置は、フレームが分割されたフラグメントパケットを受信、それらに対してデフラグメント処理を行う場合、装置内部にパケットバッファを実装して受信したフラグメントパケットを溜め込む必要がある。
【0003】
デフラグメント処理は、1つのフレームを分割した複数のフラグメントパケット全てを、1つのパケットバッファへ溜め込み、元のフレームへと結合を行う処理である。複数フレームを分割したフラグメントパケットを混在して同時に受信する場合、複数のデフラグメント処理を同時に実施する必要がある為、同時に実施するデフラグメント処理分のパケットバッファが必要となる。
【0004】
しかし、実装できるパケットバッファ数は有限の為、同時に実施するデフラグメント処理数が、実装するパケットバッファ数より多くなった場合、パケットバッファが不足する輻輳状態となる。
【0005】
そこで、輻輳状態を回避する為に、パケット通信プロトコルに優先制御方式が実装される場合もあるが、同じ優先順位のパケットを大量に受信した場合にはパケットバッファの輻輳状態が発生する可能性がある為、パケットバッファ自身に輻輳状態から復旧する為の方法を組み込む必要がある。
【0006】
輻輳状態から復旧する方法として、例えば、特許文献1に記載されているように、パケットバッファ毎にデフラグメント処理を開始してからの経過時間をタイマーで測定し、一定時間内にデフラグメント処理が完了しない場合、デフラグメントを中断して強制的にパケットバッファをクリアすることで、輻輳状態を回避する方法が取られていた。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2007−300575号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、タイマーをハードウェアで実現すると、クリアするまでの経過時間とパケットバッファ数に比例して回路規模が増加するという課題があった。また、タイマーをソフトウェアで実現する場合は、ソフトウェアで周期的にパケットバッファの状態を監視する必要があるため、パケットバッファ数に比例してソフトウェア処理が増加するという課題があった。
【0009】
例えばInternet Protocol(RFC791)ではIPパケットデフラグメント時のタイマー規定値として最小15秒から最大255秒を推奨しており、ハードウェアで実装するには回路規模が大きかった。また、ソフトウェアで時間を計測する場合は、常時タイマー値を監視する必要があり、ソフトウェアの処理能力を低下させるという課題があった。
【0010】
また、回路規模削減の為に輻輳回避方法の論理を簡単にする場合は、パケットバッファの輻輳が発生した時点で、デフラグメント開始からの経過時間が最も長いバッファエリアを解放する手段が取られてきた。
【0011】
しかし、経過時間のみで判断すると、データ受信頻度が高くても解放されてしまう可能性があり、データ重要性を判断する精度が低いという課題もあった。
【0012】
そこで、本発明は上記課題に鑑みて発明されたものであって、その目的はハードウェアで実装可能な回路規模で、パケットバッファ輻輳状態からの効率的な復旧方法を実現するパケット受信装置、パケットバッファの輻輳状態復旧方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0013】
本発明は、フレームが分割されたフラグメントパケットが格納されるバッファエリアを有するパケットバッファと、前記パケットバッファの輻輳状態を検出する検出部と、前記パケットバッファの輻輳状態が検出されると、前記パケットバッファのバッファエリアのうち、前記フラグメントパケットの格納頻度の低いバッファエリアを判定する判定部と、前記格納頻度の低いバッファエリアを解放するバッファエリア解放部とを有するパケット受信装置である。
【0014】
また、本発明は、フレームが分割されたフラグメントパケットが格納されるバッファエリアを有するパケットバッファの輻輳状態を検出し、前記パケットバッファの輻輳状態が検出されると、前記パケットバッファのバッファエリアのうち、前記フラグメントパケットの格納頻度の低いバッファエリアを判定し、前記格納頻度の低いバッファエリアを解放するパケットバッファの輻輳状態復旧方法である。
【0015】
また、本発明は、各バッファエリアがデフラグメント処理中に前記パケットバッファが受信したフラグメントパケット数と、各バッファエリアがデフラグメント処理中にそのバッファエリアが格納したフラグメントパケット数とを受信する処理と、前記デフラグメント処理中に前記パケットバッファが受信したフラグメントパケット数に対する前記デフラグメント処理中にバッファエリアが格納したフラグメントパケット数の割合である有効パケット比率を、バッファエリア毎に計算する処理と、前記計算された有効パケット比率のうち、最も有効パケット比率が低い有効パケット比率演算器に対応するバッファエリアを、フラグメントパケットの格納頻度の低いバッファエリアを判定する処理とを情報処理装置に実行させるプログラムである。
【発明の効果】
【0016】
本発明によれば、ハードウェアで実装可能な回路規模で、パケットバッファ輻輳状態からの効率的な復旧方法が提供できる。
【図面の簡単な説明】
【0017】
【図1】図1は第1の実施の形態のブロック図である。
【図2】図2はデータ受信カウンタ3及び比率演算回路4の動作を説明するための図である。
【図3】図3は第1の実施の形態における動作のフローチャートである。
【図4】図4は実施例1における有効パケット比率演算の具体的な動作を説明するための図である。
【図5】図5は第2の実施の形態のブロック図である。
【発明を実施するための形態】
【0018】
<第1の実施の形態>
第1の実施の形態を説明する。
【0019】
図1は第1の実施の形態のブロック図である。
【0020】
図1を参照すると、第1の実施の形態のパケット受信装置は、バッファ管理回路1と、パケットバッファ2と、データ受信カウンタ3と、比率演算回路4とから構成されている。
【0021】
尚、以下の説明において、パケット受信装置が受信する、1つのフレームの先頭、中間、最終データとなるフラグメントパケットをそれぞれ、フラグメント先頭パケット、フラグメント中間パケット、フラグメント最終パケットと呼ぶ。
【0022】
バッファ管理回路1は、フラグメント先頭パケットを受信すると、パケットバッファ2内部のバッファエリアA1〜ANから空いているエリアを探し、空いているバッファエリアがあればデフラグメント処理を行う為に確保して、受信したフラグメント先頭パケットをパケットバッファ2へ渡す。フラグメント中間パケット及びフラグメント最終パケットを受信した場合は、同じフレームを構成するフラグメント先頭パケットを格納したバッファエリアへと格納するように指定する。フラグメント先頭パケットを受信した際に、バッファエリアA1〜ANの全てが他のデフラグメント処理用に確保されて空きが無い場合は、フラグメント先頭パケットを保持したまま比率演算回路4に輻輳通知N1を出力する。
【0023】
パケットバッファ2は、バッファ管理回路1からフラグメントパケットを受信すると、指定されたバッファエリアへ格納する。バッファエリアにフラグメント先頭パケットからフラグメント最終パケットまでの、フレームを構成する全てのフラグメントパケットを格納すると、各フラグメントパケットを1つのフレームに結合するデフラグメント処理を行う。デフラグメント処理が完了すると、結合したフレームを送出してバッファエリアを空き状態にし、対応するエリアカウンタをクリアする。
【0024】
また、パケットバッファ2は、フラグメントパケットをバッファエリアに格納した際に、データ受信カウンタ3へパケット受信通知R0を出力する。それに加え、フラグメントパケットを格納したバッファエリアA1〜ANからは、バッファエリア格納通知R1〜RNをデータ受信カウンタ3へ出力する。すなわち、パケットバッファ2は、バッファエリアへフラグメントパケットを格納すると、パケットを受信したことを示すパケット受信通知R0と、格納したバッファエリアを示すバッファエリア格納通知R1〜RNとの、2種類の通知を出力する。
【0025】
更に、パケットバッファ2は、バッファエリアクリア回路21を有する。このバッファエリアクリア回路21は、後述する低優先エリア通知N2を受信すると、低優先エリア通知N2で指定されたバッファエリアを、新たにデフラグメント処理を行う為に強制的に空き状態にする。
【0026】
データ受信カウンタ3は、パケットバッファ2のバッファエリアA1〜ANに対応するエリアカウンタB1〜BNを有する。このエリアカウンタB1〜BNは、パケットバッファ2から受信するパケット受信通知R0、及び各バッファエリアA1〜ANから受信するバッファエリア格納通知R1〜RNの発生回数をカウントし、カウントした値はエリアカウンタ情報J1〜JNとしてバッファエリア毎に比率演算回路4に通知する。
【0027】
比率演算回路4は、データ受信カウンタ3が出力するエリアカウンタ情報J1〜JNを受け取り、その値からパケットバッファ2が受信したパケット数に対して、バッファエリアA1〜ANがそれぞれ格納したパケット数の比率(以下、有効パケット比率)を求め、最も有効パケット比率が低いバッファエリアを低優先エリアと判断する。比率演算回路4はバッファ管理回路1から輻輳通知N1を受け取ると、低優先エリア通知N2によってパケットバッファ2に低優先エリアを通知する。
【0028】
次に、データ受信カウンタ3及び比率演算回路4の動作について詳細を説明する。
【0029】
図2はデータ受信カウンタ3及び比率演算回路4の動作を説明するための図である。
【0030】
データ受信カウンタ3のエリアカウンタB1〜BNは、受信カウンタC1〜CN及びエリア格納カウンタD1〜DNを有している。受信カウンタC1〜CN及びエリア格納カウンタD1〜DNは、それぞれパケットバッファ2からのパケット受信通知R0とバッファエリア格納通知R1〜RNの受信回数とをカウントする。ただし、エリアカウンタB1〜BNは対応するバッファエリアA1〜ANがデフラグメント処理中にのみアクティブ状態となり、受信カウンタ及びエリア格納カウンタのカウント動作を行う。対応するバッファエリアA1〜ANが空きの状態では非アクティブ状態となり、受信カウンタ及びエリア格納カウンタのカウントは行わない。
【0031】
データ受信カウンタ3は、パケットバッファ2からパケット受信通知R0を受けると、全てのアクティブ状態のエリアカウンタにおいて受信カウンタC1〜CNをカウントアップする。また、パケットバッファ2のバッファエリアA1〜ANからバッファエリア格納通知R1〜RNを受けると、対応するエリア格納カウンタD1〜DNをカウントアップする。従って、受信カウンタC1〜CNは、それぞれ対応するバッファエリアがデフラグメント処理中に、パケットバッファ2が受信した全てのフラグメントパケット数を示す。また、エリア格納カウンタD1〜DNの値は、それぞれ対応するバッファエリアがデフラグメント処理中に、各バッファエリアA1〜ANがそれぞれ格納したフラグメントパケット数を示す。受信カウンタC1〜CNとエリア格納カウンタD1〜DNとの値は、エリアカウンタ情報J1〜JNとして比率演算回路4に随時通知される。
【0032】
比率演算回路4は、各エリアカウンタに対応して設けられた有効パケット比率演算器411〜41Nと、比較器42とを有する。有効パケット比率演算器411〜41Nは、データ受信カウンタ3から受信カウンタC1〜CNとエリア格納カウンタD1〜DNとの値をエリアカウンタ情報J1〜JNによって受信すると、「エリア格納カウンタの値÷受信カウンタの値」を演算して有効パケット比率を求める。比較器42は、バッファ管理回路1から輻輳通知N1を受信した際に、各有効パケット比率演算器411〜41Nからの有効パケット比率を比較し、最も有効パケット比率が低い有効パケット比率演算器411〜41Nに対応するバッファエリアA1〜ANを示す低優先エリア通知N2をパケットバッファ2に通知する。
【0033】
次に、第1の実施の形態における動作を説明する。
【0034】
図3は第1の実施の形態における動作のフローチャートである。
【0035】
まず、バッファ管理回路1はフラグメントパケット受信有無を常に監視し(ステップS1)、フラグメントパケットを受信した場合はフラグメント先頭パケットかどうかを判断する(ステップS2)。受信したフラグメントパケットがフラグメント先頭パケットで無い場合は、デフラグメント処理を行う為に確保済みのバッファエリアへ格納する(ステップS3)。
【0036】
ステップS2でフラグメント先頭パケットを受信した場合は、バッファエリアA1〜ANを検索し(ステップS20)、空きがあるバッファエリアの有無を判断する(ステップS21)。バッファエリアA1〜ANに空きがある場合は、そのバッファエリアをデフラグメント処理用に確保してフラグメント先頭パケットを格納する(ステップS22)。一方、バッファエリアA1〜ANに空きが無い場合、バッファ管理回路1はフラグメント先頭パケットを保持して、比率演算回路4へ輻輳通知N1を出力する(ステップS30)。
【0037】
比率演算回路4は、輻輳通知N1を受信すると、エリアカウンタ情報J1〜JNから有効パケット比率を演算し、最も有効パケット比率が低いバッファエリアを低優先エリア通知N2でパケットバッファ2へ通知する(ステップS31)。
【0038】
パケットバッファ2のバッファエリアクリア回路21は、低優先エリア通知N2で示されたバッファエリアを空き状態にし(ステップS32)、それに対応するエリアカウンタをクリアする(ステップS33)。
【0039】
バッファ管理回路1は、保持していたフラグメント先頭パケットを、空き状態となったバッファエリアへパケットを格納する(ステップS22)。
【0040】
パケットバッファ2は、バッファエリアA1〜ANのいずれかにフラグメントパケットを格納すると、データ受信カウンタ3へパケット受信通知R0を出力する(ステップS4)。また、フラグメントパケットを格納したバッファエリアからは、バッファエリア格納通知R1〜RNをデータ受信カウンタ3へ出力する(ステップS5)。
【0041】
データ受信カウンタ3は、パケット受信通知R0を受信すると、アクティブ状態のエリアカウンタB1〜BN内の受信カウンタC1〜CNでパケット受信通知R0の発生数をカウントする(ステップS6)。また、データ受信カウンタ3は、バッファエリア格納通知R1〜RNを受信すると、対応するエリア格納カウンタD1〜DNでバッファエリア格納通知R1〜RNの発生数をカウントする(ステップS7)。受信カウンタC1〜CNおよびエリア格納カウンタD1〜DNの値は常時、比率演算回路4へと伝えられる。
【0042】
バッファエリアにフラグメントパケットを格納後、デフラグメント処理が完了したか判別を行う(ステップS8)。デフラグメント処理が完了とならない場合は、再びバッファ管理回路1がフラグメントパケット受信有無の監視を行う(ステップS1)。
【0043】
デフラグメント処理が完了した場合、パケットバッファ2で結合したフレームを送出し(ステップS9)、バッファエリアを空き状態にし(ステップS10)、対応するエリアカウンタをクリアし(ステップS11)、再びバッファ管理回路1が分割パケット受信有無の監視を行う(ステップS1)。
【実施例1】
【0044】
本実施の形態における具体的な実施例1を説明する。
【0045】
図4は実施例1における有効パケット比率演算の具体的な動作を説明するための図である。図4では、パケットバッファ2が4つのバッファエリアA1〜A4を持ち、4つのフレームを分割して出来たフラグメントパケットを混在して受信した場合の、エリアカウンタB1〜B4内の受信カウンタC1〜C4及びエリア格納カウンタD1〜D4の値の推移を示している。
【0046】
ここで、フレームF1を分割して出来たフラグメント先頭パケットをF1−1と記載し、後続のフラグメントパケットをF1−nとしてnに2以降の値を付与して記載する。他の3つのフレーム(F2〜F4)についても同様とする。また、パケットバッファ2は、4つのフレームを分割して出来たフラグメントパケットをF1−1、F2−1、F1−2、F3−1、F2−2、F3−2、F4−1、F1−3の順番で受信したとする。
【0047】
図4の時刻T0では、バッファエリアA1〜A4はフラグメントパケットを格納しておらず、エリアカウンタB1〜B4は全て非アクティブ状態となっており値は0である。
【0048】
時刻T1では、フラグメントパケットF1−1を受信してパケットバッファ2のバッファエリアA1へ格納した為、エリアカウンタB1がアクティブ状態となり受信カウンタC1とエリア格納カウンタD1の値に1が加算されている。
【0049】
パケットバッファ2がパケット受信した場合、エリアカウンタB1〜B4の受信カウンタC1〜C4がカウント対象となるが、エリアカウンタB2〜B4は非アクティブ状態のため、カウントされていない。
【0050】
時刻T2では、フラグメントパケットF2−1を受信してパケットバッファ2のバッファエリアA2へ格納した為、エリアカウンタB2がアクティブ状態となり受信カウンタC2とエリア格納カウンタD2の値に1が加算されている。また、時刻T2では、エリアカウンタB1もアクティブ状態の為、受信カウンタC1の値にも1が加算される。
【0051】
時刻T3では、フラグメントパケットF1−2を受信してパケットバッファ2のバッファエリアA1へ格納した為、エリアカウンタB1の受信カウンタC1とエリア格納カウンタD1の値に1が加算されている。また、時刻T3では、エリアカウンタB2もアクティブ状態の為、受信カウンタC2の値にも1が加算される。
【0052】
時刻T4では、フラグメントパケットF3−1を受信してパケットバッファ2のバッファエリアA3へ格納した為、エリアカウンタB3がアクティブ状態となり受信カウンタC3とエリア格納カウンタD3の値に1が加算されている。また、時刻T4では、エリアカウンタB1及びB2もアクティブ状態の為、受信カウンタC1及びC2の値にも1が加算される。
【0053】
時刻T5では、フラグメントパケットF2−2を受信してパケットバッファ2のバッファエリアA2へ格納した為、エリアカウンタB2の受信カウンタC2とエリア格納カウンタD2の値に1が加算されている。また、時刻T5では、エリアカウンタB1及びB3もアクティブ状態の為、受信カウンタC1及びC3の値にも1が加算される。
【0054】
時刻T6では、フラグメントパケットF3−2を受信してパケットバッファ2のバッファエリアA3へ格納した為、エリアカウンタB3の受信カウンタC3とエリア格納カウンタD3の値に1が加算されている。また、時刻T6では、エリアカウンタB1及びB2もアクティブ状態の為、受信カウンタC1及びC2の値にも1が加算される。
【0055】
時刻T7では、フラグメントパケットF4−1を受信してパケットバッファ2のバッファエリアA4へ格納した為、エリアカウンタB4がアクティブ状態となり受信カウンタC4とエリア格納カウンタD4の値に1が加算されている。また、時刻T7では、エリアカウンタB1、B2及びB3もアクティブ状態の為、受信カウンタC1、C2及びC3の値にも1が加算される。
【0056】
時刻T8では、フラグメントパケットF1−3を受信してパケットバッファ2のバッファエリアA1へ格納した為、エリアカウンタB1の受信カウンタC1とエリア格納カウンタD1の値に1が加算されている。また、時刻T8では、エリアカウンタB2、B3及びB4もアクティブ状態の為、受信カウンタC2、C3及びC4の値にも1が加算される。
【0057】
時刻T9では、新たなフラグメント先頭パケットを受信した状態を示す。バッファエリアA1〜A4がデフラグメント中の状態で、新たなフラグメント先頭パケットを受信した為、パケットバッファ2が輻輳状態となる。この場合、バッファ管理回路1は輻輳通知N1を出力する。
【0058】
比率演算回路4は輻輳通知N1を受信すると、各有効パケット比率演算器411〜414は、エリアカウンタB1〜B4の値から有効パケット比率を「エリア格納カウンタ値÷受信カウンタ値」で演算する。そして、比較器42は、各有効パケット比率演算器411〜414からの有効パケット比率を比較し、最も有効パケット比率が低い有効パケット比率演算器411〜414に対応するバッファエリアA1〜A4を示す低優先エリア通知N2をパケットバッファ2に通知する。
【0059】
具体的には、各有効パケット比率演算器411〜414の有効パケット比率は、以下の通りとなる。
【0060】
有効パケット比率演算器411(エリアカウンタB1)のパケット比率=3/8
有効パケット比率演算器412(エリアカウンタB2)のパケット比率=2/7
有効パケット比率演算器413(エリアカウンタB3)のパケット比率=2/5
有効パケット比率演算器414(エリアカウンタB4)のパケット比率=1/2
本実施例では、有効パケット比率演算器412(エリアカウンタB2)の有効パケット比率が最も低い値の為、バッファエリアA2が低優先エリア通知N2でパケットバッファ2に通知される。
【0061】
パケットバッファ2は低優先エリア通知N2により、低優先エリアであるバッファエリアA2を強制的に空き状態にし、エリアカウンタB2の受信カウンタC2およびエリア格納カウンタD2をクリアして非アクティブ状態とする。
【0062】
その後、バッファ管理回路1は空き状態となったバッファエリアA2へ、新たなフラグメント先頭パケットを格納する為、エリアカウンタB2が再びアクティブ状態となり受信カウンタC2とエリア格納カウンタD2の値に1が加算されている。また、エリアカウンタB1およびB3およびB4もアクティブ状態の為、受信カウンタC1およびC3およびC4の値にも1が加算される。
【0063】
以上説明したように、本実施の形態においては、パケットバッファの輻輳状態からの復旧方法として、低優先エリアを選別してパケットバッファを解放する方法によりパケットバッファの輻輳を防いでいる。これによりハードウェアでタイマーを実現する必要が無い為、回路規模の削減ができる。
【0064】
また、パケットバッファの周期的な監視も必要無い為、ソフトウェア処理は不要である。
【0065】
また、パケットバッファ輻輳発生時に強制解放する対象となる低優先エリアを、各バッファエリアでそれぞれ有効パケット比率を求めて判断している為、各バッファエリアのパケット格納期間の長短によらず、パケットを格納する頻度の少ないバッファエリアを解放する事ができる。これにより、デフラグメント開始からの経過時間のみで判断するものと比べて、データ受信頻度が高くても解放されてしまうことがない。
【0066】
尚、上述した実施の形態では、ひとつのパケットバッファに複数のバッファエリアを有する場合を説明したが、これに限られない。例えば、パケットバッファが複数あっても良い。更に、各パケットバッファがひとつのバッファエリアを有し、各パケットバッファが上述した各バッファエリアの構成を取るようにしても良い。
【0067】
<第2の実施の形態>
第2の実施の形態を説明する。
【0068】
第2の実施の形態の基本的構成は、第1の実施の形態の構成と類似するが、有効パケット比率の演算構成について異なっている。第2の実施の形態の構成を図5に示す。
【0069】
図5において、第1の実施の形態と異なる箇所は、有効パケット比率の演算をプログラムで動作する外部のホストプロセッサ300で実施しているところである。尚、そのプログラムは、第1の実施の形態で説明した比率演算回路4と同様な処理をホストプロセッサ300に実行させるものである。
【0070】
パケットバッファ202が全エリア確保された状態で、新たにフラグメント先頭パケットを受信すると、バッファ管理回路201はプロセッサ制御部204に対して輻輳通知N1を出力する。プロセッサ制御部204は輻輳通知N1を受けると、外部のホストプロセッサ300に対してバッファ輻輳割り込みN3を出力する。
【0071】
外部のホストプロセッサ300はバッファ輻輳割り込みN3を検出すると、プロセッサ制御部204を通してエリアカウンタ情報J1〜JNの値をカウンタ値N4として読み出し、バッファエリアA1〜ANの有効パケット比率を演算し、最も有効パケット比率が低いバッファエリアを、低優先エリア通知N5でプロセッサ制御部204を通してパケットバッファ202へ通知する。
【0072】
パケットバッファ202はプロセッサ制御部204から受信した低優先エリア通知N5を受けることで、パケットバッファ202の低優先エリアを強制的に解放し、新たに受信したフラグメント先頭パケットを格納する。
【0073】
このように、第2の実施の形態では、有効パケット比率の演算を外部のホストプロセッサで実施しているので、比率演算回路を削減する効果が得られる。また、パケットバッファ202の輻輳時のみプロセッサでソフトウェアによる処理を行うため、処理能力低下も軽減出来る。
【0074】
以上好ましい実施の形態及び実施例をあげて本発明を説明したが、本発明は必ずしも上記実施の形態及び実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形し実施することが出来る。
【符号の説明】
【0075】
1 バッファ管理回路
2 パケットバッファ
3 データ受信カウンタ
4 比率演算回路
21 バッファエリアクリア回路
411〜41N 有効パケット比率演算器
42 比較器
201 バッファ管理回路
202 パケットバッファ
203 データ受信カウンタ
204 プロセッサ制御部
300 ホストプロセッサ

【特許請求の範囲】
【請求項1】
フレームが分割されたフラグメントパケットが格納されるバッファエリアを有するパケットバッファと、
前記パケットバッファの輻輳状態を検出する検出部と、
前記パケットバッファの輻輳状態が検出されると、前記パケットバッファのバッファエリアのうち、前記フラグメントパケットの格納頻度の低いバッファエリアを判定する判定部と、
前記格納頻度の低いバッファエリアを解放するバッファエリア解放部と
を有するパケット受信装置。
【請求項2】
前記判定部は、バッファエリアがデフラグメント処理中における、フラグメントパケットの格納頻度の低いバッファエリアを判定する
請求項1に記載のパケット受信装置。
【請求項3】
前記判定部は、
各バッファエリアに対応して設けられ、対応するバッファエリアがデフラグメント処理中に前記パケットバッファが受信したフラグメントパケット数をカウントするデータ受信カウンタと、
各バッファエリアに対応して設けられ、対応するバッファエリアがデフラグメント処理中にそのバッファエリアが格納したフラグメントパケット数をカウントするエリア格納カウンタと、
前記データ受信カウンタ及びエリア格納カウンタに対応して設けられ、前記デフラグメント処理中に前記パケットバッファが受信したフラグメントパケット数に対する前記デフラグメント処理中にバッファエリアが格納したフラグメントパケット数の割合である有効パケット比率を計算する有効パケット比率計算器と
前記計算された有効パケット比率のうち、最も有効パケット比率が低い有効パケット比率演算器に対応するバッファエリアを、フラグメントパケットの格納頻度の低いバッファエリアを判定する比較器と
を有する請求項2に記載のパケット受信装置。
【請求項4】
前記有効パケット比率計算器及び比較器をパケット受信装置の外部に設ける
請求項3に記載のパケット受信装置。
【請求項5】
フレームが分割されたフラグメントパケットが格納されるバッファエリアを有するパケットバッファの輻輳状態を検出し、
前記パケットバッファの輻輳状態が検出されると、前記パケットバッファのバッファエリアのうち、前記フラグメントパケットの格納頻度の低いバッファエリアを判定し、
前記格納頻度の低いバッファエリアを解放する
パケットバッファの輻輳状態復旧方法。
【請求項6】
バッファエリアがデフラグメント処理中における、フラグメントパケットの格納頻度の低いバッファエリアを判定する
請求項5に記載のパケットバッファの輻輳状態復旧方法。
【請求項7】
各バッファエリアがデフラグメント処理中に前記パケットバッファが受信したフラグメントパケット数をカウントし、
各バッファエリアがデフラグメント処理中にそのバッファエリアが格納したフラグメントパケット数をカウントし、
前記デフラグメント処理中に前記パケットバッファが受信したフラグメントパケット数に対する前記デフラグメント処理中にバッファエリアが格納したフラグメントパケット数の割合である有効パケット比率を、バッファエリア毎に計算し、
前記計算された有効パケット比率のうち、最も有効パケット比率が低い有効パケット比率演算器に対応するバッファエリアを、フラグメントパケットの格納頻度の低いバッファエリアを判定する
請求項6に記載のパケットバッファの輻輳状態復旧方法。
【請求項8】
各バッファエリアがデフラグメント処理中に前記パケットバッファが受信したフラグメントパケット数と、各バッファエリアがデフラグメント処理中にそのバッファエリアが格納したフラグメントパケット数とを受信する処理と、
前記デフラグメント処理中に前記パケットバッファが受信したフラグメントパケット数に対する前記デフラグメント処理中にバッファエリアが格納したフラグメントパケット数の割合である有効パケット比率を、バッファエリア毎に計算する処理と、
前記計算された有効パケット比率のうち、最も有効パケット比率が低い有効パケット比率演算器に対応するバッファエリアを、フラグメントパケットの格納頻度の低いバッファエリアを判定する処理と
を情報処理装置に実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate