説明

通信制御装置及び通信制御方法

【課題】キューのバッファ容量を増やさずにパケットロスの発生頻度を低下させ、回線使用効率の低下を抑制できる通信制御装置を提供する。
【解決手段】通信制御装置1は、キューイングバッファ20〜20にそれぞれ割り当てられた優先度に基づく順序でキューイングバッファ20〜20を選択し、当該選択されたキューイングバッファからデータブロックを出力させるバッファ制御部31と、蓄積データ量が閾値を超過しているか否かを優先度の高い側から順に検査することにより蓄積データ量が前記閾値を超過していると最初に判定された過負荷状態のバッファ20を検出するバッファ監視部32とを備える。優先度割り当て部33は、過負荷状態のバッファ20に対して、このバッファ20を除く他のバッファに現在割り当てられている優先度よりも高い優先度を一時的に割り当てる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、IP(Internet Protocol)パケットなどのデータブロックを通信網に送出する順序をスケジューリングする通信制御技術に関する。
【背景技術】
【0002】
近年、パケット通信網やイーサネット通信網では、QoS(Quality of Service:サービス品質)を保証するために通信網の帯域制御や輻輳制御といったトラフィック制御が行われている。パケットのトラフィック制御技術の1つとして、パケット・スケジューリングと呼ばれるものがある。パケット・スケジューリングは、到達したパケットをキューイング(一時的に記憶)し、パケットの種類に応じてパケットの送出順序をスケジューリングする技術である。たとえば、輻輳が発生し得る通信ネットワーク内または異なる通信ネットワーク間の中継ノードでトラフィックを転送するネットワーク・ルータやネットワーク・スイッチにおいてパケット・スケジューリングを実行することで、トラフィックの種類に応じた相対的な通信制御(遅延制御やジッタ制御など)を行うことができる。これにより、たとえば、映像及び音声のストリーミングデータやVoIP(Voice Over IP)通信データといった高い実時間性(リアルタイム性)が要求されるトラフィックの通信品質を、他のトラフィックの通信品質よりも高くする優先制御が可能となる。
【0003】
パケット・スケジューリングに関する先行技術文献としては、たとえば、特開2002−271385号公報(特許文献1)や特開2005−33408号公報(特許文献2)が挙げられる。特許文献1に開示されているパケット制御装置は、受信パケットを格納する複数のFIFO(First−In−First−Out)バッファと、FIFOバッファに送出権を割り当てる出力制御部とを有している。出力制御部は、FIFOバッファに設定された優先度に基づいて、これらFIFOバッファの中から、パケット送出可能な状態にあるバッファをラウンドロビン方式で選択しこのバッファに送出権を割り当てる機能を有する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2002−271385号公報(段落0068、図4及び図5など)
【特許文献2】特開2005−33408号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1のバッファ制御装置は、優先度の高いFIFOバッファに優先的に送出権を割り当てる。このため、高い優先度が割り当てられたサービス・クラスに属するトラフィックの流量が多い通信環境下では、優先度の低いFIFOバッファへのパケットの入力が続くと、このFIFOバッファの蓄積データ量が記憶容量の上限に短時間で達し、FIFOバッファが溢れてしまうという問題がある。FIFOバッファの記憶容量の上限を超えて入力したパケットは破棄され、送信元が同じパケットを再送しなければならなくなり、回線使用効率が低下する。パケットロス(パケットの破棄)を回避する方法としては、たとえば、FIFOバッファの大容量化、あるいは、送信元に対してパケット送信の停止要求を発行することが考えられる。しかしながら、FIFOバッファの大容量化は、通信装置の製造コストの上昇を招くという問題がある。また、パケット送信の停止要求を発行すると、パケットロスを回避することはできるものの、回線使用効率の低下を改善することはできない。
【0006】
上記に鑑みて本発明の目的は、複数のキューを用いてパケット・スケジューリングを実行する場合でも、キューのバッファ容量を増やさずにパケットロスの発生頻度を低下させることができ、しかも回線使用効率の低下を抑制することができる通信制御装置及び通信制御方法を提供することである。
【課題を解決するための手段】
【0007】
本発明による第1の態様の通信制御装置は、各々が所定のデータ記憶容量を有する複数のキューイングバッファと、前記複数のキューイングバッファにそれぞれ優先度を割り当てる優先度割り当て部と、入力されたデータブロックを分類し、前記複数のキューイングバッファのうちその分類結果に応じたキューイングバッファに前記データブロックを入力させる入力制御部と、前記優先度に基づく順序で前記キューイングバッファを選択し、当該選択されたキューイングバッファからデータブロックを出力させるバッファ制御部と、前記複数のキューイングバッファの中から、前記キューイングバッファの蓄積データ量が閾値を超過しているか否かを前記優先度の高い側から順に検査することによって前記蓄積データ量が前記閾値を超過していると最初に判定された過負荷状態のバッファを検出するバッファ監視部と、を備え、前記優先度割り当て部は、前記バッファ監視部により前記過負荷状態のバッファが検出されたとき、前記過負荷状態のバッファに対して、該過負荷状態のバッファに現在割り当てられている優先度よりも高い優先度を一時的に割り当てることを特徴とする。
【0008】
本発明による第2の態様の通信制御装置は、各々が所定のデータ記憶容量を有する複数のキューイングバッファと、前記複数のキューイングバッファにそれぞれ優先度を割り当てる優先度割り当て部と、入力されたデータブロックを分類し、前記複数のキューイングバッファのうちその分類結果に応じたキューイングバッファに前記データブロックを入力させる入力制御部と、前記優先度に基づく順序で前記キューイングバッファを選択し、当該選択されたキューイングバッファからデータブロックを出力させるバッファ制御部と、前記複数のキューイングバッファの中から、前記複数のキューイングバッファの各々の蓄積データ量が閾値を超過しているか否かを前記優先度の低い側から順に検査することによって前記蓄積データ量が前記閾値を超過していると判定された過負荷状態のバッファを検出するバッファ監視部と、を備え、前記優先度割り当て部は、前記過負荷状態のバッファとして、第1の優先度が割り当てられた第1の過負荷状態のバッファと、前記第1の優先度よりも高い第2の優先度が割り当てられた第2の過負荷状態のバッファとがこの順で検出されたとき、前記第1の過負荷状態のバッファに対しては前記第1の優先度よりも高い第3の優先度を一時的に割り当て、前記第2の過負荷状態のバッファに対しては前記第3の優先度よりも高い第4の優先度を一時的に割り当てることを特徴とする。
【0009】
本発明による第3の態様の通信制御方法は、各々が所定のデータ記憶容量を有する複数のキューイングバッファを用いて通信品質を制御する通信制御方法であって、前記複数のキューイングバッファにそれぞれ優先度を割り当てるステップと、入力されたデータブロックを分類し、前記複数のキューイングバッファのうちその分類結果に応じたキューイングバッファに前記データブロックを入力させるステップと、前記優先度に基づく順序で前記キューイングバッファを選択し、当該選択されたキューイングバッファからデータブロックを出力させるステップと、前記複数のキューイングバッファの中から、前記キューイングバッファの蓄積データ量が閾値を超過しているか否かを前記優先度の高い側から順に検査することによって前記蓄積データ量が前記閾値を超過していると最初に判定された過負荷状態のバッファを検出するステップと、前記過負荷状態のバッファが検出されたとき、前記過負荷状態のバッファに対して、該過負荷状態のバッファに現在割り当てられている優先度よりも高い優先度を一時的に割り当てるステップと、を含むことを特徴とする。
【0010】
本発明による第4の態様の通信制御方法は、各々が所定のデータ記憶容量を有する複数のキューイングバッファを用いて通信品質を制御する通信制御方法であって、前記複数のキューイングバッファにそれぞれ優先度を割り当てるステップと、入力されたデータブロックを分類し、前記複数のキューイングバッファのうちその分類結果に応じたキューイングバッファに前記データブロックを入力させるステップと、前記優先度に基づく順序で前記キューイングバッファを選択し、当該選択されたキューイングバッファからデータブロックを出力させるステップと、前記複数のキューイングバッファの中から、前記複数のキューイングバッファの各々の蓄積データ量が閾値を超過しているか否かを前記優先度の低い側から順に検査することによって前記蓄積データ量が前記閾値を超過していると判定された過負荷状態のバッファを検出するステップと、前記過負荷状態のバッファとして、第1の優先度が割り当てられた第1の過負荷状態のバッファと、前記第1の優先度よりも高い第2の優先度が割り当てられた第2の過負荷状態のバッファとがこの順で検出されたとき、前記第1の過負荷状態のバッファに対しては前記第1の優先度よりも高い第3の優先度を一時的に割り当て、前記第2の過負荷状態のバッファに対しては前記第3の優先度よりも高い第4の優先度を一時的に割り当てるステップと、を含むことを特徴とする。
【発明の効果】
【0011】
本発明によれば、パケットロスの発生頻度を低下させ、キューイングバッファの容量を増やさずに回線使用効率の低下を抑制することができる。
【図面の簡単な説明】
【0012】
【図1】本発明に係る実施の形態1の通信制御装置の構成を概略的に示す機能ブロック図である。
【図2】実施の形態1に係る優先度動的割り当て処理の手順を概略的に示すフローチャートである。
【図3】(A)は、キューイングバッファの状態の一例を概略的に示す図であり、(B)〜(E)は、優先度P(1)〜P(N)の値が遷移する様子を概略的に示す図である。
【図4】本発明に係る実施の形態2における優先度動的割り当て処理の手順を概略的に示すフローチャートである。
【図5】実施の形態3に係る優先度動的割り当て処理の手順を概略的に示すフローチャートである。
【図6】(A)は、キューイングバッファの状態の一例を概略的に示す図であり、(B)〜(E)は、優先度P(1)〜P(N)の値が遷移する様子を概略的に示す図である。
【図7】本発明に係る実施の形態4における優先度動的割り当て処理の手順を概略的に示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本発明に係る種々の実施の形態について図面を参照しつつ説明する。
【0014】
図1は、本発明に係る実施の形態の通信制御方法を実現するための通信制御装置1の構成を概略的に示す機能ブロック図である。図1に示されるように、この通信制御装置1は、外部から入力された単数または複数のトラフィックフローIptを構成する可変長または固定長のパケット(データブロック)を分類する入力制御部10と、分類されたパケットを一時的に蓄積するバッファメモリ20と、バッファメモリ20から並列に出力されたパケットを時分割で多重化する出力制御部11と、バッファメモリ20の動作を制御するバッファ管理部30とを備える。

