(57)【要約】【課題】各ノードでフロー毎に状態管理することなく、空間方向のみならず時間方向も考慮して長時間高レートフローを適切に制御することにより、各フローの通信品質を維持できるようなレート制御方法、およびレート制御システムを提供する。【解決手段】通信網の入口にある境界ノード３においてユーザフロー毎にトラヒックを監視し、その監視結果に応じてパケットヘッダにタギングをし、通信網の内部に位置する各内部ノード４は、タギングの有無とそのときの輻輳状況に応じてパケットの選択廃棄を実施して、各フローのパケット転送レートを制御する。境界ノード３は、各フローに対して送信可能レートを与え、送信可能レートを超えて転送されているパケットにタギングをし、送信可能レートはフローの持続時間に応じて減少させる。内部ノード４は、網が輻輳した場合にはタギングされたパケットを優先的に廃棄する。【選択図】        図２
2005217823.tif 000002
【特許請求の範囲】
【請求項１】
通信網の入口にある境界ノードにおいてユーザフロー毎にトラヒックを監視し、その監視結果に応じてパケットヘッダにタギングをし、通信網の内部に位置する内部ノードは、タギングの有無とそのときの輻輳状況に応じてパケットの選択廃棄を実施して、各フローのパケット転送レートを制御するレート制御方法であって、
前記境界ノードは、各フローに対して送信可能レートを与え、前記送信可能レートを超えて転送されているパケットにタギングをし、前記送信可能レートはフローの持続時間に応じて減少させ、
前記内部ノードは、網が輻輳した場合にはタギングされたパケットを優先的に廃棄することを特徴とするレート制御方法。
【請求項２】
請求項１に記載のレート制御方法において、前記境界ノードは、フローｉの送信可能レートの初期値をＡＲ０_ｉとし、現在の送信可能レートＡＲ_ｉをフロー開始時点においてはＡＲ_ｉ←ＡＲ０_ｉに設定し、フローｉに対して予め定めた周期Ｔｉ毎に前記現在の送信可能レートＡＲ_ｉをＡＲ_ｉ←ｍａｘ｛ＡＲ_ｉ×δ１，ＡＲ０_ｉ×δ２｝（δ１、δ２は０＜δ２＜δ１＜１を満たす送信可能レート減少係数）により更新し、フローｉのパケットが前記送信可能レートＡＲ_ｉを超えて転送されると判定した場合に、該パケットをタギングすることを特徴とするレート制御方法。
【請求項３】
請求項１に記載のレート制御方法において、前記内部ノードは、リンクヘの出力待ちバッファにおいてバッファ内キュー長Ｑを監視し、タギングされたパケットが到着したら、確率ｆ（Ｑ）（ｆ（）はＱに関して単調非減少な関数で、０≦ｆ（Ｑ）≦１）で該パケットを廃棄することを特徴とするレート制御方法。
【請求項４】
請求項１に記載のレート制御方法において、前記内部ノードは、一定周期毎に到着パケットレートＡを測定し、タギングされたパケットが到着したら確率ｇ（Ａ）（ｇ（）はＡに関して単調非減少な関数で、０≦ｇ（Ａ）≦１）で該パケットを廃棄することを特徴とするレート制御方法。
【請求項５】
請求項１に記載のレート制御方法において、
前記境界ノードは、フローｉの送信可能レートの初期値をＡＲ０_ｉとし、現在の送信可能レートＡＲ_ｉをフロー開始時点においてはＡＲ_ｉ←ＡＲ０_ｉに設定し、フローｉの持続時間に応じて前記現在の送信可能レートＡＲ_ｉを減少させ、フローｉのパケットが前記送信可能レートを超えて転送されると判定した場合に該パケットをタギングし、
前記内部ノードは、タグなしパケットの出力リンクｊへの到着レートＡ_nontag_ｊおよび該リンク出力待ちバッファでのタグなしパケット損失率Ｌ_nontag_ｊを測定し、Ａ_nontag_ｊおよびＬ_nontag_ｊを管理装置に通知し、
前記管理装置は、Ａ_nontag_ｊを該リンクの出力帯域Ｃｊと比較して、予め定めたパラメータα１としきい値Ｌ_th1に対し、Ａ_nontag_ｊ＞α１×ＣｊまたはＬ_nontag_ｊ＞Ｌ_th1を満たすリンクｊが存在するならば、前記境界ノードで設定されているフローｉの送信可能レートの初期値ＡＲ０_ｉをＡＲ０_ｉ←ＡＲ０_ｉ×β１（β１は予め定めたパラメータで０＜β１＜１）により変更する指示を前記境界ノードに通知し、また、予め定めたパラメータα２としきい値Ｌ_th2に対し、全てのリンクｊ（ｊ＝１〜Ｎlink，Ｎlinkは網内のリンク数）においてＡ_nontag_ｊ＜α２×ＣｊかつＬ_nontag_ｊ＜Ｌ_th2が満たされるならば、ＡＲ０_ｉ←ＡＲ０_ｉ×β２（β２は予め定めたパラメータでβ２＞１）により変更する指示を前記境界ノードに通知し、
前記境界ノードは、前記管理装置からの前記指示に従って送信可能レートの初期値ＡＲ０_ｉを変更することを特徴とするレート制御方法。
【請求項６】
請求項１に記載のレート制御方法において、
前記境界ノードは、フローｉの送信可能レートの初期値をＡＲ０_ｉとし、現在の送信可能レートＡＲ_ｉをフロー開始時点においてはＡＲ_ｉ←ＡＲ０_ｉに設定し、フローｉの持続時間に応じて前記現在の送信可能レートＡＲ_ｉを減少させ、フローｉのパケットが前記送信可能レートＡＲ_ｉを超えて転送されると判定した場合に該パケットをタギングし、
前記内部ノードは、境界ノードペアｋのパス上に存在するリンクｊでのタグなし到着レートＡ_nontag_(ｊ，ｋ)および該リンク出力待ちバッファでのタグなしパケット損失率Ｌ_nontag_(ｊ，ｋ)を測定し、Ａ_nontag_(ｊ，ｋ)およびＬ_nontag_(ｊ，ｋ)を管理装置に通知し、
前記管理装置は、Ａ_nontag_(ｊ，ｋ)を該リンクの出力帯域Ｃ（ｊ，ｋ）と比較して、予め定めたパラメータα１としきい値Ｌ_th1に対し、Ａ_nontag_(ｊ，ｋ)＞α１×Ｃ（ｊ，ｋ）またはＬ_nontag_(ｊ，ｋ)＞Ｌ_th1を満たすリンクｊがパスｋ上に存在するならば、境界ノードペアｋの発側境界ノードで設定されている各フローの送信可能レートの初期値をＡＲ０_ｉ←ＡＲ０_ｉ×β１（β１は予め定めたパラメータで０＜β１＜１）により変更する指示を境界ノードペアｋの発側境界ノードに通知し、また、予め定めたパラメータα２としきい値Ｌ_th2に対し、全てのリンクｊ（ｊはパスｋ上に存在するリンク）においてＡ_nontag_(ｊ，ｋ)＜α２×Ｃ（ｊ，ｋ）かつＬ_nontag_(ｊ，ｋ)＜Ｌ_th2が満たされるならば、ＡＲ０_ｉ←ＡＲ０_ｉ×β２（β２は予め定めたパラメータでβ２＞１）により変更する指示を境界ノードペアｋの発側境界ノードに通知し、
前記境界ノードペアｋの発側境界ノードは、前記管理装置からの前記指示に従って送信可能レートの初期値ＡＲ０_ｉを変更することを特徴とするレート制御方法。
【請求項７】
請求項５に記載のレート制御方法において、β１、β２を、予め定めたパラメータとする代わりに、Ａ_nontag_ｊ、Ｃｊ、およびＬ_nontag_ｊ（ｊ＝１〜Ｎlink，Ｎlinkは網内のリンク数）の関数として、β１＝Ｆ１（Ａ_nontag_ｊ，Ｃｊ，Ｌ_nontag_ｊ）、β２＝Ｆ２（Ａ_nontag_ｊ，Ｃｊ，Ｌ_nontag_ｊ）（ただし、関数Ｆ１（）、Ｆ２（）は、Ａ_nontag_ｊに対し単調非増加であり、Ｌ_nontag_ｊに対し単調非増加関数）で与えることを特徴とするレート制御方法。
【請求項８】
請求項６に記載のレート制御方法において、β１、β２を、予め定めたパラメータとする代わりに、Ａ_nontag_(ｊ，ｋ)、Ｃ（ｊ，ｋ）、およびＬ_nontag_(ｊ，ｋ)（パスｋ上のリンクｊにおける測定値）の関数として、β１＝Ｆ１（Ａ_nontag_(ｊ，ｋ)，Ｃ（ｊ，ｋ），Ｌ_nontag_(ｊ，ｋ)）、β２＝Ｆ２（Ａ_nontag_(ｊ，ｋ)，Ｃ（ｊ，ｋ），Ｌ_nontag_(ｊ，ｋ)）、ただし、関数Ｆ１（）、Ｆ２（）は、Ａ_nontag_(ｊ，ｋ)に対し単調非増加であり、Ｌ_nontag_(ｊ，ｋ)に対し単調非増加関数）で与えることを特徴とするレート制御方法。
【請求項９】
請求項５または６に記載のレート制御方法において、
前記境界ノードは、フローｉに対して予め定めた周期Ｔｉ毎に前記現在の送信可能レートＡＲ_ｉをＡＲ_ｉ←ｍａｘ｛ＡＲ_ｉ×δ１，ＡＲ０_ｉ×δ２｝（δ１、δ２は０＜δ２＜δ１＜１を満たす送信可能レート減少係数）により更新し、
前記管理装置は、請求項５または６において送信可能レートの初期値をＡＲ０_ｉ←ＡＲ０_ｉ×β１（β１は予め定めたパラメータで０＜β１＜１）により変更する指示を境界ノードに通知する代わりに、前記送信可能レート減少係数δ１の値をδ１←δ１×β１により変更する指示を境界ノードに通知し、かつ、請求項５または６においてＡＲ０_ｉ←ＡＲ０_ｉ×β２（β２は予め定めたパラメータでβ２＞１）により変更する指示を境界ノードに通知する代わりに、前記送信可能レート減少係数δ１の値をδ１←ｍｉｎ｛δ１×β２，δｍａｘ｝（δｍａｘは、０＜δｍａｘ＜１となる予め定めるパラメータ）により変更する指示を境界ノードに通知し、
通知された境界ノードは、送信可能レートの初期値ＡＲ０_ｉを変更する代わりに、前記δ１を変更することを特徴とするレート制御方法。
【請求項１０】
請求項１に記載のレート制御方法において、前記境界ノードは、各フローに対してトラヒックを監視する代わりに、高レートフローとなる可能性のあるフローのみに対しトラヒックを監視し、その結果に基づきパケットヘッダにタギングを行うことを特徴とするレート制御方法。
【請求項１１】
通信網の入口に設けられ、ユーザフロー毎にトラヒックを監視し、その監視結果に応じてパケットヘッダにタギングをする境界ノードと、通信網の内部に設けられ、タギングの有無とそのときの輻輳状況に応じてパケットの選択廃棄を実施する内部ノードと、を備え、各フローのパケット転送レートを制御するレート制御システムであって、
前記境界ノードは、各フローに対して送信可能レートを与え、前記送信可能レートを超えて転送されているパケットにタギングをし、前記送信可能レートはフローの持続時間に応じて減少させ、
前記内部ノードは、網が輻輳した場合にはタギングされたパケットを優先的に廃棄することを特徴とするレート制御システム。
【請求項１２】
請求項１１に記載のレート制御システムにおいて、前記境界ノードは、フローｉの送信可能レートの初期値をＡＲ０_ｉとし、現在の送信可能レートＡＲ_ｉをフロー開始時点においてはＡＲ_ｉ←ＡＲ０_ｉに設定し、フローｉに対して予め定めた周期Ｔｉ毎に前記現在の送信可能レートＡＲ_ｉをＡＲ_ｉ←ｍａｘ｛ＡＲ_ｉ×δ１，ＡＲ０_ｉ×δ２｝（δ１、δ２は０＜δ２＜δ１＜１を満たす送信可能レート減少係数）により更新し、フローｉのパケットが前記送信可能レートＡＲ_ｉを超えて転送されると判定した場合に、該パケットをタギングすることを特徴とするレート制御システム。
【請求項１３】
請求項１１に記載のレート制御システムにおいて、前記内部ノードは、リンクヘの出力待ちバッファにおいてバッファ内キュー長Ｑを監視し、タギングされたパケットが到着したら、確率ｆ（Ｑ）（ｆ（）はＱに関して単調非減少な関数で、０≦ｆ（Ｑ）≦１）で該パケットを廃棄することを特徴とするレート制御システム。
【請求項１４】
請求項１１に記載のレート制御システムにおいて、前記内部ノードは、一定周期毎に到着パケットレートＡを測定し、タギングされたパケットが到着したら確率ｇ（Ａ）（ｇ（）はＡに関して単調非減少な関数で、０≦ｇ（Ａ）≦１）で該パケットを廃棄することを特徴とするレート制御システム。
【請求項１５】
請求項１１に記載のレート制御システムにおいて、
前記レート制御システムには管理装置が設けられ、
前記境界ノードは、フローｉの送信可能レートの初期値をＡＲ０_ｉとし、現在の送信可能レートＡＲ_ｉをフロー開始時点においてはＡＲ_ｉ←ＡＲ０_ｉに設定し、フローｉの持続時間に応じて前記現在の送信可能レートＡＲ_ｉを減少させ、フローｉのパケットが前記送信可能レートＡＲ_ｉを超えて転送されると判定した場合に該パケットをタギングし、
前記内部ノードは、タグなしパケットの出力リンクｊへの到着レートＡ_nontag_ｊ［ｂｐｓ］および該リンク出力待ちバッファでのタグなしパケット損失率Ｌ_nontag_ｊを測定し、Ａ_nontag_ｊおよびＬ_nontag_ｊを前記管理装置に通知し、
前記管理装置は、Ａ_nontag_ｊを該リンクの出力帯域Ｃｊ［ｂｐｓ］と比較して、予め定めたパラメータα１としきい値Ｌ_th1に対し、Ａ_nontag_ｊ＞α１×ＣｊまたはＬ_nontag_ｊ＞Ｌ_th1を満たすリンクｊが存在するならば、前記境界ノードで設定されている各フローの送信可能レートの初期値をＡＲ０_ｉ←ＡＲ０_ｉ×β１（β１は予め定めたパラメータで０＜β１＜１）により変更する指示を前記境界ノードに通知し、また、予め定めたパラメータα２としきい値Ｌ_th2に対し、全てのリンクｊ（ｊ＝１〜Ｎlink，Ｎlinkは網内のリンク数）においてＡ_nontag_ｊ＜α２×ＣｊかつＬ_nontag_ｊ＜Ｌ_th2が満たされるならば、ＡＲ０_ｉ←ＡＲ０_ｉ×β２（β２は予め定めたパラメータでβ２＞１）により変更する指示を前記境界ノードに通知し、
前記境界ノードは、前記管理装置からの前記指示に従って送信可能レートの初期値ＡＲ０_ｉを変更することを特徴とするレート制御システム。
【請求項１６】
請求項１１に記載のレート制御システムにおいて、
前記レート制御システムには管理装置が設けられ、
前記境界ノードは、フローｉの送信可能レートの初期値をＡＲ０_ｉとし、現在の送信可能レートＡＲ_ｉをフロー開始時点においてはＡＲ_ｉ←ＡＲ０_ｉに設定し、フローｉの持続時間に応じて前記現在の送信可能レートＡＲ_ｉを減少させ、フローｉのパケットが前記送信可能レートＡＲ_ｉを超えて転送されると判定した場合に該パケットをタギングし、
前記内部ノードは、境界ノードペアｋのパス上に存在するリンクｊでのタグなし到着レートＡ_nontag_(ｊ，ｋ)および該リンク出力待ちバッファでのタグなしパケット損失率Ｌ_nontag_(ｊ，ｋ)を測定し、Ａ_nontag_(ｊ，ｋ)およびＬ_nontag_(ｊ，ｋ)を前記管理装置に通知し、
前記管理装置は、Ａ_nontag_ｊを該リンクの出力帯域Ｃｊと比較して、予め定めたパラメータα１としきい値Ｌ_th1に対し、Ａ_nontag_ｊ＞α１×ＣｊまたはＬ_nontag_ｊ＞Ｌ_th1を満たすリンクｊが存在するならば、前記境界ノードで設定されている各フローの送信可能レートの初期値をＡＲ０_ｉ←ＡＲ０_ｉ×β１（β１は予め定めたパラメータで０＜β１＜１）により変更する指示を前記境界ノードに通知し、また、予め定めたパラメータα２としきい値Ｌ_th2に対し、全てのリンクｊ（ｊ＝１〜Ｎlink，Ｎlinkは網内のリンク数）においてＡ_nontag_ｊ＜α２×ＣｊかつＬ_nontag_ｊ＜Ｌ_th2が満たされるならば、ＡＲ０_ｉ←ＡＲ０_ｉ×β２（β２は予め定めたパラメータでβ２＞１）により変更する指示を前記境界ノードに通知し、
前記境界ノードは、前記管理装置からの前記指示に従って送信可能レートの初期値ＡＲ０_ｉを変更することを特徴とするレート制御システム。
【請求項１７】
請求項１５に記載のレート制御システムにおいて、β１、β２を予め定めたパラメータとする代わりに、Ａ_nontag_ｊ、Ｃｊ、およびＬ_nontag_ｊ（ｊ＝１〜Ｎlink，Ｎlinkは網内のリンク数）の関数として、β１＝Ｆ１（Ａ_nontag_ｊ，Ｃｊ，Ｌ_nontag_ｊ）、β２＝Ｆ２（Ａ_nontag_ｊ，Ｃｊ，Ｌ_nontag_ｊ）（ただし、関数Ｆ１（）、Ｆ２（）は、Ａ_nontag_ｊに対し単調非増加であり、Ｌ_nontag_ｊに対し単調非増加関数）で与えることを特徴とするレート制御システム。
【請求項１８】
請求項１６に記載のレート制御システムにおいて、β１、β２を予め定めたパラメータとする代わりに、Ａ_nontag_(ｊ，ｋ)、Ｃ（ｊ，ｋ）、およびＬ_nontag_(ｊ，ｋ)（パスｋ上のリンクｊにおける測定値）の関数として、β１＝Ｆ１（Ａ_nontag_(ｊ，ｋ)，Ｃ（ｊ，ｋ），Ｌ_nontag_(ｊ，ｋ)）、β２＝Ｆ２（Ａ_nontag_(ｊ，ｋ)，Ｃ（ｊ，ｋ），Ｌ_nontag_(ｊ，ｋ)）、ただし、関数Ｆ１（）、Ｆ２（）は、Ａ_nontag_(ｊ，ｋ)に対し単調非増加であり、Ｌ_nontag_(ｊ，ｋ)に対し単調非増加関数）で与えることを特徴とするレート制御システム。
【請求項１９】
請求項１５または１６に記載のレート制御システムにおいて、
前記境界ノードは、フローｉに対して予め定めた周期Ｔｉ毎に前記現在の送信可能レートＡＲ_ｉをＡＲ_ｉ←ｍａｘ｛ＡＲ_ｉ×δ１，ＡＲ０_ｉ×δ２｝（δ１、δ２は０＜δ２＜δ１＜１を満たす送信可能レート減少係数）により更新し、
前記管理装置は、請求項１５または１６において送信可能レートの初期値をＡＲ０_ｉ←ＡＲ０_ｉ×β１（β１は予め定めたパラメータで０＜β１＜１）により変更する指示を境界ノードに通知する代わりに、前記送信可能レート減少係数δ１の値をδ１←δ１×β１により変更する指示を境界ノードに通知し、かつ、請求項１５または１６においてＡＲ０_ｉ←ＡＲ０_ｉ×β２（β２は予め定めたパラメータでβ２＞１）により変更する指示を境界ノードに通知する代わりに、前記送信可能レート減少係数δ１の値をδ１←ｍｉｎ｛δ１×β２，δｍａｘ｝（δｍａｘは、０＜δｍａｘ＜１となる予め定めるパラメータ）により変更する指示を境界ノードに通知し、
通知された境界ノードは、送信可能レートの初期値ＡＲ０_ｉを変更する代わりに、前記δ１を変更することを特徴とするレート制御システム。
【請求項２０】
請求項１１に記載のレート制御システムにおいて、境界ノードは、各フローに対してトラヒックを監視する代わりに、高レートフローとなる可能性のあるフローのみに対しトラヒックを監視し、その結果に基づきパケットヘッダにタギングを行うことを特徴とするレート制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰネットワークにおける各フローのパケット転送レートを制御する技術に関するものである。
【背景技術】
【０００２】
ＩＰネットワークが広く利用されてくるに伴って、ＩＰネットワーク上での通信品質保証に対する要求が高まっている。その一方で、Ｐ２Ｐアプリケーションの出現に伴うトラヒックパターンの急激な変動に代表されるように、各フローのトラヒック特性はますます多種多様となり、それに伴い各種フローの品質要求も多様化している。例えば、Ｐ２Ｐトラヒックのような長時間高レートフローを適切にコントロールして、レスポンス時間に敏感なｗｅｂのようなファイルサイズの小さいフローの品質を確保することが要求される場合が想定される。その一方で、通信設備に対するコストを抑える必要がある。従って、与えられた通信帯域を有効利用して各フローの所望の通信品質を維持できるように各フローのパケット転送レートを適切に制御することが重要となっている。
【０００３】
従来のレート制御技術は、その瞬間（空間方向）の各フローのレートが公平になるように制御するものが一般的である（例えば非特許文献１の１８９頁記載のＷＦＱ（weighted fair queueing）や非特許文献２のＣＳＦＱ（core-stateless-fair-queueing等）。しかしながら、このような方法では、空間方向のみしか考慮しないため、Ｐ２Ｐトラヒックのように長時間に渡って存在するフローに常に一定の帯域を与えることになり、その結果、ｗｅｂのような小さいファイルを転送するだけのフローはその瞬間の公平な帯域分の割当は与えられるのみであり、該フローは圧迫されてしまう（図１（Ａ））。しかし、図１（Ｂ）に示すように、時間方向も考慮に入れて各フローのレートを制御すると、Ｐ２Ｐのような長時間フローのファイル転送完了時間も劣化させずに、ｗｅｂのようなサイズの小さいフローのレスポンス時間（ファイル転送時間）を向上させることが可能となる。
【０００４】
時間方向も考慮したレート制御方式として非特許文献３、非特許文献４がある。しかしながら、これらは各ノードでフロー毎に状態管理する、あるいは、フロー毎にパケット転送処理のスケジューリングを行うため、フロー数の多いノードではスケーラビリティに問題があった。
【０００５】
【非特許文献１】戸田巌、「ネットワークＱｏＳ技術」、オーム社出版局、２００１
【非特許文献２】I. Stoica, S. Shenker, and H. Zhang, “Core-stateless fair Queueing: achieving approximately fair bandwidth allocations in high-speed networks,” proceedings of ACMSIGCOMM98, pp.118-130, 1998
【非特許文献３】T. S. Eugene Ng, D. C. Stephens, I. Stoica, and H. Zhang, “Supporting best-effort traffic with fair service curve,” IEEE Globecom99, pp.1799-1807, 1999
【非特許文献４】山垣、戸出、村上、「フロー継続状況を考慮に入れたフロー管理型パケット廃棄制御方式」、電子情報通信学会論文誌Ｖｏｌ．Ｊ８６−Ｂ、Ｎｏ．８、ｐｐ．１５７８−１５８８、２００３
【非特許文献５】ＩＥＴＦ  ＲＦＣ２４７５、“An architecture for differentiated services”、[online]、［平成１６年１月２１日検索］、インターネット＜http://www.ietf.org/rfc/rfc2475.txt＞
【非特許文献６】M. May, J. -C. Bolot, A. J. -Marie, and C. Diot, “Simple performance models of differentiated services schemes for Internet,” INFOCOM99, pp.1385-1394, 1999
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、上述の問題点に鑑み、各ノードでフロー毎に状態管理することなく、空間方向のみならず時間方向も考慮して長時間高レートフローを適切に制御することにより、各フローの通信品質を維持できるようなレート制御方法、およびレート制御システムを提供することにある。
【課題を解決するための手段】
【０００７】
フロー数に対するスケーラビリティを確保するため、本発明ではｄｉｆｆｓｅｒｖアーキテクチャ（非特許文献５参照）を利用する。ｄｉｆｆｓｅｒｖでは、通信網の入口にある境界ノードと、網の内部にある内部ノードで機能分担を行う。本発明では、多重フロー数の少ない境界ノードではユーザフロー毎にトラヒックを監視し、その監視結果に応じてパケットヘッダにタギングをし、多重フロー数の多い内部ノードは、フロー毎に状態管理せずにタギングの有無のみをチェックし、そのときの輻輳状況に応じてパケットの選択廃棄を実施する。
【０００８】
上記ｄｉｆｆｓｅｒｖアーキテクチャを利用して、本発明の第１のレート制御方法においては、境界ノードでは、各フローに対して送信可能レートを与え、送信可能レートを超えて転送されているパケットにタギングをする。送信可能レートはフローの持続時間に応じて減少させ、内部ノードでは網が輻輳した場合にはタギングされたパケットを優先的に廃棄することにより、長時間に渡って高レートで転送しているフローを規制することを特徴とする。
【０００９】
こうすることにより、短いフローと比べて長時間フローにタギングする確率を高くして、網の内部でタギングパケットを優先的に廃棄することにより、短いフローへの割当帯域を大きくしてレスポンス時間を速めることを可能とする。
【００１０】
本発明の第２のレート制御方法においては、第１の方法において、フローｉの送信可能レートの初期値をＡＲ０_ｉとし、現在の送信可能レートＡＲ_ｉをフロー開始時点においてはＡＲ_ｉ←ＡＲ０_ｉに設定し、フローｉに対して予め定めた周期Ｔｉ毎にＡＲ_ｉをＡＲ_ｉ←ｍａｘ｛ＡＲ_ｉ×δ１，ＡＲ０_ｉ×δ２｝（δ１、δ２は０＜δ２＜δ１＜１を満たす送信可能レート減少係数）により更新し、フローｉのパケットが送信可能レートを超えて転送されると判定した場合に、該パケットをタギングすることを特徴とする。
【００１１】
本発明の第３のレート制御方法においては、第１の方法において、網の内部ノードでは、リンクヘの出力待ちバッファにおいてバッファ内キュー長Ｑを監視し、タギングされたパケットが到着したら、確率ｆ（Ｑ）（ｆ（）はＱに関して単調非減少な関数で、０≦ｆ（Ｑ）≦１）で該パケットを廃棄することを特徴とする。
【００１２】
本発明の第４のレート制御方法においては、第１の方法において、網の内部ノードでは、一定周期毎に到着パケットレートＡ［ｂｐｓ］を測定し、タギングされたパケットが到着したら、確率ｇ（Ａ）（ｇ（）はＡに関して単調非減少な関数で、０≦ｇ（Ａ）≦１）で該パケットを廃棄することを特徴とする。
【００１３】
本発明の第５のレート制御方法においては、第１の方法において、境界ノードは、フローｉの送信可能レートの初期値をＡＲ０_ｉとし、現在の送信可能レートＡＲ_ｉをフロー開始時点においてはＡＲ_ｉ←ＡＲ０_ｉに設定し、フローｉの持続時間に応じて現在の送信可能レートＡＲ_ｉを更新し、フローｉのパケットが送信可能レートを超えて転送されると判定した場合に該パケットをタギングし、網の各内部ノードは、タグなしパケットの出力リンクｊへの到着レートＡ_nontag_ｊ［ｂｐｓ］および該リンク出力待ちバッファでのタグなしパケット損失率Ｌ_nontag_ｊを測定し、Ａ_nontag_ｊおよびＬ_nontag_ｊを管理装置に通知し、管理装置は、Ａ_nontag_ｊを該リンクの出力帯域Ｃｊ［ｂｐｓ］と比較して、予め定めたパラメータα１としきい値Ｌ_th1に対し、Ａ_nontag_ｊ＞α１×ＣｊまたはＬ_nontag_ｊ＞Ｌ_th1を満たすリンクｊが存在するならば、各境界ノードで設定されている各フローの送信可能レートの初期値をＡＲ０_ｉ←ＡＲ０_ｉ×β１（β１は予め定めたパラメータで０＜β１＜１）により変更する指示を各境界ノードに通知し、また、予め定めたパラメータα２としきい値Ｌ_th2に対し、全てのリンクｊ（ｊ＝１〜Ｎlink、Ｎlinkは網内のリンク数）においてＡ_nontag_ｊ＜α２×ＣｊかつＬ_nontag_ｊ＜Ｌ_th2が満たされるならば、ＡＲ０_ｉ←ＡＲ０_ｉ×β２（β２は予め定めたパラメータでβ２＞１）により変更する指示を各境界ノードに通知し、各境界ノードは、管理装置からの指示に従って送信可能レートの初期値ＡＲ０_ｉを変更することを特徴とする。
【００１４】
こうする理由について説明する。もし、送信可能レートの初期値の設定が大きすぎて、網の内部でタギングされたパケットをいくら廃棄しても輻輳が緩和しない場合、タグなしパケットもバッファ溢れのために損失する可能性がある。そうなると、タグなしパケットを優先させることができなくなり、短いフローを優先させることができない可能性がある。そこで、タグなしパケットの到着レートやタグなしパケット損失率を監視し、タグなしパケットが網の内部のリソースに対し過剰に到着していたら、送信可能レートの初期値を小さくすることにより、タグなしパケット到着レートが小さくなるように調整している。逆に、送信可能レートが低めに設定されすぎると、フロー間の差別化が図れなくなる可能性があるため、網の内部へのタグなしパケット到着レートが低い場合には、送信可能レートの初期値が大きくなるように設定している。
【００１５】
本発明の第６のレート制御方法においては、第１の方法において、境界ノードは、フローｉの送信可能レートの初期値をＡＲ０_ｉとし、現在の送信可能レートＡＲ_ｉをフロー開始時点においてはＡＲ_ｉ←ＡＲ０_ｉに設定し、フローｉの持続時間に応じて現在の送信可能レートＡＲ_ｉを更新し、フローｉのパケットが送信可能レートを超えて転送されると判定した場合に該パケットをタギングし、内部ノードは、境界ノードペアｋのパス上に存在するリンクｊでのタグなし到着レートＡ_nontag_(ｊ，ｋ)および該リンク出力待ちバッファでのタグなしパケット損失率Ｌ_nontag_(ｊ，ｋ)を測定し、Ａ_nontag_(ｊ，ｋ)およびＬ_nontag_(ｊ，ｋ)を管理装置に通知し、管理装置は、Ａ_nontag_(ｊ，ｋ)を該リンクの出力帯域Ｃ（ｊ，ｋ）と比較して、予め定めたパラメータα１としきい値Ｌ_th1に対し、Ａ_nontag_(ｊ，ｋ)＞α１×Ｃ（ｊ，ｋ）またはＬ_nontag_(ｊ，ｋ)＞Ｌ_th1を満たすリンクｊがパスｋ上に存在するならば、境界ノードペアｋの発側境界ノードで設定されている各フローの送信可能レートの初期値をＡＲ０_ｉ←ＡＲ０_ｉ×β１（β１は予め定めたパラメータで０＜β１＜１）により変更する指示を境界ノードペアｋの発側境界ノードに通知し、また、予め定めたパラメータα２としきい値Ｌ_th2に対し、全てのリンクｊ（ｊはパスｋ上に存在するリンク）においてＡ_nontag_(ｊ，ｋ)＜α２×Ｃ（ｊ，ｋ）かつＬ_nontag_(ｊ，ｋ)＜Ｌ_th2が満たされるならば、ＡＲ０_ｉ←ＡＲ０_ｉ×β２（β２は予め定めたパラメータでβ２＞１）により変更する指示を境界ノードペアｋの発側境界ノードに通知し、境界ノードペアｋの発側境界ノードは、管理装置からの指示に従って送信可能レートの初期値ＡＲ０_ｉを変更することを特徴とする。
これは、経路情報により境界ノードペアのパス上に存在するリンクを把握できている場合には、第５の方法よりもきめ細かく送信可能レートの変更を可能とする方法である。
【００１６】
本発明の第７のレート制御方法においては、第５の方法において、β１、β２を予め定めたパラメータとしていた代わりに、Ａ_nontag_ｊ、Ｃｊ、およびＬ_nontag_ｊ（ｊ＝１〜Ｎlink，Ｎlinkは網内のリンク数）の関数としてβ１＝Ｆ１（Ａ_nontag_ｊ，Ｃｊ，Ｌ_nontag_ｊ）、β２＝Ｆ２（Ａ_nontag_ｊ，Ｃｊ、Ｌ_nontag_ｊ）（ただし、関数Ｆ１（）、Ｆ２（）は、Ａ_nontag_ｊに対し単調非増加であり、Ｌ_nontag_ｊに対し単調非増加関数）で与えることを特徴とする。
【００１７】
本発明の第８のレート制御方法においては、第６の方法において、β１、β２を予め定めたパラメータとしていた代わりに、Ａ_nontag_(ｊ，ｋ)、Ｃ（ｊ，ｋ）、およびＬ_nontag_(ｊ，ｋ)（パスk上のリンクｊにおける測定値）の関数としてβ１＝Ｆ１（Ａ_nontag_(ｊ，ｋ)，Ｃ（ｊ，ｋ），Ｌ_nontag_(ｊ，ｋ)）、β２＝Ｆ２（Ａ_nontag_(ｊ，ｋ)，Ｃ（ｊ，ｋ），Ｌ_nontag_(ｊ，ｋ)）（ただし、関数Ｆ１（）、Ｆ２（）は、Ａ_nontag_(ｊ，ｋ)に対し単調非増加であり、Ｌ_nontag_(ｊ，ｋ)に対し単調非増加関数）で与えることを特徴とする。
【００１８】
本発明の第９のレート制御方法においては、第５または第６の方法において、境界ノードは、フローｉに対して予め定めた周期Ｔｉ毎に現在の送信可能レートＡＲ_ｉをＡＲ_ｉ←ｍａｘ｛ＡＲ_ｉ×δ１，ＡＲ０_ｉ×δ２｝（δ１、δ２は０＜δ２＜δ１＜１を満たす送信可能レート減少係数）により更新し、第５または第６において送信可能レートの初期値をＡＲ０_ｉ←ＡＲ０_ｉ×β１（β１は予め定めたパラメータで０＜β１＜１）により変更する指示を境界ノードに通知する代わりに、送信可能レート減少係数δ１の値をδ１←δ１×β１により変更する指示を境界ノードに通知し、かつ、請求項５または６においてＡＲ０_ｉ←ＡＲ０_ｉ×β２（β２は予め定めたパラメータでβ２＞１）により変更する指示を境界ノードに通知する代わりに、送信可能レート減少係数δ１の値をδ１←ｍｉｎ｛δ１×β２，δｍａｘ｝（δｍａｘは、０＜δｍａｘ＜１となる予め定めるパラメータ）により変更する指示を境界ノードに通知し、通知された境界ノードは、送信可能レートの初期値ＡＲ０_ｉを変更する代わりに、δ１を変更することを特徴とする。
【００１９】
本発明の第５または第６の方法で送信可能レートの初期値を変更させることによって、網の状況に応じて網に加わるタグなしパケット到着レートを調整していた代わりに、この第９の方法では各フローの送信可能レート減少係数δ１を変更することによって網へのタグなしパケット到着レートを調整している。
【００２０】
本発明の第１０のレート制御方法においては、第１の方法において境界ノードで各フローに対してトラヒック監視を実施していた代わりに、高レートフローとなる可能性のあるフローのみに対しトラヒック監視を実施し、その結果に基づきパケットヘッダにタギングを行うことを特徴とする。
【００２１】
例えば、ポート番号６６９９や７７４３を持つフローは、Ｐ２Ｐ型のファイル共有アプリケーションに関するフローであるので、大きなファイルを転送して長時間高レートフローとなる可能性が高いと判断できるので、そのようなフローのみを制御対象とする。こうすることにより、境界ノードでのフロー管理数を削減できる。
本発明のレート制御システムは、第１〜第１０の方法を行うためのシステムである。
【発明の効果】
【００２２】
本発明によれば、各ノードでフロー毎に状態管理することなく、長時間高レートフローを適切に制御し、長時間高レートフローの通信品質を損なうことなくｗｅｂのような小さいサイズのフローのレスポンス時間を向上させて、与えられた帯域を有効利用することを可能とする、レート制御方法およびレート制御システムを提供することが可能となる。
【発明を実施するための最良の形態】
【００２３】
以下、図面を用いて本発明の実施例を説明する。
【実施例１】
【００２４】
図２は本発明が適用されるＩＰネットワークの基本構成の一例を示す構成図である。図２において、１はＩＰネットワークであり、３はＩＰネットワーク１の境界に設けられた境界ノードであり、４はＩＰネットワーク１の内部に設けられた内部ノードであり、５は境界ノード３、内部ノード４を管理する管理装置である。境界ノード３には端末２が接続されている。図２に示す境界ノード３および内部ノード４に必要な機能を配備し、かつそれらノードを管理する管理装置５によって、本発明のレート制御システムは構築される。
【００２５】
図３は本発明の第２の方法を用いたレート制御システムにおける境界ノード３の構成例を表すブロック図であり、図４は本発明の第３の方法を用いたレート制御システムにおける内部ノード４の構成例を表すブロック図であり、図５は本発明の第５の方法を用いたレート制御システムにおける管理装置５の構成例を表すブロック図である。
【００２６】
図３に示されている通り、境界ノード３はパケットヘッダ解析部３１、フロー管理部３２、違反タギング部３３、パケット転送部３４を備え、エンドユーザから到着したパケットはパケットヘッダ解析部３１において（送信元ＩＰアドレス、着信先ＩＰアドレス、送信元ポート番号、着信先ポート番号、プロトコル番号）を読み取った後、その情報をフロー管理部３２へ通知し、パケットは違反タギング部３３へ転送される。
【００２７】
フロー管理部３２は、フロー毎に状態を管理するテーブルを予め用意しておく。そのテーブルでは、フロー毎に、フローｉの最初にパケットが到着した時刻Ｔ_first_i、最後にパケットが到着した時刻Ｔ_last_i、現在の送信可能レートＡＲ_ｉ、およびリーキーバケット内仮想蓄積バイト数Ｂ_ｉを記憶しておく。現在の送信可能レートＡＲ_ｉはフローｉのフロー開始時点にＡＲ_ｉ←ＡＲ０_ｉと設定する。フローｉに対して予め定めた周期Ｔｉ毎にテーブルをスキャンし、現在の時刻Ｔ_now_i−Ｔ_last_i＞Ｔout（Ｔoutは予め定めるタイムアウト時間）であれば、フローｉはエントリから削除する。また周期Ｔｉ毎に現在の送信可能レートＡＲ_ｉをＡＲ_ｉ←ｍａｘ｛ＡＲ_ｉ×δ１，ＡＲ０_ｉ×δ２｝（δ１、δ２は０＜δ２＜δ１＜１を満たす送信可能レート減少係数、ＡＲ０_ｉは予め定めた送信可能レートの初期値）により更新する。
【００２８】
上記の「←」は左辺の変数の値を右辺の変数の値で更新することを意味し、また、「ｍａｘ」は｛｝内の変数の値の最大値を意味している。例えば、ＡＲ_ｉ←ｍａｘ｛ＡＲ_ｉ×δ１，ＡＲ０_ｉ×δ２｝は、ＡＲ_ｉ×δ１とＡＲ０_ｉ×δ２の最大値（大きい方の値）をＡＲ_ｉに代入することを意味している。このことは以下で述べる←、ｍａｘにおいても同様である。
【００２９】
上記のＡＲ_ｉ←ｍａｘ｛ＡＲ_ｉ×δ１，ＡＲ０_ｉ×δ２｝による更新によって、現在の送信可能レートＡＲ_ｉは次のように変化する。フローｉのフロー開始時点でＡＲ_ｉは初期値ＡＲ_０に設定される。Ｔｉ時間後の１回目の更新では、その時点ではＡＲ_ｉはＡＲ_０であるからＡＲ_ｉはｍａｘ｛ＡＲ０_ｉ×δ１，ＡＲ０_ｉ×δ２｝で更新されることになるが、δ１＞δ２であるから、ＡＲ_ｉはＡＲ０_ｉ×δ１で更新される。０＜δ１＜１であるから、ＡＲ_ｉの値は減少する。次のＴｉ時間後の２回目の更新では、その時点ではＡＲ_ｉはＡＲ０_ｉ×δ１であるからＡＲ_ｉはｍａｘ｛（ＡＲ０_ｉ×δ１）×δ１，ＡＲ０_ｉ×δ２｝すなわちｍａｘ｛ＡＲ０_ｉ×δ１２，ＡＲ０_ｉ×δ２｝で更新されることになるが、もし、ＡＲ０_ｉ×δ１２＞ＡＲ０_ｉ×δ２であるとすれば、ＡＲ_ｉはＡＲ０_ｉ×δ１２で更新される。次のＴｉ時間後の３回目の更新では、ＡＲ_ｉはＡＲ０_ｉ×δ１２であるからＡＲ_ｉはｍａｘ｛ＡＲ０_ｉ×δ１３，ＡＲ０_ｉ×δ２｝で更新されることになるが、もし、ＡＲ０_ｉ×δ１３＜ＡＲ０_ｉ×δ２であるとすれば、ＡＲ_ｉはＡＲ０_ｉ×δ２で更新される。その後は、ＡＲ_ｉはＡＲ０_ｉ×δ２で更新され続ける。以上のように、本実施例においては、現在の送信可能レートＡＲ_ｉは、ｎ回目の更新まではＡＲ０_ｉ×δ１ｎで更新されるが、ＡＲ０_ｉ×δ１ｎ＜ＡＲ０_ｉ×δ２になった後は、一定値ＡＲ０_ｉ×δ２を保つ。
【００３０】
なお、ここでは５つの組とフローを対応づける例を示したが、（送信元ＩＰアドレス、着信先ＩＰアドレス）の２つの組のみでもよく、管理対象フローをどのように定義するかに依存して管理対象フローに属するパケットの検出法は決まる。
【００３１】
到着したパケットの属するフローが該テーブルにエントリされていない場合は、新たにそのフローｉをエントリする。そのとき、現在の時刻Ｔ_nowをＴ_first_ｉに設定し、ＡＲ_ｉを予め定めた送信可能レートの初期値ＡＲ０_ｉに設定し、Ｂ_ｉを該パケットサイズＳ_pkt_ｉに設定する。既にエントリされている場合は、そのフローに属する最後のパケットが到着した時刻Ｔ_last_ｉと現在の時刻Ｔ_nowを比較し、Ｔ_now−Ｔ_last_ｉ＞Ｔoutならば、該フローはエントリから削除し、新規フローとして再エントリする。そうでない場合は、既にエントリされているフローからのパケットとみなしＴ_last_ｉ←Ｔ_nowに更新する。またＢｉ←ｍａｘ｛Ｂ_ｉ−ＡＲ_ｉ×（Ｔ_now−Ｔ_last_ｉ），０｝により更新してから、Ｂ_ｉと仮想蓄積バイト数に関するしきい値Ｂ_ｔｈを比較し、Ｂ_ｉ≦Ｂ_ｔｈならば、該パケットのサイズＳ_pktを用いてＢ_ｉ←Ｂ_ｉ＋Ｓ_pkt_ｉにより更新する。Ｂ_ｉ＞Ｂ_ｔｈならば、違反タギング部にその旨を通知する。
【００３２】
通知を受けた違反タギング部３３は該パケットヘッダにタギングし（タグを付し）、パケット転送部３４にパケットを転送する。パケット転送部３４は、パケットを内部ノード４ヘ転送する。
【００３３】
内部ノード４は、図４に示すようにパケットヘッダ解析部４１、パケット廃棄決定部４２、キュー長監視部４３、パケット転送部４４、タグなしパケット統計情報蓄積部４５を備える。図４の内部ノード４では、出力リンク毎に以下に示す機能を有する。境界ノードから到着したパケットは、パケットヘッダ解析部４１において該パケットヘッダを読み出し、タギングされているかどうかを調べる。また該パケットはパケット廃棄決定部４２へ転送する。
【００３４】
もしタギングされていたら、キュー長監視部４３からリンクヘの出力待ちバッファにおいてバッファ内キュー長Ｑを読み出し、その値をパケット廃棄決定部４２へ通知する。パケット廃棄決定部４２では、Ｑの値を廃棄確率決定関数ｆ（Ｑ）に代入して、廃棄確率ｐ＝ｆ（Ｑ）を計算する。ここで、廃棄確率決定関数ｆ（Ｑ）はＱに関して単調非減少な関数で、０≦ｆ（Ｑ）≦１であればよいが、本実施例においては、廃棄確率決定関数ｆ（Ｑ）は、
【００３５】
【数１】
2005217823.tif 000003
で与えられる。ここで、Ｑ_th_min、Ｑ_th_max、γは予め定めるしきい値、あるいはパラメータであり、Ｑ_th_min＜Ｑ_th_maxである。上記の式において、ｉｆの右側の式が成り立つ場合、廃棄確率決定関数ｆ（Ｑ）はｉｆの左側に示した数値または式である。すなわち、Ｑ≦Ｑ_th_minの場合はｆ（Ｑ）＝０であり、Ｑ_th_min＜Ｑ≦Ｑ_th_maxの場合はｆ（Ｑ）＝（Ｑ−Ｑ_th_min）／（Ｑ_th_max−Ｑ_th_min）×γであり、Ｑ＞Ｑ_th_maxの場合はｆ（Ｑ）＝１である。
【００３６】
なお、この方法は、例として、非特許文献６で示されているパケット廃棄方法を用いているが、他の方法でもよい。計算された廃棄確率ｐに基づいて、パケットを廃棄するか否かを決定し、到着したパケットを廃棄すると決定した場合は該パケットを廃棄し、到着したパケットを廃棄しないと決定されれば、該パケットをパケット転送部４４に転送する。パケット転送部４４ではリンク出力待ちバッファを持ち、受信したパケットをバッファに格納する。もしバッファが一杯であれば、受信したパケットはそこで廃棄される。バッファにパケットが格納できたら、パケットを受け付けた旨をキュー長監視部４３に通知する。キュー長監視部４３は、パケット受け付けの通知を受け取ったら、Ｑ←Ｑ＋１により更新する。パケット転送部４４は、出力リンク帯域に従ってパケットを送出する。パケットを送出したら、キュー長監視部４３にその旨を通知し、それを受け取ったキュー長監視部４３はＱ←Ｑ−１により更新する。
【００３７】
また、パケット廃棄決定部４２では、タグなしパケットが到着する毎に、その旨をタグなしパケット統計情報監視部４５に通知する。タグなしパケット統計情報監視部４５は、タグなしパケット到着毎に、タグなしパケット到着バイト数Ｂｙｔｅ_nontag←Ｂｙｔｅ_nontag＋Ｓ_pkt（Ｓ_pktは該パケットサイズ）、およびタグなしパケット到着数Ａｒｒｉｖａｌ_nontag←Ａｒｒｉｖａｌ_nontag＋１により更新する。
【００３８】
パケット転送部４４では、タグなしパケットがバッファ一杯のために廃棄されたらその旨をタグなしパケット統計情報監視部４５に通知する。タグなしパケット統計情報監視部４５は、タグなしパケット廃棄数Ｌｏｓｓ_nontag←Ｌｏｓｓ_nontag＋１によりカウントアップする。一定時間Ｔ_ｓｔａｔ（例えば５分）経過したら、タグなしパケット到着レートをＡ_nontag＝Ｂｙｔｅ_nontag／Ｔ_ｓｔａｔにより計算し、タグなしパケット損失率Ｌ_nontag＝Ｌｏｓｓ_nontag／Ａｒｒｉｖａｌ_nontagにより計算し、各パラメータを０にリセットして、測定を繰り返す。そのようにして得られた統計情報のうち、予め定めた時間帯（例えば１３：００−１７：００の最繁時間帯）の中での例えば最大値を、該リンクｊの統計量として、管理装置５に通知する。
【００３９】
管理装置５は図５に示すように、タグなし統計情報記憶部５１、送信可能レート変更可否判断部５２を備える。図５の管理装置５では、各内部ノード４の各リンクｊから通知されたタグなし統計情報をタグなし統計情報記憶部５１に記憶させる。送信可能レート変更可否判定部５２は、タグなし統計情報記憶部５１からタグなしパケットの出力リンクｊへの到着レートＡ_nontag_ｊ［ｂｐｓ］および該リンク出力待ちバッファでのタグなしパケット損失率Ｌ_nontag_ｊを読み出し、Ａ_nontag_ｊを該リンクの出力帯域Ｃｊ［ｂｐｓ］と比較して、予め定めたパラメータα１としきい値Ｌ_th1に対し、Ａ_nontag_ｊ＞α１×Ｃｊ、または、Ｌ_nontag_ｊ＞Ｌ_th1を満たすリンクｊが存在するならば、各境界ノードで設定されている各フローの送信可能レートの初期値をＡＲ０_ｉ←ＡＲ０_ｉ×β１（β１は予め定めたパラメータで０＜β１＜１）により変更する指示（ＡＲ０_ｉを減少させる指示）を各境界ノード３に通知する。また、送信可能レート変更可否判定部５２は、予め定めたパラメータα２としきい値Ｌ_th2に対し、全てのリンクj（ｊ＝１〜Ｎlink，Ｎlinkは網内のリンク数）においてＡ_nontag_ｊ＜α２×ＣｊかつＬ_nontag_ｊ＜Ｌ_th2が、満たされるならばＡＲ０_ｉ←ＡＲ０_ｉ×β２（β２は予め定めたパラメータでβ２＞１）により変更する指示（ＡＲ０_ｉを増加させる指示）を各境界ノード３に通知する。境界ノード３は指示に従って、送信可能レートの初期値を変更する。
【００４０】
境界ノード３、内部ノード４、管理装置５はコンピュータとプログラムで構成することができる。また、境界ノード３、内部ノード４、管理装置５の一部または全部をハードウェアで構成してもよい。
【実施例２】
【００４１】
図６に実施例２の内部ノード４’を示す。図６に示すように、実施例２の内部ノード４’は図４の実施例１の内部ノード４のキュー長監視部４３の代わりに到着パケットレート測定部４６を備えたものである。
【００４２】
実施例２では、実施例１の内部ノード４においてキュー長監視部４３でキュー長を監視していた代わりに、到着パケットレート測定部４６で一定周期毎に到着パケットレートＡ［ｂｐｓ］を測定し、パケット廃棄決定部４２でタギングされたパケットが到着したら確率ｇ（Ａ）（ｇ（）はＡに関して単調非減少な関数で０＜ｇ（Ａ）≦１）で該パケットを廃棄する。ｇ（Ａ）の例としては、
【００４３】
【数２】
2005217823.tif 000004
である。ただし、ａ１，ａ２，γは予め定めるパラメータであり、Ｃは出力リンク帯域である。上記の式において、ｇ（Ａ）は、ｉｆの右側の式が成り立つ場合にｉｆの左側に示した数値または式となる。すなわち、Ａ≦ａ１×Ｃの場合はｇ（Ａ）＝０であり、ａ１×Ｃ≦Ａ＜ａ２×Ｃの場合はｇ（Ａ）＝（Ａ−ａ１×Ｃ）/（ａ２×Ｃ−ａ１×Ｃ）×γであり、Ａ≧ａ２×Ｃの場合はｇ（Ａ）＝１である。
【００４４】
上記以外の点は実施例１と同様である。
【実施例３】
【００４５】
実施例３は、実施例１において全境界ノードの送信可能レートの初期値を一律に変更する代わりに、境界ノードペアｋのパス上に存在するリンクｊでのタグなし到着レートＡ_nontag_(ｊ，ｋ)とタグなしパケット損失率Ｌ_nontag_(ｊ，ｋ)を用いて、境界ノードペアｋの発側境界ノード変更するものである。
【００４６】
内部ノード４は、境界ノードペアｋのパス上に存在するリンクｊでのタグなし到着レートＡ_nontag_(ｊ，ｋ)および該リンク出力待ちバッファでのタグなしパケット損失率Ｌ_nontag_(ｊ，ｋ)を測定し、Ａ_nontag_(ｊ，ｋ)およびＬ_nontag_(ｊ，ｋ)を管理装置に通知する。
【００４７】
管理装置５は、Ａ_nontag_(ｊ，ｋ)を該リンクの出力帯域Ｃ（ｊ，ｋ）［ｂｐｓ］と比較して、予め定めたパラメータα１としきい値Ｌ_th1に対しＡ_nontag_(ｊ，ｋ)＞α１×Ｃ（ｊ，ｋ）またはＬ_nontag_(ｊ，ｋ)＞Ｌ_th1を満たすリンクｊがパスｋ上に存在するならば、境界ノードペアｋの発側境界ノードで設定されている各フローの送信可能レートの初期値をＡＲ０_ｉ←ＡＲ０_ｉ×β１（β１は予め定めたパラメータで０＜β１＜１）により変更する指示（初期値ＡＲ０_ｉを減少させる指示）を境界ノードペアｋの発側境界ノードに通知し、また、予め定めたパラメータα２としきい値Ｌ_th2に対し、全てのリンクｊ（ｊはパスｋ上に存在するリンク）においてＡ_nontag_(ｊ，ｋ)＜α２×Ｃ（ｊ，ｋ）かつＬ_nontag_(ｊ，ｋ)＜Ｌ_th2が満たされるならば、ＡＲ０_ｉ←ＡＲ０_ｉ×β２（β２は予め定めたパラメータでβ２＞１）により変更する指示（初期値ＡＲ０_ｉを増加させる指示）を境界ノードペアｋの発側境界ノードに通知する。
【００４８】
境界ノードペアｋの発側境界ノードは、管理装置５からの指示に従って送信可能レートの初期値ＡＲ０_ｉを変更する。
上記以外の点は実施例１と同様である。
【実施例４】
【００４９】
実施例４の管理装置は、実施例１の管理装置５においてβ１、β２を予め定めたパラメータとする代わりに、Ａ_nontag_ｊ、Ｃｊ、およびＬ_nontag_ｊ（ｊ＝１〜Ｎlink，Ｎlinkは網内のリンク数）の関数として、β１＝Ｆ１（Ａ_nontag_ｊ，Ｃｊ，Ｌ_nontag_ｊ）、β２＝Ｆ２（Ａ_nontag_ｊ，Ｃｊ，Ｌ_nontag_ｊ）（ただし、関数Ｆ１（）、Ｆ２（）は、Ａ_nontag_ｊに対し単調非増加であり、Ｌ_nontag_ｊに対し単調非増加関数）で与えられるβ１、β２を用いて、実施例１の管理装置５と同様に、各境界ノードで設定されている各フローの送信可能レートの初期値をＡＲ０_ｉ←ＡＲ０_ｉ×β１により変更する（初期値ＡＲ０_ｉを減少させる）指示を各境界ノード３に通知し、また、ＡＲ０_ｉ←ＡＲ０_ｉ×β２により変更する（初期値ＡＲ０_ｉを増加させる）指示を各境界ノード３に通知する。境界ノード３は指示に従って、送信可能レートの初期値ＡＲ０_ｉを変更する。
上記以外の点は実施例１と同様である。
【実施例５】
【００５０】
実施例５の管理装置は、実施例３の管理装置においてβ１、β２を予め定めたパラメータとしていた代わりに、Ａ_nontag_(ｊ，ｋ)、Ｃ（ｊ，ｋ）、およびＬ_nontag_(ｊ，ｋ)（パスｋ上のリンクｊにおける測定値）の関数として、β１＝Ｆ１（Ａ_nontag_(ｊ，ｋ)，Ｃ（ｊ，ｋ），Ｌ_nontag_(ｊ，ｋ)），β２＝Ｆ２（Ａ_nontag_(ｊ，ｋ)，Ｃ（ｊ，ｋ），Ｌ_nontag_(ｊ，ｋ)）（ただし、関数Ｆ１（）、Ｆ２（）は、Ａ_nontag_(ｊ，ｋ)に対し単調非増加であり、Ｌ_nontag_(ｊ，ｋ)に対し単調非増加関数）で与えられるβ１、β２を用いて、実施例３の管理装置と同様に、境界ノードペアｋの発側境界ノードで設定されている各フローの送信可能レートの初期値をＡＲ０_ｉ←ＡＲ０_ｉ×β１により変更する指示（初期値ＡＲ０_ｉを減少させる指示）を境界ノードペアｋの発側境界ノードに通知し、また、ＡＲ０_ｉ←ＡＲ０_ｉ×β２により変更する指示（初期値ＡＲ０_ｉを増加させる指示）を境界ノードペアｋの発側境界ノードに通知する。境界ノードペアｋの発側境界ノードは指示に従って、送信可能レートの初期値ＡＲ０_ｉを変更する。
上記以外の点は実施例３と同様である。
【実施例６】
【００５１】
実施例６の管理装置は、実施例１または実施例３の管理装置において、送信可能レートの初期値をＡＲ０_ｉ←ＡＲ０_ｉ×β１（β１は予め定めたパラメータで０＜β１＜１）により変更する指示（初期値ＡＲ０_ｉを減少させる指示）を境界ノードに通知する代わりに、送信可能レート減少係数δ１の値を、δ１←δ１×β１により減少させる指示を境界ノードに通知する。また、実施例１または実施例３の管理装置において、ＡＲ０_ｉ←ＡＲ０_ｉ×β２（β２は予め定めたパラメータでβ２＞１）により変更する指示（初期値ＡＲ０＿ｉを増加させる）を境界ノード３に通知する代わりに、δ１をδ１←ｍｉｎ｛δ１×β２，δｍａｘ｝（δｍａｘは、０＜δｍａｘ＜１）により増加させる指示を境界ノードに通知する。境界ノードは指示に従って、δ１の値を変更する。
上記以外の点は実施例１と同様である。
【実施例７】
【００５２】
実施例７の境界ノードは、実施例１の境界ノード３においてフロー毎に状態管理を行う代わりに、高レートとなる可能性のあるフロー（例えばポート番号が７７４３あるいは６６９９）のみの状態管理を行い、監視結果に基づいてパケットヘッダにタギングを行う。
上記以外の点は実施例１と同様である。
【００５３】
以上、本発明者によってなされた発明を、前記実施例に基づき具体的に説明したが、本発明は、前記実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
【図面の簡単な説明】
【００５４】
【図１】（Ａ）空間方向のみ考慮した場合と（Ｂ）時間方向も考慮した場合の割当帯域とフローの転送時間の関係を説明する図である。
【図２】本発明が適用されるＩＰネットワークの基本構成の一例を示す構成図である。
【図３】本発明におけるレート制御システムを構成する境界ノードの構成例を示すブロック図である。
【図４】本発明におけるレート制御システムを構成する内部ノードの構成例を示すブロック図である。
【図５】本発明におけるレート制御システムを構成する管理装置の構成例を示すブロック図である。
【図６】本発明の実施例２におけるレート制御システムを構成する内部ノードの構成を示すブロック図である。
【符号の説明】
【００５５】
１…ＩＰネットワーク、２…端末、３…境界ノード、４、４’…内部ノード、５…管理装置、３１…パケットヘッダ解析部、３２…フロー管理部、３３…違反タギング部、３４…パケット転送部、４１…パケットヘッダ解析部、４２…パケット廃棄決定部、４３…キュー長監視部、４４…パケット転送部、４５…タグなしパケット統計情報監視部、４６…到着パケットレート測定部、５１…タグなし統計情報記憶部、５２…送信可能レート変更可否判定部
【図１】
2005217823.tif 000005
【図２】
2005217823.tif 000006
【図３】
2005217823.tif 000007
【図４】
2005217823.tif 000008
【図５】
2005217823.tif 000009
【図６】
2005217823.tif 000010