JP2010268321A - 伝送装置および伝送方法 - Google Patents

伝送装置および伝送方法 Download PDF

Info

Publication number
JP2010268321A
JP2010268321A JP2009119301A JP2009119301A JP2010268321A JP 2010268321 A JP2010268321 A JP 2010268321A JP 2009119301 A JP2009119301 A JP 2009119301A JP 2009119301 A JP2009119301 A JP 2009119301A JP 2010268321 A JP2010268321 A JP 2010268321A
Authority
JP
Japan
Prior art keywords
buffer
usage rate
reception
reception buffer
transmission apparatus
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.)
Granted
Application number
JP2009119301A
Other languages
English (en)
Other versions
JP5278157B2 (ja
Inventor
Yoshihiko Sato
嘉彦 佐藤
Hiroki Konno
廣毅 今野
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009119301A priority Critical patent/JP5278157B2/ja
Publication of JP2010268321A publication Critical patent/JP2010268321A/ja
Application granted granted Critical
Publication of JP5278157B2 publication Critical patent/JP5278157B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Communication Control (AREA)

Abstract

【課題】受信バッファの枯渇を防止することができる伝送装置および伝送方法を提供すること。
【解決手段】バッファメモリの使用率を定期的に算出して、算出した使用率を揮発性メモリに蓄積し、蓄積した使用率に基づいて予測使用率を算出し、算出した予測使用率が危険閾値より大きい場合に、受信バッファをバッファプールに追加し、予測した使用率が所定の安全閾値より小さい場合に、追加した受信バッファをバッファメモリから削除する。
【選択図】図3

Description

本発明は、伝送装置および伝送方法に関する。
従来、例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)のようなネットワークプロトコルを使用するシステムでは、任意の装置から受信したパケットを他の送信先装置へ伝送する伝送装置が用いられる。
このような伝送装置は、受信パケットを格納するためのバッファメモリを有し、パケットを受信するたびに、受信パケットをバッファメモリに格納するとともに、送信先装置へ受信パケットを送信する。そして、伝送装置は、送信先装置からパケットの受信が完了した旨の通知を受信した場合に、パケットが格納されているバッファメモリを解放する。
ここで、図17および図18を用いて、従来の伝送装置によるバッファメモリの管理方式について説明する。図17および図18は、従来の伝送装置の構成例を示す図である。図17に示すように、従来の伝送装置910は、バッファプール911と、Ether HD(Ethernet(登録商標) Hard)912と、Etherドライバ913と、ネットワークドライバ914と、ネットワークプロトコル915とを有する。
バッファプール911は、複数の受信バッファを有するバッファメモリである。図17に示した例において、バッファプール911は、サイズが2048[Byte]である受信バッファを複数個有する。このようなバッファプール911の構成は、システム起動時に、伝送装置910によって決定される。例えば、図17に示した例において、伝送装置910は、起動時に、2048[Byte]の受信バッファを3000個生成することにより、バッファプール911を構築する。
また、図17に示した例において、Ether HD912は、外部装置からパケットを受信する。Etherドライバ913は、Ether HD912によってパケットが受信された場合に、ネットワークドライバ914を起動し、受信パケットをネットワークドライバ914へ送信する。ネットワークドライバ914は、バッファプール911から受信バッファを捕捉して、捕捉した受信バッファに受信パケットを格納する。そして、ネットワークドライバ914は、受信パケットを格納した受信バッファをネットワークプロトコル915へ通知する。ネットワークプロトコル915は、所定の通信規格に則って伝送処理を行う。
続いて、図18に示した従来の伝送装置920について説明する。なお、ここでは、図17に示した構成部位と同様の機能を有する部位には同一符号を付すこととして、その詳細な説明を省略する。図18に示すように、従来の伝送装置920は、バッファプール921を有する。
図18に示した例において、バッファプール921は、サイズの異なる複数種類の受信バッファを有する。具体的には、バッファプール921は、サイズが2048[Byte]である受信バッファと、サイズが1024[Byte]である受信バッファと、サイズが512[Byte]である受信バッファとを有する。すなわち、図18に示した従来の伝送装置920は、起動時に、2048[Byte]、1024[Byte]、512[Byte]の受信バッファを生成することにより、バッファプール921を構築する。
このような構成の下、図18に示したネットワークドライバ924は、受信パケットのサイズが512[Byte]以下であれば、512[Byte]の受信バッファに受信パケットを格納する。また、ネットワークドライバ924は、受信パケットのサイズが512[Byte]より大きく、1024[Byte]以下であれば、1024[Byte]の受信バッファに受信パケットを格納する。また、ネットワークドライバ924は、受信パケットのサイズが1024[Byte]より大きく、2048[Byte]以下であれば、2048[Byte]の受信バッファに受信パケットを格納する。
なお、近年では、受信パケットサイズの統計データを算定して、算定した統計データに基づいて、起動時に生成したバッファメモリ領域内で受信バッファの個数を動的に変更する技術が知られている。
特開2005−84179号公報 特開平8−65353号公報 特開昭63−158941号公報
しかしながら、上述した従来技術には、受信バッファが枯渇するおそれがあるという問題があった。具体的には、図17に示した伝送装置910のように、バッファプール921を同一サイズの受信バッファにより構築すると、小さいサイズのパケットがバーストした場合、メモリ容量としては余裕があるにも関わらず受信バッファが枯渇してしまう場合がある。
例えば、図17に示した伝送装置910が、2048[Byte]の受信バッファを3000個有しているものとする。このような状態において、伝送装置910は、10[Byte]のパケットを受信した場合に、2048[Byte]の受信バッファに受信パケットを格納する。このとき、受信パケットが格納された受信バッファのうち、2038[Byte]のメモリ領域は不使用領域となる。すなわち、上記例において、伝送装置910が、例えば、10[Byte]のパケットを連続して3000個受信すると、全ての受信バッファが用いられてしまうので、受信バッファは枯渇してしまう。
また、図18に示した伝送装置920のように、複数種類の受信バッファを用いる場合、バッファメモリは効率良く用いられるため、図17に示した例と比較すると受信バッファの枯渇は発生しにくいとも考えられる。しかし、どのようなサイズのパケットのバーストが発生するかは動的に刻々と変化するため、最適な受信バッファの個数を予測することは困難である。すなわち、システム起動における受信バッファの個数が最適であるとは限らない。このため、図18に示した伝送装置920を用いても、受信バッファの枯渇が発生するおそれがある。
また、上述した受信バッファの個数を動的に変更する技術を用いると、サイズの異なる複数種類のパケットが同時にバーストした場合に、受信バッファの枯渇が発生するおそれがある。例えば、2048[Byte]、1024[Byte]、512[Byte]の受信バッファを有する場合において、複数種類のパケットが同時にバーストしたものとする。かかる場合、上記従来技術を用いて受信バッファを再構築しても受信バッファが枯渇するという問題を解消することができない。
開示の技術は、上記に鑑みてなされたものであって、受信バッファの枯渇を防止することができる伝送装置および伝送方法を提供することを目的とする。
本願の開示する伝送装置は、一つの態様において、受信パケットを記憶する受信バッファを複数有するバッファメモリと、パケットを受信するたびに前記バッファメモリの使用率を算出する算出部と、所定の監視周期が経過するたびに、前記算出部によって算出された使用率に基づいて、前記バッファメモリの使用率の変動量を算出し、算出した変動量に基づいて前記バッファメモリにおける将来の使用率である予測使用率を予測する予測部と、前記予測部によって予測された予測使用率が所定の危険閾値より大きい場合に、前記バッファメモリに受信バッファを追加するメモリ管理部とを備える。
本願の開示する伝送装置の一つの態様によれば、受信バッファの枯渇を防止することができるという効果を奏する。
図1は、使用率が急激に高くなる状況を説明するための図である。 図2は、使用率が緩やかに高くなる状況を説明するための図である。 図3は、実施例1に係る伝送装置の構成例を示す図である。 図4は、監視データの一例を示す図である。 図5は、監視周期データおよび増加フラグの一例を示す図である。 図6は、最適パタンデータの一例を示す図である。 図7は、起動時における伝送装置の構成例を示す図である。 図8は、実施例1に係る伝送装置によるパケット受信処理手順を示すフローチャートである。 図9は、実施例1におけるスケジューリング部によるスケジューリング処理手順を示すフローチャートである。 図10は、実施例1におけるバッファプール制御部によるバッファプール制御処理手順を示すフローチャートである。 図11は、実施例1における最適バッファパタン予測部による短期用パタン計算処理手順を示すフローチャートである。 図12は、実施例1における最適バッファパタン予測部による長期用パタン計算処理手順を示すフローチャートである。 図13は、実施例1における最適バッファパタン予測部による追加用予測処理手順を示すフローチャートである。 図14は、実施例1における最適バッファパタン予測部による削除用予測処理手順を示すフローチャートである。 図15は、実施例1に係る伝送装置による起動処理手順を示すフローチャートである。 図16は、追加処理および削除処理を同時に行う場合における最適バッファパタン予測部による短期用パタン計算処理手順を示すフローチャートである。 図17は、従来の伝送装置の構成例を示す図である。 図18は、従来の伝送装置の構成例を示す図である。
以下に、本願の開示する伝送装置および伝送方法の実施例を図面に基づいて詳細に説明する。なお、この実施例により本願の開示する伝送装置および伝送方法が限定されるものではない。以下の実施例に示す伝送装置は、例えば、基地局や、ルータなどに適用することができる。
まず、実施例1に係る伝送装置100について説明する。実施例1に係る伝送装置100は、パケットを受信するたびにバッファメモリの使用率を算出する。そして、伝送装置100は、所定の監視周期が経過するたびに、算出した使用率に基づいて、バッファメモリの使用率の変動量を算出し、算出した変動量に基づいて将来の使用率を予測する。そして、伝送装置100は、予測した使用率が所定の危険閾値より大きい場合に、メモリ内のヒープ領域やリザーブ領域などの空き領域を受信バッファとして確保し、確保した受信バッファをバッファメモリに追加する。また、伝送装置100は、予測した使用率が所定の安全閾値より小さい場合に、追加した受信バッファをバッファメモリから削除して、ヒープ領域やリザーブ領域に解放する。
これにより、実施例1に係る伝送装置100は、システム稼働中においても、刻々と変化するパケットの受信状況に応じて、受信バッファを動的に生成することができる。その結果、実施例1に係る伝送装置100は、受信バッファの枯渇を防止することができる。
また、実施例1に係る伝送装置100は、使用率に応じて、上述した監視周期を変動させる。具体的には、伝送装置100は、受信バッファの各種類に対応する使用率のうち、最も高い使用率(以下、「最大使用率」と言う)が大きいほど監視周期を小さい値にし、最大使用率が小さいほど監視周期を大きい値にする。
このため、伝送装置100は、使用率が高い場合に、短い監視周期でバッファプールを監視するので、受信バッファの枯渇に対して即座に対応することができる。また、伝送装置100は、使用率が低い場合に、長い監視周期でバッファプールを監視するので、監視負荷を低減することができる。
また、実施例1に係る伝送装置100は、使用率が短時間で急激に増加したか否かを判定して、受信バッファの削除処理を行うか否かを決定する。具体的には、伝送装置100は、使用率が急激に増加したために受信バッファを追加した場合、その後に、使用率が低下したならば受信バッファを削除する。一方、伝送装置100は、使用率が長時間にわたって徐々に増加したために受信バッファを追加した場合、その後に受信バッファを削除しない。
このように削除処理を行うか否かを判断する理由について、図1及び図2を用いて説明する。図1は、使用率が急激に高くなる状況を説明するための図である。また、図2は、使用率が緩やかに高くなる状況を説明するための図である。なお、図1および図2において、縦軸はバッファメモリの使用率を示し、横軸は、時間経過を示す。
図1に示した例では、まず、最初に使用率が短時間で急激に増加している。その後、使用率は徐々に低くなっていき、所定の値に戻っている。このような状況は、一般に、災害や、祭りなどのイベントなどが行われる場合に発生することが考えられる。したがって、図1に示した例のように、使用率が短時間で急激に増加する場合、一般に、使用率は徐々に低くなっていく。そこで、実施例1に係る伝送装置100は、図1に示した例のように、使用率が短時間で急激に増加する場合、使用率増加時に受信バッファをバッファプールに追加し、使用率低下時にバッファプールから受信バッファを削除する処理を行う。すなわち、伝送装置100は、受信バッファの枯渇が発生する可能性がある時間帯のみ、受信バッファをバッファプールに追加する。
一方、図2に示した例では、使用率が緩やかに増加している。そして、その後は、使用率が低下することなく、所定の値にとどまっている。このような状況は、一般に、人口増加時などに発生することが考えられる。したがって、図2に示した例のように、使用率が徐々に増加する場合、一般に、使用率はその後に低くなっていくケースはほとんどない。そこで、実施例1に係る伝送装置100は、図2に示した例のように、使用率が徐々に増加する場合、使用率増加時に受信バッファをバッファプールに追加するが、バッファプールから受信バッファを削除する処理は行わない。
以下に、上述した伝送装置100について詳細に説明する。
[実施例1に係る伝送装置の構成]
次に、図3を用いて、実施例1に係る伝送装置100の構成について説明する。図3は、実施例1に係る伝送装置100の構成例を示す図である。図3に示すように、伝送装置100は、Ether HD111と、Etherドライバ112と、ネットワークドライバ120と、ネットワークプロトコル130と、バッファプール140と、使用率算出部150と、揮発性メモリ160と、CPU171と、不揮発性メモリ173と、Timer172と、OS180と、バッファプール制御部191と、最適バッファパタン予測部192とを有する。
Ether HD111は、外部装置からパケットを受信するインタフェースである。Etherドライバ112は、Ether HD111によってパケットが受信された場合に、ネットワークドライバ120を起動し、受信パケットをネットワークドライバ120へ送信する。
ネットワークドライバ120は、バッファプール140から受信バッファを捕捉して、Etherドライバ112から受け付けた受信パケットを、捕捉した受信バッファに格納するとともに、使用率算出部150を起動する。このとき、ネットワークドライバ120は、受信パケットのサイズに基づいて、捕捉する受信バッファを決定する。例えば、ネットワークドライバ120は、1800[Byte]のパケットを受信した場合、2048[Byte]の受信バッファを捕捉して、捕捉した受信バッファに受信パケットを格納する。
また、ネットワークドライバ120は、受信パケットを格納した受信バッファをネットワークプロトコル130へ通知する。ネットワークプロトコル130は、所定の通信規格に則って伝送処理を行う。
バッファプール140は、サイズの異なる複数種類の受信バッファを有する。図3に示した例において、バッファプール140は、サイズが2048[Byte]である受信バッファと、サイズが1024[Byte]である受信バッファと、サイズが512[Byte]である受信バッファとを有する。
なお、図3には図示することを省略したが、伝送装置100は、バッファプール140の他に、ヒープ領域やリザーブ領域などに用いるメモリを有する。このようなヒープ領域およびリザーブ領域は、コンパイラやリンカによって割り当てられる領域であり、主にプログラムが動的に可変長のメモリ領域を要求する場合に用いられる。すなわち、ヒープ領域およびリザーブ領域は、OS(Operating System)やアプリケーションソフトなどのプログラムによって自由に確保される空き領域である。
使用率算出部150は、ネットワークドライバ120によって受信パケットがバッファプール140に格納されるたびに、バッファプール140の使用率、および、監視周期などを算出する。以下に、使用率算出部150の処理について具体的に説明する。
使用率算出部150は、受信パケットがバッファプール140に格納されるたびに、受信バッファの種類ごとに、受信パケットが格納されている受信バッファの個数を、受信バッファの総数で除算することにより、受信バッファの使用率を算出する。
例えば、バッファプール140が、2048[Byte]の受信バッファを100個有しているものとする。また、2048[Byte]の受信バッファのうち、20個の受信バッファに受信パケットが格納されているものとする。かかる場合、使用率算出部150は、受信パケットが格納されている受信バッファの個数「20」を、受信バッファの総数「100」で除算することにより、2048[Byte]の受信バッファの使用率として、「20%」を算出する。同様に、使用率算出部150は、1024[Byte]および512[Byte]の受信バッファについても使用率を算出する。
そして、使用率算出部150は、算出した使用率を揮発性メモリ160に記憶させる。このとき、使用率算出部150は、パケットを受信した時刻に対応付けて、受信バッファの種類ごとに使用率を揮発性メモリ160に記憶させる。なお、以下では、使用率算出部150によって揮発性メモリ160に記憶される使用率の情報を「監視データ」と表記するものとする。
また、使用率算出部150は、使用率を算出した後に、受信バッファの種類ごとに算出した各使用率から最大使用率を抽出して、抽出した最大使用率に基づいて監視周期を決定する。具体的には、使用率算出部150は、最大使用率が大きいほど監視周期を小さい値にし、最大使用率が小さいほど監視周期を大きい値にすることを決定し、決定した監視周期を不揮発性メモリ173に記憶させる。なお、以下では、使用率算出部150によって不揮発性メモリ173に記憶される監視周期を「監視周期データ」と表記するものとする。
例えば、使用率算出部150が、最大使用率が「30%」である場合、監視周期を「6時間」に決定し、最大使用率が「50%」である場合、監視周期を「1時間」に決定し、最大使用率が「90%」である場合、監視周期を「3分」に決定するものとする。また、ここでは、2048[Byte]の受信バッファの使用率が「30%」であり、1024[Byte]の受信バッファの使用率が「90%」であり、512[Byte]の受信バッファの使用率が「10%」であるものとする。
かかる場合、使用率算出部150は、最大使用率として、「90%」を抽出する。そして、使用率算出部150は、抽出した最大使用率が「90%」であるので、監視周期を「3分」にすることを決定する。
また、使用率算出部150は、使用率を算出した後に、受信バッファの種類ごとに、使用率の増加率を算出する。続いて、使用率算出部150は、受信バッファの種類ごとに算出した各増加率から、最も高い増加率(以下、「最大増加率」と言う)を抽出する。そして、使用率算出部150は、抽出した最大増加率が所定の増加率閾値よりも大きい場合に、短時間で使用率が増加したことを示す短期増加フラグを、不揮発性メモリ173に記憶させる。一方、使用率算出部150は、最大増加率が増加率閾値以下である場合に、長時間にわたって使用率が徐々に増加したことを示す長期増加フラグを、不揮発性メモリ173に記憶させる。なお、以下では、使用率算出部150によって不揮発性メモリ173に記憶される長期増加フラグまたは短期増加フラグを「増加フラグ」と表記するものとする。
揮発性メモリ160は、上述した監視データを記憶する。図4に、監視データの一例を示す。図4に示すように、監視データは、パケットを受信した時刻に対応付けて、受信バッファの種類ごとに使用率を記憶する。
図4に示した例は、時刻「10時00分00秒」において、2048[Byte]、1024[Byte]、512[Byte]の受信バッファの使用率が全て「10%」であったことを示している。また、図4に示した例は、時刻「10時10分00秒」において、2048[Byte]、1024[Byte]、512[Byte]の受信バッファの使用率が、それぞれ「70%」、「30%」、「10%」であったことを示している。
CPU(Central Processing Unit)171は、伝送装置100を全体制御し、例えば、使用率算出部150や、OS180等の各部を制御する。Timer172は、後述するOS180に対してタイマー割り込みを行う。
不揮発性メモリ173は、監視周期データ、増加フラグ、最適パタンデータなどを記憶する。具体的には、不揮発性メモリ173は、使用率算出部150によって監視周期データおよび増加フラグが記憶される。
図5に、不揮発性メモリ173が記憶する監視周期データおよび増加フラグの一例を示す。図5に示した例では、不揮発性メモリ173は、監視周期データとして「180」を記憶し、増加フラグとして「1」を記憶している。
なお、図5に示した例において、監視周期データは秒単位の数値が記憶されるものとする。すなわち、図5に示した例では、不揮発性メモリ173は、監視周期データとして「180秒(3分)」を記憶している。また、図5に示した例において、増加フラグが「1」である場合、短期増加フラグであることを示し、増加フラグが「2」である場合、長期増加フラグであることを示すものとする。すなわち、図5に示した例では、不揮発性メモリ173は、増加フラグとして「短期増加フラグ」を記憶している。
また、不揮発性メモリ173は、後述するバッファプール制御部191によって最適パタンデータが記憶される。ここで言う「最適パタンデータ」とは、受信バッファが追加または削除された後におけるバッファプール140が有する受信バッファの個数を示す。かかる最適パタンデータは、伝送装置100が再起動する場合に用いられる。伝送装置100による再起動処理については、図7を用いて後に説明する。
図6に、不揮発性メモリ173が記憶する最適パタンデータの一例を示す。図6に示した例では、不揮発性メモリ173は、2048[Byte]の受信バッファの個数として「100個」を記憶している。また、不揮発性メモリ173は、1024[Byte]の受信バッファの個数として「200個」を記憶し、512[Byte]の受信バッファの個数として「300個」を記憶している。
すなわち、図6に示した最適パタンデータは、バッファプール140が、2048[Byte]、1024[Byte]、512[Byte]の受信バッファを、それぞれ「100個」、「200個」、「300個」有することが最適であることを示している。
OS180は、伝送装置100に搭載される基本ソフトウェアであり、伝送装置100全体を管理する。かかるOS180は、スケジューリング部181と、メモリ管理部182とを有する。
スケジューリング部181は、不揮発性メモリ173に記憶されている監視周期データに基づいて、バッファプール制御部191を起動する。例えば、不揮発性メモリ173が図5に示した状態であるものとする。かかる場合、スケジューリング部181は、不揮発性メモリ173から監視周期データ「180」を読み出す。そして、スケジューリング部181は、「180秒(3分)」ごとに、バッファプール制御部191を起動する。
メモリ管理部182は、バッファプール140に対して、受信バッファの追加処理および削除処理を行う。具体的には、メモリ管理部182は、後述するバッファプール制御部191から、追加または削除する受信バッファの種類およびサイズを受け付けた場合に、CPU171に対して、割り込み禁止信号を発行する。続いて、メモリ管理部182は、バッファプール制御部191から受け付けた受信バッファの種類およびサイズに基づいて、受信バッファの追加および削除を行う。その後、メモリ管理部182は、CPU171に対して、割り込み禁止解除信号を発行する。
なお、受信バッファの追加処理または削除処理を行う場合に、CPU171に対して割り込み禁止信号を発行する理由は、受信バッファの追加処理中や削除処理中に、追加対象の受信バッファや削除対象の受信バッファを用いられないようにするためである。
バッファプール制御部191は、最適バッファパタン予測部192と連動して、バッファプール140に追加または削除する受信バッファの種類およびサイズを算出し、算出した受信バッファの種類およびサイズをメモリ管理部182に通知する。なお、バッファプール制御部191および最適バッファパタン予測部192による処理については、図10〜図14を用いて詳細に説明する。
[実施例1に係る伝送装置による起動処理]
次に、実施例1に係る伝送装置100による起動処理について説明する。図7は、起動時における伝送装置100の構成例を示す図である。なお、図7に例示した伝送装置100は、図3に示した伝送装置100と同様の装置であるが、図7には、起動処理に関連する処理部のみを図示する。
図7に示した伝送装置100において、記憶部210は、OSや各種アプリケーションを形成する各種プログラム群を記憶する。CPU171は、伝送装置100が起動される場合に、リセットベクタによりBOOTプログラム220を起動する。
BOOTプログラム220は、カーネルローダ230を起動する。カーネルローダ230は、カーネルをメモリに展開し、初期化部240を起動する。なお、上述したカーネルローダ230は、IPL(Initial Program Loader)であってもよい。
初期化部240は、不揮発性メモリ173に最適パタンデータが記憶されている場合に、不揮発性メモリ173に記憶されている最適パタンデータに基づいて、バッファプール140内に受信バッファを生成する。
例えば、不揮発性メモリ173が、図6に示した状態であるものとする。かかる場合、初期化部240は、バッファプール140に、2048[Byte]の受信バッファを「100個」生成し、1024[Byte]の受信バッファを「200個」生成し、512[Byte]の受信バッファを「300個」生成する。
一方、初期化部240は、不揮発性メモリ173に最適パタンデータが記憶されていない場合に、システムデータからパタンデータを読み出し、読み出したパタンデータに基づいて、バッファプール140内に受信バッファを生成する。なお、ここで言う「システムデータ」とは、伝送装置100に予め各種情報の初期値などが記憶される領域を示す。すなわち、システムデータに記憶されているパタンデータとは、伝送装置100が生成する受信バッファの個数の初期値を示す。
上述したように、バッファプール制御部191は、バッファプール140に対して受信バッファの追加処理や削除処理を行った場合に、変更後の受信バッファの個数を、最適パタンデータとして不揮発性メモリ173に記憶する。これにより、伝送装置100は、人為的に再起動が行われる場合や、障害時などに再起動が行われる場合であっても、不揮発性メモリ173に記憶されている最適パタンデータに基づいて、受信バッファを生成することができる。すなわち、伝送装置100は、シャットダウン前におけるバッファプール140の構成を再現することができる。
[実施例1に係る伝送装置による処理手順]
次に、図8〜図15を用いて、実施例1に係る伝送装置100による各種処理の手順について説明する。
[パケット受信処理手順]
まず、図8を用いて、実施例1に係る伝送装置100によるパケット受信処理の手順について説明する。図8は、実施例1に係る伝送装置100によるパケット受信処理手順を示すフローチャートである。
図8に示すように、伝送装置100のEtherドライバ112は、Ether HD111によってパケットが受信された場合に(ステップS101肯定)、ネットワークドライバ120を起動する。
ネットワークドライバ120は、受信パケットのサイズに基づいて、捕捉する受信バッファを決定し、捕捉した受信バッファに受信パケットを格納するとともに(ステップS102)、使用率算出部150を起動する。
ネットワークドライバ120によって起動された使用率算出部150は、バッファプール140の使用率を算出して、算出した使用率を、パケットを受信した時刻に対応付けて、揮発性メモリ160に記憶させる(ステップS103)。このとき、使用率算出部150は、受信パケットの種類ごとに、使用率を揮発性メモリ160に記憶させる。
また、使用率算出部150は、受信バッファの種類ごとに算出した各使用率から最大使用率を抽出し、抽出した最大使用率に基づいて監視周期を決定する(ステップS104)。具体的には、使用率算出部150は、最大使用率が大きいほど監視周期を小さい値にし、最大使用率が小さいほど監視周期を大きい値にすることを決定する。
続いて、使用率算出部150は、受信バッファの種類ごとに、使用率の増加率を算出する。続いて、使用率算出部150は、受信バッファの種類ごとに算出した使用率の増加率から、最大増加率を抽出する。そして、使用率算出部150は、抽出した最大増加率が所定の増加率閾値よりも大きい場合に(ステップS105肯定)、増加フラグを短期増加フラグにすることを決定する(ステップS106)。一方、使用率算出部150は、最大増加率が増加率閾値以下である場合に(ステップS105否定)、増加フラグを長期増加フラグにすることを決定する(ステップS107)。
そして、使用率算出部150は、上記ステップ104において決定した監視周期を、不揮発性メモリ173に記憶させる(ステップS108)。また、使用率算出部150は、上記ステップS106またはステップS107において決定した増加フラグを不揮発性メモリ173に記憶させる(ステップS108)。
[スケジューリング処理手順]
次に、図9を用いて、実施例1におけるスケジューリング部181によるスケジューリング処理の手順について説明する。図9は、実施例1におけるスケジューリング部181によるスケジューリング処理手順を示すフローチャートである。
図9に示すように、伝送装置100のスケジューリング部181は、まず、不揮発性メモリ173から監視周期データを読み出して監視周期を取得する(ステップS201)。そして、スケジューリング部181は、取得した監視周期が経過した場合に(ステップS202肯定)、バッファプール制御部191を起動する(ステップS203)。スケジューリング部181は、監視周期が経過するたびに(ステップS202肯定)、バッファプール制御部191を起動する(ステップS203)。
スケジューリング部181によって起動されたバッファプール制御部191は、バッファプール制御処理を実行する(ステップS204)。なお、バッファプール制御部191によるバッファプール制御処理については、図10を用いて後に説明する。
[バッファプール制御処理手順]
次に、図10を用いて、図9のステップS204におけるバッファプール制御処理の手順について説明する。図10は、実施例1におけるバッファプール制御部191によるバッファプール制御処理手順を示すフローチャートである。
図10に示すように、バッファプール制御部191は、不揮発性メモリ173に記憶されている増加フラグが短期増加フラグである場合に(ステップS301短期増加フラグ)、最適バッファパタン予測部192を起動して、短期用パタン計算処理を行わせる(ステップS302)。なお、最適バッファパタン予測部192による短期用パタン計算処理については、図11を用いて後に説明する。
一方、バッファプール制御部191は、不揮発性メモリ173に記憶されている増加フラグが長期増加フラグである場合に(ステップS301長期増加フラグ)、最適バッファパタン予測部192を起動して、長期用パタン計算処理を行わせる(ステップS303)。なお、最適バッファパタン予測部192による長期用パタン計算処理については、図12を用いて後に説明する。
ここで、最適バッファパタン予測部192は、短期用パタン計算処理又は長期用パタン計算処理を行うことにより、受信バッファを追加すると判定した場合、バッファプール140を変更する旨の情報を、バッファプール制御部191に通知する。このとき、最適バッファパタン予測部192は、追加する受信バッファの種類と、追加する受信バッファの個数(以下、「追加個数」と言う)とをバッファプール制御部191に通知する。
また、最適バッファパタン予測部192は、受信バッファを削除すると判定した場合、バッファプール140を変更する旨の情報を、バッファプール制御部191に通知する。このとき、最適バッファパタン予測部192は、削除する受信バッファの種類と、削除する受信バッファの個数(以下、「削除個数」と言う)とをバッファプール制御部191に通知する。
また、最適バッファパタン予測部192は、バッファプール140に対して、受信バッファの追加処理および削除処理を行わないと判定した場合、バッファプール140を変更しない旨の情報をバッファプール制御部191に通知する。
そして、バッファプール制御部191は、最適バッファパタン予測部192から、バッファプール140を変更しない旨の情報を受け付けた場合(ステップS304否定)、処理を終了する。
一方、バッファプール制御部191は、最適バッファパタン予測部192から、バッファプール140を変更する旨の情報を受け付けた場合に(ステップS304肯定)、かかる変更処理が、追加処理、または、削除処理のいずれであるかを判定する(ステップS305)。
変更処理が追加処理である場合(ステップS305追加)、バッファプール制御部191は、最適バッファパタン予測部192から受け付けた追加個数に基づいて、追加する受信バッファのサイズを、受信バッファの種類ごとに算出する(ステップS306)。そして、バッファプール制御部191は、算出した受信バッファのサイズと、受信バッファの種類との組合せをメモリ管理部182に通知する。
バッファプール制御部191から受信バッファのサイズと種類との組合せを受け付けたメモリ管理部182は、CPU171に対して、割り込み禁止信号を発行する(ステップS307)。続いて、メモリ管理部182は、メモリのヒープ領域およびリザーブ領域のうち、バッファプール制御部191から受け付けた受信バッファのサイズ分の領域を受信バッファとして確保し、確保した受信バッファをバッファプール140に追加する(ステップS308)。続いて、メモリ管理部182は、CPU171に対して、割り込み禁止解除信号を発行する(ステップS309)。
メモリ管理部182による受信バッファ変更処理が完了した場合に(ステップS310肯定)、バッファプール制御部191は、変更処理後のバッファプール140のバッファパタンを、最適パタンデータとして不揮発性メモリ173に記憶させる(ステップS311)。
一方、変更処理が削除処理である場合(ステップS305削除)、バッファプール制御部191は、最適バッファパタン予測部192から受け付けた削除個数に基づいて、削除する受信バッファのサイズを、受信バッファの種類ごとに算出する(ステップS312)。
続いて、バッファプール制御部191は、バッファプール140から、上記ステップS312において算出したサイズ分の受信バッファを削除したと仮定した場合に、受信バッファのサイズが初期値以上であるか否かを判定する(ステップS313)。なお、バッファプール制御部191は、ステップS313における判定処理を、受信バッファの種類ごとに行う。
そして、削除後の受信バッファのサイズが初期値よりも小さくなる場合(ステップS313否定)、バッファプール制御部191は、処理を終了する。一方、削除後のバッファプール140の受信バッファが初期値以上になる場合(ステップS313肯定)、バッファプール制御部191は、ステップS312において算出したサイズと、受信バッファの種類との組合せをメモリ管理部182に通知する。
続いて、メモリ管理部182は、CPU171に対して、割り込み禁止信号を発行し(ステップS307)、バッファプール140から、バッファプール制御部191から受け付けたサイズ分の領域を削除する(ステップS308)。続いて、メモリ管理部182は、CPU171に対して、割り込み禁止解除信号を発行する(ステップS309)。
そして、メモリ管理部182による受信バッファ変更処理が完了した場合に(ステップS310肯定)、バッファプール制御部191は、変更処理後のバッファプール140のバッファパタンを、最適パタンデータとして不揮発性メモリ173に記憶させる(ステップS311)。
[短期用パタン計算処理手順]
次に、図11を用いて、図10のステップS302における短期用パタン計算処理の手順について説明する。図11は、実施例1における最適バッファパタン予測部192による短期用パタン計算処理手順を示すフローチャートである。
図11に示すように、最適バッファパタン予測部192は、短期用パタン計算処理を行う場合に、まず、短期監視用閾値をシステムデータから読み出す(ステップS401)。短期監視用閾値は、所定の範囲の値であり、例えば、「30%〜60%」といった値である。
続いて、最適バッファパタン予測部192は、使用率が短期監視用閾値の上限を超えている受信バッファの種類が存在するか否かを判定する(ステップS402)。例えば、上記例のように、短期監視用閾値が「30%〜60%」である場合、最適バッファパタン予測部192は、使用率が短期監視用閾値の上限「60%」を超えている受信バッファの種類が存在するか否かを判定する。
短期監視用閾値の上限を超えている受信バッファの種類が存在する場合(ステップS402肯定)、最適バッファパタン予測部192は、短期監視用閾値の上限を超えている受信バッファの種類について、追加用予測処理を行う(ステップS403)。最適バッファパタン予測部192は、追加用予測処理の結果、追加処理を行うと判定した場合、現状の受信バッファの合計サイズと、追加する受信バッファのサイズとの比率(以下、「追加比率」という)を算出する。なお、最適バッファパタン予測部192による追加用予測処理については、図13を用いて、後に説明する。
続いて、最適バッファパタン予測部192は、追加用予測処理の結果、追加処理を行わないと判定した場合(ステップS404否定)、処理を終了する。一方、最適バッファパタン予測部192は、追加処理を行うと判定した場合(ステップS404肯定)、追加用予測処理において算出した追加比率に基づいて、バッファプール140に追加する受信バッファの個数と、受信バッファの種類とを決定する(ステップS405)。
例えば、最適バッファパタン予測部192が、追加用予測処理の結果、512[Byte]の受信バッファを追加すると判定したものとする。また、ここでは、最適バッファパタン予測部192が、追加比率として「10%」を算出したものとする。かかる場合、最適バッファパタン予測部192は、512[Byte]の受信バッファが、現状よりも「10%」増加するように、追加する受信バッファの個数を算出する。例えば、現状の512[Byte]の受信バッファが合計51200[Byte]である場合、最適バッファパタン予測部192は、「10%」増加させるために、追加する受信バッファの個数として「10個」を算出する。
続いて、最適バッファパタン予測部192は、ステップS405において決定した受信バッファの個数にマージンを加算する(ステップS406)。続いて、最適バッファパタン予測部192は、バッファプール140を変更する旨の情報と、追加する受信バッファの種類と、追加個数とをバッファプール制御部191に通知する(ステップS407)。
一方、最適バッファパタン予測部192は、短期監視用閾値の上限を超えている受信バッファの種類が存在しない場合(ステップS402否定)、使用率が短期監視用閾値の下限より小さいか否かを、受信バッファの種類ごとに判定する(ステップS408)。例えば、上記例のように、短期監視用閾値が「30%〜60%」である場合、最適バッファパタン予測部192は、使用率が短期監視用閾値の下限「30%」より小さいか否かを、受信バッファの種類ごとに判定する。
使用率が短期監視用閾値の下限より小さい受信バッファが存在しない場合(ステップS408否定)、最適バッファパタン予測部192は、処理を終了する。一方、使用率が短期監視用閾値の下限より小さい受信バッファが存在する場合(ステップS408肯定)、最適バッファパタン予測部192は、使用率が短期監視用閾値の下限より小さい受信バッファの種類について、削除用予測処理を行う(ステップS409)。最適バッファパタン予測部192は、削除用予測処理の結果、削除処理を行うと判定した場合、現状の受信バッファの合計サイズと、削除する受信バッファのサイズとの比率(以下、「削除比率」という)を算出する。なお、最適バッファパタン予測部192による削除用予測処理については、図14を用いて、後に説明する。
続いて、最適バッファパタン予測部192は、削除用予測処理の結果、削除処理を行わないと判定した場合(ステップS410否定)、処理を終了する。一方、最適バッファパタン予測部192は、削除処理を行うと判定した場合(ステップS410肯定)、削除用予測処理において算出した削除比率に基づいて、バッファプール140から削除する受信バッファの個数と、受信バッファの種類とを決定する(ステップS411)。
続いて、最適バッファパタン予測部192は、バッファプール140を変更する旨の情報と、削除する受信バッファの種類と、削除個数とをバッファプール制御部191に通知する(ステップS412)。
このように、実施例1に係る伝送装置100は、1回の処理において、バッファプール140に対する受信バッファの追加処理または削除処理のいずれか一方のみを行う。言い換えれば、伝送装置100は、受信バッファの追加処理と削除処理とを同時に行わない。これは、追加処理と削除処理とを同時に行うと、バッファプール140に対する受信バッファの変更処理が煩雑になる可能性があるからである。ただし、図11に示した処理手順のように、伝送装置100は、削除処理よりも追加処理を優先的に行うので、受信バッファの枯渇を防止することができる。
[長期用パタン計算処理手順]
次に、図12を用いて、図10のステップS303における長期用パタン計算処理の手順について説明する。図12は、実施例1における最適バッファパタン予測部192による長期用パタン計算処理手順を示すフローチャートである。
図12に示すように、最適バッファパタン予測部192は、長期用パタン計算処理を行う場合に、まず、長期監視用閾値をシステムデータから読み出す(ステップS501)。長期監視用閾値は、所定の値であり、例えば、「60%」といった値である。
続いて、最適バッファパタン予測部192は、使用率が長期監視用閾値を超えている受信バッファの種類が存在するか否かを判定する(ステップS502)。使用率が長期監視用閾値を超えている受信バッファの種類が存在しない場合(ステップS502否定)、最適バッファパタン予測部192は、処理を終了する。
一方、長期監視用閾値を超えている受信バッファの種類が存在する場合(ステップS502肯定)、最適バッファパタン予測部192は、長期監視用閾値の上限を超えている受信バッファの種類について、追加用予測処理を行う(ステップS503)。なお、最適バッファパタン予測部192による追加用予測処理については、図13を用いて、後に説明する。
続いて、最適バッファパタン予測部192は、追加用予測処理の結果、追加処理を行わないと判定した場合(ステップS504否定)、処理を終了する。一方、最適バッファパタン予測部192は、追加処理を行うと判定した場合(ステップS504肯定)、バッファプール140に追加する受信バッファの個数と、受信バッファの種類とを決定する(ステップS505)。続いて、最適バッファパタン予測部192は、ステップS405において決定した受信バッファの個数にマージンを加算する(ステップS506)。
続いて、最適バッファパタン予測部192は、バッファプール140を変更する旨の情報と、追加する受信バッファの種類と、追加個数とをバッファプール制御部191に通知する(ステップS507)。
このように、最適バッファパタン予測部192は、長期用パタン計算処理を行う場合、受信バッファを削除する処理を行わない。すなわち、伝送装置100は、増加フラグが長期増加フラグである場合、受信バッファの削除処理を行わない。これは、図2を用いて説明したように、使用率が徐々に増加する場合、その後に使用率が低下しない傾向にあるからである。
[追加用予測処理手順]
次に、図13を用いて、図11のステップS403、および、図12のステップS503における追加用予測処理の手順について説明する。図13は、実施例1における最適バッファパタン予測部192による追加用予測処理手順を示すフローチャートである。なお、図13に示した処理手順は、上記ステップS403またはS503において、使用率が短期監視用閾値の上限を超えていると判定された受信バッファの種類ごとに実行される。
図13に示すように、最適バッファパタン予測部192は、追加用予測処理を行う場合に、揮発性メモリ160に記憶されている監視データに基づいて、時間経過に対する使用率の回帰直線を算出する(ステップS601)。
具体的には、最適バッファパタン予測部192は、揮発性メモリ160に記憶されている時刻に基づいて、時間経過をxi、使用率をyiとした場合における回帰直線「y=ax+b」を算出する。このとき、最適バッファパタン予測部192は、以下に示す式(1)および(2)の連立方程式により、回帰直線における定数aおよびbを算出する。
Figure 2010268321
Figure 2010268321
続いて、最適バッファパタン予測部192は、算出した回帰直線のxに、監視周期を代入することにより、次の監視周期におけるバッファプール140の使用率を算出する(ステップS602)。なお、以下では、使用率の変動量に基づいて予測された使用率を「予測使用率」と表記するものとする。
続いて、最適バッファパタン予測部192は、予測使用率が危険閾値よりも大きい場合に(ステップS603肯定)、追加比率を算出する(ステップS604)。具体的には、最適バッファパタン予測部192は、予測使用率から現状の使用率を減算することにより、追加比率を算出する。例えば、予測使用率が「95%」であり、現状の使用率が「91%」である場合、最適バッファパタン予測部192は、追加比率として「4%」を算出する。
一方、最適バッファパタン予測部192は、予測使用率が危険閾値以下である場合に(ステップS603否定)、処理を終了する。
[削除用予測処理手順]
次に、図14を用いて、図11のステップS409における削除用予測処理の手順について説明する。図14は、実施例1における最適バッファパタン予測部192による削除用予測処理手順を示すフローチャートである。なお、図14に示した処理手順は、上記ステップS409において、使用率が短期監視用閾値の下限より小さいと判定された受信バッファの種類ごとに実行される。
図14に示すように、最適バッファパタン予測部192は、削除用予測処理を行う場合に、揮発性メモリ160に記憶されている監視データに基づいて、時間経過に対する使用率の回帰直線を算出する(ステップS701)。
続いて、最適バッファパタン予測部192は、算出した回帰直線のxに、監視周期を代入することにより、次の周期におけるバッファプール140の予測使用率を算出する(ステップS702)。
続いて、最適バッファパタン予測部192は、予測使用率が、安全閾値よりも小さい場合に(ステップS703肯定)、削除比率を算出する(ステップS704)。具体的には、最適バッファパタン予測部192は、現状の使用率から予測使用率を減算することにより、削除比率を算出する。
一方、予測使用率が、安全閾値以上である場合に(ステップS703否定)、最適バッファパタン予測部192は、処理を終了する。
[起動処理手順]
次に、図15を用いて、実施例1に係る伝送装置100による起動処理の手順について説明する。図15は、実施例1に係る伝送装置100による起動処理手順を示すフローチャートである。
伝送装置100が起動する場合、CPU171は、リセットベクタによりBOOTプログラム220を起動する。そして、BOOTプログラム220は、CPU171の初期化を行い、カーネルローダ230を起動する。カーネルローダ230は、カーネルをメモリに展開し、初期化部240を起動する。
そして、初期化部240は、不揮発性メモリ173に最適パタンデータが記憶されている場合に(ステップS801肯定)、不揮発性メモリ173から最適パタンデータを読み出す(ステップS802)。そして、初期化部240は、不揮発性メモリ173から読み出した最適パタンデータに基づいて、バッファプール140内に受信バッファを生成する(ステップS803)。
一方、初期化部240は、不揮発性メモリ173に最適パタンデータが記憶されていない場合に(ステップS801否定)、システムデータから最適パタンデータを読み出す(ステップS804)。そして、初期化部240は、システムデータから読み出した最適パタンデータに基づいて、バッファプール140内に受信バッファを生成する(ステップS803)。
[実施例1の効果]
上述してきたように、実施例1に係る伝送装置100は、パケットを受信するたびにバッファメモリの使用率を蓄積し、蓄積した使用率に基づいて予測使用率を算出し、予測使用率が危険閾値より大きい場合に、受信バッファをバッファプールに追加する。また、伝送装置100は、予測した使用率が所定の安全閾値より小さい場合に、追加した受信バッファをバッファメモリから削除する。これにより、実施例1に係る伝送装置100は、システム稼働中においても、パケットの受信状況に応じた受信バッファを動的に生成することができるので、受信バッファの枯渇を防止することができる。
ところで、本願の開示する伝送装置等は、上述した実施例以外にも、種々の異なる形態にて実施されてよい。そこで、実施例2では、本願の開示する伝送装置等の他の実施例について説明する。
[短期用パタン計算処理手順]
上記実施例1では、図11を用いて説明したように、受信バッファの追加処理と削除処理とを同時に行わない例を示した。しかし、本願の開示する伝送装置は、受信バッファの追加処理と削除処理とを同時に行ってもよい。図16を用いて、受信バッファの追加処理と削除処理とを同時に行う例について説明する。
図16は、追加処理および削除処理を同時に行う場合における最適バッファパタン予測部192による短期用パタン計算処理手順を示すフローチャートである。図16に示すように、最適バッファパタン予測部192は、短期用パタン計算処理を行う場合に、まず、短期監視用閾値をシステムデータから読み出す(ステップS901)。続いて、最適バッファパタン予測部192は、受信バッファの種類ごとに、ステップS902〜S912における処理手順を行う。
具体的には、最適バッファパタン予測部192は、処理対象の受信バッファの使用率が短期監視用閾値の上限を超えているか否かを判定する(ステップS902)。短期監視用閾値の上限を超えている場合(ステップS902肯定)、最適バッファパタン予測部192は、処理対象の受信バッファの種類について、追加用予測処理を行う(ステップS903)。一方、最適バッファパタン予測部192は、処理対象の受信バッファの使用率が短期監視用閾値の上限を超えていない場合(ステップS902否定)、処理対象の受信バッファの使用率が短期監視用閾値の下限より小さいか否かを判定する(ステップS908)。なお、ステップS903〜S912における処理手順は、図11に示したステップS403〜S412における処理手順と同様である。
そして、最適バッファパタン予測部192は、全ての受信バッファの種類について、上記ステップS902〜S912における処理手順を行った場合(ステップS913肯定)、処理を終了する。一方、全ての受信バッファの種類について上記処理を行っていない場合(ステップS913否定)、最適バッファパタン予測部192は、未処理の受信バッファの種類について、上記ステップS902〜S912における処理手順を行う。
このように、伝送装置100は、受信バッファごとに短期用パタン計算処理を行うことにより、追加処理および削除処理を同時に行うことができる。例えば、伝送装置100は、2048[Byte]の受信バッファを追加するとともに、1024[Byte]の受信バッファを削除する処理を同時に行うことができる。これにより、伝送装置100は、より状況に応じた受信バッファを生成することができる。
[受信バッファの種類]
また、上記実施例1では、伝送装置100のバッファプール140は、2048[Byte]、1024[Byte]、512[Byte]の受信バッファを有する例を示した。しかし、伝送装置100は、他のサイズの受信バッファを有してもよい。例えば、伝送装置100は、2048[Byte]、1024[Byte]、512[Byte]、256[Byte]、128[Byte]の受信バッファを有してもよい。また、例えば、伝送装置100は、2048[Byte]の受信バッファだけを有してもよい。
[追加比率、削除比率]
また、上記実施例1では、図13および図14に示したように、予測使用率と現状の使用率との差分により、追加比率および削除比率を算出する例を示した。しかし、伝送装置100は、他の手法により追加または削除する受信バッファのサイズを算出してもよい。例えば、伝送装置100は、予測使用率と危険閾値との差が大きいほど、追加する受信バッファのサイズを大きくしたり、予測使用率と安全閾値との差が大きいほど、削除する受信バッファのサイズを大きくしたりしてもよい。また、例えば、伝送装置100は、受信バッファのサイズを変更した後の使用率が所望に値(例えば、「50%」)になるように、追加または削除する受信バッファのサイズを決定してもよい。
[システム構成等]
また、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)受信パケットを記憶する受信バッファを複数有するバッファメモリと、
パケットを受信するたびに前記バッファメモリの使用率を算出する算出部と、
所定の監視周期が経過するたびに、前記算出部によって算出された使用率に基づいて、前記バッファメモリの使用率の変動量を算出し、算出した変動量に基づいて前記バッファメモリにおける将来の使用率である予測使用率を予測する予測部と、
前記予測部によって予測された予測使用率が所定の危険閾値より大きい場合に、前記バッファメモリに受信バッファを追加するメモリ管理部と
を備えたことを特徴とする伝送装置。
(付記2)前記バッファメモリは、サイズの異なる複数種類の受信バッファを有し、
前記算出部は、受信バッファの種類ごとに使用率を算出し、
前記予測部は、前記算出部によって算出された使用率に基づいて、受信バッファの種類ごとに予測使用率を予測し、
前記メモリ管理部は、前記予測部によって予測された予測使用率が所定の危険閾値より大きい受信バッファの種類が存在する場合に、該受信バッファの種類に対応するサイズの受信バッファを前記バッファメモリに追加することを特徴とする付記1に記載の伝送装置。
(付記3)前記算出部は、受信バッファの各種類に対応する使用率のうち、最も高い使用率である最大使用率が大きいほど前記監視周期を小さい値に設定し、前記最大使用率が小さいほど前記監視周期を大きい値に設定し、
前記予測部は、前記算出部によって設定された監視周期が経過するたびに、受信バッファの種類ごとに予測使用率を予測することを特徴とする付記2に記載の伝送装置。
(付記4)前記算出部は、前記バッファメモリの使用率の増加率が所定の増加率閾値よりも大きい場合に、短期的に使用率が増加したことを示す短期増加フラグを設定し、
前記予測部は、前記算出部によって短期増加フラグが設定され、かつ、前記予測部によって予測された予測使用率が所定の安全閾値より小さい受信バッファの種類が存在する場合に、該受信バッファの種類に対応するサイズの受信バッファの一部を前記バッファメモリから削除することを特徴とする付記3に記載の伝送装置。
(付記5)前記予測部は、前記算出部によって算出された使用率と、該使用率が算出された時刻とを用いて、時間経過に対する使用率の回帰直線を算出し、算出した回帰直線と次の周期に対応する時間とに基づいて、予測使用率を予測することを特徴とする付記1〜4のいずれか一つに記載の伝送装置。
(付記6)前記メモリ管理部によって更新された前記バッファメモリにおける受信バッファの種類と、受信バッファの個数との組合せパタンであるバッファパタンを記憶するバッファパタン記憶部と、
当該の伝送装置が起動する場合に、前記バッファパタン記憶部に記憶されているバッファパタンに基づいて、前記バッファメモリに受信バッファを生成する初期化部と
をさらに備えたことを特徴とする付記2〜5のいずれか一つに記載の伝送装置。
(付記7)パケットを伝送する伝送装置による伝送方法であって、
前記伝送装置が、
パケットを受信するたびに、受信パケットを記憶する受信バッファを複数有するバッファメモリの使用率を算出する算出ステップと、
所定の監視周期が経過するたびに、前記算出ステップによって算出された使用率に基づいて、前記バッファメモリの使用率の変動量を算出し、算出した変動量に基づいて前記バッファメモリにおける将来の使用率である予測使用率を予測する予測ステップと、
前記予測ステップによって予測された予測使用率が所定の危険閾値より大きい場合に、前記バッファメモリに受信バッファを追加するメモリ管理ステップと
を含んだことを特徴とする伝送方法。
100、910、920 伝送装置
111、912 Ether HD
112、913 Etherドライバ
120、914、924 ネットワークドライバ
130、915 ネットワークプロトコル
140、911、921 バッファプール
150 使用率算出部
160 揮発性メモリ
171 CPU
172 Timer
173 不揮発性メモリ
180 OS
181 スケジューリング部
182 メモリ管理部
191 バッファプール制御部
192 最適バッファパタン予測部
210 記憶部
220 BOOTプログラム
230 カーネルローダ
240 初期化部