【0015】
通信制御装置1は、たとえば、単一の通信ネットワーク内の中継ノードあるいは複数の通信ネットワークを結ぶ中継ノードでトラフィックを転送するネットワーク・ルータやネットワーク・スイッチとして適用できるものである。通信ネットワークとしては、IPパケットを伝送するIPネットワークに限らず、フレームを伝送するイーサネット通信網であってよい。あるいは、ATMセル(Asynchronous Transfer Mode cell)をデータブロックとして伝送するATM通信網に通信制御装置1を適用することもできる。
【0016】
バッファメモリ20は、待ち行列(キュー)として機能するN個(Nは4以上の整数)のFIFO(先入れ先出し方式:First−In−First−Out)バッファであるキューイングバッファ20〜20を含む。キューイングバッファ20〜20はそれぞれ所定のデータ記憶容量の上限値を有しており、この上限値を超えて入力するパケットは破棄される。なお、本実施の形態では、バッファメモリ20は4個以上のキューを有するが、これに限定されるものではない。少なくともトラフィックフローの種類の数だけキューを用意すればよく、キューの数が2個以上4個未満であってもよい。
【0017】
入力制御部10は、入力されたパケットを分類し、その分類結果に応じてキューイングバッファ20〜20のいずれかに当該パケットを入力させる。具体的には、入力制御部10は、パケットが到達すると、このパケットのヘッダに含まれている属性情報に基づいてパケットの種類を判別し、その種類に対応するi番目のキューイングバッファ20に当該パケットを入力させる。図1に概略的に例示されるように、キューイングバッファ20にはパケットPA1〜PA3が蓄積され、キューイングバッファ20にはパケットPB1〜PB2が蓄積され、キューイングバッファ20にはパケットPC1が蓄積され、キューイングバッファ20にはパケットPZ1〜PZ8が蓄積される。
【0018】
IPパケットを分類する場合、入力制御部10は、IPパケットのヘッダの記述内容(属性情報)に基づいてサービス・クラスを判別し、そのサービス・クラスに対応するキューイングバッファ20にIPパケットを振り分けることができる。たとえば、IETF(The Internet Engineering Task Force)は、パケット・スケジューリングの標準化技術としてディフサーブ(Diffserve:Differentiated Services)の仕様を規定している。このディフサーブの仕様では、IPv4(Internet Protocol version 4)パケットのヘッダにTOS(Type of Service)フィールドが設けられており、このTOSフィールドに、IPパケットが属するサービス・クラスを表す属性情報が格納される。また、IPv6(Internet Protocol version 6)パケットのヘッダには、TC(Traffic Class)フィールドが設けられており、このTCフィールドに、IPパケットが属するサービス・クラスを表す属性情報が格納される。入力制御部10は、IPv4パケットのTOSフィールドあるいはIPv6パケットのTCフィールドの記述内容に基づいてサービス・クラスを判別することができる。あるいは、IPパケットの送信元アドレス、送信先アドレス、送信元ポート番号あるいは送信先ポート番号に基づいて当該IPパケットを分類してもよい。
【0019】
なお、通信制御装置1をATM通信網に適用する場合には、入力制御部10は、転送すべきATMセルの属するサービス・クラスに基づいてATMセルをキューイングバッファ20に振り分けることができる。ATM通信のサービス・クラスとしては、たとえば、保証ビットレート(CBR:Constant Bit Rate)、可変ビットレート(VBR:Variable Bit Rate)、利用可能ビットレート(ABR:Available Bit Rate)、未指定ビットレート(UBR:Unspecified Bit Rate)及び保証フレームレート(GFR:Guaranteed Frame Rate)がある。
【0020】
バッファ管理部30は、公知のキューイング・アルゴリズムに基づいてパケット・スケジューリングを行う機能を有する。公知のキューイング・アルゴリズムとしては、たとえば、プライオリティ・キューイング(Priority Queueing,PQ)が挙げられる。図1に示されるように、バッファ管理部30は、バッファ制御部31、バッファ監視部32及び優先度割り当て部33を有する。
【0021】
優先度割り当て部33は、キューイングバッファ20〜20にそれぞれ優先度P(1)〜P(N)を動的に割り当てる機能を有する。バッファ制御部31は、キューイングバッファ20〜20のうちパケット送出可能な状態にあるバッファを優先度P(1)〜P(N)に基づく順序で選択し、当該選択されたバッファからパケットを出力させる。本実施の形態では、説明の便宜上、キューイングバッファ20のバッファ番号kの値が小さいほど、そのキューイングバッファ20に割り当てられるデフォルト(初期設定)の優先度P(k)が高くなるものとする。
【0022】
バッファ制御部31は、高優先度のキューイングバッファ20から優先的にパケットを出力させる制御を行う。単純なPQアルゴリズムを採用する場合、バッファ制御部31は、高優先度のキューの蓄積データ量がゼロになるまで(言い換えれば、高優先度のキューから送出すべきパケットが無くなるまで)、低優先度のキューからパケットを出力させないというスケジューリングを実行することができる。バッファ監視部32は、キューイングバッファ20〜20の各々におけるパケットの蓄積データ量をリアルタイムに監視し、その監視結果をバッファ制御部31及び優先度割り当て部33に与える機能を有する。バッファ制御部31は、バッファ監視部32の監視結果に基づいてパケットの送出順序をスケジューリングすることができる。
【0023】
また、キューイングバッファ20,20,…,20に対しては、それぞれの記憶容量の上限値未満の閾値TH(1),TH(2),…,TH(N)が個別に設定されている。バッファ監視部32は、キューイングバッファ20〜20を優先度の高い側から順にまたは低い側から順に走査し、各走査対象のキューイングバッファ20の蓄積データ量が閾値TH(i)を超過しているか否かを検査する機能を有する。キューイングバッファ20の蓄積データ量が閾値TH(i)を超過すると、バッファ監視部32は、そのキューイングバッファ20を過負荷状態のバッファとして検出し、その検出結果をバッファ制御部31及び優先度割り当て部33に通知する。
【0024】
優先度割り当て部33は、過負荷状態のバッファ20が検出されたとの通知を受けると、この過負荷状態のバッファ20に対して、他の全てのキューイングバッファの優先度よりも高い優先度を一時的に割り当てる機能を有する。これにより、キューイングバッファ20は、他のキューイングバッファよりもパケットを優先的に送出することができるので、キューイングバッファ20の過負荷状態を早期に解消させることができる。
【0025】
また、優先度割り当て部33は、少なくとも過負荷状態のバッファ20に一時的に高い優先度が割り当てられている間、過負荷状態ではない正常状態のキューイングバッファに割り当てられる優先度をデフォルト優先度に固定する。これにより、過負荷状態のキューイングバッファ20の当該過負荷状態を確実に解消させることができる。
【0026】
バッファ監視部32は、キューイングバッファ20〜20の中から過負荷状態が解除されたキューイングバッファ20を検出し、その検出結果をバッファ制御部31及び優先度割り当て部33に通知する機能を有する。優先度割り当て部33は、キューイングバッファ20の過負荷状態が解除されたとの通知を受けると、キューイングバッファ20の優先度P(k)を、一時的に割り当てられた優先度からデフォルト優先度(初期設定の優先度)に戻す。
【0027】
次に、閾値TH(1)〜TH(N)の決定方法について一例を挙げて説明する。比較的高いデフォルト優先度が割り当てられたキューイングバッファ20は、高い実時間性(リアルタイム性)が要求されるサービスに使用される。低いデフォルト優先度が割り当てられたキューイングバッファ20が上記のとおり一時的に高い優先度を与えられたとしても、高い実時間性が要求されるサービスが必要とする伝送帯域は確保されなければならない。この点を考慮して閾値TH(1)〜TH(N)を決定する必要がある。たとえば、伝送路の容量がXbps(Xビット毎秒)、実時間性が要求されるサービスが必要とする伝送帯域がYbps(Yビット毎秒)、1秒に1回のデータ伝送があるとする。この場合、実時間性が要求されるサービス以外のサービスのデータは1秒間に(X−Y)ビット送出することができる。全てのキューにおける閾値TH(1)〜TH(N)を超えた分の合計データ量がこの(X−Y)ビットを超えない範囲であれば、実時間性が要求されるサービスの伝送帯域を確保しつつ全バッファの閾値TH(1)〜TH(N)を超えた分を1秒間に送出し切ることができる。ここで、Yは、実時間性が要求されるサービス全てについての合計伝送帯域である。
【0028】
したがって、キューイングバッファ20の容量の上限値をZ(i)バイトとするとき、次式(1)を満たすように閾値TH(i)を設定すれば、たとえキューイングバッファ20〜20の全てが容量の上限値ぎりぎりまでデータを蓄積した状態であっても実時間性が要求されるサービスの伝送帯域を確保しつつ、閾値TH(i)を超えた分を1秒間に送出し切ることができる。
【0029】
【数1】

