(57)【要約】【課題】本発明は、複数のキューイングバッファを備えるフレーム転送装置において、キューイングバッファの輻輳に伴う不具合の発生を効率的に抑制するための技術を提供することを目的とする。【解決手段】  フレーム転送装置は、３以上のキューイングバッファと、各キューイングバッファからフレームを読み出す優先順位を記憶する記憶部と、優先順位に応じてフレームを読み出して転送をおこなうバッファ読み出し部と、受信したフレームをフレームに含まれる情報に応じて複数のキューイングバッファのうちのいずれかに書き込むバッファ書き込み部と、を備え、バッファ書き込み部は、いずれかの第１のキューイングバッファの輻輳状態を検出すると、所定の条件を満たしたときに、第１のキューイングバッファと、第１のキューイングバッファより優先順位が１つ上位の第２のキューイングバッファの優先順位の入れ替えをおこなう。【選択図】図２
2013093834.tif 000002
【特許請求の範囲】
【請求項１】
フレーム転送装置であって、
フレームを蓄積可能な３以上の複数のキューイングバッファと、
各前記キューイングバッファからフレームを読み出す相対的な優先順位を記憶する記憶部と、
前記優先順位に応じて前記キューイングバッファからフレームを読み出して転送をおこなうバッファ読み出し部と、
前記フレーム転送装置の外部から受信したフレームを前記フレームに含まれる情報に応じて前記複数のキューイングバッファのうちのいずれかに書き込むバッファ書き込み部と、を備え、
前記バッファ書き込み部は、いずれかの第１のキューイングバッファの輻輳状態を検出すると、所定の条件を満たしたときに、前記第１のキューイングバッファと、前記第１のキューイングバッファより優先順位が１つ上位の第２のキューイングバッファの優先順位の入れ替えをおこなう、フレーム転送装置。
【請求項２】
請求項１に記載のフレーム転送装置において、
前記バッファ書き込み部は、前記第２のキューイングバッファが輻輳状態の場合には、前記所定の条件を満たさないものと判断して、前記優先順位の入れ替えをおこなわない、フレーム転送装置。
【請求項３】
請求項１または請求項２に記載のフレーム転送装置において、
前記バッファ書き込み部は、前記第１のキューイングバッファの優先順位が、過去におこなわれた優先順位の入れ替えによって、１つ下がっている場合には、
（i）前記優先順位の入れ替えを解消するとともに、
（ii）前記第２のキューイングバッファが輻輳状態ではない場合には、前記第１のキューイングバッファと、前記第２のキューイングバッファとの優先順位の入れ替えをおこなう、フレーム転送装置。
【請求項４】
請求項１ないし請求項３のいずれかに記載のフレーム転送装置において、
前記バッファ読み出し部は、過去におこなわれた前記優先順位の入れ替えによって、優先順位が１つ上がっている前記第１のキューイングバッファの輻輳状態の解消を検出すると、前記優先順位の入れ替えを解消する、フレーム転送装置。
【請求項５】
請求項１ないし請求項４のいずれかに記載のフレーム転送装置において、
前記記憶部には、前記各キューイングバッファの現在の優先順位を示す情報と、前記各キューイングバッファの初期の優先順位を示す情報とが記憶され、
前記バッファ書き込み部は、前記初期の優先順位において、前記第１のキューイングバッファより優先順位が１つ上位の第２のキューイングバッファの優先順位を、前記現在の優先順位を示す情報において、前記第１のキューイングバッファより優先順位が１つ下位になるように前記現在の優先順位を示す情報を書き換え、
前記バッファ読み出し部は、前記現在の優先順位に応じて、前記キューイングバッファからフレームを読み出して転送をおこなう、フレーム転送装置。
【請求項６】
フレームの転送方法であって、
記憶部に記憶されている優先順位に応じて３以上の複数のキューイングバッファからフレームを読み出して転送をおこなう工程と、
フレームに含まれる情報に応じてフレームを前記複数のキューイングバッファのうちのいずれかに書き込む工程と、
いずれかの第１のキューイングバッファの輻輳状態を検出すると、所定の条件を満たしたときに、前記第１のキューイングバッファと、前記第１のキューイングバッファより優先順位が１つ上位の第２のキューイングバッファの優先順位の入れ替えをおこなう工程と、を備えるフレームの転送方法。
【請求項７】
フレーム転送装置であって、
フレームを蓄積可能な３以上の複数のキューイングバッファと、
各前記キューイングバッファからフレームを読み出す相対的な優先順位を記憶する記憶部と、
前記優先順位に応じて前記キューイングバッファからフレームを読み出して転送をおこなうバッファ読み出し部と、
前記フレーム転送装置の外部から受信したフレームを前記フレームに含まれる情報に応じて前記複数のキューイングバッファのうちのいずれかに書き込むバッファ書き込み部と、を備え、
前記記憶部は、各前記キューイングバッファのそれぞれに設定される輻輳閾値と輻輳解消閾値とを記憶し、
前記バッファ書き込み部は、
（i）フレームの蓄積量が前記輻輳閾値を超えたときに前記キューイングバッファの輻輳状態を検出し、フレームの蓄積量が前記輻輳解消閾値を下回ったときに前記キューイングバッファの輻輳状態の解消を検出し、
（ii）いずれかの第１のキューイングバッファの輻輳状態を検出すると、所定の条件を満たしたときに、前記第１のキューイングバッファと、前記第１のキューイングバッファより優先順位が１つ上位の第２のキューイングバッファの優先順位の入れ替えをおこない、
（iii）前記第１のキューイングバッファに設定された前記輻輳解消閾値を減少させる、フレーム転送装置。
【請求項８】
フレーム転送装置であって、
フレームを蓄積可能な３以上の複数のキューイングバッファと、
各前記キューイングバッファからフレームを読み出す相対的な優先順位を記憶する記憶部と、
前記優先順位に応じて前記キューイングバッファからフレームを読み出して転送をおこなうバッファ読み出し部と、
前記フレーム転送装置の外部から受信したフレームを前記フレームに含まれる情報に応じて前記複数のキューイングバッファのうちのいずれかに書き込むバッファ書き込み部と、を備え、
前記記憶部は、各前記キューイングバッファのそれぞれに設定される輻輳閾値と輻輳解消閾値とを記憶し、
前記バッファ書き込み部は、
（i）フレームの蓄積量が前記輻輳閾値を超えたときに前記キューイングバッファの輻輳状態を検出し、フレームの蓄積量が前記輻輳解消閾値を下回ったときに前記キューイングバッファの輻輳状態の解消を検出し、
（ii）いずれかの第１のキューイングバッファの輻輳状態を検出すると、所定の条件を満たしたときに、前記第１のキューイングバッファと、前記第１のキューイングバッファより優先順位が１つ上位の第２のキューイングバッファの優先順位の入れ替えをおこない、
（iii）所定の時間以上輻輳状態となっていないキューイングバッファを検出すると、前記キューイングバッファに設定された前記輻輳閾値を増加させる、フレーム転送装置。
【請求項９】
フレームの転送方法であって、
記憶部に記憶されている優先順位に応じて３以上の複数のキューイングバッファからフレームを読み出して転送をおこなう工程と、
フレームに含まれる情報に応じてフレームを前記複数のキューイングバッファのうちのいずれかに書き込む工程と、
フレームの蓄積量が輻輳閾値を超えたときにキューイングバッファの輻輳状態を検出し、フレームの蓄積量が輻輳解消閾値を下回ったときにキューイングバッファの輻輳状態の解消を検出する工程と、
いずれかの第１のキューイングバッファの輻輳状態を検出すると、所定の条件を満たしたときに、前記第１のキューイングバッファと、前記第１のキューイングバッファより優先順位が１つ上位の第２のキューイングバッファの優先順位の入れ替えをおこない、前記第１のキューイングバッファに設定されている輻輳解消閾値を減少させる工程と、を備えるフレームの転送方法。
【請求項１０】
フレームの転送方法であって、
記憶部に記憶されている優先順位に応じて３以上の複数のキューイングバッファからフレームを読み出して転送をおこなう工程と、
フレームに含まれる情報に応じてフレームを前記複数のキューイングバッファのうちのいずれかに書き込む工程と、
フレームの蓄積量が輻輳閾値を超えたときにキューイングバッファの輻輳状態を検出し、フレームの蓄積量が輻輳解消閾値を下回ったときにキューイングバッファの輻輳状態の解消を検出する工程と、
いずれかの第１のキューイングバッファの輻輳状態を検出すると、所定の条件を満たしたときに、前記第１のキューイングバッファと、前記第１のキューイングバッファより優先順位が１つ上位の第２のキューイングバッファの優先順位の入れ替えをおこなう工程と、
所定の時間以上輻輳状態となっていないキューイングバッファを検出すると、前記キューイングバッファに設定された輻輳閾値を増加させる工程と、を備えるフレームの転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フレーム転送装置、および、フレーム転送方法に関する。
【背景技術】
【０００２】
従来から、企業のデータセンター等において、サーバとユーザ端末との間や、サーバ間等におけるフレームの転送をおこなうフレーム転送装置が知られている。ここで「フレーム」とは、ネットワークにおける通信で使用されるデータフォーマットを意味している。フレーム転送装置の多くには、受信したフレームを一時的に保存するためのメモリであるキューイングバッファが複数備えられている。このキューイングバッファは、フレームの転送処理をおこなうときや、フレーム転送装置のフレーム転送処理速度が回線速度と異なるとき等に使用される。
【０００３】
このキューイングバッファに関して、フレームの格納が１つのキューイングバッファに集中したときに、キューイングバッファの許容量を超えてフレームの一部が破棄される不具合があった。この不具合を回避するために複数備えられたキューイングバッファに関して、音声データや動画データ等のリアルタイム通信用のフレームを格納するキューイングバッファのフレームの蓄積量が閾値に達した場合、このキューイングバッファから優先的にフレームの読み出しをおこなう輻輳制御方法等が知られている（特許文献１、２、３）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−７２５６９号
【特許文献２】特開平１１−３２０５０号
【特許文献３】特開２００１−１８６１８１号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、従来技術では、複数のキューイングバッファが輻輳状態となっている場合、どのキューイングバッファをより優先するかについては十分な制御をおこなうことができなかった。また、複数のキューイングバッファがそれぞれ優先度の異なるフレームを格納している場合、優先度の低いキューイングバッファで輻輳状態が発生したときに、どのキューイングバッファから優先的にフレームを読み出すかについては十分な制御をおこなうことができなかった。このように、複数のキューイングバッファを備えるフレーム転送装置において、キューイングバッファの輻輳に伴う不具合の発生を効率的に抑制する技術に関してはなお、改善の余地があった。
【０００６】
本発明は、上記した課題の少なくとも一部を解決するためになされた発明であり、複数のキューイングバッファを備えるフレーム転送装置において、キューイングバッファの輻輳に伴う不具合の発生を効率的に抑制するための技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題の少なくとも一部を解決するために、本願発明は、以下の態様または適用例として実現することが可能である。
【０００８】
［適用例１］
フレーム転送装置であって、
フレームを蓄積可能な３以上の複数のキューイングバッファと、
各前記キューイングバッファからフレームを読み出す相対的な優先順位を記憶する記憶部と、
前記優先順位に応じて前記キューイングバッファからフレームを読み出して転送をおこなうバッファ読み出し部と、
前記フレーム転送装置の外部から受信したフレームを前記フレームに含まれる情報に応じて前記複数のキューイングバッファのうちのいずれかに書き込むバッファ書き込み部と、を備え、
前記バッファ書き込み部は、いずれかの第１のキューイングバッファの輻輳状態を検出すると、所定の条件を満たしたときに、前記第１のキューイングバッファと、前記第１のキューイングバッファより優先順位が１つ上位の第２のキューイングバッファの優先順位の入れ替えをおこなう、フレーム転送装置。
【０００９】
この構成によれば、３以上のキューイングバッファを備えるフレーム転送装置において、いずれかのキューイングバッファが輻輳状態になると、輻輳状態のキューイングバッファの相対的な優先順位を１つ上げるため、キューイングバッファの輻輳に伴う不具合の発生を効率的に抑制することができる。
【００１０】
［適用例２］
適用例１に記載のフレーム転送装置において、
前記バッファ書き込み部は、前記第２のキューイングバッファが輻輳状態の場合には、前記所定の条件を満たさないものと判断して、前記優先順位の入れ替えをおこなわない、フレーム転送装置。
【００１１】
この構成によれば、キューイングバッファの輻輳状態を検出したときに、そのキューイングバッファより優先順位が１つ上位のキューイングバッファが既に輻輳状態である場合には、この２つのキューイングバッファの間では優先順位の入れ替えをおこなわないため、キューイングバッファの輻輳に伴う不具合の発生を効率的に抑制することができる。
【００１２】
［適用例３］
適用例１または適用例２に記載のフレーム転送装置において、
前記バッファ書き込み部は、前記第１のキューイングバッファの優先順位が、過去におこなわれた優先順位の入れ替えによって、１つ下がっている場合には、
（i）前記優先順位の入れ替えを解消するとともに、
（ii）前記第２のキューイングバッファが輻輳状態ではない場合には、前記第１のキューイングバッファと、前記第２のキューイングバッファとの優先順位の入れ替えをおこなう、フレーム転送装置。
【００１３】
この構成によれば、過去の優先順位の入れ替えによって、優先順位が１つ下がっているキューイングバッファが輻輳状態になると、このキューイングバッファの優先順位を１つ上げて元に戻し、さらに、このキューイングバッファよりも優先順位が１つ上位のキューイングバッファが輻輳状態ではない場合には、優先順位が１つ上位のキューイングバッファと優先順位の入れ替えをおこなうため、キューイングバッファの輻輳に伴う不具合の発生を効率的に抑制することができる。
【００１４】
［適用例４］
適用例１ないし適用例３のいずれかに記載のフレーム転送装置において、
前記バッファ読み出し部は、過去におこなわれた前記優先順位の入れ替えによって、優先順位が１つ上がっている前記第１のキューイングバッファの輻輳状態の解消を検出すると、前記優先順位の入れ替えを解消する、フレーム転送装置。
【００１５】
この構成によれば、過去の優先順位の入れ替えによって、優先順位が１つ上がっているキューイングバッファの輻輳状態が解消すると、このキューイングバッファの優先順位を１つ下げて元に戻すため、キューイングバッファの輻輳に伴う不具合の発生を効率的に抑制することができる。
【００１６】
［適用例５］
適用例１ないし適用例４のいずれかに記載のフレーム転送装置において、
前記記憶部には、前記各キューイングバッファの現在の優先順位を示す情報と、前記各キューイングバッファの初期の優先順位を示す情報とが記憶され、
前記バッファ書き込み部は、前記初期の優先順位において、前記第１のキューイングバッファより優先順位が１つ上位の第２のキューイングバッファの優先順位を、前記現在の優先順位を示す情報において、前記第１のキューイングバッファより優先順位が１つ下位になるように前記現在の優先順位を示す情報を書き換え、
前記バッファ読み出し部は、前記現在の優先順位に応じて、前記キューイングバッファからフレームを読み出して転送をおこなう、フレーム転送装置。
【００１７】
この構成によれば、記憶部には、各キューイングバッファの現在の優先順位を示す情報と、各キューイングバッファの初期の優先順位を示す情報を記憶することによって、キューイングバッファの輻輳に伴う不具合の発生を効率的に抑制することができる。
【００１８】
［適用例６］
フレームの転送方法であって、
記憶部に記憶されている優先順位に応じて３以上の複数のキューイングバッファからフレームを読み出して転送をおこなう工程と、
フレームに含まれる情報に応じてフレームを前記複数のキューイングバッファのうちのいずれかに書き込む工程と、
いずれかの第１のキューイングバッファの輻輳状態を検出すると、所定の条件を満たしたときに、前記第１のキューイングバッファと、前記第１のキューイングバッファより優先順位が１つ上位の第２のキューイングバッファの優先順位の入れ替えをおこなう工程と、を備えるフレームの転送方法。
【００１９】
この構成によれば、３以上のキューイングバッファを備えるフレーム転送装置において、いずれかのキューイングバッファが輻輳状態になると、輻輳状態のキューイングバッファの相対的な優先順位を１つ上げるため、キューイングバッファの輻輳に伴う不具合の発生を効率的に抑制することができる。
【００２０】
［適用例７］
フレーム転送装置であって、
フレームを蓄積可能な３以上の複数のキューイングバッファと、
各前記キューイングバッファからフレームを読み出す相対的な優先順位を記憶する記憶部と、
前記優先順位に応じて前記キューイングバッファからフレームを読み出して転送をおこなうバッファ読み出し部と、
前記フレーム転送装置の外部から受信したフレームを前記フレームに含まれる情報に応じて前記複数のキューイングバッファのうちのいずれかに書き込むバッファ書き込み部と、を備え、
前記記憶部は、各前記キューイングバッファのそれぞれに設定される輻輳閾値と輻輳解消閾値とを記憶し、
前記バッファ書き込み部は、
（i）フレームの蓄積量が前記輻輳閾値を超えたときに前記キューイングバッファの輻輳状態を検出し、フレームの蓄積量が前記輻輳解消閾値を下回ったときに前記キューイングバッファの輻輳状態の解消を検出し、
（ii）いずれかの第１のキューイングバッファの輻輳状態を検出すると、所定の条件を満たしたときに、前記第１のキューイングバッファと、前記第１のキューイングバッファより優先順位が１つ上位の第２のキューイングバッファの優先順位の入れ替えをおこない、
（iii）前記第１のキューイングバッファに設定された前記輻輳解消閾値を減少させる、フレーム転送装置。
【００２１】
この構成によれば、３以上のキューイングバッファを備えるフレーム転送装置において、いずれかのキューイングバッファが輻輳状態になると、輻輳状態のキューイングバッファの相対的な優先順位を１つ上げるため、キューイングバッファの輻輳に伴う不具合の発生を効率的に抑制することができる。また、いずれかのキューイングバッファが輻輳状態になると、輻輳状態となったキューイングバッファに設定された輻輳解消閾値を減少させるため、キューイングバッファの輻輳に伴う不具合の発生をより抑制することができる。
【００２２】
［適用例８］
フレーム転送装置であって、
フレームを蓄積可能な３以上の複数のキューイングバッファと、
各前記キューイングバッファからフレームを読み出す相対的な優先順位を記憶する記憶部と、
前記優先順位に応じて前記キューイングバッファからフレームを読み出して転送をおこなうバッファ読み出し部と、
前記フレーム転送装置の外部から受信したフレームを前記フレームに含まれる情報に応じて前記複数のキューイングバッファのうちのいずれかに書き込むバッファ書き込み部と、を備え、
前記記憶部は、各前記キューイングバッファのそれぞれに設定される輻輳閾値と輻輳解消閾値とを記憶し、
前記バッファ書き込み部は、
（i）フレームの蓄積量が前記輻輳閾値を超えたときに前記キューイングバッファの輻輳状態を検出し、フレームの蓄積量が前記輻輳解消閾値を下回ったときに前記キューイングバッファの輻輳状態の解消を検出し、
（ii）いずれかの第１のキューイングバッファの輻輳状態を検出すると、所定の条件を満たしたときに、前記第１のキューイングバッファと、前記第１のキューイングバッファより優先順位が１つ上位の第２のキューイングバッファの優先順位の入れ替えをおこない、
（iii）所定の時間以上輻輳状態となっていないキューイングバッファを検出すると、前記キューイングバッファに設定された前記輻輳閾値を増加させる、フレーム転送装置。
【００２３】
この構成によれば、３以上のキューイングバッファを備えるフレーム転送装置において、いずれかのキューイングバッファが輻輳状態になると、輻輳状態のキューイングバッファの相対的な優先順位を１つ上げるため、キューイングバッファの輻輳に伴う不具合の発生を効率的に抑制することができる。また、所定の時間以上輻輳状態となっていないキューイングバッファを検出すると、そのキューイングバッファに設定された輻輳閾値を増加させるため、キューイングバッファの輻輳に伴う不具合の発生をより抑制することができる。
【００２４】
［適用例９］
フレームの転送方法であって、
記憶部に記憶されている優先順位に応じて３以上の複数のキューイングバッファからフレームを読み出して転送をおこなう工程と、
フレームに含まれる情報に応じてフレームを前記複数のキューイングバッファのうちのいずれかに書き込む工程と、
フレームの蓄積量が輻輳閾値を超えたときにキューイングバッファの輻輳状態を検出し、フレームの蓄積量が輻輳解消閾値を下回ったときにキューイングバッファの輻輳状態の解消を検出する工程と、
いずれかの第１のキューイングバッファの輻輳状態を検出すると、所定の条件を満たしたときに、前記第１のキューイングバッファと、前記第１のキューイングバッファより優先順位が１つ上位の第２のキューイングバッファの優先順位の入れ替えをおこない、前記第１のキューイングバッファに設定されている輻輳解消閾値を減少させる工程と、を備えるフレームの転送方法。
【００２５】
この構成によれば、３以上のキューイングバッファを備えるフレーム転送装置において、いずれかのキューイングバッファが輻輳状態になると、輻輳状態のキューイングバッファの相対的な優先順位を１つ上げるため、キューイングバッファの輻輳に伴う不具合の発生を効率的に抑制することができる。また、いずれかのキューイングバッファが輻輳状態になると、輻輳状態となったキューイングバッファに設定された輻輳解消閾値を減少させるため、キューイングバッファの輻輳に伴う不具合の発生をより抑制することができる。
【００２６】
［適用例１０］
フレームの転送方法であって、
記憶部に記憶されている優先順位に応じて３以上の複数のキューイングバッファからフレームを読み出して転送をおこなう工程と、
フレームに含まれる情報に応じてフレームを前記複数のキューイングバッファのうちのいずれかに書き込む工程と、
フレームの蓄積量が輻輳閾値を超えたときにキューイングバッファの輻輳状態を検出し、フレームの蓄積量が輻輳解消閾値を下回ったときにキューイングバッファの輻輳状態の解消を検出する工程と、
いずれかの第１のキューイングバッファの輻輳状態を検出すると、所定の条件を満たしたときに、前記第１のキューイングバッファと、前記第１のキューイングバッファより優先順位が１つ上位の第２のキューイングバッファの優先順位の入れ替えをおこなう工程と、
所定の時間以上輻輳状態となっていないキューイングバッファを検出すると、前記キューイングバッファに設定された輻輳閾値を増加させる工程と、を備えるフレームの転送方法。
【００２７】
この構成によれば、３以上のキューイングバッファを備えるフレーム転送装置において、いずれかのキューイングバッファが輻輳状態になると、輻輳状態のキューイングバッファの相対的な優先順位を１つ上げるため、キューイングバッファの輻輳に伴う不具合の発生を効率的に抑制することができる。また、所定の時間以上輻輳状態となっていないキューイングバッファを検出すると、そのキューイングバッファに設定された輻輳閾値を増加させるため、キューイングバッファの輻輳に伴う不具合の発生をより抑制することができる。
【００２８】
なお、本発明は、上記以外の種々の形態で実現することが可能であり、例えば、フレーム転送装置を含んで構成されるネットワークシステム、フレーム転送装置の制御方法、キューイングバッファの制御方法、これらの制御方法を実現するためのコンピュータープログラム、および、そのコンピュータープログラムを記録した記憶媒体等の形態で実現することができる。また、本発明に係るフレーム転送装置は、適宜、他の部材と組み合わせて適用することができる。
【図面の簡単な説明】
【００２９】
【図１】第１実施例に係るフレーム転送装置を含んで構成されるネットワークシステムを例示した説明図である。
【図２】フレーム転送装置の概略構成を説明するための説明図である。
【図３】フレームが属する優先クラスの特定方法を説明するための説明図である。
【図４】バッファ状態管理テーブルの内容を説明するための説明図である。
【図５】キューイングバッファの輻輳状態の検出方法を説明するための説明図である。
【図６】キューイングバッファの輻輳状態の解消を検出する方法を説明するための説明図である。
【図７】バッファ書き込み部１５０の処理の流れを示したフローチャートである。
【図８】図７のステップＳ１０７における優先度変更設定解除処理の流れを示したフローチャートである。
【図９】ステップＳ１０７の優先度変更設定解除処理時のバッファ状態管理テーブルを説明するための説明図である。
【図１０】図７のステップＳ１１１における優先度変更設定処理の流れを示したフローチャートである。
【図１１】優先度変更設定処理時のバッファ状態管理テーブルを説明するための説明図である。
【図１２】バッファ読み出し部１６０の処理の流れを示したフローチャートである。
【図１３】図１２のステップＳ４０８における優先度変更設定解除処理の流れを示したフローチャートである。
【図１４】ステップＳ４０８の優先度変更設定解除処理時のバッファ状態管理テーブルを説明するための説明図である。
【図１５】フレーム転送装置の動作を例示するための第１の説明図である。
【図１６】図１５の動作時のバッファ状態管理テーブルを説明するための説明図である。
【図１７】フレーム転送装置の動作を例示するための第２の説明図である。
【図１８】図１７の動作時のバッファ状態管理テーブルを説明するための説明図である。
【図１９】フレーム転送装置の動作を例示するための第３の説明図である。
【図２０】図１９の動作時のバッファ状態管理テーブルを説明するための説明図である。
【図２１】第２実施例に係るフレーム転送装置の概略構成を説明するための説明図である。
【図２２】バッファ閾値管理テーブルの内容を説明するための説明図である。
【図２３】第２実施例におけるバッファ書き込み部１５０の処理の流れを示したフローチャートである。
【図２４】図２３のステップＳ１２０における輻輳閾値Ｔｈ１変更判定処理の流れを示したフローチャートである。
【図２５】ステップＳ１２０の輻輳閾値Ｔｈ１変更判定処理時のバッファ閾値管理テーブルを説明するための説明図である。
【図２６】ステップＳ１２０の輻輳閾値Ｔｈ１変更判定処理時のバッファ閾値管理テーブルを説明するための説明図である。
【図２７】図２３のステップＳ１４０における輻輳閾値Ｔｈ１変更解除処理の流れを示したフローチャートである。
【図２８】ステップＳ１４０の輻輳閾値Ｔｈ１変更解除処理時のバッファ閾値管理テーブルを説明するための説明図である。
【図２９】ステップＳ１４０の輻輳閾値Ｔｈ１変更解除処理時のバッファ閾値管理テーブルを説明するための説明図である。
【図３０】図２３のステップＳ１５０における輻輳解消閾値Ｔｈ２変更判定処理の流れを示したフローチャートである。
【図３１】ステップＳ１５０の輻輳解消閾値Ｔｈ２変更判定処理時のバッファ閾値管理テーブルを説明するための説明図である。
【図３２】ステップＳ１５０の輻輳解消閾値Ｔｈ２変更判定処理時のバッファ閾値管理テーブルを説明するための説明図である。
【図３３】図３０のステップＳ１６０における下位の優先クラスに対する輻輳解消閾値Ｔｈ２変更解除処理の流れを示したフローチャートである。
【図３４】ステップＳ１６０の輻輳解消閾値Ｔｈ２変更解除処理時のバッファ閾値管理テーブルを説明するための説明図である。
【図３５】第２実施例におけるバッファ読み出し部１６０の処理の流れを示したフローチャートである。
【図３６】図３５のステップＳ４２０における対象優先クラスに対する輻輳解消閾値Ｔｈ２変更解除処理の流れを示したフローチャートである。
【図３７】ステップＳ４２０の輻輳解消閾値Ｔｈ２変更解除処理時のバッファ閾値管理テーブルを説明するための説明図である。
【図３８】第２実施例のフレーム転送装置の動作を例示するための第１の説明図である。
【図３９】図３８の動作時のバッファ閾値管理テーブルを説明するための説明図である。
【図４０】第２実施例のフレーム転送装置の動作を例示するための第２の説明図である。
【図４１】図４０の動作時のバッファ閾値管理テーブルを説明するための説明図である。
【図４２】第２実施例のフレーム転送装置の動作を例示するための第３の説明図である。
【図４３】図４２の動作時のバッファ閾値管理テーブルを説明するための説明図である。
【図４４】第２実施例のフレーム転送装置の動作を例示するための第４の説明図である。
【図４５】図４４の動作時のバッファ閾値管理テーブルを説明するための説明図である。
【図４６】第２実施例のフレーム転送装置の動作を例示するための第５の説明図である。
【図４７】図４６の動作時のバッファ閾値管理テーブルを説明するための説明図である。
【発明を実施するための形態】
【００３０】
Ａ．第１実施例：
図１は、第１実施例に係るフレーム転送装置を含んで構成されるネットワークシステムを例示した説明図である。ネットワークシステム１０は、会社内等において構築されるシステムであって、フレーム転送装置１００と、ユーザ端末２００と、サーバ３００と、ストレージ４００と、設定監視用端末５００と、を備えている。フレーム転送装置１００は、ユーザ端末２００と、サーバ３００と、ストレージ４００と、設定監視用端末５００にそれぞれ接続され、各装置間のフレームのやりとりの中継をおこなう。
【００３１】
フレーム転送装置１００は、各装置から受信したフレームを転送の優先度に応じて複数のクラスに分類し、優先度の高いクラスに属するフレームを優先的に転送する。一方、フレーム転送装置１００は、クラスごとのフレームの受信量に応じて一時的にクラスの優先度を切り替える。以後、本実施例では、上述したように転送の優先度に応じたフレームの分類を「優先クラス」または単に「クラス」と呼ぶ。フレーム転送装置１００の具体的な動作については後述する。
【００３２】
サーバ３００は、ユーザ端末２００からのアプリケーションの要求に応じて、ストレージ４００に格納されている画像データや動画データ等の種々のデータを取得し、ユーザ端末２００に転送する。設定監視用端末５００は、フレーム転送装置１００の設定や状態の管理をおこなうために使用される。
【００３３】
図２は、フレーム転送装置の概略構成を説明するための説明図である。
フレーム転送装置１００は、フレーム転送部１１０と、複数の回線インターフェース部１３１〜１３３とを備えている。フレーム転送部１１０は、回線インターフェース部１３１〜１３３とそれぞれ接続され、回線インターフェース部１３１〜１３３間のフレーム転送をおこなう。本実施例では、回線インターフェース部１３１は、ストレージ４００と接続され、回線インターフェース部１３２は、サーバ３００と接続され、回線インターフェース部１３３は、ユーザ端末２００と接続されている。
【００３４】
フレーム転送部１１０は、キューイングバッファ群１４０と、バッファ書き込み部１５０と、バッファ読み出し部１６０と、優先クラステーブル１７０と、バッファ状態管理テーブル１８０と、を備えている。キューイングバッファ群１４０は、フレームを格納するための複数（ここでは４つ）のキューイングバッファ１４１〜１４４により構成されている。以後、４つのキューイングバッファ１４１〜１４４をそれぞれ、第１キューイングバッファ１４１、第２キューイングバッファ１４２、第３キューイングバッファ１４３、第４キューイングバッファ１４４とも呼ぶ。優先クラステーブル１７０とバッファ状態管理テーブル１８０は、メモリなどによって構成される記憶部１９０に記憶されている。
【００３５】
各キューイングバッファ１４１〜１４４は、互いに優先度の異なる４つの優先クラスとそれぞれ一対一に対応付けられている。すなわち、各キューイングバッファ１４１〜１４４には、バッファ書き込み部１５０によって、同じ優先クラスに属するフレームが格納される。また、バッファ読み出し部１６０によって、優先度の高い優先クラスのキューイングバッファから優先的にフレームが読み出され、転送される。
【００３６】
バッファ書き込み部１５０は、フレーム転送装置１００がフレームを受信すると、フレームに含まれる情報（以後「フレーム内情報」とも呼ぶ）に応じた優先クラスのキューイングバッファに格納する。バッファ書き込み部１５０は、優先クラステーブル１７０を参照することによってフレームが属する優先クラスを特定する。
【００３７】
図３は、フレームが属する優先クラスの特定方法を説明するための説明図である。図３（ａ）は、フレームの概略構造を説明するための説明図である。図３（ａ）に示すように、フレームには、宛先、送信元、ユーザ種別、アプリケーション種別、アプリケーションデータなどのフレーム内情報が含まれている。アプリケーション種別とは、アプリケーションデータの種別を識別可能な情報であり、アプリケーションデータが、例えば、音声データ、動画データ、静止画像データ、文字データなどのいずれであるかを特定するための情報である。本実施例では、このアプリケーション種別として、ＴＣＰやＵＤＰプロトコルのヘッダに含まれるポート番号が利用される。バッファ書き込み部１５０は、例えば、フレームからアプリケーション種別を読み出し、優先クラステーブル１７０を参照することによって、そのフレームが属する優先クラスを特定する。
【００３８】
図３（ｂ）は、優先クラステーブルの内容を説明するための説明図である。優先クラステーブル１７０は、アプリケーション種別Ｆ１１と、優先クラスＦ１２との２つのフィールドを備え、アプリケーション種別と優先クラスとの対応関係が示されている。ここでは、優先クラスとして、優先クラスに対応するキューイングバッファ１４１〜１４４が示されている。優先クラステーブル１７０では、例えば、エントリＥ１１において、音声データとキューイングバッファ１４１とが対応付けられている。また、エントリＥ１２において、動画データとキューイングバッファ１４２とが対応付けられている。バッファ書き込み部１５０は、フレーム転送装置１００が受信したフレームが音声データであることを特定すると、優先クラステーブル１７０を参照してそのフレームをキューイングバッファ１４１に格納する。なお、優先クラステーブル１７０の内容は、設定監視用端末５００によって任意に設定可能に構成されていてもよい。
【００３９】
バッファ読み出し部１６０は、キューイングバッファ１４１〜１４４に格納されているフレームを読み出して転送する。このとき、バッファ読み出し部１６０は、優先度の高い優先クラスに対応するキューイングバッファから優先的にフレームを読みだし、転送をおこなう。バッファ読み出し部１６０は、バッファ状態管理テーブル１８０を参照することによって、各キューイングバッファに対応する優先クラスの優先度を特定する。
【００４０】
図４は、バッファ状態管理テーブルの内容を説明するための説明図である。バッファ状態管理テーブル１８０は、優先クラスＦ２１と、現在優先度Ｆ２２と、初期優先度Ｆ２３と、輻輳フラグＦ２４と、優先度変更設定フラグＦ２５の５つのフィールドを備えている。優先クラスＦ２１は、優先クラステーブル１７０の優先クラスＦ１２（図３）と同様に、キューイングバッファ１４１〜１４４を示している。
【００４１】
現在優先度Ｆ２２は、各優先クラスの相対的な優先順位を示している。すなわち、バッファ読み出し部１６０によって読み出されるキューイングバッファの優先順位が示されている。ここでは、現在優先度の値が大きいほどがより優先順位が高いことを示している。よって、図４では、第１キューイングバッファ１４１が最も優先順位が高く、順に優先順位が下がり、第４キューイングバッファ１４４が最も優先順位が低い状態が示されている。現在優先度Ｆ２２は、後述するように、バッファ書き込み部１５０やバッファ読み出し部１６０によって値が適宜書き替えられる。初期優先度Ｆ２３は、設定監視用端末５００を介して予め設定された各優先クラスの相対的な優先順位であり、現在優先度Ｆ２２の初期設定値として用いられる。
【００４２】
輻輳フラグＦ２４は、各優先クラスのキューイングバッファが輻輳状態にあるか否かを示している。ここでは、輻輳状態ではない優先クラスに「０」がセットされ、輻輳状態となったときに「１」がセットされる。輻輳フラグＦ２４は、後述するように、バッファ書き込み部１５０がキューイングバッファの輻輳状態を検出すると、対応する優先クラスに「１」がセットされる。また、輻輳フラグＦ２４は、後述するように、バッファ読み出し部１６０がキューイングバッファの輻輳状態の解消を検出すると、対応する優先クラスに「０」がセットされる。輻輳状態の解消とは、輻輳状態であったキューイングバッファが輻輳状態でなくなったことをいう。
【００４３】
優先度変更設定フラグＦ２５は、各優先クラスにおいて、優先度変更設定がおこなわれている否かを示している。優先度変更設定とは、隣接する優先クラスの現在優先度が一時的に入れ替えられた状態に設定されることであり、後に詳述する。図４では、優先度変更設定によって一時的に現在優先度が低下している優先クラスに「１」がセットされ、それ以外の優先クラスに「０」がセットされている。優先度変更設定フラグＦ２５は、後述するように、バッファ書き込み部１５０とバッファ読み出し部１６０によって書き替えられる。
【００４４】
図５は、キューイングバッファの輻輳状態の検出方法を説明するための説明図である。図５には、フレームの格納によって輻輳状態になる第２キューイングバッファ１４２が一例として示されている。第２キューイングバッファ１４２を含む各キューイングバッファ１４１〜１４４には、データの蓄積量が所定量を超えているか否かを判定するための輻輳閾値Ｔｈ１が予め設定されている。バッファ書き込み部１５０は、第２キューイングバッファ１４２にフレームを格納した後に、第２キューイングバッファ１４２に蓄積されているフレームデータの蓄積量が輻輳閾値Ｔｈ１を超えたか否かを判定する。
【００４５】
図５の下方に示すように、フレームの蓄積量が輻輳閾値Ｔｈ１を超える場合には、バッファ書き込み部１５０は、第２キューイングバッファ１４２について輻輳状態を検出する。バッファ書き込み部１５０は、輻輳状態を検出すると、バッファ状態管理テーブル１８０の第２キューイングバッファ１４２に対応する優先クラスの輻輳フラグＦ２４を「１」にセットする。バッファ書き込み部１５０は、すべてのキューイングバッファ１４１〜１４４について輻輳状態になっているか否かの検出をおこなう。なお、輻輳閾値Ｔｈ１は、設定監視用端末５００によって予め任意の値に設定することができる。また、キューイングバッファ１４１〜１４４ごとに異なる値を設定するともできる。また、設定監視用端末５００によって、キューイングバッファ１４１〜１４４ごとに設定されている輻輳閾値Ｔｈ１と、データの蓄積量が確認できるようにしてもよい。
【００４６】
図６は、キューイングバッファの輻輳状態の解消を検出する方法を説明するための説明図である。図６には、フレームの送出によって輻輳状態が解消した第２キューイングバッファ１４２が一例として示されている。第２キューイングバッファ１４２を含む各キューイングバッファ１４１〜１４４には、データの蓄積量が所定量を下回っているか否か判定するための輻輳解消閾値Ｔｈ２が予め設定されている。輻輳解消閾値Ｔｈ２は輻輳閾値Ｔｈ１よりも小さい値になるように設定されている（Ｔｈ２＜Ｔｈ１）。
【００４７】
バッファ読み出し部１６０は、輻輳状態の第２キューイングバッファ１４２からフレームを読み出した後に、第２キューイングバッファ１４２に蓄積されているフレームデータの蓄積量が輻輳解消閾値Ｔｈ２を下回ったか否かを判定する。図６の下方に示すように、フレームの蓄積量が輻輳解消閾値Ｔｈ２を下回った場合には、バッファ読み出し部１６０は、第２キューイングバッファ１４２について輻輳状態の解消を検出する。バッファ読み出し部１６０は、輻輳状態の解消を検出すると、バッファ状態管理テーブル１８０の第２キューイングバッファ１４２に対応する優先クラスの輻輳フラグＦ２４を「０」にセットする。
【００４８】
バッファ読み出し部１６０は、すべてのキューイングバッファ１４１〜１４４について輻輳状態が解消しているか否かの検出をおこなう。なお、輻輳解消閾値Ｔｈ２についても、設定監視用端末５００によって予め任意の値に設定することができる。また、キューイングバッファ１４１〜１４４ごとに異なる値を設定するともできる。また、設定監視用端末５００によって、キューイングバッファ１４１〜１４４ごとに設定されている輻輳解消閾値Ｔｈ２が確認できるようにしてもよい。また、輻輳解消閾値Ｔｈ２と輻輳閾値Ｔｈ１は、同じ値であってもよい（Ｔｈ２＝Ｔｈ１）。
【００４９】
図７は、バッファ書き込み部１５０の処理の流れを示したフローチャートである。バッファ書き込み部１５０は、回線インターフェース部１３１〜１３３のいずれかがフレームを受信すると、回線インターフェース部からフレームを取り出す（ステップＳ１０１）。
【００５０】
バッファ書き込み部１５０は、取り出したフレームからアプリケーション種別を読み出す。上述したように、ここでは、ＴＣＰやＵＤＰプロトコルのヘッダに含まれるポート番号が読み出される。その後、バッファ書き込み部１５０は、優先クラステーブル１７０（図３）を参照して、読み出したアプリケーション種別からそのフレームが属する優先クラスを特定する（ステップＳ１０２）。以後、ステップＳ１０２において特定された優先クラスを「対象優先クラス」とも呼ぶ。
【００５１】
バッファ書き込み部１５０は、対象優先クラスに対応するキューイングバッファにそのフレームを書き込む（ステップＳ１０３）。書き込みをおこなった後、バッファ書き込み部１５０は、このキューイングバッファが輻輳状態となったか否かを判定する（ステップＳ１０４）。輻輳状態か否かの判定方法は、図５を用いて説明したとおりである。
【００５２】
バッファ書き込み部１５０は、このキューイングバッファの輻輳状態を検出しなかった場合（ステップＳ１０４：ＮＯ）、ステップＳ１０１に戻り、再度、回線インターフェース部１３１〜１３３のいずれかがフレームを受信するまで待機する。一方、輻輳状態を検出した場合（ステップＳ１０４：ＹＥＳ）、バッファ書き込み部１５０は、バッファ状態管理テーブル１８０（図４）を参照して、対象優先クラスの輻輳フラグＦ２４が「１」であるか否かを判定する（ステップＳ１０５）。
【００５３】
対象優先クラスの輻輳フラグＦ２４が「０」である場合（ステップＳ１０５：ＮＯ）、この対象優先クラスの輻輳フラグＦ２４を「１」にセットする（ステップＳ１０６）。すなわち、今回のフレームの書き込みによって、キューイングバッファが新たに輻輳状態になったため、対応する優先クラスの輻輳フラグＦ２４が「０」から「１」に切り替えられたことになる。
【００５４】
バッファ書き込み部１５０は、対象優先クラスの輻輳フラグＦ２４を「１」にセットした後、対象優先クラスと、対象優先クラスより初期優先度の低い（下位の）優先クラスに対する優先度変更設定解除処理をおこなう（ステップＳ１０７）。対象優先クラスと、対象優先クラスより下位の優先クラスに対する優先度変更設定解除処理とは、対象優先クラスや対象優先クラスより初期優先度Ｆ２３の低い（下位の）優先クラスにおいて優先度変更設定がおこなわれている場合に、この設定を解除するための処理である。なお、優先度変更設定がおこなわれている優先クラスか否かについては、優先度変更設定フラグＦ２５が「１」となっているか否かで判別することができる。優先クラスである。対象優先クラス以下の優先クラスに対する優先度変更設定解除処理の詳細については、図８を用いて後述する。
【００５５】
なお、バッファ状態管理テーブル１８０に図４の内容が設定された状態で、第２キューイングバッファ１４２が対象優先クラスに対応する場合、対象優先クラスよりも下位の優先クラスとは、第３キューイングバッファ１４３と第４キューイングバッファ１４４にそれぞれ対応する優先クラスが該当する。一方、第１キューイングバッファ１４１と対応する優先クラスは、対象優先クラスよりも上位の優先クラスに該当する。
【００５６】
ステップＳ１０５において、対象優先クラスの輻輳フラグＦ２４が既に「１」である場合、または、ステップＳ１０７の処理をおこなった後、バッファ書き込み部１５０は、対象優先クラスよりも初期優先度Ｆ２３の高い（上位の）優先クラスが存在するか否かを判定する（ステップＳ１０８）。具体的には、バッファ書き込み部１５０は、バッファ状態管理テーブル１８０の初期優先度Ｆ２３を参照して、対象優先クラスよりも上位の優先クラスが存在するか否かを判定する。上位の優先クラスが存在しない場合（ステップＳ１０８：ＮＯ）、すなわち、対象優先クラスが第１キューイングバッファ１４１と対応している場合、バッファ書き込み部１５０の処理は、ステップＳ１０１に戻る。
【００５７】
対象優先クラスよりも上位の優先クラスが存在する場合（ステップＳ１０８：ＹＥＳ）、バッファ書き込み部１５０の処理は、さらに、対象優先クラスよりも一つ上位（直上）の優先クラスの輻輳フラグＦ２４が「１」か否かを判定する（ステップＳ１０９）。直上の優先クラスの輻輳フラグＦ２４が「１」である場合（ステップＳ１０９：ＹＥＳ）、バッファ書き込み部１５０の処理は、ステップＳ１０１に戻る。
【００５８】
直上の優先クラスの輻輳フラグＦ２４が「０」である場合（ステップＳ１０９：ＮＯ）、バッファ書き込み部１５０は、対象優先クラスより上位のいずれかの優先クラスにおいて優先度変更設定がおこなわれているか否かを判定する（ステップＳ１１０）。この判定は、対象優先クラスより上位のいずれかの優先クラスにおいて、優先度変更設定フラグＦ２５が「１」となっているか否かによっておこなうことができる。
【００５９】
対象優先クラスより上位の優先クラスのいずれかにおいて優先度変更設定がおこなわれている場合には（ステップＳ１１０：ＹＥＳ）、バッファ書き込み部１５０の処理は、ステップＳ１０１に戻る。一方、対象優先クラスより上位のすべての優先クラスにおいて優先度変更設定がおこなわれていない場合には（ステップＳ１１０：ＮＯ）、バッファ書き込み部１５０は、優先度変更設定処理をおこなう（ステップＳ１１１）。優先度変更設定処理とは、対象優先クラスと、対象優先クラスの直上の優先クラスの現在優先度を入れ替える処理である。優先度変更設定処理の詳細については、図１０を用いて後述する。優先度変更設定処理を実行した後、バッファ書き込み部１５０の処理は、ステップＳ１０１に戻る。
【００６０】
図８は、図７のステップＳ１０７における優先度変更設定解除処理の流れを示したフローチャートである。図９は、ステップＳ１０７の優先度変更設定解除処理時のバッファ状態管理テーブルを説明するための説明図である。バッファ書き込み部１５０は、この優先度変更設定解除処理によって、対象優先クラスと、対象優先クラスより下位の各優先クラスにおいて、現在優先度と初期優先度とが等しくなるように設定する。以下に優先度変更設定解除処理の一例を示す。ここでは、バッファ書き込み部１５０は、優先クラスのうちのいずれか１つを設定登録可能な優先クラス登録部を備えているものとして説明する。なお、優先クラス登録部は、バッファ書き込み部１５０が優先クラスのうちのいずれか１つを識別可能な構成であればよく、優先クラスの識別情報を記憶する記憶部やフラグなどで構成することができる。
【００６１】
バッファ書き込み部１５０は、まず、優先クラス登録部に対象優先クラスを登録する（ステップＳ２０１）。この対象優先クラスは、図７のステップＳ１０５における対象優先クラスと同じものである。ここでは、図９の第２キューイングバッファ１４２を対象優先クラスとして説明する。
【００６２】
バッファ書き込み部１５０は、バッファ状態管理テーブル１８０を参照し、優先クラス登録部に登録された優先クラス（以後「登録優先クラス」とも呼ぶ）の優先度変更設定フラグＦ２５が「１」であるか否かを判定する（ステップＳ２０２）。初回のこのステップでは、優先クラス登録部には対象優先クラスが登録されているため、対象優先クラスの優先度変更設定フラグＦ２５が「１」であるか否かが判定される。図９（ａ）では、対象優先クラス（第２キューイングバッファ１４２）の優先度変更設定フラグＦ２５は「１」となっている。
【００６３】
登録優先クラスの優先度変更設定フラグＦ２５が「１」である場合（ステップＳ２０２：ＹＥＳ）、バッファ書き込み部１５０は、登録優先クラスの現在優先度Ｆ２２を登録優先クラスの初期優先度Ｆ２３と同じ値にセットする（ステップＳ２０３）。具体的には、バッファ書き込み部１５０は、バッファ状態管理テーブル１８０を参照して、登録優先クラスの初期優先度Ｆ２３を読み込み、同じクラスの現在優先度Ｆ２２に書き込む。その結果、図９（ｂ）に示すように、登録優先クラスの現在優先度と初期優先度とが等しくなる。
【００６４】
さらに、バッファ書き込み部１５０は、登録優先クラスの一つ下位の（直下の）優先クラスの現在優先度Ｆ２２を同じクラスの初期優先度Ｆ２３と同じ値にセットする（ステップＳ２０４）これにより、図９（ｃ）に示すように、登録優先クラスの一つ下位の優先クラスにおいても現在優先度と初期優先度とが等しくなる。その後、バッファ書き込み部１５０は、図９（ｄ）に示すように、登録優先クラスの優先度変更設定フラグＦ２５を「０」にセットする（ステップＳ２０５）。
【００６５】
ステップＳ２０２において、登録優先クラスの優先度変更設定フラグＦ２５が「０」である場合、または、ステップＳ２０５の処理の後、バッファ書き込み部１５０は、登録優先クラスより下位の優先クラスが存在するか否かを判定する（ステップＳ２０６）。登録優先クラスより下位の優先クラスが存在しない場合（ステップＳ２０６：ＮＯ）処理を終了する。
【００６６】
一方、登録優先クラスより下位の優先クラスが存在する場合（ステップＳ２０６：ＹＥＳ）、バッファ書き込み部１５０は、現在の登録優先クラスよりも一つ下位の（直下の）優先クラスを新たな登録優先クラスとして優先クラス登録部に登録する（ステップＳ２０７）。その後、ステップＳ２０２に戻り、新たな登録優先クラスに対して同様の処理をおこなう。上述した優先度変更設定解除処理により、対象優先クラスおよび対象優先クラスより下位のすべての優先クラスにおいて、優先度変更設定フラグが「０」にセットされ、現在優先度Ｆ２２が初期優先度Ｆ２３と等しくなる。
【００６７】
図１０は、図７のステップＳ１１１における優先度変更設定処理の流れを示したフローチャートである。図１１は、優先度変更設定処理時のバッファ状態管理テーブルを説明するための説明図である。バッファ書き込み部１５０は、この優先度変更設定処理によって、対象優先クラスの現在優先度と、直上の優先クラスの現在優先度との入れ替えをおこなう。以下に優先度変更設定処理の一例を示す。ここでは、図１１（ａ）の第３キューイングバッファ１４３を対象優先クラスとして説明する。
【００６８】
バッファ書き込み部１５０は、対象優先クラスよりも一つ上位（直上）の優先クラスの現在優先度Ｆ２２を対象優先クラスの初期優先度Ｆ２３と同じ値にセットする（ステップＳ３０１）。具体的には、図１１（ｂ）に示すように、バッファ書き込み部１５０は、バッファ状態管理テーブル１８０を参照して、対象優先クラスの初期優先度Ｆ２３を読み込み、直上の優先クラスの現在優先度Ｆ２２に書き込む。
【００６９】
また、バッファ書き込み部１５０は、対象優先クラスの現在優先度Ｆ２２を直上の優先クラスの初期優先度Ｆ２３と同じ値にセットする（ステップＳ３０２）。具体的には、図１１（ｃ）に示すように、バッファ書き込み部１５０は、バッファ状態管理テーブル１８０を参照して、直上の優先クラスの初期優先度Ｆ２３を読み込み、対象優先クラスの現在優先度Ｆ２２に書き込む。これにより、対象優先クラスの直上の優先クラスの現在優先度Ｆ２２と、対象優先クラスの現在優先度Ｆ２２が入れ替わる。すなわち、対象優先クラスの直上の優先クラスと、対象優先クラスの優先順位が入れ替わる。
【００７０】
その後、バッファ書き込み部１５０は、図１１（ｄ）に示すように、対象優先クラスの直上の優先クラスの優先度変更設定フラグＦ２５を「１」にセットする。すなわち、初期優先度が下位の優先クラスよりも高いが、現在優先度が低い状態の優先クラスの優先度変更設定フラグＦ２５に「１」がセットされる。以上により優先度変更設定処理が終了する。
【００７１】
図１２は、バッファ読み出し部１６０の処理の流れを示したフローチャートである。バッファ読み出し部１６０は、各キューイングバッファ１４１〜１４４について、フレームが蓄積されているか否かを判定する（ステップＳ４０１）。蓄積されている場合には、バッファ読み出し部１６０は、蓄積されているキューイングバッファのうち、現在優先度Ｆ２２が最も高いキューイングバッファから優先して蓄積されたフレームを読みだし、回線インターフェース部１３１〜１３３のいずれかに送出する（ステップＳ４０２）。バッファ読み出し部１６０は、読み出したフレームに含まれる宛先情報（図３）を参照して送出先の回線インターフェース部を決定する。ここで、「優先して読み出す」とは、現在優先度のより高いキューイングバッファにおいてフレームの蓄積がなくなるまで読み出しを継続し、フレームの蓄積がなくなると順次現在優先度の低いキューイングバッファの読み出しをおこなうことをいう。
【００７２】
バッファ読み出し部１６０は、ステップＳ４０２においてフレームを読み出した優先クラス（以後「対象優先クラス」とも呼ぶ）の輻輳フラグＦ２４が「１」であるか否かを判定する（ステップＳ４０３）。対象優先クラスの輻輳フラグＦ２４が「０」である場合（ステップＳ４０３：ＮＯ）、バッファ読み出し部１６０の処理は、ステップＳ４０１に戻る。
【００７３】
一方、対象優先クラスの輻輳フラグＦ２４が「１」である場合（ステップＳ４０３：ＹＥＳ）、バッファ読み出し部１６０は、対象優先クラスと対応するキューイングバッファの輻輳状態が解消しているか否かを判定する（ステップＳ４０４）。対応するキューイングバッファの輻輳状態が解消していない場合（ステップＳ４０４：ＮＯ）バッファ読み出し部１６０の処理は、ステップＳ４０１に戻る。
【００７４】
一方、対応するキューイングバッファの輻輳状態が解消している場合（ステップＳ４０４：ＹＥＳ）、バッファ読み出し部１６０は、対象優先クラスの輻輳フラグＦ２４を「０」にセットする（ステップＳ４０５）。
【００７５】
対象優先クラスの輻輳フラグＦ２４を「０」にセットした後、バッファ読み出し部１６０は、対象優先クラスよりも初期優先度の高い（上位の）優先クラスが存在するか否かを判定する（ステップＳ４０６）。対象優先クラスよりも上位の優先クラスが存在する場合（ステップＳ４０６：ＹＥＳ）、バッファ読み出し部１６０は、対象優先クラスよりも一つ上位（直上）の優先クラスの優先度変更設定フラグＦ２５が「１」か否かを判定する（ステップＳ４０７）。
【００７６】
直上の優先クラスの優先度変更設定フラグＦ２５が「１」である場合（ステップＳ４０７：ＹＥＳ）、バッファ読み出し部１６０は、直上の優先クラスに対する優先度変更設定解除処理をおこなう（ステップＳ４０８）。直上の優先クラスに対する優先度変更設定解除処理とは、対象優先クラスより初期優先度が１つ高い（直上の）優先クラスにおいて優先度変更設定がおこなわれている場合に、この設定を解除するための処理である。直上の優先クラスに対する優先度変更設定解除処理の詳細については、図１３を用いて後述する。
【００７７】
ステップＳ４０６において、対象優先クラスよりも上位の優先クラスが存在しない場合（ステップＳ４０６：ＮＯ）、ステップＳ４０７において、直上の優先クラスの優先度変更設定フラグＦ２５が「０」である場合（ステップＳ４０７：ＮＯ）、および、ステップＳ４０８の処理が終了したときに、バッファ読み出し部１６０の処理は、ステップＳ４０１に戻る。
【００７８】
図１３は、図１２のステップＳ４０８における優先度変更設定解除処理の流れを示したフローチャートである。図１４は、ステップＳ４０８の優先度変更設定解除処理時のバッファ状態管理テーブルを説明するための説明図である。バッファ読み出し部１６０は、この優先度変更設定解除処理によって、対象優先クラスの現在優先度と、対象優先クラスの直上の優先クラスの現在優先度とが入れ替わっている状態を解消する。以下に優先度変更設定解除処理の一例を示す。ここでは、図１４（ａ）の第３キューイングバッファ１４３を対象優先クラスとして説明する。
【００７９】
バッファ読み出し部１６０は、対象優先クラスの現在優先度Ｆ２２を対象優先クラスの初期優先度Ｆ２３と同じ値にセットする（ステップＳ５０１）具体的には、図１４（ｂ）に示すように、バッファ読み出し部１６０は、バッファ状態管理テーブル１８０を参照して、対象優先クラスの初期優先度Ｆ２３を読み込み、同じクラスの現在優先度Ｆ２２に書き込む。これにより、対象優先クラスの現在優先度と初期優先度とが等しくなる。
【００８０】
さらに、バッファ読み出し部１６０は、図１４（ｃ）に示すように、対象優先クラスの一つ上位の（直上の）優先クラスの現在優先度Ｆ２２を同じクラスの初期優先度Ｆ２３と同じ値にセットする（ステップＳ５０２）。これにより、対象優先クラスの一つ上位の優先クラスにおいても現在優先度と初期優先度とが等しくなる。すなわち、対象優先クラスの直上の優先クラスの現在優先度Ｆ２２と、対象優先クラスの現在優先度Ｆ２２が入れ替わっていた状態が解消する。これにより、対象優先クラスの直上の優先クラスの優先順位が、対象優先クラスの優先順位より低い状態が解消する。その後、図１４（ｄ）に示すように、バッファ読み出し部１６０は、対象優先クラスの直上の優先クラスの優先度変更設定フラグＦ２５を「０」にセットする（ステップＳ５０３）。以上により優先度変更設定解除処理が終了する。
【００８１】
図１５は、フレーム転送装置の動作を例示するための第１の説明図である。図１６は、図１５の動作時のバッファ状態管理テーブルを説明するための説明図である。はじめに、バッファ状態管理テーブル１８０には、図４の内容が設定されているものとして説明する。
【００８２】
図１５（ａ）では、バッファ読み出し部１６０によって、現在優先度Ｆ２２の最も高い第１キューイングバッファ１４１からフレームの読み出しがおこなわれている。一方、バッファ書き込み部１５０によって、第２キューイングバッファ１４２へのフレームの書き込みがおこなわれ、第２キューイングバッファ１４２が輻輳状態となっている。
【００８３】
バッファ書き込み部１５０は、第２キューイングバッファ１４２の輻輳状態を検出すると（図７、ステップＳ１０４）、図１６（ａ）に示すように、第２キューイングバッファ１４２と対応する優先クラスの輻輳フラグＦ２４を「１」にセットする（ステップＳ１０６）。その後、ステップＳ１１１において、図１６（ｂ）に示すように、バッファ書き込み部１５０は、優先度変更設定処理をおこない、第１キューイングバッファ１４１と対応する優先クラスと、第２キューイングバッファ１４２と対応する優先クラスの現在優先度Ｆ２２を入れ替える。また、第１キューイングバッファ１４１と対応する優先クラスの優先度変更設定フラグＦ２５を「１」にセットする（図１０、ステップＳ３０３）。この結果、バッファ読み出し部１６０は、優先順位の最も高い第２キューイングバッファ１４２からフレームの読み出しをおこなう。
【００８４】
図１５（ｂ）では、バッファ読み出し部１６０によって、現在優先度Ｆ２２の最も高い第２キューイングバッファ１４２からフレームの読み出しがおこなわれている。また、読み出しの結果、第２キューイングバッファ１４２の輻輳状態が解消している。バッファ読み出し部１６０は、第２キューイングバッファ１４２の輻輳状態の解消を検出すると（図１２、ステップＳ４０４）、図１６（ｃ）に示すように、第２キューイングバッファ１４２と対応する優先クラスの輻輳フラグＦ２４を「０」にセットする（ステップＳ４０５）。その後、ステップＳ４０８において、バッファ読み出し部１６０は、優先度変更設定解除処理をおこない、図１６（ｄ）に示すように、第１キューイングバッファ１４１と対応する優先クラスと、第２キューイングバッファ１４２と対応する優先クラスの現在優先度Ｆ２２をそれぞれ各クラスの初期優先度Ｆ２３の値に戻す。また、第１キューイングバッファ１４１と対応する優先クラスの優先度変更設定フラグＦ２５を「０」にセットする（図１３、ステップＳ５０３）。この結果、図１５（ｃ）に示すように、バッファ読み出し部１６０は、優先順位の最も高い第１キューイングバッファ１４１から再度、フレームの読み出しをおこなう。このとき、第２キューイングバッファ１４２は、一時的に読み出しが優先されたため、輻輳状態が解消している。
【００８５】
このように、本実施例のフレーム転送装置１００によれば、輻輳状態が検出されたキューイングバッファと対応する優先クラスと、その直上の優先クラスの優先順位を入れ替えるため、輻輳状態が検出されたキューイングバッファにおいては、バッファ読み出し部１６０による優先的なフレームの読み出しによって、キューイングバッファの許容量を超えたフレームが破棄される不具合の発生を抑制することができる。一方、優先度変更設定によって優先順位が１つ下がった優先クラスのキューイングバッファは、フレームの蓄積量が増加しやすい状態となり、収容可能領域を有効に活用することができる。
【００８６】
図１７は、フレーム転送装置の動作を例示するための第２の説明図である。図１８は、図１７の動作時のバッファ状態管理テーブルを説明するための説明図である。ここでも、バッファ状態管理テーブル１８０には、図４の内容が設定されているものとして説明する。
【００８７】
図１７（ａ）では、第３キューイングバッファ１４３が輻輳状態となり、１つ上位の優先クラスに対応する第２キューイングバッファ１４２で優先度変更設定がおこなわれている状態が示されている。このとき、図１８（ａ）に示すように、第２キューイングバッファ１４２と対応する優先クラスと第３キューイングバッファ１４３と対応する優先クラスの優先順位が入れ替わっているため、各キューイングバッファ１４１〜１４４と対応する各優先クラスの優先順位は、キューイングバッファ１４１、１４２、１４３、１４４の順にそれぞれ１、３、２、４となる。
【００８８】
図１７（ｂ）では、図１７（ａ）の状態からさらに、第４キューイングバッファ１４４が輻輳した状態が示されている。この場合、バッファ書き込み部１５０は、第４キューイングバッファ１４４の輻輳状態を検出して（図７、ステップＳ１０４）、図１８（ｂ）に示すように、第４キューイングバッファ１４４と対応する優先クラスの輻輳フラグＦ２４を「１」にセットする（ステップＳ１０６）。しかし、直上の第３キューイングバッファ１４３と対応する優先クラスの輻輳フラグＦ２４は「１」であるため（ステップＳ１０９：ＹＥＳ）、バッファ書き込み部１５０は、優先度変更設定処理をおこなわない。すなわち、第３キューイングバッファ１４３と対応する優先クラスの優先度変更設定をおこなわず、第３キューイングバッファ１４３と対応する優先クラスと第４キューイングバッファ１４４と対応する優先クラスとの優先順位の入れ替えをおこなわない。よって、各キューイングバッファ１４１〜１４４と対応する各優先クラスの優先順位は、図１３（ａ）と変わらず１、３、２、４の順となる。
【００８９】
図１７（ｃ）では、図１７（ａ）の状態からさらに、第２キューイングバッファ１４２が輻輳した状態が示されている。この場合、バッファ書き込み部１５０は、図１８（ｃ）に示すように、第２キューイングバッファ１４２と対応する優先クラスの輻輳フラグＦ２４を「１」にセットした後（ステップＳ１０６）、ステップＳ１０７の優先度変更設定解除処理により、第２キューイングバッファ１４２と対応する優先クラスの優先度変更設定を解除する。また、バッファ書き込み部１５０は、第１キューイングバッファ１４１が輻輳状態ではない場合には（ステップＳ１０９：ＮＯ）、第１キューイングバッファ１４１と対応する優先クラスの優先度変更設定に「１」をセットする（ステップＳ１１１）。この結果、第１キューイングバッファ１４１と対応する優先クラスと第２キューイングバッファ１４２と対応する優先クラスの優先順位が入れ替わるため、各キューイングバッファ１４１〜１４４と対応する各優先クラスの優先順位は、キューイングバッファ１４１、１４２、１４３、１４４の順にそれぞれ２、１、３、４となる。
【００９０】
図１７（ｄ）では、図１７（ａ）の状態からさらに、第１キューイングバッファ１４１が輻輳した状態が示されている。この場合、バッファ書き込み部１５０は、図１８（ｄ）に示すように、第１キューイングバッファ１４１と対応する優先クラスの輻輳フラグＦ２４を「１」にセットした後（ステップＳ１０６）、ステップＳ１０７の優先度変更設定解除処理により、第２キューイングバッファ１４２と対応する優先クラスの優先度変更設定を解除する。この結果、各キューイングバッファ１４１〜１４４と対応する各優先クラスの優先順位は、キューイングバッファ１４１、１４２、１４３、１４４の順にそれぞれ１、２、３、４となる。
【００９１】
図１９は、フレーム転送装置の動作を例示するための第３の説明図である。図２０は、図１９の動作時のバッファ状態管理テーブルを説明するための説明図である。図１９（ａ）は、図１７（ｂ）と同じ状態を示している。図１９（ｂ）では、図１９（ａ）の状態から、第３キューイングバッファ１４３の輻輳が解消した状態が示されている。この場合、バッファ読み出し部１６０は、第３キューイングバッファ１４３の輻輳状態の解除を検出して（ステップＳ４０４）、図２０（ａ）に示すように、第３キューイングバッファ１４３と対応する優先クラスの輻輳フラグＦ２４を「０」にセットする（ステップＳ４０５）。
【００９２】
ステップＳ４０８の優先度変更設定解除処理により、バッファ読み出し部１６０は、図２０（ｂ）に示すように、第２キューイングバッファ１４２と対応する優先クラスの優先度変更設定を解除する（ステップＳ４０８）。一方、バッファ書き込み部１５０は、図２０（ｃ）に示すように、第３キューイングバッファ１４３と対応する優先クラスの優先度変更設定に「１」をセットする（ステップＳ１１１）。この結果、各キューイングバッファ１４１〜１４４と対応する各優先クラスの優先順位は、キューイングバッファ１４１、１４２、１４３、１４４の順にそれぞれ１、２、４、３となる。
【００９３】
このように、本実施例のフレーム転送装置１００によれば、輻輳状態が検出されたキューイングバッファと対応する優先クラスの優先順位を最上位とするのではなく、その直上の優先クラスの優先順位を入れ替えるため、基本的には、初期優先度に応じてフレームの読み出しをおこないつつ、輻輳状態が発生した一部のキューイングバッファに対しては優先順位を入れ替えることによって、フレームの破棄等の不具合の発生を抑制することができる。また、３以上の複数のキューイングバッファにおいて輻輳状態が検出された場合であっても、輻輳状態が発生したキューイングバッファの優先クラスの優先順位を上げつつ、フレーム種別に応じた本来の優先順位（初期優先度）を反映させた優先順位に応じてフレームの読み出しをおこなうことができる。そのため、例えば、リアルタイム通信用のフレームなどの読み出しを優先しつつ、輻輳状態のキューイングバッファにおける不具合の発生を抑制することができる。また、優先順位の入れ替えによって、一時的に優先順位が低下したキューイングバッファが輻輳状態となったときには、優先順位の入れ替えを解消するため、優先順位の高いフレームの破棄の発生を優先的に抑制しつつ、他のフレームの破棄の発生を抑制することができる。
【００９４】
本実施例のフレーム転送装置１００によれば、音声データや動画データ等のリアルタイム通信用フレームと、文字データや静止画像データなどの非リアルタイム通信用フレームの２つについての優先順位の設定に限定されず、例えば、リアルタイム通信用フレームの中でも、音声データと動画データとで優先順位を変えることができる。これにより、フレーム転送装置の送信品質をより向上させることができる。
【００９５】
Ｂ．第１実施例の変形例：
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【００９６】
Ｂ１．変形例１：
本実施例では、各キューイングバッファ１４１〜１４４は、それぞれ１つの優先クラスに対応するものとして説明したが、フレーム転送装置１００が備える複数のキューイングバッファは、１つの優先クラスに複数のキューイングバッファが対応する構成であってもよい。また、本実施例では、フレーム転送装置１００は、４つのキューイングバッファ１４１〜１４４を備えるものとして説明したが、２つ以上であれば４つに限定されない。
【００９７】
Ｂ２．変形例２：
本実施例では、バッファ書き込み部１５０は、フレームからアプリケーション種別を読み出してそのフレームが属する優先クラスを特定するものとして説明したが、バッファ書き込み部１５０は、フレームから送信元ＭＡＣアドレスや、宛先ＭＡＣアドレス、ＶＬＡＮ−ＩＤ、ユーザ優先度、ＤＳＣＰ、送信元ポート番号、宛先ポート番号のうちの１対上の情報に基づいて、優先クラスを特定する構成であってもよい。
【００９８】
Ｂ３．変形例３：
本実施例では、キューイングバッファの輻輳状態は、バッファ書き込み部１５０が検出するものとして説明したが、設定監視用端末５００が輻輳状態を検出し、対応する輻輳フラグＦ２４に「１」をセットする構成であってもよい。また、設定監視用端末５００がキューイングバッファの輻輳状態の解消を検出してもよい。
【００９９】
Ｂ４．変形例４：
本実施例では、バッファ読み出し部１６０は、現在優先度のより高いキューイングバッファにおいてフレームの蓄積がなくなるまで読み出しを継続し、フレームの蓄積がなくなると順次現在優先度の低いキューイングバッファの読み出す通常優先制御をおこなうものとして説明したが、現在優先度が高いほど読み出し頻度を高く設定して全てのキューイングバッファから順次読み出す重み付け優先制御をおこなう構成としてもよい。あるいは、現在優先度が高いほど１回の読み出し時間を長く（読み出しデータ量を多く）設定し、全てのキューイングバッファが循環的にフレームを読み出すようにしてもよい。
【０１００】
Ｃ．第２実施例：
図２１は、第２実施例に係るフレーム転送装置の概略構成を説明するための説明図である。第２実施例のフレーム転送装置１０２は、第１実施例のフレーム転送装置１００（図２）と比較すると、フレーム転送部１１０の記憶部１９０にバッファ閾値管理テーブル１８５が追加されている点が異なる。第２実施例のフレーム転送装置１０２は、各キューイングバッファ１４１〜１４４に予め設定されている輻輳閾値Ｔｈ１（図５）と輻輳解消閾値Ｔｈ２（図６）の設定値を、輻輳状態の頻度等に応じて変化させることができる。バッファ閾値管理テーブル１８５は、キューイングバッファ１４１〜１４４の各々の輻輳閾値Ｔｈ１と輻輳解消閾値Ｔｈ２の現在の設定値を管理するためのテーブルであり、各キューイングバッファ１４１〜１４４の輻輳状態を示すフラグや、変更後の新たな設定値を算出するための情報などが登録されている。第２実施例のバッファ書き込み部１５０、および、バッファ読み出し部１６０は、後述するように、バッファ閾値管理テーブル１８５を参照して、各キューイングバッファ１４１〜１４４に設定されている輻輳閾値Ｔｈ１と輻輳解消閾値Ｔｈ２の設定値を変更させる。
【０１０１】
図２２は、バッファ閾値管理テーブルの内容を説明するための説明図である。バッファ閾値管理テーブル１８５は、優先クラスＦ３０１と、閾値種別Ｆ３０２と、変更状態フラグＦ３０３と、初期設定値Ｆ３０４と、変更方向Ｆ３０５と、最大変更幅Ｆ３０６と、変更段階数Ｆ３０７と、輻輳度数Ｆ３０８と、現在設定値Ｆ３０９と、継続フラグＦ３１０と、継続時間Ｆ３１１の１１つのフィールドを備えている。バッファ閾値管理テーブル１８５の各エントリＥ３１〜Ｅ３８は、各キューイングバッファ１４１〜１４４の輻輳閾値Ｔｈ１および輻輳解消閾値Ｔｈ２とそれぞれ対応している。例えば、エントリＥ３６は、第３キューイングバッファ１４３の輻輳解消閾値Ｔｈ２と対応している。以後、輻輳閾値Ｔｈ１と輻輳解消閾値Ｔｈ２の２つをあわせて単に「閾値Ｔｈ」とも呼ぶ。
【０１０２】
優先クラスＦ３０１は、そのエントリと対応する閾値Ｔｈが属するキューイングバッファ１４１〜１４４を示している。閾値種別Ｆ３０２は、そのエントリと対応する閾値Ｔｈが輻輳閾値Ｔｈ１か輻輳解消閾値Ｔｈ２かを示している。優先クラスＦ３０１および閾値種別Ｆ３０２によって、複数の閾値Ｔｈの中から、エントリと対応する１つの閾値Ｔｈ（以後「対応閾値Ｔｈ」とも呼ぶ）を特定することができる。
【０１０３】
変更状態フラグＦ３０３は、対応閾値Ｔｈが後述する設定初期値ａから変更されている状態（以後「変更状態」とも呼ぶ）となっているか否かを示している。ここでは、対応閾値Ｔｈが変更されている場合には「１」がセットされ、変更されていない場合には「０」がセットされる。
【０１０４】
初期設定値Ｆ３０４は、対応閾値Ｔｈの初期設定値ａ（％）を示している。初期設定値ａとは、対応閾値Ｔｈの初期値であり、変更状態となる前の対応閾値Ｔｈの設定値として使用される。初期設定値ａは、設定監視用端末５００を介して予め設定することができる。ここでは、初期設定値ａは、各キューイングバッファの最大データ蓄積量に対する蓄積量割合（％）で示されている。例えば、輻輳閾値Ｔｈ１の初期設定値ａとして「６０」が設定されているキューイングバッファは、データ蓄積量が全体の６０％となったときに輻輳状態が検出される。
【０１０５】
変更方向Ｆ３０５は、対応閾値Ｔｈの変更方向ｂを示している。変更方向ｂとは、変更状態のときの対応閾値Ｔｈが初期設定値ａに対して増加するのか減少するのかを示す値である。ここでは、変更状態の対応閾値Ｔｈが初期設定値ａに対して増加する場合、すなわち、対応閾値Ｔｈがキューイングバッファにおけるフレーム蓄積量増加方向（図５の左方向）に移動する場合に「１」が示されている。一方、変更状態の対応閾値Ｔｈが初期設定値ａに対して減少する場合、すなわち、対応閾値Ｔｈがキューイングバッファにおけるフレーム蓄積量減少方向（図５の右方向）に移動する場合に「−１」が示されている。変更方向ｂは、設定監視用端末５００を介して予め設定することができる。ここでは、各キューイングバッファの輻輳閾値Ｔｈ１に対応するエントリに「１」がセットされ、輻輳解消閾値Ｔｈ２に対応するエントリに「−１」がセットされている。
【０１０６】
最大変更幅Ｆ３０６は、対応閾値Ｔｈの最大変更幅ｃ（％）を示している。最大変更幅ｃとは、変更状態のときの対応閾値Ｔｈを算出する際に用いられる値であり、初期設定値ａに加算または減算される蓄積量割合（％）の最大値である。例えば、変更状態時に増加する対応閾値Ｔｈは、増加後の最大値が初期設定値ａ＋最大変更幅ｃとなる。一方、変更状態時に減少する対応閾値Ｔｈは、減少後の最小値が初期設定値ａ−最大変更幅ｃとなる。最大変更幅ｃは、設定監視用端末５００を介して予め設定することができる。
【０１０７】
変更段階数Ｆ３０７は、対応閾値Ｔｈの変更段階数ｄを示している。変更段階数ｄとは、対応閾値Ｔｈが初期設定値ａから、最大値または最小値（初期設定値ａ±最大変更幅ｃ）になるまでの間に段階的に値が変化するときの段階数を示している。例えば、変更段階数ｄに「３」が設定されている対応閾値Ｔｈは、初期設定値ａの後、１段階目の値α、２段階目の値βを経て、３段階目の値として初期設定値ａ±最大変更幅ｃが設定される（ａ＜α＜β＜ａ＋ｃ、または、ａ＞α＞β＞ａ−ｃ）。変更段階数ｄは、設定監視用端末５００を介して予め設定することができる。
【０１０８】
輻輳度数Ｆ３０８は、対応閾値Ｔｈの輻輳度数Ｘを示している。輻輳度数Ｘとは、キューイングバッファの輻輳状態の発生のしやすさ、または、発生のしにくさの程度を示す度数である。後述するように、キューイングバッファで輻輳状態が発生した場合、または、一定時間（例えば、１時間）以上輻輳状態が発生していない場合に、１つカウントアップされる。ここでは、輻輳閾値Ｔｈ１に対応するエントリにおいて、輻輳状態の発生にしにくさを示す度数として使用され、輻輳解消閾値Ｔｈ２に対応するエントリにおいて、輻輳状態の発生のしやすさを示す度数として使用される。
【０１０９】
現在設定値Ｆ３０９は、対応閾値Ｔｈの現在設定値Ｙ（％）を示している。現在設定値Ｙとは、対応閾値Ｔｈの現在の値であり、初期設定値ａや、以下の式（１）によって算出された値Ｙが設定される。
Ｙ＝ａ＋ｂ×ｃ×Ｘ／ｄ    ・・・（１）
ここで、ａは初期設定値であり、ｂは変化方向であり、ｃは最大変更幅であり、Ｘは輻輳度数であり、ｄは変更段階数ｄである。また、０＜ａ＋｜ｂ×ｃ｜≦１００である。
【０１１０】
継続フラグＦ３１０は、キューイングバッファが輻輳状態ではない状態（非輻輳状態）が継続しているか否かを示している。キューイングバッファが非輻輳状態の時に「１」がセットされ、キューイングバッファが輻輳状態の時に「０」がセットされる。
【０１１１】
継続時間Ｆ３１１は、対応閾値Ｔｈの非輻輳状態継続時間Ｔｃ（秒）を示している。非輻輳状態継続時間Ｔｃとは、キューイングバッファが非輻輳状態のときの継続時間であり、非輻輳状態時に１秒ずつカウントアップされ、キューイングバッファが輻輳状態になると「０」が設定される。
【０１１２】
図２３は、第２実施例におけるバッファ書き込み部１５０の処理の流れを示したフローチャートである。図２３は、第１実施例の図７と対応している。図２３のフローチャートは、図７のフローチャートと比較すると、ステップＳ１２０、Ｓ１１２、Ｓ１４０、Ｓ１５０が新たに追加されている点が異なる。図２３のステップＳ１０１〜Ｓ１１１は、図７と同様のため説明を省略する。
【０１１３】
フレームの書き込みの後に（ステップＳ１０３）、キューイングバッファ（対象優先クラス）が輻輳状態とならなかった場合（ステップＳ１０４：ＮＯ）、バッファ書き込み部１５０は、輻輳閾値Ｔｈ１変更判定処理をおこなう（ステップＳ１２０）。輻輳閾値Ｔｈ１変更判定処理とは、所定の時間以上輻輳状態となっていないキューイングバッファに設定されている輻輳閾値Ｔｈ１をフレーム蓄積量増加方向（図５左方向）に移動させるための処理である。輻輳閾値Ｔｈ１変更判定処理の詳細については、図２４を用いて後述する。
【０１１４】
一方、フレームの書き込みの後に（ステップＳ１０３）、キューイングバッファ（対象優先クラス）が輻輳状態となった場合（ステップＳ１０４：ＹＥＳ）、バッファ書き込み部１５０は、バッファ閾値管理テーブル１８５（図２２）を参照して、対象優先クラスの輻輳閾値Ｔｈ１の変更状態フラグＦ３０３が「１」か否かを判定する（ステップＳ１１２）。変更状態フラグＦ３０３が「１」の場合（ステップＳ１１２：ＹＥＳ）、バッファ書き込み部１５０は、対象優先クラスに対する輻輳閾値Ｔｈ１変更解除処理をおこなう（ステップＳ１４０）。輻輳閾値Ｔｈ１変更解除処理とは、輻輳閾値Ｔｈ１が変更状態となっているキューイングバッファにおいて、変更状態フラグＦ３０３を「０」にセットして、変更状態を解除するための処理である。ここでは、対象優先クラスの輻輳閾値Ｔｈ１に対しておこなわれる。これにより、輻輳状態となったキューイングバッファ（対象優先クラス）の輻輳閾値Ｔｈ１が初期の状態に戻される。対象優先クラスに対する輻輳閾値Ｔｈ１変更解除処理の詳細については、図２７を用いて後述する。
【０１１５】
ステップＳ１４０において、輻輳閾値Ｔｈ１変更解除処理を実行した後、または、ステップＳ１１２において、変更状態フラグＦ３０３が「０」の場合（ステップＳ１１２：ＮＯ）、バッファ書き込み部１５０は、対象優先クラスに対する輻輳解消閾値Ｔｈ２変更判定処理をおこなう（ステップＳ１５０）。輻輳解消閾値Ｔｈ２変更判定処理とは、所定の時間以上輻輳状態となっているキューイングバッファに設定されている輻輳解消閾値Ｔｈ２をフレーム蓄積量減少方向（図５右方向）に移動させるための処理である。ここでは、対象優先クラスの輻輳解消閾値Ｔｈ２に対しておこなわれる。これにより、輻輳状態となったキューイングバッファ（対象優先クラス）の輻輳解消閾値Ｔｈ２が変更される。輻輳解消閾値Ｔｈ２変更判定処理の詳細については、図３０を用いて後述する。輻輳解除閾値Ｔｈ２変更判定処理（ステップＳ１５０）の後、バッファ書き込み部１５０の処理は、ステップＳ１０１に戻る。以上が第２実施例のバッファ書き込み部１５０の処理の流れである。
【０１１６】
図２４は、図２３のステップＳ１２０における輻輳閾値Ｔｈ１変更判定処理の流れを示したフローチャートである。図２５と図２６は、ステップＳ１２０の輻輳閾値Ｔｈ１変更判定処理時のバッファ閾値管理テーブルを説明するための説明図である。以下では、輻輳閾値Ｔｈ１変更判定処理の一例として、対象優先クラスのキューイングバッファが所定時間（ここでは、設定時間Ｔｐ）以上輻輳状態ではない場合に対象優先クラスの輻輳閾値Ｔｈ１を増加方向に変更させる処理について説明する。設定時間Ｔｐ（例えば、３６００秒）は、設定監視用端末５００を介して予め任意に設定することができる。
【０１１７】
まず、バッファ書き込み部１５０は、対象優先クラスの輻輳閾値Ｔｈ１の継続フラグＦ３１０が「１」であるか否かを判定する（ステップＳ１２１）。ここでは、図２５の第２キューイングバッファ１４２を対象優先クラスとして説明する。図２５（ａ）では、対象優先クラス（第２キューイングバッファ１４２）の輻輳閾値Ｔｈ１（エントリＥ３３）の継続フラグＦ３１０は「０」となっている。
【０１１８】
継続フラグＦ３１０が「０」の場合（ステップＳ１２１：ＮＯ）、バッファ書き込み部１５０は、図２５（ｂ）に示すように、対象優先クラスの輻輳閾値Ｔｈ１の継続フラグＦ３１０を「１」にセットする（ステップＳ１２２）。続いて、バッファ書き込み部１５０は、対象優先クラスの輻輳閾値Ｔｈ１の継続時間Ｆ３１１に示されている非輻輳状態継続時間Ｔｃ（秒）のカウントアップを開始する（ステップＳ１２３）。ステップＳ１２３の後、バッファ書き込み部１５０は、処理を終了する。
【０１１９】
一方、ステップＳ１２１において、図２５（ｃ）に示すように、対象優先クラス（第２キューイングバッファ１４２）の輻輳閾値Ｔｈ１の継続フラグＦ３１０が「１」となっている場合（ステップＳ１２１：ＹＥＳ）、バッファ書き込み部１５０は、対象優先クラスの輻輳閾値Ｔｈ１の継続時間Ｆ３１１に示されている非輻輳状態継続時間Ｔｃ（秒）が設定時間Ｔｐ（ここでは、３６００秒）以上か否かを判定する（ステップＳ１２４）。すなわち、このステップＳ１２４では、対象優先クラスの輻輳フラグＦ２４（図４）が「０」にセットされた状態で１時間以上経過しているか否かが判定される。図２５（ｃ）では、対象優先クラスの輻輳閾値Ｔｈ１の非輻輳状態継続時間Ｔｃは「３６００」であり、設定時間Ｔｐ以上（ここでは、Ｔｃ＝Ｔｐ）となっている。すなわち、図２５（ｃ）で示される対象優先クラス（第２キューイングバッファ１４２）は、輻輳フラグＦ２４（図４）が「０」のままちょうど１時間経過した状態となっている。
【０１２０】
非輻輳状態継続時間Ｔｃが設定時間Ｔｐ以上（ここでは、Ｔｃ≧３６００）の場合（ステップＳ１２４：ＹＥＳ）、バッファ書き込み部１５０は、図２６（ｄ）に示すように、対象優先クラスの輻輳閾値Ｔｈ１の輻輳度数Ｘを「＋１」カウントアップする（ステップＳ１２５）。一方、図２６（ｃ）とは異なり、非輻輳状態継続時間Ｔｃが設定時間Ｔｐより小さい場合（ステップＳ１２４：ＮＯ）、バッファ書き込み部１５０は、処理を終了する。キューイングバッファの非輻輳状態が所定以上継続しておらず、輻輳閾値Ｔｈ１を増加方向に変更させる必要がないためである。
【０１２１】
ステップＳ１２５において輻輳度数Ｘをカウントアップした後、バッファ書き込み部１５０は、対象優先クラスの輻輳閾値Ｔｈ１の現在設定値Ｙを更新する（ステップＳ１２６）。具体的には、バッファ書き込み部１５０は、上述した式（１）によって算出した値を用いて、現在設定値Ｆ３０９に設定されている現在設定値Ｙを更新する。図２６（ｄ）では、対象優先クラスの輻輳閾値Ｔｈ１の初期設定値ａは「５０」、変更方向ｂは「１」、最大変更幅ｃは「２０」、変更段階数ｄは「１０」、輻輳度数Ｘは「１」となっている。そのため、式（１）によって算出される値は「５２」（５２＝５０＋１×２０×１／１０）となる。よって、図２６（ｅ）に示すように、現在設定値Ｆ３０９に新たな現在設定値Ｙとして「５２」がセットされる。現在設定値Ｙが「５０」から「５２」に更新されることによって、対象優先クラスの輻輳閾値Ｔｈ１は、増加方向に変更される。
【０１２２】
続いて、バッファ書き込み部１５０は、対象優先クラスの輻輳閾値Ｔｈ１の変更状態フラグＦ３０３が「１」であるか否かを判定する（ステップＳ１２７）。図２６（ｅ）では、対象優先クラスの輻輳閾値Ｔｈ１の変更状態フラグＦ３０３は「０」となっている。変更状態フラグＦ３０３が「０」の場合（ステップＳ１２７：ＮＯ）、バッファ書き込み部１５０は、図２６（ｆ）に示すように、対象優先クラスの輻輳閾値Ｔｈ１の変更状態フラグＦ３０３を「１」にセットする（ステップＳ１２８）。その後、バッファ書き込み部１５０は、処理を終了する。一方、変更状態フラグＦ３０３が「１」の場合（ステップＳ１２７：ＹＥＳ）、バッファ書き込み部１５０は、そのまま処理を終了する。以上が輻輳閾値Ｔｈ１変更判定処理の流れである。
【０１２３】
上述した輻輳閾値Ｔｈ１変更判定処理によれば、対象優先クラスの輻輳フラグＦ２４（図４）が所定の時間以上「０」となった場合に、輻輳閾値Ｔｈ１を増加方向に変更させることができる。また、輻輳フラグＦ２４の「０」が継続していれば、輻輳閾値Ｔｈ１変更判定処理を繰り返すことによって、対象優先クラスの輻輳閾値Ｔｈ１を順次増加方向に変更させることができる。すなわち、輻輳フラグＦ２４の「０」の継続時間に応じて輻輳閾値Ｔｈ１の増加量を変化させることができる。
【０１２４】
図２７は、図２３のステップＳ１４０における輻輳閾値Ｔｈ１変更解除処理の流れを示したフローチャートである。図２８と図２９は、ステップＳ１４０の輻輳閾値Ｔｈ１変更解除処理時のバッファ閾値管理テーブルを説明するための説明図である。ここでは、図２８の第２キューイングバッファ１４２を対象優先クラスとして説明する。図２８（ａ）では、対象優先クラス（第２キューイングバッファ１４２）の輻輳閾値Ｔｈ１（エントリＥ３３）の現在設定値Ｙは「５２」となっている。
【０１２５】
まず、バッファ書き込み部１５０は、図２８（ｂ）に示すように、対象優先クラスの輻輳閾値Ｔｈ１の現在設定値Ｙに初期設定値ａをセットする（ステップＳ１４１）。その後、バッファ書き込み部１５０は、図２８（ｃ）に示すように、対象優先クラスの輻輳閾値Ｔｈ１の輻輳度数Ｘを「０」にセットする（ステップＳ１４２）。また、バッファ書き込み部１５０は、図２９（ｄ）に示すように、対象優先クラスの輻輳閾値Ｔｈ１の変更状態フラグを「０」にセットする（ステップＳ１４３）。また、バッファ書き込み部１５０は、図２９（ｅ）に示すように、対象優先クラスの輻輳閾値Ｔｈ１の継続フラグを「０」にセットする（ステップＳ１４４）。バッファ書き込み部１５０は、対象優先クラスの輻輳閾値Ｔｈ１のＴｃのカウントアップを停止する（ステップＳ１４５）。また、バッファ書き込み部１５０は、図２９（ｆ）に示すように、対象優先クラスの輻輳閾値Ｔｈ１のＴｃを「０」にセットする（ステップＳ１４６）。その後、バッファ書き込み部１５０は、処理を終了する。以上が輻輳閾値Ｔｈ１変更解除処理の流れである。
【０１２６】
図３０は、図２３のステップＳ１５０における輻輳解消閾値Ｔｈ２変更判定処理の流れを示したフローチャートである。図３１と図３２は、ステップＳ１５０の輻輳解消閾値Ｔｈ２変更判定処理時のバッファ閾値管理テーブルを説明するための説明図である。以下では、輻輳解消閾値Ｔｈ２変更判定処理の一例として、輻輳状態となった対象優先クラスの輻輳解消閾値Ｔｈ２を減少方向に変更させ、対象優先クラスより下位の優先クラスの輻輳解消閾値Ｔｈ２を初期の状態に戻す処理について説明する。ここでは、図３１の第２キューイングバッファ１４２を対象優先クラスとして説明する。
【０１２７】
バッファ書き込み部１５０は、対象優先クラスの輻輳解消閾値Ｔｈ２の輻輳度数Ｘが変更段階数ｄよりも小さいか否かを判定する（ステップＳ１５１）。図３１（ａ）の対象優先クラスの輻輳解消閾値Ｔｈ２（エントリＥ３４）の輻輳度数Ｘは「０」であり、変更段階数ｄは「１０」である。よって、輻輳度数Ｘが変更段階数ｄよりも小さい状態となっている。
【０１２８】
輻輳度数Ｘが変更段階数ｄよりも小さい場合（ステップＳ１５１：ＹＥＳ）、バッファ書き込み部１５０は、図３１（ｂ）に示すように、対象優先クラスの輻輳解消閾値Ｔｈ２の輻輳度数Ｘを「＋１」カウントアップする（ステップＳ１５２）。一方、図３１とは異なり、対象優先クラスの輻輳解消閾値Ｔｈ２の輻輳度数Ｘが変更段階数ｄ以上となっている場合（ステップＳ１５１：ＮＯ）、バッファ書き込み部１５０は、処理を終了する。
【０１２９】
ステップＳ１５２において輻輳度数Ｘを「＋１」カウントアップした後、バッファ書き込み部１５０は、上位の優先クラスが存在するか否かを判定する（ステップＳ１５３）。図３１では、第２キューイングバッファ１４２を対象優先クラスとしているため、上位の優先クラス（第１キューイングバッファ１４１）が存在している。
【０１３０】
上位の優先クラスが存在する場合（ステップＳ１５３：ＹＥＳ）、上位の優先クラスにおいて、輻輳解消閾値Ｔｈ２の変更状態フラグＦ３０３に「１」が存在するか否かを判定する（ステップＳ１５４）。一方、図３１とは異なり、対象優先クラスの上位の優先クラスが存在しない場合（ステップＳ１５３：ＮＯ）、バッファ書き込み部１５０は、ステップＳ１５４をスキップする。図３１では、上位の優先クラス（第１キューイングバッファ１４１）の輻輳解消閾値Ｔｈ２の変更状態フラグＦ３０３に「１」が存在しない。
【０１３１】
上位の優先クラスにおいて、輻輳解消閾値Ｔｈ２の変更状態フラグＦ３０３に「１」が存在しない場合（ステップＳ１５４：ＮＯ）、バッファ書き込み部１５０は、下位の優先クラスにおいて、輻輳解消閾値Ｔｈ２の現在設定値Ｙが初期設定値ａと等しいか否かを判定する（ステップＳ１５５）。一方、図３１とは異なり、上位の優先クラスにおいて、輻輳解消閾値Ｔｈ２の変更状態フラグＦ３０３に「１」が存在する場合（ステップＳ１５４：ＹＥＳ）、バッファ書き込み部１５０は、処理を終了する。図３１では、下位の優先クラス（第３キューイングバッファ１４３）において、各輻輳解消閾値Ｔｈ２（エントリＥ３６）の現在設定値Ｙ（Ｙ＝４８）が初期設定値ａ（ａ＝５０）と異なっている。
【０１３２】
下位の優先クラスにおいて、輻輳解消閾値Ｔｈ２の現在設定値Ｙが初期設定値ａと異なる場合（ステップＳ１５５：ＮＯ）、バッファ書き込み部１５０は、下位の優先クラスに対する輻輳解消閾値Ｔｈ２変更解除処理をおこなう（ステップＳ１６０）。輻輳解消閾値Ｔｈ２変更解除処理とは、輻輳解消閾値Ｔｈ２が変更状態となっているキューイングバッファにおいて、変更状態フラグＦ３０３を「０」にセットして、変更状態を解除するための処理である。ここでは、下位の優先クラスに対して輻輳解消閾値Ｔｈ２変更解除処理がおこなわれるため、図３１（ｃ）に示すように、下位の優先クラス（第３キューイングバッファ１４３）の輻輳解消閾値Ｔｈ２（エントリＥ３６）において、変更状態フラグＦ３０３が「０」にセットされ、現在設定値Ｙに初期設定値ａである「５０」がセットされる。下位の優先クラスに対する輻輳解消閾値Ｔｈ２変更解除処理の詳細については、図３２を用いて後述する。一方、図３１とは異なり、下位のすべての優先クラスにおいて、輻輳解消閾値Ｔｈ２の現在設定値Ｙが初期設定値ａと等しい場合（ステップＳ１５５：ＹＥＳ）、バッファ書き込み部１５０は、ステップＳ１６０をスキップする。
【０１３３】
次に、バッファ書き込み部１５０は、対象優先クラスの輻輳解消閾値Ｔｈ２の現在設定値Ｙを更新する（ステップＳ１５７）。具体的には、バッファ書き込み部１５０は、上述した式（１）によって算出した値を用いて、現在設定値Ｆ３０９に設定されている現在設定値Ｙを更新する。図３１（ｃ）では、対象優先クラスの輻輳解消閾値Ｔｈ２の初期設定値ａは「５０」、変更方向ｂは「−１」、最大変更幅ｃは「２０」、変更段階数ｄは「１０」、輻輳度数Ｘは「１」となっている。そのため、式（１）によって算出される値は「４８」（４８＝５０＋１×２０×（−１）／１０）となる。よって、図３２（ｄ）に示すように、現在設定値Ｆ３０９に新たな現在設定値Ｙとして「４８」がセットされる。現在設定値Ｙが「５０」から「４８」に更新されることによって、対象優先クラスの輻輳解消閾値Ｔｈ２は、減少方向に変更される。次に、バッファ書き込み部１５０は、対象優先クラスの輻輳解消閾値Ｔｈ２の変更状態フラグＦ３０３が「１」であるか否かを判定する（ステップＳ１５８）。図３２（ｄ）では、対象優先クラスの輻輳解消閾値Ｔｈ２の変更状態フラグＦ３０３は「０」となっている。
【０１３４】
変更状態フラグＦ３０３が「０」の場合（ステップＳ１５８：ＮＯ）、バッファ書き込み部１５０は、図３１（ｅ）に示すように、対象優先クラスの輻輳解消閾値Ｔｈ２の変更状態フラグＦ３０３を「１」にセットする（ステップＳ１５９）。その後、バッファ書き込み部１５０は、処理を終了する。一方、図３２と異なり、対象優先クラスの輻輳解消閾値Ｔｈ２の変更状態フラグＦ３０３が「１」の場合（ステップＳ１５８：ＹＥＳ）、バッファ書き込み部１５０は、そのまま処理を終了する。以上が輻輳解消閾値Ｔｈ２変更判定処理の流れである。
【０１３５】
図３３は、図３０のステップＳ１６０における下位の優先クラスに対する輻輳解消閾値Ｔｈ２変更解除処理の流れを示したフローチャートである。図３４は、ステップＳ１６０の輻輳解消閾値Ｔｈ２変更解除処理時のバッファ閾値管理テーブルを説明するための説明図である。バッファ書き込み部１５０は、この下位の優先クラスに対する輻輳解消閾値Ｔｈ２変更解除処理によって、対象優先クラスより下位の各優先クラスにおいて、現在優先度と初期優先度とが等しくなるように設定する。以下に下位の優先クラスに対する輻輳解消閾値Ｔｈ２変更解除処理の一例を示す。ここでは、バッファ書き込み部１５０は、第１実施例と同様に、優先クラスのうちのいずれか１つを設定登録可能な優先クラス登録部を備えているものとして説明する。
【０１３６】
バッファ書き込み部１５０は、まず、優先クラス登録部に対象優先クラスを登録する（ステップＳ１６１）。ここでは、図３４の第２キューイングバッファ１４２を対象優先クラスとして説明する。バッファ書き込み部１５０は、バッファ状態管理テーブル１８０を参照し、登録優先クラスより下位の優先クラスが存在するか否かを判定する（ステップＳ１６２）。図３４（ａ）では、第２キューイングバッファ１４２を対象優先クラスとしているため、下位の優先クラス（第３、４キューイングバッファ１４３、１４４）が存在している。
【０１３７】
下位の優先クラスが存在する場合（ステップＳ１６２：ＹＥＳ）、バッファ書き込み部１５０は、優先クラス登録部に直下の優先クラスを登録する（ステップＳ１６３）。図３４（ａ）では、第３キューイングバッファ１４３が登録される。一方、図３４と異なり、下位の優先クラスが存在しない場合（ステップＳ１６２：ＮＯ）、バッファ書き込み部１５０は、処理を終了する。
【０１３８】
ステップＳ１６３において優先クラス登録部に直下の優先クラスを登録した後、バッファ書き込み部１５０は、登録優先クラスの輻輳解消閾値Ｔｈ２の現在設定値Ｙが初期設定値ａと等しいか否かを判定する（ステップＳ１６４）。図３４（ａ）では、登録優先クラス（第３キューイングバッファ１４３）の輻輳解消閾値Ｔｈ２（エントリＥ３６）において、現在設定値Ｙ（Ｙ＝４８）と初期設定値ａ（ａ＝５０）ａが等しくない。
【０１３９】
登録優先クラスの輻輳解消閾値Ｔｈ２の現在設定値Ｙが初期設定値ａと等しくない場合（ステップＳ１６４：ＮＯ）、バッファ書き込み部１５０は、図３４（ｂ）に示すように、登録優先クラスの輻輳解消閾値Ｔｈ２の現在設定値Ｙに初期設定値ａをセットする（ステップＳ１６５）。また、バッファ書き込み部１５０は、図３４（ｃ）に示すように、登録優先クラスの輻輳解消閾値Ｔｈ２の変更状態フラグＦ３０３を「０」にセットする（ステップＳ１６６）。その後、バッファ書き込み部１５０の処理は、ステップＳ１６２に戻る。一方、ステップＳ１６４において、登録優先クラスの輻輳解消閾値Ｔｈ２の現在設定値Ｙが初期設定値ａと等しい場合（ステップＳ１６４：ＹＥＳ）、バッファ書き込み部１５０の処理は、ステップＳ１６２に戻る。以上が下位の優先クラスに対する輻輳解消閾値Ｔｈ２変更解除処理の流れである。
【０１４０】
図３５は、第２実施例におけるバッファ読み出し部１６０の処理の流れを示したフローチャートである。図３５は、第１実施例の図１２と対応している。図３５のフローチャートは、図１２のフローチャートと比較すると、ステップＳ４１０、Ｓ４２０が新たに追加されている点が異なる。図３５のステップＳ４０１〜Ｓ４０８は、図１２と同様のため説明を省略する。
【０１４１】
フレームの読み出しによって（ステップＳ４０２）、キューイングバッファ（対象優先クラス）の輻輳状態が解消すると（ステップＳ４０４）バッファ読み出し部１６０は、対象優先クラスの輻輳解消閾値Ｔｈ２の変更状態フラグＦ３０３が「１」であるか否かを判定する（ステップＳ４１０）。対象優先クラスの輻輳解消閾値Ｔｈ２の変更状態フラグＦ３０３が「１」である場合（ステップＳ４１０：ＹＥＳ）、対象優先クラスに対する輻輳解消閾値Ｔｈ２変更解除処理をおこなう（ステップＳ４２０）。対象優先クラスに対する輻輳解消閾値Ｔｈ２変更解除処理の詳細については、図３６を用いて後述する。対象優先クラスに対する輻輳解消閾値Ｔｈ２変更解除処理の後、バッファ読み出し部１６０は、ステップＳ４０６の処理をおこなう。ステップＳ４１０において、対象優先クラスの輻輳解消閾値Ｔｈ２の変更状態フラグＦ３０３が「０」である場合（ステップＳ４１０：ＮＯ）、バッファ読み出し部１６０は、ステップＳ４２０をスキップし、ステップＳ４０６の処理をおこなう。以上が第２実施例におけるバッファ読み出し部１６０の処理の流れである。
【０１４２】
図３６は、図３５のステップＳ４２０における対象優先クラスに対する輻輳解消閾値Ｔｈ２変更解除処理の流れを示したフローチャートである。図３７は、ステップＳ４２０の輻輳解消閾値Ｔｈ２変更解除処理時のバッファ閾値管理テーブルを説明するための説明図である。バッファ読み出し部１６０は、この対象優先クラスに対する輻輳解消閾値Ｔｈ２変更解除処理によって、対象優先クラスの現在優先度と初期優先度とが等しくなるように設定する。以下に対象優先クラスに対する輻輳解消閾値Ｔｈ２変更解除処理の一例を示す。ここでは、図３７の第２キューイングバッファ１４２を対象優先クラスとして説明する。
【０１４３】
バッファ書き込み部１５０は、図３７（ａ）に示すように、対象優先クラスの輻輳解消閾値Ｔｈ２の現在設定値Ｙに初期設定値ａをセットする（ステップＳ４２１）。その後、バッファ書き込み部１５０は、図３７（ｂ）に示すように、登録優先クラスの輻輳解消閾値Ｔｈ２の輻輳度数Ｘを「０」にセットする（ステップＳ４２２）。また、バッファ書き込み部１５０は、図３７（ｃ）に示すように、登録優先クラスの輻輳解消閾値Ｔｈ２の変更状態フラグＦ３０３を「０」にセットする（ステップＳ４２３）。以上が対象優先クラスに対する輻輳解消閾値Ｔｈ２変更解除処理の流れである。
【０１４４】
図３８は、第２実施例のフレーム転送装置の動作を例示するための第１の説明図である。ここでは、バッファ状態管理テーブル１８０には、図４の内容が設定されているものとして説明する。図３８（ａ）では、すべてのキューイングバッファ１４１〜１４４が輻輳していない状態が示されている。このときの各優先クラスの優先順位は、キューイングバッファ１４１、１４２、１４３、１４４の順に、それぞれ１、２、３、４となっている。図３８（ｂ）では、図３０（ａ）の状態から、第３キューイングバッファ１４３へのフレームの書き込みによって、第３キューイングバッファ１４３が輻輳した状態が示されている。第３キューイングバッファ１４３が輻輳状態になると、１つ上位の優先クラスに対応する第２キューイングバッファ１４２で優先度変更設定がおこなわれる。これにより、各優先クラスの優先順位はキューイングバッファ１４１、１４２、１４３、１４４の順に、それぞれ１、３、２、４となる。また、第３キューイングバッファ１４３の輻輳解消閾値Ｔｈ２は、フレーム蓄積量減少方向（図３８の右方向）に移動する。
【０１４５】
図３９は、図３８の動作時のバッファ閾値管理テーブルを説明するための説明図である。図３９（ａ）は、キューイングバッファ１４１〜１４４が図３８（ａ）に示す状態のときのバッファ閾値管理テーブル１８５を示している。キューイングバッファ１４１〜１４４の輻輳解消閾値Ｔｈ２の現在設定値Ｙは、すべて「５０」となっている。図３９（ｂ）は、キューイングバッファ１４１〜１４４が図３８（ｂ）に示す状態のときのバッファ閾値管理テーブル１８５を示している。第３キューイングバッファ１４３が輻輳状態になると、バッファ書き込み部１５０は、対象優先クラス（第３キューイングバッファ１４３）の輻輳解消閾値Ｔｈ２（エントリＥ３６）の輻輳度数Ｘを「＋１」カウントアップする（図３０、ステップＳ１５２）。また、バッファ書き込み部１５０は、対象優先クラスの輻輳解消閾値Ｔｈ２（エントリＥ３６）の現在設定値Ｙを「４８」（４８＝５０＋１×２０×（−１）／１０）に更新し（ステップＳ１５７）、変更状態フラグＦ３０３を「１」にセットする（ステップＳ１５９）。
【０１４６】
図４０は、第２実施例のフレーム転送装置の動作を例示するための第２の説明図である。図４０（ａ）では、上述した図３８（ｂ）と同じ状態が示されている。すなわち、第３キューイングバッファ１４３が輻輳状態となり、１つ上位の優先クラスに対応する第２キューイングバッファ１４２で優先度変更設定がおこなわれている状態が示されている。
【０１４７】
図４０（ｂ）では、図４０（ａ）の状態からさらに、第４キューイングバッファ１４４が輻輳した状態が示されている。このとき、各優先クラスの優先順位は変化せず、また、第４キューイングバッファ１４４の輻輳解消閾値Ｔｈ２は、移動しない。図４０（ｃ）では、図４０（ａ）の状態からさらに、第２キューイングバッファ１４２が輻輳した状態が示されている。このとき、各優先クラスの優先順位はキューイングバッファ１４１、１４２、１４３、１４４の順に、それぞれ２、１、３、４となる。また、第２キューイングバッファ１４２の輻輳解消閾値Ｔｈ２は、フレーム蓄積量減少方向（図４０の右方向）に移動する。一方、第３キューイングバッファ１４３の輻輳解消閾値Ｔｈ２は、フレーム蓄積量増加方向（図４０の左方向）に移動して輻輳前の位置に戻る。図４０（ｄ）では、図４０（ａ）の状態からさらに、第１キューイングバッファ１４１が輻輳した状態が示されている。このとき、各優先クラスの優先順位はキューイングバッファ１４１、１４２、１４３、１４４の順に、それぞれ１、２、３、４となる。また、第１キューイングバッファ１４１の輻輳解消閾値Ｔｈ２は、フレーム蓄積量減少方向（図４０の右方向）に移動する。一方、第３キューイングバッファ１４３の輻輳解消閾値Ｔｈ２は、フレーム蓄積量増加方向（図４０の左方向）に移動して輻輳前の位置に戻る。
【０１４８】
図４１は、図４０の動作時のバッファ閾値管理テーブルを説明するための説明図である。図４１（ａ）は、キューイングバッファ１４１〜１４４が図４０（ｂ）に示す状態のときのバッファ閾値管理テーブル１８５を示している。第３キューイングバッファ１４３が輻輳状態のときに第４キューイングバッファ１４４が輻輳状態になると、バッファ書き込み部１５０は、対象優先クラス（第４キューイングバッファ１４４）の輻輳解消閾値Ｔｈ２（エントリＥ３８）の輻輳度数Ｘを「＋１」カウントアップする（図３０、ステップＳ１５２）。一方、バッファ書き込み部１５０は、対象優先クラスの輻輳解消閾値Ｔｈ２（エントリＥ３８）の現在設定値Ｙを「５０」のまま変更せず、また、変更状態フラグＦ３０３を「０」のまま変更しない（ステップＳ１５４：ＹＥＳ）。
【０１４９】
図４１（ｂ）は、キューイングバッファ１４１〜１４４が図４０（ｃ）に示す状態のときのバッファ閾値管理テーブル１８５を示している。第３キューイングバッファ１４３が輻輳状態のときに第２キューイングバッファ１４２が輻輳状態になると、バッファ書き込み部１５０は、対象優先クラス（第２キューイングバッファ１４２）の輻輳解消閾値Ｔｈ２（エントリＥ３４）の輻輳度数Ｘを「＋１」カウントアップする（図３０、ステップＳ１５２）。また、バッファ書き込み部１５０は、対象優先クラスの輻輳解消閾値Ｔｈ２（エントリＥ３４）の現在設定値Ｙを「４８」（４８＝５０＋１×２０×（−１）／１０＝４８）に更新し（ステップＳ１５７）、変更状態フラグＦ３０３を「１」にセットする（ステップＳ１５９）。さらに、バッファ書き込み部１５０は、対象優先クラスの下位の優先クラス（第３キューイングバッファ１４３）の輻輳解消閾値Ｔｈ２（エントリＥ３６）の現在設定値Ｙに初期設定値ａである「５０」をセットし（図３３、ステップＳ１６５）、変更状態フラグＦ３０３を「０」にセットする（ステップＳ１６６）。
【０１５０】
図４１（ｃ）は、キューイングバッファ１４１〜１４４が図４０（ｄ）に示す状態のときのバッファ閾値管理テーブル１８５を示している。第３キューイングバッファ１４３が輻輳状態のときに第１キューイングバッファ１４１が輻輳状態になると、バッファ書き込み部１５０は、対象優先クラス（第１キューイングバッファ１４１）の輻輳解消閾値Ｔｈ２（エントリＥ３２）の輻輳度数Ｘを「＋１」カウントアップする（図３０、ステップＳ１５２）。また、バッファ書き込み部１５０は、対象優先クラスの輻輳解消閾値Ｔｈ２（エントリＥ３２）の現在設定値Ｙを「４８」（４８＝５０＋１×２０×（−１）／１０＝４８）に更新し（ステップＳ１５７）、変更状態フラグＦ３０３を「１」にセットする（ステップＳ１５９）。さらに、バッファ書き込み部１５０は、対象優先クラスの下位の優先クラス（第３キューイングバッファ１４３）の輻輳解消閾値Ｔｈ２（エントリＥ３６）の現在設定値Ｙに初期設定値ａである「５０」をセットし（図３３、ステップＳ１６５）、変更状態フラグＦ３０３を「０」にセットする（ステップＳ１６６）。
【０１５１】
図４２は、第２実施例のフレーム転送装置の動作を例示するための第３の説明図である。図４２（ａ）では、上述した図４０（ｂ）と同じ状態が示されている。すなわち、第３キューイングバッファ１４３と第４キューイングバッファ１４４が輻輳した状態が示されている。このときの各優先クラスの優先順位は、キューイングバッファ１４１、１４２、１４３、１４４の順に、それぞれ１、３、２、４となっている。図４２（ｂ）では、図４２（ａ）の状態から、第３キューイングバッファ１４３の輻輳が解消された状態が示されている。輻輳の解消により、１つ上位の優先クラス（第２キューイングバッファ１４２）の優先度変更設定は解除される。これにより、各優先クラスの優先順位はキューイングバッファ１４１、１４２、１４３、１４４の順に、それぞれ１、２、４、３となる。また、第４キューイングバッファ１４４の輻輳解消閾値Ｔｈ２は、フレーム蓄積量減少方向（図４２の右方向）に移動する。一方、第３キューイングバッファ１４３の輻輳解消閾値Ｔｈ２は、フレーム蓄積量増加方向（図４２の左方向）に移動して輻輳前の位置に戻る。
【０１５２】
図４３は、図４２の動作時のバッファ閾値管理テーブルを説明するための説明図である。図４３（ａ）は、キューイングバッファ１４１〜１４４が図４２（ａ）に示す状態のときのバッファ閾値管理テーブル１８５を示している。キューイングバッファ１４１〜１４４の輻輳解消閾値Ｔｈ２の現在設定値Ｙは、第３キューイングバッファ１４３のみが「４８」であり、他が「５０」となっている。図４３（ｂ）は、キューイングバッファ１４１〜１４４が図４２（ｂ）に示す状態のときのバッファ閾値管理テーブル１８５を示している。バッファ読み出し部１６０は、対象優先クラス（第３キューイングバッファ１４３）の輻輳状態の解消を検出すると、対象優先クラスの輻輳解消閾値Ｔｈ２（エントリＥ３６）の現在設定値Ｙに初期設定値ａをセットする（図３６、ステップＳ４２１）。また、バッファ読み出し部１６０は、対象優先クラスの輻輳解消閾値Ｔｈ２（エントリＥ３６）の輻輳度数Ｘと輻輳状態フラグを「０」にセットする（ステップＳ４２２、Ｓ４２３）。一方、バッファ書き込み部１５０は、下位の優先クラス（第４キューイングバッファ１４４）の輻輳状態を検出すると、下位の優先クラスの輻輳解消閾値Ｔｈ２（エントリＥ３８）の輻輳度数Ｘを「＋１」カウントアップする。（図３０、ステップＳ１５２）。また、バッファ書き込み部１５０は、対象優先クラスの輻輳解消閾値Ｔｈ２（エントリＥ３４）の現在設定値Ｙを「４６」（４８＝５０＋２×２０×（−１）／１０＝４６）に更新し（ステップＳ１５７）、変更状態フラグＦ３０３を「１」にセットする（ステップＳ１５９）。
【０１５３】
図４４は、第２実施例のフレーム転送装置の動作を例示するための第４の説明図である。図４４（ａ）では、すべてのキューイングバッファ１４１〜１４４が輻輳していない状態が示されている。図４４（ｂ）では、第３キューイングバッファ１４３において、図４４（ａ）の状態から、輻輳が発生しないまま所定の時間（設定時間Ｔｐ）が経過した状態が示されている。第３キューイングバッファ１４３において、所定の時間輻輳が発生していないと、第３キューイングバッファ１４３の輻輳閾値Ｔｈ１は、フレーム蓄積量増加方向（図４４の左方向）に移動する。
【０１５４】
図４５は、図４４の動作時のバッファ閾値管理テーブルを説明するための説明図である。図４５（ａ）は、キューイングバッファ１４１〜１４４が図４４（ａ）に示す状態のときのバッファ閾値管理テーブル１８５を示している。キューイングバッファ１４１〜１４４の輻輳閾値Ｔｈ１の現在設定値Ｙは、すべて「５０」となっている。図４５（ｂ）は、キューイングバッファ１４１〜１４４が図４４（ｂ）に示す状態のときのバッファ閾値管理テーブル１８５を示している。バッファ書き込み部１５０は、第３キューイングバッファ１４３が設定時間Ｔｐ（例えば３６００秒）以上輻輳状態になっていないことを検出すると（図２４、ステップＳ１２４）、対象優先クラス（第３キューイングバッファ１４３）の輻輳閾値Ｔｈ１（エントリＥ３５）の輻輳度数Ｘを「＋１」カウントアップする（ステップＳ１２５）。また、バッファ書き込み部１５０は、対象優先クラスの輻輳閾値Ｔｈ１の現在設定値Ｙを「５２」（５２＝５０＋１×２０×１／１０）に更新し（ステップＳ１２６）、変更状態フラグＦ３０３を「１」にセットする（ステップＳ１２８）。
【０１５５】
図４６は、第２実施例のフレーム転送装置の動作を例示するための第５の説明図である。図４６（ａ）では、上述した図４４（ｂ）と同じ状態が示されている。すなわち、第３キューイングバッファ１４３が設定時間Ｔｐ以上輻輳状態にならず、輻輳閾値Ｔｈ１が、フレーム蓄積量増加方向に移動した状態が示されている。図４６（ｂ）では、図４６（ａ）の状態からさらに、第２キューイングバッファ１４２が設定時間Ｔｐ以上輻輳状態にならなかった状態が示されている。このとき、第２キューイングバッファ１４２の輻輳閾値Ｔｈ１は、フレーム蓄積量増加方向（図４６の左方向）に移動する。一方、第３キューイングバッファ１４３の輻輳閾値Ｔｈ１は、移動したままの状態で変化しない。図４０（ｃ）では、図４６（ａ）の状態からさらに、第４キューイングバッファ１４４が設定時間Ｔｐ以上輻輳状態にならなかった状態が示されている。このとき、第４キューイングバッファ１４４の輻輳閾値Ｔｈ１は、フレーム蓄積量増加方向（図４６の左方向）に移動する。一方、第３キューイングバッファ１４３の輻輳閾値Ｔｈ１は、移動したままの状態で変化しない。
【０１５６】
図４７は、図４６の動作時のバッファ閾値管理テーブルを説明するための説明図である。図４７（ａ）は、キューイングバッファ１４１〜１４４が図４６（ｂ）に示す状態のときのバッファ閾値管理テーブル１８５を示している。バッファ書き込み部１５０は、第２キューイングバッファ１４２が設定時間Ｔｐ以上輻輳状態になっていないことを検出すると（図２４、ステップＳ１２４）、対象優先クラス（第２キューイングバッファ１４２）の輻輳閾値Ｔｈ１（エントリＥ３３）の輻輳度数Ｘを「＋１」カウントアップする（ステップＳ１２５）。また、バッファ書き込み部１５０は、対象優先クラスの輻輳閾値Ｔｈ１の現在設定値Ｙを「５２」（５２＝５０＋１×２０×１／１０）に更新し（ステップＳ１２６）、変更状態フラグＦ３０３を「１」にセットする（ステップＳ１２８）。図４７（ｂ）は、キューイングバッファ１４１〜１４４が図４６（ｃ）に示す状態のときのバッファ閾値管理テーブル１８５を示している。バッファ書き込み部１５０は、第４キューイングバッファ１４４が設定時間Ｔｐ以上輻輳状態になっていないことを検出すると（図２４、ステップＳ１２４）、対象優先クラス（第４キューイングバッファ１４４）の輻輳閾値Ｔｈ１（エントリＥ３７）の輻輳度数Ｘを「＋１」カウントアップする（ステップＳ１２５）。また、バッファ書き込み部１５０は、対象優先クラスの輻輳閾値Ｔｈ１の現在設定値Ｙを「５２」（５２＝５０＋１×２０×１／１０）に更新し（ステップＳ１２６）、変更状態フラグＦ３０３を「１」にセットする（ステップＳ１２８）。
【０１５７】
以上説明した、第２実施例のフレーム転送装置１０２によれば、第１実施例と同様に、輻輳状態が発生したキューイングバッファの優先クラスの優先順位を上げつつ、フレーム種別に応じた本来の優先順位（初期優先度）を反映させた優先順位に応じてフレームの読み出しをおこなうことができる。また、これに加えて、キューイングバッファ（対象優先クラス）が輻輳状態になると、対象優先クラスの輻輳解消閾値Ｔｈ２をフレーム蓄積量減少方向に変化させるため、対象優先クラスの優先順位が上がった状態を第１実施例よりも長く持続させることができる。これにより、フレーム破棄の発生を抑制することができる。
【０１５８】
また、キューイングバッファ（対象優先クラス）の輻輳状態が所定の時間発生していないとき、対象優先クラスのキューイングバッファの輻輳閾値Ｔｈ１をフレーム蓄積量増加方向に変化させるため、対象優先クラスにおいて輻輳状態が発生しにくくなる。これにより、上位の優先クラスにおいて、対象優先クラスで輻輳状態が発生したときの優先度変更の影響を受けにくくすることができ、フレーム破棄などの不具合の発生を抑制することができる。
【０１５９】
Ｄ．第２実施例の変形例：
Ｄ１．変形例１：
本実施例では、各キューイングバッファの輻輳閾値Ｔｈ１と輻輳解消閾値Ｔｈ２を１つのテーブル（バッファ閾値管理テーブル１８５）によって管理する構成について説明したが、輻輳閾値Ｔｈ１と輻輳解消閾値Ｔｈ２は、それぞれ異なるテーブルによって管理される構成としてもよい。
【０１６０】
Ｄ２．変形例２：
本実施例では、バッファ書き込み部１５０およびバッファ読み出し部１６０が、バッファ閾値管理テーブル１８５を参照して、輻輳閾値Ｔｈ１および輻輳解消閾値Ｔｈ２の設定値の変更をおこなう構成として説明したが、フレーム転送装置１０２に搭載された図示しない演算処理部がおこなう構成としてもよい。
【０１６１】
Ｄ３．変形例３：
第１実施例で説明した変形例（第１実施例の変形例）は、本実施例のフレーム転送装置１０２にも当然に適用することができる。
【符号の説明】
【０１６２】
１０…ネットワークシステム
１００…フレーム転送装置
１１０…フレーム転送部
１３１、１３２、１３３…回線インターフェース部
１４０…キューイングバッファ群
１４１…第１キューイングバッファ
１４２…第２キューイングバッファ
１４３…第３キューイングバッファ
１４４…第４キューイングバッファ
１５０…バッファ書き込み部
１６０…バッファ読み出し部
１７０…優先クラステーブル
１８０…バッファ状態管理テーブル
１９０…記憶部
２００…ユーザ端末
３００…サーバ
４００…ストレージ
５００…設定監視用端末
【図１】
2013093834.tif 000003
【図２】
2013093834.tif 000004
【図３】
2013093834.tif 000005
【図４】
2013093834.tif 000006
【図５】
2013093834.tif 000007
【図６】
2013093834.tif 000008
【図７】
2013093834.tif 000009
【図８】
2013093834.tif 000010
【図９】
2013093834.tif 000011
【図１０】
2013093834.tif 000012
【図１１】
2013093834.tif 000013
【図１２】
2013093834.tif 000014
【図１３】
2013093834.tif 000015
【図１４】
2013093834.tif 000016
【図１５】
2013093834.tif 000017
【図１６】
2013093834.tif 000018
【図１７】
2013093834.tif 000019
【図１８】
2013093834.tif 000020
【図１９】
2013093834.tif 000021
【図２０】
2013093834.tif 000022
【図２１】
2013093834.tif 000023
【図２２】
2013093834.tif 000024
【図２３】
2013093834.tif 000025
【図２４】
2013093834.tif 000026
【図２５】
2013093834.tif 000027
【図２６】
2013093834.tif 000028
【図２７】
2013093834.tif 000029
【図２８】
2013093834.tif 000030
【図２９】
2013093834.tif 000031
【図３０】
2013093834.tif 000032
【図３１】
2013093834.tif 000033
【図３２】
2013093834.tif 000034
【図３３】
2013093834.tif 000035
【図３４】
2013093834.tif 000036
【図３５】
2013093834.tif 000037
【図３６】
2013093834.tif 000038
【図３７】
2013093834.tif 000039
【図３８】
2013093834.tif 000040
【図３９】
2013093834.tif 000041
【図４０】
2013093834.tif 000042
【図４１】
2013093834.tif 000043
【図４２】
2013093834.tif 000044
【図４３】
2013093834.tif 000045
【図４４】
2013093834.tif 000046
【図４５】
2013093834.tif 000047
【図４６】
2013093834.tif 000048
【図４７】
2013093834.tif 000049