Claims (6)

  1. 受信パケットを記憶する受信バッファを複数有するバッファメモリと、
    パケットを受信するたびに前記バッファメモリの使用率を算出する算出部と、
    所定の監視周期が経過するたびに、前記算出部によって算出された使用率に基づいて、前記バッファメモリの使用率の変動量を算出し、算出した変動量に基づいて前記バッファメモリにおける将来の使用率である予測使用率を予測する予測部と、
    前記予測部によって予測された予測使用率が所定の危険閾値より大きい場合に、前記バッファメモリに受信バッファを追加するメモリ管理部と
    を備えたことを特徴とする伝送装置。
  2. 前記バッファメモリは、サイズの異なる複数種類の受信バッファを有し、
    前記算出部は、受信バッファの種類ごとに使用率を算出し、
    前記予測部は、前記算出部によって算出された使用率に基づいて、受信バッファの種類ごとに予測使用率を予測し、
    前記メモリ管理部は、前記予測部によって予測された予測使用率が所定の危険閾値より大きい受信バッファの種類が存在する場合に、該受信バッファの種類に対応するサイズの受信バッファを前記バッファメモリに追加することを特徴とする請求項1に記載の伝送装置。
  3. 前記算出部は、受信バッファの各種類に対応する使用率のうち、最も高い使用率である最大使用率が大きいほど前記監視周期を小さい値に設定し、前記最大使用率が小さいほど前記監視周期を大きい値に設定し、
    前記予測部は、前記算出部によって設定された監視周期が経過するたびに、受信バッファの種類ごとに予測使用率を予測することを特徴とする請求項2に記載の伝送装置。
  4. 前記算出部は、前記バッファメモリの使用率の増加率が所定の増加率閾値よりも大きい場合に、短期的に使用率が増加したことを示す短期増加フラグを設定し、
    前記予測部は、前記算出部によって短期増加フラグが設定され、かつ、前記予測部によって予測された予測使用率が所定の安全閾値より小さい受信バッファの種類が存在する場合に、該受信バッファの種類に対応するサイズの受信バッファの一部を前記バッファメモリから削除することを特徴とする請求項3に記載の伝送装置。
  5. 前記メモリ管理部によって更新された前記バッファメモリにおける受信バッファの種類と、受信バッファの個数との組合せパタンであるバッファパタンを記憶するバッファパタン記憶部と、
    当該の伝送装置が起動する場合に、前記バッファパタン記憶部に記憶されているバッファパタンに基づいて、前記バッファメモリに受信バッファを生成する初期化部と
    をさらに備えたことを特徴とする請求項2〜4のいずれか一つに記載の伝送装置。
  6. パケットを伝送する伝送装置による伝送方法であって、
    前記伝送装置が、
    パケットを受信するたびに、受信パケットを記憶する受信バッファを複数有するバッファメモリの使用率を算出する算出ステップと、
    所定の監視周期が経過するたびに、前記算出ステップによって算出された使用率に基づいて、前記バッファメモリの使用率の変動量を算出し、算出した変動量に基づいて前記バッファメモリにおける将来の使用率である予測使用率を予測する予測ステップと、
    前記予測ステップによって予測された予測使用率が所定の危険閾値より大きい場合に、前記バッファメモリに受信バッファを追加するメモリ管理ステップと
    を含んだことを特徴とする伝送方法。