上式(1)においては、全ての閾値TH(1)〜TH(N)は均等な値に設定されるものとする。
【0030】
上記構成を有する通信制御装置1を用いた実施の形態1〜4の通信制御方法(パケット・スケジューリング方法)を以下に詳細に説明する。
【0031】
実施の形態1.
以下、図2及び図3(A),(B)〜(E)を参照しつつ、本発明に係る実施の形態1のパケット・スケジューリング方法を説明する。図2は、実施の形態1に係る優先度動的割り当て処理の手順を概略的に示すフローチャートである。また、図3(A)は、キューイングバッファ20〜20の状態の一例を概略的に示す図であり、図3(B)〜(E)は、優先度P(1)〜P(N)の値が遷移する様子を概略的に示す図である。
【0032】
図2を参照すると、まず、優先度割り当て部33は、キューイングバッファ20〜20に割り当てられる優先度P(1)〜P(N)をそれぞれデフォルト優先度に設定し、その設定情報をバッファ制御部31の内部メモリRegに保存する(ステップS10)。上述したように、キューイングバッファ20のバッファ番号iの値が小さいほど、そのキューイングバッファ20に割り当てられるデフォルト(初期設定)の優先度が高くなるものとする。図3(B)に例示されるように、キューイングバッファ20の優先度P(i)の値をバッファ番号iに設定することができる。バッファ制御部31は、デフォルト優先度に基づいてキューイングバッファ20〜20を選択する順序をスケジューリングし、その順序で選択されたキューイングバッファにパケットを送出させる。
【0033】
その後、バッファ監視部32は、キューイングバッファ20〜20を優先度P(1)〜P(N)の高い側から順に走査して、各走査対象のキューイングバッファ20の蓄積データ量が閾値TH(i)を超過しているか否かを検査する(ステップS11〜S14)。具体的には、バッファ監視部32は、変数iを「1」に設定し(ステップS11)、その後、キューイングバッファ20の蓄積データ量が閾値TH(i)を超過しているか否かを判定する(ステップS13)。蓄積データ量が閾値TH(i)を超過していないと判定したとき(ステップS13のNO)、バッファ監視部32は、変数iを1だけインクリメントし(ステップS14)、変数iが最下位のキューイングバッファ20の番号(=N)よりも大きいか否かを判定する(ステップS12)。
【0034】
全てのキューイングバッファ20〜20の蓄積データ量がそれぞれ閾値TH(1)〜TH(N)を超えていないときは、変数iが「N」よりも大きくなる(ステップS12のYES)。この場合、ステップS18で制御終了判定(ステップS18のYES)がなければ、ステップS11に処理が戻り、バッファ監視部32は、再度、キューイングバッファ20〜20を優先度P(1)〜P(N)の高い側から順に走査して、各走査対象のキューイングバッファ20の蓄積データ量が閾値TH(i)を超過しているか否かを検査する(ステップS11〜S14)。
【0035】
一方、ステップS13において、蓄積データ量が閾値TH(i)を超過していると判定されると(ステップS13のYES)、蓄積データ量が閾値TH(i)を超過した過負荷状態のバッファ20が検出される。このとき、バッファ監視部32は走査を中断する。優先度割り当て部33は、バッファ監視部32からその検出結果の通知を受けると、当該キューイングバッファ20の優先度P(i)を他のキューイングバッファの優先度よりも高い優先度に設定し、その設定情報をバッファ制御部31の内部メモリRegに保存する(ステップS15)。これにより、バッファ制御部31は、新たに設定された優先度に基づいてキューイングバッファ20〜20を選択する順序をスケジューリングし、その順序で選択されたキューイングバッファにパケットを送出させる。この結果、過負荷状態のバッファ20は、他のキューイングバッファよりもパケットを優先的に送出することとなる。
【0036】
その後、バッファ監視部32は、過負荷状態のバッファ20の蓄積データ量を監視し(ステップS16)、当該バッファ20の蓄積データ量が閾値TH(i)以下となったことを検出したとき(ステップS16のYES)、その検出結果をバッファ制御部31及び優先度割り当て部33に通知する。優先度割り当て部33は、その通知を受けて、キューイングバッファ20の優先度P(i)を最高優先度からデフォルト優先度に戻す(ステップS17)。これにより、バッファ制御部31は、元のデフォルト優先度に基づいてキューイングバッファ20〜20を選択する順序をスケジューリングし、その順序で選択されたキューイングバッファにパケットを送出させる。その後、ステップS18で制御終了判定(ステップS18のYES)がなければ、ステップS11に処理が戻る。
【0037】
上記したように実施の形態1に係る通信制御方法によれば、過負荷状態のバッファ20が検出されると(ステップS13のYES)、この過負荷状態のバッファ20に他のキューイングバッファよりも高い優先度が一時的に割り当てられる(ステップS15)。たとえば、図3(A)に示されるように優先度が比較的下位のキューイングバッファ20の蓄積データ量が閾値TH(3)を超えている場合、図3(C)に示されるように、過負荷状態のバッファ20の優先度P(3)は、デフォルト優先度「3」から最高優先度「0」に変更される。その後、キューイングバッファ20の過負荷状態が解消されたとき、優先度P(3)はデフォルト優先度「3」に戻る(図3(D))。したがって、本来であればキューイングバッファ20の容量の上限値を超えるようなパケットの入力がある状況でも、キューイングバッファ20が溢れる可能性が低くなり、パケットロスや、送信元へのパケット送信の停止要求の発行を抑えることができる。しかもバッファメモリ20の容量を増やさずに回線使用効率の低下を抑えることができる。
【0038】
また、バッファ監視部32は、キューイングバッファ20〜20を優先度の高い側から順に走査し(ステップS11〜S14)、過負荷状態のバッファ20を検出すると(ステップS13のYES)、走査を中断する。このため、蓄積データ量が閾値を超過していると最初に判定された過負荷状態のバッファ20に最高優先度が一時的に割り当てられる(ステップS15)。したがって、過負荷状態のバッファ20,20(i<j)が複数並存したとしても、高品質が要求される上位のサービスに使用するキューイングバッファ20の過負荷状態を優先的に解消することができる。たとえば、図3(A)に示されるように、過負荷状態のバッファ20,20が並存するときでも、まず、上位のサービスに使用されるキューイングバッファ20の優先度P(3)が最高優先度「0」に設定される(図3(C))。その後、キューイングバッファ20の過負荷状態が解消された後に、優先度P(3)がデフォルト優先度「3」に戻される(図3(D))。そして、過負荷状態のキューイングバッファ20の優先度P(N)が最高優先度「0」に設定され(図3(E))、これによりキューイングバッファ20の過負荷状態が解消される。
【0039】
実施の形態2.
次に、本発明に係る実施の形態2のパケット・スケジューリング方法を説明する。本実施の形態は、バッファ監視部32がキューイングバッファ20〜20のうち予め指定されたバッファ20Na〜20(Na>1)の中から過負荷状態のバッファを検出する点を除いて、上記実施の形態1と同じである。
【0040】
図4は、実施の形態2に係る優先度動的割り当て処理の手順を概略的に示すフローチャートである。図4のフローチャートは、ステップS10B,S11Bを除いて、図2のフローチャートと同じである。ステップS10Bでは、優先度割り当て部33は、キューイングバッファ20Na〜20に割り当てられる優先度P(Na)〜P(N)をそれぞれデフォルト優先度に設定し、その設定情報をバッファ制御部31の内部メモリRegに保存する。また、ステップS11Bでは、変数iが「Na」の値に初期化される。
【0041】
したがって、デフォルト優先度が高く、また実時間性が要求されるサービスに使用されるために過負荷状態になる可能性が低いキューイングバッファ20〜20Na−1を優先度動的割り当て処理の対象から除くことができるので、優先度動的割り当て処理を効率良く実行することができる。
【0042】
実施の形態3.
次に、図5及び図6(A),(B)〜(E)を参照しつつ、本発明に係る実施の形態3のパケット・スケジューリング方法を説明する。図5は、実施の形態3に係る優先度動的割り当て処理の手順を概略的に示すフローチャートである。また、図6(A)は、キューイングバッファ20〜20の状態の一例を概略的に示す図であり、図6(B)〜(E)は、優先度P(1)〜P(N)の値が遷移する様子を概略的に示す図である。
【0043】
図5を参照すると、まず、優先度割り当て部33は、キューイングバッファ20〜20に割り当てられる優先度P(1)〜P(N)をそれぞれデフォルト優先度に設定し、その設定情報をバッファ制御部31の内部メモリRegに保存する(ステップS20)。ここで、図6(B)に例示されるように、キューイングバッファ20の優先度P(i)の値をバッファ番号iに設定することができる。バッファ制御部31は、デフォルト優先度に基づいてキューイングバッファ20〜20を選択する順序をスケジューリングし、その順序で選択されたキューイングバッファにパケットを送出させる。
【0044】
その後、バッファ監視部32は、キューイングバッファ20〜20を優先度P(1)〜P(N)の低い側から順に走査し、各走査対象のキューイングバッファ20の蓄積データ量が閾値TH(i)を超過しているか否かを検査する。具体的には、バッファ監視部32は、変数i,k,Q(1)〜Q(N)をそれぞれ初期化する(ステップS21)。その後、バッファ監視部32は、ステップS22を経て、キューイングバッファ20の蓄積データ量が閾値TH(i)を超過しているか否かを判定する(ステップS23)。
【0045】
蓄積データ量が閾値TH(i)を超過していないと判定されると(ステップS23のNO)、バッファ監視部32は、変数iを1だけデクリメントして(ステップS27)、ステップS22に処理を移行させる。
【0046】
一方、蓄積データ量が閾値TH(i)を超過していると判定されると(ステップS23のYES)、蓄積データ量が閾値TH(i)を超過した過負荷状態のバッファ20が検出される。このとき、優先度割り当て部33は、バッファ監視部32からその検出結果の通知を受けて、当該キューイングバッファ20の優先度P(i)を、他のキューイングバッファに現在割り当てられている優先度「1」〜「N」よりも高い優先度(たとえば「0」)に設定し、その設定情報をバッファ制御部31の内部メモリRegに保存する(ステップS24)。次に、優先度割り当て部33は、変数Q(k)をバッファ番号iに設定し(ステップS25)、変数kを1だけインクリメントし(ステップS26)、変数iを1だけデクリメントして(ステップS27)、ステップS22に処理を移行させる。ステップS22では、優先度割り当て部33は、変数iが最上位のキューイングバッファ20の番号(=1)よりも小さいか否かを判定する。
【0047】
その後、変数iが「1」を下回らず(ステップS22のNO)、さらに過負荷状態のバッファ20が検出されたとき(ステップS23のYES)、優先度割り当て部33は、当該キューイングバッファ20の優先度P(i)を、他のキューイングバッファに現在割り当てられている優先度よりも高い優先度(たとえば「−1」)に設定し、その設定情報をバッファ制御部31の内部メモリRegに保存する(ステップS24)。
【0048】
上記のように実施の形態2に係る優先度動的割り当て処理では、複数の過負荷状態のバッファ20i1,20i2(i1>i2)が存在するとき、バッファ監視部32は、1回の走査で、これら複数のキューイングバッファ20i1,20i2を検出することができる。また、優先度割り当て部33は、これら過負荷状態のバッファ20i1,20i2のうち下位のキューイングバッファ20i1に一時的に割り当てる優先度(たとえば「0」)よりも、このキューイングバッファ20i1の検出後に検出された上位のキューイングバッファ20i2に一時的に割り当てる優先度を高いもの(たとえば「−1」)に設定する。
【0049】
全てのキューイングバッファ20〜20に対する検査が完了すると、変数iが「1」よりも小さいと判定される(ステップS22のYES)。このとき、バッファ制御部31は、変数kを「N」に設定する(ステップS30)。その後、ステップS31を経て、変数Q(k)が初期設定値「0」であるときは(ステップS32のYES)、ステップS31に処理が移行する。一方、変数Q(k)が「0」でないとき(ステップS32のNO)、すなわち、ステップS25にて変数Q(k)に過負荷状態のバッファのバッファ番号が設定されているときは、バッファ監視部32は、検出された過負荷状態のバッファ20Q(k)の蓄積データ量を監視し(ステップS33)、当該バッファ20Q(k)の蓄積データ量が閾値TH(Q(k))以下となったことを検出したとき(ステップS33のYES)、その検出結果をバッファ制御部31及び優先度割り当て部33に通知する。優先度割り当て部33は、その通知を受けて、キューイングバッファ20Q(k)の優先度P(Q(k))をデフォルト優先度に戻す(ステップS34)。その後、変数kは1だけデクリメントされ(ステップS35)、ステップS31に処理が移行する。変数kが「1」以上であり、かつ、変数Q(k)が「0」でないときは(ステップS31のNO及びステップS32のNO)、ステップS33,S34が再度実行される。
【0050】
全ての過負荷状態のバッファ20Q(k)の優先度P(Q(k))がデフォルト優先度に戻った後は、変数kが「1」より小さいと判定される(ステップS31のYES)。その後、ステップS36で制御終了判定(ステップS36のYES)がなければ、ステップS21に処理が戻る。バッファ制御部31は、元のデフォルト優先度に基づいてキューイングバッファ20〜20を選択する順序をスケジューリングし、その順序で選択されたキューイングバッファにパケットを送出させることとなる。
【0051】
上記したように実施の形態3に係る通信制御方法によれば、過負荷状態のバッファ20が検出されると(ステップS23のYES)、この過負荷状態のバッファ20に対して、他のキューイングバッファに現在割り当てられている優先度よりも高い優先度が一時的に割り当てられる(ステップS24)。したがって、パケットロスや、送信元へのパケット送信の停止要求の発行を抑えることができる。しかもバッファメモリ20の容量を増やさずに回線使用効率の低下を抑えることができる。
【0052】
また、過負荷状態のバッファ20,20(i<j)が複数検出されたときでも、上位のキューイングバッファ20に一時的に割り当てられる優先度を、下位のキューイングバッファ20に一時的に割り当てられる優先度よりも高くするので、高品質が要求される上位のサービスに使用するキューイングバッファ20の過負荷状態を優先的に解消することができる。
【0053】
たとえば、図6(A)に示されるようにキューイングバッファ20,20の蓄積データ量がそれぞれ閾値TH(3),TH(N)を超えている場合、まず、図6(B)に示されるように、過負荷状態のバッファ20の優先度P(N)がデフォルト優先度「N」から優先度「0」に変更され、その後に検出された過負荷状態のバッファ20の優先度P(3)がデフォルト優先度「3」から優先度「−1」に変更される。その後、キューイングバッファ20の過負荷状態が解消されると、優先度P(3)はデフォルト優先度「3」に戻り(図6(D))、次いで、キューイングバッファ20の過負荷状態が解消されると、優先度P(N)はデフォルト優先度「N」に戻る(図6(E))。
【0054】
実施の形態4.
次に、本発明に係る実施の形態4のパケット・スケジューリング方法を説明する。本実施の形態は、バッファ監視部32がキューイングバッファ20〜20のうち予め指定されたバッファ20Na〜20(Na>1)の中から過負荷状態のバッファを検出する点を除いて、上記実施の形態3とほぼ同じである。
【0055】
図7は、実施の形態4に係る優先度動的割り当て処理の手順を概略的に示すフローチャートである。図7のフローチャートは、ステップS20B,S22B,S30Bを除いて、図5のフローチャートと同じである。ステップS20Bでは、優先度割り当て部33は、キューイングバッファ20Na〜20に割り当てられる優先度P(Na)〜P(N)をそれぞれデフォルト優先度に設定し、その設定情報をバッファ制御部31の内部メモリRegに保存する。また、変数iが「Na」を下回らないとき(ステップS22BのNO)、ステップS23が実行される。一方、検査対象のキューイングバッファ20Na〜20の全てに対する検査が完了すると、変数iが「Na」よりも小さいと判定され(ステップS22BのYES)、ステップS30Bに処理が移行する。
【0056】
ステップS30Bでは、変数kが「N−Na+1」に設定される。その後は、上記したステップS31〜S36が実行されることとなる。
【0057】
上記したように実施の形態4では、デフォルト優先度が高く、また実時間性が要求されるサービスに使用されるために過負荷状態になる可能性が低いキューイングバッファ20〜20Na−1を優先度動的割り当て処理の対象から除くことができるので、優先度動的割り当て処理を効率良く実行することができる。
【0058】
実施の形態1〜4の変形例.
以上、図面を参照して本発明に係る種々の実施の形態について述べたが、これらは本発明の例示であり、上記以外の様々な形態を採用することもできる。たとえば、バッファ管理部30は、CPUなどのマイクロプロセッサ,ROM(Read Only Memory),RAM(Random Access Memory)及び入出力インタフェースを含む制御回路で構成することができる。また、バッファ管理部30の機能の全部または一部を、マイクロプロセッサにより実行される制御用コンピュータプログラムで実現することも可能である。
【符号の説明】
【0059】
1 通信制御装置、 10 入力制御部、 11 出力制御部、 20 バッファメモリ、 20〜20 キューイングバッファ、 30 バッファ管理部、 31 バッファ制御部、 32 バッファ監視部、 33 優先度割り当て部。

