(57)【要約】ネットワーク内でデータユニットをルーティングする装置及び、ネットワーク内でデータユニットをルーティングする装置を制御する方法であって、装置１がルーティングデバイスにおける１つ以上の輻輳原因を特定可能であり、かつ１つ以上の転送されるデータユニットに輻輳原因情報を設定可能である。
2006513663.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク（３）内のデータユニットをルーティングする装置（１）であって、
前記ネットワークからデータユニットを受信する受信器（１０）と、
前記受信器が受信したデータユニットをバッファするバッファ（１１１）と、
バッファされたデータユニットを、前記データユニットに含まれるルーティング情報に基づいて前記ネットワークへ出力する出力ユニット（１２）と、
前記装置が所定の輻輳条件を満たすか否かを監視する輻輳モニタ（１１０）と、
前記輻輳モニタが前記輻輳条件が満たされていると判定した場合、前記出力ユニットが出力する１つ以上のデータユニットに輻輳通知情報をセットする輻輳通知ユニット（１１０）とを有し、
さらに、
少なくとも２つの異なる輻輳原因を識別可能であり、前記輻輳モニタにより前記輻輳条件が満たされたと判定した１つ以上の原因を特定する輻輳原因特定ユニット（１１０）を有するとともに、
前記輻輳通知ユニットが、前記輻輳原因特定ユニットが特定した前記１つ以上の原因に基づいて、輻輳原因情報を前記輻輳通知情報がセットされている１つ以上のデータユニットにセットするように構成されることを特徴とする装置。
【請求項２】
前記輻輳モニタが、前記装置の１つ以上のリソースの利用率を監視し、前記１つ以上のリソースのうち、少なくとも１つの前記利用率が所定の条件を満たしたならば、前記輻輳条件が満たされたものと判断することを特徴とする請求項１記載の装置。
【請求項３】
前記所定の条件が、所定の閾値の超過であることを特徴とする請求項２記載の装置。
【請求項４】
前記輻輳原因特定ユニットが、前記装置の２つ以上のリソースの利用率を観測し、前記観測された利用率に基づいて前記１つ以上の原因を特定することを特徴とする請求項１乃至請求項３のいずれか１項に記載の装置。
【請求項５】
前記リソースが、バッファ容量とデータユニット処理能力を含むことを特徴とする請求項２乃至請求項４のいずれか１項に記載の装置。
【請求項６】
前記リソースが１つ以上の第１のリソースと、１つ以上の第２のリソースとにグループ化され、前記輻輳原因特定ユニットが、前記第１のリソースの前記利用率に基づいて第１の原因を特定し、前記第２のリソースの前記利用率に基づいて第２の原因を特定するように構成されることを特徴とする請求項４又は請求項５に記載の装置。
【請求項７】
前記第１のリソースが、
−前記受信器による受信に応答してデータユニットをバッファするため、前記受信器に関連付けされたバッファ容量と、
−前記受信器から前記出力ユニットへのデータユニット転送を制御するための処理能力
の少なくとも一方を含み、
前記第２のリソースが、
−出力するデータユニットをバッファするために前記出力ユニットに関連付けされたバッファ容量と、
−前記出力ユニットからのデータユニット出力を制御するための処理能力
の少なくとも一方を含むことを特徴とする、請求項６記載の装置。
【請求項８】
ネットワーク内のデータユニットをルーティングする装置を制御する方法であって、
前記ネットワークからデータユニットを受信するステップと、
前記受信器が受信したデータユニットをバッファするステップと、
バッファされたデータユニットを、前記データユニットに含まれるルーティング情報に基づいて前記ネットワークへ出力するステップと、
所定の輻輳条件が満たされているか否かを監視するステップと、
前記輻輳条件が満たされている場合、出力される１つ以上のデータユニットに輻輳通知情報をセットするステップとを有し、
さらに、
前記輻輳条件が満たされていると判定された１つ以上の原因を特定するステップ（Ｓ２２）と、
前記特定した１つ以上の原因に基づいて、輻輳原因情報を、輻輳通知情報がセットされている１つ以上のデータユニットにセットするステップ（Ｓ２３）とを有することを特徴とする方法。
【請求項９】
前記装置の１つ以上のリソースの利用率が監視され、前記１つ以上のリソースのうち、少なくとも１つの前記利用率が所定の条件を満たした場合に前記輻輳条件が満たされたと判断されることを特徴とする請求項８記載の方法。
【請求項１０】
前記所定の条件が、所定の閾値の超過であることを特徴とする請求項９記載の方法。
【請求項１１】
前記装置の２つ以上のリソースの前記利用率が観測され、前記観測された前記利用率に基づいて前記１つ以上の原因を特定されることを特徴とする請求項８乃至請求項１０のいずれか１項に記載の方法。
【請求項１２】
前記リソースが、バッファ容量とデータユニット処理能力を含むことを特徴とする請求項９乃至請求項１１のいずれか１項に記載の方法。
【請求項１３】
前記リソースが１つ以上の第１のリソースと、１つ以上の第２のリソースとにグループ化され、第１の原因が前記第１のリソースの前記利用率に基づいて特定され、第２の原因が前記第２のリソースの前記利用率に基づいて特定されることを特徴とする請求項１１又は請求項１２に記載の方法。
【請求項１４】
前記第１のリソースが、
−前記受信器による受信に応答してデータユニットをバッファするため、前記受信器に関連付けされたバッファ容量と、
−前記受信器から前記出力ユニットへのデータユニット転送を制御するための処理能力
の少なくとも一方を含み、
前記第２のリソースが、
−出力するデータユニットをバッファするために前記出力ユニットに関連付けされたバッファ容量と、
−前記出力ユニットからのデータユニット出力を制御するための処理能力の少なくとも一方を含むことを特徴とする、請求項１３記載の方法。
【請求項１５】
ネットワーク中のデータユニットをルーティングする装置で動作させた際に、請求項８乃至請求項１４のいずれか１項に記載の方法を実行するコンピュータプログラム。
【請求項１６】
請求項１５に記載のコンピュータプログラムを格納するデータ記録媒体。
【請求項１７】
ネットワーク（３）を介して受信側通信装置（３２）へデータユニットを送信する通信装置（３１）であり、
前記受信側データ通信装置から、送信済みデータユニットの受領に関する受領情報及び前記ネットワークにおける輻輳に関する輻輳通知情報とを含む受領確認メッセージを受信し、
前記受領確認メッセージに対し、前記受領確認メッセージに含まれる前記情報に従ってデータユニットの送信を制御する動作を適合させることにより対応するように構成されるとともに、
前記受領確認メッセージに含まれる輻輳原因情報を抽出し、前記データユニットの送信を制御する動作を前記輻輳原因情報に従って適合させるように構成されることを特徴とする通信装置。
【請求項１８】
前記輻輳原因情報は、受領確認メッセージ中の前記輻輳原因情報がｎ（ｎは整数）の異なる輻輳原因の存在有無を通知可能なように、かつ個々の受領確認メッセージが２ｎの異なる輻輳原因の組み合わせの１つを含むように指定され、前記送信する通信装置が、受領確認メッセージ中に含まれる前記輻輳原因の組み合わせを特定し、当該特定された輻輳原因の組み合わせに対応する対処手順を実行するように構成されることを特徴とする請求項１７記載の装置。
【請求項１９】
前記送信する通信装置が、少なくとも第１及び第２の輻輳原因情報を抽出するように構成され、前記第１の輻輳原因情報は、送信される数のデータユニットを処理できないことに帰因した輻輳に関するものであり、前記第２の輻輳原因情報は、送信される量のデータを処理できないことに帰因した輻輳に関するものであるとともに、
前記送信する通信装置が、前記第１の輻輳原因情報の抽出に対しては単位時間当たりに出力するデータユニット数を削減することによって、また前記第２の輻輳原因情報の抽出に対しては単位時間当たりに出力するデータ量を削減することによって対応するように構成されることを特徴とする請求項１７又は請求項１８記載の装置。
【請求項２０】
ネットワークを介して受信側通信装置へデータユニットを送信する送信側通信装置を制御する方法であって、
前記受信側データ通信装置から、送信済みデータユニットの受領に関する受領情報及び前記ネットワークにおける輻輳に関する輻輳通知情報とを含む受領確認メッセージを受信するステップと、
前記受領確認メッセージに対し、前記受領確認メッセージに含まれる前記情報に従ってデータユニットの送信を制御する動作を適合させることにより対応するステップとを含み、
前記送信側通信装置において、前記受領確認メッセージに含まれる輻輳原因情報を抽出するステップ（Ｓ６２）と、
前記データユニットの送信を制御する動作を前記輻輳原因情報に従って適合させるステップ（Ｓ６３）とをさらに有することを特徴とする方法。
【請求項２１】
前記輻輳原因情報は、受領確認メッセージ中の前記輻輳原因情報がｎ（ｎは整数）の異なる輻輳原因の存在有無を通知可能なように、かつ個々の受領確認メッセージが２ｎの異なる輻輳原因の組み合わせの１つを含むように指定され、前記方法が、受領確認メッセージ中に含まれる前記輻輳原因の組み合わせを特定するステップと、当該特定された輻輳原因の組み合わせに対応する対処手順を実行するステップとを更に有することを特徴とする請求項２０記載の方法。
【請求項２２】
前記送信側通信装置が、少なくとも第１及び第２の輻輳原因情報を抽出するように構成され、前記第１の輻輳原因情報は、送信される数のデータユニットを処理できないことに帰因した輻輳に関するものであり、前記第２の輻輳原因情報は、送信される量のデータを処理できないことに帰因した輻輳に関するものであるとともに、
前記方法が、前記第１の輻輳原因情報の抽出に対し、単位時間当たりに出力するデータユニット数を削減することによって対応するステップと、前記第２の輻輳原因情報の抽出に対し、単位時間当たりに出力するデータ量を削減することによって対応するステップとをさらに有することを特徴とする請求項２０又は請求項２１記載の方法。
【請求項２３】
ネットワークを介してデータユニットを送信する装置で動作させた際に、請求項２０乃至請求項２２のいずれか１項に記載の方法を実行するコンピュータプログラム。
【請求項２４】
請求項２３に記載のコンピュータプログラムを格納するデータ記録媒体。
【請求項２５】
ネットワーク（３）を介してデータユニットを送信する方法であって、
前記ネットワークに接続された送信側通信装置（３１）から、前記ネットワークへデータユニットを送信するステップと、
前記ネットワークの１つ以上のルーティングデバイス（３３−４４）中の前記データユニットを、前記ネットワークに接続された受信側通信装置（３２）へ転送するステップであり、
各ルーティングデバイスが前記ネットワークから受信したデータユニットをバッファし、バッファされたデータユニットを前記データユニットに含まれるルーティング情報に基づいて前記ネットワークへ出力し、所定の輻輳条件が満たされているかどうかを監視し、前記輻輳条件が満たされている場合には１つ以上の出力データユニットに輻輳通知情報をセットし、前記輻輳条件が満たされたことの１つ以上の原因を特定し、前記１つ以上の特定された原因に基づいて、前記輻輳通知情報がセットされている前記１つ以上のデータユニットに輻輳原因情報をセットする各ステップを含むステップと、前記転送されたデータユニットを前記受信側通信装置で受信するステップであり、前記受信側通信装置が前記ネットワークへ、前記転送されたデータユニットとの受領に関する受領情報並びに、前記１つ以上のルータが前記転送されたデータユニットにセットした輻輳通知情報及び輻輳原因情報とを含む受領確認メッセージを送信するステップを含むステップと、
前記受領確認メッセージを前記ネットワークを通じて前記送信側通信装置に転送するステップと、
前記受領確認メッセージを前記受信側通信装置で受信し、前記受領確認メッセージに含まれる前記情報に従って、データユニットの送信を制御する動作を適合させることにより、前記受領確認メッセージに対応するステップであり、
前記送信側通信装置において、前記受領確認メッセージに含まれる前記輻輳原因情報を抽出し、前記抽出された前記輻輳原因情報に従って、前記データユニットの送信を制御する前記動作を適合させるステップを含むステップ、
とを有することを特徴とする方法。
【発明の詳細な説明】
【背景技術】
【０００１】
データユニットベースの通信ネットワークは広く知られている。データユニットベースの通信ネットワークの一例はいわゆるインターネットである。データユニットベースの通信において、送信側は送信データを複数の部分に分割し、これら部分をデータユニットに収納して、データユニットをネットワークへ送信する。データユニットは使用される通信プロトコルによって規定される構成を有し、かつ、ネットワークが各データユニットを所望の宛先、すなわち、送信側がそのデータの送信を所望する受信側へ転送可能なように、アドレス又はルーティング情報を含む。これは当技術分野において周知であるため、これ以上の詳細は説明しない。
【０００２】
様々な既知の通信プロトコルにおいては、このようなデータユニットはパケット、フレーム、セグメント、プロトコルデータユニット（ＰＤＵ）等と呼ばれることもある。
本明細書及び特許請求の範囲において、”データユニット”という単語は、データユニット単位の通信ネットワークにおいて伝送に用いられる、そのような任意のデータ構成を総称するために用いられる。
【０００３】
通信ネットワークは一般に、複数のデータユニットを受信し、各データユニットに含まれるアドレス又はルーティング情報に従ってそれらを転送するように構成された複数のデバイスを有する。このようなデバイスは、ネットワークの形式及び用いられる通信プロトコルに応じて、ルータ、スイッチ等といった様々な名称を有する。本明細書及び特許請求の範囲において用いられる”ルーティングデバイス”又は”転送デバイス”という単語は、データユニットに含まれるルーティング又はアドレス情報に従って、そのデータユニットを受信し、転送する能力を有する任意のデバイスを総称するために用いられる。
【０００４】
そのような、データに基づく通信ネットワーク内において、輻輳という現象がよく知られている。輻輳は、データユニットの転送デバイスが、データユニットの過負荷に見舞われ、受信したデータユニットと同数のデータユニットを送信できないことを意味する。データ転送デバイスは通常、転送するデータユニットをバッファリングするためのバッファを有している。バッファのオーバフローは、輻輳発生原因の一例である。
【０００５】
既に述べたように、インターネットはデータユニットベースの通信ネットワークの一例である。インターネットにおいてデータユニットの伝送を規定するプロトコルはいわゆるトランスミッションコントロールプロトコル（ＴＣＰ）及びインターネットプロトコル（ＩＰ）であり、これらを併せてＴＣＰ／ＩＰと呼ぶ。ＴＣＰ／ＩＰによって管理される通信において、送信側はネットワークを介して受信側にデータユニットを送信し、受信側は送信されたデータユニットの受領に関する受領確認メッセージを返送する。これら受領確認メッセージに基づき、送信側はその制御手順を適応させることができる。
【０００６】
例えば、送信側がスライディングウィンドウベースの手法に従ってフロー制御を行う場合、ウィンドウの大きさ及び移動は、受信した受領確認メッセージに従って調整される。別の例として、送信側がレートベースのフロー制御を行っている場合、そのレートが受信した受領確認メッセージに基づいて調整される。
【０００７】
ＴＣＰ／ＩＰベースのネットワークは、その基本的な設計として、輻輳の送信側に、ルーティングデバイスがデータユニットを破棄(drop)したことを間接的な手段により通知する。換言すれば、ある特定のルーティングデバイスがバッファ過負荷に見舞われると、過剰なデータユニットが破棄される。これは、破棄されたデータユニットが受信側には絶対に到達しないことを意味する。
【０００８】
そのため、対応する受領確認メッセージ（又はその欠如）により、送信側はデータユニットの損失を知ることができる。ＴＣＰによれば、その後送信側は、対応する応答手順、例えばスロースタート(slow-start)として知られる方法を実行する。これらの応答手順は、よく知られたものであるため、これ以上の説明は不要である。
【０００９】
ＴＣＰ／ＩＰネットワークにおける輻輳に対処する改良された機構の１つとして、ＲＦＣ３１６８は明示的輻輳通知（ＥＣＮ）のコンセプトを提案する。ＥＣＮの基本的なアイデアは、転送されるデータユニットに明示的なマークを追加することにより、ネットワーク中のルーティングデバイスに、輻輳を送信側に通知させるものである。このような輻輳通知は、送信側から受信側へ送信されるデータユニット及び、受信側から送信側に送信される受領確認メッセージの少なくとも一方に加えることができることが理解されよう。マークされたデータユニットが順方向（送信側から受信側）に送信されるとすると、輻輳通知はそのデータユニットに対応する受領確認メッセージにおいても反映される。輻輳通知情報セットとともにデータユニットが送信側に到達すると、送信側は予め定められた手順に従って対処する。ＲＦＣ３１６８において、ＩＰヘッダ中のＥＣＮフィールドは２ビットで指定され、４つの、所謂ＥＣＮコードポイント（００，０１，１０及び１１）を規定する。１０及び０１は、エンドポイント（送信側及び受信側）がＥＣＮに対応していることを示す。００はＥＣＮが使用されていないことを示す。１１は、輻輳をエンドノードに通知するため、所謂ＣＥ（輻輳検出）コードポイントとしてルーティングデバイスがセットする情報である。
【００１０】
［本願の目的］
本願の目的は、データユニットベースの通信において、輻輳に対処する改良されたコンセプトを提供することにある。なお、上述の説明ではＴＣＰ／ＩＰを一例として述べたが、本願の目的は、ある種の輻輳通知が用いられる任意のデータユニットベースの通信システムに対して適用可能である。
【発明の開示】
【課題を解決するための手段】
【００１１】
上述の目的は、独立請求項に記載される構成により達成される。好適な実施形態は従属項に記述される。
【００１２】
本発明の一見地によれば、輻輳が発生した場合、転送されるデータユニットに輻輳原因情報（輻輳の本質を特定する情報）を追加できるよう、データユニットをルーティングするためのデバイスが輻輳の１つ以上の原因を特定可能であることを特徴とする、データユニットをルーティングするためのデバイス及びその制御方法が提供される。
【００１３】
すなわち、従来技術は輻輳の存在有無を通知することのみを教示していたが、本発明では少なくとも２つの異なる輻輳原因を識別すること及び、原因に対応する輻輳原因情報を、転送されるデータユニットに付加することを提案する。これにより、通信の送信側及び受信側が、輻輳の存在だけでなく、その１つ以上の原因、すなわち発生している輻輳の本質をも理解することを可能にする。
【００１４】
従って、第２の見地によれば、本発明はデータユニットを送信するための通信装置及びその制御方法に関し、送信装置が、輻輳原因情報に従ってデータユニットの送信を制御する動作を適合させるため、ネットワークから受信したメッセージ中に含まれる、輻輳原因情報を抽出するように構成される。
【００１５】
なお、輻輳原因情報は任意の好適な方法又は所望の方法により提供されうる点に留意されたい。例えば、輻輳原因情報は、ｎ個の輻輳原因の存在有無を識別するため、ｎビット（ｎ＞２）であってよい。明示的輻輳通知及び輻輳原因情報のコンセプトは、輻輳原因情報自体がまた輻輳通知情報として機能する方法や、それら別個とする方法により、組み合わせることができる。後者の場合、データユニット中の１つ以上の指定ビットが、輻輳通知情報として機能し、他の指定ビットが輻輳原因情報として機能する。また、前者の場合、同一の指定ビットセットが、輻輳通知情報及び輻輳原因情報の両方として機能する。
【００１６】
本発明のコンセプトを用いることで、輻輳への対応をその原因に応じて具体的に調整することができ、これは従来技術に対して大幅な改善である。換言すれば、従来技術は単に通信の送信側及び受信側に輻輳の存在を知らせるだけであったが、本発明はさらに送信側及び受信側に輻輳の原因を知らせる。そのため、送信側は１つ以上の特定される原因に特に対処するために設計された特定の対策を講じることが可能になる。
【００１７】
例えば、ルーティングデバイスが２つの異なる輻輳原因、処理制限(processing limitation)及び帯域制限(bandwidth limitation)を識別可能に構成されているとする。処理制限は、ルーティングデバイスが、時間単位当たりの到来パケット数の処理に問題を有している状況を示す。換言すれば、ルーティングデバイスが、単位時間当たりに到来するデータユニット数を処理するのに十分な性能を有しないため、データユニットがバッファに累積していることを示す。帯域制限は、単位時間当たりに転送されるべき量のデータを処理するに際して、１つ以上の出力リンクが問題を有している状況を示す。換言すれば、１つ以上の出力リンクの帯域が、帯域制限は、単位時間当たりに転送されるべき量のデータを処理するのに不足しているということである。
【００１８】
従来のシステムでは、ルーティングデバイスは、通信のエンドポイントに輻輳が発生していることを通知する輻輳検出（ＣＥ）ビットをセットすることのみは可能であったであろう。しかし、おそらく原因に関する情報はなかった。それと対照的に、本発明のコンセプトは、ルーティングデバイスが輻輳原因情報、例えば処理制限が起こっているのか、帯域制限が起こっているのか、或いはその両方が起こっているのかを示す情報を付加することを可能にする。このような情報に基づいて、データユニットの送信側は、遙かに適切に対応することができる。
【００１９】
この点について、例に基づいて説明する。送信側における、例えばボイスオーバＩＰ（ＶｏＩＰ）のようなデータレートベースのアプリケーションを想定したとすると、処理制限と帯域制限とで異なる対処を行なうために有用である。つまり、処理制限への対処では、パケットサイズを増加して、送信側から単位時間当たりに出力されるデータユニット数を削減することが好ましいが、帯域制限への対処においては、単位時間当たりに出力されるデータユニット数は維持しながら、総データ量、すなわちデータレートを削減することが好ましい。帯域制限及び処理制限の両方が発生した場合、送信側は単位時間当たりのデータユニット数削減と、単位時間当たりに送信する総データ量削減の両方を同時に行なうことにより対処することが可能である。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施形態を図面を参照して説明する。
以下の本発明の好ましい実施形態においては、一例としてＴＣＰ／ＩＰに関して言及している箇所があるが、本発明は決してＴＣＰ／ＩＰに限定されず、輻輳通知が用いられる任意のデータユニットベースの通信に関連して適用可能である。従って、本明細書及び特許請求の範囲における“輻輳通知”とは一般的な意味で用いられており、ＲＦＣ３１６８に規定されるＥＣＮに限定して解釈されるべきものではない。
【００２１】
図１は、本発明の一実施形態に係る、ネットワーク内でデータユニットをルーティングするための装置を示す図である。ルーティングデバイスは１で示される。ルーティングデバイス１は、自身が一部を構成するネットワークへのコネクションを表すライン２０，２１，２２，２３，２４，２５に接続される。ライン２０〜２５は単なる例であり、ルーティングデバイスは自ネットワークへの任意の数のコネクションを有しうる。これらのコネクションは、物理的なものであっても、論理的なものであっても、その両方であっても良い。１０はネットワークからデータユニットを受信する受信器、１２はネットワークへデータユニットを出力する出力ユニットである。ルーティングデバイス１はさらに、バッファ１１１及び制御ユニット１１０を備える処理部１１を有する。制御ユニット１１０はルーティングデバイス１の動作を制御するように構成されている。この目的に照らし、制御ユニット１１０は、ハードウェア、ソフトウェア又はハードウェア及びソフトウェアの任意の適切な組み合わせからなる制御エレメントを有するであろう。
【００２２】
バッファ１１１は受信器１０が受信したデータユニットをバッファするように構成される。出力ユニット１０は、バッファされたデータユニットを、転送されるデータユニットに含まれるルーティング情報に基づいてネットワークへ出力する。
【００２３】
受信器１０におけるデータユニットの受信、バッファ１１１におけるデータユニットのバッファ及び出力ユニット１２を介したデータユニットの出力の制御に加え、制御ユニット１１０は、ルーティングデバイス１が所定の輻輳条件を満たすかどうかを監視するための輻輳モニタ（例えば、制御ユニット１１０により実行される適切なコンピュータプログラム又はソフトウェア要素）を備える。制御ユニット（コントローラ）１１０は、さらに、上述の輻輳モニタが輻輳条件を満たすと判断した場合に、出力ユニット１２が出力する１つ以上のデータユニットに輻輳通知情報をセットするための輻輳通知ユニット（例えばコントローラ１１０で実行される適切なソフトウェア要素）を有する。
【００２４】
輻輳モニタにより監視される特定の輻輳条件は、好適なもの又は望ましいものを選択することができる。例えば、ルーティングデバイス１の１つ以上のリソースのうち、少なくとも１つの利用率が所定の条件を満たしたならば、輻輳条件が満たされたものと判断することができる。また、所定の閾値を超えることが、条件を満足したことであっても良い。輻輳状況が生じたかどうかを判断するために監視可能なリソースの例としては、バッファ容量及びデータユニット処理能力がある。例えば、バッファ１１１内のデータ量が所定の閾値を超えたならば、輻輳状況が発生したものと判定することができる。この場合、所定の閾値は、輻輳を示す任意の方法で調整を行なうことが可能であり、すなわち、バッファ１１１のオーバフロー限界よりも小さくしても良い。実際、バッファオーバフローよりも前に輻輳通知が生じることで、バッファオーバフローも一緒に回避されるであろから、閾値はオーバフロー限界よりも低く選択した方がよい。
【００２５】
バッファ利用率の監視に加え、或いはその代わりとして監視可能な他のリソースとしては、制御ユニット１１０が受信器と出力ユニットの間の転送においてデータユニットを処理するために用いる処理能力の量がある。例えば、コントローラ１１０がプロセッサであれば、処理能力の利用率を観測するために、データユニットの処理に割り当てられるプロセッサタイムの総量を監視することが可能である。
【００２６】
図１に示す実施形態では、ルーティングデバイス１が図２に示す手順を実施するように構成されている。すなわち、制御ユニット１１０は、輻輳モニタが輻輳条件が満たされたことを検出した１つ以上の原因を特定するため、少なくとも２つの異なる輻輳原因を識別可能な輻輳原因特定ユニットを（例えば制御ユニット１１０で実行されるソフトウェアプログラムの形態で）有する。
【００２７】
図２において、これは制御動作全体のフロー（図２の左側に垂直な点線で示されている）のうちのステップＳ２１として示されており、ここで所定の輻輳条件が満たされているかどうかを判定する。もし輻輳条件が満たされていなければ、通常の制御ルーチン（本発明の主眼ではない）が継続される。しかし、ステップＳ２１において、輻輳条件が満たされていると判定されたならば、手順はステップＳ２２へ分岐し、そこで輻輳原因特定ユニットが輻輳の原因を特定する。
【００２８】
さらに、輻輳通知ユニットが、図２に示すステップＳ２３を実行するように構成されている。つまり、輻輳原因特定ユニットがステップＳ２２で特定した１つ以上の原因に基づき、輻輳原因情報をセットする。この情報は、輻輳通知情報がセットされる１つ以上のデータユニットにセットされる。
【００２９】
なお、ルーティングデバイス１は、例えばデータユニットにセット可能な輻輳原因の各々に対して１つの輻輳通知ユニットを持つといったように、複数の輻輳通知ユニットを有することが可能である。例えば、処理制限を示すビットをセットする輻輳通知ユニットと、帯域制限を示すビットをセットする輻輳通知ユニットが存在して良い。
【００３０】
輻輳通知及び輻輳原因情報は、所望の、或いは好適な任意のデータユニットにセットすることができる。例えば、これらの情報は指定された送信元情報（送信者を示す）又は指定された宛先情報（受信者を示す）を含むデータユニットだけにセットすることができる。好ましくは、輻輳条件が満たされている限り、出力ユニット１２から出力される全てのデータユニットに輻輳原因情報がセットされる。
【００３１】
ステップＳ２２を実行するように操作される輻輳原因特定ユニットは、少なくとも２つの異なる輻輳原因を識別する能力を有する。ステップＳ２３でセットされる輻輳原因情報は、この少なくとも２つの異なる輻輳原因のうち、０、１又は２つが存在することの指標を提供する。
【００３２】
輻輳原因特定ユニットは好適な、或いは所望の任意の方法で動作することが可能である。例えば、異なる輻輳原因を識別し、その原因を特定するための機構は、ルーティングデバイス１の２つ以上のリソースの利用率の観測と、観測された利用率に基づく１つ以上の原因の特定によって達成できる。上述の例と同様、観測されるリソースは、例えばバッファ容量及びデータ処理能力であってよい。なお、複数のバッファ容量及び複数のデータユニット処理能力を観測することができる。例えば、ルーティングデバイス１を、受信器による受信に応答してデータユニットをバッファするため、受信器に関連付けられているバッファ容量を観測したり、出力するデータユニットをバッファするために出力ユニットに関連付けられたバッファ容量を観測したりするように構成することができる。これらのバッファ容量は、両方を１つの物理的なバッファ（例えば図１に示すバッファ１１１）から得ることが可能であるが、複数の物理的なバッファ、例えば受信器１０に設けられる１つのバッファと、出力ユニット１２に設けられるいくつかの出力バッファとから得ることも可能である。例えば、個々の出力ライン２３〜２５がそれぞれの出力バッファを有しても良い。或いは、これらのバッファ容量を、バッファ１１１が論理的に管理する個別の論理キュー、例えば受信器１０に関する入力キュー及び出力ユニット１２に関する複数の出力キューによって表しても良い。
【００３３】
監視可能な複数の処理能力としては、例えば受信器から出力ユニットへのデータユニット転送を制御するための処理能力や、出力ユニット１２からのデータユニット出力を制御するための処理能力であってよい。この処理能力は、例えば、一般に所望の制御機能を提供するために所定のソフトウェアを実行するプロセッサである、制御ユニット１１０から得ることが可能である。従って、処理能力の利用は、例えば個々のタスクに割り当てられたプロセッサ能力の量を監視することによって監視可能である。つまり、受信器１０から出力ユニット１２へのデータユニット転送を制御するための処理能力は、この転送を制御するために使用されたプロセッサ時間の量を観測することにより監視可能である。また、出力ユニット１２からのデータユニット出力を制御するための処理能力は、出力ユニット１２から出力ライン２３〜２５へのデータユニット出力を制御するために使用されたプロセッサ時間の量を観測することにより監視可能である。
【００３４】
上述したとおり、輻輳原因特定ユニットはルーティングデバイス１の２つ以上のリソースの利用率を観測することにより、輻輳の異なる原因を識別することが可能である。この識別は、好ましくは、リソースを１つ以上の第１のリソースと、１つ以上の第２のリソースとにグループ化し、輻輳原因特定ユニットを、第１のリソースの利用率に基づいて第１の原因を特定し、第２のリソースの利用率に基づいて第２の原因を特定するように構成することにより実現できる。例えば、第１のリソースは受信器１０に関するバッファ容量であってよく、この入力バッファ容量の利用率（例えば、入力バッファ中データ量）が観測される。そして、入力バッファ中のデータ量が処理の閾値を超えている場合には、処理制限が第１の原因として判定される。第２のリソースとして、個々の出力ライン２３〜２５に出力されるデータユニットのバッファリングに関連した１つ以上の出力バッファ容量を監視することが可能であり、これら出力バッファ容量の１つ以上が、所定の閾値を超えて使用された場合、帯域制限が第２の輻輳原因として特定可能である。
【００３５】
図１の例に関し、要素１０を受信器又は受信エンティティとして、また要素１２を出力ユニット又は出力エンティティとして説明した。しかし、これは説明をわかりやすくする目的によるものであり、一般には、ルーティングデバイスは、エンティティ１０が転送されるべきデータユニットを出力する能力をも有し、また同時にエンティティ１２がネットワークからデータユニットを受信する能力を有するように構成されるであろう。さらに、バッファ１１１及び制御ユニット１１０もまた、エンティティ１０に接続されるラインから受信されたデータユニットを、エンティティ１０に同様に接続されている別のラインへ転送する制御や、あるラインからエンティティ１２で受信したデータユニットを、エンティティ１２に接続される他のラインへ転送する制御をも行なうように構成されるであろう。このようにして、ルーティングデバイスは、複数のネットワークコネクションが接続された１つの受信／出力ユニットを有するものとして構成することが可能である。そして、バッファ及び制御ユニットは、（入力リンクとして振る舞う）１つのネットワークコネクションから、（出力リンクとして振る舞う）他のネットワークコネクションへの、データユニットの移動及び転送を制御するため、この入力／出力ユニットに接続される。このような実施形態において、受信器１０及び出力ユニット１２は１つの物理的エンティティである。
【００３６】
データユニットへの輻輳原因情報のセットは、任意の好適な方法、或いは所望の方法により実施することができる。例えば、データユニットの指定部分（例えばヘッダ）に、所定のビットセットを輻輳原因情報の伝送用に予約しておくことができる。これは、データユニットを示す図４において模式的に示されている。データユニットは、データユニットの開始と終了を明確にするデリミタ５１及び５２を有している。また、５６はヘッダを、５７はペイロードをそれぞれ表している。ヘッダ５６は、セクション５３はデータユニットのタイプを示し、セクション５４はこのデータユニットをルーティングするためのルーティング情報を含み、セクション５５はエラー訂正情報（例えば巡回冗長検査データ）のような様々な制御情報を含むといったように、例えば特定の情報を有する様々なセクションに分割することが可能である。
【００３７】
図４の例において、データユニットの制御セクション５５はさらに、輻輳制御情報がセットされる指定セクション５５０を有している。単純なケースでは、輻輳原因情報は２ビットで構成することができる。この構成では４通りの組み合わせが得られ、第１の組み合わせ（例えば００）は輻輳無し、第２の組み合わせ（例えば１０）は第１の輻輳原因が存在、第３の組み合わせ（例えば０１）は第２の輻輳原因が存在、第４の組み合わせ（例えば１１）は第１及び第２の輻輳原因の両方が存在することを示す。もちろん、輻輳原因情報は、輻輳原因の２ｎ個の組み合わせを提供するため、任意数であるｎのビットを含みうる。
【００３８】
なお、図４に模式的に示したデータユニットは単なる一例であり、例えばヘッダに代えて、或いは追加してトレーラを用いるなど、他のデータ構成もあり得る。
【００３９】
既に述べたように、輻輳原因情報は輻輳通知情報と構造上同一であって良い。これは上述の例で示されており、００が輻輳なしを、他の組み合わせが輻輳を表している。さらに、輻輳原因情報を輻輳通知情報の付加情報として実装することも十分あり得る。例えば、ＴＣＰ／ＩＰを用いる場合、ＲＦＣ３１６８に規定されるＥＣＮメカニズムは維持しながら、追加の輻輳原因情報を搬送する追加ビットセットを単に規定することが可能である。輻輳通知情報と輻輳原因情報とを別個とすることの利点は、輻輳通知情報の処理能力はあるが、輻輳原因情報の処理能力を持たないようなシステムとの下位互換性が得られることである。
【００４０】
次に、本発明の別の見地、すなわちデータユニットをネットワークに送信する通信装置による、輻輳原因情報の利用について説明する。これは図３に模式的に示される。
参照数字３はネットワークであり、ルーティングデバイス又は転送デバイス３３−４４を含んでいる。様々なルーティングデバイス３３−４４は相互接続されており、さらに点線で示されるように、図３に示されない他のルーティングデバイスとも接続されている。図３はさらに、ネットワーク３に接続され、送信側通信装置として振る舞う第１の通信装置３１と、やはりネットワーク３に接続され、受信側通信装置として振る舞う第２の通信装置３２を示している。より具体的には、送信側通信装置３１はデータユニットをルーティングデバイス３３を介してネットワーク３へ送信する。通信装置３とルーティングデバイス３３との間のコネクションは、任意の所望の方法又は好適な方法により確立することが可能であり、例えば固定有線回線であっても、無線回線であっても良い。通信装置３１によりネットワーク３に送信されたデータユニットは、ネットワーク３がデータユニットを所望の宛先３２へ転送することが可能なように、ルーティング情報又はアドレス情報を有する。この基本的なコンセプトは、本技術分野において周知であるため、これ以上の詳細については説明を要しない。
【００４１】
本発明によれば、ルーティングデバイス３３−４４の１つ以上が、図１に関連して説明したように構成される。すなわち、本発明に従って動作するルーティングデバイスは、輻輳の発生有無を監視する能力のみならず、輻輳の原因を特定し、適切な情報を、適切な対応するデータユニットにセットする能力を有する。好ましくは、輻輳条件が満たされている限り、出力ユニット１２（図１参照）から出力される全てのデータユニットに輻輳原因情報がセットされる。
【００４２】
転送されたデータユニットは受信側通信装置３２によって受信され、受信側通信装置３２はネットワーク３へ受領確認メッセージを送信するように構成される。受領確認メッセージはそのメッセージを送信側通信装置３１に導くルーティング情報又はアドレス情報を含んでいる。受領確認メッセージはデータユニットの受領に関する受信情報を含む。さらに、１つ以上のルーティングデバイスにより、転送されたデータユニット中にセットされた輻輳通知情報及び輻輳原因情報がおそらく含まれる。すなわち、受信側通信装置３２は、受信したデータユニットに含まれていた輻輳通知情報及び／又は輻輳原因情報を、そのまま反映(mirror)するように構成されている。送信側通信装置からのデータユニットの受信に応答して、受領確認メッセージを送信する基本的な手順は、ＡＲＱ（自動再送要求）として本技術分野において周知であるため、これ以上の説明は省略する。
【００４３】
そして、受領確認メッセージはネットワーク３により、送信側通信装置３１へ転送される。このように、本発明のコンセプトに従って動作するルーティングデバイスは、輻輳通知情報及び輻輳原因情報を順方向（送信側通信装置３１から受信側通信装置３２）に送信されるデータユニット中にセットできる能力を有するだけでなく、逆方向（受信側通信装置３２から送信側通信装置３１）に送信される受領確認メッセージに対して輻輳通知情報及び輻輳原因情報をセットする能力を有する。なお、受領確認メッセージもまたデータユニットであり、例えば図４に示したような構成を有する。
【００４４】
本発明に係る送信側通信装置３１は、図５のフローチャートによって模式的に示される方法を実行可能なように構成される。すなわち、通信装置３１の全体的な制御手順中に存在するステップＳ６１において、受信した受領確認メッセージ中に輻輳原因情報が存在するかどうかを調べる。もし存在しなければ、通常の制御手順を継続する。一方、輻輳原因情報が受信した受領確認メッセージ中に存在する場合には、手順はステップＳ６２へ分岐し、そこで輻輳原因情報が抽出される。そして、引き続くステップＳ６３で、制御手順は抽出した輻輳原因に従って適合される。既に述べたように、輻輳原因情報はｎの異なる輻輳原因に関して存在有無を表すように指定されうる。そのため、個々の受領確認メッセージは、２ｎの異なる輻輳原因の組み合わせの１つを含むことができる。本発明に従って動作する通信装置３１は、例えば、単に、受領確認メッセージ中の指定されたフィールド（すなわち、輻輳原因フィールド）で輻輳原因の組み合わせ（例えば特定のビット組み合わせ）を特定し、特定された輻輳原因の組み合わせに対応する対処手順を実行する様に構成することができる。一例として、通信装置３１が、可能性のある輻輳原因の組み合わせ（例えば、各々のビットパターン）のレコード又はテーブルであって、個々の輻輳原因情報が関連する対処手順にリンクされているレコード又はテーブルを保持することが可能である。なお、輻輳原因の組み合わせの各々が異なる対処手順にリンクされていても、いくつかの異なる輻輳原因の組み合わせが同じ対処手順にリンクされていても良い。これは、個々のシステムに依存した事項であり、適切なもの、又は所望のものを選択すればよい。
【００４５】
好ましい実施形態によれば、通信装置３１は第１及び第２の輻輳原因情報を抽出するように構成される。なお、第１の輻輳原因情報は、ネットワークを介して送られてくるデータユニット数を処理できないこと（すなわち、処理制限）に帰因した輻輳に関するものであり、第２の輻輳原因情報は、送信しようとするデータ量を処理できないこと（すなわち、帯域制限）に帰因した輻輳に関するものである。そして、通信装置３１は好ましくは、第１の輻輳原因情報の抽出に対しては単位時間当たりにネットワークへ出力するデータユニット数を削減することによって、また第２の輻輳原因情報の抽出に対しては単位時間当たりにネットワークへ出力するデータ量を削減することによって対応するように構成される。
【００４６】
予め定められたｎビット中の各ビットにより輻輳原因情報をセットするに関し、コネクション中に存在する複数のルーティングデバイスが個々の輻輳原因に対応する１つ以上のビットをセット可能である場合には、連続するルーティングデバイスが各々の輻輳状態に応じて異なるビットを設定可能であることに留意されたい。一例として、輻輳原因情報が２つの原因に区別される（すなわち、２ビットが用いられる）ものとすると、第１のルーティングデバイスが第１ビットを１にセットし（これにより、例えば処理制限が示される）、第２のルーティングデバイス（例えば図３の３６）が第２ビットを１にセットする（これにより、帯域制限が示される）可能性がある。このようにして、輻輳原因情報が受信側通信装置３２から送信される受領確認メッセージにそのまま反映された後、送信側通信装置３１はネットワーク３に第１の輻輳原因（例えば処理制限）と、第２の輻輳原因（例えば帯域制限）の両方が存在することを知る。
【００４７】
送信側通信装置の変更と関連する上述のコンセプトは、好ましくはレートベースの送信アプリケーションに適用される。一例として、１音声フレームを所定期間内に出力するコーデックを用いるボイスオーバＩＰ（ＶｏＩＰ）アプリケーションを想定することが可能である。例えば、ＡＭＲ（適応マルチレート）コーデックは、１音声フレームを２０ｍｓ毎に出力する。このコーデックは複数の符号化レートを使用可能であり、フレーム単位で符号化レートの切替が可能である。例えば、ＡＭＲコーデックは４．７５〜１２．２ｋｂｐｓの範囲で８通りの符号化レートを切り替えることが可能である。コーデックから出力される音声フレームは、ネットワーク上で送信可能なデータユニットに埋め込まれる。例えば、音声フレームは実時間送信プロトコル（ＲＴＰ）データユニット、データグラム輻輳制御プロトコル（ＤＣＣＰ）データユニット及びインターネットプロトコル（ＩＰ）データユニットへ連続的に埋め込みされうる。
【００４８】
本発明の好ましい実施形態によれば、輻輳原因情報は２ビットに符号化され、第１の組み合わせ（例えば００）は輻輳無し、第２の組み合わせ（例えば１０）は処理制限が存在、第３の組み合わせ（例えば０１）は帯域制限が存在、第４の組み合わせ（例えば１１）は処理制限及び帯域制限の両方が存在することを示す。
【００４９】
フィードバック（すなわち、受領確認メッセージ）をネットワークから受信すると、ＶｏＩＰアプリケーションは、００が対応せず（図５に示す例におけるステップＳ６１の”ｎｏ”出力に対応）、１０が対応オプション１、０１が対応オプション２、１１が対応オプション３にそれぞれリンクされる、適切な判定テーブルを用いることが可能であろう。
【００５０】
そして、対応オプション１は、データユニット当たりの音声フレーム数を増加させ、アプリケーションが出力するデータユニットの数を削減することであってよい。この結果、ネットワークが受信する、単位時間当たりに処理すべきデータユニットの数が削減されるため、この対応は処理制限への適切な対応である。ＶｏＩＰアプリケーションから見れば、この対応は遅延を増加させる。
【００５１】
対応オプション２は、データユニット当たりの音声フレーム数はそのままとし、代わりに符号化レートを削減することであってよい。この結果、データユニット数は変わらないが、個々のデータユニットが小さくなる。従って、ネットワークに到来するデータ量（すなわち、バイト数）が減少するので、帯域制限に対する適切な対応である。アプリケーションからすれば、品質の低下という代償が必要となる。
【００５２】
対応オプション３は、オプション１及び２の両方、すなわち、符号化レートの削減と、データユニット当たりの音声フレーム数の増加の実行であって良い。アプリケーションからすれば、この対応は品質低下と遅延増加に繋がる。
【００５３】
以上の例から、従来のシステムと比較した本願発明の利点は直ちに理解可能である。すなわち、従来技術では輻輳の存在有無のみを示していたのに対し、本発明では輻輳原因を識別することを可能としている。これは、上述のＶｏＩＰアプリケーションの場合であれば、従来技術においては輻輳原因がわからないため、輻輳通知に対してオプション３が強制的に実施される得ないことを意味する。原因が分らなければ、可能性のある全ての原因、例えば処理制限及び帯域制限を軽減可能な対応を取らざるを得ない。そのため、輻輳が起きた場合には、常に品質の低下と遅延の増加を伴うことになる。
【００５４】
それに対し、本発明は輻輳の原因が識別可能であり、送信側通信装置において正しい対応を採ることが可能であるため、本当に必要なだけの性能低下を容認すればよい。すなわち、処理制限が生じた場合には、品質を犠牲にすることなく、遅延の増加のみを許容すればよい。また、帯域制限が生じた場合には、遅延増加を受けることなく、品質低下のみを許容すればよい。
【００５５】
なお、上述の例はＶｏＩＰに関するものであるが、本発明による同様の有利な効果は、ストリーミング、モバイル環境におけるゲーム(mobile gaming) といった輻輳フィードバックを用いる他の任意のアプリケーション及び、輻輳制御にＴＦＥＣ(TCP Friendly Rate Control)及び／又はＴＦＥＣ−ＰＳ(TCP Friendly Rate Control Packet Size)を用いる任意のアプリケーションにおいても実現される。もちろん、個々の応答オプションは、具体的なアプリケーション及びそれに付随した個別の要求に依存するであろう。
【００５６】
本発明の実施形態はハードウェア、ソフトウェア又はハードウェア及びソフトウェアの何らかの適当な組み合わせの形態で提供されうる。本発明はまた、本発明に係る方法を実行可能なコンピュータプログラムを格納するデータ記録媒体の形式においても実施可能である。
【００５７】
本発明を例示によって説明してきたが、これらの例は大局的な理解を与えるためのものであり、本発明を限定する意図はない。むしろ、本発明の範囲は添付の特許請求の範囲によって定まるものである。さらに、特許請求の範囲における参照数字は、請求範囲の読解を容易にすることのみを目的としたものであり、本発明を限定するものではない。
【図面の簡単な説明】
【００５８】
【図１】本発明による、データユニットをルーティングするための装置の実施形態を示す図である。
【図２】本発明の方法を説明するフローチャートである。
【図３】データユニットの送信側及び受信側並びにルーティングデバイスを有するネットワークを模式的に表す図である。
【図４】本発明によるデータユニットを模式的に表す図である。
【図５】本発明の実施形態に係る、送信通信装置の制御方法を説明するフローチャートである。
【図１】
2006513663.tif 000003
【図２】
2006513663.tif 000004
【図３】
2006513663.tif 000005
【図４】
2006513663.tif 000006
【図５】
2006513663.tif 000007
【国際調査報告】
2006513663.tif 000008
2006513663.tif 000009
2006513663.tif 000010