JP2009119301A 2009-05-15 2009-05-15 伝送装置および伝送方法 Expired - Fee Related JP5278157B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009119301A JP5278157B2 (ja) 2009-05-15 2009-05-15 伝送装置および伝送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009119301A JP5278157B2 (ja) 2009-05-15 2009-05-15 伝送装置および伝送方法

Publications (2)

Publication Number Publication Date
JP2010268321A true JP2010268321A (ja) 2010-11-25
JP5278157B2 JP5278157B2 (ja) 2013-09-04

Family

ID=43364919

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009119301A Expired - Fee Related JP5278157B2 (ja) 2009-05-15 2009-05-15 伝送装置および伝送方法

Country Status (1)

Country Link
JP (1) JP5278157B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014110526A (ja) * 2012-11-30 2014-06-12 Yamaha Corp ネットワーク受信用バッファのバッファサイズ決定方法及び装置並びにネットワークセッションシステム
JP2015519660A (ja) * 2012-05-14 2015-07-09 アルカテル−ルーセント 三値連想メモリにおけるクラスタへのレコードの動的配分
KR20210078220A (ko) * 2019-12-18 2021-06-28 한국전자기술연구원 가변 패킷에 대한 수신 버퍼 처리 방법

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02196544A (ja) * 1989-01-26 1990-08-03 Nec Corp 通信制御装置
JPH04237238A (ja) * 1991-01-21 1992-08-25 Toshiba Corp 受信バッファ管理方式
JPH0962564A (ja) * 1995-08-24 1997-03-07 Nec Corp バッファ割り当て制御システム
JPH09102793A (ja) * 1995-10-06 1997-04-15 Hitachi Cable Ltd 中継装置
JPH1091515A (ja) * 1996-09-13 1998-04-10 Fuji Electric Co Ltd データバッファ管理装置
JPH10290205A (ja) * 1997-04-14 1998-10-27 Matsushita Electric Ind Co Ltd データ伝送装置
JP2004104192A (ja) * 2002-09-05 2004-04-02 Toyo Commun Equip Co Ltd バッファオーバーフロー検出方法および回路
JP2005184179A (ja) * 2003-12-17 2005-07-07 Fujitsu Ltd 可変長パケット蓄積装置及び方法
JP2007043580A (ja) * 2005-08-04 2007-02-15 Nec Corp 通信装置及びデータ受信方法
JP2008060658A (ja) * 2006-08-29 2008-03-13 Mitsubishi Electric Corp バッファ制御装置およびバッファ制御方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02196544A (ja) * 1989-01-26 1990-08-03 Nec Corp 通信制御装置
JPH04237238A (ja) * 1991-01-21 1992-08-25 Toshiba Corp 受信バッファ管理方式
JPH0962564A (ja) * 1995-08-24 1997-03-07 Nec Corp バッファ割り当て制御システム
JPH09102793A (ja) * 1995-10-06 1997-04-15 Hitachi Cable Ltd 中継装置
JPH1091515A (ja) * 1996-09-13 1998-04-10 Fuji Electric Co Ltd データバッファ管理装置
JPH10290205A (ja) * 1997-04-14 1998-10-27 Matsushita Electric Ind Co Ltd データ伝送装置
JP2004104192A (ja) * 2002-09-05 2004-04-02 Toyo Commun Equip Co Ltd バッファオーバーフロー検出方法および回路
JP2005184179A (ja) * 2003-12-17 2005-07-07 Fujitsu Ltd 可変長パケット蓄積装置及び方法
JP2007043580A (ja) * 2005-08-04 2007-02-15 Nec Corp 通信装置及びデータ受信方法
JP2008060658A (ja) * 2006-08-29 2008-03-13 Mitsubishi Electric Corp バッファ制御装置およびバッファ制御方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015519660A (ja) * 2012-05-14 2015-07-09 アルカテル−ルーセント 三値連想メモリにおけるクラスタへのレコードの動的配分
JP2014110526A (ja) * 2012-11-30 2014-06-12 Yamaha Corp ネットワーク受信用バッファのバッファサイズ決定方法及び装置並びにネットワークセッションシステム
KR20210078220A (ko) * 2019-12-18 2021-06-28 한국전자기술연구원 가변 패킷에 대한 수신 버퍼 처리 방법
KR102275870B1 (ko) * 2019-12-18 2021-07-12 한국전자기술연구원 가변 패킷에 대한 수신 버퍼 처리 방법

