(57)【要約】【課題】数種類の優先度のパケットを共有バッファに格納する場合に、高優先のパケットの廃棄を抑制する。【解決手段】共有バッファ２８には、複数種類の優先度のパケットが格納される。パケット書込部３２は、外部へ転送すべきパケットを共有バッファ２８へ書込む。パケット読出部３４は、共有バッファ２８からパケットを読出して、外部へ転送させる。パケット書込部３２は、共有バッファ２８に格納されたパケット量が所定の優先度に対応する閾値を超過した場合、その優先度のパケットを共有バッファ２８へ書込むことを抑制する。【選択図】図６
2016165091.tif 000002
【特許請求の範囲】
【請求項１】
複数種類の優先度のパケットが格納される共有バッファと、
外部へ転送すべきパケットを前記共有バッファへ書込むパケット書込部と、
前記共有バッファからパケットを読出して、外部へ転送させるパケット読出部と、
を備え、
前記パケット書込部は、前記共有バッファに格納されたパケット量が所定の優先度に対応する閾値を超過した場合、前記所定の優先度のパケットを前記共有バッファへ書込むことを抑制することを特徴とする通信装置。
【請求項２】
前記パケット書込部は、前記共有バッファに格納されたパケット量が、前記閾値を超過した状態から前記閾値以下になった場合、前記所定の優先度のパケットを前記共有バッファへ書込むことを再開することを特徴とする請求項１に記載の通信装置。
【請求項３】
所定の条件が満たされた場合に、前記閾値を変更する閾値変更部をさらに備えることを特徴とする請求項１または２に記載の通信装置。
【請求項４】
複数種類の優先度のパケットが格納される共有バッファと、
外部へ転送すべきパケットを前記共有バッファへ書込むパケット書込部と、
前記共有バッファからパケットを読出して、外部へ転送させるパケット読出部と、
を備え、
前記パケット書込部は、前記共有バッファに格納されたパケット量が所定の閾値を超過した場合、前記複数種類の優先度のうち相対的に低い優先度のパケットを前記共有バッファへ書込むことを抑制することを特徴とする通信装置。
【請求項５】
外部へ転送すべき複数種類の優先度のパケットを共有バッファへ書込むステップと、
前記共有バッファからパケットを読出して、外部へ転送させるステップと、
を通信装置が実行し、
前記書込むステップは、前記共有バッファに格納されたパケット量が所定の優先度に対応する閾値を超過した場合、前記所定の優先度のパケットを前記共有バッファへ書込むことを抑制することを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信技術に関し、特に通信装置および通信方法に関する。
【背景技術】
【０００２】
通信装置には、複数のサービスのトラフィックが収容されることがあり、サービス毎に求められる通信品質が異なることがある。例えば、ＩＰ電話等に使用されるＶｏＩＰ（Voice over IP）では、遅延が大きくなると音声の途切れやノイズが発生してしまうため、優先的にパケットを転送する必要がある。その一方、ファイル転送サービスでは、比較的低優先のパケット転送が許容されることもある。このような場合に、通信の種類に応じてパケットに優先度を設定し、優先度が高いものを優先的に伝送する技術であるＱｏＳ（Quality of Service）が使用される（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２４０７１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の通信装置は、物理ポート毎に、優先クラス毎の廃棄閾値が設定された出力キューを持つ。図１は優先クラスの例を示す。受信されたパケットは、当該パケットに付与されたＱｏＳのパラメータに基づいて優先クラス毎に出力キューへ格納される。出力キューのパケットは優先順位の高いものから順次読出されて物理ポートから出力される。
【０００５】
優先クラス毎の出力キューとして共有バッファ方式が用いられることがある。共有バッファ方式では、優先クラス毎の出力キューは論理的なキューとなり、複数の優先クラスのパケットは、実際には共通の（例えば単一の）共有バッファに格納される。共有バッファ方式では、コストや効率の面から、共有バッファのサイズよりも、各優先クラス出力キューの廃棄閾値までのサイズの合計が大きくなるよう設計される。
【０００６】
図２は、従来の共有バッファ方式の問題点を模式的に示す。共有バッファに多くのパケットが蓄積され、バッファ容量の上限に達すると、新規到着パケットは共有バッファに格納できなくなる。すなわち、各優先クラス出力キューの廃棄閾値に未達であっても、パケットの優先度に関わらずパケットの廃棄が発生し、高優先のパケットの廃棄が生じてしまうことがあった。
【０００７】
本発明はこうした状況に鑑みてなされたものであり、主な目的は、複数種類の優先度のパケットを共有バッファに格納する場合に、高優先のパケットの廃棄を抑制する技術を提供することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のある態様の通信装置は、複数種類の優先度のパケットが格納される共有バッファと、外部へ転送すべきパケットを共有バッファへ書込むパケット書込部と、共有バッファからパケットを読出して、外部へ転送させるパケット読出部と、を備える。パケット書込部は、共有バッファに格納されたパケット量が所定の優先度に対応する閾値を超過した場合、所定の優先度のパケットを共有バッファへ書込むことを抑制する。
【０００９】
本発明の別の態様もまた、通信装置である。この装置は、複数種類の優先度のパケットが格納される共有バッファと、外部へ転送すべきパケットを共有バッファへ書込むパケット書込部と、共有バッファからパケットを読出して、外部へ転送させるパケット読出部と、を備える。パケット書込部は、共有バッファに格納されたパケット量が所定の閾値を超過した場合、複数種類の優先度のうち相対的に低い優先度のパケットを共有バッファへ書込むことを抑制する。
【００１０】
本発明のさらに別の態様は、通信方法である。この方法は、外部へ転送すべき複数種類の優先度のパケットを共有バッファへ書込むステップと、共有バッファからパケットを読出して、外部へ転送させるステップと、を通信装置が実行し、書込むステップは、共有バッファに格納されたパケット量が所定の優先度に対応する閾値を超過した場合、所定の優先度のパケットを共有バッファへ書込むことを抑制する。
【００１１】
なお、以上の構成要素の任意の組合せ、本発明の表現を、システム、プログラム、プログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１２】
本発明によれば、複数種類の優先度のパケットを共有バッファに格納する場合に、高優先のパケットの廃棄を抑制することができる。
【図面の簡単な説明】
【００１３】
【図１】優先クラスの例を示す図である。
【図２】従来の共有バッファ方式の問題点を模式的に示す図である。
【図３】実施の形態の通信装置の技術原理を模式的に示す図である。
【図４】実施の形態の通信装置の技術原理を模式的に示す図である。
【図５】実施の形態の通信装置の技術原理を模式的に示す図である。
【図６】実施の形態のレイヤ２スイッチの機能を示すブロック図である。
【発明を実施するための形態】
【００１４】
実施の形態の通信装置について、その構成を説明する前に、まず技術原理を説明する。図３から図５は、実施の形態の通信装置の技術原理を模式的に示す。
１）図３に示すように、共有バッファに蓄積されるパケット量に対して、優先度毎に閾値を設定する。
【００１５】
２）共有バッファに蓄積されているパケット量が或る優先度に対応付けられた閾値以下（もしくは閾値未満）の場合、その優先度以上のパケットを共有バッファへ格納する。図３の例では、共有バッファにおけるパケット蓄積量が低優先閾値以下であるため、最高優先〜低優先までの全てのパケットを共有バッファへ格納する。なお共有バッファ方式では、共有バッファに格納された同じ優先度のパケットをポインタで関連づける等の公知の手法によって、仮想的なポートキューが実現されてよいことはもちろんである。
【００１６】
３）図４に示すように、共有バッファに蓄積されているパケット量が或る優先度に対応付けられた閾値を超過した（もしくは閾値以上の）場合、その優先度以下のパケットを共有バッファへ書込むことを抑制する。図４の例では、共有バッファにおけるパケット蓄積量が中優先閾値を超過したため、中優先または低優先のパケットの書込みを停止し、その一方、最高優先または高優先のパケットの書込みは継続している。
【００１７】
４）図５に示すように、共有バッファに蓄積されているパケット量が、或る優先度に対応付けられた閾値を超過した（もしくは閾値以上になった）後に閾値以下（もしくは閾値未満）に変化した場合、その優先度のパケットを共有バッファへ書込むことを再開する。図５では、共有バッファにおけるパケット蓄積量が中優先閾値以下になったため、図４で停止していた中優先パケットの書込みを再開することを示している。ただし、依然として低優先閾値を超過しているため、低優先パケットの書込み停止状態は継続する。
【００１８】
このように、実施の形態の通信装置は、フレーム伝送の優先制御（ＱｏＳ）を実現するために、複数種類の優先度のパケットが共通して格納される共有バッファを備える。共有バッファに格納されたパケット量が所定の閾値を超過すると、共有バッファへの低優先パケットの書込みを抑制する。これにより、共有バッファ方式によるメリットを享受しつつ、多くの低優先パケットの蓄積による共有バッファの枯渇を防止し、高優先パケットの廃棄が生じることを抑制する。
【００１９】
以上の技術原理を具現化した通信装置として、以下レイヤ２スイッチを例に説明する。実施の形態のレイヤ２スイッチは、パケットとしてＭＡＣフレームの転送処理を実行する。実施の形態のＭＡＣフレームにはＶＬＡＮタグが付加され、ＶＬＡＮタグのＰＣＰ（Priority Code Point）フィールドにフレームの優先度が設定される。
【００２０】
図６は、実施の形態のレイヤ２スイッチの機能を示すブロック図である。本明細書のブロック図において示される各ブロックは、ハードウェア的には、コンピュータのＣＰＵやメモリをはじめとする素子や機械装置、電子回路で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現される。ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
【００２１】
レイヤ２スイッチ１０は、ポート１２、ポート１４、ポート１６、受信部１８、スイッチ部２０、送信部２２、送信部２４、制御部２６を備える。各機能ブロックの数は一例であり、例えば２以上の受信部、３以上の送信部を備えてもよい。レイヤ２スイッチ１０がシェルフ型スイッチの場合、ポート１２、ポート１４、ポート１６、受信部１８、送信部２２、送信部２４はインタフェース盤、スイッチ部２０はスイッチ盤、制御部２６は制御盤として実現されてもよい。
【００２２】
ポート１２、ポート１４、ポート１６は、伝送路と接続される物理ポートである。受信部１８は、ポート１２を介して、外部装置から送信されたＭＡＣフレームを受信し、そのフレームの出力ポートを決定する。スイッチ部２０は、ＭＡＣフレームを、その出力ポートに対応づけられた送信部（図６の例では送信部２２または送信部２４）へ転送する。
【００２３】
送信部２２はポート１４に対応付けて設けられ、送信部２４はポート１６に対応付けて設けられる。送信部２２と送信部２４のそれぞれは、外部装置へのＭＡＣフレーム転送処理を実行し、その際に共有バッファ２８を使用したＱｏＳを実行する。送信部２２は、共有バッファ２８、優先度情報記憶部３０、パケット書込部３２、パケット読出部３４を含む。送信部２４の構成も同様である。
【００２４】
共有バッファ２８は、複数種類の優先度のフレーム、具体的には最高優先フレーム、高優先フレーム、中優先フレーム、低優先フレームが共通して格納される記憶領域である。すなわち、共有バッファ２８は、複数種類の優先度の出力キューとして、異なる優先度間で共有され、また共用されるメモリと言える。共有バッファ２８の容量は例えば２００メガバイト（ＭＢ）であってもよい。
【００２５】
最高優先フレームは、例えばＶｏＩＰサービスのフレームであってもよい。高優先フレームは、例えば映像・音声ストリーミングサービスのフレームであってもよい。中優先フレームは、例えば電子メールサービスのフレームであってもよい。低優先フレームは、例えばファイル転送サービスのフレームであってもよい。
【００２６】
優先度情報記憶部３０は、フレームに付与されうる複数種類の優先度に関する情報（以下「優先度情報」と呼ぶ。）が格納される記憶領域である。優先度情報は、優先度毎に設けられ、図１に示したようにパラメータ（例えばＶＬＡＮタグのＰＣＰ値）と優先クラスを含み、さらに現在格納量、単独格納量閾値、合計格納量閾値を含む。
【００２７】
現在格納量は、共有バッファ２８における各優先度のフレームの蓄積量、言い換えれば、共有バッファ２８に書込み済であるが未読出しの各優先度のフレームのデータ量を示す情報である。単独格納閾値は図２〜図５に示した廃棄閾値に相当し、各優先度のフレーム単独での格納量の上限値である。例えば、共有バッファが２００ＭＢの場合、いずれの優先度の単独格納閾値も７０ＭＢであってもよい。このように、各優先度の単独格納閾値の合計は、共有バッファの容量よりも大きくなる。
【００２８】
合計格納量閾値は、図３〜図５に示した共有バッファにおける最高優先閾値（例えば２００ＭＢ）、高優先閾値（例えば１７０ＭＢ）、中優先閾値（例えば１４０ＭＢ）、低優先閾値（例えば１２０ＭＢ）である。すなわち、各優先度のフレームの格納量を合計した値の上限値であり、言い換えれば、共有バッファ２８において未読出しの全フレームのデータ量の上限値である。優先度が高くなるほど合計格納量閾値として大きい値が設定される。また、最高優先フレームの合計格納量閾値は、共有バッファ２８の容量（上限値）に設定されてもよい。
【００２９】
パケット書込部３２は、スイッチ部２０から入力された外部装置へ転送すべきフレームを、当該フレームに設定された優先度に関わらず共有バッファ２８へ格納する。またパケット書込部３２は、入力フレームの優先度に合致する優先度情報に記録された現在格納量と単独格納量閾値とを比較する。現在格納量が単独格納量閾値を超過している場合、パケット書込部３２は、入力フレームを共有バッファ２８へ書込むことなく廃棄する。
【００３０】
パケット読出部３４は、共有バッファ２８に格納された未読出しのフレームを、絶対優先（Strict Priority）方式で読出す。具体的には、パケット読出部３４は、フレーム読出し時に相対的に高優先のフレームが共有バッファ２８に格納されている場合、相対的に低優先のフレームが大量に格納されていても、また先に格納されていても、高優先のフレームを読出す。パケット読出部３４は、読出したフレームをポート１４を介して伝送路へ出力させることにより、読出したフレームを外部装置へ転送させる。このような共有バッファ方式によるＱｏＳの実現方法は公知であるため、以下の説明を省略する。
【００３１】
パケット書込部３２は、共有バッファ２８に格納された複数フレームのデータ量、すなわち共有バッファ２８におけるフレームの蓄積量が或る優先度に対応する閾値を超過した場合、その優先度以下のパケットを共有バッファ２８へ格納することなく廃棄する。またパケット書込部３２は、共有バッファ２８に格納された複数フレームのデータ量が、或る優先度に対応する閾値を超過した状態からその閾値以下になった場合、その優先度のパケットを共有バッファ２８へ格納することを再開する。
【００３２】
具体的には、パケット書込部３２は、或る優先度のフレームがスイッチ部２０から入力された場合に、優先度情報記憶部３０の各優先度に対応する優先度情報を参照する。そして、各優先度情報に記録された現在格納量を合計し、各優先度情報の合計格納量閾値と比較する。現在格納量の合計値が或る優先度の合計格納量閾値を超過する場合、その優先度以下を廃棄対象として識別する。パケット書込部３２は、この廃棄対象識別処理をフレーム入力時でなく、定期的に（例えば１秒おきに）繰り返し実行してもよい。
【００３３】
パケット書込部３２は、入力フレームに設定された優先度が廃棄対象である場合、入力フレームを共有バッファ２８へ書込むことなく廃棄する。その一方、入力フレームに設定された優先度が廃棄対象でなければ、パケット書込部３２は、入力フレームを共有バッファ２８へ書込む。それとともに、入力フレームの優先度に合致する優先度情報記憶部３０の優先度情報（以下「対応優先度情報」と呼ぶ。）における現在格納量に対して入力フレームのデータ量を加算する。パケット読出部３４は、或る優先度のフレームを共有バッファ２８から読出した場合、読出フレームの対応優先度情報における現在格納量から読出フレームのデータ量を減算する。
【００３４】
制御部２６は、レイヤ２スイッチ１０の各部位に対する監視処理・制御処理を実行する。制御部２６は、不図示の保守運用端末とのインタフェースを備える。制御部２６は、閾値変更部３６を含む。閾値変更部３６は、制御部２６のＣＰＵが閾値変更部３６の機能を実装したコンピュータプログラムを実行することにより実現されてもよい。
【００３５】
閾値変更部３６は、所定の閾値変更条件が満たされた場合に、優先度情報記憶部３０の優先度情報における合計格納量閾値を変更する。具体的には、閾値変更部３６は、保守運用端末から入力された優先度と合計格納量閾値の組み合わせを含む閾値変更要求を受け付けた場合に閾値変更条件が満たされたことを検出する。閾値変更部３６は、閾値変更要求で指定された優先度の優先度情報を識別し、その合計格納量閾値を閾値変更要求で指定された値に更新する。
【００３６】
以上の構成によるレイヤ２スイッチ１０の動作を説明する。
レイヤ２スイッチ１０の受信部１８は、ポート１２を介してＭＡＣフレームを受信すると、その宛先アドレスに応じて出力ポート（ここではポート１４とする）を決定し、そのポート情報を含む装置内ヘッダを付加したフレームをスイッチ部２０へ転送する。スイッチ部２０は、装置内ヘッダの出力ポート情報にしたがってフレームを送信部２２へ転送する。
【００３７】
送信部２２のパケット書込部３２は、スイッチ部２０から入力されたフレームを受け付ける。パケット書込部３２は、共有バッファ２８のフレーム蓄積量が、入力フレームの優先度に対応付けられた合計格納量閾値以下であれば、入力フレームを共有バッファ２８へ書込む。その一方、共有バッファ２８のフレーム蓄積量が合計格納量閾値を超過していれば入力フレームを廃棄する。各優先度の合計格納量閾値は、優先度が高くなるほど大きいため、相対的に低優先のフレームで共有バッファ２８の容量が枯渇してしまうことを防止し、相対的に高優先のフレームが廃棄されてしまうことを抑制しやすくなる。
【００３８】
またパケット書込部３２は、共有バッファ２８のフレーム蓄積量が、或る優先度に対応付けられた合計格納量閾値を超過した状態から、その閾値以下へ変化した場合、その優先度が設定されたフレームを受け付けた際の共有バッファ２８への書込みを再開する。これにより、一旦廃棄対象とした優先度のフレームについても、共有バッファ２８の空きが大きくなれば、廃棄対象から外してフレーム転送を再開することができる。
【００３９】
保守運用端末からレイヤ２スイッチ１０へ閾値変更要求が入力されると、閾値変更部３６は、その要求で指定された優先度と新たな合計格納量閾値にしたがって優先度情報記憶部３０に格納された優先度情報の合計格納量閾値を更新する。これにより、レイヤ２スイッチ１０の保守者は、レイヤ２スイッチ１０におけるフレーム伝送状況をモニタして、合計格納量閾値を最適値へ変更していくことができる。
【００４０】
以上、本発明を実施の形態をもとに説明した。これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せによりいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００４１】
第１変形例を説明する。上記実施の形態では、閾値変更部３６は、保守運用端末から閾値変更要求を受け付けたことを契機に優先度情報の合計格納量閾値を更新することとした。変形例として、閾値変更部３６は、レイヤ２スイッチ１０におけるフレーム伝送状況に応じて合計格納量閾値を自律的に更新してもよい。これにより、合計格納量閾値を自動的に適切な値へ設定することができる。
【００４２】
具体的には、レイヤ２スイッチ１０の制御部２６は、所定の単位期間（例えば１０分等）において転送された各優先度のフレーム量（フレームの個数でもよく、データ量でもよい）を公知の統計処理により定期的に集計する統計部をさらに備えてもよい。閾値変更部３６は、統計部が統計処理の結果を示す統計情報を生成した場合に、閾値変更条件が満たされたことを検出してもよい。閾値変更部３６は、統計部が生成した統計情報であり、例えば所定の単位期間における各優先度のフレーム量に応じて、各優先度の合計格納量閾値を変更してもよい。または、統計部が生成した統計情報の時間的な推移であり、例えば前の単位期間から後の単位期間に亘る各優先度のフレーム量の推移に応じて、各優先度の合計格納量閾値を変更してもよい。
【００４３】
例えば、統計情報またはその推移が、相対的に高優先のフレーム量が減少し、相対的に低優先のフレーム量が増加していることを示すとする。この場合、閾値変更部３６は、相対的に低優先のフレームに対応する合計格納量閾値をそれまでより大きい値へ変更してもよい。逆に、統計情報またはその推移が、相対的に高優先のフレーム量が増加し、相対的に低優先のフレーム量が減少していることを示すとする。この場合、閾値変更部３６は、相対的に低優先のフレームに対応する合計格納量閾値をそれまでより小さい値へ変更してもよい。ただし、各優先度の合計格納量閾値が優先度が高くなるほど大きくなる関係は維持する。
【００４４】
第２変形例を説明する。上記実施の形態では、パケット読出部３４は、絶対優先方式により共有バッファ２８からフレームを読出すこととした。変形例として、ＷＲＲ（Weighted Round Robin）等、他の優先制御方式にて共有バッファ２８からフレームを読出してもよい。またパケット書込部３２は、共有バッファ２８へのフレーム書込みにおいて、高優先フレームの廃棄を抑制するため、パケット読出部３４がラウンドロビン方式で各優先度のフレームを読出す場合もある程度の優先制御を実現できる。
【００４５】
第３変形例を説明する。上記実施の形態では、共有バッファ２８におけるフレーム蓄積量の閾値として、複数種類の優先度毎に合計格納量閾値を設定することとした。変形例として、共有バッファ２８におけるフレーム蓄積量の閾値は優先度毎に設けなくてもよく、例えば、優先度に関わらない１つのフレーム蓄積量閾値を定めてもよい。パケット書込部３２は、共有バッファ２８に格納されたフレーム蓄積量、すなわち、未読出しの各優先度のフレームの合計量がフレーム蓄積量閾値を超過した場合、共有バッファ２８への相対的に低い優先度のパケットの書込みを停止してもよい。相対的に低い優先度のパケットは、実施の形態の４つの優先度のうち中優先パケットおよび低優先パケット（もしくは低優先パケットのみ）であってもよい。
【００４６】
また、上記実施の形態ではフレームを外部装置に転送する送信部２２において、共有バッファを用いたＱｏＳ処理を実行することとした。変形例として、通信装置内の他の機能部へフレームを転送する機能部（受信部１８等）において共有バッファを用いたＱｏＳ処理を実行してもよく、実施の形態で説明した共有バッファへのパケット書込技術を適用できることはもちろんである。
【００４７】
また、上記実施の形態では通信装置の例としてレイヤ２スイッチを挙げたが、レイヤ３スイッチや、ルータ、レイヤ４スイッチ等、他の通信装置に対しても実施の形態の技術を適用できることはもちろんである。例えば、ＩＰパケットのサービスタイプ（ＴＯＳ）フィールドの値に基づいて、共有バッファ方式によるＱｏＳを実行してもよく、その際に実施の形態で説明した共有バッファへのパケット書込技術を適用できる。
【００４８】
上述した実施の形態および変形例の任意の組み合わせもまた本発明の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施の形態および変形例それぞれの効果をあわせもつ。また、請求項に記載の各構成要件が果たすべき機能は、実施の形態および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。
【符号の説明】
【００４９】
１０  レイヤ２スイッチ、  ２８  共有バッファ、  ３０  優先度情報記憶部、  ３２  パケット書込部、  ３４  パケット読出部、  ３６  閾値変更部。
【図１】
2016165091.tif 000003
【図２】
2016165091.tif 000004
【図３】
2016165091.tif 000005
【図４】
2016165091.tif 000006
【図５】
2016165091.tif 000007
【図６】
2016165091.tif 000008