(57)【特許請求の範囲】
【請求項１】
トラフィックシェーピング機能を有するパケット中継装置であって、
受信したパケットのヘッダ情報に基づいて決定されるユーザおよび前記ユーザの集合体であるグループ単位にトラフィックを分類する振り分け処理部と、
前記振り分け処理部によって分類された前記ユーザ単位に設定された最大帯域および最低帯域および重み情報から、各ユーザの利用可能帯域を計算する計算部と、
前記計算部によって計算された前記ユーザの前記利用可能帯域に基づいて算出される送信予定時刻を更新し、前記更新した送信予定時刻により、いずれのユーザに振り分けられたパケットを送信すべきかを判断するスケジューリング制御部と、
前記スケジューリング制御部によってパケットを送信すべきと判断されたユーザについて、当該ユーザの前記最大帯域に基づいて算出される送信予定時刻を更新し、前記更新した送信予定時刻により、前記ユーザ毎に最大帯域でシェーピングするシェーピング部と、
前記シェーピング部によってシェーピングされたユーザの集合体であるグループの優先度に応じて、各グループのパケットの送信を完全優先制御する優先制御処理部とを有することを特徴とするパケット中継装置。
【請求項２】
トラフィックシェーピング機能を有するパケット中継装置であって、
受信したパケットのヘッダ情報に基づいて決定されるユーザおよび前記ユーザが利用するトラフィック種別であるクラス単位にトラフィックを分類する振り分け処理部と、
前記振り分け処理部によって分類された前記ユーザ単位および前記ユーザの高優先クラス単位のそれぞれに設定された最大帯域および最低帯域および重み情報から、各ユーザおよび各ユーザの高優先クラスのそれぞれに対する利用可能帯域を計算する計算部と、
前記計算部によって計算された前記ユーザの高優先クラスに対する前記利用可能帯域に基づいて算出される送信予定時刻を更新し、前記更新した送信予定時刻により、いずれのユーザに振り分けられた高優先クラスのパケットを送信すべきかを判断する第１のスケジューリング制御部と、
前記計算部によって計算された前記ユーザに対する前記利用可能帯域に基づいて算出される送信予定時刻を更新し、前記更新した当該送信予定時刻により、いずれのユーザに振り分けられた非高優先クラスのパケットを送信すべきかを判断する第２のスケジューリング制御部と、
前記第１および第２のスケジューリング制御部によってパケットを送信すべきと判断されたそれぞれのユーザについて、当該ユーザの高優先クラスおよび当該ユーザのそれぞれの前記最大帯域に基づいて算出される送信予定時刻を更新し、前記更新した送信予定時刻により、前記ユーザの高優先クラスおよび前記ユーザのそれぞれ毎に最大帯域でシェーピングするシェーピング部と、
前記シェーピング部によってシェーピングされた前記ユーザの高優先クラスおよび前記ユーザのそれぞれについて、前記高優先クラスおよび前記非高優先クラスのそれぞれの集合体であり、受信したパケットのヘッダ情報に基づいて決定されるグループの優先度に応じて、各グループのパケットの送信を完全優先制御する優先制御処理部とを有することを特徴とするパケット中継装置。
【請求項３】
請求項１または請求項２記載のパケット中継装置であって、
前記振り分け処理部によって分類された前記各ユーザに設定された重み情報と送信パケット長から送信カウンターを更新するカウンター更新部と、
前記カウンター更新部によって更新された前記各ユーザの送信カウンターによりＷＦＱ型のスケジューリングを行なう第３のスケジューリング制御部とを有することを特徴とするパケット中継装置。
【請求項４】
請求項１乃至請求項３記載のパケット中継装置であって、
前記優先制御処理部によって送信制御されたパケットについて、前記パケットを送信する回線に設定された最大帯域に基づいて算出される送信予定時刻を更新する更新部と、
前記更新部によって更新された送信予定時刻によって前記回線毎に最大帯域で帯域シェーピングする第２のシェーピング部を有することを特徴とするパケット中継装置。
【請求項５】
請求項１乃至請求項４記載のパケット中継装置であって、
前記優先制御処理部は、グループ間の優先制御処理として、前記完全優先制御とＷＦＱを組み合わせた処理を行なうことを特徴とするパケット中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信分野におけるトラフィックシェーピング機能および装置に関するものである。
【背景技術】
【０００２】
IPネットワークの広帯域が進み、HTTPやFTPなどのInternetトラフィックに加え、電話や放送などのリアルタイム性の高いコンテンツをIPネットアーク上で実現しようという動きが盛んとなりつつある。それらのトラフィックの性質やネットワーク環境によって必要とされるトラフィック制御要件は種々に及んでおり、これらの様々な要求に対応するために可用性を持ったトラフィック制御技術が必要となっている。例えば、HTTPやFTPなどトラフィック（以後、Internetトラフィック）は通信中廃棄が起きても、TCP/IPによる再送処理で通信の完全性を確保可能であるので多少の通信廃棄については寛容であるが、特定ユーザの利用帯域が大きいことによって他ユーザ通信に悪影響を及ぼすことなく、ユーザ間帯域の中立性を確保するような仕組み（最低帯域保証、もしくは、重み均等帯域分配）などの制御が必要となる。一方で、電話や放送などのトラフィック（以後、リアルタイムトラフィック）は、スムーズなコミュニケーションの為に転送遅延を極力排除しつつ、トラフィックがバーストすること（トラフィックを一度に大量に送る事）を防ぐ仕組みを備える必要がある。トラフィックがバーストしてしまうと、トラフィックを受信して再生する機器（電話機やセットトップボックスなど）に大きな受信パケットバッファーを配備する必要があり、機器による接続性などの問題が生じる恐れがあるし、映像配信においてIPマルチキャストが使用された場合はマルチキャストパケットのコピーポイントである中継装置（イーサネット（登録商標）スイッチなど）内にマルチキャストパケットをコピーして一時展開して保持するバッファーの必要サイズが大きくなり、バッファー不足による廃棄や機器コストの増大に繋がる恐れがある。
【０００３】
また、一般的な企業における拠点間接続においては回線速度に応じて料金帯域が異なる契約体系をもつ仮想専用線ネットワーク（広域イーサネット（登録商標）など）を介して拠点間接続を行なうケースが多い。各利用者は通信事業者に対して必要な回線速度を選択して契約を行なって拠点間の通信路を確保する。仮想専用線ネットワークの入り口に位置している通信事業者の中継装置では、利用者の通信帯域を常時監視して契約帯域以上にパケットが流入されてないか監視、超過パケットを廃棄する処理が施されていて、契約帯域を超過したトラフィックに関してはトラフィックの重要度に関係なく通信事業者は廃棄を行なう。利用者は仮想専用線ネットワーク内でのパケット廃棄を回避する為、各拠点において仮想専用線ネットワークとの接続回線上に契約帯域でトラフィックをシェーピングできる中継装置を配備する。複数の拠点に対して接続を行なう場合は、拠点毎にトラフィックをシェーピングできる中継装置を配備する。このような状況下で、リアルタイムトラフィックを扱う場合、拠点毎にトラフィックシェーピングを行ないつつも、リアルタイムトラフィックを低廃棄/低遅延で転送する仕組みが必要となってくる。
【０００４】
トラフィック制御技術についての従来技術として、特許文献１および特許文献２では、高優先クラスと非優先クラスにトラフィックを分類して、高優先トラフィックを常に最優先で送信することによって高優先クラスに分類されたトラフィックについて自装置内で発生する遅延を最小にするトラフィック制御技術について開示されている。特許文献３では複数のユーザ毎に最大帯域・最低帯域を設定してユーザ毎にパケットの送信予定時刻を計算して、その送信予定時刻から各ユーザのトラフィックの送信タイミングをスケジューリングするシェーピング方法について開示されている。特許文献４は高優先クラスの転送遅延を最小化し、高優先クラスのトラフィックを送信した際にパケット長とユーザ情報を低優先クラスのスケジューラー回路に伝達して当該ユーザの送信カウンターを更新することによって高優先クラスと低優先クラスを併せてトラフィックスケジューリングする制御技術について開示されている。
【０００５】
【特許文献１】特開２００６−２１１３０６号公報
【特許文献２】特開２００５−１２３９１９号公報
【特許文献３】特開２００４−２８２７２８号公報
【特許文献４】特開２００７−０１３４６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
IPネットワーク上で高品質な電話や放送などのアプリケーションを実現する為、それぞれのサービス・トラフィック特性およびネットワーク環境に応じて異なったトラフィック制御技術が必要となっている。以下に、要求されるネットワーク要件、即ち本発明が解決すべき課題を記載する。
【０００７】
ネットワーク要件（１）
リアルタイム性が求められるトラフィックに対して廃棄/遅延を極力少なくしつつ、フロー（チャネル）毎に決められた帯域でトラフィックのバースト性を抑えるためのトラフィックシェーピングを実施すること。また、Internetトラフィック（低優先）に対してユーザ間帯域の中立性を確保（最低帯域保証、もしくは、重み均等帯域分配）すること。
【０００８】
上記の課題（ネットワーク要件（１））に対して、特許文献１および特許文献２では、高優先トラフィックが常に優先される構成であるので、高優先トラフィックに対して自装置内で発生する遅延を最小にすることは可能であるが、セッション（キュー）毎にトラフィックバーストを抑えることができないのでネットワークを経由したことによって生じたトラフィックの遅延ゆらぎ（遅延ジッタ）はそのまま伝搬されてしまうという問題が生じる恐れがある。前記のとおりに、フロー毎にバースト性を抑える仕組みがないと、受信再生機やマルチキャストコピーポイントとなる中継装置などにおいてバッファー不足によるパケット廃棄が発生してしまい通信品質の低下に繋がる可能性がある。
【０００９】
また、特許文献３は、複数のユーザ毎に設定された最大帯域・最低帯域により、ユーザ間のパケット送信タイミングをスケジューリングするが、この構成の場合はリアルタイムトラフィックに対して十分な遅延品質を保証する事は困難である。特許文献３は通信が行なわれているトラフィックの種別とは関係なく、ユーザ間の送信スケジューリング処理が行なわれるためである。送信すべきユーザが決定後にユーザ内で優先制御処理などを実施しているため、他ユーザの低優先トラフィックとのスケジューリング処理の競合によって、高優先トラフィックの送信タイミングが遅れてしまう。スケジューリングを行なうユーザ数が多くなると、ユーザ間スケジューリングによる遅延は無視することはできなくなるので、リアルタイムトラフィックに対して十分な遅延品質を提供する事が困難である。
【００１０】
ネットワーク要件（２）
拠点毎にトラフィックシェーピングを行ないつつ、リアルタイム性が求められるトラフィックに対して、廃棄/遅延を極力少なくしつつ、バースト性を抑えるためのトラフィックシェーピングを実施すること。各拠点に対するシェーピング帯域からリアルタイムトラフィックの使用帯域をさし引いた残り帯域をInternetトラフィック（低優先）が利用して通信を行なうこと。
【００１１】
ネットワーク要件（１）との違いは宛先（拠点）毎にトラフィックの帯域制限を行ないつつ、リアルタイムトラフィックの廃棄/遅延を抑えようとする点である。ネットワーク要件（１）では、サービス毎にトラフィックを分類してそれぞれに対してシェーピング・スケジューリング処理を実施するが、ネットワーク要件（２）では、サービス間を合わせた拠点毎の帯域についてトラフィックシェーピングを実施する事が要件となっている。
【００１２】
このような課題（ネットワーク要件（２））に対して、特許文献３は、前記のとおり、高優先トラフィックに対して遅延が劣化する問題が内在しているので、リアルタイムトラフィックに関して、遅延を小さくするのは困難である。また、特許文献４は高優先クラスのパケットの遅延時間を少なくし、高優先クラスと低優先クラスの帯域を合わせたスケジューリングが可能だが、高優先パケットに対して最大帯域を制御する機能がないために、トラフィックの入力状況によっては高優先クラストラフィックが回線帯域を全て占有してしまう可能性があって、その場合には、他の拠点の高優先クラストラフィックの送信も抑制されてしまい、本要件である拠点毎のトラフィックシェーピングが効かないので問題がある。
【課題を解決するための手段】
【００１３】
本発明では、上記課題を解決するトラフィックシェーピング機能および装置を提供する。本発明では、トラフィックシェーピング機能を有するパケット中継装置であって、受信したパケットのヘッダ情報に基づいてグループおよびユーザ単位にトラフィックを分類する振り分け処理部と、前記ユーザ単位に設定された最大帯域および最低帯域および重み情報から、各ユーザの利用可能帯域を計算する計算部と、前記ユーザの前記利用可能帯域に基づいて算出される送信予定時刻を更新し、前記更新した送信予定時刻により、いずれのユーザに振り分けられたパケットを送信すべきかを判断するスケジューリング制御部と、前記ユーザの前記最大帯域に基づいて算出される送信予定時刻を更新し、前記更新した送信予定時刻により、前記ユーザ毎に最大帯域でシェーピングするシェーピング部と、前記グループの優先度に応じて、各グループのパケットの送信を完全優先制御する優先制御処理部とを有することを特徴とするパケット中継装置を提供する。
【００１４】
また、本発明では、トラフィックシェーピング機能を有するパケット中継装置であって、受信したパケットのヘッダ情報に基づいてユーザおよびクラス単位にトラフィックを分類する振り分け処理部と、前記ユーザ単位および前記ユーザの高優先クラス単位に設定された最大帯域および最低帯域および重み情報から、各ユーザおよび各ユーザの高優先クラスに対する利用可能帯域を計算する計算部と、前記ユーザおよび前記ユーザの高優先クラスに対する前記利用可能帯域に基づいて算出される送信予定時刻を更新し、前記更新した送信予定時刻により、いずれのユーザに振り分けられた高優先クラスのパケットを送信すべきかを判断する第１のスケジューリング制御部と、前記ユーザの高優先クラスに対する前記利用可能帯域に基づいて算出される送信予定時刻を更新し、前記更新した当該送信予定時刻により、いずれのユーザに振り分けられた非高優先クラスのパケットを送信すべきかを判断する第２のスケジューリング制御部と、前記ユーザおよび前記ユーザの高優先クラスの前記最大帯域に基づいて算出される送信予定時刻を更新し、前記更新した送信予定時刻により、前記ユーザ毎および前記ユーザのクラス毎に最大帯域でシェーピングするシェーピング部と、前記グループの優先度に応じて、各グループのパケットの送信を完全優先制御する優先制御処理部とを有することを特徴とするパケット中継装置を提供する。
【発明の効果】
【００１５】
本発明によれば、リアルタイム性が求められるトラフィックに対して廃棄/遅延を極力少なくしつつ、フロー（チャネル）毎に決められた帯域でトラフィックのバースト性を抑えるためのトラフィックシェーピングを実施し、また、Internetトラフィック（低優先）に対してユーザ間帯域の中立性を確保（最低帯域保証、もしくは、重み均等帯域分配）することができる。また、拠点毎にトラフィックシェーピングを行ないつつ、リアルタイム性が求められるトラフィックに対して、廃棄/遅延を極力少なくしつつ、バースト性を抑えるためのトラフィックシェーピングを実施し、各拠点に対するシェーピング帯域からリアルタイムトラフィックの使用帯域をさし引いた残り帯域をInternetトラフィック（低優先）が利用して通信を行なうことができる。
【発明を実施するための最良の形態】
【００１６】
ネットワーク要件（１）を実現するために、本実施形態におけるトラフィックシェーピング装置では、図１に示すようにトラフィックを例えば電話/放送/Internetのサービス毎に高/中/低優先に分類してトラフィックをキューイングする高/中/低優先のユーザキュー１０１を持ち、各ユーザに設定された最大帯域・最低帯域・重みにより利用可能帯域を計算して、最大帯域・利用可能帯域から求められる送信予定時刻を管理する機能を持つ送信予定時刻計算１０２と、送信予定時刻計算１０２より伝達された利用可能帯域の送信予定時刻による利用可能帯域スケジューラー１０３と、各ユーザの最大帯域の送信予定時刻をチェックして送信予定時刻に達するまで送信を抑止するユーザ最大帯域シェーピング１０４と、各グループの最大帯域による送信予定時刻をチェックして送信予定時刻に達するまで送信を抑止するグループ帯域シェーピング１０５と、各グループの送信候補者から優先度の高いグループを優先的に送信する優先制御処理１０６と、各回線の最大帯域による送信予定時刻をチェックして送信予定時刻に達するまで送信を抑止する回線帯域シェーピング１０７の仕組みを備える。
【００１７】
図１では、電話トラフィックを高優先グループのユーザキュー、放送トラフィックをフロー（チャネル）毎に中優先グループのユーザキュー、Internetトラフィックは低優先グループのユーザキューに入力している。ユーザの分類としては、例えば、電話トラフィックは全て単一ユーザとして扱い、放送トラフィックはチャネル毎にユーザを分け、InternetトラフィックはHTTPやFTP等のプロトコル毎にユーザを分けて扱うことが考えられる。
【００１８】
このようなパケットスケジューリング方式を用いる事でネットワーク要件（１）を満たす制御技術を提供する事ができる。具体的には、高優先グループとして扱われる電話トラフィックは、優先制御処理１０６によって他のグループよりも常に優先的に送信される完全優先制御が行われることで廃棄／遅延が極力少なくなるように制御され、更に、グループ帯域シェーピング１０５ａによってバースト性を抑えるためのトラフィックシェーピングを行うことができる。また、中優先・低優先グループとして扱われる放送・Internetトラフィックは、各ユーザに応じた送信予定時刻が管理され、各ユーザのトラフィックは各々の利用可能帯域と最大帯域の送信予定時刻に基づいて送信されるため、ユーザ間帯域の中立性を確保することができる。
【００１９】
また、同図では各グループ間のスケジューリング処理を完全優先制御するが、グループ間の制御を完全優先制御とスケジューリング処理を組み合わせても良い。図２に示すように、２つのグループ間で重み付け公平キューイング（以降、ＷＦＱ：Weighted Fair Queuing）を行なうためのＷＦＱスケジューラー２０１を配置した後に優先制御処理１０６にて完全優先制御処理を行なっても良い。
【００２０】
ＷＦＱは複数のキューが存在する中で、どのキューからパケットを送信するかを、重みによってスケジューリングするアルゴリズムである。それぞれのキュー毎に重み（Weight）を設定し、それぞれの重みに基づいて帯域リソースを分配する。ＷＦＱは送信パケット長を考慮して帯域リソースを分配するので帯域リソースを綺麗に分配する事ができる。
【００２１】
また、図３に示すように各ユーザ間のスケジューリング処理においてもＷＦＱ型スケジューリングを用いても良い。ＷＦＱスケジューリングを行なうグループの各ユーザに対し、パケット送受信時に各ユーザに設定された重みと送信パケット長によって更新する送信カウンター３０１と、前記送信カウンターからＷＦＱ型のスケジューリングを行なうＷＦＱスケジューラー３０２を配置する。
【００２２】
なお、ここでＷＲＲ（Weighted Round Robin）型ではなくて、ＷＦＱ型のスケジューラーを配備した理由は、ＷＲＲ型ではパケット長によってユーザ間の帯域を公平に分配することが困難で、パケット長によって特定ユーザにトラフィックが偏ってしまうことや、回線帯域が余っていても通信ができない無駄な未使用帯域が発生したりする問題が発生するためである。ＷＲＲ型はキュー毎にカウンターを持つ必要がなく仕組みが単純で実装的は簡単であるが、イーサネット（登録商標）のようにパケット毎のパケットサイズが異なる回線インタフェース上において、ユーザ間の帯域リソースの公平性を守ると言う目的を解消するためにはＷＦＱを用いるべきである。
【００２３】
なお、本方式のようにサービスアプリケーション毎にグループを分けてそれぞれのキューにキューイングする本発明の方式をService Adapted Queuing方式（以降、ＳＡＱ方式）と呼ぶこととする。なお、図１、図２、図３ではグループ数を３個で説明をしたが必要に応じて任意のグループ数に拡張もしくは縮小して良く、本発明による請求範囲を制限するものではない。
【００２４】
ここで、ＳＡＱ方式を用いることの効果について整理する。ＳＡＱ方式の効果は、各種サービス毎（電話・放送・Internet）の異なる通信品質の要求に対して、柔軟に対応するトラフィック制御技術を提供することにある。
【００２５】
通信にはリアルタイム性が必要なものや確実性が必要とされるものなど、サービスの種別によって様々な要求が存在する。一般的に、電話はリアルタイム性、放送はリアルタイム性とフロー（チャネル）毎のトラフィックバースト抑制、Internetは確実性と中立性が必要とされる。ＳＡＱ方式ではこのような様々な要求に柔軟に対応できるトラフィック制御技術を提供する。
【００２６】
図１のように、音声トラフィックを高優先ユーザキュー１０１ａにマッピング、優先制御処理１０６によって他グループよりも優先的に送信処理を行なうことでリアルタイム性を確保する。また、放送トラフィックをチャネル単位で中優先ユーザキュー１０１ｂにマッピング、利用可能帯域スケジューラー１０３ａによってスケジューリングを行いつつ、ユーザ最大帯域シェーピング１０４ｂによってチャネル単位に設定された最大帯域によってバースト性を抑制、優先制御処理１０６によって高優先トラフィック(音声)の次の優先順位で送信処理を行なう事によってリアルタイム性を確保する。また、Internetトラフィックをユーザ単位で低優先ユーザキュー１０１ｃにマッピング、利用可能帯域スケジューラー１０３ｂによって送信スケジューリングする事でユーザ毎の送信帯域の公平性および確実性を確保する。また、前記の高/中優先グループのトラフィックが使用しなかった帯域を重みによって帯域分配する（ユーザ最大帯域まで）ことによって低優先グループのユーザ間で帯域リソースを公平性に分配、回線リソースを有効活用することができる。
【００２７】
また、図３のように低優先グループのユーザ間のスケジューリング制御としてＷＦＱスケジューラー３０２を利用する場合、低優先グループの各ユーザの送信帯域は、高/中優先トラフィックが使用しなかった帯域を各ユーザに設定された重みによって均等に分配することが可能となる。なお、低優先グループの総帯域を制限するグループ帯域シェーピング１０５ｃを有効にした場合に、高/中優先トラフィックが使用しなかった帯域が当該グループの最大帯域よりも大きい場合は、当該グループの最大帯域から各ユーザに対する帯域分配を重みによって実施する。
【００２８】
以上により、ＳＡＱ方式によるトラフィックシェーピング技術によってトラフィック要件（１）を解決できる。
【００２９】
また、ネットワーク要件（２）を実現するために、本実施形態におけるトラフィックシェーピング装置では、図４に示すようにトラフィックを優先度別にユーザのクラス毎に分類してトラフィックをキューイングする高/低優先のクラスキュー４０１と（図４においては、高優先クラスに電話が割り当てられ、低優先クラスにInternetが割り当てられている。また、ユーザとは、ネットワーク要件（２）における拠点に相当する。）、高優先クラスキューに対して設定された最大帯域・最低帯域・重みにより利用可能帯域を計算して最大帯域・利用可能帯域から求められる送信予定時刻を管理する機能を持つクラス送信予定時刻計算４０２と、高/低優先クラスの合計帯域（各ユーザ即ち拠点毎に許容される帯域）に対して設定された最大帯域・最低帯域・重みにより利用可能帯域を計算して最大帯域・利用可能帯域から求められる送信予定時刻を管理するユーザ送信予定時刻計算４０３と、クラス送信予定時刻計算４０２またはユーザ送信予定時刻計算４０３より伝達された利用可能帯域の送信予定時刻による利用可能帯域スケジューラー４０４と、各ユーザの最大帯域の送信予定時刻をチェックして送信予定時刻に達するまで送信を抑止するユーザ最大帯域シェーピング４０５と、各グループ（図４では、電話トラフィックを高優先グループとして、Internetトラフィックを低優先グループとして扱っている。）の最大帯域による送信予定時刻をチェックして送信予定時刻に達するまで送信を抑止するグループ帯域シェーピング４０６と、各グループの送信候補者から優先度の高いグループを優先的に送信する優先制御処理４０７と、各回線の最大帯域による送信予定時刻をチェックして送信予定時刻に達するまで送信を抑止する回線帯域シェーピング４０８の仕組みを備える。
【００３０】
図４において点線の矢印で接続されているクラス送信予定時刻計算４０２とユーザ送信予定時刻計算４０３はパケット情報のやり取りではなく、高優先クラスキューのパケット送信した分のペナルティーを当該ユーザの送信予定時刻に対して課すための信号のやり取りを意味する。これにより、高優先クラスキューのパケットを送信した分に応じて、低優先クラスキューのパケット送信が抑止されるため、高優先と低優先を含んだユーザ（拠点）毎にトラフィックシェーピングを行うことができ、低優先クラスキューパケットのトラフィックを各拠点に対するシェーピング帯域からリアルタイムトラフィックの使用帯域を差し引いた残りの帯域に制限することが可能となる。
【００３１】
また、高優先グループとして扱われる高優先クラスの電話トラフィックは、優先制御処理４０７によって他のグループよりも常に優先的に送信される完全優先制御が行われることで廃棄／遅延が極力少なくなるように制御され、更に、グループ帯域シェーピング４０６ａによってバースト性を抑えるためのトラフィックシェーピングを行うことができる。これにより、ネットワーク要件（２）を満たす制御技術を提供する事ができる。
【００３２】
図４では電話とInternetの２種類のトラフィックを分類して各ユーザキューの高優先クラス・低優先クラスの２クラスにマッピングした例であるが、必要に応じてクラス数を拡張してよく、本発明による請求範囲を制限するものではない。また、特許文献３においてユーザキュー内をPQ制御にした時と動作の違い、トラフィックをクラスレベルでグループ分離してグループ間で優先制御を行なうことで、高優先クラスのトラフィックは低優先クラスのトラフィックの影響を一切受けずに低遅延で転送する事が可能となる特徴を有している。ユーザ単位の扱いで考えると、低遅延な完全優先方式を実現しているように見える。本発明によって提供される解決手段をLow Latency Priority Queuing方式（以降、ＬＬＰＱ方式）と呼ぶこととする。
【００３３】
ここで、ＬＬＰＱ方式を用いることの効果について整理する。ＬＬＰＱ方式の効果は、広域イーサネット（登録商標）やＩＰ−ＶＰＮなどのＷＡＮサービス上で各種サービス毎（電話・放送・Internet）に異なる通信品質の要求に対して、柔軟に対応するトラフィック制御技術を提供することにある。ＳＡＱ方式との違いはＷＡＮサービス上での適用を想定し、それぞれの拠点宛て毎に送信可能な帯域が制限されていることを前提としている点であり、各種サービス毎に最適なトラフィック制御を提供すると言う目的自体は同じである。
【００３４】
図４のように、音声トラフィックをユーザ単位でそれぞれの高優先クラスキュー４０１ａにマッピング、利用可能帯域スケジューラー４０４ａによって各ユーザの高優先クラスの送信スケジューリングを行ないつつ、ユーザ最大帯域シェーピング４０５ａによって各ユーザの高優先クラスの最大帯域でトラフィックを抑制、優先制御処理４０７によって低優先クラスのトラフィックよりも優先的に送信処理を行なう事によってリアルタイム性を確保する。
【００３５】
Internetトラフィックをユーザ単位でそれぞれの低優先クラスキュー４０１ｂにマッピング、ユーザ送信予定時刻計算４０３ａでは高優先クラスを含むユーザ単位で設定された最大帯域・最低帯域・重みに基づいて送信予定時刻を管理、利用可能帯域スケジューラー４０４ｂでは、高優先クラスのトラフィックを含めた拠点毎の送信スケジューリングが可能となり、ユーザ最大帯域シェーピング４０５ｂにおいても優先クラスのトラフィックを含めた拠点毎の最大帯域でトラフィック抑止できる。また、低遅延クラスのトラフィックは、高優先クラスのトラフィックが送信を行なった帯域を差し引いた送信帯域を保証しつつ、高優先クラスが使用しなかった帯域を各ユーザの低優先クラス間で帯域リソースを重みによって公平に分配し、回線リソースを有効活用することができる。
【００３６】
なお、高優先クラスに設定された帯域よりも実際の入力帯域が少なかった場合には、高優先クラスのトラフィックで使用されなかった未使用帯域は、当該ユーザの低優先トラフィックが使用することができるため、各ユーザ間での高/低優先クラスの帯域を合算するとユーザ間のトラフィックの中立性は保証される。
【００３７】
以上により、ＬＬＰＱ方式によるトラフィックシェーピング技術を利用する事によってネットワーク要件（２）を解決できる。
【００３８】
本実施形態におけるトラフィックシェーピング装置を使用する場合、ネットワーク構成およびトラフィック要件などの状況に応じて、ＳＡＱ方式とＬＬＰＱ方式のうちの最適な方式を選択する必要がある。
【００３９】
本実施形態におけるシェーピング装置の内部ブロック図を図５に示す。なお、本実施形態によって構成されるトラフィックシェーピング機能を有する装置として、回線インタフェース５０３と、ルーティング処理部５０２と、スイッチ部５０１から構成され、少なくとも１つの回線インタフェース５０３には帯域制御コントローラー５０４が具備されている。
【００４０】
次に、同図に示す各部位の機能について説明する。
【００４１】
ルーティング処理部５０２は、回線インタフェース５０３を介して外部の通信装置からのパケットを受信し、受信パケットの宛先IPアドレスや宛先MACアドレスを参照して出力先の回線インタフェース５０３を決定するルーティング機能を有する。受信パケットを目的の配送先に送り届けるために、パケットの配送先に関する経路情報が記録されたルーティングテーブルを参照してパケットの送付先情報（この場合は回線インタフェース５０３）を付与してスイッチ処理部５０１にパケットを転送する。スイッチ処理部５０１からパケットを受信した時は、ルーティング処理部５０２の配下に属する回線インタフェース５０３にパケットを転送する。
【００４２】
スイッチ処理部５０１は、ルーティング処理部５０２によって付与された送付先情報を参照することによって経路を動的に選択する事ができるパケットスイッチング機能を有している。ルーティング処理部５０２から受け取ったパケットを送付先のルーティングテーブル処理部５０２に転送する。
【００４３】
回線インタフェース５０３は外部の通信装置とのパケット送受信を行なう。外部の通信装置からパケットを受信した場合、物理サブレイヤ５０５を解してルーティング処理部５０２にパケットを転送し、ルーティング処理部５０２からパケットを受信した場合は物理サブレイヤ５０５を解して外部の通信装置にパケットを送出する。物理サブレイヤ５０５は伝送経路上のデータ表現方式や物理インタフェースの形状など、OSI参照モデルのうち第１層の物理的接続を担う汎用部品である。また、本発明で構成されるトラフィックシェーピング装置では、回線インタフェース５０３の中で少なくとも１つには帯域制御コントローラー５０４が具備されている。帯域制御コントローラー５０４は本発明にかかるトラフィックシェーピング制御を担うキューコンポーネントである。ルーティング処理部５０２から転送されたパケットは帯域制御コントローラー５０４を経由する事で帯域制御を行なうことが可能となる。
【００４４】
次に、帯域制御コントローラー５０４の内部の詳細な処理内容について記載する。帯域制御コントローラー５０４は、本発明にかかるトラフィックシェーピング方法を実現する処理制御部である。なお、本発明は異なったネットワーク要件を解決するために２種類の解決手段を提供するが処理の多くは共通化が可能なので、２つの解決手段によって処理内容に差分がある場合に限ってその趣旨を記載する。
【００４５】
図６は本発明のトラフィックシェーピング方式におけるキュー構成および処理フローを示すブロック図を示すものである。本発明における帯域制御コントローラー５０４には、トラフィック振り分け処理部６０１と、ユーザ送信時刻処理部６０２と、スケジューリング制御部６０３と、ユーザ最大帯域制御部６０４と、グループ最大帯域制御部６０５と、優先制御処理部６０６と、回線最大帯域制御部６０７と送信ユーザ情報抽出部６０８からなる。２つの解決手段によって処理内容に差分が生じる処理部は、トラフィック振り分け処理部６０１と、ユーザ送信時刻処理部６０２と、送信ユーザ情報抽出部６０８である。また、同図では２系統のグループに分類されているがこのグループは３系統以上に拡張してよく、特許の請求範囲を制限するものではない。
【００４６】
トラフィック振り分け処理部６０１は、ルーティング処理部から入力されたパケットのL２/L３ヘッダ情報などを参照してパケット毎にグループ単位/ユーザ単位/クラス単位に分類して、当該パケットの受信リクエストとユーザ番号とパケット長情報をユーザ送信時刻処理部６０２・グループ最大帯域制御部６０５・回線最大帯域制御部６０７・送信ユーザ情報抽出部６０８に転送する機能と、当該パケットのパケットデータをユーザ送信時刻処理部６０２に転送する機能と有する。
【００４７】
なお、本発明にかかる２つの解決手段によって当該機能によるグループ/ユーザ/クラスへのマッピング方法をかえる必要がある。例えば、同一ユーザ宛てのトラフィックであっても、ＳＡＱ方式の場合は図１のようにサービス（電話・放送・Internet）単位にユーザレベルで分離してマッピングを行なうのに対して、ＬＬＰＱ方式の場合は図４のようにユーザレベルでは分離せず、同一ユーザ（拠点）内の異なるクラスにサービス（電話・Internet）単位にマッピングを行なう。この違いは、ＬＬＰＱ方式は広域イーサネット（登録商標）などのＷＡＮアクセスサービス上での利用を想定したときに宛先毎にトラフィックシェーピングが必要となるためで、同一宛先のトラフィックは同一ユーザとして制御する必要がある。なお、このような振り分け機能自体は外部の処理ブロック（例えば、図５に示したルーティング処理ブロックなど）にて同等の機能を持たせても良い。また、振り分けを行なうグループ数/ユーザ数/クラス数は必要に応じて拡張すべきしても良いし、分類に使用する情報は新たに独自で作成したヘッダ情報などを用いてもよい。
【００４８】
ユーザ送信時刻処理部６０２は、ユーザ（＃１〜ｎ）毎に設けられ、トラフィック振り分け処理部６０１から入力されたパケットデータを一時的に格納するパケットバッファーと、各ユーザに設定する最大帯域（以降、Peak Frame Rate = PFR）と最低帯域（以降、Minimum Frame Rate = MFR）と余剰帯域の分配比率（Weight）の情報を格納する機能と、PFR/MFR/Weightの値から求められる利用可能帯域（以降、Available Frame Rate=AFR）を計算する機能と、スケジューリング制御部６０３で利用可能帯域型スケジューリングを用いる際にAFRとPFRによる送信予定時刻であるAOTIME/POTIMEを更新して値を保持する機能と、スケジューリング制御部６０３でＷＦＱ型スケジューリングを用いる際にWeightによる送信カウンターを更新して値を保持する機能と、各ユーザのAOTIME/POTIMEまたは送信カウンターの情報をスケジューリング制御部６０３に情報を伝達する機能を有する。
【００４９】
図１〜２との対応では、図６の６０２aは放送トラフィック（中優先ユーザ）の送信予定時刻計算１０２ｂ〜ｃ、６０２ｂはInternetトラフィック（低優先ユーザ）の送信予定時刻計算１０２ｄ〜ｅ、＃１〜ｎはユーザ（例えば放送ではチャネル、Internetでは接続端末）を指す。図３との対応では、図６の６０２aは放送トラフィック（中優先ユーザ）の送信予定時刻計算１０２ｂ〜ｃ、６０２ｂはInternetトラフィック（低優先ユーザ）の送信カウンター３０１ａ〜ｂ、＃１〜ｎはユーザ（例えば放送ではチャネル、Internetでは接続端末）を指す。
【００５０】
図４との対応では、６０２ａは電話トラフィック（高優先クラス）のクラス送信予定時刻計算４０２ａ〜ｂ、６０２ｂは宛先毎（高優先クラスと低優先クラスの帯域合計）のユーザ送信予定時刻計算４０３ａ〜ｂ、＃１〜ｎはユーザ（例えば拠点）を指す。
【００５１】
なお、図１〜３において音声キューをマッピングしている高優先ユーザ・グループに対応するものを図６の記載上は省略しているが、グループ数は任意に拡張可能であって本発明の構成を制限するものではないし、図１〜３の高優先ユーザキュー１０１ａのようにグループ内のユーザ数が１個の場合は、グループ内のユーザ間のスケジューリング処理が不要となるため、該当グループにおいてユーザ送信時刻処理部６０２とスケジューリング制御部６０３は不要で処理を省略可能となる。
【００５２】
AOTIMEはグループ内のユーザ間でのスケジューリング制御に用いられる送信予定時刻であり、POTIMEはスケジューリング処理後に送信候補者がユーザの最大帯域を超過していないかをチェックする為に設けられる送信予定時刻である。なお、AFRは以下の式によって計算することができる。
【００５３】
AFR = min { PFR ; MFR + { （回線帯域 orグループ帯域） - （MFRの総和） } x Weight / （Weightの総和） }
ここでmin{ ; }は{  }内の;で区切られた値のうちの最低値を値として返す処理を意味している。余剰帯域を分配した結果が、ユーザに設定されたPFRよりも大きい場合にはAFRとしてPFRの値を返すことで、AFRがPFRの値を超過する事を防ぐ。また、上記に示すMFRの総和やWeightの総和は通信を行なっているユーザから計算する。前記処理により、無通信ユーザのMFRは未使用の帯域として他ユーザに分配することが可能となる。なお、各ユーザのMFRを保証する為、全ユーザのMFRの総和は回線帯域の値以下、各グループの配下に属するユーザのMFRの総和はグループ帯域の値以下になるように設定を行なう。回線帯域=１Gbpsなのに全ユーザのMFRの総和が１Gbpsを超えてしまったり、グループ帯域=５００Mbpsなのに当該グループ配下のユーザのMFRの総和が５００Mbpsを超えてしまったりすると、各ユーザの最低帯域を保証する事が不可能となる。
【００５４】
スケジューリング制御部６０３で利用可能帯域型スケジューリングを用いる際に必要となるAFRとPFRによる送信予定時刻であるAOTIME/POTIMEの更新処理について記載する。パケット送受信時にAOTIME/POTIMEを以下のように更新する。
【００５５】
パケット受信時のAOTIME/POTIME更新動作
パケット受信時の送信予定時刻の更新処理フローを図７に示す。受信ユーザのパケットバッファーにパケットが溜まっている（ステップ７０１のｎｏ）場合、もしくは、パケットバッファーにパケットが溜まっていない（ステップ７０１のｙｅｓ）、かつ、送信予定時刻が“未来”または“現在”である（ステップ７０２のｎｏ）の場合には、送信予定時刻を更新せずに値をそのまま保持する（ステップ７０４）。また、パケットバッファーにパケットが溜まっておらず（ステップ７０１のｙｅｓ）、さらに送信予定時刻が“過去”である（ステップ７０２のｙｅｓ）の場合には、送信予定時刻を“現在”に更新して新しい送信予定時刻を保持する（ステップ７０３）。パケットが存在しない状態での“過去”の送信予定時刻は意味がなく、パケット受信時に現在に戻す必要がある。なお、ここで“未来”/“現在”/“過去”という言葉の概念について説明すると、“過去”とは送信予定時刻を経過して早く送信すべき状態、“現在”とはちょうど今が送信予定時刻である状態、“未来”とは送信予定時刻にまだ達してない状態であることを指している。なお、AOTIMEおよびPOTIMEの更新処理については共通動作を行なう。
【００５６】
パケット送信時のAOTIME/POTIME更新動作
パケット送信時の送信予定時刻の更新処理フローを図８に示す。送信予定時刻の更新の際に必要となる送信パケット長（FBYTE）情報を送信ユーザ情報抽出部６０８から受信して、当該ユーザのAOTIME/POTIME更新を以下の式で行なう。なお、AFR、PFRは当該ブロック内に格納されているユーザ毎の利用可能帯域と最大帯域のことである。なお、今後の各数式において、下つき文字で記載されたパラメータについては、下つき文字newで記載されているものはパケット送信による更新後の値、下つき文字oldで記載されているものはパケット送信前の更新前の値を示している。
【００５７】
AOTIMEnew = AOTIMEold + AFR x FBYTE
POTIMEnew = POTIMEold + PFR x FBYTE
ＳＡＱ方式およびＬＬＰＱ方式の２つによるユーザ送信時刻処理部６０２の送信予定時刻の更新処理フローを図８に示す。ＳＡＱ方式の場合（ステップ８０１でＳＡＱ方式の場合）には一つのパケット送信によって一つのユーザキューの送信予定時刻を再計算する（ステップ８０５）だけであるが、ＬＬＰＱ方式（ステップ８０１でＬＬＰＱ方式の場合）で高優先クラスのトラフィックを送信した場合（ステップ８０２のｙｅｓ）、送信ユーザ情報抽出部６０８から当該ユーザの高優先・低優先クラスのユーザ送信時刻処理部６０２にそれぞれに対して更新命令が与えられて、高優先・低優先クラスの送信予定時刻が更新する（ステップ８０３）。なお、ＬＬＰＱ方式で低優先クラスのトラフィックを送信した場合（ステップ８０２のｎｏ）は低優先クラスの送信予定時刻のみを更新する（ステップ８０４）。
【００５８】
また、本発明にかかるユーザ間の処理は、ＷＦＱによるスケジューリング方式を用いても良くその際に必要となる送信カウンターの更新処理について記載する。ＷＦＱによるスケジューリングに用いる送信カウンター（CNTIME）と定義すると、パケット送受信時にCNTIMEを以下のように更新する。
【００５９】
パケット受信時のCNTIME更新動作
受信時の更新動作については、前記の“パケット受信時のAOTIME/POTIME更新動作”と同様。但し、送信カウンターは純粋なカウンターであって時間の概念は存在しない。“未来”/“現在”/“過去”を以下のように置き換える。全ユーザの中で有効なカウンターのうちの最小値が“現在”、 有効なカウンターのうちの最小値よりも値が大きい場合を“未来”、有効なカウンターでないものを“過去”とする。
【００６０】
パケット送信時のCNTIME更新動作
送信予定時刻の更新の際に必要となる送信パケット長（FBYTE）情報を送信ユーザ情報抽出部６０８から受信して、当該ユーザのCNTIME更新を以下の式で行なう。なお、Weightは当該ブロック内に格納されているユーザ毎の重みである。
【００６１】
CNTIMEnew = CNTIMEold + １ / Weight x FBYTE
スケジューリング制御部６０３は、利用可能帯域スケジューリング方式もしくはＷＦＱ型スケジューリング方式において、どのユーザを真っ先に送信すべきかどうかをスケジューリングする機能を有する。
【００６２】
図１〜２との対応では、図６の６０３aは放送トラフィック用の利用可能帯域スケジューラー１０３a、６０３ｂはInternetトラフィック用の利用可能帯域スケジューラー１０３ｂを指す。
【００６３】
図３との対応では、図６の６０３aは放送トラフィック用の利用可能帯域スケジューラー１０３、６０３ｂはInternetトラフィック用のＷＦＱスケジューラー３０２を指す。
【００６４】
図４との対応では、６０３ａは電話トラフィック用の利用可能帯域スケジューラー４０４a、６０３ｂは宛先毎（電話トラフィックとInternetトラフィックの合計）の利用可能帯域スケジューラー４０４ｂを指す。
【００６５】
利用可能帯域スケジューリング方式を用いる場合にはユーザ送信時刻処理部６０２から各ユーザのAOTIME/POTIMEの情報を受け取り、AOTIMEを用いて送信候補者を選出するスケジューリング処理を実施して、ＷＦＱ型スケジューリング方式を用いる場合にはユーザ送信時刻処理部６０２から各ユーザのCNTIMEの情報を受け取り、CNTIMEを用いて送信候補者を選出するスケジューリング処理を実施する。
【００６６】
各ユーザのAOTIMEまたはCNTIMEにはユーザ毎に次に送信すべきパケットの送信予定時刻が記載されており、AOTIMEまたはCNTIMEがもっとも古い（早く送信すべき状態）ユーザを探す。毎回、全ユーザのAOTIMEまたはCNTIMEを比較して送信候補者と選ぶと処理に時間が掛かってしまうので処理には工夫が必要となる。全ユーザを毎回比較演算すると、ユーザ数が多くなるほどに計算量がｎ！で増大してしまい計算量が増えてしまう為である。演算量を抑えるため、ユーザの状態変化があった度に、当該ユーザの順序のみを入れ替えるヒープ・ソート計算を行なうことによってスケジューリングにかかる処理を軽減するような処理が必要となる。処理を高速化するためには、一般的に知られているクイックソートやバブルソートなどのヒープ処理などが知られている。なお、高速回線上に本発明に掛かるシェーピング装置を実装する場合にはこのスケジューリング処理を高速に処理させる必要がある。例えば、１Gbps上の回線で本発明にかかる技術を実装しようとした場合、６７２ns以内のサイクルで送信候補者を見つけだす処理性能を保有することが望ましい。６７２nsの毎サイクルで送信候補者を選出できないと、回線速度に対して１００%のワイヤーレート処理が不可になってしまって、そのことが帯域制御に悪影響を及ぼす危険性が高い為である。当該ブロックによって、送信候補者として選出されたユーザ番号と当該ユーザのPOTIME情報をユーザ最大帯域制御部６０４に転送する。
【００６７】
ユーザ最大帯域制御部６０４は、各ユーザに設定された最大帯域を違反していないかどうかを監視する機能を有する。
【００６８】
図１〜３との対応では、図６の６０４aは放送トラフィック用のユーザ最大帯域シェーピング１０４ｂ、６０４ｂはInternetトラフィック用のユーザ最大帯域シェーピング１０４ｃを指す。図４との対応では、６０４ａは電話トラフィック用のユーザ最大帯域シェーピング４０５a、６０４ｂは宛先毎（電話トラフィックとInternetトラフィックの合計）のユーザ最大帯域シェーピング４０５ｂを指す。
【００６９】
前記のスケジューリング制御によって選択された送信候補者のユーザ番号とPOTIMEの情報を受け取り、POTIMEをチェックする。POTIMEは“過去”または“現在”であったら当該ユーザの送信トラフィックは送信可能と判断して、送信リクエストと送信ユーザ番号をグループ最大帯域制御部６０５に通知する。また、POTIMEが“未来”であったら当該ユーザの送信トラフィックは送信不可能と判断して、送信リクエストをグループ帯域制御部に通知しない。
【００７０】
グループ最大帯域制御部６０５は、グループ毎にパケットバッファーにパケットが何個溜まっているかを記録するパケット数カウンターと、グループ毎に設定された最大帯域であるGFRと当該グループの送信予定時刻であるGOTIMEを保持して帯域違反していないかどうかを監視する機能と、パケット受信時およびパケット送信時にGOTIMEを更新する機能を有する。
【００７１】
図１〜３との対応では、図６の６０５aは放送トラフィック用のグループ帯域シェーピング１０５ｂ、６０５ｂはInternetトラフィック用のグループ帯域シェーピング１０５ｃを指す。図４との対応では、６０５ａは電話トラフィック用のグループ帯域シェーピング４０６ａ、６０５ｂは宛先毎（電話トラフィックとInternetトラフィックの合計）のグループ帯域シェーピング４０６ｂを指す。
【００７２】
最大帯域を違反してないかどうかを監視する処理は、前記のユーザ最大帯域制御部６０４を介して送信リクエストを受信した際にGOTIMEをチェックして“過去”または“現在”であったら送信可能と判断して送信リクエストと送信ユーザ番号を優先制御処理部６０６に通知し、“未来”であったら送信不可と判断して送信リクエストを優先制御処理部６０６に通知しない。パケット数カウンターはトラフィック振り分け処理部６０１からパケット受信の情報を受け取ると当該カウンターを＋１、送信ユーザ情報抽出部６０８からパケット送信の情報を受け取ると当該カウンターを−１する機能である。パケット数カウンターが１以上であるならば当該グループのパケットが滞留している状態であり、この情報は後述するパケット受信時の送信予定時刻の更新処理で用いる。GOTIMEの更新処理は、パケット受信時に受信リクエストをトラフィック振り分け処理部６０１から受信すると、当該グループのパケット数カウンターがゼロで、かつ、GOTIME=“過去”の時、GOTIMEを“現在”に更新する。それ以外の条件ではGOTIMEを更新しない。また、パケット送信時には、送信リクエスト・送信ユーザ番号・送信パケット長（FBYTE）を後述する送信ユーザ情報抽出部６０８から受信し、以下の式で当該グループのGOTIMEを更新する。
【００７３】
GOTIMEnew = GOTIMEold + GFR x FBYTE
優先制御処理部６０６は、グループ毎に算出された送信候補者のうちにどのグループに属する当該ユーザのトラフィックを選出するべきかを優先処理判定を行なう機能を有し、図１〜３における優先制御処理１０６、図４における優先制御処理４０７の役割を担う。
【００７４】
当該ブロックは、前記のグループ最大帯域制御部６０５から送信リクエストと送信ユーザ番号の情報を受信すると、複数のグループから送信リクエストを受信した場合にはグループの中から最も優先度が高いグループを完全優先制御によって選出して、当該の送信リクエストと送信ユーザ番号を回線最大帯域制御部６０７に送信する。なお、本発明にかかる優先制御処理として、完全優先制御とＷＦＱを組み合わせた優先制御処理などを用いても良い。
【００７５】
回線最大帯域制御部６０７は、回線毎にパケットバッファーにパケットが何個溜まっているかを記録するパケット数カウンターと、回線毎に設定された最大帯域であるLFRと回線の送信予定時刻であるLOTIMEを保持して帯域違反していないかどうかを監視する機能と、パケット受信時およびパケット送信時にLOTIMEを更新する機能を有し、図１〜３における回線帯域シェーピング１０７、図４における回線シェーピング４０８の役割を担う。
【００７６】
処理の内容自体は、前記のグループ最大帯域制御部６０５と全く同じである。処理的な違いは前記の優先制御処理部６０６を介して送信リクエストとユーザ番号を受信することと、送信可能なときに送信リクエストと送信ユーザ番号を送信ユーザ情報抽出部６０８に伝搬させると言う外部インタフェースの違いのみである。
【００７７】
LOTIMEの更新処理は、パケット受信時に受信リクエストをトラフィック振り分け処理部６０１から受信すると、当該回線に対してパケットバッファーのパケットカウンターがゼロで、かつ、LOTIME=“過去”の時、LOTIMEを“現在”に更新する。それ以外の条件ではLOTIMEは更新しない。また、パケット送信時には、送信リクエスト・送信ユーザ番号・送信パケット長（FBYTE）を後述する送信ユーザ情報抽出部６０８から受信し、以下の式で当該回線のLOTIMEを更新する。
【００７８】
LOTIMEnew = LOTIMEold + LFR x FBYTE
送信ユーザ情報抽出部６０８は、各ユーザの送信トラフィックのパケット長を管理する機能と、パケット送信時に送信予定時刻を更新する際に必要となる送信リクエスト・送信ユーザ番号・送信パケット長の情報をユーザ送信時刻処理部６０２グループ最大帯域制御部６０５・回線最大帯域制御部６０７に展開する機能を有する。
【００７９】
パケット受信時にトラフィック振り分け処理部６０１から受信リクエストおよび受信ユーザ番号および受信パケット長を受信すると、当該ユーザ番号のパケット長を管理する記録領域にユーザ毎にパケット長を管理する。パケット長情報をユーザ毎に管理する事によって、送信ユーザが決定した際に当該ユーザの送信パケット長を読み出す事が可能となる。また、パケットの送信時には、回線帯域制御部から送信リクエストと送信ユーザ番号を受信すると、パケット受信時に記録した当該ユーザのパケット長の情報を参照して、送信ユーザ番号と送信パケット長と送信予定時刻更新リクエストを各帯域計算部位であるユーザ送信時刻処理部６０２とグループ最大帯域制御部６０５と回線最大帯域制御部６０７に転送する。
【００８０】
なお、ＳＡＱ方式およびＬＬＰＱの２つの方式によって、送信ユーザ情報抽出部６０８の振舞いが異なる点として、ＳＡＱ方式では送信した当該ユーザの送信予定時刻のみを更新すればよいのであるが、ＬＬＰＱ方式で高優先クラスのトラフィックを送信したときに、高優先クラスのユーザ送信予定時刻だけではなく、当該ユーザの全体帯域を計算している低優先クラスのユーザ送信予定時刻も更新する必要があるので、高優先・低優先クラスのそれぞれのユーザ送信時刻処理部６０２に更新リクエストを転送し、低優先クラスのトラフィックを送信したときには、低優先クラスのユーザ送信時刻処理部６０２に更新リクエストを転送する。
【００８１】
以上、上記処理を実施する事により前記課題を解決するトラフィックシェーピング装置を提供することが可能となる。
【００８２】
なお、図５の回線インタフェース５０３毎に異なる方式（ＳＡＱ方式／ＬＬＰＱ方式）を採用することも可能であり、その場合には両方式をネットワーク環境等によって使い分けるトラフィックシェーピング装置を提供することが可能となる。
【図面の簡単な説明】
【００８３】
【図１】本実施形態におけるトラフィックシェーピング装置のキュー構成例１である。
【図２】本実施形態におけるトラフィックシェーピング装置のキュー構成例２である。
【図３】本実施形態におけるトラフィックシェーピング装置のキュー構成例３である。
【図４】本実施形態におけるトラフィックシェーピング装置のキュー構成例４である。
【図５】シェーピング装置のブロック図である。
【図６】帯域制御コントローラーのブロック図である。
【図７】パケット受信時のユーザ送信予定時刻の更新フローである。
【図８】パケット送信時のユーザ送信予定時刻の更新フローである。
【符号の説明】
【００８４】
１０１ａ〜ｅ：高/中/低優先のユーザキュー、１０２ａ〜ｄ：送信予定時刻計算、１０３ａ〜ｂ：利用可能帯域スケジューラー、１０４ａ〜ｃ：ユーザ最大帯域シェーピング、１０５ａ〜ｃ：グループ帯域シェーピング、１０６：優先制御処理、１０７：回線帯域シェーピング、２０１： WRRスケジューラー、３０１ａ〜ｂ：送信カウンター、３０２：ＷＦＱスケジューラー、４０１ａ〜ｄ：高/低優先のクラスキュー、４０２ａ〜ｂ：クラス送信予定時刻計算、４０３ａ〜ｂ：ユーザ送信予定時刻計算、４０４ａ〜ｂ：利用可能帯域スケジューラー、４０５ａ〜ｂ：ユーザ最大帯域シェーピング、４０６ａ〜ｂ：グループ帯域シェーピング、４０７：優先制御処理シェーピング、４０８：回線帯域シェーピング、５０１：スイッチ部、５０２：ルーティング処理部、５０３：回線インタフェース、５０４：帯域制御コントローラー、５０５：物理サブレイヤ、６０１：トラフィック振り分け処理部、６０２：ユーザ送信時刻処理部、６０３：スケジューリング制御部、６０４：ユーザ最大帯域監視部、６０５：グループ最大帯域制御部、６０６：優先制御処理部、６０７：回線帯域制御部、６０８：送信ユーザ情報抽出部
【図１】
0004881887.tif 000002
【図２】
0004881887.tif 000003
【図３】
0004881887.tif 000004
【図４】
0004881887.tif 000005
【図５】
0004881887.tif 000006
【図６】
0004881887.tif 000007
【図７】
0004881887.tif 000008
【図８】
0004881887.tif 000009