(57)【要約】【課題】パケット通信ネットワークにおける過度のトラヒックの集中を、容易かつ迅速に抑制し、パケットの廃棄を回避する。【解決手段】通信回線を介して対向する対向ルータから受信したパケットを転送するルータであって、受信したパケットの転送先を決定するスイッチ部１０１と、スイッチ部１０１の稼働状態を監視し、スイッチ部１０１にて輻輳が発生した場合、スイッチ部１０１で輻輳が発生していることを通知するための輻輳通知を対向ルータへ送信する輻輳検出機能部１０３と、対向ルータから送信された輻輳通知を受信すると、その対向ルータへ送信するパケットを減らすための輻輳回避動作を行う輻輳回避機能部１０４とを有する。【選択図】図２
2010041385.tif 000002
【特許請求の範囲】
【請求項１】
通信回線を介して対向する対向ルータから受信したパケットを転送するルータであって、
受信したパケットの転送先を決定するスイッチ部と、
前記スイッチ部の稼働状態を監視し、前記スイッチ部にて輻輳が発生した場合、前記スイッチ部で輻輳が発生していることを通知するための輻輳通知を前記対向ルータへ送信する輻輳検出機能部と、
前記対向ルータから送信された前記輻輳通知を受信すると、前記対向ルータへ送信するパケットを減らすための輻輳回避動作を行う輻輳回避機能部とを有するルータ。
【請求項２】
請求項１に記載のルータにおいて、
前記輻輳検出機能部は、前記スイッチ部が輻輳状態から回復した場合、前記スイッチ部が輻輳状態から回復したことを通知するための輻輳回復通知を前記輻輳通知を送信した前記対向ルータへ送信し、
前記輻輳回避機能部は、前記対向ルータから送信された前記輻輳回復通知を受信すると、前記輻輳回避動作を停止するルータ。
【請求項３】
請求項１または請求項２に記載のルータにおいて、
前記輻輳検出機能部は、前記スイッチ部のリソース使用率が予め決められた閾値以上である場合に前記スイッチ部に輻輳が発生していると判断するルータ。
【請求項４】
請求項１乃至３のいずれか１項に記載のルータにおいて、
前記輻輳検出機能部は、前記スイッチ部にて輻輳が発生した場合、前記輻輳通知を予め決められた対向ルータへ送信するルータ。
【請求項５】
請求項１乃至４のいずれか１項に記載のルータにおいて、
前記輻輳検出機能部は、前記対向ルータ毎に、前記対向ルータから送信された単位時間当たりのパケット数である送信レートを管理し、前記スイッチ部にて輻輳が発生した場合、予め決められた閾値以上の送信レートでパケットを送信している対向ルータへ輻輳通知を送信するルータ。
【請求項６】
請求項１乃至５のいずれか１項に記載のルータにおいて、
前記対向ルータから受信したパケットの転送先の情報を示すルーティングテーブルを有し、
前記輻輳回避機能部は、前記対向ルータから送信された輻輳通知を受信すると、前記ルーティングテーブルの設定を変更することによって前記輻輳回避動作を行うルータ。
【請求項７】
請求項１乃至６のいずれか１項に記載のルータにおいて、
前記対向ルータとの接続を終端する複数の回線終端部を有し、
前記輻輳回避機能部は、前記対向ルータから送信された輻輳通知を受信すると、前記複数の回線終端部のうち前記輻輳通知を受信した対向ルータと接続されている回線終端部の設定を変更することによって前記輻輳回避動作を行うルータ。
【請求項８】
通信回線を介して対向する対向ルータから受信したパケットの転送先を決定するスイッチ部と、前記受信したパケットの転送先の情報を示すルーティングテーブルと、前記対向ルータとの接続を終端する複数の回線終端部とを有するルータにおける輻輳制御方法であって、
前記スイッチ部の稼働状態を監視し、前記スイッチ部にて輻輳が発生した場合、前記スイッチ部で輻輳が発生していることを通知するための輻輳通知を前記対向ルータへ送信する処理と、
前記対向ルータから送信された前記輻輳通知を受信すると、前記対向ルータへ送信するパケットを減らすための輻輳回避動作を行う処理とを有する輻輳制御方法。
【請求項９】
請求項８に記載の輻輳制御方法において、
前記スイッチ部が輻輳状態から回復した場合、前記スイッチ部が輻輳状態から回復したことを通知するための輻輳回復通知を前記輻輳通知を送信した前記対向ルータへ送信する処理と、
前記対向ルータから送信された前記輻輳回復通知を受信すると、前記輻輳回避動作を停止する処理とを有する輻輳制御方法。
【請求項１０】
請求項８または請求項９に記載の輻輳制御方法において、
前記スイッチ部のリソース使用率が予め決められた閾値以上である場合に前記スイッチ部に輻輳が発生していると判断する処理を有する輻輳制御方法。
【請求項１１】
請求項８乃至１０のいずれか１項に記載の輻輳制御方法において、
前記スイッチ部にて輻輳が発生した場合、前記輻輳通知を予め決められた対向ルータへ送信する処理を有する輻輳制御方法。
【請求項１２】
請求項８乃至１１のいずれか１項に記載の輻輳制御方法において、
前記対向ルータ毎に、前記対向ルータから送信された単位時間当たりのパケット数である送信レートを管理する処理と、
前記スイッチ部にて輻輳が発生した場合、予め決められた閾値以上の送信レートでパケットを送信している対向ルータへ輻輳通知を送信する処理とを有する輻輳制御方法。
【請求項１３】
請求項８乃至１２のいずれか１項に記載の輻輳制御方法において、
前記対向ルータから送信された輻輳通知を受信すると、前記ルーティングテーブルの設定を変更することによって前記輻輳回避動作を行う処理を有する輻輳制御方法。
【請求項１４】
請求項８乃至１３のいずれか１項に記載の輻輳制御方法において、
前記対向ルータから送信された輻輳通知を受信すると、前記複数の回線終端部のうち前記輻輳通知を受信した対向ルータと接続されている回線終端部の設定を変更することによって前記輻輳回避動作を行う処理を有する輻輳制御方法。
【請求項１５】
通信回線を介して対向する対向ルータから受信したパケットの転送先を決定するスイッチ部と、前記受信したパケットの転送先の情報を示すルーティングテーブルと、前記対向ルータとの接続を終端する複数の回線終端部とを有するルータに、
前記スイッチ部の稼働状態を監視し、前記スイッチ部にて輻輳が発生した場合、前記スイッチ部で輻輳が発生していることを通知するための輻輳通知を前記対向ルータへ送信する機能と、
前記対向ルータから送信された前記輻輳通知を受信すると、前記対向ルータへ送信するパケットを減らすための輻輳回避動作を行う機能とを実現させるためのプログラム。
【請求項１６】
請求項１５に記載のプログラムにおいて、
前記スイッチ部が輻輳状態から回復した場合、前記スイッチ部が輻輳状態から回復したことを通知するための輻輳回復通知を前記輻輳通知を送信した前記対向ルータへ送信する機能と、
前記対向ルータから送信された前記輻輳回復通知を受信すると、前記輻輳回避動作を停止する機能とを実現させるためのプログラム。
【請求項１７】
請求項１５または請求項１６に記載のプログラムにおいて、
前記スイッチ部のリソース使用率が予め決められた閾値以上である場合に前記スイッチ部に輻輳が発生していると判断する機能を実現させるためのプログラム。
【請求項１８】
請求項１５乃至１７のいずれか１項に記載のプログラムにおいて、
前記スイッチ部にて輻輳が発生した場合、前記輻輳通知を予め決められた対向ルータへ送信する機能を実現させるためのプログラム。
【請求項１９】
請求項１５乃至１８のいずれか１項に記載のプログラムにおいて、
前記対向ルータ毎に、前記対向ルータから送信された単位時間当たりのパケット数である送信レートを管理する機能と、
前記スイッチ部にて輻輳が発生した場合、予め決められた閾値以上の送信レートでパケットを送信している対向ルータへ輻輳通知を送信する機能とを実現させるためのプログラム。
【請求項２０】
請求項１５乃至１９のいずれか１項に記載のプログラムにおいて、
前記対向ルータから送信された輻輳通知を受信すると、前記ルーティングテーブルの設定を変更することによって前記輻輳回避動作を行う機能を実現させるためのプログラム。
【請求項２１】
請求項１５乃至２０のいずれか１項に記載のプログラムにおいて、
前記対向ルータから送信された輻輳通知を受信すると、前記複数の回線終端部のうち前記輻輳通知を受信した対向ルータと接続されている回線終端部の設定を変更することによって前記輻輳回避動作を行う機能を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ルータ及び輻輳制御方法に関し、特に、過度のトラヒックの集中を抑制するルータ及び輻輳制御方法に関する。
【背景技術】
【０００２】
パケット通信ネットワークにおいて、パケットの送達確認が行われるコネクション型であるＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）接続では、パケットの送信元の端末は、パケットの送達確認がとれず、パケットの廃棄を検出すると、パケットの送信先の端末へパケットを送信する送信レートを抑制し、パケット通信ネットワークの輻輳の回避を行っている。なお、送信レートとは、単位時間あたりのパケットの送信数のことである。
【０００３】
パケットの廃棄の検出をきっかけとして輻輳回避を行う場合、パケットの廃棄がバースト的に発生すると、複数のパケットの送信元の端末が、パケットの廃棄を検出する度に、同時に輻輳回避のための送信レートの抑制を行い、その後、複数の端末が同時に送信レートの回復を行う。その結果、パケット通信ネットワーク上のトラヒックの流量が大きく変動し、パケット通信ネットワークの安定性を確保することができなくなる。
【０００４】
また、上述したパケットの送信元の端末による輻輳回避のための送信レートの抑制自体が、パケットの送信効率の低下を招き、パケット通信ネットワークの安定性の確保に大きな影響を及ぼすこととなる。
【０００５】
ここで、パケットが廃棄される原因としては、特定のルータへの過度のトラヒック集中によってそのルータのバッファメモリの許容量を超えてしまうことや、特定の通信ルートへの過度のトラヒック集中によって送達確認のパケットがタイムアウトなってしまうこと等がある。
【０００６】
上記のような原因によりパケットの廃棄が発生した場合にパケット通信ネットワークの安定性を確保する方法は、既にルータに実装されている。その一例として、ルータは、過度のトラヒックの集中によってルータのバッファメモリの許容量を超えてからパケットを廃棄するのではなく、バッファメモリの使用量がある一定の閾値を超えた場合に、ランダムにまたは統計的手法など一定のアルゴリズムに従い、分散してパケットを廃棄するというものがある。
【０００７】
しかし、この方法は、トラヒックの集中度合いや、ＴＣＰ接続数などによっては、効果が薄い場合がある。また、パケットの廃棄は発生してしまうので、パケットの送信元の端末の送信効率の低下によるパケット通信ネットワークの安定性への影響を回避することができない。
【０００８】
このように、パケットの廃棄が発生した場合の対策だけでは、パケット通信ネットワークの安定性を確保することができず、パケットの廃棄そのものをなくすための対策が必要となる。
【０００９】
そこで、パケットの廃棄の原因である過度のトラヒック集中を抑制するための技術が求められ、それを可能にする技術が特許文献１に開示されている。
【００１０】
特許文献１に開示されている技術では、ネットワーク上のルータは、自身が受信しているパケットを監視されており、あるルータが受信したパケットが予め設定した水準を超えた場合、つまりあるルータにトラヒックが集中していた場合、それ以降は、そのルータへのパケット送信が一時的に停止される。このとき、そのルータ宛てのパケットは、ネットワーク内で一時的に蓄積され、蓄積されたパケットが一定時間経過後にそのルータへ送信される。
【特許文献１】特開平１０−２００５８１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上述した特許文献１に開示されている技術を利用すれば、過度のトラヒックの集中を抑制し、パケットの廃棄をなくすことが可能であるように思える。
【００１２】
この技術では、あるルータがトラヒック集中の状態から回復しているかどうかの確認を行わず、一定時間経過後にそのルータへのパケット送信を再開する。トラヒックが集中している輻輳状態から回復した直後に、そのルータへのパケットの送信を再開すると、再度輻輳が発生する可能性が高い。従って、この技術は、過度のトラヒックの集中を抑制する対策としては十分とはいえない。
【００１３】
ここで、既存のルーティングプロトコルを利用し、過度のトラヒックの集中を抑制する方法もある。
【００１４】
既存のルーティングプロトコルを利用して過度のトラヒックの集中を抑制する方法としては、例えば、ルータ間で交換され、ルータにおいてパケットの転送先を決定するためのルーティングテーブルを作成するための基となる経路情報の中に、ルータ間の帯域情報やルータのリソース(例えば、バッファメモリやＣＰＵ)使用率情報等を組み込む方法が考えられる。この方法を利用すれば、ルータは、過度のトラヒックの集中が予想されるルータや通信ルートを避けるようにしてパケットを転送するようになる。
【００１５】
上記の方法の具体的な実現方法としては、例えば、ルーティングプロトコルの１つであるディスタンスベクトルアルゴリズムでは、トラヒックの集中が予想されるルータを経由するルートのホップ数を増やすことが考えられる。これにより、トラヒックの集中が予想されるルータへ送信されるパケットを減らすことができる。
【００１６】
なお、ホップ数とは、宛先ネットワークとの距離を、宛先ネットワークに到達するまでに経由するルータの数で示したものであり、ルータ間で交換される経路情報に記述されている。ルータは受信した経路情報に記述されているホップ数から自身のルーティングテーブルを作成し、そのルーティングテーブルの情報に基づいて受信したパケットを転送する。ルーティングテーブルに同じ宛先ネットワークへのルートが複数あった場合、ルータは、原則としてホップ数が小さなルートを選択する。つまり、ホップ数が大きなルートは選択されにくくなる。
【００１７】
しかし、ディスタンスベクトルアルゴリズムでは、通常、帯域情報やリソース使用率情報等は考慮されない。そのため、ホップ数を増やすためには、ルータの運用者がこれらの情報を考慮したホップ数をルータに手動で設定する必要があるが、これは多大な人的及び時間的コストを要する。
【００１８】
または、これらの情報を考慮したホップ数を算出する新たな仕組みをルーティングプロトコル組み込むという方法も考えられるが、標準化されているルーティングプロトコルを修正するためには、やはり、多大な人的及び時間的コストを要する。
【００１９】
このように、ルータ間で交換される経路情報を利用して過度のトラヒックの集中を抑制するためには、多大な人的及び時間的コストを要するという問題点がある。
【００２０】
本発明は、パケット通信ネットワークにおける過度のトラヒックの集中を、容易かつ迅速に抑制し、パケットの廃棄を回避することができるルータ及び輻輳制御方法を提供することを目的とする。
【課題を解決するための手段】
【００２１】
上記目的を達成するために本発明は、
通信回線を介して対向する対向ルータから受信したパケットを転送するルータであって、
受信したパケットの転送先を決定するスイッチ部と、
前記スイッチ部の稼働状態を監視し、前記スイッチ部にて輻輳が発生した場合、前記スイッチ部で輻輳が発生していることを通知するための輻輳通知を前記対向ルータへ送信する輻輳検出機能部と、
前記対向ルータから送信された前記輻輳通知を受信すると、前記対向ルータへ送信するパケットを減らすための輻輳回避動作を行う輻輳回避機能部とを有する。
【００２２】
また、通信回線を介して対向する対向ルータから受信したパケットの転送先を決定するスイッチ部と、前記受信したパケットの転送先の情報を示すルーティングテーブルと、前記対向ルータとの接続を終端する複数の回線終端部とを有するルータにおける輻輳制御方法であって、
前記スイッチ部の稼働状態を監視し、前記スイッチ部にて輻輳が発生した場合、前記スイッチ部で輻輳が発生していることを通知するための輻輳通知を前記対向ルータへ送信する処理と、
前記対向ルータから送信された前記輻輳通知を受信すると、前記対向ルータへ送信するパケットを減らすための輻輳回避動作を行う処理とを有する。
【００２３】
また、通信回線を介して対向する対向ルータから受信したパケットの転送先を決定するスイッチ部と、前記受信したパケットの転送先の情報を示すルーティングテーブルと、前記対向ルータとの接続を終端する複数の回線終端部とを有するルータに、
前記スイッチ部の稼働状態を監視し、前記スイッチ部にて輻輳が発生した場合、前記スイッチ部で輻輳が発生していることを通知するための輻輳通知を前記対向ルータへ送信する機能と、
前記対向ルータから送信された前記輻輳通知を受信すると、前記対向ルータへ送信するパケットを減らすための輻輳回避動作を行う機能とを実現させる。
【発明の効果】
【００２４】
本発明は以上説明したように構成されているので、多大な人的及び時間的コストを要することなく、パケット通信ネットワークにおける過度のトラヒックの集中を抑制し、パケットの廃棄を回避することができる。
【発明を実施するための最良の形態】
【００２５】
以下に、本発明の実施の形態について図面を参照して説明する。
【００２６】
図１は、本発明のルータによって構成されたパケット通信ネットワークの実施の一形態を示す図である。
【００２７】
図１に示すように本形態のネットワークは、通信回線１を介して接続された５つのルータ１００ａ〜１００ｅから構成され、ルータ１００ａは、他のルータ１００ｂ〜１００ｅと対向している。
【００２８】
図２は、図１に示したルータ１００ａの構成を示すブロック図である。
【００２９】
図２に示すように、図１に示したルータ１００ａは、スイッチ部１０１と、複数の回線終端部１０２ａ〜１０２ｎと、輻輳検出機能部１０３と、輻輳回避機能部１０４と、ルーティングテーブル１０５とを備えている。なお、ルータ１００ｂ〜１００ｅも同じ構成である。
【００３０】
スイッチ部１０１は、他のルータ１００ｂ〜１００ｅから送信された経路情報を回線終端部１０２ａ〜１０２ｎを介して受信する。そして、受信した経路情報に基づき、パケットの転送先の情報を作成し、ルーティングテーブル１０５に記憶させる。また、他のルータ１００ｂ〜１００ｅから送信されたパケットを回線終端部１０２ａ〜１０２ｎを介して受信する。そして、ルーティングテーブル１０５が記憶している情報と受信したパケットの宛先アドレスとに基づき、受信したパケットの転送先を決定して回線終端部１０２ａ〜１０２ｎへ出力する。なお、ルーティングテーブル１０５が記憶している情報については、後述する動作フローにおいて説明する。
【００３１】
回線終端部１０２ａ〜１０２ｎは、他のルータ１００ｂ〜１００ｅから送信されたパケットを受信し、スイッチ部１０１へ出力する。また、スイッチ部１０１から出力されたパケットを他のルータ１００ｂ〜１００ｅへ送信する。また、輻輳回避機能部１０４からの指示によってパケットを送信する送信レートの調整を行う。
【００３２】
輻輳検出機能部１０３は、スイッチ部１０１の稼働状態を監視する。スイッチ部１０１の輻輳の発生を検出した場合、他のルータ１００ｂ〜１００ｅに対し、ルータ１００ａで輻輳が発生していることを通知するための輻輳通知を送信する。また、スイッチ部１０１が輻輳状態から回復したことを検出した場合、輻輳通知を送信した他のルータ１００ｂ〜１００ｅに対し、ルータ１００ａが輻輳状態から回復したことを通知するための輻輳回復通知を送信する。
【００３３】
輻輳回避機能部１０４は、他のルータ１００ｂ〜１００ｅから輻輳通知を受信すると、ルーティングテーブル１０５の設定変更、あるいは回線終端部１０２ａ〜１０２ｎの設定変更、あるいはそれらの両方を行う。以降、これらの設定変更の動作を輻輳回避動作という。
【００３４】
ルーティングテーブル１０５は、パケットの転送先の情報を記憶している。
【００３５】
以下に、上記のように構成されたルータ１００ａ〜１００ｅにおける輻輳制御方法について説明する。
【００３６】
図３は、図１に示したネットワークにおいて輻輳制御を行う場合の動作を説明するためのタイムチャートである。
【００３７】
ここでは、図１に示したルータ１００ａにトラヒックが集中し、輻輳が発生することする。また、ルータ１００ａに対向するルータ１００ｂ〜１００ｅの動作は、基本的には同じなので、図３においては、ルータ１００ｂのみを記載している。
【００３８】
ルータ１００ａの輻輳検出機能部１０３は、スイッチ部１０１の稼働状態を定期的に監視している（ステップＳ１）。
【００３９】
スイッチ部１０１で輻輳が発生すると、輻輳検出機能部１０３は、輻輳の発生を検出する（ステップＳ２）。なお、輻輳の発生を検出する方法としては、例えば、スイッチ部１０１のリソース（バッファメモリ、ＣＰＵ等）使用率が予め決められた閾値以上となった場合に輻輳が発生したと判断する方法がある。
【００４０】
次に、輻輳検出機能部１０３は、ルータ１００ａに対向しているルータ１００ｂ〜１００ｅに対し、ルータ１００ａで輻輳が発生していることを通知するための輻輳通知を送信する（ステップＳ３）。なお、輻輳通知に含まれる情報としては、例えば、輻輳の程度を示す情報、ルータ１００ａへパケットを送信する際の送信レートの閾値を示す情報等がある。なお、送信レートの閾値としては、送信帯域の絶対値を指定したり、リンク速度の一定割合等を指定したりすることが可能である。
【００４１】
また、輻輳通知の送信先としては、ルータ１００ａに対向している全てのルータに限られない。例えば、ルータ１００ａに対向するルータ１００ｂ〜１００ｅのうち、予め決められた閾値以上の送信レートでルータ１００ａにパケットを送信しているルータだけに輻輳通知を送信するようにしてもよい。この場合、輻輳検出機能部１０３は、パケットの送信元のルータ毎に、送信してきているパケットの送信レートを管理する。そして、輻輳検出機能部１０３は、スイッチ部１０１に輻輳が発生していることを検出した際、予め決められた閾値以上の送信レートでパケットを送信してきているルータだけに輻輳通知を送信する。
【００４２】
また、輻輳通知の送信を行わないルータを輻輳検出機能部１０３に予め指定しておくことにより、予め指定されているルータには輻輳通知を送信しないようにすることも可能である。
【００４３】
次に、ルータ１００ａから送信された輻輳通知を受信したルータ１００ｂ〜１００ｅの輻輳回避機能部１０４は、ルーティングテーブル１０５の設定変更（ステップＳ４）、あるいは回線終端部１０２ａの設定変更（ステップＳ５）を行う。また、その両方を行うことも可能である。これらの設定変更により、輻輳状態となっているルータ１００ａへのパケットの送信が抑制される。なお、ここでは、複数の回線終端部１０２ａ〜１０２ｎのうち、回線終端部１０２ａがルータ１００ａと接続されていることとしている。また、ステップＳ４及びステップＳ５の動作についての詳細は後述する。
【００４４】
ルータ１００ａの輻輳検出機能部１０３は、スイッチ部１０１が輻輳状態となった後も監視を継続する（ステップＳ６）。この監視により、輻輳状態がさらに悪化、例えば、スイッチ部１０１のリソース使用率がさらに上昇したことを輻輳検出機能部１０３が検出した場合、再度、輻輳通知をルータ１００ｂ〜１００ｅへ送信するようにしてもよい。この再度の輻輳通知に、最初に送信した輻輳通知に含めた情報よりもルータ１００ａへのパケット送信を制限するレベルを高くした情報を含めることにより、ルータ１００ａの輻輳状態の程度にあった輻輳通知をすることが可能となる。
【００４５】
例えば、最初の輻輳通知にはルータ１００ａへパケットを送信する際の送信レートを通常値比５０％とすることを示す情報を含めたが、スイッチ部１０１の輻輳状態が解消されず、リソース使用率がさらに上昇した場合、再度の輻輳通知に送信レートを通常値比１０％とすることを示す情報を含めるようにする。
【００４６】
ここまでが、ルータ１００ａに輻輳が発生している場合の動作である。以下に、ルータ１００ａが輻輳状態から回復した後の動作について説明する。
【００４７】
輻輳検出機能部１０３は、スイッチ部１０１が輻輳状態から回復したことを検出する（ステップＳ７）。なお、輻輳状態からの回復を検出する方法としては、例えば、スイッチ部１０１のリソース（バッファメモリ、ＣＰＵ等）使用率が、予め決められた閾値よりも低くなった場合や、予め決められた閾値の一定の割合以下になった場合に輻輳状態からの回復と判断する方法がある。
【００４８】
スイッチ部１０１が輻輳状態から回復したことを検出した輻輳検出機能部１０３は、ステップＳ３において輻輳通知を送信したルータ１００ｂ〜１００ｅに対し、ルータ１００ａが輻輳状態から回復したことを通知するための輻輳回復通知を送信する（ステップＳ８）。なお、スイッチ部１０１が輻輳状態から回復した直後に輻輳回復通知を送信すると、再度輻輳が発生し、ネットワークの挙動が不安定になる可能性がある。従って、輻輳回復通知の送信は、輻輳回復の程度(バッファメモリやＣＰＵ等のリソース使用率がある一定の閾値以下となる等)や、輻輳回復からの一定時間の経過後に行う。
【００４９】
ルータ１００ａから送信された輻輳回復通知を受信したルータ１００ｂ〜１００ｅの輻輳回避機能部１０４は、輻輳回避動作を停止し、ステップＳ４及びステップＳ５において設定変更したルーティングテーブル１０５及び回線終端部１０２ａ〜１０２ｎの設定を元に戻す（ステップＳ９〜Ｓ１０）。
【００５０】
以上が図１に示したネットワークにおいて輻輳制御を行う場合の動作である。
【００５１】
以下に、上述した動作フローのステップＳ４及びステップＳ５においてルータ１００ｂ〜１００ｅの輻輳回避機能部１０４が行う輻輳回避動作の詳細を説明する。ここでは、一例としてルータ１００ｂが輻輳回避動作を行う場合について説明する。
【００５２】
上述したように、輻輳回避動作には、ステップＳ４において輻輳回避機能部１０４が行うルーティングテーブル１０５の設定変更と、ステップＳ５において輻輳回避機能部１０４が行う回線終端部１０２ａの設定変更との２つがある。
【００５３】
まず、ステップＳ４において行われるルーティングテーブル１０５の設定変更について説明する。
【００５４】
この動作においてルータ１００ｂの輻輳回避機能部１０４は、ルーティングテーブル１０５の設定を変更することによってルータ１００ａへのパケット送信を抑制する。
【００５５】
例えば、本形態のネットワークにおいて、ルーティングプロトコルとしてディスタンスベクトルアルゴリズムが採用されていた場合、輻輳通知を受信したルータ１００ｂの輻輳回避機能部１０４は、ルーティングテーブル１０５において、ルータ１００ａを経由するルートのホップ数を増加させる。これにより、ルータ１００ａを経由するルートが選択される可能性が低くなり、ルータ１００ａへのパケット送信が抑制される。
【００５６】
図４は、図２に示したルーティングテーブル１０５の一設定例を示す図であり、（ａ）は輻輳回避動作前の設定を示す図、（ｂ）は輻輳回避動作後の設定を示す図である。なお、ここでは、ルータ１００ａ〜１００ｅのアドレスをそれぞれアドレスａ〜ｅとする。
【００５７】
図４に示すように、図２に示したルーティングテーブル１０５は、宛先ネットワークカラム１０５ａと、ネクストホップカラム１０５ｂと、ホップ数カラム１０５ｃとを有しており、それらを対応づけて記憶している。そして、各行が宛先ネットワークカラム１０５ａに書き込まれたネットワークへ到達するためのルートの情報となる。
【００５８】
宛先ネットワークカラム１０５ａには、パケットの最終的な宛先のネットワークアドレスが書き込まれている。
【００５９】
ネクストホップカラム１０５ｂには、対応する宛先ネットワークカラム１０５ａに書き込まれたネットワークへ到達するために、次にパケット転送すべきルータのアドレスが書き込まれている。
【００６０】
ホップ数カラム１０５ｃには、対応する宛先ネットワークカラム１０５ａに書き込まれたネットワークへ到達するまでに経由するルータの数が書き込まれている。宛先ネットワークカラム１０５ａに複数の同じネットワークが書き込まれていた場合、原則としてホップ数が小さなルートが選択される。
【００６１】
輻輳回避動作前のルーティングテーブル１０５を示す図４（ａ）では、ネットワークＡが宛先ネットワークカラム１０５ａに書き込まれたルートが２つある。この場合、宛先ネットワークがネットワークＡであるパケットを受信すると、ルータ１００ｂは、ホップ数が小さなルートを選択するため、受信したパケットをアドレスａを有するルータであるルータ１００ａに送信してしまう。
【００６２】
一方、輻輳回避動作後のルーティングテーブル１０５を示す図４（ｂ）では、ルータ１００ａのアドレスａがネクストホップカラム１０５ｂに書き込まれたルートのホップ数が増やされている。従って、宛先ネットワークがネットワークＡであるパケットはアドレスａを有するルータ１００ａへは送信されず、アドレスｃを有するルータ１００ｃへ送信されることとなる。この結果、ルータ１００ａへの過度のトラヒック集中を抑制することができる。なお、ルータ１００ａから送信された輻輳通知に含まれる輻輳の程度を示す情報に応じて増加させるホップ数を可変とすることも可能である。
【００６３】
また、本形態のネットワークにおいて、ルーティングプロトコルとしてリンクステートアルゴリズムが採用されていた場合、上述したディスタンスベクトルアルゴリズムにおけるホップ数に相当するコストと呼ばれる値を変更すればよい。つまり、ルータ１００ａを経由するルートのコストを増加させることにより、ルータ１００ａへのパケット送信を減らし、ルータ１００ａへの過度のトラヒックの集中を抑制することができる。なお、リンクステートアルゴリズムにおいても、ディスタンスベクトルアルゴリズムの場合と同様に、ルータ１００ａから送信された輻輳通知に含まれる輻輳の程度を示す情報に応じて増加させるコストを可変とすることも可能である。
【００６４】
また、本形態のネットワークにおいて、ルーティングプロトコルとしてパスベクトルアルゴリズムが採用されていた場合でも、上述したディスタンスベクトルアルゴリズム及びリンクステートアルゴリズムと同様に、ルータ１００ａから送信された輻輳通知に対応させてパケットがルータ１００ａを経由しないような設定変更を行うことが可能である。但し、パスベクトルアルゴリズムは、大規模なネットワークで使用されているルーティングプロトコルであり、設定の変更は、広範囲のネットワークに大きな影響を与えるため、周辺のルータの接続形態等を考慮して行う必要がある。
【００６５】
次に、ステップＳ５において行われる回線終端部１０２ａ〜１０２ｎの設定変更について説明する。
【００６６】
この動作において輻輳回避機能部１０４は、ルータ１００ａの輻輳検出機能部１０３から通知される輻輳通知に含まれる送信レートを示す情報に基づき、回線終端部１０２ａ〜１０２ｎのうち、ルータ１００ａと接続されている回線終端部１０２ａの送信レートを変更する。この変更によってルータ１００ｂからルータ１００ａへ送信される単位時間当たりのパケット数が制限され、結果として、ルータ１００ａへのパケット送信を減らし、ルータ１００ａへの過度のトラヒックの集中を抑制することができる。
【００６７】
このように本形態においては、輻輳が発生しているルータから対向するルータに対し、輻輳が発生していることを迅速に通知できるため、パケット通信ネットワークにおける過度のトラヒックの集中を容易に抑制し、パケットの廃棄を回避することができる
なお、輻輳回避動作を行っているルータ１００ｂで輻輳が発生した場合、ルータ１００ｂの輻輳検出機能部１０３が、ルータ１００ｂに対向するルータ１００ａ，１００ｃ〜１００ｅの輻輳回避機能部１０４に輻輳通知を行うことで、輻輳回避動作がネットワーク全体に拡散していくことが考えられる。
【００６８】
輻輳回避動作は、ルートの変更、送信レートの抑制などで一時的にネットワーク性能を落とすことになるので、1箇所の輻輳発生がネットワーク全体に普及することは好ましくない。従って、輻輳回避動作を行っているルータは、自身で輻輳を検出しても、輻輳通知を行わないような仕様が考えられる。また、輻輳回避動作をしているルータが輻輳を検出した場合には、輻輳回避動作を解除することも考えられる。
【００６９】
また、上述した実施の形態では、ネットワークは５つのルータで構成されていたが、ルータの数は５つに限定されない。
【００７０】
また、上述した実施の形態では、輻輳検出機能部１０３がスイッチ部１０１を監視することによってスイッチ部１０１に輻輳が発生していることを検出した。スイッチ部１０１に輻輳が発生していることを検出する方法は、これに限られず、スイッチ部１０１が自ら、自身に輻輳が発生したことを輻輳検出機能部１０３へ通知するようにしてもよい。この場合、輻輳検出機能部１０３は、より迅速に輻輳の発生を検出することができる。
【００７１】
また、本発明においては、ルータ内の処理は上述の専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムをルータにて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムをルータに読み込ませ、実行するものであっても良い。ルータにて読取可能な記録媒体とは、フロッピーディスク、光磁気ディスク、ＤＶＤ、ＣＤなどの移設可能な記録媒体の他、ルータに内蔵されたＨＤＤなどを指す。
【図面の簡単な説明】
【００７２】
【図１】本発明のルータによって構成されたパケット通信ネットワークの実施の一形態を示す図である。
【図２】図１に示したルータの構成を示すブロック図である。
【図３】図１に示したネットワークにおいて輻輳制御を行う場合の輻輳状態となるルータと、それに対向するルータの動作を説明するためのタイムチャートである。
【図４】図２に示したルーティングテーブルの一設定例を示す図である。
【符号の説明】
【００７３】
１    通信回線
１００ａ〜１００ｎ    ルータ
１０１    スイッチ部
１０２ａ〜１０２ｎ    回線終端部
１０３    輻輳検出機能部
１０４    輻輳回避機能部
１０５    ルーティングテーブル
１０５ａ    宛先ネットワークカラム
１０５ｂ    ネクストホップカラム
１０５ｃ    ホップ数カラム
【図１】
2010041385.tif 000003
【図２】
2010041385.tif 000004
【図３】
2010041385.tif 000005
【図４】
2010041385.tif 000006