(57)【特許請求の範囲】
【請求項１】
発信時点までの遅延時間制御の対象となるパケットの要求遅延時間に基づいて当該パケットの送信キューに対する相対的な挿入先頭位置及び挿入末尾位置を算出して配置対象区間を特定する過程と、
算出された挿入末尾位置から前記送信キューの先頭までの区間における間隙の総和を算出する過程と、
算出された間隙の総和がパケットサイズ以上である場合に前記配置対象区間を確保してパケット挿入及びパケット配列を行う過程と、を含み、
前記送信キューのスケジューリングに前記要求遅延時間を動的に反映させることを特徴とするパケット管理方法。
【請求項２】
前記確保した配置対象区間に既に他のパケットが存在する場合、前記挿入末尾位置を前記他のパケットの先頭位置に変更するとともに、該変更後の挿入末尾位置からパケットサイズを差分した位置に前記挿入先頭位置を変更して前記配置対象区間を動的に変更することを特徴とする請求項１記載のパケット管理方法。
【請求項３】
通信品質保証を要するパケット群から発信時点までの遅延時間制御の対象となる１または２以上のパケットを選別して保持するパケット処理手段と、
前記保持されたパケットのうち、相対的に小さい要求遅延時間のパケットほど送信キューの先頭に近くにキューイングするとともに、これらのパケットの前記送信キューに対する相対的な挿入先頭位置及び挿入末尾位置を算出して配置対象区間を特定し、算出された挿入末尾位置から前記送信キューの先頭までの区間における間隙の総和がパケットサイズ以上である場合に前記配置対象区間を確保してパケット挿入及びパケット配列を行うことにより、前記送信キューのスケジューリングを行うパケット管理手段と、
前記スケジューリングされた送信キューに対応するパケットを所定順に送信するパケット送信手段とを備え、
前記パケットの選別後、当該パケットの送信までの制御を動的に行うことを特徴とする通信制御装置。
【請求項４】
送信元からのパケット群を送信キューにスケジューリングして受信先へ送信するための通信制御装置であって、
前記送信元からのパケット群のうち通信品質保証の対象となるパケットから、発信時点までの遅延時間制御及び帯域制御の対象となる１または２以上のパケットを特定して所定の帯域制御を施すとともに、遅延時間制御の対象となるパケット、帯域制御のみの対象となるパケット、通信品質保証の対象外となるパケットを各々選別して保持するパケット処理手段と、
前記遅延時間制御の対象となるパケットに対応する送信候補キューの要求遅延時間に基づいて当該パケットの送信キューに対する相対的な挿入先頭位置及び挿入末尾位置を算出して前記送信キューにおける当該送信候補キューの相対的な配置対象区間を特定するとともに、算出された挿入末尾位置から前記送信キューの先頭までの区間における間隙の総和がパケットサイズ以上である場合に前記配置対象区間を確保してパケット挿入及びパケット配列を行うことにより、前記送信候補キューのスケジューリングを行うとともに、前記送信候補キュー、前記帯域制御のみのパケットに対応する帯域制御キュー、通信品質保証の対象外となるパケットに対応するデフォルトキューの優先順位でスケジューリングを行い、各キューを前記送信キューに移動して配列するパケット管理手段と、
前記送信キューに配列された各キューから、相対的に先頭に位置するキューを優先的に選択して対応パケットを前記受信先へ送信するパケット送信手段と、を備え、キューの制御を定量的且つ動的に行うように構成されていることを特徴とする通信制御装置。
【請求項５】
前記パケット処理手段は、所定の通信品質保証ルーティングに基づくフィルタを用いて、通信品質保証の対象となるパケットか、通信品質保証の対象外のパケットかを判定するように構成されていることを特徴とする請求項４記載の通信制御装置。
【請求項６】
前記パケット処理手段は、前記通信品質保証の対象となるパケットから第１の帯域制御が施されている第１パケットと該第１の帯域制御が施されていない第２パケットを特定するとともに、第２パケットに対して第２の帯域制御を施して正規化されたトークンバケットを得るように構成されていることを特徴とする請求項４記載の通信制御装置。
【請求項７】
前記パケット処理手段は、前記第２の帯域制御の際にエラーとなる違反パケットを、前記通信品質保証の対象外となるパケットとして保持するように構成されていることを特徴とする請求項６記載の通信制御装置。
【請求項８】
前記パケット処理手段は、予め保持された、遅延時間制御の指定がなされる前記送信元及び受信先の識別情報に基づいて前記遅延時間制御の対象となるパケットを検出するように構成されていることを特徴とする請求項４記載の通信制御装置。
【請求項９】
前記パケット処理手段は、前記遅延時間制御の対象となるパケットを、当該パケットのヘッダに付与された遅延時間制御の識別情報に基づいて検出するように構成されていることを特徴とする請求項４記載の通信制御装置。
【請求項１０】
前記パケット管理手段は、前記送信候補キューの要求遅延時間と自装置の最大送信速度との積から前記配置対象区間の挿入末尾位置を算出するとともに、該挿入末尾位置から当該送信候補キューのバーストサイズを差分して前記配置対象区間の挿入先頭位置を算出し、前記送信キューに対する送信候補キューの相対的な配置対象区間を特定するように構成されていることを特徴とする請求項４記載の通信制御装置。
【請求項１１】
前記パケット管理手段は、前記算出された挿入末尾位置から前記送信キューの先頭までの区間において、スケジューリング済みの送信候補キューが配置されていない間隙の総和を算出し、該間隙の総和が送信候補キューに対応するバーストサイズ以上となる場合に前記配置対象区間を確保して新たな送信候補キューを挿入するように構成されていることを特徴とする請求項４または１０記載の通信制御装置。
【請求項１２】
前記パケット管理手段は、前記送信キューに新たな送信候補キューを挿入することができ且つ当該送信候補キューの配置対象区間に既スケジューリングキューが存する場合に、この既スケジューリングキューを整列させた後に当該新たな送信候補キューを挿入してキュー再配列を行うように構成されていることを特徴とする請求項１１記載の通信制御装置。
【請求項１３】
前記パケット管理手段は、整列後の配置対象区間に残存する既スケジューリングキューを検出し、さらに、検出された既スケジューリングキューから、その先頭位置が前記挿入末尾位置に最も近いものを検出するとともに、前記挿入末尾位置を検出された既スケジューリングキューの先頭位置に変更し、該変更後の挿入末尾位置から当該送信候補キューに対応するバーストサイズを差分して前記挿入先頭位置を算出することにより、前記新たな送信候補キューの配置対象区間を変更するように構成されていることを特徴とする請求項１２記載の通信制御装置。
【請求項１４】
前記パケット管理手段は、前記送信キューに配列された特定の送信候補キューに対する遅延時間制御の無効化指定を検出した場合に、当該送信候補キューを削除して前記送信キューを当該送信候補キューの挿入以前の状態に復元するように構成されていることを特徴とする請求項４乃至１３のいずれかの項記載の通信制御装置。
【請求項１５】
前記パケット送信手段は、選択された送信候補キュー、前記帯域制御キュー、及びデフォルトキューのいずれかに対応するパケットを送信する際に、当該パケットよりも前記挿入先頭位置が小さい新たな送信候補キューが前記送信キューにスケジューリングされた場合、当該新たな送信候補キューに対応するパケットを優先的に選択して送信するように構成されていることを特徴とする請求項４記載の通信制御装置。
【請求項１６】
前記送信キューの保持領域が、前記送信候補キュー及び帯域制御キューにおけるトークンバケットサイズの総和以上となるように設定されていることを特徴とする請求項４乃至１５のいずれかの項記載の通信制御装置。
【請求項１７】
請求項３乃至１６のいずれかの項に記載された通信制御装置が通信回線に接続され、この通信回線を介して流通する送信元からのパケットを前記通信制御装置に取り込んで前記通信回線を介して対応する受信先へ送信されるように構成されたデータ通信システム。
【請求項１８】
前記通信制御装置自体のサービスレートを、前記通信回線における送信元及び受信先に各々対応する通信経路毎の平均転送率に固定化して必要帯域を限定させ、前記通信経路数の増減に依存して変化するシステム全体の遅延時間を、前記必要帯域に基づいた範囲内に抑制するように構成されていることを特徴とする請求項１７記載のデータ通信システム。
【請求項１９】
前記通信回線に複数の前記通信制御装置が存する場合に、前記送信元からの要求遅延時間及び対応する通信経路の平均転送率に基づいてシステム全体の総遅延時間を算出し、当該総遅延時間を前記通信制御装置の台数で除算した値を、通信制御装置毎の遅延時間として分配するとともに、
通信制御装置毎の送信キューにおける遅延時間制御の対象となるパケットの配置対象区間を、前記分配された遅延時間に基づいて特定するように構成されていることを特徴とする請求項１７または１８記載のデータ通信システム。
【請求項２０】
前記通信制御装置がＴＣＰ／ＩＰに準拠した通信プロトコルに基づく装置であることを特徴とする請求項１９記載のデータ通信システム。
【請求項２１】
パケットを送信キューにスケジューリングして送信するコンピュータ装置において読みとり可能なプログラムが記録された記録媒体であって、
前記プログラムが、少なくとも、
発信時点までの遅延時間制御の対象となるパケットの要求遅延時間に基づいて当該パケットの送信キューに対する相対的な挿入先頭位置及び挿入末尾位置を算出して配置対象区間を特定する処理、
算出された挿入末尾位置から前記送信キューの先頭までの区間における間隙の総和を算出する処理、
算出された間隙の総和がパケットサイズ以上である場合に前記配置対象区間を確保してパケット挿入及びパケット配列を行う処理を前記コンピュータに実行させ、前記送信キューのスケジューリングに前記要求遅延時間を動的に反映させるものであることを特徴とする記録媒体。
【請求項２２】
送信元からのパケットを送信キューにスケジューリングして受信先へ送信するコンピュータ装置において読みとり可能なプログラムが記録された記録媒体であって、
前記プログラムが、
前記送信元からのパケット群のうち通信品質保証の対象となるパケットから遅延時間制御及び帯域制御の対象となる１または２以上のパケットを特定して所定の帯域制御を施す処理、遅延時間制御の対象となるパケット、帯域制御のみの対象となるパケット、通信品質保証の対象外となるパケットを各々選別して保持する処理、前記遅延時間制御の対象となるパケットに対応する送信候補キューの要求遅延時間に基づいて、当該パケットの送信キューに対する相対的な挿入先頭位置及び挿入末尾位置を算出して前記送信キューにおける当該送信候補キューの相対的な配置対象区間を特定する処理、算出された挿入末尾位置から前記送信キューの先頭までの区間における間隙の総和がパケットサイズ以上である場合に前記配置対象区間を確保してパケット挿入及びパケット配列を行うことにより、前記送信候補キューのスケジューリングを行うとともに、前記送信候補キュー、前記帯域制御のみのパケットに対応する帯域制御キュー、通信品質保証の対象外となるパケットに対応するデフォルトキューの優先順位でスケジューリングを行い、各キューを前記送信キューに移動して配列する処理、前記送信キューに配列された各キューから、相対的に先頭に位置するキューを優先的に選択して対応パケットを前記受信先へ送信する処理、を前記コンピュータ装置に実行させるものであることを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータを使用した通信及びネットワーク技術に係り、より詳しくは、レスポンス時間に依存するような制約された環境下で、パケットの遅延時間を定量的且つ動的に制御するためのパケット管理技術に関する。
【０００２】
【従来の技術】
有線回線を使用する際の標準通信プロトコルとなっているＴＣＰ／ＩＰ（Transmission Control Protocol／Internet Protocol）に準拠するネットワーク構成機器では、各機器を通過するパケットに対して当該機器内部の通過時間や待機（キューイング）による遅延時間を制御しないのが一般的である。
しかしながら、近年急増している、高品質なネットワーク環境に対する構築要求に対応して、パケットに対する遅延時間をネットワークにおける利用者及び提供者側の双方で制御可能にするような、ネットワーク構成機器の開発が望まれている。
【０００３】
従来のこの種の遅延時間制御手法では、例えば、有線回線により構築されたネットワーク環境下に通信中継装置を配備するとともに、この通信中継装置上で送受信の対象となるパケットの遅延時間を制御するパケットスケジューリングが知られている。例えば、送受信の対象となるパケット群において低遅延のパケットを特定して制御する、所謂、相対的な制御手法等が採用されている。
一方、上述のようなネットワーク環境下におけるパケットの遅延時間を表現する一手法として、ＩＥＴＦ(Internet Engineering Task Force) のＲＦＣ(Request for Comments)２２１２ Specification of Guaranteed Quality of Service（Guaranteed Service）の規格が知られている。この規格に依れば、送信側インタフェースから送信されたパケットが、受信側インタフェースに受信されるまでの遅延時間に着目した表現式が採用されており、パケット群全体のキューイング遅延時間における上限値を制御するものである。表現式は、具体的には、以下に示す各パラメータに基づいた式（１）で実現される。
【０００４】
式（１）Delay_bound        = {(b-M)/R×(p-r)/(p-t)}+(M+Ctot)/R+Dtot
r：  Token Bucket Rate (Sustainable Rate)
b：  Token Bucket Size (Burst Size)
p：  Peak Rate
m：  Minimum Policed Unit
M：  Maximum Packet Size
R：  Service Rate
Ctot：  Amount of Rate-Dependent Error Term
C：一つの通信中継装置における Rate-Dependent Error Term
Dtot：  Amount of Rate-Independent Error Term
D：一つの通信中継装置における Rate-Independent Error Term
但し、［ 0≦r≦R≦p、0≦m≦M≦b、0≦Ctot、0≦Dtot ］である。
【０００５】
上述のパラメータ「ｒ」、「ｂ」、「ｐ」は、通信中継装置におけるトラフィックの特徴を表し、パラメータ「Ｄｔｏｔ」は、パケットが送信用のキューに移動（挿入）した直後から、送信用インタフェースを介して実際に送信が開始されるまでの時間（以下、キューイング遅延時間）を表している。また、パラメータ「Ｍ」、「Ｃｔｏｔ」は、送信及び受信インタフェースに対応する通信経路（以下、通信パス）により決定される値である。なお、上記式（１）に表記されないパラメータ「ｍ」は、トークンバケットの制御において必要となるパラメータである。
遅延時間の制御は、上記パラメータＲ、即ちサービスレートを操作することによる「遅延時間の調整」という形式で行われる。具体的には、パラメータＲを大きくすることにより、遅延時間を小さく調整可能とするものである。この「遅延時間の調整」における表現式は、上記各パラメータが［ r≦R≦p ］となる条件下において、以下に示す式（２）、式（３）、及び式（４）で実現される。
【０００６】
式（２）  Delay_bound  = b/r+Ctot/r+Dtot
但し、Delay_boundは、パラメータＲ＝ｒの場合における調整の下限値。
式（３）  Delay_bound  = M/p+Ctot/p+Dtot
但し、Delay_boundは、パラメータＲ＝ｐの場合における調整の上限値。
式（４）  Delay_bound  = M/r+Ctot/p+Dtot
但し、Delay_boundは、パラメータＲ＝ｐの場合、且つ送信速度がパラメータｒの場合における調整の上限値。
【０００７】
また、上述のパケットスケジューリング手法では、以下に示すような関連技術が知られている。これらの関連技術における手法、概要及び文献等の解説については、「 Gigabit Networking； Craig Partridge著、Addison-wesley Publishing Company刊（訳書：ソフトバンク刊）」が詳しい。
・FIFO ( First In First Out )
・Priority Queuing
・Token Bucket with Leaky Bucket Control ( Virtual Clock Algorithm < Virtual Scheduling Algorithm > )
・WFQ ( Weighted Fair Queuing )
・CBQ ( Class Based Queuing )
【０００８】
【発明が解決しようとする課題】
ところで、上述のようなパケット群に対する相対的な制御手法、例えば、優先順位制御のみを行うパケットスケジューリングでは、高い優先順位のパケットは平均より低い遅延となるのが一般的であるが、定量的な遅延の低さを正確に把握することは不可能であった。
また、上述のＲＦＣ Guaranteed Service における規格に基づいた制御手法では、定量的な遅延時間を確保するために、過剰なリソースを使用してしまうという問題を含むものであり、遅延時間を調整するために実際に実行しようとする転送速度、即ちサービスレートを必要以上に確保してしまうという問題があった。
【０００９】
具体的には、ＲＦＣ Guaranteed Service 規格による、パケットの遅延時間表現手法に基づいた場合には、以下に示す問題があった。
（１）サービスレート、即ちパラメータＲを大きくするということは、通信中継装置における制御対象となる通信パスの割り当て帯域を、実際に必要な帯域「ｒ」より大きく占有することになる。換言すれば、低遅延の確保は、実際の必要帯域以上の過剰な帯域の確保に相当するものとなる。
（２）キューイング遅延時間、即ちパラメータＤｔｏｔは、通信中継装置毎における通信パスからの影響が反映されるものであり、通信パス数の増減に対応して値が変化する変数である。パラメータＲを大きくすることにより、パラメータＤｔｏｔを小さくすることは可能であるが、パラメータＲを、調整の上限値であるパラメータｐのピークレートに設定したとしても、必ずしもパラメータＤｔｏｔの変動を停止することは不可能である。即ち、パラメータＤｔｏｔは、変化が持続するため、最大の遅延時間を大きく見積もらなければならない傾向がある。
（３）通信パスが増加した場合に、制御対象以外の通信パスからの影響を受けることになり、例えば、遅延時間が累積的に増加してしまう。
（４）通信パス個々の帯域の合計が、物理的な帯域を超過しないように制御を行う場合では、複数インタフェースに各々対応した通信パスからのバースト入力が、同時に特定のインタフェースに対して集中することに伴い、一時的に物理的な帯域を超過してしまうような輻輳が発生する。このような状況下では、通信パスの割り当て帯域やキュー長に依存することなく、大きな遅延が発生してしまう。
【００１０】
本発明の課題は、ネットワーク環境下において、パケットに対する遅延時間を定量的且つ動的に制御することができるパケット管理方法を提供することにある。
本発明の他の課題は、上記パケット管理方法の実施に適した通信制御装置、及びデータ通信システムを提供することにある。
本発明の他の課題は、上記パケット管理方法、通信制御装置及びデータ通信システム等をコンピュータ装置で実現するための記録媒体を提供することにある。
【００１１】
【課題を解決するための手段】
上記課題を解決する本発明のパケット管理方法は、発信時点までの遅延時間制御の対象となるパケットの要求遅延時間に基づいて当該パケットの送信キューに対する相対的な挿入先頭位置及び挿入末尾位置を算出して配置対象区間を特定する過程、算出された挿入末尾位置から前記送信キューの先頭までの区間における間隙の総和を算出する過程、算出された間隙の総和がパケットサイズ以上である場合に前記配置対象区間を確保してパケット挿入及びパケット配列を行う過程を含み、前記送信キューのスケジューリングに前記要求遅延時間を動的に反映させることを特徴とする。
【００１２】
前記確保した配置対象区間に既に他のパケットが存在する場合は、前記挿入末尾位置を前記他のパケットの先頭位置に変更するとともに、該変更後の挿入末尾位置からパケットサイズを差分した位置に前記挿入先頭位置を変更して前記配置対象区間を動的に変更する。
【００１３】
上記他の課題を解決する本発明の通信制御装置は、通信品質保証を要するパケット群から発信時点までの遅延時間制御の対象となる１または２以上のパケットを選別して保持するパケット処理手段と、前記保持されたパケットのうち、相対的に小さい要求遅延時間のパケットほど送信キューの先頭に近くにキューイングするとともに、これらのパケットの前記送信キューに対する相対的な挿入先頭位置及び挿入末尾位置を算出して配置対象区間を特定し、算出された挿入末尾位置から前記送信キューの先頭までの区間における間隙の総和がパケットサイズ以上である場合に前記配置対象区間を確保してパケット挿入及びパケット配列を行うことにより、前記送信キューのスケジューリングを行うパケット管理手段と、前記スケジューリングされた送信キューに対応するパケットを所定順に送信するパケット送信手段とを備え、前記パケットの選別後、当該パケットの送信までの制御を動的に行うことを特徴とする。
【００１４】
本発明の通信制御装置は、また、送信元からのパケット群を送信キューにスケジューリングして受信先へ送信するための通信制御装置であって、前記送信元からのパケット群のうち通信品質保証の対象となるパケットから、発信時点までの遅延時間制御及び帯域制御の対象となる１または２以上のパケットを特定して所定の帯域制御を施すとともに、遅延時間制御の対象となるパケット、帯域制御のみの対象となるパケット、通信品質保証の対象外となるパケットを各々選別して保持するパケット処理手段と、前記遅延時間制御の対象となるパケットに対応する送信候補キューの要求遅延時間に基づいて当該パケットの送信キューに対する相対的な挿入先頭位置及び挿入末尾位置を算出して前記送信キューにおける当該送信候補キューの相対的な配置対象区間を特定するとともに、算出された挿入末尾位置から前記送信キューの先頭までの区間における間隙の総和がパケットサイズ以上である場合に前記配置対象区間を確保してパケット挿入及びパケット配列を行うことにより、前記送信候補キューのスケジューリングを行うとともに、前記送信候補キュー、前記帯域制御のみのパケットに対応する帯域制御キュー、通信品質保証の対象外となるパケットに対応するデフォルトキューの優先順位でスケジューリングを行い、各キューを前記送信キューに移動して配列するパケット管理手段と、前記送信キューに配列された各キューから、相対的に先頭に位置するキューを優先的に選択して対応パケットを前記受信先へ送信するパケット送信手段と、を備え、キューの制御を定量的且つ動的に行うように構成されていることを特徴とする。
【００１５】
上記通信制御装置において、前記パケット処理手段は、例えば、所定の通信品質保証ルーティングに基づくフィルタを用いて、通信品質保証の対象となるパケットか、通信品質保証の対象外のパケットかを判定するように構成される。また、前記通信品質保証の対象となるパケットから第１の帯域制御が施されている第１パケットと該第１の帯域制御が施されていない第２パケットを特定するとともに、第２パケットに対して第２の帯域制御を施して正規化されたトークンバケットを得るように構成される。前記第２の帯域制御の際にエラーとなる違反パケットがある場合は、この違反パケットを、前記通信品質保証の対象外となるパケットとして保持するようにする。
【００１６】
前記遅延時間制御の対象となるパケットの検出は、例えば、予め保持された、遅延時間制御の指定がなされる前記送信元及び受信先の識別情報に基づいて行う。あるいは、パケットのヘッダに付与された遅延時間制御の識別情報に基づいて行う。
【００１７】
上記通信制御装置において、前記パケット管理手段は、例えば、以下のようにして構成することができる。
（１）前記送信候補キューの要求遅延時間と自装置の最大送信速度との積から前記配置対象区間の挿入末尾位置を算出するとともに、該挿入末尾位置から当該送信候補キューのバーストサイズを差分して前記配置対象区間の挿入先頭位置を算出し、前記送信キューに対する送信候補キューの相対的な配置対象区間を特定する。
（２）前記算出された挿入末尾位置から前記送信キューの先頭までの区間において、スケジューリング済みの送信候補キューが配置されていない間隙の総和を算出し、該間隙の総和が送信候補キューに対応するバーストサイズ以上となる場合に前記配置対象区間を確保して新たな送信候補キューを挿入する。
（３）前記送信キューに新たな送信候補キューを挿入することができ且つ当該送信候補キューの配置対象区間に既スケジューリングキューが存する場合に、この既スケジューリングキューを整列させた後に当該新たな送信候補キューを挿入してキュー再配列を行う。
（４）整列後の配置対象区間に残存する既スケジューリングキューを検出し、さらに、検出された既スケジューリングキューから、その先頭位置が前記挿入末尾位置に最も近いものを検出するとともに、前記挿入末尾位置を検出された既スケジューリングキューの先頭位置に変更し、該変更後の挿入末尾位置から当該送信候補キューに対応するバーストサイズを差分して前記挿入先頭位置を算出することにより、前記新たな送信候補キューの配置対象区間を変更する。
（５）前記送信キューに配列された特定の送信候補キューに対する遅延時間制御の無効化指定を検出した場合に、当該送信候補キューを削除して前記送信キューを当該送信候補キューの挿入以前の状態に復元する。
【００１８】
上記通信制御装置において、前記パケット送信手段は、例えば、選択された送信候補キュー、前記帯域制御キュー、及びデフォルトキューのいずれかに対応するパケットを送信する際に、当該パケットよりも前記挿入先頭位置が小さい新たな送信候補キューが前記送信キューにスケジューリングされた場合、当該新たな送信候補キューに対応するパケットを優先的に選択して送信するように構成されている。
【００１９】
なお、前記送信キューの保持領域は、好ましくは、前記送信候補キュー及び帯域制御キューにおけるトークンバケットサイズの総和以上となるように設定する。これにより、パケット落ちの事態を回避しやすくなる。
【００２０】
また、他の課題を解決する本発明のデータ通信システムは、上記通信制御装置が通信回線に接続され、この通信回線を介して流通する送信元からのパケットを前記通信制御装置に取り込んで前記通信回線を介して対応する受信先へ送信されるように構成されたものである。
【００２１】
本発明のデータ通信システムの好ましい形態としては、前記通信制御装置自体のサービスレートを、前記通信回線における送信元及び受信先に各々対応する通信経路毎の平均転送率に固定化して必要帯域を限定させ、前記通信経路数の増減に依存して変化するシステム全体の遅延時間を、前記必要帯域に基づいた範囲内に抑制するように構成されていることを特徴とする。
また、前記通信回線に、例えばＴＣＰ／ＩＰに準拠した通信プロトコルに基づく複数の前記通信制御装置が存する場合に、前記送信元からの要求遅延時間及び対応する通信経路の平均転送率に基づいてシステム全体の総遅延時間を算出し、当該総遅延時間を前記通信制御装置の台数で除算した値を、通信制御装置毎の遅延時間として分配するとともに、通信制御装置毎の送信キューにおける遅延時間制御の対象となるパケットの配置対象区間を、前記分配された遅延時間に基づいて特定するように構成されていることを特徴とする。
【００２２】
上記他の課題を解決する本発明の記録媒体は、パケットを送信キューにスケジューリングして送信するコンピュータ装置において読みとり可能なプログラムが記録された記録媒体であって、前記プログラムが、少なくとも、下記の処理を前記コンピュータ装置に実行させるものである。
（１−１）発信時点までの遅延時間制御の対象となるパケットの要求遅延時間に基づいて当該パケットの送信キューに対する相対的な挿入先頭位置及び挿入末尾位置を算出して配置対象区間を特定する処理、
（１−２）算出された挿入末尾位置から前記送信キューの先頭までの区間における間隙の総和を算出する処理、
（１−３）算出された間隙の総和がパケットサイズ以上である場合に前記配置対象区間を確保してパケット挿入及びパケット配列を行う処理。
【００２３】
本発明の他の記録媒体は、送信元からのパケットを送信キューにスケジューリングして受信先へ送信するコンピュータ装置において読みとり可能なプログラムが記録された記録媒体であって、前記プログラムが、少なくとも、下記の処理を前記コンピュータ装置に実行させるものである。
（２−１）前記送信元からのパケット群のうち通信品質保証の対象となるパケットから遅延時間制御及び帯域制御の対象となる１または２以上のパケットを特定して所定の帯域制御を施す処理、
（２−２）遅延時間制御の対象となるパケット、帯域制御のみの対象となるパケット、通信品質保証の対象外となるパケットを各々選別して保持する処理、
（２−３）前記遅延時間制御の対象となるパケットに対応する送信候補キューの要求遅延時間に基づいて、当該パケットの送信キューに対する相対的な挿入先頭位置及び挿入末尾位置を算出して前記送信キューにおける当該送信候補キューの相対的な配置対象区間を特定する処理、
（２−４）算出された挿入末尾位置から前記送信キューの先頭までの区間における間隙の総和がパケットサイズ以上である場合に前記配置対象区間を確保してパケット挿入及びパケット配列を行うことにより、前記送信候補キューのスケジューリングを行うとともに、前記送信候補キュー、前記帯域制御のみのパケットに対応する帯域制御キュー、通信品質保証の対象外となるパケットに対応するデフォルトキューの優先順位でスケジューリングを行い、各キューを前記送信キューに移動して配列する処理。
【００２４】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
（第１実施形態）
図１は、本発明をインタネット等の有線通信回線を介したデータ通信システムに適用した場合の実施の形態を示す機能ブロック図である。
このデータ通信システム１は、情報取得装置となる複数のクライアント２０、情報提供装置となる複数のサーバ３０、及び、クライアント２０〜サーバ３０間に介在してデータ通信の中継を行う複数の通信サーバ１０を、それぞれ公衆網Ｌを介して相互通信可能に接続されて構成される。
【００２５】
通信サーバ１０は、本発明の通信中継装置として機能するもので、サーバ本体がオペレーティングシステム（ＯＳ）と協動するプログラムを読み込んで実行することにより形成される、受信処理部１１、受信キュー１２、デフォルトキュー１３、受信キュー処理部１４、帯域制御受信キュー１５、パケット管理処理部１６、送信キュー１７、及び送信処理部１８、の機能ブロックを具備して構成される。
【００２６】
なお、上記プログラムは、通常、サーバ本体の内部記憶装置あるいは外部記憶装置に格納され、随時読み取られて実行されるようになっているが、上記サーバ本体とは分離可能な可搬性記録媒体、例えばＣＤ−ＲＯＭやＦＤ等に格納され、あるいはサーバ本体に接続されたネットワーク媒体を通じて入力され、使用時に上記内部記憶装置または外部記憶装置にインストールされて随時実行に供されるものであってもよい。
【００２７】
受信処理部１１は、公衆網Ｌを介してクライアント２０及びサーバ３０からのデータ通信の対象となるパケットを受信して通信品質保証の対象となるパケットか否かを検出し、パケットの選別を行うものである。通信品質保証の対象となるパケット群は、受信キュー１２に入力され、一方、通信品質保証の対象外となるパケット（以下、ベストエフォートパケット）群は、デフォルトキュー１３に入力される。
【００２８】
受信キュー１２は、受信処理部１１を介して取得された通信品質保証の対象となるパケット群を保持するものである。
デフォルトキュー１３は、受信処理部１１により選別されたベストエフォートパケット群を保持するものである。
【００２９】
受信キュー処理部１４は、受信キュー１２中のパケット群に対して、遅延時間制御及び帯域制御の指定がなされたパケットを検出するとともに、帯域制御が施されていないパケット群に対して帯域制御を行うものである。
具体的には、受信キュー１２中のパケット群から、シェーピングが施されていないパケットを検出してリキーバケットフィルタ付きトークンバケットで正規化して整形する、所謂公知のポリシングにより行われる。該整形後の遅延時間制御の対象外となるパケット群は、受信キュー１２から帯域制御受信キュー１５に移動されて保持される。
なお、遅延時間制御の指定とは、通信サーバ１０に対する送信元または受信先となるクライアント１０及びサーバ３０からなされるものであり、特定のパケットに対して、例えば、「１０ｍｓ以内の遅延時間」等と最大遅延時間が指定されるものである。この指定された最大遅延時間を、以下、要求遅延時間と記す。
【００３０】
帯域制御受信キュー１５は、受信キュー処理部１４においてポリシングによる帯域制御が施された、遅延時間制御の対象外となるパケット群を保持するものである。パケット管理処理部１６は、受信キュー１２、デフォルトキュー１３、及び帯域制御受信キュー１５中に保持されたパケット群を、送信キュー１７に移動させてスケジューリングを行い保持するものである。なお、パケットスケジューリングに関する詳細については後述する。
【００３１】
送信キュー１７は、パケット管理処理部１６によりスケジューリングがなされた、送信対象となるパケット群が保持されたものである。
送信処理部１８は、図示しない送信インタフェースを介して、送信キュー１７中における送信対象となるパケットの送信を行うものである。
なお、上記受信キュー１２、デフォルトキュー１３、帯域制御受信キュー１５、及び送信キュー１７は、実際には、バッファ等の記憶手段を用いたパケットの「格納部」として構成されるものであるが、以降の説明を把握し易くするため便宜的に３種類に分類した「キュー」として記すものである。
【００３２】
図２及び図３は、通信サーバ１０における処理の概要を表す処理手順図である。
受信処理部１１は、パケットを受信するとともに（ステップＳ１０１）、当該受信パケットが通信品質保証の対象か否かを判定する。通信品質保証の対象である場合は（ステップＳ１０２：Yes）、当該パケットを受信キュー１２に保持する（ステップＳ１０３）。一方、通信品質保証対象外のベストエフォートパケットならば（ステップＳ１０２：No）、当該パケットをデフォルトキュー１３に保持する（ステップＳ１０４）。この通信品質保証の対象か否かの判定は、例えば、公知のＱｏＳ（Quality of Service）ルーティングに係るＱｏＳフィルタ等を用いて構成すれば良い。
【００３３】
次に、受信キュー処理部１４では、受信キュー１２中のパケット群に対して帯域制御（シェーピング）が施されているか否かを検出する。パケットにシェーピングが施されていなければ（ステップＳ１０５：No）、該当するパケットに帯域制御（ポリシング）を施すとともに（ステップＳ１０６）、ポリシング時に受信キュー１２から溢れるような違反パケットがあれば（ステップＳ１０７：Yes）、当該パケットを受信キュー１２からデフォルトキュー１３へ移動して保持する（ステップＳ１０８）。
【００３４】
一方、ポリシングが正常に施された場合（ステップＳ１０７：No）、または、シェーピングが検出された場合（ステップＳ１０５：Yes）のパケットに対して、受信キュー処理部１４は、当該パケットが遅延時間制御の対象か否かを判定する。遅延時間制御の対象ならば（ステップＳ１０９：Yes）、当該パケットを受信キュー１２に保持し（ステップＳ１１０）、一方、帯域制御のみとなる遅延時間制御の対象外ならば（ステップＳ１０９：No）、当該パケットを受信キュー１２から帯域制御受信キュー１５に移動して保持する（ステップＳ１１１）。
なお、遅延時間制御の判定は、例えば、遅延時間制御の指定がなされるクライアント２０及びサーバ３０に対する識別情報を予め保持しておき、当該識別情報に基づいて判定する、または、遅延時間制御に関する情報をパケットヘッダに具備させる等、適宜構成すれば良い。
【００３５】
また、本実施形態では、受信処理部１１において、上記ステップＳ１０２のように通信品質保証が必要なパケットか否かを検出して通信品質保証パケットとベストエフォートパケットとを明示的に選別する構成としているが、例えば、受信処理部１１と受信キュー処理部１４とを統合させて構成することも可能である。この場合、受信したパケットが遅延時間制御対象か否かを判定して通信品質保証パケットとベストエフォートパケットとを選別するとともに、さらに、通信品質保証パケットに対して帯域制御の有無を検出して上記ステップＳ１０６〜Ｓ１１１の処理を適宜行うように構成すれば良い。
【００３６】
次に、パケット管理処理部１６では、受信キュー１２、デフォルトキュー１３、及び帯域制御受信キュー１５中におけるパケット群を送信キュー１７に移動させるとともに、指定された要求遅延時間を反映させたスケジューリングを行う（ステップＳ１１２）。
当該パケットスケジューリング完了後、送信処理部１８では、送信キュー１７中のパケット群を対応する送信先に対して送信する（ステップＳ１１３）。
受信処理部１１では、新たな受信パケットが検出される場合には（ステップＳ１１４：Yes）、ステップＳ１０１に戻り処理を繰り返す。
なお、上記ステップＳ１１４では、受信パケットの検出処理を便宜的に設けたものであるが、実際には、受信処理部１１及び送信処理部１８における、流入するパケット群及び送信されるパケット群の処理は並列的に行われるものとなる。
【００３７】
次に、本発明におけるパケットスケジューリング手法について説明する。
従来手法では、送信元となる複数のクライアント２０またはサーバ３０からのパケット群を、通信パス毎の到着順にキューイングしていたために、遅延時間が不確実なものになる要因となっていた。そこで本発明では、送信キュー１７における各パケットを動的に並べ替えて配列可能とすることにより、各々のパケットの位置に基づいた遅延時間の決定が可能となる「割り込み型パケットスケジューリング手法」を提案するものである。
【００３８】
本実施形態の通信サーバ１０では、この手法をパケット管理処理部１６に適用することにより実現するものである。
具体的には、以下に示す手順に基づいて、送信キュー１７における各パケットの送信順位を入れ替えるものである。
なお、以下の説明では、パケット管理処理部１６により送信キュー１７へ移動後のスケジューリング対象となる各パケットについて、デフォルトキュー１３から移動された１または所定数のパケット群を「デフォルトキュー」、帯域制御受信キュー１５から移動された１または所定数のパケット群を「帯域制御キュー」、また、受信キュー１２から移動された遅延時間制御の対象となる１または所定数のパケット群を「送信候補キュー」と記して説明する。
（１）通信パスからの要求遅延時間に基づいて、遅延時間制御の対象となる「送信候補キュー」の、送信キュー１７における先頭からの相対的な配置対象位置を決定する。
（２）位置が決定した「送信候補キュー」と、送信キュー１７に既存するスケジューリング済みの「送信候補キュー」（以下、「既存送信候補キュー」）群との位置を比較するとともに、決定した配置対象位置に基づいて、当該「送信候補キュー」を送信キュー１７に挿入する。
（３）送信処理部１８では、送信キュー１７にスケジューリング後の「送信候補キュー」群において、先頭に位置する「送信候補キュー」のパケットから優先的に送信する。
【００３９】
次に、本実施形態におけるデータ通信システム１の構築に際しての前処理となる準備段階について説明する。
まず、前述したＲＦＣ Guaranteed Service 規格の式（１）における、パラメータＲ、即ち通信サーバ１０自体に依存するサービスレートは、遅延時間制御の対象となる通信パスに対して通信サーバ１０毎に設定されるトークンバケットレートであると解釈可能なものである。そこで、当該パラメータを［ Ｒ＝ｒ ］と固定化することにより設定値を必要以上に大きくしないという条件を想定する。
【００４０】
もし、パラメータＲの指定があれば、要求に係る送信元インタフェース〜受信先インタフェース間のパケット遅延時間を算出するために当該パラメータを使用することもあるが、本実施形態のデータ通信システム１では、サービスレートの過剰確保を防ぐために、パラメータＲを用いずに通信パスにおける平均転送率（転送レート）であるパラメータｒを用いるものとする。
【００４１】
この条件下では、データ通信システム１全体の総キューイング遅延時間を表すパラメータＤtot以外の各パラメータは、通信パス成立時に伴って決定されるものとなる。即ち、パラメータＤtotは、該通信パス上における通信サーバ１０毎のパラメータＤの総和であることから、各通信サーバ１０におけるパラメータＤについての最大値を制御することが、該通信パスの遅延時間制御であると換言できるものとなる。
【００４２】
このパラメータＤは、具体的には、通信サーバ１０内で、送信対象となる特定のパケットが、送信キュー１７へのキューイングが先行してなされた他のパケット群に起因して送信を待機しなければならないような「送信に要する待ち時間の合計」、所謂、通信サーバ１０毎のキューイング遅延時間を表すものであり、最悪のケースでは、当該通信サーバ１０に対応する総通信パスの遅延時間を要することになる。
【００４３】
ここで、通信パスにおけるクライアント２０またはサーバ３０からの要求遅延時間を「Ｄreq」とすれば、データ通信システム１全体の総キューイング遅延時間Ｄtotは、以下の式（５）により算出される。
式（５）  Dtot＝Dreq−b／r−Ctot／r
【００４４】
通信サーバ１０が複数台配備されたデータ通信システム１では、算出後のパラメータＤtotは、該台数に基づいて分配される。例えば、通信パス中において通信サーバ１０が４台あり、パラメータＤtotが８００ｍｓであったとすれば、パラメータＤを２００ｍｓとして一つの通信サーバ１０毎に分配すれば良く、パラメータＤは、パラメータＤtotに基づいた各通信サーバ１０毎に依存する遅延時間とみなすことができる。なお、この分配手法としては、例えば、要求された通信品質を満たす通信経路の最適探索を行う公知のＱｏＳルーティングの一部として実現可能である。
このことから、分配された通信サーバ１０毎のキューイング遅延時間であるパラメータＤは、送信キュー１７における割り込み型パケットスケジューリングの制御パラメータとして利用可能となる。
【００４５】
また、一つの通信サーバ１０におけるキューイング遅延時間を調整することは、結果的に、該通信パスに係る環境全体の遅延時間を調整可能となるものである。そこで本発明では、送信元となる通信パスからの要求遅延時間に基づいて、相対的に小さい要求遅延時間のパケットに対応する「送信候補キュー」は、出力キューである送信キュー１７の先頭即ち出力口により近く、一方、相対的に大きい要求遅延時間の「送信候補キュー」は、送信キュー１７の後方即ち出力口からより遠い、位置を各々決定してキューイングを行うものである。
【００４６】
また、パケットの発生源となる送信元のクライアント２０またはサーバ３０において、前述の式（１）で示される各パラメータのうち、「ｒ」、「ｂ」、「ｍ」、「Ｍ」のトークンバケットに関連するパラメータ群は最低限、定義及び指定を行う必要がある。もし、これらの指定がなされない場合には、割り込み型パケットスケジューリングの対象とはならないパケット群が発生してしまうために、上記「ｒ」、「ｂ」、「ｍ」、「Ｍ」のトークンバケットに関連するパラメータ群には各値が定義または指定済みであるものとする。
【００４７】
また、送信キュー１７自体の構成に依存して決定される、送信キュー１７におけるバッファサイズ（パラメータB_transmit）は、当該通信サーバ１０で発生する最大キューイング遅延時間を与える要素となるものであり、遅延時間制御対象となる通信パスのトークンバケットサイズｂの総和は、パラメータB_transmitより小さい値に設定するものである。具体的には、受信キュー処理部１４における帯域制御、即ちリキーバケットフィルタ付トークンバケットで整形された場合であっても、タイミングに起因して受信キュー１２または帯域制御受信キュー１５から送信キュー１７へ移動するパケット量が、送信キュー１７内部でトークンバケットサイズｂを超過するような状況が発生する場合がある。
【００４８】
このような状況下に対処するために、送信キュー１７のバッファサイズを、すべての通信パスが必要とするトークンバケットサイズ（バーストサイズ）ｂの総和以上に設定して構成することにより、送信キュー１７でのパケット落ちが回避可能となる。
なお、通信サーバ１０一台における最大パケットサイズＭの許容値は、当該通信サーバ１０で実現可能な最小キューイング遅延時間と、パラメータＣｔｏｔを与えるものであり、必要以上に大きくしないことが望ましい。この最大パケットサイズＭは、ＯＳＩ参照モデルにおける物理及びデータリンク層のＭＴＵ（Maximum Transmit Unit）を用いるのが一般的である。以上の説明に基づいた、通信サーバ１０の構成概念図を図４に示す。
【００４９】
次に、割り込み型パケットスケジューリングについて説明する。
図５は、パケット管理処理部１６において、送信キュー１７に対するスケジューリング対象となる「送信候補キュー」の挿入及び削除を表す概念図である。
図中の（II）は、「ｂ0」のキューの大きさから成る新たな要求遅延時間に対応する「送信候補キュー」を、適切な配置対象位置へ挿入後の送信キュー１７における配列を示しており、当該要求遅延時間に対応するような「既存送信候補キュー」の先頭位置から送信キュー１７の出力口までの区間であればすべて適切な配置対象位置とするものである。一方、図中の（Ｉ）は、当該「送信候補キュー」の挿入以前、または当該「送信候補キュー」を削除後の、送信キュー１７における「既存送信候補キュー」群の配列を示すものである。
【００５０】
この「送信候補キュー」の挿入処理は、例えば、以下に示す手順に基づいて行われる。
（Ａ）新たな要求遅延時間に係る「送信候補キュー」の、送信キュー１７における挿入すべき配置対象区間（Insert_Length）をパラメータＤに基づいて算出する。具体的には、以下の式（６）及び（７）に示す Insert_Length_Head（以下、ＩＬＨ）と Insert_Length_Tail（以下、ＩＬＴ)との各パラメータから配置対象区間が得られるものである。
【００５１】
式（６）  Insert_Length_Head（ILH）＝Interface_Rate×D−b
式（７）  Insert_Length_Tail（ILT）＝Interface_Rate×D
【００５２】
この場合の「ＩＬＨ」は、挿入対象となる要求遅延時間に係る「送信候補キュー」の先頭位置を示すものであり、一方「ＩＬＴ」は、当該「送信候補キュー」の末尾位置を示すものである。また、「Interface_Rate」は、通信サーバ１０における図示しない送信インタフェースに依存する物理的な最大送信速度を示すものである。
【００５３】
なお、配置対象区間の算出に際して、パラメータＤは当該「送信候補キュー」に対するラベルとして解釈し、例えば、算出された先頭位置「ＩＬＨ0」と末尾位置「ＩＬＴ0」との組をキューラベルＤ0のパラメータとする。
（Ｂ）送信キュー１７に前回スケジューリング済みの「既存送信候補キュー」群のキューラベルＤi〜nに対応する各末尾位置「ILTi〜n」と、挿入対象となる「送信候補キュー」Ｄ0とのパラメータを比較する。具体的には、「既存送信候補キュー」群の各末尾位置「ＩＬＴi〜n」のうちで、「送信候補キュー」の末尾位置以下、即ち[ＩＬＴ0≧ＩＬＴi]となる場合の末尾位置「ＩＬＴi」に着目して、最も「送信候補キュー」の末尾位置「ＩＬＴ0」に近似する「既存送信候補キュー」の「ｉ」、即ちラベルを検出する。
【００５４】
次に、同様にして、「既存送信候補キュー」群の各先頭位置のうちで、「送信候補キュー」の末尾位置以下、即ち[ＩＬＴ0≧ＩＬＨj]となる場合の先頭位置「ＩＬＨj」に着目して、最も「送信候補キュー」の末尾位置「ＩＬＴ0」に近似する「既存送信候補キュー」のラベル「ｊ」を検出する。
この検出結果が、[ｉ＝ｊ]となる場合、即ち、位置「ＩＬＨ0」から位置「ＩＬＴ0」までの区間に存する「既存送信候補キュー」に依存することなく「送信候補キュー」の挿入が可能となる場合には、「送信候補キュー」のパラメータＤに変化はなく、図５に示すような挿入形態となる。
この図では、後述する「既存送信候補キュー」群の間隙を詰めることにより、「送信候補キュー」の配置対象区間に存在していたすべての「既存送信候補キュー」群が当該配置対象区間より前方に移動され、「送信候補キュー」の挿入が行われたことを表している。
【００５５】
一方、[ｉ≠ｊ]となる場合には、位置「ＩＬＨ0」から位置「ＩＬＴ0」までの区間に存在する「既存送信候補キュー」群に起因して、「送信候補キュー」の末尾及び先頭位置を変更する必要がある。この場合の挿入イメージを図６の概念図に示す。この図では、図５と同様の「送信候補キュー」が、後述の間隙を詰める処理によっても、当該配置対象区間に「既存送信候補キュー」群が存在しているために、平行四辺形で表される形状の底辺位置へ配置対象区間を変更してパラメータＤを変更することを表している。具体的には、「送信候補キュー」の末尾位置を「ＩＬＴ0＝ＩＬＨj」、先頭位置を「ＩＬＨ0＝ＩＬＴ0−ｂ」に変更して入れ替えるものである。
【００５６】
この入れ替えに際しては、「送信候補キュー」と近似する「既存送信候補キュー」の末尾位置「ＩＬＴi」から、送信キュー１７の出力口までの部分に存する「既存送信候補キュー」が配置されていない、所謂「すきま」（以下、間隙）に着目する。この部分に存するすべての間隙の合計値がトークンバケットサイズであるパラメータｂ以上であるならば、「送信候補キュー」Ｄ0は、送信キュー１７に対して挿入可能となるものである。換言すれば、送信キュー１７における間隙合計値がパラメータｂ以上とならない場合には、「送信候補キュー」Ｄ0は「要求遅延時間を満たせない」ことを意味するものであり、現時点での送信キュー１７におけるスケジューリングは不可能となる。なお、間隙の合計は、以下に示す式（８）で算出できる。
【００５７】
式（８）  間隙の合計
0003895033.tif 000002
【００５８】
（Ｃ）送信キュー１７において、何番目の「既存送信候補キュー」Ｄnまでが出力口方向に再配列可能かを算出する。これは、上記手順（Ｂ）において、間隙合計値がパラメータｂ以上となる位置から、送信キュー１７の出力口までの区間に存する「既存送信候補キュー」群の各末尾位置「ＩＬＴ」及び先頭位置［ＩＬＨ」を変更して「送信候補キュー」の配置対象区間を確保するためである。
以下に示すプログラム１及び２は、この入れ替え処理をプログラミング言語に「Ｃ言語」を用いて記述した場合のインプリメント例である。
【００５９】
0003895033.tif 000003
【００６０】
上記プログラム１では、間隙合計値を変数ｓｕｍを用いて算出しており、ｆｏｒ文中でループする「ｉ〜ｉｎｄｅｘ」、即ち「既存送信候補キュー」Ｄi〜indexまでが「送信候補キュー」の挿入により影響を受ける入れ替えの対象となる。各先頭位置ＩＬＨi〜index、及び末尾位置ＩＬＴi〜indexの値は、以下のプログラム２に基づいて変更され、送信キュー１７における出力口方向へ再配列される。
【００６１】
0003895033.tif 000004
【００６２】
上記プログラム２では、「送信候補キュー」の先頭位置から送信キュー１７の出力口までの区間に位置する「既存送信候補キュー」群の各位置を、各々出力口方向に存在する間隙を詰めることにより再配列を行い、「送信候補キュー」の配置対象区間を確保する処理を示している。
【００６３】
（Ｄ）上記手順（Ａ）〜（Ｃ）により、キューラベルＤ0の「送信候補キュー」が送信キュー１７における配置対象区間に挿入されてスケジューリングが完了され、キューイング遅延時間Ｄの要求が受理される。該処理の完了により、キューラベルＤ0の「送信候補キュー」に対応する遅延時間制御の対象となるパケット群は、送信キュー１７においてキューイング状態となる。
【００６４】
また、パケット管理処理部１６は、送信キュー１７にスケジューリングされた「送信候補キュー」の削除も可能に構成される。この遅延時間制御キューの削除は、通信パスにおけるクライアント２０またはサーバ３０よりなされる、遅延時間制御の対象となるパケットに対する無効化の指定を契機に行われるものである。なお、該無効化の指定は、例えば、受信処理部１１において検出されるように適宜構成すれば良い。
【００６５】
遅延時間制御キューの削除処理は、具体的には、上述した「送信候補キュー」の挿入処理の逆手順に基づくものであり、削除対象となる「送信候補キュー」の挿入に伴って影響を及ぼされた「既存送信候補キュー」群を元の位置に復元するものである。「送信候補キュー」の挿入により再配列された「既存送信候補キュー」群は、当該「送信候補キュー」が削除されることにより、挿入以前の配列に戻されて送信キュー１７における間隙も確保されるようになる。
【００６６】
図７は、割り込み型パケットスケジューリング〜送信処理における動作を表す概念図である。
送信キュー１７のスケジューリングは、より小さいキューラベル値が優先される「プライオリティキューイング」に基づくものである。具体的には、スケジューリング後の送信キュー１７に配列されたすべてのキュー群Ｄｎのうち、先頭位置「ＩＬＨ」が相対的に最小となる「送信候補キュー」に対応するパケット群が優先的に、先頭から順に送信処理部１８における送信対象となるものである。
【００６７】
また、送信キュー１７において遅延時間制御の対象となる「送信候補キュー」がない場合には、「帯域制御キュー」に対応するパケット群が先頭から順に送信対象となる。さらに、「送信候補キュー」及び「帯域制御キュー」がない場合には、「デフォルトキュー」に対応するパケット群が先頭から順に送信対象となる。このことから、任意のキューのパケットを送信後の送信キュー１７では、次回に送信対象となるキューに対応するパケット群が最も優先度の高いものとなる。
【００６８】
送信処理部１８は、パケット管理処理部１６と共動するものであり、送信キュー１７において先頭位置「ＩＬＨ」が最小となる「送信候補キュー」に対応するパケット群をすべて送信する。該送信時に、当該「ＩＬＨ」よりも小さい値の新たな「送信候補キュー」が送信キュー１７にスケジューリングされた場合には、この新規「送信候補キュー」に対応するパケットを優先的に送信する（図７（１）〜（３））。
【００６９】
すべての「送信候補キュー」に対応するパケット群が送信完了後、次に送信処理部１８は、送信キュー１７における「帯域制御キュー」に対応するパケットを選択して送信する（図７（４））。また、「帯域制御キュー」に対応するパケット群の送信が完了すれば、送信処理部１８は、「デフォルトキュー」に対応するパケット群の送信を行う（図７（５））。
【００７０】
なお、「帯域制御キュー」及び「デフォルトキュー」に対応するパケット送信時においても上述と同様に、新規「送信候補キュー」がスケジューリングされた場合には、「送信候補キュー」が優先的に送信される。
このことから、送信処理部１８では、送信キュー１７における「送信候補キュー」、「帯域制御キュー」、「デフォルトキュー」の順序から成る優先順位に基づいた送信となる。
【００７１】
このように、本実施形態のデータ通信システム１では、遅延時間を定量的に把握することが可能となることから、従来手法のように、サービスレート即ちパラメータＲを大きく設定する必要がなくなるとともに、平均転送率（転送レート）に着目した遅延時間表現を行うことにより、実際の必要帯域よりも過剰な帯域を消費してしまうという危険性が回避できる。
【００７２】
また、通信パス数の増減に対応して値が変化する変数パラメータＤｔｏｔ、即ちデータ通信システム１全体の総キューイング遅延時間は、上限値を、平均転送率に固定化したサービスレートに基づいて決定可能なことから、総キューイング遅延時間Ｄｔｏｔの変動する範囲を当該上限値以内に抑制できる。
このことにより、通信パスが増加した場合に、制御対象以外の通信パスからの影響による遅延時間等の増加が回避できる。
【００７３】
また、特定のインタフェースに集中する各通信パスからのバースト入力に伴う、一時的に物理的な帯域を超過してしまうような輻輳を回避できることから、通信パスの割り当て帯域やキュー長に依存することなく発生していた累積的な遅延が解消され、データ通信に係る処理時間を効果的に制御可能となる。
このことから、ネットワーク上のパケットに係る遅延に着目した通信品質管理が可能となることにより、さらに、データ通信及びシステム全体に係るスループットを一定値以上維持することが可能になり、通信品質、信頼性及び実用性が大幅に向上する効果がある。
【００７４】
（第２実施形態）
上記実施形態における通信サーバ１０は、例えば、スタンドアロン型のコンピュータ装置を用いた通信制御装置として実施することも可能である。この場合の通信制御装置における構成例としては、スタンドアロン型のコンピュータ装置を用いて、上記データ通信システム１の通信サーバ１０と同一の機能ブロック群を具備して構成する。
【００７５】
この通信制御装置と通信サーバ１０が相違する点は、サイトにおけるネットワーク管理サーバ等に接続して使用する通信機器、所謂、単体のルータとして機能するように構成する点であり、回線状況、及びパケットの送受信状況等を、例えば、接続するネットワーク管理サーバに対して視認可能なインタフェースや、ＬＥＤ等のインジケータを用いることにより提示するように構成する。
このように可搬な単体のルータとして構成することにより、サイトにおけるデータ通信環境が柔軟且つ容易に構築可能となるとともに、上記データ通信システム１と同等の効果を得ることが可能となる。
【００７６】
【発明の効果】
以上の説明から明らかなように、本発明のパケット管理方法によれば、ネットワーク環境下において、パケットに対する遅延時間を定量的且つ動的に制御可能となることから、例えば、ＱｏＳルーティング等の通信品質管理における重要な指標の一つとして利用可能となる効果がある。
また、本発明を適用して構築した通信制御装置及びデータ通信システムによれば、レスポンス時間に制約のある、例えば、リアルタイム性が重視されるネットワーク環境下において、効率的なパケット管理による最適なパケットの遅延時間が提供可能となる、データ通信環境が実現される効果がある。
また、本発明の記録媒体によれば、上記パケット管理方法等による効果が、汎用のコンピュータ装置上で容易に実現可能となる効果がある。
【図面の簡単な説明】
【図１】本発明の一実施形態におけるデータ通信システムの機能ブロック図。
【図２】通信サーバにおける処理手順図。
【図３】通信サーバにおける処理手順図。
【図４】通信サーバにおける構成概念図。
【図５】送信キューに対するキューの挿入及び削除を表す概念図。
【図６】送信キューに対するキューの挿入イメージを表す概念図。
【図７】割り込み型パケットスケジューリング〜送信処理における動作を表す概念図。
【符号の説明】
１    データ通信システム
１０  通信サーバ
１１  受信処理部
１２  受信キュー
１３  デフォルトキュー
１４  受信キュー処理部
１５  帯域制御受信キュー
１６  パケット管理処理部
１７  送信キュー
１８  送信処理部
２０  クライアント
３０  サーバ
Ｌ    公衆網
【図１】
0003895033.tif 000005
【図２】
0003895033.tif 000006
【図３】
0003895033.tif 000007
【図４】
0003895033.tif 000008
【図５】
0003895033.tif 000009
【図６】
0003895033.tif 000010
【図７】
0003895033.tif 000011