【特許請求の範囲】
【請求項1】
各々が所定のデータ記憶容量を有する複数のキューイングバッファと、
前記複数のキューイングバッファにそれぞれ優先度を割り当てる優先度割り当て部と、
入力されたデータブロックを分類し、前記複数のキューイングバッファのうちその分類結果に応じたキューイングバッファに前記データブロックを入力させる入力制御部と、
前記優先度に基づく順序で前記キューイングバッファを選択し、当該選択されたキューイングバッファからデータブロックを出力させるバッファ制御部と、
前記複数のキューイングバッファの中から、前記キューイングバッファの蓄積データ量が閾値を超過しているか否かを前記優先度の高い側から順に検査することによって前記蓄積データ量が前記閾値を超過していると最初に判定された過負荷状態のバッファを検出するバッファ監視部と、
を備え、
前記優先度割り当て部は、前記バッファ監視部により前記過負荷状態のバッファが検出されたとき、前記過負荷状態のバッファに対して、該過負荷状態のバッファに現在割り当てられている優先度よりも高い優先度を一時的に割り当てる、
ことを特徴とする通信制御装置。
【請求項2】
請求項1に記載の通信制御装置であって、前記優先度割り当て部により前記過負荷状態のバッファに一時的に割り当てられる当該高い優先度は、前記複数のキューイングバッファのうち、前記過負荷状態のバッファが検出された時点で前記過負荷状態のバッファを除く他のバッファに割り当てられている優先度よりも高いことを特徴とする通信制御装置。
【請求項3】
各々が所定のデータ記憶容量を有する複数のキューイングバッファと、
前記複数のキューイングバッファにそれぞれ優先度を割り当てる優先度割り当て部と、
入力されたデータブロックを分類し、前記複数のキューイングバッファのうちその分類結果に応じたキューイングバッファに前記データブロックを入力させる入力制御部と、
前記優先度に基づく順序で前記キューイングバッファを選択し、当該選択されたキューイングバッファからデータブロックを出力させるバッファ制御部と、
前記複数のキューイングバッファの中から、前記複数のキューイングバッファの各々の蓄積データ量が閾値を超過しているか否かを前記優先度の低い側から順に検査することによって前記蓄積データ量が前記閾値を超過していると判定された過負荷状態のバッファを検出するバッファ監視部と、
を備え、
前記優先度割り当て部は、前記過負荷状態のバッファとして、第1の優先度が割り当てられた第1の過負荷状態のバッファと、前記第1の優先度よりも高い第2の優先度が割り当てられた第2の過負荷状態のバッファとがこの順で検出されたとき、前記第1の過負荷状態のバッファに対しては前記第1の優先度よりも高い第3の優先度を一時的に割り当て、前記第2の過負荷状態のバッファに対しては前記第3の優先度よりも高い第4の優先度を一時的に割り当てる、
ことを特徴とする通信制御装置。
【請求項4】
請求項3に記載の通信制御装置であって、
前記第3の優先度は、前記複数のキューイングバッファのうち、前記第1の過負荷状態のバッファが検出された時点で前記第1の過負荷状態のバッファを除く他のバッファに割り当てられている優先度よりも高い優先度であり、
前記第4の優先度は、前記複数のキューイングバッファのうち、前記第2の過負荷状態のバッファが検出された時点で前記第2の過負荷状態のバッファを除く他のバッファに割り当てられている優先度よりも高い優先度である、
ことを特徴とする通信制御装置。
【請求項5】
請求項1から4のうちのいずれか1項に記載の通信制御装置であって、前記優先度割り当て部は、少なくとも前記過負荷状態のバッファに高い優先度が一時的に割り当てられる間、前記複数のキューイングバッファのうち過負荷状態ではない他のバッファに割り当てられている優先度を固定することを特徴とする通信制御装置。
【請求項6】
請求項1から5のうちのいずれか1項に記載の通信制御装置であって、
前記バッファ監視部は、前記複数のキューイングバッファの中から前記過負荷状態が解除されたバッファを検出し、
前記優先度割り当て部は、前記バッファ監視部の検出結果に応じて、前記過負荷状態が解除されたバッファに割り当てる優先度を初期設定の優先度に変更する、
ことを特徴とする通信制御装置。
【請求項7】
請求項1から6のうちのいずれか1項に記載の通信制御装置であって、前記過負荷状態のバッファは、前記複数のキューイングバッファのうち予め指定されたバッファ群の中から検出されることを特徴とする通信制御装置。
【請求項8】
請求項1から7のうちのいずれか1項に記載の通信制御装置であって、前記入力制御部は、前記データブロックを、該データブロックの各々のヘッダに含まれている属性情報に基づいて分類することを特徴とする通信制御装置。
【請求項9】
請求項8に記載の通信制御装置であって、前記データブロックは、IPパケット、セル及びフレームのうちのいずれかであることを特徴とする通信制御装置。
【請求項10】
請求項1から9のうちのいずれか1項に記載の通信制御装置であって、前記複数のキューイングバッファから並列に出力された当該データブロックを時分割で多重化する出力制御部をさらに備えることを特徴とする通信制御装置。
【請求項11】
各々が所定のデータ記憶容量を有する複数のキューイングバッファを用いて通信品質を制御する通信制御方法であって、
前記複数のキューイングバッファにそれぞれ優先度を割り当てるステップと、
入力されたデータブロックを分類し、前記複数のキューイングバッファのうちその分類結果に応じたキューイングバッファに前記データブロックを入力させるステップと、
前記優先度に基づく順序で前記キューイングバッファを選択し、当該選択されたキューイングバッファからデータブロックを出力させるステップと、
前記複数のキューイングバッファの中から、前記キューイングバッファの蓄積データ量が閾値を超過しているか否かを前記優先度の高い側から順に検査することによって前記蓄積データ量が前記閾値を超過していると最初に判定された過負荷状態のバッファを検出するステップと、
前記過負荷状態のバッファが検出されたとき、前記過負荷状態のバッファに対して、該過負荷状態のバッファに現在割り当てられている優先度よりも高い優先度を一時的に割り当てるステップと、
を含むことを特徴とする通信制御方法。
【請求項12】
請求項11に記載の通信制御方法であって、前記過負荷状態のバッファに一時的に割り当てられる当該高い優先度は、前記複数のキューイングバッファのうち、前記過負荷状態のバッファが検出された時点で前記過負荷状態のバッファを除く他のバッファに割り当てられている優先度よりも高いことを特徴とする通信制御方法。
【請求項13】
各々が所定のデータ記憶容量を有する複数のキューイングバッファを用いて通信品質を制御する通信制御方法であって、
前記複数のキューイングバッファにそれぞれ優先度を割り当てるステップと、
入力されたデータブロックを分類し、前記複数のキューイングバッファのうちその分類結果に応じたキューイングバッファに前記データブロックを入力させるステップと、
前記優先度に基づく順序で前記キューイングバッファを選択し、当該選択されたキューイングバッファからデータブロックを出力させるステップと、
前記複数のキューイングバッファの中から、前記複数のキューイングバッファの各々の蓄積データ量が閾値を超過しているか否かを前記優先度の低い側から順に検査することによって前記蓄積データ量が前記閾値を超過していると判定された過負荷状態のバッファを検出するステップと、
前記過負荷状態のバッファとして、第1の優先度が割り当てられた第1の過負荷状態のバッファと、前記第1の優先度よりも高い第2の優先度が割り当てられた第2の過負荷状態のバッファとがこの順で検出されたとき、前記第1の過負荷状態のバッファに対しては前記第1の優先度よりも高い第3の優先度を一時的に割り当て、前記第2の過負荷状態のバッファに対しては前記第3の優先度よりも高い第4の優先度を一時的に割り当てるステップと、
を含むことを特徴とする通信制御方法。
【請求項14】
請求項13に記載の通信制御方法であって、
前記第3の優先度は、前記複数のキューイングバッファのうち、前記第1の過負荷状態のバッファが検出された時点で前記第1の過負荷状態のバッファを除く他のバッファに割り当てられている優先度よりも高い優先度であり、
前記第4の優先度は、前記複数のキューイングバッファのうち、前記第2の過負荷状態のバッファが検出された時点で前記第2の過負荷状態のバッファを除く他のバッファに割り当てられている優先度よりも高い優先度である、
ことを特徴とする通信制御方法。
【請求項15】
請求項11から14のうちのいずれか1項に記載の通信制御方法であって、
前記複数のキューイングバッファの中から前記過負荷状態が解除されたバッファを検出するステップと、
前記過負荷状態が解除されたバッファに割り当てる優先度を前記高い優先度から初期設定の優先度に変更するステップと、
をさらに含むことを特徴とする通信制御方法。
【請求項16】
請求項11から15のうちのいずれか1項に記載の通信制御方法であって、前記過負荷状態のバッファは、前記複数のキューイングバッファのうち予め指定されたバッファ群の中から検出されることを特徴とする通信制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−250310(P2011−250310A)
【公開日】平成23年12月8日(2011.12.8)
【国際特許分類】
【出願番号】特願2010−123325(P2010−123325)
【出願日】平成22年5月28日(2010.5.28)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.イーサネット
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】