Also Published As

Publication number Publication date
JP5278157B2 (ja) 2013-09-04

Similar Documents

Publication Publication Date Title
CN110049130B (zh) 一种基于边缘计算的服务部署和任务调度方法及装置
US20200151006A1 (en) Computing node job assignment using multiple schedulers
JP4747307B2 (ja) ネットワーク処理制御装置,プログラムおよび方法
CN108462647B (zh) 带宽调整方法和网关
CN106790696B (zh) 一种消息传输方法和装置
JP2009182443A (ja) 通信端末、動作モード管理プログラム、および動作モード管理方法
JP5278157B2 (ja) 伝送装置および伝送方法
JP2008158996A (ja) 情報処理装置及び情報処理方法
CN110336680B (zh) 一种网络广播控制方法、系统及电子设备和存储介质
JP6402576B2 (ja) 通信装置、情報処理装置、情報処理システム及び通信装置の制御方法
JP6117345B2 (ja) 処理性能低下を回避するメッセージシステム
JP6997555B2 (ja) 情報処理装置、通信システム、情報処理方法、およびプログラム
JP5786942B2 (ja) スケジューリングシステム、データ処理システムおよびスケジューリング方法
CN108737460B (zh) 一种连接的处理方法及客户端
CN108781170B (zh) 一种配置装置及方法
JP5617586B2 (ja) 情報処理プログラム、中継装置及び中継管理装置
JP5351839B2 (ja) オーダ処理方法、プログラムおよびネットワークシステム
CN111629399B (zh) 消息处理方法、装置及终端
JP6204287B2 (ja) 分散処理方法、処理サーバ、および、プログラム
JP4952435B2 (ja) リソース管理装置及びそれを用いた無線ネットワーク制御装置
US9411705B2 (en) Event communication apparatus for protection relay
CN110784775A (zh) 一种视频分片缓存方法、装置及视频点播系统
CN112422613B (zh) 数据处理方法、数据处理平台和计算机可读存储介质
JP2020119026A (ja) サーバー装置、メンテナンス管理システム及びメンテナンス管理プログラム
JP2018157415A (ja) 無線通信システム、無線通信端末及び無線通信方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130305

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130404

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: 20130423

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130506

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees