以下、本発明の実施の形態について、図面を参照して説明する。
図1は、本実施の形態の概要を示す図である。図1に示したように、本実施の形態に係る通信装置1は、データを受信し、受信したデータを出力するまでの間、一時的に記憶する。
図1に示す通信装置1は、バッファのオーバーフローを防止するために、書き込み制御手段1a、一時記憶手段1b、読み出し制御手段1c、読み捨て制御手段1dを有している。
書き込み制御手段1aは、一時記憶手段1bに対して、通信装置1が受信したデータを書き込む処理を実行する。
一時記憶手段1bは、書き込み制御手段1aによって書き込まれた、通信装置1が受信したデータを一時的に記憶する。この一時記憶手段1bは、例えば、パケットの伝送速度に対応して高速に動作可能な特性を有するSRAM(Static Random Access Memory)を有するバッファなどが該当する。
読み出し制御手段1cは、一時記憶手段1bに記憶されているデータを読み出す処理を実行する。これにより、通信装置1で受信されたデータが一時記憶手段1bにおいて一時的に記憶された後、通信装置1から出力される。出力されたデータは、例えば、通信装置1が接続されているネットワーク(図示省略)を介してデータの宛て先となる端末装置に転送される。
読み捨て制御手段1dは、一時記憶手段1bから読み出されたデータを廃棄するデータ廃棄を行う処理を実行する。これにより、一時記憶手段1bの空き容量を増加させることができる。
このような通信装置1によれば、書き込み制御手段1aにより、一時記憶手段1bにデータを書き込む処理が実行される。読み出し制御手段1cにより、一時記憶手段1bに記憶されているデータが読み出される。読み捨て制御手段1dにより、読み出されたデータが廃棄される。
これにより、回路規模が大きい入力側の帯域制御回路を省くことによってコストの増加を抑えつつ、読み捨て制御手段1dが行うデータ廃棄によってバッファのオーバーフローを防止できる。
[第1の実施の形態]
図2は、通信システムの構成を示す図である。本実施の形態の通信システムは、端末装置間でデータの通信を行えるように、ステーションを始めとする複数の通信装置がデータをパケット形式で転送するものである。
図2に示す通信システムは、ステーション100a,100b,100c,100d,100e、多重装置210a,210b、分離装置220a、端末装置300a,300b,300c,300d,300e,300fで構成される。
ステーション100a,100b,100c,100d,100eは、端末装置300a,300b,300c,300d,300e,300f間で送受信されるデータのパケットを中継する通信装置である。ステーション100a,100b,100c,100d,100eは、後述するステーション100と同様に構成されており、同等の機能を有する。
多重装置210a,210bは、端末装置300aなどから送信されたデータを多重化してステーション100aなどに送信するための装置である。分離装置220aは、
端末装置300a,300b,300c,300d,300e,300fは、ユーザが使用する端末装置である。図示する通信システムを介してこれらの端末装置300a,300b,300c,300d,300e,300f間でデータの送受信が行われる。
図示する通信システムの構成例において、端末装置300aから出力されたデータは、多重装置210aを経由して他の端末装置300bから出力されたデータと共に多重化されて、ステーション100aに入力される。その後、ステーション100aから出力されたこのデータは、ステーション100b,100cを経由して転送され、分離装置220aに入力される。その後、分離装置220aによって他のデータと分離された、端末装置300aから出力されたデータは、送信先である端末装置300eに伝達される。
ここで、各端末装置300a,300b,300c,300d,300e,300fで送受信されるデータおよびデータのパケットには、それぞれ優先度としてクラスA,B,C,Dが付されているものとする。各データは、クラスAを最高優先クラスとし、以下クラスB、クラスC、クラスDの優先順位で各ステーション100a,100b,100c,100d,100eにおいて優先的に処理される。
図3は、ステーションのハードウェア構成を示す図である。
図示するステーション100は、光モジュール110a、MACフレーム処理部120、FPGA(Field Programmable Gate Array)130、パケットバッファ140、EOS(Ethernet(登録商標) Over SONET)処理部150、光モジュール160を有する。また、FPGA130は、フレーム識別部131、書き込み制御部132、読み出し制御部133を有する。
ステーション100は、多重装置210a(図2参照)から入力されたデータを他のステーションに出力する。
多重装置210aから複数のローカルエリアネットワーク(LAN)のMAC(Media Access Control)フレームが光モジュール110a,110b,・・・,110nに入力されると、それぞれが光モジュール110a,110b,・・・,110nで光信号から電気信号に変換される。
光モジュール110a,110b,・・・,110nによって変換された電気信号は、MACフレーム処理部120においてそれぞれMACフレーム処理120a,120b,・・・120nが行われ、FPGA130が有するフレーム識別部131に入力される。
フレーム識別部131は、入力されたフレーム(パケット)の識別を行い、フレームのフィールド(図4参照)に設定されている宛て先から物理ポート番号などを判定して、書き込み制御部132にフレームによって伝送され受信したデータを渡す。
書き込み制御部132は、フレーム識別部131によるパケットの識別結果にしたがって、パケットバッファ140に対して受信したデータの書き込みの制御を行う。
読み出し制御部133は、パケットバッファ140からデータを読み出すとともに、読み出したデータを廃棄する制御を行うとともに、EOS処理部150に対して読み出したデータを引き渡す。
EOS処理部150は、イーサフレーム(MACフレーム)をSONETフレームにマッピングし、光モジュール160に出力する。
光モジュール160は、電気信号から光信号への変換を行い、対向するステーションに対してパケット形式のデータを出力する。
なお、ここでは説明を省略するが、図2におけるステーション100cのように、他のステーションから入力されたフレームデータを分離装置(図2における分離装置220a)に出力するステーションにおいては、図3において図示したステーション100と逆向きの処理を行うことにより、SONETフレームから複数のローカルエリアネットワークのMACフレームに変換されて出力される。
また、同様に説明を省略するが、図2におけるステーション100bのように、他のステーションから入力されたフレームデータを別の他のステーションに中継するステーションにおいては、他のステーションから入力されたSONETフレームが送信先ごとのデータに分離され、それらのデータが送信先に向けてスイッチ処理された後、SONETフレームに編成されて次のステーションに送信される。
ここで、ステーション100および図2の各ステーション100a,100b,100c,100d,100eは、端末装置との間の両方向の通信データの転送および異なるステーション間で転送される通信データの中継を行うために、図3に示した機能、上記の逆向きの処理の機能および上記の中継の処理の機能を内部に備えている。
また、ここでは説明を省略するが、ステーション100は、イーサパケットを入力してイーサパケットを出力する構成をとることもできる。
図4は、イーサパケットのデータ構造例を示す図である。図4に示すイーサパケットが、図2に示した通信システムにおいて、端末装置300a,300b,300c,300d,300e,300f(図2参照)で送受信される。このイーサパケットは、宛て先MACアドレス(MAC DA:Media Access Control Destination Address)、送信元MACアドレス、VLANプロトコルID(Virtual Local Area Network Protocol Identifier)、タグ制御情報、長さ/タイプ、ペイロード、FCS(Frame Check Sequence)で構成される。
宛て先MACアドレスは、送信先の端末装置が有する通信インタフェースを一意に識別するアドレスである。送信元MACアドレスは、送信元の端末装置が有する通信インタフェースを一意に識別するアドレスである。VLANプロトコルIDは、当該パケットがVLANのパケットであることなどを示す値である。タグ制御情報は、優先度、CF1、VLANIDで構成される。長さ/タイプは、パケットの長さおよびパケットの通信に使用されるプロトコルを指定するフィールドである。ペイロードは、送受信するデータ本体であり、例えば、IPパケットを所定のデータ長に分割したものである。FCSは、受信したパケットの誤りを検出するために用いられる値である。
またタグ制御情報には、優先度、CFI(Canonical Format Indicator)、VLANIDで構成される。
優先度は、パケットに割り当てられた優先度を示す3ビットの領域である。この優先度を示す3ビットを用いて例えば以下のように定義することができる。0/1:クラスA、2/3:クラスB、4/5:クラスC、6/7:クラスD。
CFIは、カノニカル形式指示子(‘0’:リトルエンディアン、‘1’:ビックエンディアン)であり、DiffServのDSCP値を書き込むフィールドである。VLANIDは、VLAN識別番号であり、1つのネットワークを複数の論理的なネットワーク(VLAN)に分割して運用する場合に、個々の論理的なネットワークに割り当てられる一意に定められた値である。このVLANIDにより特定のユーザを認識して宛て先へルーティング処理を実施する。
なお、本実施の形態はMPLSフレームまたはVLANフレーム等に限定されることはなく、他のフレームフォーマットのビットをクラス判定に用いる構成としてもよい。また、パケットのデータ構造は、ネットワークの運用形態等に応じて、種々の変形例が考えられる。
図5は、第1の実施の形態のステーションの機能を示すブロック図である。なお、図5ではステーション100のモジュール構成を示しているが、上記ステーション100a,100b,100c,100d,100eもステーション100と同様のモジュール構成によって実現できる。
本実施の形態のステーション100は、データを一時的に記憶するパケットバッファ140のオーバーフローを防止するために、書き込み制御部132、読み出し制御部133、アドレス管理部134、読み捨て制御部135、容量監視モニタ部136、パケット入力部170、パケット出力部180を有する。
また、アドレス管理部134は、アドレス制御部134a、先頭アドレス管理メモリ134b、最終アドレス管理メモリ134c、空きアドレス管理メモリ134d、アドレスチェーン(chain)管理メモリ134eを有する。パケット入力部170は、マルチプレクサ171を有する。パケット出力部180は、宛て先識別部181を有する。
書き込み制御部132は、パケットバッファ140に対して、ステーション100が受信したデータを書き込む処理を実行する。書き込み制御部132は、パケットが入力された時、入力パケット情報(宛て先物理ポート番号、パケット長等)をアドレス制御部134aに通知して、アドレス制御部134aから送信された空き領域のアドレス値が示すパケットバッファ140のアドレスが示す領域にパケットのデータを書き込む。
読み出し制御部133は、パケットの出力時および読み捨て処理の実行時に、パケットバッファ140に記憶されているパケットのデータを、アドレス制御部134aから送信されたパケットバッファ140のアドレスが示す記憶領域から読み出す処理を実行する。
これにより、ステーション100で受信されたデータがパケットバッファ140において一時的に記憶された後、ステーション100から出力される。出力されたデータは、例えば、ステーション100が接続されている通信システム(図2参照)を介してデータの宛て先となる端末装置に転送される。
アドレス制御部134aは、先頭アドレス管理メモリ134b、最終アドレス管理メモリ134c、空きアドレス管理メモリ134d、アドレスチェーン管理メモリ134eの制御を行い、データが書き込まれる記憶領域を示すアドレスおよびデータが読み出されるアドレスの管理および通知を行う。
先頭アドレス管理メモリ134bは、パケットの宛て先の物理ポートおよび優先度ごとの連続するパケットの先頭パケットが記憶されているアドレス値を記憶するメモリである。詳しくは図12において後述する。
最終アドレス管理メモリ134cは、パケットの宛て先の物理ポートおよび優先度ごとの連続するパケットの最終パケットが記憶されているアドレス値を記憶するメモリである。詳しくは図13において後述する。
空きアドレス管理メモリ134dは、空き領域であって使用可能な記憶領域のアドレス値を記憶するメモリである。詳しくは図10において後述する。
アドレスチェーン管理メモリ134eは、パケットバッファ140に記憶されているパケットの順番の繋がりおよびパケット内のデータの繋がりを、連続する次のデータが記憶されている領域のアドレス値の繋がり(チェーン)によって、宛て先ごとおよび優先度ごとに記憶するメモリである。詳しくは図11において後述する。
読み捨て制御部135は、容量監視モニタ部136から出力された容量通知により、パケットバッファ140に記憶されているポートおよび優先度ごとのデータの記憶量を監視して、パケットバッファ140に記憶されているデータ量が所定のデータ量を超過する場合には、パケットバッファ140から読み出されたデータを廃棄する読み捨て処理を実行する。これにより、パケットバッファ140の空き容量を増加させることができる。
読み捨て処理では、パケットバッファ140に記憶されているデータのパケットが実際に後段のパケット出力部180が有する物理ポートから出力されるのではない。読み捨て処理では、読み出し制御部133によってパケットバッファ140から廃棄されるデータが一旦読み出された後、読み出されたデータのパケットが、読み捨て制御部135によって、パケット出力部180の物理ポートから出力されることなく廃棄される。
ここで、ステーション100に入力されるパケットのデータには優先度および出力される出力ポートが割り当てられている。読み捨て制御部135は、パケットバッファ140の空き容量がなく、かつ、パケットバッファ140に記憶されているデータの優先度がすべて同一である場合には、パケットバッファ140に記憶されているデータをすべて廃棄する。読み捨て制御部135は、パケットバッファ140に記憶されているデータの優先度および出力ポートが同一であるものごとにパケットバッファ140における記憶量を監視し、所定の記憶量を超過している場合には、優先度および出力ポートが割り当てられているデータについてデータ廃棄を行う。
また、読み捨て制御部135は、パケットバッファ140に記憶されているデータ量が開始閾値を超過する場合には、データ廃棄を行い、データ廃棄の結果パケットバッファ140に記憶されているデータ量が開始閾値よりも小さい解除閾値以下になった場合には、データ廃棄を終了する。また、読み捨て制御部135は、先にパケットバッファ140に書き込まれたデータからデータ廃棄を行う。
容量監視モニタ部136は、パケットバッファ140に記憶されているポートおよび優先度ごとのデータの記憶量を監視し、監視結果を示す容量通知を読み捨て制御部135に出力する。この容量通知に基づいて、読み捨て制御部135がパケットのデータの読み捨て処理を実行する。
パケットバッファ140は、入力パケットのデータを記憶し、読み出し制御部133にしたがってデータが読み出されるメモリである。パケットバッファ140は、書き込み制御部132によって書き込まれた、ステーション100が受信したデータを一時的に記憶する。このパケットバッファ140は、例えば、パケットの伝送速度に対応して高速に動作可能な特性を有するSRAMを有するバッファなどが該当する。
パケット入力部170は、マルチプレクサ171を有し、物理ポート(ポート#0〜ポート#n)からステーション100に入力されるパケットを受け付け、受け付けたパケットを多重化する。この多重化されたパケットは、書き込み制御部132に送信される。
パケット出力部180は、宛て先識別部181を有し、パケットバッファ140から読み出されてから出力されるデータのパケットを分離し、宛て先識別部181で識別した宛て先に応じた物理ポート(ポート#0〜ポート#n)から出力する。
本実施の形態のステーション100では、入力パケットが到着するパケット入力部170で受け付けられた多重のパケットが、書き込み制御部132によってパケットバッファ140に書き込まれる。また、容量監視モニタ部136によって、常時、ステーション100に入力され、パケットバッファ140に記憶されているデータ量などの、パケットバッファ140の記憶内容が監視されている。ここで、パケットバッファ140のポートおよび優先度ごとのデータの記憶量が読み捨て処理の開始閾値を超過すると、読み捨て制御部135によって、読み捨て処理の実行が開始される。この読み捨て処理は、以下の順序で実行される。
まず、読み捨て制御部135は、読み出し制御部133に、パケットバッファ140から廃棄するデータの読み出しを実行させる。
次に、読み出し制御部133は、(通常のデータの読み出し動作と同様)アドレス制御部134aに対してパケットバッファ140から廃棄するデータが記憶されているアドレスを示すアドレス情報を要求する。
次に、読み出し制御部133は、パケットバッファ140から廃棄するデータのアドレス情報を受信する。
次に、読み出し制御部133は、パケットバッファ140にアドレスを送信して廃棄するデータの読み出しを行い、パケットバッファ140から読み出したデータを受信する。
次に、読み出し制御部133は、受信したデータを読み捨て制御部135に送信する。
次に、読み捨て制御部135は、読み出し制御部133から送信された、読み出されたデータのパケットを後段のパケット出力部180には出力せず、読み捨て制御部135内部で廃棄する。
図6は、容量監視モニタ部の機能を示すブロック図である。図6に示す容量監視モニタ部136は、カウンタ加算部136a、カウンタ減算部136bを有する。
また、容量監視モニタ部136は、パケットバッファ140(図3参照)に記憶されているパケットのデータの記憶量を管理するために複数のカウンタを有する。これらのカウンタは、図6に示すように、パケット出力部180(図5参照)の各物理ポートおよびそのポートにおける優先度に対応して設けられている。
具体的には、容量監視モニタ部136は、パケット出力部180の物理ポートである、ポート#0から出力される優先度がクラスAのパケットのデータの記憶量をカウントするカウンタであるポート#0クラスAカウンタ136c1を有する。また、容量監視モニタ部136は、同様に、ポート#0クラスBカウンタ136c2、ポート#0クラスCカウンタ136c3、ポート#0クラスDカウンタ136c4、・・・、ポート#nクラスAカウンタ136n1、ポート#nクラスBカウンタ136n2、ポート#nクラスCカウンタ136n3、ポート#nクラスDカウンタ136n4を有する。
カウンタ加算部136aは、書き込み制御部132によってパケットバッファ140に書き込まれたデータを監視して、書き込まれたデータのパケットが出力される物理ポートおよびそのパケットの優先度に対応するカウンタの値を増加させる。
カウンタ減算部136bは、読み出し制御部133によってパケットバッファ140から読み出されたデータを監視して、読み出されたデータのパケットが出力される物理ポートおよびそのパケットの優先度に対応するカウンタの値を減算させる。また、カウンタ減算部136bは、読み捨て制御部135からの要求に応じて、要求された物理ポートおよび優先度のパケットのデータのパケットバッファ140における記憶量を、カウンタ値を参照して通知する容量通知を、読み捨て制御部135に対して出力する。
図7は、第1の実施の形態における読み捨て処理時のパケットバッファのQue長を示す図である。
本実施の形態のステーション100は、パケットバッファ140(図3参照)における、読み捨て処理を開始する開始閾値を超過すると、パケットバッファ140に記憶されているデータを読み出して廃棄する読み捨て処理を開始して、パケットバッファ140の空き領域を作成する。その後、ステーション100は、開始閾値より小さい値であり、読み捨て処理を解除する解除閾値以下になると、読み捨て処理を停止する。
ここで、第1の実施の形態におけるパケット蓄積時のQue長について図にしたがって説明する。ステーション100において、同一の優先度(例えば、クラスD)の出力パケットのデータ量に比較して入力パケットのデータ量が多い状態が継続すると、パケットバッファ140の記憶領域に同一の優先度の入力パケットがパケットバッファ140に蓄積されていくことなる。また、これにしたがって、パケットバッファ140に記憶されているデータのQue長が、開始閾値(例えば、112.5Mbit)まで増加していく。
次に、第1の実施の形態におけるパケット読み捨て時のQue長について図にしたがって説明する。ステーション100において、さらに出力パケットのデータ量に比較して入力パケットのデータ量が多い状態が継続し、同一の優先度(例えばクラスD)のパケットのデータによって占められる量が一定量を超過した場合、具体的には開始閾値を超過した場合には、ステーション100は、パケットバッファ140の記憶領域における上記の開始閾値を超過して記憶されている優先度のパケットのデータを読み出して廃棄する読み捨て処理が開始される。
この読み捨て処理は、パケットバッファ140の記憶領域に記憶されている同一の優先度のパケットによって占められている量が一定量以下になるまで、具体的には、パケットバッファ140の記憶領域に記憶されている同一の優先度のパケットが占めている量が解除閾値(例えば、75Mbit)以下になるまで実行される。同一の優先度のパケットが占めている量が解除閾値以下になると、パケット読み捨て処理が終了される。
これにより、パケットバッファ140の記憶領域に記憶されているデータが廃棄され、パケットバッファ140の空き容量を増加させることができる。このため、パケットバッファ140に一定の空き領域が確保できるので、パケットバッファ140が満たされて空き領域がなくなることによる新たな入力パケットが廃棄されて失われる事態を防止でき、常に新たな入力パケットがパケットバッファ140に書き込まれることになる。
また、同一の優先度のパケットのみでパケットバッファ140の記憶領域を占めるデータ量が一定量を超過する場合に読み捨て処理が実行されるので、パケットバッファ140の記憶領域が同一の優先度のパケットのデータによって占有されることにより優先度の高いパケットについて保証されているCIRが維持できなくなることを防止することができる。
なお、上記の開始閾値および解除閾値は、優先度の区分の数、各優先度のパケットのデータの入力比率および出力比率などの状況に基づいて、適宜定めることができる。
また、本実施の形態では、読み捨て処理の実行中は、入力パケットの書き込みは可能である。しかし、これに限らず、読み捨て処理の実行中は、他の入力パケットの書き込みを禁止してもよい。
次に、ステーション100の動作について具体例を用いて説明する。
ここで、同一の優先度(例えば、クラスD)の開始閾値を超える量の複数のパケットが連続して入力される状態を第1の状態とする。この第1の状態におけるステーション100の動作について、図8から図18を用いて説明する。なお、この第1の状態の以前にはステーション100に対してパケットが入力されておらず、パケットバッファ140にもデータが記憶されていないものとする。
図8に、第1の状態でステーション100に入力される入力パケットを示す。図9から図13に、第1の状態において入力される入力パケットのデータがパケットバッファ140(図3参照)に書き込まれた直後のステーション100の状態を示す。図14から図18に、第1の状態において入力パケットのデータが読み捨て処理が実行された直後のステーション100の状態を示す。
図8は、第1の状態における入力パケットを示す図である。図8に示す入力パケット141aは、第1の状態においてステーション100に入力されるパケットである、クラスDのパケットであるパケットD1〜D12を示している。第1の状態では、パケットD1〜D12は連続するパケットであり、ステーション100に対してパケットD1が最初に入力され、その後パケットD2、パケットD3、パケットD4、・・・、パケットD12の順に入力される。
図9は、第1の状態における入力パケットのデータが書き込まれた直後のパケットバッファの記憶内容を示す図である。ここで、図示した入力パケット141a(図8参照)の書き込み直後のパケットバッファ140の記憶内容401aにおける“アドレス”の欄は、第1の状態の入力パケットの書き込み直後におけるパケットバッファ140(図3参照)のアドレスを示している。このアドレスは、ここではパケットバッファ140の記憶領域を、10Mbitごとに区分するように設定されている。“データ”の欄は、対応するアドレスに記憶されているデータのパケットを示す。ここでは、説明の便宜上、各パケットのデータの大きさは10Mbitであるものとする。
ステーション100にパケットが入力されると、パケットバッファ140の記憶内容401aに示すように、各パケットのデータが入力順に記憶される。パケットのデータが記憶されていない記憶領域は、データを記憶可能な空き領域となる。
第1の状態よりも前、すなわちステーション100のパケットバッファ140の記憶領域がすべて空き領域である状態において、図8に示した入力パケット141aのパケットD1〜D12がステーション100に入力されると、パケットバッファ140の記憶内容401aに示すように、アドレス0からアドレス11に、各パケットのデータが入力順に記憶される。アドレス12以降は、データを記憶可能な空き領域となる。
また、このときの解除閾値は、例えば、75Mbitとし、開始閾値は、112.5Mbitとする。
図10は、第1の状態における入力パケットのデータが書き込まれた直後の空きアドレス管理メモリの記憶内容を示す図である。ここで、図示した空きアドレス管理メモリ134d(図5参照)の記憶内容401bの“アドレス”の欄は、第1の状態の入力パケットの書き込み直後における空きアドレス管理メモリ134dのアドレスを示している。この空きアドレス管理メモリ134dのアドレスは、パケットバッファ140(図3参照)のアドレスと対応するように設定されている。このアドレスは、図9と同様、パケットバッファ140の記憶領域を、10Mbitごとに区分するように設定されている。“データ”の欄は、パケットバッファ140の記憶領域に対応するアドレスの記憶領域が、空いておりデータを記憶可能(使用可)であるか否か(使用不可)を示す。ここでは、説明の便宜上、各パケットのデータの大きさは10Mbitであるものとする。
ステーション100のパケットバッファ140に入力パケットのデータが記憶されると、空きアドレス管理メモリ134dの記憶内容401bに示すように、パケットバッファ140に入力された各パケットのデータが記憶されている記憶領域のアドレスに対応するデータの欄に“使用不可”が設定される。それ以外のパケットのデータが記憶されていない空き領域のアドレスに対応するデータの欄には“使用可”が設定される。
ステーション100のパケットバッファ140の記憶領域がすべて空き領域である第1の状態において、図8に示した入力パケット141aのパケットD1〜D12がステーション100に入力されると、空きアドレス管理メモリ134dの記憶内容401bに示すように、パケットバッファ140の記憶領域に各パケットのデータが記憶されることにより、データが記憶されているアドレス0からアドレス11のデータの欄は、“使用不可”となる。また、それ以外の空き領域である記憶領域は、“使用可”となる。
図11は、第1の状態における入力パケットのデータが書き込まれた直後のアドレスチェーン管理メモリの記憶内容を示す図である。ここで、図示したアドレスチェーン管理メモリ134e(図5参照)の記憶内容401cの“アドレス”の欄は、第1の状態の入力パケットの書き込み直後におけるアドレスチェーン管理メモリ134eのアドレスを示している。このアドレスチェーン管理メモリ134eのアドレスは、パケットバッファ140(図3参照)のアドレスと対応するように設定されている。このアドレスは、図9と同様、パケットバッファ140の記憶領域を、10Mbitごとに区分するように設定されている。“データ”の欄は、パケットバッファ140の記憶領域に対応するアドレスの記憶領域のデータのパケットの繋がりを示す。ここでは、説明の便宜上、各パケットのデータの大きさは10Mbitであるものとする。
ステーション100のパケットバッファ140に入力パケットのデータが記憶されると、アドレスチェーン管理メモリ134eの記憶内容401cに示すように、パケットバッファ140に記憶されているデータのパケットの、次のパケットのデータが記憶されている、パケットバッファ140のアドレスが、“ネクストアドレス”として設定される。最後のパケットのデータが記憶されている記憶領域のアドレスに対応するデータの欄には“ネクストアドレス=なし”が設定される。パケットのデータが記憶されていない空き領域のアドレスに対応するデータの欄には“空き”が設定される。
ステーション100のパケットバッファ140の記憶領域がすべて空き領域である第1の状態において、図8に示した入力パケット141aのパケットD1〜D12がステーション100に入力されると、アドレスチェーン管理メモリ134eの記憶内容401cに示すように、データが記憶されているアドレス0からアドレス10のデータの欄は、次のパケットのデータが格納されているアドレスが示され、“ネクストアドレス=1”,“ネクストアドレス=2”,“ネクストアドレス=3”,・・・,“ネクストアドレス=11”となる。アドレス11には、最後のパケットのデータが記憶されているので、データの欄は、“ネクストアドレス=なし”となる。また、それ以外の空き領域である記憶領域は、“空き”となる。
図12は、第1の状態における入力パケットのデータが書き込まれた直後の先頭アドレス管理メモリの記憶内容を示す図である。ここで、図示した先頭アドレス管理メモリ134b(図5参照)の記憶内容401dの“ポート”の欄は、パケットの宛て先に応じたパケット出力部180の物理ポートのポート番号を示している。“クラス”の欄は、各物理ポートから入力されたパケットの優先度を示している。“先頭アドレス値”の欄は、入力された連続するパケットのうちの最初のパケットのデータが記憶されている、パケットバッファ140(図3参照)の記憶領域のアドレスを示している。
ステーション100のパケットバッファ140にパケットが入力されると、先頭アドレス管理メモリ134bの記憶内容401dに示すように、パケットが入力された物理ポートおよび入力されたパケットの優先度に応じた先頭アドレス値の欄に、先頭のパケットのデータが記憶されているパケットバッファ140のアドレスが設定される。
ステーション100のパケットバッファ140の記憶領域がすべて空き領域である第1の状態において、図8に示した入力パケット141aの連続するパケットD1〜D12がステーション100に入力されると、記憶内容401dに示すように、先頭アドレス管理メモリ134bの入力されたパケットの宛て先に対応するポート(例えば、ポート0)および優先度(第1の状態ではクラスD)の先頭アドレス値は、“先頭アドレス=0”となる。また、パケットが入力されていないポートおよび優先度の先頭アドレス値は、“初期値”のままとなる。
図13は、第1の状態における入力パケットのデータが書き込まれた直後の最終アドレス管理メモリの記憶内容を示す図である。ここで、図示した最終アドレス管理メモリ134c(図5参照)の記憶内容401eの“ポート”の欄は、パケットの宛て先に応じたパケット出力部180の物理ポートのポート番号を示している。“クラス”の欄は、各物理ポートから入力されたパケットの優先度を示している。“最終アドレス値”の欄は、入力された連続するパケットのうちの最後のパケットのデータが記憶されている、パケットバッファ140(図3参照)の記憶領域のアドレスを示している。
ステーション100のパケットバッファ140にパケットが入力されると、記憶内容401eに示すように、最終アドレス管理メモリ134cのパケットが入力された物理ポートおよび入力されたパケットの優先度に応じた最終アドレス値の欄に、最後のパケットのデータが記憶されているパケットバッファ140のアドレスが設定される。
ステーション100のパケットバッファ140の記憶領域がすべて空き領域である第1の状態において、図8に示した入力パケット141aの連続するパケットD1〜D12がステーション100に入力されると、最終アドレス管理メモリ134cの記憶内容401eに示すように、入力されたパケットの宛て先に対応するポート(例えば、ポート0)および優先度(第1の状態ではクラスD)の最終アドレス値は、“最終アドレス=11”となる。また、パケットが入力されていないポートおよび優先度の最終アドレス値は、“初期値”のままとなる。
図14は、第1の状態における読み捨て処理の実行直後のパケットバッファの記憶内容を示す図である。ここで、図示したパケットバッファ140(図3参照)の記憶内容402aの“アドレス”の欄は、パケットバッファ140のアドレスを示している。“データ”の欄は、読み捨て処理の実行直後における対応するアドレスに記憶されているデータのパケットを示す。
ステーション100のパケットバッファ140に記憶された入力パケットのデータの記憶量が開始閾値を超過すると、パケットバッファ140の記憶内容402aに示すように、各パケットのデータが入力順に読み捨て処理によって廃棄される。パケットのデータが記憶されていない記憶領域およびデータの廃棄が完了した記憶領域は、データを記憶可能な空き領域となる。
ステーション100のパケットバッファ140の記憶領域のアドレス0からアドレス11に第1の状態の入力パケット141aのデータが記憶されている状態において、記憶されているデータが開始閾値を超過すると、パケットバッファ140の記憶内容402aに示すように、記憶領域に記憶されているデータが解除閾値以下になるまで、アドレス0からアドレス4に記憶されているパケットのデータが入力順に読み捨て処理によって廃棄される。この読み捨て処理によってデータが廃棄されたアドレス0からアドレス4は、再び空き領域となる。
図15は、第1の状態における読み捨て処理の実行直後の空きアドレス管理メモリの記憶内容を示す図である。ここで、図示した空きアドレス管理メモリ134d(図5参照)の記憶内容402bの“アドレス”の欄は、空きアドレス管理メモリ134dのアドレスを示している。この空きアドレス管理メモリ134dのアドレスは、図10と同様、パケットバッファ140(図3参照)のアドレスと対応するように設定されている。“データ”の欄は、読み捨て処理の実行直後におけるパケットバッファ140の記憶領域に対応するアドレスの記憶領域が、空いておりデータを記憶可能(使用可)であるか否か(使用不可)を示す。
上記のように、空きアドレス管理メモリ134dにおいて、パケットバッファ140に入力された各パケットのデータが記憶されている記憶領域のアドレスに対応するデータの欄に“使用不可”が設定されている(図10参照)。空きアドレス管理メモリ134dの記憶内容402bに示すように、通常の読み出しまたは読み捨て処理による廃棄が行われた記憶領域のアドレスに対応するデータの欄には“使用可”が設定される。
第1の状態において入力パケット141aが入力されたことにより、ステーション100のパケットバッファ140の記憶領域のデータが開始閾値を超過して読み捨て処理が実行され、記憶領域のデータが解除閾値以下になるまでデータが廃棄されると、空きアドレス管理メモリ134dのデータが廃棄されたアドレス0からアドレス4のデータの欄は、記憶内容402bに示すように“使用可”となる。
図16は、第1の状態における読み捨て処理の実行直後のアドレスチェーン管理メモリの記憶内容を示す図である。ここで、図示したアドレスチェーン管理メモリ134e(図5参照)の記憶内容402cの“アドレス”の欄は、アドレスチェーン管理メモリ134eのアドレスを示している。このアドレスチェーン管理メモリ134eのアドレスは、図11と同様、パケットバッファ140(図3参照)のアドレスと対応するように設定されている。“データ”の欄は、読み捨て処理の実行直後におけるパケットバッファ140の記憶領域に対応するアドレスの記憶領域のデータのパケットの繋がりを示す。
上記のように、アドレスチェーン管理メモリ134eにおいて、パケットバッファ140に入力された各パケットのデータが記憶されている記憶領域のアドレスに対応するデータの欄には、ネクストアドレスが設定されている(図11参照)。アドレスチェーン管理メモリ134eの通常の読み出しまたは読み捨て処理による廃棄が行われた記憶領域のアドレスに対応するデータの欄には、記憶内容402cに示すように“空き”が設定される。
第1の状態において入力パケット141aが入力されたことにより、ステーション100のパケットバッファ140の記憶領域のデータが開始閾値を超過して読み捨て処理が実行され、記憶領域のデータが解除閾値以下になるまでデータが廃棄されると、アドレスチェーン管理メモリ134eの記憶内容402cに示すように、データが廃棄されたアドレス0からアドレス4のデータの欄は、“空き”となる。
図17は、第1の状態における読み捨て処理の実行直後の先頭アドレス管理メモリの記憶内容を示す図である。ここで、図示した先頭アドレス管理メモリ134b(図5参照)の記憶内容402dの“ポート”の欄は、パケットの宛て先に応じたパケット出力部180の物理ポートのポート番号を示している。“クラス”の欄は、各物理ポートから入力されたパケットの優先度を示している。“先頭アドレス値”の欄は、入力された連続するパケットのうちの最初のパケットのデータが記憶されている、パケットバッファ140(図3参照)の記憶領域のアドレスを示している。
上記のように、先頭アドレス管理メモリ134bにおいて、パケットバッファ140に入力された各パケットの宛て先に応じた物理ポートおよび優先度(クラス)に対応する先頭アドレス値の欄には、パケットの宛て先に応じた物理ポートおよび優先度ごとに、先頭アドレス値が設定されている(図12参照)。先頭アドレス管理メモリ134bの記憶内容402dに示すように、通常の読み出しまたは読み捨て処理による廃棄が行われた記憶領域のアドレスに対応する先頭アドレス値の欄には、読み出しまたは廃棄後の時点における入力されたパケットの先頭アドレスが設定される。
第1の状態において入力パケット141aが入力されたことにより、ステーション100のパケットバッファ140の記憶領域のデータが開始閾値を超過して読み捨て処理が実行され、記憶領域のデータが解除閾値以下になるまでデータが廃棄されると、先頭アドレス管理メモリ134bのデータが廃棄されたポート0のクラスDの先頭アドレス値の欄は、記憶内容402dに示すように“先頭アドレス=5”となる。
図18は、第1の状態における読み捨て処理の実行直後の最終アドレス管理メモリの記憶内容を示す図である。ここで、図示した最終アドレス管理メモリ134c(図5参照)の記憶内容402eの“ポート”の欄は、パケットの宛て先に応じたパケット出力部180の物理ポートのポート番号を示している。“クラス”の欄は、各物理ポートから入力されたパケットの優先度を示している。“最終アドレス値”の欄は、入力された連続するパケットのうちの最後のパケットのデータが記憶されている、パケットバッファ140(図3参照)の記憶領域のアドレスを示している。
上記のように、最終アドレス管理メモリ134cにおいて、パケットバッファ140に入力された各パケットの宛て先に応じた物理ポートおよび優先度(クラス)に対応する最終アドレス値の欄には、パケットの宛て先に応じた物理ポートおよび優先度ごとに、最終アドレス値が設定されている(図13参照)。最終アドレス管理メモリ134cの記憶内容402eに示すように、通常の読み出しまたは読み捨て処理による廃棄が行われた記憶領域のアドレスに対応する最終アドレス値の欄には、読み出しまたは廃棄後の時点における入力されたパケットの最終アドレスが設定される。
第1の状態において入力パケット141aが入力されたことにより、ステーション100のパケットバッファ140の記憶領域のデータが開始閾値を超過して読み捨て処理が実行され、記憶領域のデータが解除閾値以下になるまでデータが廃棄されると、最終アドレス管理メモリ134cのデータが廃棄された宛て先に対応する物理ポートがポート0のクラスDの最終アドレス値の欄は、記憶内容402eに示すように、図13から変化せずに“最終アドレス=11”のままとなる。
すなわち、図8から図18に示した第1の状態におけるステーション100の動作を説明すると、宛て先に対応する物理ポートがポート0であるクラスDのパケットD1〜D12がステーション100に入力されると、パケットバッファ140に記憶されている優先度Dのパケットのデータ量は、開始閾値(112.5Mbit)を超過しているため、優先度Dのパケットのデータの廃棄が実行される。これにより、読み出されたデータは、読み捨て制御部135によって廃棄され、パケット出力部180(図5参照)の物理ポートから出力されることはない。
また、この例では、パケットD1〜D5が廃棄のために読み出されたことにより、解除閾値(75Mbit)を下まわったので、読み捨て処理は解除される。
このようにして、パケットバッファ140に開始閾値を超過する量のデータが記憶されている場合には、データが廃棄されるため、パケットバッファ140には空き領域が存在するため、ステーション100に新たに入力された最新のパケットをパケットバッファに格納可能となる。
次に、第1の状態の入力パケット(図8の入力パケット141a参照)がステーション100に入力された後、第1の状態で入力されたパケットD1〜D12と同一の優先度(例えば、クラスD)のパケット(例えば、図19に示すパケットD13〜D15)および第1の状態の入力パケットよりも高い優先度(例えば、クラスC)のパケット(例えば、図19に示すパケットC1)が入力される状態を第2の状態とする。この第2の状態におけるステーション100の動作について、図19から図24を用いて説明する。なお、この第2の状態の開始時において、第1の状態で入力された入力パケット141aのデータがパケットバッファ140に記憶されているものとする。
図19に、第2の状態でステーション100に入力される入力パケットを示す。図20から図24に、第1の状態の入力パケットのデータがパケットバッファ140(図3参照)に書き込まれた後、さらに、第2の状態において入力される入力パケット(パケットD13〜D15,C1)のデータがパケットバッファ140に書き込まれた直後のステーション100の状態を示す。
図19は、第2の状態における入力パケットを示す図である。図19に示す入力パケット141bは、第1の状態においてステーション100に入力されたパケットである、パケットD1〜D12ならびに第1の状態のパケットに続き第2の状態でステーション100に入力されるパケットである、優先度がクラスDのパケットであるパケットD13〜D15および優先度がクラスCのパケットであるパケットC1を示している。第1の状態の後、第2の状態では、パケットD13〜D15は第1の状態のパケットD1〜D12に連続するパケットであり、パケットC1は、パケットD15に続いて入力される単独のパケットである。これらの第2の状態のパケットは、ステーション100に対してパケットD12が入力された直後に続いて、パケットD13、パケットD14、パケットD15、パケットC1の順に入力される。
図20は、第2の状態における入力パケットのデータが書き込まれた直後のパケットバッファの記憶内容を示す図である。
ステーション100のパケットバッファ140の記憶領域に第1の状態の入力パケットD1〜D12のデータが書き込まれ、かつパケットD1〜D5のデータが読み捨て処理によって廃棄され、さらに読み捨て処理が完了した後の状態(図14参照)において、図19に示した入力パケット141bのパケットD13〜D15およびパケットC1がステーション100に入力されると、パケットバッファ140の記憶内容403aに示すように、パケットD13の直前のパケットであるパケットD12のデータが記憶されている記憶領域の次の記憶領域であるアドレス12に、パケットD13のデータが記憶される。パケットD14、パケットD15のデータもこれに続いて記憶される。また、パケットD1〜D5のデータが読み捨てられた記憶領域のうちのアドレス0に、パケットC1のデータが記憶される。アドレス1からアドレス4は、データを記憶可能な空き領域となる。
図21は、第2の状態における入力パケットのデータが書き込まれた直後の空きアドレス管理メモリの記憶内容を示す図である。
ステーション100のパケットバッファ140の記憶領域に第1の状態の入力パケットD1〜D12のデータが書き込まれ、かつパケットD1〜D5のデータが読み捨て処理によって廃棄され、さらに読み捨て処理が完了した後の状態(図14参照)において、図19に示した入力パケット141bのパケットD13〜D15およびパケットC1がステーション100に入力されると、空きアドレス管理メモリ134dの記憶内容403bに示すように、パケットバッファ140の記憶領域に各パケットのデータが記憶されることにより、データが記憶されているアドレス0およびアドレス5からアドレス14のデータの欄は、“使用不可”となる。また、それ以外の空き領域である記憶領域は、“使用可”となる。
図22は、第2の状態における入力パケットのデータが書き込まれた直後のアドレスチェーン管理メモリの記憶内容を示す図である。
ステーション100のパケットバッファ140の記憶領域に第1の状態の入力パケットD1〜D12のデータが書き込まれ、かつパケットD1〜D5のデータが読み捨て処理によって廃棄され、さらに読み捨て処理が完了した後の状態(図14参照)において、図19に示した入力パケット141bのパケットD13〜D15およびパケットC1がステーション100に入力されると、アドレスチェーン管理メモリ134eの記憶内容403cに示すように、パケットC1のデータが記憶されているアドレス0のデータの欄は、“ネクストアドレス=なし”となる。パケットD6〜D15のデータが記憶されているアドレス5からアドレス14のデータの欄は、それぞれ“ネクストアドレス=6”,“ネクストアドレス=7”,“ネクストアドレス=8”,・・・,“ネクストアドレス=なし”となる。また、それ以外の空き領域である記憶領域は、“空き”となる。
図23は、第2の状態における入力パケットのデータが書き込まれた直後の先頭アドレス管理メモリの記憶内容を示す図である。
ステーション100のパケットバッファ140の記憶領域に第1の状態の入力パケットD1〜D12のデータが書き込まれ、かつパケットD1〜D5のデータが読み捨て処理によって廃棄され、さらに読み捨て処理が完了した後の状態(図14参照)において、図19に示した入力パケット141bのパケットD13〜D15およびパケットC1がステーション100に入力されると、記憶内容403dに示すように、先頭アドレス管理メモリ134bのポート0のクラスCの先頭アドレス値の欄は、“先頭アドレス値=0”となる。また、ポート0のクラスDの先頭アドレス値の欄は、“先頭アドレス=5”のままである。
図24は、第2の状態における入力パケットのデータが書き込まれた直後の最終アドレス管理メモリの記憶内容を示す図である。
ステーション100のパケットバッファ140の記憶領域に第1の状態の入力パケットD1〜D12のデータが書き込まれ、かつパケットD1〜D5のデータが読み捨て処理によって廃棄され、さらに読み捨て処理が完了した後の状態(図14参照)において、図19に示した入力パケット141bのパケットD13〜D15およびパケットC1がステーション100に入力されると、記憶内容403eに示すように、最終アドレス管理メモリ134cのデータが廃棄されたポート0のクラスDのポート0のクラスCの最終アドレス値の欄は、“最終アドレス値=0”となる。また、ポート0のクラスDの最終アドレス値の欄は、“最終アドレス=14”となる。
すなわち、図19から図24に示した第2の状態におけるステーション100の動作を説明すると、宛て先がポート0に対応するクラスDのパケットD1〜D12が入力され、続いて宛て先がポート0に対応するクラスDのパケットD13〜D15および宛て先がポート0に対応するクラスCのパケットC1がステーション100に入力されると、パケットD1〜D12が入力された時点で開始閾値を超過してパケットのデータの廃棄が行われているため、パケットC1のデータがパケットバッファ140に記憶されることになる。これにより、読み捨て処理が実行されることで、パケットバッファ140に常に空きが存在するので、優先度の高いパケットが後から入力された場合にも、そのパケットのデータが失われることなくパケットバッファ140に記憶可能になる。
図25は、第1の実施の形態の廃棄判定処理の手順を示すフローチャートである。
本実施の形態のステーション100は、物理ポートからパケットが入力されると、入力パケットのデータをパケットバッファ140に書き込む。これにより入力パケットのデータがパケットバッファ140に記憶される。第1の実施の形態の廃棄判定処理では、ステーション100にパケットが入力される都度呼び出され、入力されたパケットのデータが書き込まれたパケットバッファ140の状況を監視してデータの読み捨てによる入力パケットの廃棄の判定が行われる。
[ステップS11]ステーション100は、物理ポート(図5のパケット入力部170のポート#0、・・・、ポート#n)から入力されたパケットを多重化する多重処理を実行する。
[ステップS12]ステーション100は、ステップS11で多重化された入力パケットからデータを抽出し、抽出したデータをパケットバッファ140に書き込む。
[ステップS13]ステーション100は、パケットバッファ140の使用状況を監視して、パケットバッファ140に記憶されている各優先度のデータ量を取得する。
[ステップS14]ステーション100は、ステップS13で取得したパケットバッファ140の使用状況が予め定められている開始閾値を超過しているか否かを判定する。使用状況が開始閾値を超過していれば、ステーション100は、ステップS17に処理を進める。一方、使用状況が開始閾値以下であれば、ステーション100は、ステップS15に処理を進める。
[ステップS15]ステーション100は、パケットバッファ140からパケットのデータを読み出す。
[ステップS16]ステーション100は、ステップS15で読み出したデータを、パケットの宛て先と対応するパケット出力部180(図5参照)の物理ポートに振り分け、振り分けた物理ポートからデータのパケットを送信する。その後、処理を終了する。
[ステップS17]ステーション100は、パケットバッファ140からパケットのデータを読み出す。このデータの読み出しは、パケットバッファ140に記憶されているデータ量が、解除閾値以下になるまで実行される。
[ステップS18]ステーション100は、ステップS17で読み出したデータを廃棄する。その後、処理を終了する。
以上に示すように、第1の実施の形態によれば、コストの増加を抑えつつ、バッファのオーバーフローを防止することができる。
このため、パケットバッファ140に一定の空き領域が確保できるので、パケットバッファ140が満たされて空き領域がなくなることによる新たな入力パケットが廃棄されて失われる事態を防止でき、常に新たな入力パケットがパケットバッファ140に書き込まれることになる。これにより、パケットバッファ140の記憶領域が低い優先度のパケットのデータによって占有されることにより優先度の高いパケットについて保証されているCIRが維持できなくなることを防止することができる。
なお、上記の開始閾値および解除閾値は、優先度の区分の数、各優先度のパケットのデータの入力比率および出力比率などの状況に基づいて、適宜定めることができる。
<第1の実施の形態の変形例>
次に、第1の実施の形態の変形例について説明する。上記の第1の実施の形態との相違点を中心に説明し、同様の事項については同一の符号を用いるとともに説明を省略する。本変形例は、パケットバッファ140の記憶領域が同一の優先度のパケットのデータの記憶量が開始閾値を超過した場合に、第1の実施の形態のステーション100(図3参照)において行われるパケットの廃棄時に、パケットバッファ140の記憶領域のすべてのデータを廃棄する点で異なる。
図26は、第1の実施の形態の変形例におけるデータの廃棄時のパケットバッファのQue長を示す図である。
本変形例のステーション100は、同一の優先度(例えば優先度D)のパケットのデータでパケットバッファ140(図3参照)における開始閾値を超過すると、パケットバッファ140に記憶されているデータをすべて廃棄して、パケットバッファ140の空き領域を作成する。
上記のようにパケットバッファ140の記憶領域が、同一の優先度のパケットで占有された場合、パケットバッファ140について、優先度に基づくパケットの優先処理およびCIRの確保といった処理ができなくなる場合が生じ得る。
このため、本変形例のパケット読み捨て制御部135(図5参照)は、容量監視モニタ部136から送信された容量通知に基づいて、パケットバッファ140開始閾値が超過していることを検出した場合、パケットバッファ140に記憶されているデータを廃棄するために、容量監視モニタ部136(図6参照)のカウンタのカウンタ値をクリアするとともに、先頭アドレス管理メモリ134b(図5参照)、最終アドレス管理メモリ134c(図5参照)、空きアドレス管理メモリ134d(図5参照)、アドレスチェーン管理メモリ134e(図5参照)はすべて初期状態にリセットする。
このように、容量監視モニタ部136、先頭アドレス管理メモリ134b、最終アドレス管理メモリ134c、空きアドレス管理メモリ134d、アドレスチェーン管理メモリ134eは、パケットバッファ140の記憶内容を示す管理情報を記憶する管理情報記憶手段としての機能を有する。
ここで、本変形例におけるパケット蓄積時のQue長について図にしたがって説明する。本変形例のステーションにおいて、出力パケットのデータ量に比較して入力パケットのデータ量が多い状態が継続し、パケットバッファ140の記憶領域に入力パケットのパケットバッファ140に蓄積されていくと、これにしたがって、パケットバッファ140に記憶されているデータのQue長が開始閾値(例えば、112.5Mbit)まで増加していく。
次に、本変形例におけるパケット読み捨て時のQue長について図にしたがって説明する。ステーション100において、さらに出力パケットのデータ量に比較して入力パケットのデータ量が多い状態が継続し、同一の優先度(例えばクラスD)のパケットのデータが記憶されている量が一定量を超過した場合、具体的には開始閾値を超過した場合には、ステーション100は、パケットバッファ140の記憶領域におけるすべての優先度のパケットのデータを廃棄する。
このパケットの廃棄では、パケットバッファ140の記憶領域に記憶されているすべての優先度のパケットのデータが廃棄される。
また、このパケットのデータの廃棄において、パケットバッファ140の中身はクリアする必要はない。上記の4つの管理メモリの中身を初期値に書き換えることで、パケットバッファ140に記憶されているデータがすべて廃棄されたことになるためである。
以上に示すように、本変形例によれば、容量監視モニタ部136のカウンタをクリアし、上記の管理メモリをリセットするのみであるので、読み出し処理を行うことなくパケットバッファ140の記憶領域のデータの廃棄が可能となる。
これにより、パケットバッファ140の記憶領域に記憶されているデータがすべて廃棄され、パケットバッファ140を速やかに、単純な処理で空にすることができる。このため、パケットバッファ140の空き領域が最大限に確保できるので、パケットバッファ140が満たされて空き領域がなくなることによる新たな入力パケットが廃棄されて失われる事態を防止でき、常に新たな入力パケットがパケットバッファ140に書き込まれることになる。
また、同一の優先度のパケットのみでパケットバッファ140の記憶領域を占めるデータ量が一定量を超過する場合にパケットのデータが廃棄されるので、パケットバッファ140の記憶領域が同一の優先度のパケットのデータによって占有されることにより優先度の高いパケットについて保証されているCIRが維持できなくなることを防止することができる。
なお、上記の開始閾値は、優先度の区分の数、各優先度のパケットのデータの入力比率および出力比率などの状況に基づいて、適宜定めることができる。
[第2の実施の形態]
次に、第2の実施の形態について説明する。上記の第1の実施の形態との相違点を中心に説明し、同様の事項については同一の符号を用いるとともに説明を省略する。
第2の実施の形態は、ステーション2100の有するタイムスロット割り当て部2137によって、データの読み出し用のタイムスロットとは別にデータの読み捨て用のタイムスロットが用意される。読み捨て制御部2135によって、この読み捨て用のタイムスロットが用いられてパケットのデータが廃棄される点で、第1の実施の形態と異なる。
以下に、本実施の形態におけるステーション2100について説明する。
図27は、第2の実施の形態のステーションの機能を示すブロック図である。本実施の形態のステーション2100は、データを一時的に記憶するパケットバッファ140のオーバーフローを防止するために、書き込み制御部132、アドレス管理部134、容量監視モニタ部136、パケット入力部170、パケット出力部180、読み出し制御部2133、読み捨て制御部2135、タイムスロット割り当て部2137を有する。
また、第1の実施の形態と同様、アドレス管理部134は、アドレス制御部134a、先頭アドレス管理メモリ134b、最終アドレス管理メモリ134c、空きアドレス管理メモリ134d、アドレスチェーン管理メモリ134eを有する。パケット入力部170は、マルチプレクサ171を有する。パケット出力部180は、宛て先識別部181を有する。
書き込み制御部132は、第1の実施の形態と同様、パケットバッファ140に対して、ステーション2100が受信したデータを書き込む処理を実行する。書き込み制御部132は、パケットが入力された時、入力パケット情報(宛て先物理ポート番号、パケット長等)をアドレス制御部134aに通知して、アドレス制御部134aから送信された空き領域のアドレス値が示すパケットバッファ140のアドレスが示す領域にパケットのデータを書き込む処理を実行する。
アドレス制御部134aは、第1の実施の形態と同様、先頭アドレス管理メモリ134b、最終アドレス管理メモリ134c、空きアドレス管理メモリ134d、アドレスチェーン管理メモリ134eの制御を行い、データが書き込まれる記憶領域を示すアドレスおよびデータが読み出されるアドレスの管理および通知を行う。
先頭アドレス管理メモリ134bは、第1の実施の形態と同様、パケットの宛て先の物理ポートおよび優先度ごとの連続するパケットの先頭パケットが記憶されているアドレス値を記憶するメモリである。
最終アドレス管理メモリ134cは、第1の実施の形態と同様、パケットの宛て先の物理ポートおよび優先度ごとの連続するパケットの最終パケットが記憶されているアドレス値を記憶するメモリである。
空きアドレス管理メモリ134dは、第1の実施の形態と同様、空き領域であって使用可能な記憶領域のアドレス値を記憶するメモリである。
アドレスチェーン管理メモリ134eは、第1の実施の形態と同様、パケットバッファ140に記憶されているパケットの順番の繋がりおよびパケット内のデータの繋がりを、連続する次のデータが記憶されている領域のアドレス値の繋がり(チェーン)によって、宛て先ごとおよび優先度ごとに記憶するメモリである。
容量監視モニタ部136は、第1の実施の形態と同様、パケットバッファ140に記憶されているポートおよび優先度ごとのデータの記憶量を監視し、監視結果を示す容量通知を読み捨て制御部2135に出力する。この容量通知に基づいて、読み捨て制御部2135がパケットのデータの読み捨て処理を実行する。
パケットバッファ140は、第1の実施の形態と同様、入力パケットのデータを記憶し、読み出し制御部2133にしたがってデータが読み出されるメモリである。パケットバッファ140は、第1の実施の形態と同様、書き込み制御部132によって書き込まれた、ステーション2100が受信したデータを一時的に記憶する。このパケットバッファ140は、例えば、パケットの伝送速度に対応して高速に動作可能な特性を有するSRAMを有するバッファなどが該当する。
パケット入力部170は、第1の実施の形態と同様、マルチプレクサ171を有し、物理ポート(ポート#0〜ポート#n)からステーション2100に入力されるパケットを受け付け、受け付けたパケットを多重化する。この多重化されたパケットは、書き込み制御部132に送信される。
パケット出力部180は、第1の実施の形態と同様、宛て先識別部181を有し、パケットバッファ140から読み出されてから出力されるデータのパケットを分離し、宛て先識別部181で識別した宛て先に応じた物理ポート(ポート#0〜ポート#n)から出力する。
読み出し制御部2133は、パケットの出力時および読み捨て処理の実行時に、パケットバッファ140に記憶されているパケットのデータを、アドレス制御部134aから送信されたパケットバッファ140のアドレスが示す記憶領域から読み出す処理を実行する。
このとき、読み出し制御部2133は、パケットバッファ140に記憶されているデータを、タイムスロット割り当て部2137によって割り当てられたタイムスロットを使用して読み出す。
これにより、ステーション2100で受信されたデータがパケットバッファ140において一時的に記憶された後、ステーション2100から出力される。出力されたデータは、例えば、ステーション2100が接続されている通信システム(図2参照)を介してデータの宛て先となる端末装置に転送される。
読み捨て制御部2135は、容量監視モニタ部136から出力された容量通知により、パケットバッファ140に記憶されているポートおよび優先度ごとのデータの記憶量を監視して、パケットバッファ140に記憶されているデータ量が所定のデータ量を超過する場合には、パケットバッファ140から読み出されたデータを廃棄する読み捨て処理を実行する。これにより、パケットバッファ140の空き容量を増加させることができる。
このとき、読み捨て制御部2135は、読み出し制御部2133にパケットバッファ140に記憶されているデータのうちの廃棄するデータを、廃棄用スロットを使用して読み出させることによって廃棄する。これにより、ステーション2100は、通常通りのパケットの出力を行いながら、パケットの廃棄を行うことができる。
読み捨て処理では、読み出し制御部2133によって、廃棄用スロットを用いてパケットバッファ140から廃棄されるデータが一旦読み出された後、読み出されたデータのパケットが、読み捨て制御部2135によって、パケット出力部180の物理ポートから出力されることなく廃棄される。
ここで、ステーション2100に入力されるパケットのデータには優先度および出力される出力ポートが割り当てられている。読み捨て制御部2135は、パケットバッファ140の空き容量がなく、かつ、パケットバッファ140に記憶されているデータの優先度がすべて同一である場合には、パケットバッファ140に記憶されているデータをすべて廃棄する。読み捨て制御部2135は、パケットバッファ140に記憶されているデータの優先度および出力ポートが同一であるものごとにパケットバッファ140における記憶量を監視し、所定の記憶量を超過している場合には、優先度および出力ポートが割り当てられているデータについてデータ廃棄を行う。
また、読み捨て制御部2135は、パケットバッファ140に記憶されているデータ量が開始閾値を超過する場合には、データ廃棄を行い、データ廃棄の結果パケットバッファ140に記憶されているデータ量が開始閾値よりも小さい解除閾値以下になった場合には、データ廃棄を終了する。また、読み捨て制御部2135は、先にパケットバッファ140に書き込まれたデータからデータ廃棄を行う。
タイムスロット割り当て部2137は、一定の時間間隔で分割して得られるとともに、出力用スロットと廃棄用スロットとを有するタイムスロットを割り当てる処理を実行する。このタイムスロットは、パケット出力部180から出力されるデータが割り当てられる出力用スロットと、パケット出力部180から出力されることなく廃棄されるデータが割り当てられる廃棄用スロットとを有する。
本実施の形態のステーション2100では、第1の実施の形態のステーション100と同様、入力パケットが到着するパケット入力部170で受け付けられた多重のパケットが、書き込み制御部132によってパケットバッファ140に書き込まれる。また、容量監視モニタ部136によって、常時、ステーション2100に入力され、パケットバッファ140に記憶されているデータ量などのパケットバッファ140の記憶内容が監視されている。また、タイムスロット割り当て部2137は、常時、読み出し制御部2133に対して、出力用スロットおよび廃棄用スロットを有するタイムスロットを割り当てている。ここで、パケットバッファ140のポートおよび優先度ごとのデータの記憶量が読み捨て処理の開始閾値以上になると、読み捨て制御部2135によって、読み捨て処理の実行が開始される。この読み捨て処理は、以下の順序で実行される。
まず、読み捨て制御部2135は、読み出し制御部2133に、パケットバッファ140から廃棄するデータの読み出しを実行させる。
次に、読み出し制御部2133は、(通常のデータの読み出し動作と同様)アドレス制御部134aに対してパケットバッファ140から廃棄するデータが記憶されているアドレスを示すアドレス情報を要求する。
次に、読み出し制御部2133は、パケットバッファ140から廃棄するデータのアドレス情報を受信する。
次に、読み出し制御部2133は、パケットバッファ140にアドレスを送信して廃棄するデータの読み出しを行い、パケットバッファ140からの読み出した、廃棄するデータを受信する。
次に、読み出し制御部2133は、タイムスロット割り当て部2137によって割り当てられたタイムスロットの廃棄用スロットに、受信した廃棄するデータを挿入する。この廃棄用スロットのデータは、後段のパケット出力部180からは出力されない。
図28は、第2の実施の形態の入力伝送路帯域および出力伝送路帯域を示す図である。図示した例にしたがって、ステーション2100の入力伝送路帯域および出力伝送路帯域について説明する。
パケット入力部170(図27参照)およびパケット出力部180(図27参照)は、それぞれn個の物理ポート(ポート#0〜ポート#n)を有するものとする。また、パケットは4種類の優先度(クラスA〜クラスD)が設定されているものとする。また、各物理ポート(ポート#0〜ポート#n)の伝送速度(伝送路容量)は、例えばそれぞれ1Gbpsとする。
ここで、上記にしたがい、入力側伝送路帯域について説明する。パケット入力部170の各物理ポートの伝送速度を、4種類の各優先度に均等に割り当てた場合、クラスA〜クラスDまで各優先度ごとに250Mbpsが割り当てられることになる。また、パケット入力部170が有するすべての物理ポートにおける、すべての優先度についての伝送路容量の合計である入力伝送路帯域は、物理ポート一つ当たりの伝送速度1Gbps×物理ポートの個数(n+1)個=(n+1)Gbpsとなる。
次に、出力側伝送路帯域および読み捨てポート帯域について説明する。パケット出力部180が有するすべての物理ポートにおける、すべての優先度についての伝送路容量の合計である出力伝送路帯域は、同様に、物理ポート一つ当たりの伝送速度1Gbps×物理ポートの個数(n+1)個=(n+1)Gbpsとなる。また、読み捨てポート帯域2138(図29参照)の伝送速度が1Gbps有するとすれば、出力伝送路帯域および読み捨てポートの帯域の合計は、(n+2)Gbpsとなる。
図29は、第2の実施の形態の読み捨てポートの動作を示す図である。
第2の実施の形態におけるステーション2100は、上記のように書き込み制御部132、パケットバッファ140、パケット入力部170、パケット出力部180、読み出し制御部2133、読み捨て制御部2135を有する。
本実施の形態のステーション2100では、パケットバッファ140に記憶されているある優先度および宛て先のポートのパケットのデータが閾値を超過すると、その優先度および宛て先のポートのパケットのデータがパケットバッファ140から読み出されて廃棄される。また、本実施の形態のステーション2100では、読み捨て専用の帯域である読み捨てポート帯域2138、読み捨てポート帯域2138用のタイムスロットである廃棄用スロットを用いてデータの廃棄を行う。
読み捨てポート帯域2138は、いずれにも接続されていない出力用の論理ポートである。データの廃棄が行われない通常時、すなわちパケット出力部180からパケットバッファ140に記憶されているすべてのデータのパケットが物理ポートから出力される場合には、読み捨てポート帯域2138は使用されない。この読み捨てポート帯域2138は、例えば1Gbpsの伝送速度を有するものとする。
上記図28のように、パケット入力部170は、(n+1)個の物理ポート(ポート#0、ポート#1、・・・、ポート#n)を有する。例えば、各物理ポートがそれぞれ1Gbpsの伝送速度を有する場合には、入力伝送路帯域は(n+1)Gbpsとなる。したがって、書き込み制御部132によってパケットバッファ140に書き込まれるデータの速度は、(n+1)Gbpsである。
また、ステーション2100の出力側の伝送路容量である出力伝送路帯域は、図示を省略するが、上記図28のように、入力伝送路帯域と同様に、パケット出力部180は、(n+1)個の物理ポート(図27参照)を有し、例えば、各物理ポートがそれぞれ1Gbpsの伝送速度を有する場合には、出力伝送路帯域は(n+1)Gbpsとなる。
また、上記図28のように、例えば、読み捨てポート帯域2138の伝送速度が1Gbps有するとすれば、読み捨て制御部2135に基づいて読み出し制御部2133によってパケットバッファ140から読み出されるデータの速度は、(n+2)Gbpsである。
具体的には、例えば、パケット入力部170の物理ポートが4ポートであり、個々のポートは1Gbpsの伝送速度を有するものとすれば、入力側で合計4Gbpsの帯域が入力されることになる。また、パケット出力部180の物理ポートが4ポートであり、個々のポートは1Gbpsの伝送速度を有するものとし、読み捨てポート帯域2138の伝送速度を1Gbpsとすれば、両者を合計して5Gbpsとなる。ここで、読み捨てポートのデータはステーション2100内部で廃棄されるので、実際にはパケット出力部180の物理ポートから出力されることはない。
本実施の形態のステーション2100では、入力伝送路帯域<(出力伝送路帯域+読み捨てポート帯域)の関係を成立させている。これにより、単位時間当たりのデータが入力される伝送量の最大値よりも単位時間当たりのデータが出力されまたは廃棄される伝送量の方が大きくなる。本実施の形態のステーション2100では、このようにして通常パケットの出力を行いながら、パケットの廃棄を行うことができる。
以上により、例えば第1の実施の形態のような読み捨て処理を行っている間は通常の出力パケットが出力されない構成の場合であって、Ethernet(登録商標)パケットを用いるときにおいて、例として64byte長のパケットがパケットバッファ140に大量に記憶されているときには、読み出し処理が1回実行されても、64byte分のデータしか廃棄されないため、読み捨て処理に時間を要する上に、データの廃棄中には通常のパケットが出力されないことになる。
このような場合においても、予め一部の帯域を読み捨てポート用として確保しておき、入力帯域<(出力帯域+廃棄帯域)とすることで、常にパケットを出力する帯域を確保しつつ、パケットバッファ140におけるデータの記憶量が増加してきた場合には、パケットバッファ140に記憶されているデータの廃棄を行うことができる。
図30は、第2の実施の形態の廃棄判定処理の手順を示すフローチャートである。
本実施の形態のステーション2100は、第1の実施の形態のステーション100(図3参照)と同様、物理ポートからパケットが入力されると、入力パケットのデータをパケットバッファ140に書き込む。これにより入力パケットのデータがパケットバッファ140に記憶される。第1の実施の形態と同様、第2の実施の形態の廃棄判定処理では、ステーション2100にパケットが入力される都度呼び出され、入力されたパケットのデータが書き込まれたパケットバッファ140の状況を監視してデータの読み捨てによる入力パケットの廃棄の判定が行われる。
第2の実施の形態の廃棄判定処理では、読み出し制御部2133に割り当てられたタイムスロットが読み捨てポートのタイムスロット(廃棄用スロット)の時のみデータの廃棄が行われ、読み出し制御部2133に割り当てられたタイムスロットが通常のタイムスロット(出力用スロット)のときには、データの出力のための通常の読み出しが行われる。さらに、読み出し制御部2133に割り当てられたタイムスロットが読み捨てポートのタイムスロットである場合であって、かつ、パケットバッファ140の記憶領域の記憶量が開始閾値を超過しているときにデータの廃棄が行われる。
[ステップS21]ステーション2100は、入力側の物理ポート(図27のパケット入力部170のポート#0、・・・、ポート#n)から入力されたパケットを多重化する多重処理を実行する。
[ステップS22]ステーション2100は、ステップS21で多重化された入力パケットからデータを抽出し、抽出したデータをパケットバッファ140に書き込む。
[ステップS23]ステーション2100は、パケットバッファ140の使用状況を監視して、パケットバッファ140に記憶されている各優先度のデータ量を取得する。
[ステップS24]ステーション2100は、その時点でタイムスロット割り当て部2137(図27参照)によって読み出し制御部2133に割り当てられたタイムスロットが読み捨てポート帯域2138(図29参照)のタイムスロット(廃棄用スロット)であるか、パケット出力部180から出力されるデータのタイムスロット(出力用スロット)であるかを判定する。割り当てられたタイムスロットが廃棄用スロットであれば、ステーション2100は、ステップS27に処理を進める。一方、出力用スロットであれば、ステーション2100は、ステップS25に処理を進める。
[ステップS25]ステーション2100は、パケットバッファ140からパケットのデータを読み出す。
[ステップS26]ステーション2100は、ステップS25で読み出したデータを、パケットの宛て先と対応するパケット出力部180(図27参照)の物理ポートに振り分け、振り分けた物理ポートからデータのパケットを送信する。その後、処理を終了する。
[ステップS27]ステーション2100は、ステップS23で取得したパケットバッファ140の使用状況が予め定められている閾値を超過しているか否かを判定する。使用状況が閾値を超過していれば、ステーション2100は、ステップS28に処理を進める。一方、使用状況が閾値以下であれば、ステーション2100は、ステップS25に処理を進める。
この閾値の判定は、各物理ポートおよび各優先度の組み合わせごとに判定される。判定の結果、閾値を超過している物理ポートおよび優先度の組み合わせに該当するパケットのデータが順に廃棄される。
すなわち、例えば、ポート#0から出力されるクラスAのパケットのデータから順にすべての物理ポートおよび優先度の組み合わせのパケットのデータについて、パケットバッファ140における記憶量が閾値を超過するか否かについて判定される。
そして、例えば、ポート#0から出力されるクラスAの組み合わせのパケットのデータの記憶量が閾値を超過していた場合には、そのポート#0から出力されるクラスAの組み合わせのパケットのデータが廃棄される。
[ステップS28]ステーション2100は、パケットバッファ140からパケットのデータを読み出し、廃棄用スロットに挿入する。
[ステップS29]ステーション2100は、ステップS28で廃棄用スロットに挿入されたデータを廃棄する。その後、処理を終了する。
以上に示すように、第2の実施の形態によれば、第1の実施の形態に加えて、常にパケットを出力しつつ、パケットバッファ140におけるデータの記憶量が増加してきた場合には、パケットの廃棄を行うことができる。
[第3の実施の形態]
次に、第3の実施の形態について説明する。上記の第1の実施の形態との相違点を中心に説明し、同様の事項については同一の符号を用いるとともに説明を省略する。
第3の実施の形態は、パケット出力部3180に出力されるパケットのデータを一時的に記憶するバッファ(ポート#0バッファ3182a〜ポート#nバッファ3182n)を設けた点およびクロックレート制御部3139によって読み出し制御部3133、読み捨て制御部3135、パケット出力部3180が速く動作するように制御される点で、第1の実施の形態と異なる。
以下に、本実施の形態におけるステーション3100について説明する。
図31は、第3の実施の形態のステーションの機能を示すブロック図である。図32は、第3の実施の形態のパケット出力部の機能を示すブロック図である。本実施の形態のステーション3100は、データを一時的に記憶するパケットバッファ140のオーバーフローを防止するために、書き込み制御部132、アドレス管理部134、容量監視モニタ部136、パケット入力部170、読み出し制御部3133、読み捨て制御部3135、クロックレート制御部3139、パケット出力部3180、を有する。
また、第1の実施の形態と同様、アドレス管理部134は、アドレス制御部134a、先頭アドレス管理メモリ134b、最終アドレス管理メモリ134c、空きアドレス管理メモリ134d、アドレスチェーン管理メモリ134eを有する。パケット入力部170は、マルチプレクサ171を有する。パケット出力部3180は、宛て先識別部3181を有する。
書き込み制御部132は、第1の実施の形態と同様、パケットバッファ140に対して、ステーション3100が受信したデータを書き込む処理を実行する。書き込み制御部132は、パケットが入力された時、入力パケット情報(宛て先物理ポート番号、パケット長等)をアドレス制御部134aに通知して、アドレス制御部134aから送信された空き領域のアドレス値が示すパケットバッファ140のアドレスが示す領域にパケットのデータを書き込む処理を実行する。
アドレス制御部134aは、第1の実施の形態と同様、先頭アドレス管理メモリ134b、最終アドレス管理メモリ134c、空きアドレス管理メモリ134d、アドレスチェーン管理メモリ134eの制御を行い、データが書き込まれる記憶領域を示すアドレスおよびデータが読み出されるアドレスの管理および通知を行う。
先頭アドレス管理メモリ134bは、第1の実施の形態と同様、パケットの宛て先の物理ポートおよび優先度ごとの連続するパケットの先頭パケットが記憶されているアドレス値を記憶するメモリである。
最終アドレス管理メモリ134cは、第1の実施の形態と同様、パケットの宛て先の物理ポートおよび優先度ごとの連続するパケットの最終パケットが記憶されているアドレス値を記憶するメモリである。
空きアドレス管理メモリ134dは、第1の実施の形態と同様、空き領域であって使用可能な記憶領域のアドレス値を記憶するメモリである。
アドレスチェーン管理メモリ134eは、第1の実施の形態と同様、パケットバッファ140に記憶されているパケットの順番の繋がりおよびパケット内のデータの繋がりを、連続する次のデータが記憶されている領域のアドレス値の繋がり(チェーン)によって、宛て先ごとおよび優先度ごとに記憶するメモリである。
容量監視モニタ部136は、第1の実施の形態と同様、パケットバッファ140に記憶されているポートおよび優先度ごとのデータの記憶量を監視し、監視結果を示す容量通知を読み捨て制御部3135に出力する。この容量通知に基づいて、読み捨て制御部3135がパケットのデータの読み捨て処理を実行する。
パケットバッファ140は、第1の実施の形態と同様、入力パケットのデータを記憶し、読み出し制御部3133にしたがってデータが読み出されるメモリである。パケットバッファ140は、第1の実施の形態と同様、書き込み制御部132によって書き込まれた、ステーション3100が受信したデータを一時的に記憶する。このパケットバッファ140は、例えば、パケットの伝送速度に対応して高速に動作可能な特性を有するSRAMを有するバッファなどが該当する。
パケット入力部170は、第1の実施の形態と同様、マルチプレクサ171を有し、物理ポート(ポート#0〜ポート#n)からステーション3100に入力されるパケットを受け付け、受け付けたパケットを多重化する。この多重化されたパケットは、書き込み制御部132に送信される。
読み出し制御部3133は、パケットの出力時および読み捨て処理の実行時に、パケットバッファ140に記憶されているパケットのデータを、アドレス制御部134aから送信されたパケットバッファ140のアドレスが示す記憶領域から読み出す処理を実行する。
これにより、ステーション3100で受信されたデータがパケットバッファ140において一時的に記憶された後、ステーション100から出力される。出力されたデータは、例えば、ステーション3100が接続されている通信システム(図2参照)を介してデータの宛て先となる端末装置に転送される。
本実施の形態では、読み出し制御部3133によってパケットバッファ140から書き込み速度の2倍の速度で読み出されるデータは、ポート#0バッファ3182a〜ポート#nバッファ3182nに書き込まれる。
読み出し制御部3133は、ポート#0バッファ3182a〜ポート#nバッファ3182nにおける記憶量を監視するとともに、データを出力する際に、データが出力されるパケット出力部3180の物理ポートに対応付けられているポート#0バッファ3182a〜ポート#nバッファ3182nにおける記憶量が所定の記憶量を超過している場合には、データが出力されるパケット出力部3180の物理ポートを変更して、対応付けられているポート#0バッファ3182a〜ポート#nバッファ3182nの記憶量が所定の記憶量以下である他のパケット出力部3180の物理ポートから出力する処理を実行する。
読み捨て制御部3135は、容量監視モニタ部136から出力された容量通知により、パケットバッファ140に記憶されているポートおよび優先度ごとのデータの記憶量を監視して、パケットバッファ140に記憶されているデータ量が所定のデータ量を超過する場合には、パケットバッファ140に記憶されているデータを読み出し、読み出したデータを廃棄する読み捨て処理を実行する。これにより、パケットバッファ140の空き容量を増加させることができる。
読み捨て処理では、読み出し制御部3133によってパケットバッファ140から廃棄されるデータが一旦読み出された後、読み出されたデータのパケットが、読み捨て制御部3135によって、パケット出力部3180の物理ポートから出力されることなく廃棄される。
ここで、ステーション3100に入力されるパケットのデータには優先度および出力される出力ポートが割り当てられている。読み捨て制御部3135は、パケットバッファ140の空き容量がなく、かつ、パケットバッファ140に記憶されているデータの優先度がすべて同一である場合には、パケットバッファ140に記憶されているデータをすべて廃棄する。読み捨て制御部3135は、パケットバッファ140に記憶されているデータの優先度および出力ポートが同一であるものごとにパケットバッファ140における記憶量を監視し、所定の記憶量を超過している場合には、優先度および出力ポートが割り当てられているデータについてデータ廃棄を行う。
また、読み捨て制御部3135は、パケットバッファ140に記憶されているデータ量が開始閾値を超過する場合には、データ廃棄を行い、データ廃棄の結果パケットバッファ140に記憶されているデータ量が開始閾値よりも小さい解除閾値以下になった場合には、データ廃棄を終了する。また、読み捨て制御部3135は、先にパケットバッファ140に書き込まれたデータからデータ廃棄を行う。
クロックレート制御部3139は、読み出し制御部3133によってデータが読み出される速度である読み出し速度と、読み捨て制御部3135によってデータが読み捨てられる速度である読み捨て速度と、ポート#0バッファ3182a〜ポート#nバッファ3182nにデータが書き込まれる速度である書き込み速度とを制御する。クロックレート制御部3139は、読み出し速度と、読み捨て速度と、書き込み速度とを、受信したデータがパケットバッファ140に書き込まれる速度よりも速く(例えば、受信したデータがパケットバッファ140に書き込まれる速度の2倍の速度)制御する。
パケット出力部3180は、宛て先識別部3181、パケットのデータを出力する複数の物理ポート(ポート#03183a、ポート#13183b、・・・、ポート#n3183n)、ポート#0バッファ3182a〜ポート#nバッファ3182nを有する。パケット出力部3180は、パケットバッファ140から読み出されたデータのパケットを分離し、パケットのフィールドに基づいて宛て先識別部181で識別した宛て先に応じた物理ポート(ポート#0〜ポート#nのいずれか)から出力する。
ポート#0バッファ3182a〜ポート#nバッファ3182nは、複数設けられているとともに、それぞれのポート#0バッファ3182a〜ポート#nバッファ3182nが各パケット出力部3180の物理ポートごとに対応付けられたFIFO(First In First Out)バッファメモリである。ポート#0バッファ3182a〜ポート#nバッファ3182nは、読み出し制御部3133によってパケットバッファ140から読み出され、パケット出力部3180が有する物理ポートから出力されるデータを一時的に記憶する。
以上のように、本実施の形態の読み出し制御部3133は、物理ポートのポート#0バッファ3182a〜ポート#nバッファ3182nの空き状態を監視して、空きがある場合に、パケットバッファ140からデータを読み出して、そのパケットを出力することで、ポート#0バッファ3182a〜ポート#nバッファ3182nの溢れを防止する。読み出し制御部3133は、ポート#0バッファ3182a〜ポート#nバッファ3182nに空きがない場合は、別の物理ポートの空き状態を確認して、空きがあれば、その物理ポートにデータを出力する。
図33は、第3の実施の形態の廃棄判定処理の手順を示すフローチャートである。
本実施の形態のステーション3100は、第1の実施の形態のステーション100(図3参照)と同様、物理ポートからパケットが入力されると、入力パケットのデータをパケットバッファ140に書き込む。これにより入力パケットのデータがパケットバッファ140に記憶される。第1の実施の形態と同様、第3の実施の形態の廃棄判定処理では、ステーション3100にパケットが入力される都度呼び出され、入力されたパケットのデータが書き込まれたパケットバッファ140の状況を監視してデータの読み捨てによる入力パケットの廃棄の判定が行われる。
第3の実施の形態の廃棄判定処理では、読み出し制御部3133は、ポート#0バッファ3182a〜ポート#nバッファ3182nの空き状態を確認し、空きがない場合は、別の物理ポートの空き状態を確認して、空きがあれば、その物理ポートにデータを出力する。
[ステップS31]ステーション3100は、物理ポート(図31のパケット入力部170のポート#0、・・・、ポート#n)から入力されたパケットを多重化する多重処理を実行する。
[ステップS32]ステーション3100は、ステップS31で多重化された入力パケットからデータを抽出し、抽出したデータをパケットバッファ140に書き込む。
[ステップS33]ステーション3100は、パケットバッファ140の使用状況を監視して、パケットバッファ140に記憶されている各優先度のデータ量を取得する。
[ステップS34]ステーション3100は、ステップS33で取得したパケットバッファ140の使用状況が予め定められている開始閾値を超過しているか否かを判定する。使用状況が開始閾値を超過していれば、ステーション3100は、ステップS38に処理を進める。一方、使用状況が開始閾値以下であれば、ステーション3100は、ステップS35に処理を進める。
[ステップS35]ステーション3100は、パケット出力部3180(図31参照)の物理ポートに対応して設けられたバッファ(ポート#0バッファ3182a〜ポート#nバッファ3182n)の空き状態を確認する。ここでは、ステーション3100は、すべての物理ポートのバッファについて空き状態を確認するものとする。
[ステップS36]ステーション3100は、パケットのデータを、パケットバッファ140に対する書き込み速度の2倍の速度でパケットバッファ140から読み出す。
[ステップS37]ステーション3100は、ステップS36で読み出したデータをステップS35でバッファの空き容量があることを確認したパケット出力部3180(図31参照)の物理ポートに振り分ける。ステーション3100は、振り分けたパケットを、一旦、物理ポートに対応付けられたバッファに記憶させ、その後バッファから読み出して振り分けた物理ポートから送信する。その後、処理を終了する。
このとき、ステーション3100は、ステップS35における空き状態の確認の結果、送信するパケットのフィールドの識別によって判定された宛て先に対応する物理ポートのバッファに十分な空きがあれば、その物理ポートにそのパケットを振り分ける。一方、宛て先に対応する物理ポートのバッファに十分な空きがなければ、ステップS35における空き状態の確認の結果十分な空きがあるバッファの物理ポートにそのパケットを振り分ける。
ここで、ステップS36によって書き込み速度の2倍の速度という速い速度でデータが読み出されるが、物理ポートにバッファを設けることにより、出力側の伝送速度との差を吸収することができるので、データの喪失を防止することができる。
[ステップS38]ステーション3100は、パケットバッファ140からパケットのデータを、パケットバッファ140に対する書き込み速度の2倍の速度で読み出す。このデータの読み出しは、パケットバッファ140に記憶されているデータ量が、解除閾値以下になるまで実行される。
[ステップS39]ステーション3100は、ステップS38で読み出したデータを廃棄する。ここで、ステップS38によってデータが読み出される速度が2倍になっていることから、データの廃棄に要する時間も短縮される。その後、処理を終了する。
以上に示すように、第3の実施の形態によれば、第1の実施の形態に加えて、単純な構成で実現可能なクロックレートの高速化により、パケットバッファ140に対する書き込み速度の2倍の速度で読み出し側の処理を行うことで、シンプルで小規模の回路で、廃棄に要する時間も短縮されることから、出力側の読み捨てをより効率的に行うことができる。これにより、コストの増加を抑えつつ、バッファのオーバーフローをより有効に防止することができる。
以上、本発明の通信装置および通信装置の制御方法を、図示の実施の形態に基づいて説明したが、上記については単に本発明の原理を示すものである。本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、さらに、多数の変形、変更が当業者にとって可能であり、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされ、各部の構成は同様の機能を有する任意の構成のものに置換することができる。また、本発明に他の任意の構成物や工程が付加されてもよい。また、本発明は上記の実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
以上の実施の形態に関し、さらに以下の付記を開示する。
(付記1) 受信したデータを出力するまでの間一時的に記憶する通信装置において、
受信した前記データを一時的に記憶する一時記憶手段と、
前記一時記憶手段に前記データを書き込む処理を実行する書き込み制御手段と、
前記一時記憶手段に記憶されている前記データを読み出す処理を実行する読み出し制御手段と、
前記一時記憶手段から読み出された前記データを廃棄するデータ廃棄を行う処理を実行する読み捨て制御手段と、
を有することを特徴とする通信装置。
(付記2) 前記読み捨て制御手段は、前記データ廃棄において、前記一時記憶手段に記憶されているデータ量が所定のデータ量を超過する場合には、前記一時記憶手段から読み出された前記データを廃棄する処理を実行することを特徴とする付記1記載の通信装置。
(付記3) 前記読み捨て制御手段は、前記データ廃棄において、前記一時記憶手段に記憶されている前記データをすべて廃棄する処理を実行することを特徴とする付記1記載の通信装置。
(付記4) 一定の時間間隔で分割して得られるとともに、出力用スロットと廃棄用スロットとを有するタイムスロットを割り当てる処理を実行するタイムスロット割り当て手段を有し、
前記読み出し制御手段は、前記一時記憶手段に記憶されている前記データを、前記タイムスロット割り当て手段によって割り当てられた前記タイムスロットを使用して読み出す処理を実行し、
前記読み捨て制御手段は、前記データ廃棄において、前記読み出し制御手段に対して、前記一時記憶手段に記憶されている前記データを、前記廃棄用スロットを使用して読み出させることによって廃棄する処理を実行することを特徴とする付記1記載の通信装置。
(付記5) 前記読み出し制御手段によって読み出され、出力される前記データを一時的に記憶する出力側記憶手段と、
前記読み出し制御手段によって前記データが読み出される速度である読み出し速度と、前記読み捨て制御手段によって前記データが読み捨てられる速度である読み捨て速度と、前記出力側記憶手段に前記データが書き込まれる速度である書き込み速度とを制御する速度制御手段と、
を有し、
前記速度制御手段は、前記読み出し速度と、前記読み捨て速度と、前記書き込み速度とを、受信した前記データが前記一時記憶手段に書き込まれる速度よりも速く制御することを特徴とする付記1記載の通信装置。
(付記6) 前記読み捨て制御手段は、前記一時記憶手段に記憶されているデータ量が第1のデータ量を超過する場合には、前記データ廃棄を行い、前記データ廃棄の結果前記一時記憶手段に記憶されているデータ量が前記第1のデータ量よりも小さい第2のデータ量以下になった場合には、前記データ廃棄を終了する処理を実行することを特徴とする付記1記載の通信装置。
(付記7) 前記データには優先度および出力される出力ポートが割り当てられており、
前記読み捨て制御手段は、前記一時記憶手段に記憶されている前記データの前記優先度および前記出力ポートが同一であるものごとに前記一時記憶手段における記憶量を監視し、前記優先度および前記出力ポートが割り当てられている前記データの前記一時記憶手段における記憶量が所定の記憶量を超過している場合には、前記優先度および前記出力ポートが割り当てられている前記データについて前記データ廃棄を行う処理を実行することを特徴とする付記1記載の通信装置。
(付記8) 前記読み捨て制御手段は、前記データ廃棄において、先に前記一時記憶手段に書き込まれた前記データから前記データ廃棄を行う処理を実行することを特徴とする付記1記載の通信装置。
(付記9) 前記一時記憶手段の記憶内容を示す管理情報を記憶する管理情報記憶手段を有し、
前記読み捨て制御手段は、前記データ廃棄において、前記管理情報記憶手段に記憶されている前記管理情報を初期化することにより、前記一時記憶手段に記憶されている前記データをすべて廃棄する処理を実行することを特徴とする付記3記載の通信装置。
(付記10) 前記データを出力する複数の出力手段を有し、
前記出力側記憶手段は、複数設けられているとともに、それぞれの前記出力側記憶手段が各前記出力手段ごとに対応付けられており、
前記読み出し制御手段は、前記出力側記憶手段における記憶量を監視するとともに、前記データを出力する際に、前記データが出力される前記出力手段に対応付けられている前記出力側記憶手段における前記記憶量が所定の記憶量を超過している場合には、前記データが出力される前記出力手段を変更して、対応付けられている前記出力側記憶手段の前記記憶量が所定の記憶量以下である他の前記出力手段から出力する処理を実行することを特徴とする付記5記載の通信装置。
(付記11) 前記データには優先度が割り当てられており、
前記読み捨て制御手段は、前記一時記憶手段に記憶されている前記データの前記優先度が同一であるものごとに前記一時記憶手段における記憶量を監視し、所定の記憶量を超過している場合には、前記一時記憶手段に記憶されている前記データをすべて廃棄する処理を実行することを特徴とする付記3記載の通信装置。
(付記12) 受信したデータを出力するまでの間一時的に記憶する通信装置の制御方法において、
書き込み制御手段によって、受信した前記データを一時的に記憶する一時記憶手段に前記データを書き込む処理を実行し、
読み出し制御手段によって、前記一時記憶手段に記憶されている前記データを読み出す処理を実行し、
読み捨て制御手段によって、前記一時記憶手段から読み出された前記データを廃棄するデータ廃棄を行う処理を実行する、
ことを特徴とする通信装置の制御方法。