(57)【要約】【課題】キューのバッファ容量を増やさずにパケットロスの発生頻度を低下させ、回線使用効率の低下を抑制できる通信制御装置を提供する。【解決手段】通信制御装置１は、キューイングバッファ２０１〜２０Ｎにそれぞれ割り当てられた優先度に基づく順序でキューイングバッファ２０１〜２０Ｎを選択し、当該選択されたキューイングバッファからデータブロックを出力させるバッファ制御部３１と、蓄積データ量が閾値を超過しているか否かを優先度の高い側から順に検査することにより蓄積データ量が前記閾値を超過していると最初に判定された過負荷状態のバッファ２０ｉを検出するバッファ監視部３２とを備える。優先度割り当て部３３は、過負荷状態のバッファ２０ｉに対して、このバッファ２０ｉを除く他のバッファに現在割り当てられている優先度よりも高い優先度を一時的に割り当てる。【選択図】図１
2011250310.tif 000002
【特許請求の範囲】
【請求項１】
各々が所定のデータ記憶容量を有する複数のキューイングバッファと、
前記複数のキューイングバッファにそれぞれ優先度を割り当てる優先度割り当て部と、
入力されたデータブロックを分類し、前記複数のキューイングバッファのうちその分類結果に応じたキューイングバッファに前記データブロックを入力させる入力制御部と、
前記優先度に基づく順序で前記キューイングバッファを選択し、当該選択されたキューイングバッファからデータブロックを出力させるバッファ制御部と、
前記複数のキューイングバッファの中から、前記キューイングバッファの蓄積データ量が閾値を超過しているか否かを前記優先度の高い側から順に検査することによって前記蓄積データ量が前記閾値を超過していると最初に判定された過負荷状態のバッファを検出するバッファ監視部と、
を備え、
前記優先度割り当て部は、前記バッファ監視部により前記過負荷状態のバッファが検出されたとき、前記過負荷状態のバッファに対して、該過負荷状態のバッファに現在割り当てられている優先度よりも高い優先度を一時的に割り当てる、
ことを特徴とする通信制御装置。
【請求項２】
請求項１に記載の通信制御装置であって、前記優先度割り当て部により前記過負荷状態のバッファに一時的に割り当てられる当該高い優先度は、前記複数のキューイングバッファのうち、前記過負荷状態のバッファが検出された時点で前記過負荷状態のバッファを除く他のバッファに割り当てられている優先度よりも高いことを特徴とする通信制御装置。
【請求項３】
各々が所定のデータ記憶容量を有する複数のキューイングバッファと、
前記複数のキューイングバッファにそれぞれ優先度を割り当てる優先度割り当て部と、
入力されたデータブロックを分類し、前記複数のキューイングバッファのうちその分類結果に応じたキューイングバッファに前記データブロックを入力させる入力制御部と、
前記優先度に基づく順序で前記キューイングバッファを選択し、当該選択されたキューイングバッファからデータブロックを出力させるバッファ制御部と、
前記複数のキューイングバッファの中から、前記複数のキューイングバッファの各々の蓄積データ量が閾値を超過しているか否かを前記優先度の低い側から順に検査することによって前記蓄積データ量が前記閾値を超過していると判定された過負荷状態のバッファを検出するバッファ監視部と、
を備え、
前記優先度割り当て部は、前記過負荷状態のバッファとして、第１の優先度が割り当てられた第１の過負荷状態のバッファと、前記第１の優先度よりも高い第２の優先度が割り当てられた第２の過負荷状態のバッファとがこの順で検出されたとき、前記第１の過負荷状態のバッファに対しては前記第１の優先度よりも高い第３の優先度を一時的に割り当て、前記第２の過負荷状態のバッファに対しては前記第３の優先度よりも高い第４の優先度を一時的に割り当てる、
ことを特徴とする通信制御装置。
【請求項４】
請求項３に記載の通信制御装置であって、
前記第３の優先度は、前記複数のキューイングバッファのうち、前記第１の過負荷状態のバッファが検出された時点で前記第１の過負荷状態のバッファを除く他のバッファに割り当てられている優先度よりも高い優先度であり、
前記第４の優先度は、前記複数のキューイングバッファのうち、前記第２の過負荷状態のバッファが検出された時点で前記第２の過負荷状態のバッファを除く他のバッファに割り当てられている優先度よりも高い優先度である、
ことを特徴とする通信制御装置。
【請求項５】
請求項１から４のうちのいずれか１項に記載の通信制御装置であって、前記優先度割り当て部は、少なくとも前記過負荷状態のバッファに高い優先度が一時的に割り当てられる間、前記複数のキューイングバッファのうち過負荷状態ではない他のバッファに割り当てられている優先度を固定することを特徴とする通信制御装置。
【請求項６】
請求項１から５のうちのいずれか１項に記載の通信制御装置であって、
前記バッファ監視部は、前記複数のキューイングバッファの中から前記過負荷状態が解除されたバッファを検出し、
前記優先度割り当て部は、前記バッファ監視部の検出結果に応じて、前記過負荷状態が解除されたバッファに割り当てる優先度を初期設定の優先度に変更する、
ことを特徴とする通信制御装置。
【請求項７】
請求項１から６のうちのいずれか１項に記載の通信制御装置であって、前記過負荷状態のバッファは、前記複数のキューイングバッファのうち予め指定されたバッファ群の中から検出されることを特徴とする通信制御装置。
【請求項８】
請求項１から７のうちのいずれか１項に記載の通信制御装置であって、前記入力制御部は、前記データブロックを、該データブロックの各々のヘッダに含まれている属性情報に基づいて分類することを特徴とする通信制御装置。
【請求項９】
請求項８に記載の通信制御装置であって、前記データブロックは、ＩＰパケット、セル及びフレームのうちのいずれかであることを特徴とする通信制御装置。
【請求項１０】
請求項１から９のうちのいずれか１項に記載の通信制御装置であって、前記複数のキューイングバッファから並列に出力された当該データブロックを時分割で多重化する出力制御部をさらに備えることを特徴とする通信制御装置。
【請求項１１】
各々が所定のデータ記憶容量を有する複数のキューイングバッファを用いて通信品質を制御する通信制御方法であって、
前記複数のキューイングバッファにそれぞれ優先度を割り当てるステップと、
入力されたデータブロックを分類し、前記複数のキューイングバッファのうちその分類結果に応じたキューイングバッファに前記データブロックを入力させるステップと、
前記優先度に基づく順序で前記キューイングバッファを選択し、当該選択されたキューイングバッファからデータブロックを出力させるステップと、
前記複数のキューイングバッファの中から、前記キューイングバッファの蓄積データ量が閾値を超過しているか否かを前記優先度の高い側から順に検査することによって前記蓄積データ量が前記閾値を超過していると最初に判定された過負荷状態のバッファを検出するステップと、
前記過負荷状態のバッファが検出されたとき、前記過負荷状態のバッファに対して、該過負荷状態のバッファに現在割り当てられている優先度よりも高い優先度を一時的に割り当てるステップと、
を含むことを特徴とする通信制御方法。
【請求項１２】
請求項１１に記載の通信制御方法であって、前記過負荷状態のバッファに一時的に割り当てられる当該高い優先度は、前記複数のキューイングバッファのうち、前記過負荷状態のバッファが検出された時点で前記過負荷状態のバッファを除く他のバッファに割り当てられている優先度よりも高いことを特徴とする通信制御方法。
【請求項１３】
各々が所定のデータ記憶容量を有する複数のキューイングバッファを用いて通信品質を制御する通信制御方法であって、
前記複数のキューイングバッファにそれぞれ優先度を割り当てるステップと、
入力されたデータブロックを分類し、前記複数のキューイングバッファのうちその分類結果に応じたキューイングバッファに前記データブロックを入力させるステップと、
前記優先度に基づく順序で前記キューイングバッファを選択し、当該選択されたキューイングバッファからデータブロックを出力させるステップと、
前記複数のキューイングバッファの中から、前記複数のキューイングバッファの各々の蓄積データ量が閾値を超過しているか否かを前記優先度の低い側から順に検査することによって前記蓄積データ量が前記閾値を超過していると判定された過負荷状態のバッファを検出するステップと、
前記過負荷状態のバッファとして、第１の優先度が割り当てられた第１の過負荷状態のバッファと、前記第１の優先度よりも高い第２の優先度が割り当てられた第２の過負荷状態のバッファとがこの順で検出されたとき、前記第１の過負荷状態のバッファに対しては前記第１の優先度よりも高い第３の優先度を一時的に割り当て、前記第２の過負荷状態のバッファに対しては前記第３の優先度よりも高い第４の優先度を一時的に割り当てるステップと、
を含むことを特徴とする通信制御方法。
【請求項１４】
請求項１３に記載の通信制御方法であって、
前記第３の優先度は、前記複数のキューイングバッファのうち、前記第１の過負荷状態のバッファが検出された時点で前記第１の過負荷状態のバッファを除く他のバッファに割り当てられている優先度よりも高い優先度であり、
前記第４の優先度は、前記複数のキューイングバッファのうち、前記第２の過負荷状態のバッファが検出された時点で前記第２の過負荷状態のバッファを除く他のバッファに割り当てられている優先度よりも高い優先度である、
ことを特徴とする通信制御方法。
【請求項１５】
請求項１１から１４のうちのいずれか１項に記載の通信制御方法であって、
前記複数のキューイングバッファの中から前記過負荷状態が解除されたバッファを検出するステップと、
前記過負荷状態が解除されたバッファに割り当てる優先度を前記高い優先度から初期設定の優先度に変更するステップと、
をさらに含むことを特徴とする通信制御方法。
【請求項１６】
請求項１１から１５のうちのいずれか１項に記載の通信制御方法であって、前記過負荷状態のバッファは、前記複数のキューイングバッファのうち予め指定されたバッファ群の中から検出されることを特徴とする通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットなどのデータブロックを通信網に送出する順序をスケジューリングする通信制御技術に関する。
【背景技術】
【０００２】
近年、パケット通信網やイーサネット通信網では、ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ：サービス品質）を保証するために通信網の帯域制御や輻輳制御といったトラフィック制御が行われている。パケットのトラフィック制御技術の１つとして、パケット・スケジューリングと呼ばれるものがある。パケット・スケジューリングは、到達したパケットをキューイング（一時的に記憶）し、パケットの種類に応じてパケットの送出順序をスケジューリングする技術である。たとえば、輻輳が発生し得る通信ネットワーク内または異なる通信ネットワーク間の中継ノードでトラフィックを転送するネットワーク・ルータやネットワーク・スイッチにおいてパケット・スケジューリングを実行することで、トラフィックの種類に応じた相対的な通信制御（遅延制御やジッタ制御など）を行うことができる。これにより、たとえば、映像及び音声のストリーミングデータやＶｏＩＰ（Ｖｏｉｃｅ  Ｏｖｅｒ  ＩＰ）通信データといった高い実時間性（リアルタイム性）が要求されるトラフィックの通信品質を、他のトラフィックの通信品質よりも高くする優先制御が可能となる。
【０００３】
パケット・スケジューリングに関する先行技術文献としては、たとえば、特開２００２−２７１３８５号公報（特許文献１）や特開２００５−３３４０８号公報（特許文献２）が挙げられる。特許文献１に開示されているパケット制御装置は、受信パケットを格納する複数のＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ−Ｆｉｒｓｔ−Ｏｕｔ）バッファと、ＦＩＦＯバッファに送出権を割り当てる出力制御部とを有している。出力制御部は、ＦＩＦＯバッファに設定された優先度に基づいて、これらＦＩＦＯバッファの中から、パケット送出可能な状態にあるバッファをラウンドロビン方式で選択しこのバッファに送出権を割り当てる機能を有する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−２７１３８５号公報（段落００６８、図４及び図５など）
【特許文献２】特開２００５−３３４０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１のバッファ制御装置は、優先度の高いＦＩＦＯバッファに優先的に送出権を割り当てる。このため、高い優先度が割り当てられたサービス・クラスに属するトラフィックの流量が多い通信環境下では、優先度の低いＦＩＦＯバッファへのパケットの入力が続くと、このＦＩＦＯバッファの蓄積データ量が記憶容量の上限に短時間で達し、ＦＩＦＯバッファが溢れてしまうという問題がある。ＦＩＦＯバッファの記憶容量の上限を超えて入力したパケットは破棄され、送信元が同じパケットを再送しなければならなくなり、回線使用効率が低下する。パケットロス（パケットの破棄）を回避する方法としては、たとえば、ＦＩＦＯバッファの大容量化、あるいは、送信元に対してパケット送信の停止要求を発行することが考えられる。しかしながら、ＦＩＦＯバッファの大容量化は、通信装置の製造コストの上昇を招くという問題がある。また、パケット送信の停止要求を発行すると、パケットロスを回避することはできるものの、回線使用効率の低下を改善することはできない。
【０００６】
上記に鑑みて本発明の目的は、複数のキューを用いてパケット・スケジューリングを実行する場合でも、キューのバッファ容量を増やさずにパケットロスの発生頻度を低下させることができ、しかも回線使用効率の低下を抑制することができる通信制御装置及び通信制御方法を提供することである。
【課題を解決するための手段】
【０００７】
本発明による第１の態様の通信制御装置は、各々が所定のデータ記憶容量を有する複数のキューイングバッファと、前記複数のキューイングバッファにそれぞれ優先度を割り当てる優先度割り当て部と、入力されたデータブロックを分類し、前記複数のキューイングバッファのうちその分類結果に応じたキューイングバッファに前記データブロックを入力させる入力制御部と、前記優先度に基づく順序で前記キューイングバッファを選択し、当該選択されたキューイングバッファからデータブロックを出力させるバッファ制御部と、前記複数のキューイングバッファの中から、前記キューイングバッファの蓄積データ量が閾値を超過しているか否かを前記優先度の高い側から順に検査することによって前記蓄積データ量が前記閾値を超過していると最初に判定された過負荷状態のバッファを検出するバッファ監視部と、を備え、前記優先度割り当て部は、前記バッファ監視部により前記過負荷状態のバッファが検出されたとき、前記過負荷状態のバッファに対して、該過負荷状態のバッファに現在割り当てられている優先度よりも高い優先度を一時的に割り当てることを特徴とする。
【０００８】
本発明による第２の態様の通信制御装置は、各々が所定のデータ記憶容量を有する複数のキューイングバッファと、前記複数のキューイングバッファにそれぞれ優先度を割り当てる優先度割り当て部と、入力されたデータブロックを分類し、前記複数のキューイングバッファのうちその分類結果に応じたキューイングバッファに前記データブロックを入力させる入力制御部と、前記優先度に基づく順序で前記キューイングバッファを選択し、当該選択されたキューイングバッファからデータブロックを出力させるバッファ制御部と、前記複数のキューイングバッファの中から、前記複数のキューイングバッファの各々の蓄積データ量が閾値を超過しているか否かを前記優先度の低い側から順に検査することによって前記蓄積データ量が前記閾値を超過していると判定された過負荷状態のバッファを検出するバッファ監視部と、を備え、前記優先度割り当て部は、前記過負荷状態のバッファとして、第１の優先度が割り当てられた第１の過負荷状態のバッファと、前記第１の優先度よりも高い第２の優先度が割り当てられた第２の過負荷状態のバッファとがこの順で検出されたとき、前記第１の過負荷状態のバッファに対しては前記第１の優先度よりも高い第３の優先度を一時的に割り当て、前記第２の過負荷状態のバッファに対しては前記第３の優先度よりも高い第４の優先度を一時的に割り当てることを特徴とする。
【０００９】
本発明による第３の態様の通信制御方法は、各々が所定のデータ記憶容量を有する複数のキューイングバッファを用いて通信品質を制御する通信制御方法であって、前記複数のキューイングバッファにそれぞれ優先度を割り当てるステップと、入力されたデータブロックを分類し、前記複数のキューイングバッファのうちその分類結果に応じたキューイングバッファに前記データブロックを入力させるステップと、前記優先度に基づく順序で前記キューイングバッファを選択し、当該選択されたキューイングバッファからデータブロックを出力させるステップと、前記複数のキューイングバッファの中から、前記キューイングバッファの蓄積データ量が閾値を超過しているか否かを前記優先度の高い側から順に検査することによって前記蓄積データ量が前記閾値を超過していると最初に判定された過負荷状態のバッファを検出するステップと、前記過負荷状態のバッファが検出されたとき、前記過負荷状態のバッファに対して、該過負荷状態のバッファに現在割り当てられている優先度よりも高い優先度を一時的に割り当てるステップと、を含むことを特徴とする。
【００１０】
本発明による第４の態様の通信制御方法は、各々が所定のデータ記憶容量を有する複数のキューイングバッファを用いて通信品質を制御する通信制御方法であって、前記複数のキューイングバッファにそれぞれ優先度を割り当てるステップと、入力されたデータブロックを分類し、前記複数のキューイングバッファのうちその分類結果に応じたキューイングバッファに前記データブロックを入力させるステップと、前記優先度に基づく順序で前記キューイングバッファを選択し、当該選択されたキューイングバッファからデータブロックを出力させるステップと、前記複数のキューイングバッファの中から、前記複数のキューイングバッファの各々の蓄積データ量が閾値を超過しているか否かを前記優先度の低い側から順に検査することによって前記蓄積データ量が前記閾値を超過していると判定された過負荷状態のバッファを検出するステップと、前記過負荷状態のバッファとして、第１の優先度が割り当てられた第１の過負荷状態のバッファと、前記第１の優先度よりも高い第２の優先度が割り当てられた第２の過負荷状態のバッファとがこの順で検出されたとき、前記第１の過負荷状態のバッファに対しては前記第１の優先度よりも高い第３の優先度を一時的に割り当て、前記第２の過負荷状態のバッファに対しては前記第３の優先度よりも高い第４の優先度を一時的に割り当てるステップと、を含むことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、パケットロスの発生頻度を低下させ、キューイングバッファの容量を増やさずに回線使用効率の低下を抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明に係る実施の形態１の通信制御装置の構成を概略的に示す機能ブロック図である。
【図２】実施の形態１に係る優先度動的割り当て処理の手順を概略的に示すフローチャートである。
【図３】（Ａ）は、キューイングバッファの状態の一例を概略的に示す図であり、（Ｂ）〜（Ｅ）は、優先度Ｐ（１）〜Ｐ（Ｎ）の値が遷移する様子を概略的に示す図である。
【図４】本発明に係る実施の形態２における優先度動的割り当て処理の手順を概略的に示すフローチャートである。
【図５】実施の形態３に係る優先度動的割り当て処理の手順を概略的に示すフローチャートである。
【図６】（Ａ）は、キューイングバッファの状態の一例を概略的に示す図であり、（Ｂ）〜（Ｅ）は、優先度Ｐ（１）〜Ｐ（Ｎ）の値が遷移する様子を概略的に示す図である。
【図７】本発明に係る実施の形態４における優先度動的割り当て処理の手順を概略的に示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明に係る種々の実施の形態について図面を参照しつつ説明する。
【００１４】
図１は、本発明に係る実施の形態の通信制御方法を実現するための通信制御装置１の構成を概略的に示す機能ブロック図である。図１に示されるように、この通信制御装置１は、外部から入力された単数または複数のトラフィックフローＩｐｔを構成する可変長または固定長のパケット（データブロック）を分類する入力制御部１０と、分類されたパケットを一時的に蓄積するバッファメモリ２０と、バッファメモリ２０から並列に出力されたパケットを時分割で多重化する出力制御部１１と、バッファメモリ２０の動作を制御するバッファ管理部３０とを備える。
【００１５】
通信制御装置１は、たとえば、単一の通信ネットワーク内の中継ノードあるいは複数の通信ネットワークを結ぶ中継ノードでトラフィックを転送するネットワーク・ルータやネットワーク・スイッチとして適用できるものである。通信ネットワークとしては、ＩＰパケットを伝送するＩＰネットワークに限らず、フレームを伝送するイーサネット通信網であってよい。あるいは、ＡＴＭセル（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｆｅｒ  Ｍｏｄｅ  ｃｅｌｌ）をデータブロックとして伝送するＡＴＭ通信網に通信制御装置１を適用することもできる。
【００１６】
バッファメモリ２０は、待ち行列（キュー）として機能するＮ個（Ｎは４以上の整数）のＦＩＦＯ（先入れ先出し方式：Ｆｉｒｓｔ−Ｉｎ−Ｆｉｒｓｔ−Ｏｕｔ）バッファであるキューイングバッファ２０１〜２０Ｎを含む。キューイングバッファ２０１〜２０Ｎはそれぞれ所定のデータ記憶容量の上限値を有しており、この上限値を超えて入力するパケットは破棄される。なお、本実施の形態では、バッファメモリ２０は４個以上のキューを有するが、これに限定されるものではない。少なくともトラフィックフローの種類の数だけキューを用意すればよく、キューの数が２個以上４個未満であってもよい。
【００１７】
入力制御部１０は、入力されたパケットを分類し、その分類結果に応じてキューイングバッファ２０１〜２０Ｎのいずれかに当該パケットを入力させる。具体的には、入力制御部１０は、パケットが到達すると、このパケットのヘッダに含まれている属性情報に基づいてパケットの種類を判別し、その種類に対応するｉ番目のキューイングバッファ２０ｉに当該パケットを入力させる。図１に概略的に例示されるように、キューイングバッファ２０１にはパケットＰＡ１〜ＰＡ３が蓄積され、キューイングバッファ２０２にはパケットＰＢ１〜ＰＢ２が蓄積され、キューイングバッファ２０３にはパケットＰＣ１が蓄積され、キューイングバッファ２０ＮにはパケットＰＺ１〜ＰＺ８が蓄積される。
【００１８】
ＩＰパケットを分類する場合、入力制御部１０は、ＩＰパケットのヘッダの記述内容（属性情報）に基づいてサービス・クラスを判別し、そのサービス・クラスに対応するキューイングバッファ２０ｉにＩＰパケットを振り分けることができる。たとえば、ＩＥＴＦ（Ｔｈｅ  Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）は、パケット・スケジューリングの標準化技術としてディフサーブ（Ｄｉｆｆｓｅｒｖｅ：Ｄｉｆｆｅｒｅｎｔｉａｔｅｄ  Ｓｅｒｖｉｃｅｓ）の仕様を規定している。このディフサーブの仕様では、ＩＰｖ４（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ４）パケットのヘッダにＴＯＳ（Ｔｙｐｅ  ｏｆ  Ｓｅｒｖｉｃｅ）フィールドが設けられており、このＴＯＳフィールドに、ＩＰパケットが属するサービス・クラスを表す属性情報が格納される。また、ＩＰｖ６（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  ｖｅｒｓｉｏｎ  ６）パケットのヘッダには、ＴＣ（Ｔｒａｆｆｉｃ  Ｃｌａｓｓ）フィールドが設けられており、このＴＣフィールドに、ＩＰパケットが属するサービス・クラスを表す属性情報が格納される。入力制御部１０は、ＩＰｖ４パケットのＴＯＳフィールドあるいはＩＰｖ６パケットのＴＣフィールドの記述内容に基づいてサービス・クラスを判別することができる。あるいは、ＩＰパケットの送信元アドレス、送信先アドレス、送信元ポート番号あるいは送信先ポート番号に基づいて当該ＩＰパケットを分類してもよい。
【００１９】
なお、通信制御装置１をＡＴＭ通信網に適用する場合には、入力制御部１０は、転送すべきＡＴＭセルの属するサービス・クラスに基づいてＡＴＭセルをキューイングバッファ２０ｉに振り分けることができる。ＡＴＭ通信のサービス・クラスとしては、たとえば、保証ビットレート（ＣＢＲ：Ｃｏｎｓｔａｎｔ  Ｂｉｔ  Ｒａｔｅ）、可変ビットレート（ＶＢＲ：Ｖａｒｉａｂｌｅ  Ｂｉｔ  Ｒａｔｅ）、利用可能ビットレート（ＡＢＲ：Ａｖａｉｌａｂｌｅ  Ｂｉｔ  Ｒａｔｅ）、未指定ビットレート（ＵＢＲ：Ｕｎｓｐｅｃｉｆｉｅｄ  Ｂｉｔ  Ｒａｔｅ）及び保証フレームレート（ＧＦＲ：Ｇｕａｒａｎｔｅｅｄ  Ｆｒａｍｅ  Ｒａｔｅ）がある。
【００２０】
バッファ管理部３０は、公知のキューイング・アルゴリズムに基づいてパケット・スケジューリングを行う機能を有する。公知のキューイング・アルゴリズムとしては、たとえば、プライオリティ・キューイング（Ｐｒｉｏｒｉｔｙ  Ｑｕｅｕｅｉｎｇ，ＰＱ）が挙げられる。図１に示されるように、バッファ管理部３０は、バッファ制御部３１、バッファ監視部３２及び優先度割り当て部３３を有する。
【００２１】
優先度割り当て部３３は、キューイングバッファ２０１〜２０Ｎにそれぞれ優先度Ｐ（１）〜Ｐ（Ｎ）を動的に割り当てる機能を有する。バッファ制御部３１は、キューイングバッファ２０１〜２０Ｎのうちパケット送出可能な状態にあるバッファを優先度Ｐ（１）〜Ｐ（Ｎ）に基づく順序で選択し、当該選択されたバッファからパケットを出力させる。本実施の形態では、説明の便宜上、キューイングバッファ２０ｋのバッファ番号ｋの値が小さいほど、そのキューイングバッファ２０ｋに割り当てられるデフォルト（初期設定）の優先度Ｐ（ｋ）が高くなるものとする。
【００２２】
バッファ制御部３１は、高優先度のキューイングバッファ２０ｋから優先的にパケットを出力させる制御を行う。単純なＰＱアルゴリズムを採用する場合、バッファ制御部３１は、高優先度のキューの蓄積データ量がゼロになるまで（言い換えれば、高優先度のキューから送出すべきパケットが無くなるまで）、低優先度のキューからパケットを出力させないというスケジューリングを実行することができる。バッファ監視部３２は、キューイングバッファ２０１〜２０Ｎの各々におけるパケットの蓄積データ量をリアルタイムに監視し、その監視結果をバッファ制御部３１及び優先度割り当て部３３に与える機能を有する。バッファ制御部３１は、バッファ監視部３２の監視結果に基づいてパケットの送出順序をスケジューリングすることができる。
【００２３】
また、キューイングバッファ２０１，２０２，…，２０Ｎに対しては、それぞれの記憶容量の上限値未満の閾値ＴＨ（１），ＴＨ（２），…，ＴＨ（Ｎ）が個別に設定されている。バッファ監視部３２は、キューイングバッファ２０１〜２０Ｎを優先度の高い側から順にまたは低い側から順に走査し、各走査対象のキューイングバッファ２０ｉの蓄積データ量が閾値ＴＨ（ｉ）を超過しているか否かを検査する機能を有する。キューイングバッファ２０ｉの蓄積データ量が閾値ＴＨ（ｉ）を超過すると、バッファ監視部３２は、そのキューイングバッファ２０ｉを過負荷状態のバッファとして検出し、その検出結果をバッファ制御部３１及び優先度割り当て部３３に通知する。
【００２４】
優先度割り当て部３３は、過負荷状態のバッファ２０ｉが検出されたとの通知を受けると、この過負荷状態のバッファ２０ｉに対して、他の全てのキューイングバッファの優先度よりも高い優先度を一時的に割り当てる機能を有する。これにより、キューイングバッファ２０ｉは、他のキューイングバッファよりもパケットを優先的に送出することができるので、キューイングバッファ２０ｉの過負荷状態を早期に解消させることができる。
【００２５】
また、優先度割り当て部３３は、少なくとも過負荷状態のバッファ２０ｉに一時的に高い優先度が割り当てられている間、過負荷状態ではない正常状態のキューイングバッファに割り当てられる優先度をデフォルト優先度に固定する。これにより、過負荷状態のキューイングバッファ２０ｉの当該過負荷状態を確実に解消させることができる。
【００２６】
バッファ監視部３２は、キューイングバッファ２０１〜２０Ｎの中から過負荷状態が解除されたキューイングバッファ２０ｋを検出し、その検出結果をバッファ制御部３１及び優先度割り当て部３３に通知する機能を有する。優先度割り当て部３３は、キューイングバッファ２０ｋの過負荷状態が解除されたとの通知を受けると、キューイングバッファ２０ｋの優先度Ｐ（ｋ）を、一時的に割り当てられた優先度からデフォルト優先度（初期設定の優先度）に戻す。
【００２７】
次に、閾値ＴＨ（１）〜ＴＨ（Ｎ）の決定方法について一例を挙げて説明する。比較的高いデフォルト優先度が割り当てられたキューイングバッファ２０ｊは、高い実時間性（リアルタイム性）が要求されるサービスに使用される。低いデフォルト優先度が割り当てられたキューイングバッファ２０ｋが上記のとおり一時的に高い優先度を与えられたとしても、高い実時間性が要求されるサービスが必要とする伝送帯域は確保されなければならない。この点を考慮して閾値ＴＨ（１）〜ＴＨ（Ｎ）を決定する必要がある。たとえば、伝送路の容量がＸｂｐｓ（Ｘビット毎秒）、実時間性が要求されるサービスが必要とする伝送帯域がＹｂｐｓ（Ｙビット毎秒）、１秒に１回のデータ伝送があるとする。この場合、実時間性が要求されるサービス以外のサービスのデータは１秒間に（Ｘ−Ｙ）ビット送出することができる。全てのキューにおける閾値ＴＨ（１）〜ＴＨ（Ｎ）を超えた分の合計データ量がこの（Ｘ−Ｙ）ビットを超えない範囲であれば、実時間性が要求されるサービスの伝送帯域を確保しつつ全バッファの閾値ＴＨ（１）〜ＴＨ（Ｎ）を超えた分を１秒間に送出し切ることができる。ここで、Ｙは、実時間性が要求されるサービス全てについての合計伝送帯域である。
【００２８】
したがって、キューイングバッファ２０ｉの容量の上限値をＺ（ｉ）バイトとするとき、次式（１）を満たすように閾値ＴＨ（ｉ）を設定すれば、たとえキューイングバッファ２０１〜２０Ｎの全てが容量の上限値ぎりぎりまでデータを蓄積した状態であっても実時間性が要求されるサービスの伝送帯域を確保しつつ、閾値ＴＨ（ｉ）を超えた分を１秒間に送出し切ることができる。
【００２９】
【数１】
2011250310.tif 000003
上式（１）においては、全ての閾値ＴＨ（１）〜ＴＨ（Ｎ）は均等な値に設定されるものとする。
【００３０】
上記構成を有する通信制御装置１を用いた実施の形態１〜４の通信制御方法（パケット・スケジューリング方法）を以下に詳細に説明する。
【００３１】
実施の形態１．
以下、図２及び図３（Ａ），（Ｂ）〜（Ｅ）を参照しつつ、本発明に係る実施の形態１のパケット・スケジューリング方法を説明する。図２は、実施の形態１に係る優先度動的割り当て処理の手順を概略的に示すフローチャートである。また、図３（Ａ）は、キューイングバッファ２０１〜２０Ｎの状態の一例を概略的に示す図であり、図３（Ｂ）〜（Ｅ）は、優先度Ｐ（１）〜Ｐ（Ｎ）の値が遷移する様子を概略的に示す図である。
【００３２】
図２を参照すると、まず、優先度割り当て部３３は、キューイングバッファ２０１〜２０Ｎに割り当てられる優先度Ｐ（１）〜Ｐ（Ｎ）をそれぞれデフォルト優先度に設定し、その設定情報をバッファ制御部３１の内部メモリＲｅｇに保存する（ステップＳ１０）。上述したように、キューイングバッファ２０ｉのバッファ番号ｉの値が小さいほど、そのキューイングバッファ２０ｉに割り当てられるデフォルト（初期設定）の優先度が高くなるものとする。図３（Ｂ）に例示されるように、キューイングバッファ２０ｉの優先度Ｐ（ｉ）の値をバッファ番号ｉに設定することができる。バッファ制御部３１は、デフォルト優先度に基づいてキューイングバッファ２０１〜２０Ｎを選択する順序をスケジューリングし、その順序で選択されたキューイングバッファにパケットを送出させる。
【００３３】
その後、バッファ監視部３２は、キューイングバッファ２０１〜２０Ｎを優先度Ｐ（１）〜Ｐ（Ｎ）の高い側から順に走査して、各走査対象のキューイングバッファ２０ｉの蓄積データ量が閾値ＴＨ（ｉ）を超過しているか否かを検査する（ステップＳ１１〜Ｓ１４）。具体的には、バッファ監視部３２は、変数ｉを「１」に設定し（ステップＳ１１）、その後、キューイングバッファ２０ｉの蓄積データ量が閾値ＴＨ（ｉ）を超過しているか否かを判定する（ステップＳ１３）。蓄積データ量が閾値ＴＨ（ｉ）を超過していないと判定したとき（ステップＳ１３のＮＯ）、バッファ監視部３２は、変数ｉを１だけインクリメントし（ステップＳ１４）、変数ｉが最下位のキューイングバッファ２０Ｎの番号（＝Ｎ）よりも大きいか否かを判定する（ステップＳ１２）。
【００３４】
全てのキューイングバッファ２０１〜２０Ｎの蓄積データ量がそれぞれ閾値ＴＨ（１）〜ＴＨ（Ｎ）を超えていないときは、変数ｉが「Ｎ」よりも大きくなる（ステップＳ１２のＹＥＳ）。この場合、ステップＳ１８で制御終了判定（ステップＳ１８のＹＥＳ）がなければ、ステップＳ１１に処理が戻り、バッファ監視部３２は、再度、キューイングバッファ２０１〜２０Ｎを優先度Ｐ（１）〜Ｐ（Ｎ）の高い側から順に走査して、各走査対象のキューイングバッファ２０ｉの蓄積データ量が閾値ＴＨ（ｉ）を超過しているか否かを検査する（ステップＳ１１〜Ｓ１４）。
【００３５】
一方、ステップＳ１３において、蓄積データ量が閾値ＴＨ（ｉ）を超過していると判定されると（ステップＳ１３のＹＥＳ）、蓄積データ量が閾値ＴＨ（ｉ）を超過した過負荷状態のバッファ２０ｉが検出される。このとき、バッファ監視部３２は走査を中断する。優先度割り当て部３３は、バッファ監視部３２からその検出結果の通知を受けると、当該キューイングバッファ２０ｉの優先度Ｐ（ｉ）を他のキューイングバッファの優先度よりも高い優先度に設定し、その設定情報をバッファ制御部３１の内部メモリＲｅｇに保存する（ステップＳ１５）。これにより、バッファ制御部３１は、新たに設定された優先度に基づいてキューイングバッファ２０１〜２０Ｎを選択する順序をスケジューリングし、その順序で選択されたキューイングバッファにパケットを送出させる。この結果、過負荷状態のバッファ２０ｉは、他のキューイングバッファよりもパケットを優先的に送出することとなる。
【００３６】
その後、バッファ監視部３２は、過負荷状態のバッファ２０ｉの蓄積データ量を監視し（ステップＳ１６）、当該バッファ２０ｉの蓄積データ量が閾値ＴＨ（ｉ）以下となったことを検出したとき（ステップＳ１６のＹＥＳ）、その検出結果をバッファ制御部３１及び優先度割り当て部３３に通知する。優先度割り当て部３３は、その通知を受けて、キューイングバッファ２０ｉの優先度Ｐ（ｉ）を最高優先度からデフォルト優先度に戻す（ステップＳ１７）。これにより、バッファ制御部３１は、元のデフォルト優先度に基づいてキューイングバッファ２０１〜２０Ｎを選択する順序をスケジューリングし、その順序で選択されたキューイングバッファにパケットを送出させる。その後、ステップＳ１８で制御終了判定（ステップＳ１８のＹＥＳ）がなければ、ステップＳ１１に処理が戻る。
【００３７】
上記したように実施の形態１に係る通信制御方法によれば、過負荷状態のバッファ２０ｉが検出されると（ステップＳ１３のＹＥＳ）、この過負荷状態のバッファ２０ｉに他のキューイングバッファよりも高い優先度が一時的に割り当てられる（ステップＳ１５）。たとえば、図３（Ａ）に示されるように優先度が比較的下位のキューイングバッファ２０３の蓄積データ量が閾値ＴＨ（３）を超えている場合、図３（Ｃ）に示されるように、過負荷状態のバッファ２０３の優先度Ｐ（３）は、デフォルト優先度「３」から最高優先度「０」に変更される。その後、キューイングバッファ２０３の過負荷状態が解消されたとき、優先度Ｐ（３）はデフォルト優先度「３」に戻る（図３（Ｄ））。したがって、本来であればキューイングバッファ２０３の容量の上限値を超えるようなパケットの入力がある状況でも、キューイングバッファ２０３が溢れる可能性が低くなり、パケットロスや、送信元へのパケット送信の停止要求の発行を抑えることができる。しかもバッファメモリ２０の容量を増やさずに回線使用効率の低下を抑えることができる。
【００３８】
また、バッファ監視部３２は、キューイングバッファ２０１〜２０Ｎを優先度の高い側から順に走査し（ステップＳ１１〜Ｓ１４）、過負荷状態のバッファ２０ｉを検出すると（ステップＳ１３のＹＥＳ）、走査を中断する。このため、蓄積データ量が閾値を超過していると最初に判定された過負荷状態のバッファ２０ｉに最高優先度が一時的に割り当てられる（ステップＳ１５）。したがって、過負荷状態のバッファ２０ｉ，２０ｊ（ｉ＜ｊ）が複数並存したとしても、高品質が要求される上位のサービスに使用するキューイングバッファ２０ｉの過負荷状態を優先的に解消することができる。たとえば、図３（Ａ）に示されるように、過負荷状態のバッファ２０３，２０Ｎが並存するときでも、まず、上位のサービスに使用されるキューイングバッファ２０３の優先度Ｐ（３）が最高優先度「０」に設定される（図３（Ｃ））。その後、キューイングバッファ２０３の過負荷状態が解消された後に、優先度Ｐ（３）がデフォルト優先度「３」に戻される（図３（Ｄ））。そして、過負荷状態のキューイングバッファ２０Ｎの優先度Ｐ（Ｎ）が最高優先度「０」に設定され（図３（Ｅ））、これによりキューイングバッファ２０Ｎの過負荷状態が解消される。
【００３９】
実施の形態２．
次に、本発明に係る実施の形態２のパケット・スケジューリング方法を説明する。本実施の形態は、バッファ監視部３２がキューイングバッファ２０１〜２０Ｎのうち予め指定されたバッファ２０Ｎａ〜２０Ｎ（Ｎａ＞１）の中から過負荷状態のバッファを検出する点を除いて、上記実施の形態１と同じである。
【００４０】
図４は、実施の形態２に係る優先度動的割り当て処理の手順を概略的に示すフローチャートである。図４のフローチャートは、ステップＳ１０Ｂ，Ｓ１１Ｂを除いて、図２のフローチャートと同じである。ステップＳ１０Ｂでは、優先度割り当て部３３は、キューイングバッファ２０Ｎａ〜２０Ｎに割り当てられる優先度Ｐ（Ｎａ）〜Ｐ（Ｎ）をそれぞれデフォルト優先度に設定し、その設定情報をバッファ制御部３１の内部メモリＲｅｇに保存する。また、ステップＳ１１Ｂでは、変数ｉが「Ｎａ」の値に初期化される。
【００４１】
したがって、デフォルト優先度が高く、また実時間性が要求されるサービスに使用されるために過負荷状態になる可能性が低いキューイングバッファ２０１〜２０Ｎａ−１を優先度動的割り当て処理の対象から除くことができるので、優先度動的割り当て処理を効率良く実行することができる。
【００４２】
実施の形態３．
次に、図５及び図６（Ａ），（Ｂ）〜（Ｅ）を参照しつつ、本発明に係る実施の形態３のパケット・スケジューリング方法を説明する。図５は、実施の形態３に係る優先度動的割り当て処理の手順を概略的に示すフローチャートである。また、図６（Ａ）は、キューイングバッファ２０１〜２０Ｎの状態の一例を概略的に示す図であり、図６（Ｂ）〜（Ｅ）は、優先度Ｐ（１）〜Ｐ（Ｎ）の値が遷移する様子を概略的に示す図である。
【００４３】
図５を参照すると、まず、優先度割り当て部３３は、キューイングバッファ２０１〜２０Ｎに割り当てられる優先度Ｐ（１）〜Ｐ（Ｎ）をそれぞれデフォルト優先度に設定し、その設定情報をバッファ制御部３１の内部メモリＲｅｇに保存する（ステップＳ２０）。ここで、図６（Ｂ）に例示されるように、キューイングバッファ２０ｉの優先度Ｐ（ｉ）の値をバッファ番号ｉに設定することができる。バッファ制御部３１は、デフォルト優先度に基づいてキューイングバッファ２０１〜２０Ｎを選択する順序をスケジューリングし、その順序で選択されたキューイングバッファにパケットを送出させる。
【００４４】
その後、バッファ監視部３２は、キューイングバッファ２０１〜２０Ｎを優先度Ｐ（１）〜Ｐ（Ｎ）の低い側から順に走査し、各走査対象のキューイングバッファ２０ｉの蓄積データ量が閾値ＴＨ（ｉ）を超過しているか否かを検査する。具体的には、バッファ監視部３２は、変数ｉ，ｋ，Ｑ（１）〜Ｑ（Ｎ）をそれぞれ初期化する（ステップＳ２１）。その後、バッファ監視部３２は、ステップＳ２２を経て、キューイングバッファ２０ｉの蓄積データ量が閾値ＴＨ（ｉ）を超過しているか否かを判定する（ステップＳ２３）。
【００４５】
蓄積データ量が閾値ＴＨ（ｉ）を超過していないと判定されると（ステップＳ２３のＮＯ）、バッファ監視部３２は、変数ｉを１だけデクリメントして（ステップＳ２７）、ステップＳ２２に処理を移行させる。
【００４６】
一方、蓄積データ量が閾値ＴＨ（ｉ）を超過していると判定されると（ステップＳ２３のＹＥＳ）、蓄積データ量が閾値ＴＨ（ｉ）を超過した過負荷状態のバッファ２０ｉが検出される。このとき、優先度割り当て部３３は、バッファ監視部３２からその検出結果の通知を受けて、当該キューイングバッファ２０ｉの優先度Ｐ（ｉ）を、他のキューイングバッファに現在割り当てられている優先度「１」〜「Ｎ」よりも高い優先度（たとえば「０」）に設定し、その設定情報をバッファ制御部３１の内部メモリＲｅｇに保存する（ステップＳ２４）。次に、優先度割り当て部３３は、変数Ｑ（ｋ）をバッファ番号ｉに設定し（ステップＳ２５）、変数ｋを１だけインクリメントし（ステップＳ２６）、変数ｉを１だけデクリメントして（ステップＳ２７）、ステップＳ２２に処理を移行させる。ステップＳ２２では、優先度割り当て部３３は、変数ｉが最上位のキューイングバッファ２０１の番号（＝１）よりも小さいか否かを判定する。
【００４７】
その後、変数ｉが「１」を下回らず（ステップＳ２２のＮＯ）、さらに過負荷状態のバッファ２０ｉが検出されたとき（ステップＳ２３のＹＥＳ）、優先度割り当て部３３は、当該キューイングバッファ２０ｉの優先度Ｐ（ｉ）を、他のキューイングバッファに現在割り当てられている優先度よりも高い優先度（たとえば「−１」）に設定し、その設定情報をバッファ制御部３１の内部メモリＲｅｇに保存する（ステップＳ２４）。
【００４８】
上記のように実施の形態２に係る優先度動的割り当て処理では、複数の過負荷状態のバッファ２０ｉ１，２０ｉ２（ｉ１＞ｉ２）が存在するとき、バッファ監視部３２は、１回の走査で、これら複数のキューイングバッファ２０ｉ１，２０ｉ２を検出することができる。また、優先度割り当て部３３は、これら過負荷状態のバッファ２０ｉ１，２０ｉ２のうち下位のキューイングバッファ２０ｉ１に一時的に割り当てる優先度（たとえば「０」）よりも、このキューイングバッファ２０ｉ１の検出後に検出された上位のキューイングバッファ２０ｉ２に一時的に割り当てる優先度を高いもの（たとえば「−１」）に設定する。
【００４９】
全てのキューイングバッファ２０１〜２０Ｎに対する検査が完了すると、変数ｉが「１」よりも小さいと判定される（ステップＳ２２のＹＥＳ）。このとき、バッファ制御部３１は、変数ｋを「Ｎ」に設定する（ステップＳ３０）。その後、ステップＳ３１を経て、変数Ｑ（ｋ）が初期設定値「０」であるときは（ステップＳ３２のＹＥＳ）、ステップＳ３１に処理が移行する。一方、変数Ｑ（ｋ）が「０」でないとき（ステップＳ３２のＮＯ）、すなわち、ステップＳ２５にて変数Ｑ（ｋ）に過負荷状態のバッファのバッファ番号が設定されているときは、バッファ監視部３２は、検出された過負荷状態のバッファ２０Ｑ（ｋ）の蓄積データ量を監視し（ステップＳ３３）、当該バッファ２０Ｑ（ｋ）の蓄積データ量が閾値ＴＨ（Ｑ（ｋ））以下となったことを検出したとき（ステップＳ３３のＹＥＳ）、その検出結果をバッファ制御部３１及び優先度割り当て部３３に通知する。優先度割り当て部３３は、その通知を受けて、キューイングバッファ２０Ｑ（ｋ）の優先度Ｐ（Ｑ（ｋ））をデフォルト優先度に戻す（ステップＳ３４）。その後、変数ｋは１だけデクリメントされ（ステップＳ３５）、ステップＳ３１に処理が移行する。変数ｋが「１」以上であり、かつ、変数Ｑ（ｋ）が「０」でないときは（ステップＳ３１のＮＯ及びステップＳ３２のＮＯ）、ステップＳ３３，Ｓ３４が再度実行される。
【００５０】
全ての過負荷状態のバッファ２０Ｑ（ｋ）の優先度Ｐ（Ｑ（ｋ））がデフォルト優先度に戻った後は、変数ｋが「１」より小さいと判定される（ステップＳ３１のＹＥＳ）。その後、ステップＳ３６で制御終了判定（ステップＳ３６のＹＥＳ）がなければ、ステップＳ２１に処理が戻る。バッファ制御部３１は、元のデフォルト優先度に基づいてキューイングバッファ２０１〜２０Ｎを選択する順序をスケジューリングし、その順序で選択されたキューイングバッファにパケットを送出させることとなる。
【００５１】
上記したように実施の形態３に係る通信制御方法によれば、過負荷状態のバッファ２０ｉが検出されると（ステップＳ２３のＹＥＳ）、この過負荷状態のバッファ２０ｉに対して、他のキューイングバッファに現在割り当てられている優先度よりも高い優先度が一時的に割り当てられる（ステップＳ２４）。したがって、パケットロスや、送信元へのパケット送信の停止要求の発行を抑えることができる。しかもバッファメモリ２０の容量を増やさずに回線使用効率の低下を抑えることができる。
【００５２】
また、過負荷状態のバッファ２０ｉ，２０ｊ（ｉ＜ｊ）が複数検出されたときでも、上位のキューイングバッファ２０ｊに一時的に割り当てられる優先度を、下位のキューイングバッファ２０ｉに一時的に割り当てられる優先度よりも高くするので、高品質が要求される上位のサービスに使用するキューイングバッファ２０ｉの過負荷状態を優先的に解消することができる。
【００５３】
たとえば、図６（Ａ）に示されるようにキューイングバッファ２０３，２０Ｎの蓄積データ量がそれぞれ閾値ＴＨ（３），ＴＨ（Ｎ）を超えている場合、まず、図６（Ｂ）に示されるように、過負荷状態のバッファ２０Ｎの優先度Ｐ（Ｎ）がデフォルト優先度「Ｎ」から優先度「０」に変更され、その後に検出された過負荷状態のバッファ２０３の優先度Ｐ（３）がデフォルト優先度「３」から優先度「−１」に変更される。その後、キューイングバッファ２０３の過負荷状態が解消されると、優先度Ｐ（３）はデフォルト優先度「３」に戻り（図６（Ｄ））、次いで、キューイングバッファ２０Ｎの過負荷状態が解消されると、優先度Ｐ（Ｎ）はデフォルト優先度「Ｎ」に戻る（図６（Ｅ））。
【００５４】
実施の形態４．
次に、本発明に係る実施の形態４のパケット・スケジューリング方法を説明する。本実施の形態は、バッファ監視部３２がキューイングバッファ２０１〜２０Ｎのうち予め指定されたバッファ２０Ｎａ〜２０Ｎ（Ｎａ＞１）の中から過負荷状態のバッファを検出する点を除いて、上記実施の形態３とほぼ同じである。
【００５５】
図７は、実施の形態４に係る優先度動的割り当て処理の手順を概略的に示すフローチャートである。図７のフローチャートは、ステップＳ２０Ｂ，Ｓ２２Ｂ，Ｓ３０Ｂを除いて、図５のフローチャートと同じである。ステップＳ２０Ｂでは、優先度割り当て部３３は、キューイングバッファ２０Ｎａ〜２０Ｎに割り当てられる優先度Ｐ（Ｎａ）〜Ｐ（Ｎ）をそれぞれデフォルト優先度に設定し、その設定情報をバッファ制御部３１の内部メモリＲｅｇに保存する。また、変数ｉが「Ｎａ」を下回らないとき（ステップＳ２２ＢのＮＯ）、ステップＳ２３が実行される。一方、検査対象のキューイングバッファ２０Ｎａ〜２０Ｎの全てに対する検査が完了すると、変数ｉが「Ｎａ」よりも小さいと判定され（ステップＳ２２ＢのＹＥＳ）、ステップＳ３０Ｂに処理が移行する。
【００５６】
ステップＳ３０Ｂでは、変数ｋが「Ｎ−Ｎａ＋１」に設定される。その後は、上記したステップＳ３１〜Ｓ３６が実行されることとなる。
【００５７】
上記したように実施の形態４では、デフォルト優先度が高く、また実時間性が要求されるサービスに使用されるために過負荷状態になる可能性が低いキューイングバッファ２０１〜２０Ｎａ−１を優先度動的割り当て処理の対象から除くことができるので、優先度動的割り当て処理を効率良く実行することができる。
【００５８】
実施の形態１〜４の変形例．
以上、図面を参照して本発明に係る種々の実施の形態について述べたが、これらは本発明の例示であり、上記以外の様々な形態を採用することもできる。たとえば、バッファ管理部３０は、ＣＰＵなどのマイクロプロセッサ，ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）及び入出力インタフェースを含む制御回路で構成することができる。また、バッファ管理部３０の機能の全部または一部を、マイクロプロセッサにより実行される制御用コンピュータプログラムで実現することも可能である。
【符号の説明】
【００５９】
１  通信制御装置、  １０  入力制御部、  １１  出力制御部、  ２０  バッファメモリ、  ２０１〜２０Ｎ  キューイングバッファ、  ３０  バッファ管理部、  ３１  バッファ制御部、  ３２  バッファ監視部、  ３３  優先度割り当て部。
【図１】
2011250310.tif 000004
【図２】
2011250310.tif 000005
【図３】
2011250310.tif 000006
【図４】
2011250310.tif 000007
【図５】
2011250310.tif 000008
【図６】
2011250310.tif 000009
【図７】
2011250310.tif 000010
【手続補正書】
【提出日】平成22年6月23日(2010.6.23)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００５２
【補正方法】変更
【補正の内容】
【００５２】
また、過負荷状態のバッファ２０ｉ，２０ｊ（ｉ＜ｊ）が複数検出されたときでも、上位のキューイングバッファ２０ｉに一時的に割り当てられる優先度を、下位のキューイングバッファ２０ｊに一時的に割り当てられる優先度よりも高くするので、高品質が要求される上位のサービスに使用するキューイングバッファ２０ｉの過負荷状態を優先的に解消することができる。
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図５
【補正方法】変更
【補正の内容】
【図５】
2011250310.tif 000011
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図７
【補正方法】変更
【補正の内容】
【図７】
2011250310.tif 000012