(57)【要約】【課題】ＩＰネットワークにおけるコネクションレス型プロトコル通信による輻輳制御を実現し、輻輳によって生じる通信の品質劣化や速度低下を抑制する。【解決手段】  輻輳を検出した通信装置（受信ノード）１０は、輻輳を検出することとなった通信先ＩＰアドレスへのコネクションレス型プロトコル通信時に、ＩＰヘッダにあるＥＣＮフィールドに輻輳通知情報を付与する。ＩＰヘッダにあるＥＣＮフィールドの輻輳通知情報を検出した通信装置（送信ノード）２０は、輻輳通知情報を検出した通信先ＩＰアドレスへのコネクションレス型プロトコル通信時に、送信レートを制限する。【選択図】図１
2011015288.tif 000002
【特許請求の範囲】
【請求項１】
ＩＰネットワークに接続して通信をおこなう通信装置において、
ＩＰ通信を処理するＩＰ処理部と、
コネクションレス型プロトコル通信を処理するプロトコル処理部と、
前記通信装置の輻輳を検出する輻輳検出部と、
前記輻輳を検出することとなった通信先ＩＰアドレスを判定するＩＰアドレス判定部と、
前記輻輳を検出することとなった通信先ＩＰアドレスへのコネクションレス型プロトコル通信時に、ＩＰヘッダにある輻輳通知をおこなうためのＥＣＮ（Explicit Congestion Notification）フィールドに輻輳通知情報を付与するＥＣＮ付与部と、
を備えることを特徴とする通信装置。
【請求項２】
前記ＥＣＮ付与部は、前記ＥＣＮフィールドのうちＥＣＴ（ECN Capable Transport）に自通信装置の輻輳通知情報を付与することを特徴とする請求項１記載の通信装置。
【請求項３】
さらに、前記ＥＣＮフィールドのうちＣＥ（Congestion Experienced）から、前記ＩＰネットワークの通信経路途中の輻輳通知情報を検出するＥＣＮ検出部を備え、
前記ＩＰアドレス判定部は、前記通信経路途中の輻輳通知情報を検出することとなった通信先ＩＰアドレスを判定し、
前記ＥＣＮ付与部は、前記通信経路途中の輻輳通知情報を検出することとなった通信先ＩＰアドレスへのコネクションレス型プロトコル通信時に、前記ＣＥに前記通信経路途中の輻輳通知情報を付与することを特徴とする請求項１記載の通信装置。
【請求項４】
ＩＰネットワークに接続して通信をおこなう通信装置において、
ＩＰ通信を処理するＩＰ処理部と、
コネクションレス型プロトコル通信を処理するプロトコル処理部と、
ＩＰヘッダにある輻輳通知をおこなうためのＥＣＮ（Explicit Congestion Notification）フィールドの輻輳通知情報を検出するＥＣＮ検出部と、
前記輻輳通知情報を検出した通信先ＩＰアドレスを判定するＩＰアドレス判定部と、
前記通信先ＩＰアドレスへのコネクションレス型プロトコル通信時に、送信レートを制限する送信レート制御部と、
を備えることを特徴とする通信装置。
【請求項５】
前記ＥＣＮ検出部は、前記ＥＣＮフィールドのうちＥＣＴ（ECN Capable Transport）から前記輻輳通知情報を検出することを特徴とする請求項４記載の通信装置。
【請求項６】
さらに、前記通信先ＩＰアドレスへのコネクションレス型プロトコル通信時に、前記ＥＣＮフィールドのＣＥ（Congestion Experienced）に輻輳通知情報を付与するＥＣＮ付与部を備え、
前記ＥＣＮ検出部は、前記ＣＥから、前記ＩＰネットワークの通信経路途中の輻輳通知情報を検出し、
前記ＩＰアドレス判定部は、前記通信経路途中の輻輳通知情報を検出することとなった通信先ＩＰアドレスを判定し、
前記ＥＣＮ付与部は、前記通信経路途中の輻輳通知情報を検出することとなった通信先ＩＰアドレスへのコネクションレス型プロトコル通信時に、前記ＣＥに輻輳通知情報を付与することを特徴とする請求項５記載の通信装置。
【請求項７】
ＩＰネットワークに接続して通信をおこなう通信装置の通信方法において、
前記通信装置の輻輳を検出し、
前記輻輳を検出することとなった通信先ＩＰアドレスへのコネクションレス型プロトコル通信時に、ＩＰヘッダにある輻輳通知をおこなうためのＥＣＮ（Explicit Congestion Notification）フィールドに輻輳通知情報を付与する、
ことを特徴とする通信装置の通信方法。
【請求項８】
ＩＰネットワークに接続して通信をおこなう通信装置の通信方法において、
ＩＰヘッダにある輻輳通知をおこなうためのＥＣＮ（Explicit Congestion Notification）フィールドの輻輳通知情報を検出し、
前記輻輳通知情報を検出した通信先ＩＰアドレスへのコネクションレス型プロトコル通信時に、送信レートを制限する、
ことを特徴とする通信装置の通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、インターネットなどのＩＰネットワークにおける、コネクションレス型プロトコル通信の輻輳制御をおこなうことができる通信装置、および通信方法に関する。
【背景技術】
【０００２】
従来より、インターネット、あるいはイントラネットなどのＩＰ（Internet Protocol）ネットワークにおいて、通信路の信頼性を確保する手段として、たとえば、両端のノード間でコネクションを確立して通信をおこなうＴＣＰ（Transmission Control Protocol）通信が知られている。ＴＣＰ／ＩＰ通信の信頼性確保の仕組みの一つとして輻輳制御があり、ＥＣＮ（Explicit Congestion Notification：明示的輻輳通知）フィールドが知られている（ＲＦＣ２４８１、ＲＦＣ３１６８参照）。ＥＣＮフィールドは、ＩＰヘッダのＴｏＳ（Type of Service：サービスタイプ）フィールドとＴＣＰヘッダの制御ビットを利用する。
【０００３】
ＥＣＮフィールドは、通信路の途中にあるルータが輻輳を起こしたときに、ルータがパケットを取りこぼし始める前に、末端のノードにルータの輻輳を知らせる機能である。これにより、末端のノードは、ルータがパケットを取りこぼす前にデータの送信速度を抑制して輻輳を回避することができる。
【０００４】
ここで、ＥＣＮフィールドについて図４を用いて説明する。図４は、ＩＰヘッダ内ＴｏＳフィールドのＥＣＮフォーマットを示す図である。ＥＣＮフィールドは、ＩＰヘッダ内ＴｏＳフィールド５００の８ビット（第０ビットから第７ビット）のうち第６ビットと第７ビットを用いる。このうち、第６ビットは、ＥＣＴ（ECN Capable Transport：明示的輻輳通知対応情報）として、第７ビットは、ＣＥ（Congestion Experienced：輻輳検出）として定義されている。
【０００５】
そして、ＥＣＮフィールドにより実現する輻輳制御機能は、概略以下のような手順で実現される。
ＴＣＰ／ＩＰ通信をおこなう送信ノードと受信ノードは、通信の開始にあたり、ＴＣＰにて３ウェイハンドシェークによるコネクションの確立をおこなう。そして、送信ノードと受信ノードは、３ウェイハンドシェークによるコネクションの確立の処理の中で、ＥＣＮフィールドのサポート可否のネゴシエーションをおこなう。ＥＣＮフィールドによる輻輳制御は、両ノードでＥＣＮフィールドのサポートが確認されることにより有効になる。
【０００６】
両ノードの通信経路の途中に位置するルータが輻輳を検出すると、転送するパケットのＩＰヘッダにあるＣＥに１をセットする。ＣＥに１がセットされたパケットを受信した受信ノードは、通信経路の途中にあるルータで輻輳が発生していることを認識する。ルータの輻輳を認識した受信ノードは、ＴＣＰによるＡＣＫ応答時に、ＴＣＰヘッダのＥＣＥ（ECN Echo：明示的輻輳通知のエコー）フラグを有効にする。送信ノードは、受信ノードからＥＣＥフラグが有効にされたＡＣＫを受信すると、次回の送信データの流量を減らすとともに、受信ノードに対してＴＣＰヘッダのＣＷＲ（Congestion Window Reduced：輻輳ウインドウ減少通知）フラグを有効にしてパケットを送信する。ＣＷＲフラグが有効にされたパケットを受信した受信ノードは、送信ノードで送信データの流量制限がおこなわれていることを認識する。
【０００７】
このように、ＥＣＮフィールドは、通信路の途中にあるルータが輻輳を起こしても、パケットロスによる再送制御やスロースタート制御を回避して通信経路の通信量を適正に保つ輻輳制御を可能にしている。
【０００８】
なお、ＥＣＮフィールドは、ＴＣＰのほか、ＳＣＴＰ（Stream Control Transmission Protocol）など、ＩＰの上位層にあるトランスポート層の通信プロトコルと組み合わせて用いられることもある。
【０００９】
一方、コネクションレス型のプロトコルであるＵＤＰ（User Datagram Protocol）は、処理が高速でオーバーヘッドが少ない反面、通信の信頼性の確保を上位層に委ねたベストエフォート型のプロトコルであり、ＲＦＣによってＥＣＮフィールドがサポートされていない。したがって、たとえば、モバイルＩＰネットワークのように、トラフィックの大半を占めるユーザデータにＵＤＰが使われている場合、ＥＣＮフィールドを使うことが困難である。また、映像や音楽などのストリーミング配信に用いられるストリーミング系のプロトコル（たとえば、ＲＴＰ（Real Time Protocol）など）なども、通信にＵＤＰを使うので、ＥＣＮフィールドを使うことは困難である。
【００１０】
このように、受信ノードや、通信経路の途中のルータで発生する輻輳に対して、ＵＤＰに依存した流量制御をおこなうことは困難なので、トランスポート層より上位層の別なプロトコルで流量制御をおこなうことが求められる。ＵＤＰによるデータ伝送において、伝送品質を向上させるために、通信路の往復伝播遅延時間を測定し、適当な伝送レートを決定して通信をおこなう通信方法についての提案がある（たとえば、特許文献１参照）。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】国際公開第２００２／０２５８７８号
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、上記提案では、伝送レート変更時に送信データを一時停止することが求められ、送信ノードが受信ノードの輻輳を検出することも困難である。
また、通信回線の品質の向上とともに、ＵＤＰとはいえ、ビット欠落の許されない信頼性の高い通信を高速かつ大容量におこなうことが求められている。
【００１３】
たとえば、モバイル端末間における通信は、モバイル端末と基地局間の通信と、基地局−基地局間のコアネットワークでの通信とにより実現している。コアネットワークを構成する主な機器であるルータは、高性能かつ大容量化、負荷分散処理が考慮されていることから、輻輳は少なくなってきている。
【００１４】
一方、コアネットワークへのアクセス機器であり、エッジノード機器の１つとなる基地局は、ＩＰデータの送受信処理の末端となるため、都市部や密集地、イベント等でのハンドオーバによるトラフィック集中によって輻輳が発生しやすい。このようなモバイル端末間における通信であれば、ＥＮＤ（モバイル端末）−ＥＮＤ（モバイル端末）間の再送制御に頼るのではなく、基地局間を繋ぐコアネットワークで輻輳によるパケットの破棄を減らすことが望ましい。
【００１５】
本発明は、ＩＰネットワークにおけるコネクションレス型プロトコル通信による輻輳制御を実現し、輻輳によって生じる通信の品質劣化や速度低下を抑制することができる通信装置、および通信方法の提供を目的とする。
【課題を解決するための手段】
【００１６】
上記課題を解決するために、ＩＰ処理部と、プロトコル処理部と、輻輳検出部と、ＩＰアドレス判定部と、ＥＣＮ付与部とを備え、ＩＰネットワークに接続して通信をおこなう通信装置が提供される。
【００１７】
ＩＰ処理部は、ＩＰ通信を処理する。プロトコル処理部は、コネクションレス型プロトコル通信を処理する。輻輳検出部は、通信装置の輻輳を検出する。ＩＰアドレス判定部は、輻輳を検出することとなった通信先ＩＰアドレスを判定する。ＥＣＮ付与部は、輻輳を検出することとなった通信先ＩＰアドレスへのコネクションレス型プロトコル通信時に、ＩＰヘッダにある輻輳通知をおこなうためのＥＣＮ（Explicit Congestion Notification）フィールドに輻輳通知情報を付与する。
【００１８】
また、上記課題を解決するために、ＩＰ処理部と、プロトコル処理部と、ＥＣＮ検出部と、ＩＰアドレス判定部と、送信レート制御部とを備え、ＩＰネットワークに接続して通信をおこなう通信装置が提供される。
【００１９】
ＩＰ処理部は、ＩＰ通信を処理する。プロトコル処理部は、コネクションレス型プロトコル通信を処理する。ＥＣＮ検出部は、ＩＰヘッダにある輻輳通知をおこなうためのＥＣＮ（Explicit Congestion Notification）フィールドの輻輳通知情報を検出する。ＩＰアドレス判定部は、輻輳通知情報を検出した通信先ＩＰアドレスを判定する。送信レート制御部は、通信先ＩＰアドレスへのコネクションレス型プロトコル通信時に、送信レートを制限する。
【発明の効果】
【００２０】
上記の通信装置、および通信方法によれば、ＩＰネットワークにおけるコネクションレス型プロトコル通信による輻輳制御を実現し、輻輳によって生じる通信の品質劣化や速度低下を抑制することができる。
【図面の簡単な説明】
【００２１】
【図１】第１の実施形態の通信装置のブロック図である。
【図２】第２の実施形態のＩＰネットワーク構成例を示す図である。
【図３】第２の実施形態の通信装置のブロック図である。
【図４】ＩＰヘッダ内ＴｏＳフィールドのＥＣＮフォーマットを示す図である。
【図５】第２の実施形態の通信装置における受信処理のフローチャートである。
【図６】第２の実施形態の通信装置におけるＥＣＮビット定義を示す表である。
【図７】第２の実施形態の通信装置における受信データバッファリング処理のフローチャートである。
【図８】第２の実施形態の通信装置におけるＥＣＮ処理のフローチャートである。
【図９】第２の実施形態の通信装置におけるＣＥ無視タイマ処理のフローチャートである。
【図１０】第２の実施形態の通信装置における送信レート判定処理のフローチャートである。
【図１１】第２の実施形態の通信装置における送信レート制限タイマ処理のフローチャートである。
【図１２】第２の実施形態の通信装置における送信処理のフローチャートである。
【図１３】第２の実施形態の通信装置における送信処理のフローチャートである。
【図１４】片方向ノードのみ輻輳発生、ルータ輻輳なしのＥＣＮ動作の一例を示す動作フローである。
【図１５】両方向ノードで輻輳発生、ルータ輻輳なしのＥＣＮ動作の一例を示す動作フローである。
【図１６】ノード輻輳なし、片側ルータのみ輻輳発生のＥＣＮ動作の一例を示す動作フローである。
【図１７】ノード輻輳なし、送受信ともにルータで輻輳発生のＥＣＮ動作の一例を示す動作フローである。
【図１８】ノードで輻輳発生、ルータで輻輳発生のＥＣＮ動作の一例を示す動作フローである。
【図１９】第２の実施形態の通信装置のハードウェア構成例を示す図である。
【発明を実施するための形態】
【００２２】
以下、実施形態を図面を参照して説明する。
図１は、第１の実施形態の通信装置のブロック図である。
通信装置１０と通信装置２０は、ＩＰネットワーク３００に接続するエッジノードであり、たとえば、移動通信システムの基地局である。ＩＰネットワーク３００は、ＩＰ（インターネットプロトコル）による通信ネットワークであり、通信経路途中に図示しない複数のルータを備え、通信装置（受信ノード）１０、通信装置（送信ノード）２０のほかにも図示しない通信装置をエッジノードとして接続する。通信装置１０と通信装置２０とＩＰネットワーク３００は、通信システムを構成する。
【００２３】
通信装置１０は、輻輳検出部１１と、ＩＰアドレス判定部１２と、ＥＣＮ付与部１３と、プロトコル処理部１４と、ＩＰ処理部１５とを備える。通信装置１０は、ＩＰネットワーク３００に接続し、通信装置２０を含め、図示しない通信装置と通信をおこなう。輻輳検出部１１は、通信装置１０の輻輳状態を検出する。輻輳検出部１１は、たとえば、通信装置１０の受信バッファがオーバーフローすること、またはそのおそれがあることを監視することにより輻輳状態を検出する。
【００２４】
ＩＰアドレス判定部１２は、送信するコネクションレス型プロトコルの通信相手が輻輳を通知すべき通信相手か否かを、通信装置１０と通信をおこなった通信装置のＩＰアドレスに基づいて判定する。
【００２５】
ＥＣＮ付与部１３は、輻輳検出部１１が輻輳状態を検出した場合に、ＩＰアドレス判定部１２が輻輳状態を通知すべき通信相手としたＩＰアドレス宛のＩＰヘッダ内ＴｏＳフィールド５００のＥＣＮフィールドのうちＥＣＴビットに輻輳状態を示す情報（たとえば、１）をセットする。
【００２６】
プロトコル処理部１４は、ＩＰより上位層でポート間の通信サービスを提供する。プロトコル処理部１４は、コネクションレス型プロトコル（たとえば、ＵＤＰプロトコル）のヘッダを送信データに付してコネクションレス型プロトコルのパケット（データグラムともいう）を生成する。
【００２７】
ＩＰ処理部１５は、ＩＰヘッダをコネクションレス型プロトコルのパケットに付してＩＰパケットを生成する。
通信装置１０は、通信装置１０と通信をおこなった通信装置のＩＰアドレスを所定期間保存するＩＰアドレス保存部を備えてもよい。なお、保存対象となるＩＰアドレスは、所定条件を満たしたものに限定してもよいし、ＩＰアドレスの保存を所定期間ではなく所定条件成立までとしてもよい。
【００２８】
このような通信装置１０は、コネクションレス型プロトコルでの通信をおこないながら、通信相手となる通信装置に対して、自らの輻輳状態を通知することができる。
通信装置２０は、ＩＰ処理部２１と、プロトコル処理部２２と、ＥＣＮ検出部２３と、ＩＰアドレス判定部２４と、送信レート制御部２５とを備える。通信装置２０は、ＩＰネットワーク３００に接続し、通信装置１０を含め、図示しない通信装置と通信をおこなう。
【００２９】
ＩＰ処理部２１は、ＩＰパケットを受信し、上位層となるプロトコル処理部２２にコネクションレス型プロトコルのパケットを受け渡す。
通信装置２０は、通信装置２０と通信をおこなった通信装置のＩＰアドレスを所定期間保存するＩＰアドレス保存部を備えてもよい。なお、保存対象となるＩＰアドレスは、所定条件を満たしたものに限定してもよいし、ＩＰアドレスの保存を所定期間ではなく所定条件成立までとしてもよい。
【００３０】
プロトコル処理部２２は、ＩＰより上位層でポート間の通信サービスを提供する。プロトコル処理部２２は、受信データを上位層（たとえば、アプリケーションプログラム）に受け渡す。
【００３１】
ＥＣＮ検出部２３は、ＩＰヘッダ内ＴｏＳフィールド５００のＥＣＮフィールドのうちＥＣＴビットをチェックし、通信相手の輻輳状態を検出する。
ＩＰアドレス判定部２４は、ＥＣＮ検出部２３の検出結果と、通信装置２０と通信をおこなった通信装置のＩＰアドレスとから輻輳状態にある通信相手への通信であるか否かを判定し、送信レート制御部２５に通知する。
【００３２】
送信レート制御部２５は、輻輳状態にある通信相手への送信レートを変更（たとえば、低減）する。送信レートの変更は、たとえば、出力キューのトラフィックシェーピング（単位時間あたりの出力データ数を増減させる）による帯域変更によりおこなうことができる。
【００３３】
このような通信装置２０は、コネクションレス型プロトコルでの通信をおこないながら、通信相手となる通信装置の輻輳状態を解消するための制御をおこなうことができる。
次に、第２の実施形態を用いてより具体的に説明する。まず、通信装置を接続するＩＰネットワークについて説明する。図２は、第２の実施形態のＩＰネットワーク構成例を示す図である。
【００３４】
ＩＰネットワーク３００は、ノード（通信装置）１００ａ、１００ｂ、１００ｃと、ルータ２００ａ、２００ｂ、２００ｃ、２００ｄを備えたコアネットワークである。なお、コアネットワークとは、基幹ネットワークであり、たとえば、通信事業者間を結ぶネットワークや、モバイル端末間における通信であれば、キャリアの基地局間のネットワーク、キャリア間のネットワークなどにあたる。
【００３５】
各ネットワーク構成機器は、ＩＰアドレスを有し、ネットワーク構成機器間でのＩＰ通信が可能である。ルータ２００ａ、２００ｂ、２００ｃ、２００ｄは、ルータ間を直接、または他のルータを介して間接的に接続し、複数の通信経路による通信が可能である。ネットワーク構成機器としてルータのほかに、レイヤ３スイッチなどをあげることができる。
【００３６】
ノード１００ａ、１００ｂ、１００ｃは、ＩＰより上位層（トランスポート層）のＴＣＰやＵＤＰにより、ノード間の通信をおこなう。
ノード１００ａは、たとえば、基地局であり、図示しない移動局と通信が可能である。また、ノード１００ａ、１００ｂ、１００ｃは、基地局に限らず、サービスを提供するためのサーバなどであってもよい。
【００３７】
このようなネットワークでは、ＩＰネットワーク３００を構成するネットワーク構成機器（ノード、またはルータ）の通信負荷が大きくなると輻輳が発生する。このため、ネットワーク構成機器は、輻輳を防止または解消する機能を備える。
【００３８】
次に、ＩＰネットワーク３００に接続する通信装置がおこなう処理について、図３を用いて説明する。図３は、第２の実施形態の通信装置のブロック図である。
通信装置１００は、ＵＤＰ送信処理部１１０と、ＩＰ送信処理部１２０と、ＩＰ受信処理部１３０と、ＵＤＰ受信処理部１４０と、輻輳検知部１５０とを備え、ＩＰネットワーク３００と接続し、他の通信装置とＵＤＰによる通信をおこなう。通信装置１００は、ＩＰネットワークに接続するノード（たとえば、ノード１００ａ、ノード１００ｂ、ノード１００ｃ）である。
【００３９】
ＵＤＰ送信処理部１１０は、上位層から送信データを受けて、ＵＤＰパケットをＩＰ送信処理部１２０に受け渡す。ＵＤＰ送信処理部１１０は、ＵＤＰ生成部１１１を備える。ＵＤＰ生成部１１１は、上位層から受け渡された送信データにＵＤＰヘッダを付してＵＤＰパケットを生成する。ＵＤＰヘッダは、送信元ポート番号、送信先ポート番号、データ長、チェックサムを含んでおり、ＵＤＰ自体に輻輳を回避する仕組みはない。トランスポート層のプロトコルは、ＵＤＰのほかにも、コネクションレス型のプロトコルあるいはベストエフォート型と呼ばれるプロトコルを用いることができる。
【００４０】
ＩＰ送信処理部１２０は、ＵＤＰ受信処理部１４０からＵＤＰパケットを受けて、ＩＰパケットをＩＰネットワークに接続する通信相手に送信する。ＩＰ送信処理部１２０は、ＩＰ生成部１２１と、ＥＣＮ付与部１２２と、ＩＰアドレス判定部１２３と、送信レート制御部１２４とを備える。
【００４１】
ＩＰ生成部１２１は、ＵＤＰ送信処理部１１０から受けたＵＤＰパケットにＩＰヘッダを付してＩＰパケットを生成する。
ＥＣＮ付与部１２２は、輻輳状態を通知すべき通信相手のＩＰアドレス宛のＩＰヘッダ内ＴｏＳフィールド５００のＥＣＮフィールドに輻輳状態を示す情報（たとえば、１）をセットする。ＥＣＮフィールドは、ＴｏＳフィールドの８ビット（第０ビットから第７ビット）のうち第６ビットと第７ビットであり、第６ビットのＥＣＴと、第７ビットのＣＥとを備える（図４参照）。ＥＣＮ付与部１２２は、通信装置１００の輻輳状態を通知する場合、ＥＣＴに輻輳状態を示す情報（たとえば、１）をセットする。また、ＥＣＮ付与部１２２は、通信経路途中のルータが輻輳状態にあり、ルータがＣＥに輻輳状態を示す情報（たとえば、１）をセットしたＩＰパケットを受け取った場合は、ＣＥに輻輳状態を示す情報（たとえば、１）をセットする。ＥＣＮ付与部１２２がＥＣＴ、ＣＥに輻輳状態を示す情報を付与する処理については、後で詳述する。
【００４２】
ＩＰアドレス判定部１２３は、通信相手が輻輳を通知すべき通信相手か否かを、後述するＩＰアドレス保存部１３２に記憶されているＩＰアドレスを参照して判定する。送信レート制御部１２４は、輻輳状態にある通信相手への送信レートを変更（たとえば、低減）する。送信レートの変更は、たとえば、出力キューのトラフィックシェーピングによる帯域変更によりおこなうことができる。
【００４３】
ＩＰ受信処理部１３０は、ＩＰネットワークに接続する通信相手から受信したＩＰパケットからＵＤＰパケットを取り出してＵＤＰ受信処理部１４０に受け渡す。ＩＰ受信処理部１３０は、ＩＰチェック部１３１とＩＰアドレス保存部１３２とを備える。ＩＰチェック部１３１は、ＩＰパケットのＩＰヘッダのチェックサムをチェックしてＩＰヘッダが壊れていると判断した場合は、受信したＩＰパケットを破棄する。また、ＩＰチェック部１３１は、ＩＰパケットのＩＰヘッダのプロトコル番号をチェックする。ＩＰチェック部１３１は、たとえば、プロトコル番号が「１１」であることにより、上位プロトコルがＵＤＰであることを判別する。ＩＰアドレス保存部１３２は、受信したＩＰパケットのＩＰアドレスを保存する。ＩＰアドレスの保存については、後で詳述する。
【００４４】
ＵＤＰ受信処理部１４０は、ＩＰ受信処理部１３０からＵＤＰパケットを受けて、ＵＤＰパケット中の受信データを上位層のアプリケーションに受け渡す。ＵＤＰ受信処理部１４０は、ＵＤＰチェック部１４１を備える。ＵＤＰチェック部１４１は、ＩＰ受信処理部１３０から受け取ったＵＤＰパケットから受信データ（通信データ）を取り出し、ＵＤＰヘッダで指定されるポート番号に基づいて上位アプリケーションに受信データを受け渡す。
【００４５】
輻輳検知部１５０は、通信装置１００の輻輳状態を検知し、検知した輻輳状態と、輻輳状態を通知すべきＩＰアドレスをＩＰ送信処理部１２０に通知する。輻輳検知部１５０は、ＥＣＮ検出部１５１と、ＩＰアドレス判定部１５２と、輻輳検出部１５３とを備える。ＥＣＮ検出部１５１は、ＩＰヘッダ内ＴｏＳフィールド５００のＥＣＮフィールドのＥＣＴをチェックし、通信相手の輻輳状態を検出する。また、ＥＣＮ検出部１５１は、ＩＰヘッダ内ＴｏＳフィールド５００のＥＣＮフィールドのＣＥをチェックし、通信相手との通信経路途中にあるルータの輻輳状態を検出する。ＩＰアドレス判定部１５２は、ＥＣＮ検出部１５１の検出結果と、ＩＰアドレス保存部１３２が保存するＩＰアドレスとから輻輳状態にある通信相手への通信であるか否かを判定する。輻輳検出部１５３は、通信装置１００の輻輳状態を検出する。
【００４６】
このようにすることで、通信装置１００は、ＵＤＰによる通信であっても、ＵＤＰの長所であるオーバーヘッドの少ない通信が可能でありながら、通信装置の輻輳状態、あるいは通信経路途中の輻輳状態の検出に基づく輻輳制御が可能になる。
【００４７】
次に、通信装置１００が実行する受信処理について図５を用いて説明する。図５は、第２の実施形態の通信装置における受信処理のフローチャートである。
通信装置１００は、ＩＰパケットを受信すると受信処理を開始する。以下、ステップ番号に沿って説明する。
【００４８】
［ステップＳ１０］ＩＰ受信処理部１３０は、ＩＰプロトコルによる通信を終端する処理をおこなう。ＩＰプロトコルによる通信を終端する処理は、受信したＩＰパケットのパケット長、フラグメントオフセット、チェックサム、上位プロトコル、通信先を確認する。
【００４９】
［ステップＳ１１］ＩＰ受信処理部１３０は、ＩＰパケットのパケット長、フラグメントオフセット、チェックサムのチェックにより、正常にＩＰパケットが受信された場合に、ステップＳ１２にすすむ。一方、ＩＰ受信処理部１３０は、ＩＰパケットのヘッダ部にあるパケット長、フラグメントオフセット、チェックサムのチェックにより、異常と判定した場合には、ステップＳ１８にすすみ、受信したＩＰパケットを破棄する。
【００５０】
［ステップＳ１２］ＩＰ受信処理部１３０は、ＩＰパケットの上位プロトコルのチェックにより、上位プロトコルがＵＤＰの場合に、ステップＳ１３にすすむ。一方、ＩＰ受信処理部１３０は、上位プロトコルがＵＤＰでない場合には、ステップＳ１８にすすみ、受信したＩＰパケットを破棄する。
【００５１】
［ステップＳ１３］ＵＤＰ受信処理部１４０は、ＵＤＰによる通信を終端する処理をおこなう。ＵＤＰによる通信を終端する処理は、受信したＵＤＰパケット（ＩＰパケットのペイロード）のヘッダ部にあるチェックサムを確認する。
【００５２】
［ステップＳ１４］ＵＤＰ受信処理部１４０は、チェックサムのチェックにより、正常にＵＤＰパケットが受信された場合に、ステップＳ１５にすすむ。一方、ＵＤＰ受信処理部１４０は、チェックサムのチェックにより、異常と判定した場合には、ステップＳ１８にすすみ、受信したＵＤＰパケットを破棄する。
【００５３】
［ステップＳ１５］通信装置１００は、受信データ（ＵＤＰパケットのペイロード）を受信バッファに蓄積する受信データバッファリング処理をおこなう。受信データバッファリング処理については、後で図７を用いて詳述する。
【００５４】
［ステップＳ１６］輻輳検知部１５０は、ＩＰヘッダ内ＴｏＳフィールド５００のＥＣＮフィールドのＥＣＴをチェックし、通信相手の輻輳状態をチェックする。また、輻輳検知部１５０は、ＩＰヘッダ内ＴｏＳフィールド５００のＥＣＮフィールドのＣＥをチェックし、通信相手との通信経路途中にあるルータの輻輳状態をチェックする。そして、検出した輻輳状態を通信相手に通知する内容を決定する。なお、ステップＳ１６にて実行されるＥＣＮ処理については、後で図８を用いて詳述する。
【００５５】
［ステップＳ１７］ＩＰ受信処理部１３０は、ＩＰプロトコルによる通信の通信相手の情報を保存して、受信処理を終了する。具体的には、ＩＰ受信処理部１３０は、受信したＩＰパケットの送信元ＩＰアドレスを保存し、所定時間経過後にクリアする。
【００５６】
ここで、ＥＣＮフィールドをＵＤＰに適用するための新しい定義について図６を用いて説明する。図６は、第２の実施形態の通信装置におけるＥＣＮビット定義を示す表である。
【００５７】
ＥＣＮビット定義５２０は、ＥＣＮフィールドの内容ごとに、ＵＤＰパケット送信時の、ＥＣＮ構成ビットの送信側となる通信装置１００の行動内容と、ＥＣＮ構成ビットの受信側となる通信装置１００の認識内容および行動内容を規定した表である。
【００５８】
ＥＣＮ［ＥＣＴ／ＣＥ］＝「００」の場合、ＥＣＮ構成ビットの送信側となる通信装置１００は、通常動作とする。また、ＥＣＮ構成ビットの受信側となる通信装置１００は、ＥＣＮ構成ビットの送信側となる通信装置１００およびＥＣＮ構成ビットの送信側となる通信装置１００との通信経路途中にあるルータに輻輳が発生していないことを認識し、通常動作であることを了解する。このとき、ＥＣＮ構成ビットの受信側となる通信装置１００は、送信レートを変更（制限）していた場合、もとの送信レートに戻す。
【００５９】
ＥＣＮ［ＥＣＴ／ＣＥ］＝「０１」の場合、ＥＣＮ構成ビットの送信側となる通信装置１００は、ＥＣＮ構成ビットの送信側となる通信装置１００に輻輳が発生していないことと、ＥＣＮ構成ビットの受信側となる通信装置１００との通信経路途中にあるルータに輻輳が発生していることとを通知する。また、ＥＣＮ構成ビットの受信側となる通信装置１００は、ＥＣＮ構成ビットの送信側となる通信装置１００に輻輳が発生していないことと、ＥＣＮ構成ビットの受信側となる通信装置１００との通信経路途中にあるルータに輻輳が発生していることとを認識する。このとき、ＥＣＮ構成ビットの受信側となる通信装置１００は、ＥＣＮ構成ビットの送信側となる通信装置１００に対して、ＵＤＰによる送信がある場合に、ＥＣＮ［ＥＣＴ／ＣＥ］＝「０１」を送信するとともに、送信レートの制限を要求する。
【００６０】
なお、ここで、ＥＣＮ構成ビットの送信側となる通信装置１００が通知する「ＥＣＮ構成ビットの受信側となる通信装置１００との通信経路途中にあるルータに輻輳が発生していること」は、［ＣＥ］＝「１」を通知された通信装置１００が、送信元に折り返し［ＣＥ］＝「１」を通知することがある。このため、ＥＣＮ構成ビットの送信側となる通信装置１００からＥＣＮ構成ビットの受信側となる通信装置１００に対する通信をおこなったときに、通信経路途中にあるルータに輻輳が発生していた場合を含む。
【００６１】
ＥＣＮ［ＥＣＴ／ＣＥ］＝「１０」の場合、ＥＣＮ構成ビットの送信側となる通信装置１００は、ＥＣＮ構成ビットの送信側となる通信装置１００に輻輳が発生していることを通知する。また、ＥＣＮ構成ビットの送信側となる通信装置１００は、ＥＣＮ構成ビットの受信側となる通信装置１００に対して、ＵＤＰによる送信がある場合に、送信レートの制限を要求する。また、ＥＣＮ構成ビットの受信側となる通信装置１００は、ＥＣＮ構成ビットの送信側となる通信装置１００に輻輳が発生していることと、ＥＣＮ構成ビットの受信側となる通信装置１００との通信経路途中にあるルータに輻輳が発生していないこととを認識する。このとき、ＥＣＮ構成ビットの受信側となる通信装置１００は、ＥＣＮ構成ビットの送信側となる通信装置１００に対して、ＵＤＰによる送信がある場合に、送信レートの制限をして送信する。
【００６２】
ＥＣＮ［ＥＣＴ／ＣＥ］＝「１１」の場合、ＥＣＮ構成ビットの送信側となる通信装置１００は、ＥＣＮ構成ビットの送信側となる通信装置１００に輻輳が発生していることと、ＥＣＮ構成ビットの受信側となる通信装置１００との通信経路途中にあるルータに輻輳が発生していることとを通知する。また、ＥＣＮ構成ビットの送信側となる通信装置１００は、ＥＣＮ構成ビットの受信側となる通信装置１００に対して、ＵＤＰによる送信がある場合に、送信レートの制限を要求する。また、ＥＣＮ構成ビットの受信側となる通信装置１００は、ＥＣＮ構成ビットの送信側となる通信装置１００に輻輳が発生していることと、ＥＣＮ構成ビットの受信側となる通信装置１００との通信経路途中にあるルータに輻輳が発生していることとを認識する。このとき、ＥＣＮ構成ビットの受信側となる通信装置１００は、ＥＣＮ構成ビットの送信側となる通信装置１００に対して、ＵＤＰによる送信がある場合に、送信レートの制限をして送信する。
【００６３】
このように、ＥＣＴの定義は、輻輳状態にある通信装置１００が、輻輳していることを通信相手の通信装置１００に通知することを目的としている。ＥＣＴは、通信経路途中にあるルータによって書き替えられることがないので、ＥＣＮフィールドを受信する側の通信装置は、通信相手の通信装置１００が輻輳していることを把握することができる。そして、ＣＥは、通信経路途中にあるルータが輻輳したときにセットされるため、従来のＥＣＮ機能と衝突することなく、そのまま使用可能である。
【００６４】
次に、通信装置１００により受信処理の中で実行される受信データバッファリング処理について、図７を用いて説明する。図７は、第２の実施形態の通信装置における受信データバッファリング処理のフローチャートである。受信データバッファリング処理は、通信装置１００の輻輳検知部１５０で実行される。
【００６５】
［ステップＳ２０］輻輳検知部１５０は、受信データをバッファ（受信バッファ）に格納する。受信バッファに格納された受信データは、上位アプリケーションに受け渡すことにより、受信バッファから削除される。
【００６６】
［ステップＳ２１］輻輳検知部１５０は、通信先ノード単位での受信データ量統計処理をおこなう。具体的には、単位時間ごとのＩＰアドレス単位の受信データ量（たとえば、パケット数やデータサイズ）を記憶し、これら単位時間ごとのＩＰアドレス単位の受信データ量を累積して、所定時間内のＩＰアドレス単位の受信データ量を記憶する。なお、累積加算に限らず、監視期間の平均負荷や監視期間のうちの一部の期間における最大負荷など、あるいはその他の通信負荷を評価するための統計データ量を記憶するようにしてもよい。
【００６７】
［ステップＳ２２］輻輳検知部１５０は、バッファに格納されている受信データ量を監視して、受信データがオーバーフローした場合（たとえば、受信データのバッファへの格納に失敗した場合）に、輻輳発生と判断する。または、輻輳検知部１５０は、輻輳発生のおそれがある場合（たとえば、バッファに格納されている受信データ量が所定の閾値よりも大きくなった場合）に、輻輳発生と判断する。輻輳検知部１５０は、輻輳発生と判断した場合に、ステップＳ２３にすすみ、輻輳発生と判断しなかった場合に、ステップＳ２５にすすむ。
【００６８】
［ステップＳ２３］輻輳検知部１５０は、受信データ量統計処理の結果に基づいて、輻輳の原因となったノード（通信装置１００）を選択する。選択するノードは、１つでもよいし、複数でもよい。複数のノードを選択する場合、その数は、あらかじめ設定された数でもよいし、所定条件を満たすノードとしてもよい。また、原因となったノードの判断基準は、たとえば、直近の通信をおこなったノードや、所定期間内の通信をおこなったノード、所定期間内の通信をおこなったノードのうち通信負荷の大きなノードとするなど、任意の基準を設定できる。
【００６９】
［ステップＳ２４］輻輳検知部１５０は、輻輳状態であること（ＥＣＴ＝「１」の指示）と、輻輳の原因ノードとして選択した通信先ノードのＩＰアドレスとをＩＰ送信処理部１２０に通知して受信データバッファリング処理を終了する。
【００７０】
［ステップＳ２５］輻輳検知部１５０は、輻輳状態にないこと（ＥＣＴ＝「０」の指示）と、輻輳の原因ノードとして選択していた通信先ノードのＩＰアドレスとをＩＰ送信処理部１２０に通知して受信データバッファリング処理を終了する。
【００７１】
次に、通信装置１００により受信処理の中で実行されるＥＣＮ処理について、図８、図９を用いて説明する。図８は、第２の実施形態の通信装置におけるＥＣＮ処理のフローチャートである。図９は、第２の実施形態の通信装置におけるＣＥ無視タイマ処理のフローチャートである。ＥＣＮ処理は、通信装置１００の輻輳検知部１５０で実行される。
【００７２】
［ステップＳ３０］ＥＣＮ検出部１５１は、受信したＩＰパケットのＥＣＮフィールドのＣＥをチェックし、ＣＥ＝「１」、つまり、通信経路途中にあるルータに輻輳が発生しているとされた場合、ステップＳ３１にすすむ。一方、ＥＣＮ検出部１５１は、受信したＩＰパケットのＥＣＮフィールドのＣＥをチェックし、ＣＥ＝「０」、つまり、通信経路途中にあるルータに輻輳が発生していないとされた場合、ステップＳ３４にすすむ。
【００７３】
［ステップＳ３１］ＥＣＮ検出部１５１は、ＣＥ無視タイマが動作中か否かを判定し、動作中でなければ、ステップＳ３２にすすむ。一方、ＥＣＮ検出部１５１は、ＣＥ無視タイマが動作中か否かを判定し、動作中であれば、ＥＣＮ処理を終了する。
【００７４】
［ステップＳ３２］ＥＣＮ検出部１５１は、タイムアップ時間をセットしてＣＥ無視タイマを起動する。
なお、ＣＥ無視タイマは、ＣＥ無視タイマ処理をタイマ割り込みで実行されることにより実現する（図９参照）。タイマ割り込みで実行されるＣＥ無視タイマ処理は、タイムアップしたか否かを判定（ステップＳ３００）し、タイムアップしていれば、タイムアップした旨をＥＣＮ検出部１５１に通知してＣＥ無視タイマ動作を終了する（ステップＳ３０１）。また、ＣＥ無視タイマ処理は、ＣＥ無視タイマがタイムアップしていなければ、ＣＥ無視タイマ処理を終了する。
【００７５】
このように、ＥＣＮ検出部１５１は、ＣＥ無視タイマを設け、ＣＥ＝「１」になってから所定時間の間、ＣＥを無視するので、ＣＥ＝「１」に基づく処理を所定時間で１回とすることができる。
【００７６】
［ステップＳ３３］ＥＣＮ検出部１５１は、「送信レート制限タイマ起動指示」と、受信したＩＰパケットの「通信先ノードＩＰアドレス」と、「ＣＥ状態連続送信指示」とをＩＰ送信処理部１２０に通知してＥＣＮ処理を終了する。なお、ＣＥ状態連続送信指示は、現在のＣＥの状態を連続（継続）して送信することを指示する情報である。
【００７７】
［ステップＳ３４］ＥＣＮ検出部１５１は、受信したＩＰパケットのＥＣＮフィールドのＥＣＴをチェックし、ＥＣＴ＝「１」、つまり、受信したＩＰパケットの通信先ノードに輻輳が発生しているとされた場合、ステップＳ３５にすすむ。一方、ＥＣＮ検出部１５１は、受信したＩＰパケットのＥＣＮフィールドのＥＣＴをチェックし、ＥＣＴ＝「０」、つまり、受信したＩＰパケットの通信先ノードに輻輳が発生していないとされた場合、ステップＳ３６にすすむ。
【００７８】
［ステップＳ３５］ＥＣＮ検出部１５１は、受信したＩＰパケットの「通信先ノードＩＰアドレス」と、「送信レート制限指示」とをＩＰ送信処理部１２０に通知してＥＣＮ処理を終了する。
【００７９】
［ステップＳ３６］ＥＣＮ検出部１５１は、「送信レート制限タイマ起動指示」と、受信したＩＰパケットの「通信先ノードＩＰアドレス」と、「送信レート制限戻し指示（送信レート制限の解除指示）」とをＩＰ送信処理部１２０に通知してＥＣＮ処理を終了する。
【００８０】
次に、通信装置１００が実行する送信レート判定処理について図１０、図１１を用いて説明する。図１０は、第２の実施形態の通信装置における送信レート判定処理のフローチャートである。図１１は、第２の実施形態の通信装置における送信レート制限タイマ処理のフローチャートである。送信レート判定処理は、通信装置１００のＩＰ送信処理部１２０の送信レート制御部１２４で実行される。
【００８１】
［ステップＳ４０］送信レート制御部１２４は、ＥＣＮ検出部１５１から通知された指示があるか否かを判定し、指示があればステップＳ４１にすすみ、指示がなければ送信レート判定処理を終了する。
【００８２】
［ステップＳ４１］送信レート制御部１２４は、ＥＣＮ検出部１５１から通知された指示が、送信レート制限タイマ動作中のノードを対象としたものか否か、いいかえれば対象ノードについて送信レート制限タイマが動作中か否かを判断する。送信レート制御部１２４は、対象ノードについて送信レート制限タイマが動作中であれば、送信レート判定処理を終了し、対象ノードについて送信レート制限タイマが動作中でなければステップＳ４２にすすむ。
【００８３】
なお、送信レート制限タイマは、送信レート制限タイマ処理がタイマ割り込みで実行されることにより実現する。タイマ割り込みで実行される送信レート制限タイマ処理は、タイムアップしたか否かを判定（ステップＳ４００）する。送信レート制限タイマ処理は、タイムアップしていれば、送信レート制限タイマ動作を終了（ステップＳ４０１）し、「対象ノード向けの送信レート制限解除指示」をセットして送信レート制限タイマ処理を終了する。また、送信レート制限タイマ処理は、送信レート制限タイマがタイムアップしていなければ、送信レート制限タイマ処理を終了する。
【００８４】
このように、送信レート制御部１２４は、送信レート制限タイマを設け、送信レートを制限してから所定時間経過で送信レートを解除するので、ハンドシェィクのないＵＤＰであっても適当に送信レートの制限をおこなうことができる。
【００８５】
［ステップＳ４２］送信レート制御部１２４は、ＥＣＮ検出部１５１から通知された指示が「送信レート制限戻し指示」であれば、ステップＳ４３にすすみ、「送信レート制限戻し指示」でなければ、ステップＳ４４にすすむ。
【００８６】
［ステップＳ４３］送信レート制御部１２４は、送信処理を実行するＩＰ送信処理部１２０に対して、「通信先ノードＩＰアドレス」と「送信レート制限戻し指示」を通知して、送信レート判定処理を終了する。
【００８７】
［ステップＳ４４］送信レート制御部１２４は、ＥＣＮ検出部１５１から通知された指示が「送信レート制限タイマ起動指示」であれば、ステップＳ４５にすすみ、「送信レート制限タイマ起動指示」でなければ、ステップＳ４７にすすむ。
【００８８】
［ステップＳ４５］送信レート制御部１２４は、ＥＣＮ検出部１５１から通知された「通信先ノードＩＰアドレス」で特定される対象ノードについて、送信レート制限タイマを起動する。送信レート制限タイマのタイムアップ時間は、予め設定した時間としてもよいし、条件（たとえば、通信条件）に応じて異なる時間が設定されるようにしてよい。
【００８９】
［ステップＳ４６］送信レート制御部１２４は、送信処理を実行するＩＰ送信処理部１２０に対して、「通信先ノードＩＰアドレス」と「ＣＥ状態連続送信指示」を通知して、送信レート判定処理を終了する。
【００９０】
［ステップＳ４７］送信レート制御部１２４は、ＥＣＮ検出部１５１から通知された指示が「送信レート制限指示」であれば、ステップＳ４８にすすみ、「送信レート制限指示」でなければ、送信レート判定処理を終了する。
【００９１】
［ステップＳ４８］送信レート制御部１２４は、送信処理を実行するＩＰ送信処理部１２０に対して、「通信先ノードＩＰアドレス」と「送信レート制限指示」を通知して、送信レート判定処理を終了する。
【００９２】
次に、通信装置１００が実行する受信処理について図１２、図１３を用いて説明する。図１２および図１３は、第２の実施形態の通信装置における送信処理のフローチャートである。
【００９３】
通信装置１００は、送信データがある場合に送信処理を開始する。以下、ステップ番号に沿って説明する。
［ステップＳ５０］ＩＰ送信処理部１２０は、送信パケットがあるか否かを判断し、送信パケットがあれば、ステップＳ５１にすすみ、送信パケットがなければ、ステップＳ６３にすすむ。
【００９４】
［ステップＳ５１］ＩＰ送信処理部１２０は、通信レート削減中の場合にＵＤＰによるデータ送信（ＵＤＰ出力）が可能か否かを判断する。ＩＰ送信処理部１２０は、ＵＤＰによるデータ送信が可能な場合は、ステップＳ５２にすすみ、ＵＤＰによるデータ送信が不可の場合は、ステップＳ６３にすすむ。
【００９５】
［ステップＳ５２］ＩＰ送信処理部１２０は、ＥＣＴ＝「１」の指示が通知されているか否かを判断する。ＩＰ送信処理部１２０は、ＥＣＴ＝「１」の指示が通知されている場合は、ステップＳ５３にすすみ、ＥＣＴ＝「１」の指示が通知されていない場合は、ステップＳ５５にすすむ。
【００９６】
［ステップＳ５３］ＩＰ送信処理部１２０は、送信パケットが、ＥＣＴ＝「１」の指示対象となるノード向けの通信であり、かつ、上位層をＵＤＰプロトコルとしたＩＰパケットか否かを判断する。ＩＰ送信処理部１２０は、判断が肯定される場合、ステップＳ５４にすすみ、判断が否定される場合は、ステップＳ５８にすすむ。
【００９７】
［ステップＳ５４］ＩＰ送信処理部１２０は、送信パケットのＩＰヘッダのＥＣＴに「１」をセットする。
［ステップＳ５５］ＩＰ送信処理部１２０は、ＥＣＴ＝「０」の指示が通知されているか否かを判断する。ＩＰ送信処理部１２０は、ＥＣＴ＝「０」の指示が通知されている場合は、ステップＳ５６にすすみ、ＥＣＴ＝「０」の指示が通知されていない場合は、ステップＳ５８にすすむ。
【００９８】
［ステップＳ５６］ＩＰ送信処理部１２０は、送信パケットが、ＥＣＴ＝「０」の指示対象となるノード向けの通信であり、かつ、上位層をＵＤＰプロトコルとしたＩＰパケットか否かを判断する。ＩＰ送信処理部１２０は、判断が肯定される場合、ステップＳ５７にすすみ、判断が否定される場合は、ステップＳ５８にすすむ。
【００９９】
［ステップＳ５７］ＩＰ送信処理部１２０は、送信パケットのＩＰヘッダのＥＣＴに「０」をセットする。
［ステップＳ５８］ＩＰ送信処理部１２０は、輻輳の原因となったノード（自ノードの輻輳状態を通知すべきノード）があるか否かをチェックする。
【０１００】
［ステップＳ５９］ＩＰ送信処理部１２０は、送信パケットが、輻輳の原因となったノード向けの通信であり、かつ、上位層をＵＤＰプロトコルとしたＩＰパケットか否かを判断する。ＩＰ送信処理部１２０は、判断が肯定される場合、ステップＳ６０にすすみ、判断が否定される場合は、ステップＳ６１にすすむ。
【０１０１】
［ステップＳ６０］ＩＰ送信処理部１２０は、送信レート制御部１２４から、送信レート制御の指示があったか否かを判断する。ＩＰ送信処理部１２０は、送信レート制御部１２４から、送信レート制御の指示があった場合、ステップＳ６１にすすみ、指示がなかった場合は、ステップＳ６４にすすむ。送信レート制御部１２４からの指示は、「送信レート制限指示」、「送信レート制限戻し指示」、「ＣＥ状態連続送信指示」と、指示の対象となるノードの「通信先ノードＩＰアドレス」とがある。これらの指示は、送信レート制御部１２４がおこなう送信レート判定処理で決定される。
【０１０２】
［ステップＳ６１］ＩＰ送信処理部１２０は、送信レート制御部１２４から、「対象ノード向けの送信レート制限解除指示」がある場合は、ステップＳ６２にすすみ、「対象ノード向けの送信レート制限解除指示」がない場合は、ステップＳ６６にすすむ。
【０１０３】
［ステップＳ６２］ＩＰ送信処理部１２０は、「対象ノード向けの送信レート制限解除指示」を受けて、対象ノード向けの送信レートを正常に復帰させる。
［ステップＳ６３］ＩＰ送信処理部１２０は、送信パケットのＩＰヘッダのＣＥに「０」をセットする。
【０１０４】
［ステップＳ６４］ＩＰ送信処理部１２０は、送信レート制限（制御）中であるか否かを判断し、制限中であればステップＳ６５にすすみ、制限中でなければステップＳ６７にすすむ。制限中か否かの判断は、後述する送信レート制限タイマの状態により判断できる。
【０１０５】
［ステップＳ６５］ＩＰ送信処理部１２０は、現送信レートを継続する。したがって、ＩＰ送信処理部１２０が送信レートを制限すると、制限された送信レートは、一定時間（制限タイマのタイムアップ時間）継続することになる。
【０１０６】
［ステップＳ６６］ＩＰ送信処理部１２０は、送信レート制御部１２４から、「ＣＥ連続送信開始指示」がある場合は、ステップＳ６９にすすみ、指示がない場合は、ステップＳ６７にすすむ。
【０１０７】
［ステップＳ６７］ＩＰ送信処理部１２０は、送信レート制御部１２４から、「対象ノード向けの送信レート制限指示」があったと判断できるので、対象ノード向けの送信レートを制限する。
【０１０８】
［ステップＳ６８］ＩＰ送信処理部１２０は、送信パケットのＩＰヘッダのＣＥに「０」をセットする。
［ステップＳ６９］ＩＰ送信処理部１２０は、送信パケットのＩＰヘッダのＣＥに「１」をセットする。
【０１０９】
［ステップＳ７０］ＩＰ送信処理部１２０は、ＩＰパケットを送信して送信処理を終了する。
次に、ノード１００ａとノード１００ｂとの間の通信における片方向ノードのみ輻輳発生、ルータ輻輳なしのＥＣＮ動作フローを図１４を用いて説明する。図１４は、片方向ノードのみ輻輳発生、ルータ輻輳なしのＥＣＮ動作の一例を示す動作フローである。
【０１１０】
ノード１００ａとノード１００ｂとは、ＩＰネットワーク３００と接続し、主としてノード１００ｂからノード１００ａに向けて大量のＵＤＰ通信をしているものとする。また、ＩＰネットワーク３００を構成するネットワーク構成機器の一つとしてルータ２００がある。ルータ２００は、ノード１００ａとノード１００ｂの通信経路途中にあるものとする。
【０１１１】
［ステップＳ１００］ノード１００ｂは、ＥＣＮ（ＥＣＴ／ＣＥ）フィールドに、「００」（ＥＣＴ＝「０」、ＣＥ＝「０」）をセットして、ＩＰパケットを送信する。
［ステップＳ１０１］ルータ２００は、ノード１００ｂとの通信経路途中の図示しないルータで輻輳が生じていなければ、ノード１００ｂがセットしたＥＣＮフィールドと同じ「００」のＩＰパケットを受け取る。そして、ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドを「００」として、ノード１００ａに向けてＩＰパケットを送信する。
【０１１２】
［ステップＳ１０２］ノード１００ａは、ＩＰパケットを正常に受信し、ＥＣＮフィールド＝「００」のうちＥＣＴ＝「０」により送信元のノード１００ｂに輻輳が発生していないことを知り、ＣＥ＝「０」により通信経路途中で輻輳が発生していないことを知る。
【０１１３】
［ステップＳ１０３］ノード１００ａは、ＥＣＮフィールドに「００」をセットして、ＩＰパケットを送信する。なお、ノード１００ａからノード１００ｂ方向へのＵＤＰ通信は、ノード１００ｂからノード１００ａ方向へのＵＤＰ通信があったことに基づいて必ずしも生じるものではない。
【０１１４】
［ステップＳ１０４］ルータ２００は、ノード１００ａとの通信経路途中の図示しないルータで輻輳が生じていなければ、ノード１００ａがセットしたＥＣＮフィールドと同じ「００」のＩＰパケットを受け取る。そして、ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドを「００」として、ノード１００ｂに向けてＩＰパケットを送信する。
【０１１５】
［ステップＳ１０５］ノード１００ｂは、ＩＰパケットを正常に受信し、ＥＣＮフィールド＝「００」のうちＥＣＴ＝「０」により送信元のノード１００ａに輻輳が発生していないことを知り、ＣＥ＝「０」により通信経路途中で輻輳が発生していないことを知る。
【０１１６】
［ステップＳ１０６］ノード１００ａに輻輳が発生する。このとき、ノード１００ｂは、ノード１００ａの輻輳発生の原因ノードの一つとされたとする。
なお、ノード１００ａは、ノード１００ｂ以外にも図示しないノードと通信をしているため、ノード１００ｂからのＩＰパケットの受信中に輻輳を発生するとは限らず、ノード１００ｂからのＩＰパケットの受信から時間差をもって輻輳が発生する場合がある。
【０１１７】
［ステップＳ１０７］ノード１００ａは、ＥＣＮフィールドに「１０」をセットして、ノード１００ｂにＩＰパケットを送信することで、ノード１００ｂにノード１００ａの輻輳発生を通知する。なお、ノード１００ａは、ノード１００ａが輻輳発生中であっても、輻輳発生をトリガとしたＵＤＰ通信をおこなうことはない。したがって、ノード１００ａは、ＵＤＰ通信が生じた際に、ノード１００ｂに向けた輻輳発生を通知するに過ぎない。
【０１１８】
［ステップＳ１０８］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ１０９］ノード１００ｂは、ＩＰパケットを受信し、ＥＣＮフィールド＝「１０」（ＥＣＴ＝「１」、ＣＥ＝「０」）のうちＥＣＴ＝「１」により送信元のノード１００ａに輻輳が発生していることを知る。
【０１１９】
［ステップＳ１１０］ノード１００ｂは、ＥＣＮフィールド＝「００」として、ＩＰパケットの送信レートを低くして送信する。
［ステップＳ１１１］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
【０１２０】
［ステップＳ１１２］ノード１００ａは、ＩＰパケットを正常に受信する。このとき、ノード１００ｂからのＩＰパケットの送信レートが制限されているため、ノード１００ａの輻輳が解消に向かうことが期待できる。
【０１２１】
［ステップＳ１１３］ノード１００ａの輻輳が解消する。
［ステップＳ１１４］ノード１００ａは、ＥＣＮフィールドに「００」をセットして、ノード１００ｂにＩＰパケットを送信することで、ノード１００ｂにノード１００ａの輻輳解消を通知する。
【０１２２】
［ステップＳ１１５］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ１１６］ノード１００ｂは、ＩＰパケットを受信し、ＥＣＮフィールド＝「００」（ＥＣＴ＝「０」、ＣＥ＝「０」）のうちＥＣＴ＝「０」により送信元のノード１００ａの輻輳が解消したことを知り、ＩＰパケットの送信レートを元に戻す。
【０１２３】
以上のように、双方向の通信が期待できないＵＤＰであっても、ＥＣＮフィールドを用いることで、通信相手の輻輳状態を知り、輻輳解消のための通信制御をおこなうことができる。
【０１２４】
次に、ノード１００ａとノード１００ｂとの間の通信における両方向ノードで輻輳発生、ルータ輻輳なしのＥＣＮ動作フローを図１５を用いて説明する。図１５は、両方向ノードで輻輳発生、ルータ輻輳なしのＥＣＮ動作の一例を示す動作フローである。
【０１２５】
ノード１００ａとノード１００ｂとは、ＩＰネットワーク３００と接続し、ノード１００ａとノード１００ｂとの間で双方向に大量のＵＤＰ通信をしているものとする。また、ＩＰネットワーク３００を構成するネットワーク構成機器の一つとしてルータ２００がある。ルータ２００は、ノード１００ａとノード１００ｂの通信経路途中にあるものとする。
【０１２６】
［ステップＳ１２０］ノード１００ｂは、ＥＣＮフィールド＝「００」をセットして、ＩＰパケットを送信する。
［ステップＳ１２１］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
【０１２７】
［ステップＳ１２２］ノード１００ａは、ＩＰパケットを正常に受信し、送信元のノード１００ｂ、通信経路途中のいずれでも輻輳が発生していないことを知る。
［ステップＳ１２３］ノード１００ａは、ＥＣＮフィールドに「００」をセットして、ＩＰパケットを送信する。
【０１２８】
［ステップＳ１２４］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ１２５］ノード１００ｂは、ＩＰパケットを正常に受信し、送信元のノード１００ａ、通信経路途中のいずれでも輻輳が発生していないことを知る。
【０１２９】
［ステップＳ１２６］ノード１００ａに輻輳が発生する。このとき、ノード１００ｂは、ノード１００ａの輻輳発生の原因ノードの一つとされたとする。
［ステップＳ１２７］ノード１００ｂに輻輳が発生する。このとき、ノード１００ａは、ノード１００ｂの輻輳発生の原因ノードの一つとされたとする。
【０１３０】
［ステップＳ１２８］ノード１００ａは、ＥＣＮフィールドに「１０」をセットして、ノード１００ｂにＩＰパケットを送信することで、ノード１００ｂにノード１００ａの輻輳発生を通知する。
【０１３１】
［ステップＳ１２９］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ１３０］ノード１００ｂは、ＩＰパケットを受信し、ＥＣＮフィールド＝「１０」により送信元のノード１００ａに輻輳が発生していることを知る。
【０１３２】
［ステップＳ１３１］ノード１００ｂは、ＥＣＮフィールドに「１０」をセットして、ノード１００ａにＩＰパケットを送信することで、ノード１００ａにノード１００ｂの輻輳発生を通知する。また、このとき、ノード１００ｂは、ノード１００ａの輻輳通知を受けていることからＩＰパケットの送信レートを低くして送信する。
【０１３３】
［ステップＳ１３２］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ１３３］ノード１００ａは、ＩＰパケットを受信し、ＥＣＮフィールド＝「１０」により送信元のノード１００ｂに輻輳が発生していることを知る。
【０１３４】
［ステップＳ１３４］ノード１００ａは、ノード１００ａの輻輳状態が継続していることから、ＥＣＮフィールドに「１０」をセットして、ノード１００ｂにＩＰパケットを送信する。また、このとき、ノード１００ａは、ノード１００ｂの輻輳通知を受けていることからＩＰパケットの送信レートを低くして送信する。
【０１３５】
［ステップＳ１３５］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ１３６］ノード１００ｂは、ＩＰパケットを受信し、ＥＣＮフィールド＝「１０」により送信元のノード１００ａの輻輳が継続していることを知る。
【０１３６】
［ステップＳ１３７］ノード１００ｂの輻輳が解消する。
［ステップＳ１３８］ノード１００ｂは、ノード１００ｂの輻輳が解消したことから、ＥＣＮフィールドに「００」をセットして、ノード１００ａにＩＰパケットを送信することで、ノード１００ａにノード１００ｂの輻輳解消を通知する。ただし、ノード１００ｂは、ノード１００ａの輻輳状態を検出していることから、ＩＰパケットの送信レートを低くして送信する。
【０１３７】
［ステップＳ１３９］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ１４０］ノード１００ａは、ＩＰパケットを受信し、ＥＣＮフィールド＝「００」により送信元のノード１００ｂの輻輳が解消したことを知り、ＩＰパケットの送信レートを元に戻す。
【０１３８】
［ステップＳ１４１］ノード１００ａの輻輳が解消する。
［ステップＳ１４２］ノード１００ａは、ノード１００ａの輻輳が解消したことから、ＥＣＮフィールドに「００」をセットして、ノード１００ｂにＩＰパケットを送信することで、ノード１００ｂにノード１００ａの輻輳解消を通知する。
【０１３９】
［ステップＳ１４３］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ１４４］ノード１００ｂは、ＩＰパケットを受信し、ＥＣＮフィールド＝「００」により送信元のノード１００ａの輻輳が解消したことを知り、ＩＰパケットの送信レートを元に戻す。
【０１４０】
以上のように、両端のノードで輻輳が発生する場合も、通信相手の輻輳状態を知り、輻輳解消のための通信制御をおこなうことができる。
次に、ノード１００ａとノード１００ｂとの間の通信におけるノード輻輳なし、片側ルータのみ輻輳発生のＥＣＮ動作フローを図１６を用いて説明する。図１６は、ノード輻輳なし、片側ルータのみ輻輳発生のＥＣＮ動作の一例を示す動作フローである。
【０１４１】
ノード１００ａとノード１００ｂとは、ＩＰネットワーク３００と接続し、主としてノード１００ｂからノード１００ａに向けて大量のＵＤＰ通信をしているものとする。また、ＩＰネットワーク３００を構成するネットワーク構成機器の一つとしてルータ２００がある。ルータ２００は、ノード１００ａとノード１００ｂの通信経路途中にあるものとする。
【０１４２】
［ステップＳ１５１］ノード１００ｂは、輻輳を発生していない。
［ステップＳ１５２］ノード１００ａは、輻輳を発生していない。
［ステップＳ１５３］ノード１００ｂは、ＥＣＮフィールド＝「００」をセットして、ＩＰパケットを送信する。
【０１４３】
［ステップＳ１５４］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ１５５］ノード１００ａは、ＩＰパケットを正常に受信し、送信元のノード１００ｂ、通信経路途中のいずれでも輻輳が発生していないことを知る。
【０１４４】
［ステップＳ１５６］ノード１００ａは、ＥＣＮフィールドに「００」をセットして、ＩＰパケットを送信する。
［ステップＳ１５７］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
【０１４５】
［ステップＳ１５８］ノード１００ｂは、ＩＰパケットを正常に受信し、送信元のノード１００ａ、通信経路途中のいずれでも輻輳が発生していないことを知る。
［ステップＳ１５９］ノード１００ｂは、ＥＣＮフィールド＝「００」をセットして、ＩＰパケットを送信する。
【０１４６】
［ステップＳ１６０］ルータ２００は、ルータ２００に輻輳が発生したため、ＥＣＮフィールド（ＥＣＴ／ＣＥ）に、「０１」（ＥＣＴ＝「０」、ＣＥ＝「１」）をセットしてＩＰパケットを転送する。なお、ルータ２００がＣＥに「１」を設定する動作は、たとえば、ＲＦＣの仕様に規定されている。
【０１４７】
［ステップＳ１６１］ノード１００ａは、ＩＰパケットを受信し、ＥＣＮフィールド＝「０１」（ＥＣＴ＝「０」、ＣＥ＝「１」）のうちＣＥ＝「１」により送信元のノード１００ｂとの通信経路途中に輻輳が発生していることを知る。
【０１４８】
［ステップＳ１６２］ノード１００ａは、ＣＥ＝「１」を受けて、ＣＥを無視する期間を設定する。ＣＥを無視する期間は、ＣＥ無視タイマの起動とタイムアップ監視により実現される。
【０１４９】
［ステップＳ１６３］ノード１００ａは、ＣＥ＝「１」を受けて、ＥＣＮフィールドに「０１」（ＥＣＴ＝「０」、ＣＥ＝「１」）をセットして、ノード１００ｂに通信経路途中に輻輳が発生していることを通知する。また、このとき、ノード１００ａは、通信経路途中の輻輳通知を受けていることからＩＰパケットの送信レートを低くして送信する。これにより、ノード１００ａとノード１００ｂの双方が送信レートを低くすることができ、早期に通信経路途中の輻輳を解消することを期待できる。なお、ノード１００ａは、一度、ＣＥ＝「１」を送信した後の次の機会のＩＰパケットの送信では、ＣＥ＝「０」とする。
【０１５０】
［ステップＳ１６４］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ１６５］ノード１００ｂは、ＩＰパケットを受信し、ＥＣＮフィールド＝「０１」（ＥＣＴ＝「０」、ＣＥ＝「１」）のうちＣＥ＝「１」により送信元のノード１００ａとの通信経路途中に輻輳が発生していることを知る。
【０１５１】
［ステップＳ１６６］ノード１００ｂは、ＣＥ＝「１」を受けて、ＣＥを無視する期間を設定する。
［ステップＳ１６７］ノード１００ａは、ステップＳ１６３でノード１００ｂに通信経路途中に輻輳が発生していることを通知していることから、ＥＣＮフィールドに「００」（ＥＣＴ＝「０」、ＣＥ＝「０」）をセットして、ノード１００ｂにＩＰパケットを送信する。これにより、ノード１００ａとノード１００ｂとの間で、ＣＥ＝「０」とならなくなることを防止している。なお、ノード１００ａは、一度、ＣＥ＝「１」を送信した後の次の機会のＩＰパケットの送信では、ＣＥ＝「０」とする。また、このとき、ノード１００ａはＩＰパケットの送信レートを、一定期間低くする指示があることから、送信レートを低くしてＩＰパケットを送信する。ＩＰパケットの送信レートを制限する期間は、送信レート制限タイマの起動とタイムアップ監視により実現される。
【０１５２】
［ステップＳ１６８］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ１６９］ノード１００ｂは、ＩＰパケットを正常に受信し、送信元のノード１００ａ、通信経路途中のいずれでも輻輳が発生していないことを知る。
【０１５３】
［ステップＳ１７０］ノード１００ｂは、ステップＳ１６５でＣＥ＝「１」を受けていることから、ＥＣＮフィールドに「０１」（ＥＣＴ＝「０」、ＣＥ＝「１」）をセットして、ノード１００ａに通信経路途中に輻輳が発生していたことを通知する。また、このとき、ノード１００ｂはＩＰパケットの送信レートを、一定期間低くする指示があることから、送信レートを低くしてＩＰパケットを送信する。
【０１５４】
［ステップＳ１７１］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ１７２］ノード１００ａは、ＩＰパケットを受信し、ＥＣＮフィールド＝「０１」（ＥＣＴ＝「０」、ＣＥ＝「１」）のうちＣＥ＝「１」により送信元のノード１００ｂとの通信経路途中に輻輳が発生している旨の通知を受けるが、ＣＥを無視する期間中の通知であるため、この通知を無視する。
【０１５５】
［ステップＳ１７３］ノード１００ｂは、ステップＳ１７０でノード１００ａに通信経路途中に輻輳が発生していることを通知していることから、ＥＣＮフィールドに「００」をセットして、ノード１００ａにＩＰパケットを送信する。なお、ノード１００ｂは、一度、ＣＥ＝「１」を送信した後の次の機会のＩＰパケットの送信では、ＣＥ＝「０」とする。また、このとき、ノード１００ｂはＩＰパケットの送信レートを、一定期間低くする指示があることから、送信レートを低くしてＩＰパケットを送信する。
【０１５６】
［ステップＳ１７４］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ１７５］ノード１００ａは、ＩＰパケットを正常に受信し、送信元のノード１００ｂ、通信経路途中のいずれでも輻輳が発生していないことを知る。
【０１５７】
［ステップＳ１７６］ノード１００ａは、ＥＣＮフィールドに「００」をセットするとともに、送信レート制限タイマがタイムアップしたことから、送信レートの制限を解除してＩＰパケットを送信する。
【０１５８】
［ステップＳ１７７］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ１７８］ノード１００ｂは、ＩＰパケットを正常に受信し、送信元のノード１００ａ、通信経路途中のいずれでも輻輳が発生していないことを知る。
【０１５９】
以上のように、ＩＰネットワーク３００の通信経路途中にあるルータ２００で輻輳が発生する場合も、通信経路の輻輳状態を知り、輻輳解消のための通信制御をおこなうことができる。
【０１６０】
次に、ノード１００ａとノード１００ｂとの間の通信におけるノード輻輳なし、送受信ともにルータで輻輳発生のＥＣＮ動作フローを図１７を用いて説明する。図１７は、ノード輻輳なし、送受信ともにルータで輻輳発生のＥＣＮ動作の一例を示す動作フローである。
【０１６１】
ノード１００ａとノード１００ｂとは、ＩＰネットワーク３００と接続し、ノード１００ａとノード１００ｂとの間で双方向に大量のＵＤＰ通信をしているものとする。また、ＩＰネットワーク３００を構成するネットワーク構成機器の一つとしてルータ２００がある。ルータ２００は、ノード１００ａとノード１００ｂの通信経路途中にあるものとする。
【０１６２】
［ステップＳ１８０］ノード１００ｂは、輻輳を発生していない。
［ステップＳ１８１］ノード１００ａは、輻輳を発生していない。
［ステップＳ１８２］ノード１００ｂは、ＥＣＮフィールド＝「００」をセットして、ＩＰパケットを送信する。
【０１６３】
［ステップＳ１８３］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ１８４］ノード１００ａは、ＩＰパケットを正常に受信し、送信元のノード１００ｂ、通信経路途中のいずれでも輻輳が発生していないことを知る。
【０１６４】
［ステップＳ１８５］ノード１００ａは、ＥＣＮフィールドに「００」をセットして、ＩＰパケットを送信する。
［ステップＳ１８６］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
【０１６５】
［ステップＳ１８７］ノード１００ｂは、ＩＰパケットを正常に受信し、送信元のノード１００ａ、通信経路途中のいずれでも輻輳が発生していないことを知る。
［ステップＳ１８８］ノード１００ｂは、ＥＣＮフィールド＝「００」をセットして、ＩＰパケットを送信する。
【０１６６】
［ステップＳ１８９］ルータ２００は、ルータ２００に輻輳が発生したため、ＥＣＮフィールド（ＥＣＴ／ＣＥ）に、「０１」（ＥＣＴ＝「０」、ＣＥ＝「１」）をセットしてＩＰパケットを転送する。なお、ルータ２００がＣＥに「１」を設定する動作は、たとえば、ＲＦＣの仕様に規定されている。
【０１６７】
［ステップＳ１９０］ノード１００ａは、ＩＰパケットを受信し、ＥＣＮフィールド＝「０１」（ＥＣＴ＝「０」、ＣＥ＝「１」）のうちＣＥ＝「１」により送信元のノード１００ｂとの通信経路途中に輻輳が発生していることを知る。
【０１６８】
［ステップＳ１９１］ノード１００ａは、ＣＥ＝「１」を受けて、ＣＥを無視する期間を設定する。
［ステップＳ１９２］ノード１００ａは、ＣＥ＝「１」を受けて、ＥＣＮフィールドに「０１」（ＥＣＴ＝「０」、ＣＥ＝「１」）をセットして、ノード１００ｂに通信経路途中に輻輳が発生していることを通知する。また、このとき、ノード１００ａは、通信経路途中の輻輳通知を受けていることからＩＰパケットの送信レートを低くして送信する。
【０１６９】
［ステップＳ１９３］ルータ２００は、輻輳が発生しているため、ＣＥ＝「１」を設定してＩＰパケットを転送する。なお、ルータ２００は、転送するＩＰパケットの受信時からＣＥ＝「１」が設定されているので、ルータ２００の輻輳とは関係なくＣＥ＝「１」のＩＰパケットを送信する。
【０１７０】
［ステップＳ１９４］ノード１００ｂは、ＩＰパケットを受信し、ＥＣＮフィールド＝「０１」（ＥＣＴ＝「０」、ＣＥ＝「１」）のうちＣＥ＝「１」により送信元のノード１００ａとの通信経路途中に輻輳が発生していることを知る。
【０１７１】
［ステップＳ１９５］ノード１００ｂは、ＣＥ＝「１」を受けて、ＣＥを無視する期間を設定する。
［ステップＳ１９６］ノード１００ａは、ステップＳ１９２でノード１００ｂに通信経路途中に輻輳が発生していることを通知していることから、ＥＣＮフィールドに「００」をセットして、ノード１００ｂにＩＰパケットを送信する。また、このとき、ノード１００ａはＩＰパケットの送信レートを、一定期間低くする指示があることから、送信レートを低くしてＩＰパケットを送信する。
【０１７２】
［ステップＳ１９７］ルータ２００は、ルータ２００に輻輳が発生したため、ＥＣＮフィールドに「０１」をセットしてＩＰパケットを転送する。
［ステップＳ１９８］ノード１００ｂは、ＩＰパケットを受信し、ＥＣＮフィールド＝「０１」（ＥＣＴ＝「０」、ＣＥ＝「１」）のうちＣＥ＝「１」により送信元のノード１００ａとの通信経路途中に輻輳が発生している旨の通知を受けるが、ＣＥを無視する期間中の通知であるため、この通知を無視する。
【０１７３】
［ステップＳ１９９］ノード１００ｂは、ステップＳ１９４でＣＥ＝「１」を受けていることから、ＥＣＮフィールドに「０１」（ＥＣＴ＝「０」、ＣＥ＝「１」）をセットして、ノード１００ａに通信経路途中に輻輳が発生していたことを通知する。また、このとき、ノード１００ｂはＩＰパケットの送信レートを、一定期間低くする指示があることから、送信レートを低くしてＩＰパケットを送信する。
【０１７４】
［ステップＳ２００］ルータ２００は、輻輳が発生しているため、ＣＥ＝「１」を設定してＩＰパケットを転送する。
［ステップＳ２０１］ノード１００ａは、ＩＰパケットを受信し、ＥＣＮフィールド＝「０１」（ＥＣＴ＝「０」、ＣＥ＝「１」）のうちＣＥ＝「１」により送信元のノード１００ｂとの通信経路途中に輻輳が発生している旨の通知を受けるが、ＣＥを無視する期間中の通知であるため、この通知を無視する。
【０１７５】
［ステップＳ２０２］ノード１００ｂは、ステップＳ１９９でノード１００ａに通信経路途中に輻輳が発生していることを通知していることから、ＥＣＮフィールドに「００」をセットして、ノード１００ａにＩＰパケットを送信する。また、このとき、ノード１００ｂはＩＰパケットの送信レートを、一定期間低くする指示があることから、送信レートを低くしてＩＰパケットを送信する。
【０１７６】
［ステップＳ２０３］ルータ２００は、輻輳が発生しているため、ＣＥ＝「１」を設定してＩＰパケットを転送する。
［ステップＳ２０４］ノード１００ａは、ＩＰパケットを受信し、ＥＣＮフィールド＝「０１」（ＥＣＴ＝「０」、ＣＥ＝「１」）のうちＣＥ＝「１」により送信元のノード１００ｂとの通信経路途中に輻輳が発生している旨の通知を受けるが、ＣＥを無視する期間中の通知であるため、この通知を無視する。
【０１７７】
［ステップＳ２０５］ノード１００ｂは、ステップＳ１９９でノード１００ａに通信経路途中に輻輳が発生していることを通知していることから、ＥＣＮフィールドに「００」をセットして、ノード１００ａにＩＰパケットを送信する。また、このとき、ノード１００ｂはＩＰパケットの送信レートを、一定期間低くする指示があることから、送信レートを低くしてＩＰパケットを送信する。
【０１７８】
［ステップＳ２０６］ルータ２００は、輻輳が発生しているため、ＣＥ＝「１」を設定してＩＰパケットを転送する。
［ステップＳ２０７］ノード１００ａは、ＩＰパケットを受信し、ＥＣＮフィールド＝「０１」（ＥＣＴ＝「０」、ＣＥ＝「１」）のうちＣＥ＝「１」により送信元のノード１００ｂとの通信経路途中に輻輳が発生していることを知る。ノード１００ａは、ステップＳ２０１、ステップＳ２０４では、輻輳発生の通知を無視したが、ＣＥを無視する期間が経過しているため、通信経路途中の輻輳発生を検出する。
【０１７９】
［ステップＳ２０８］ノード１００ａは、ＣＥ＝「１」を受けて、あらためてＣＥを無視する期間を設定する。
［ステップＳ２０９］ノード１００ｂは、送信レート制限タイマとＣＥ無視タイマとがタイムアップしているため、ＥＣＮフィールド＝「００」をセットして、ＩＰパケットを送信する。
【０１８０】
［ステップＳ２１０］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ２１１］ノード１００ａは、ＩＰパケットを正常に受信し、送信元のノード１００ｂ、通信経路途中のいずれでも輻輳が発生していないことを知る。
【０１８１】
［ステップＳ２１２］ノード１００ａは、送信レート制限タイマとＣＥ無視タイマとがタイムアップしているため、ＥＣＮフィールドに「００」をセットして、ＩＰパケットを送信する。
【０１８２】
［ステップＳ２１３］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ２１４］ノード１００ｂは、ＩＰパケットを正常に受信し、送信元のノード１００ａ、通信経路途中のいずれでも輻輳が発生していないことを知る。
【０１８３】
以上のように、ＩＰネットワーク３００の通信経路途中にあるルータ２００で送受信ともに輻輳が発生する場合であっても、通信経路の輻輳状態を知り、輻輳解消のための通信制御をおこなうことができる。
【０１８４】
次に、通信装置１００ａと通信装置１００ｂとの間の通信におけるノードで輻輳発生、ルータで輻輳発生のＥＣＮ動作フローを図１８を用いて説明する。図１８は、ノードで輻輳発生、ルータで輻輳発生のＥＣＮ動作の一例を示す動作フローである。
【０１８５】
ノード１００ａとノード１００ｂとは、ＩＰネットワーク３００と接続し、ノード１００ａとノード１００ｂとの間で双方向に大量のＵＤＰ通信をしているものとする。また、ＩＰネットワーク３００を構成するネットワーク構成機器の一つとしてルータ２００がある。ルータ２００は、ノード１００ａとノード１００ｂの通信経路途中にあるものとする。
【０１８６】
［ステップＳ２２０］ノード１００ｂは、輻輳を発生していない。
［ステップＳ２２１］ノード１００ａは、輻輳を発生していない。
［ステップＳ２２２］ノード１００ｂは、ＥＣＮフィールド＝「００」をセットして、ＩＰパケットを送信する。
【０１８７】
［ステップＳ２２３］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ２２４］ノード１００ａは、ＩＰパケットを正常に受信し、送信元のノード１００ｂ、通信経路途中のいずれでも輻輳が発生していないことを知る。
【０１８８】
［ステップＳ２２５］ノード１００ａは、ＥＣＮフィールドに「００」をセットして、ＩＰパケットを送信する。
［ステップＳ２２６］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
【０１８９】
［ステップＳ２２７］ノード１００ｂは、ＩＰパケットを正常に受信し、送信元のノード１００ａ、通信経路途中のいずれでも輻輳が発生していないことを知る。
［ステップＳ２２８］ノード１００ａに輻輳が発生する。このとき、ノード１００ｂは、ノード１００ａの輻輳発生の原因ノードの一つとされたとする。
【０１９０】
［ステップＳ２２９］ノード１００ｂは、ＥＣＮフィールド＝「００」をセットして、ＩＰパケットを送信する。
［ステップＳ２３０］ルータ２００は、ルータ２００に輻輳が発生したため、ＥＣＮフィールドに「０１」をセットしてＩＰパケットを転送する。
【０１９１】
［ステップＳ２３１］ノード１００ａは、ＩＰパケットを受信し、ＥＣＮフィールド＝「０１」（ＥＣＴ＝「０」、ＣＥ＝「１」）のうちＣＥ＝「１」により送信元のノード１００ｂとの通信経路途中に輻輳が発生していることを知る。
【０１９２】
［ステップＳ２３２］ノード１００ａは、ＣＥ＝「１」を受けて、ＣＥを無視する期間を設定する。
［ステップＳ２３３］ノード１００ａは、ノード１００ａの輻輳発生と、ＣＥ＝「１」の通知を受けて、ＥＣＮフィールドに「１１」（ＥＣＴ＝「１」、ＣＥ＝「１」）をセットしてＩＰパケットを送信する。また、このとき、ノード１００ａは、通信経路途中の輻輳通知を受けていることからＩＰパケットの送信レートを低くして送信する。
【０１９３】
［ステップＳ２３４］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ２３５］ノード１００ｂは、ＩＰパケットを受信し、ＥＣＮフィールド＝「１１」（ＥＣＴ＝「１」、ＣＥ＝「１」）のうちＣＥ＝「１」により送信元のノード１００ａとの通信経路途中に輻輳が発生していることを知る。また、ノード１００ｂは、ＩＰパケットを受信し、ＥＣＮフィールド＝「１１」（ＥＣＴ＝「１」、ＣＥ＝「１」）のうちＥＣＴ＝「１」により送信元のノード１００ａに輻輳が発生していることを知る。
【０１９４】
［ステップＳ２３６］ノード１００ｂは、ＣＥ＝「１」を受けて、ＣＥを無視する期間を設定する。
［ステップＳ２３７］ノード１００ａは、ノード１００ａの輻輳発生と、ＣＥ＝「０」（ステップＳ２３３で一度ＣＥ＝「１」を送信しているため）とから、ＥＣＮフィールドに「１０」をセットしてＩＰパケットを送信する。また、このとき、ノード１００ａは、送信レート制限タイマが起動中であることからＩＰパケットの送信レートを低くして送信する。
【０１９５】
［ステップＳ２３８］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ２３９］ノード１００ｂは、ＩＰパケットを受信し、ＥＣＮフィールド＝「１０」（ＥＣＴ＝「１」、ＣＥ＝「０」）のうちＥＣＴ＝「１」により送信元のノード１００ａに輻輳が発生していることを知る。
【０１９６】
［ステップＳ２４０］ノード１００ｂは、ステップＳ２３５でのＣＥ＝「１」の通知を受けて、ＥＣＮフィールドに「０１」（ＥＣＴ＝「０」、ＣＥ＝「１」）をセットしてＩＰパケットを送信する。また、このとき、ノード１００ｂは、ノード１００ａおよび通信経路途中の輻輳通知を受けていることからＩＰパケットの送信レートを低くして送信する。
【０１９７】
［ステップＳ２４１］ルータ２００は、輻輳が発生しているため、ＣＥ＝「１」を設定してＩＰパケットを転送する。
［ステップＳ２４２］ノード１００ａは、ＩＰパケットを受信し、ＥＣＮフィールド＝「０１」のうちＣＥ＝「１」により送信元のノード１００ｂとの通信経路途中に輻輳が発生している旨の通知を受けるが、ＣＥを無視する期間中の通知であるため、この通知を無視する。
【０１９８】
［ステップＳ２４３］ノード１００ｂは、ステップＳ２４０でノード１００ａに通信経路途中に輻輳が発生していることを通知していることから、ＥＣＮフィールドに「００」をセットして、ノード１００ａにＩＰパケットを送信する。また、このとき、ノード１００ｂはＩＰパケットの送信レートを、一定期間低くする指示があることから、送信レートを低くしてＩＰパケットを送信する。
【０１９９】
［ステップＳ２４４］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ２４５］ノード１００ａは、ＩＰパケットを正常に受信し、送信元のノード１００ｂ、通信経路途中のいずれでも輻輳が発生していないことを知る。
【０２００】
［ステップＳ２４６］ノード１００ａは、ノード１００ａの輻輳発生と、ＣＥ＝「０」（ステップＳ２３３で一度ＣＥ＝「１」を送信しているため）とから、ＥＣＮフィールドに「１０」（ＥＣＴ＝「１」、ＣＥ＝「０」）をセットしてＩＰパケットを送信する。なお、ノード１００ａは、送信レート制限タイマがタイムアップしていることからＩＰパケットの送信レートを元に戻して送信する。
【０２０１】
［ステップＳ２４７］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ２４８］ノード１００ｂは、ＩＰパケットを受信し、ＥＣＮフィールド＝「１０」（ＥＣＴ＝「１」、ＣＥ＝「０」）のうちＥＣＴ＝「１」により送信元のノード１００ａに輻輳が発生していることを知る。
【０２０２】
［ステップＳ２４９］ノード１００ｂは、ＥＣＮフィールドに「００」をセットして、ノード１００ａにＩＰパケットを送信する。ただし、ノード１００ｂは、ノード１００ａの輻輳状態を検出していることから、ＩＰパケットの送信レートを低くして送信する。
【０２０３】
［ステップＳ２５０］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ２５１］ノード１００ａは、ＩＰパケットを正常に受信し、送信元のノード１００ｂ、通信経路途中のいずれでも輻輳が発生していないことを知る。
【０２０４】
［ステップＳ２５２］ノード１００ａは、ノード１００ａの輻輳が継続していることからＥＣＮフィールドに「１０」をセットしてＩＰパケットを送信する。
［ステップＳ２５３］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
【０２０５】
［ステップＳ２５４］ノード１００ｂは、ＩＰパケットを受信し、ＥＣＮフィールド＝「１０」（ＥＣＴ＝「１」、ＣＥ＝「０」）のうちＥＣＴ＝「１」により送信元のノード１００ａに輻輳が発生していることを知る。
【０２０６】
［ステップＳ２５５］ノード１００ｂは、ＥＣＮフィールドに「００」をセットして、ノード１００ａにＩＰパケットを送信する。ただし、ノード１００ｂは、ノード１００ａの輻輳状態を検出していることから、ＩＰパケットの送信レートを低くして送信する。
【０２０７】
［ステップＳ２５６］ルータ２００は、輻輳が発生していないため、ＥＣＮフィールドをそのままにしてＩＰパケットを転送する。
［ステップＳ２５７］ノード１００ａは、ＩＰパケットを正常に受信し、送信元のノード１００ｂ、通信経路途中のいずれでも輻輳が発生していないことを知る。
【０２０８】
［ステップＳ２５８］ノード１００ａの輻輳が解消する。
以上のように、ノードの輻輳とＩＰネットワーク３００の通信経路途中にあるルータ２００の輻輳とが同時に発生する場合であっても、各々について独立に検出可能であり、輻輳解消のための通信制御をおこなうことができる。
【０２０９】
また、通信装置１００は、ＩＰヘッダのプロトコル番号によるＵＤＰの判断と、ＩＰアドレスによって通知先を決めている。このため、ＵＤＰを用いた上位アプリケーションが複数あるときにも、これらのＵＤＰ通信を区別せずに輻輳を監視することができるので、上位アプリケーションに輻輳制御を委ねるよりも好適に輻輳を避けることができる。
【０２１０】
なお、図１４から図１８を用いて、ノード１００ａとノード１００ｂ、ＩＰネットワーク３００の通信経路途中にあるルータ２００について説明したが、このような処理は、通信相手となるノード単位でおこなわれる。
【０２１１】
次に、第２の実施形態の通信装置を説明する。図１９は、第２の実施形態の通信装置のハードウェア構成例を示す図である。通信装置１００は、ＣＰＵ（Central Processing Unit）１６１によって装置全体が制御されている。ＣＰＵ１６１には、バス１６７を介してＲＡＭ（Random Access Memory）１６２、ＲＯＭ（Read Only Memory）１６３、通信インタフェース１６４、グラフィック処理装置１６５、および入出力インタフェース１６６が接続されている。
【０２１２】
ＲＡＭ１６２には、ＣＰＵ１６１に実行させるＯＳのプログラムや通信装置としての各種処理を実行するためのアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１６２には、ＣＰＵ１６１による処理に必要な各種データが格納される。ＲＯＭ１６３には、ＯＳ（Operating System）やアプリケーションプログラムが格納される。
【０２１３】
グラフィック処理装置１６５には、表示装置１７０が接続されている。グラフィック処理装置１６５は、ＣＰＵ１６１からの命令にしたがって、情報表示をおこなうための画像を表示装置１７０の画面に表示させる。
【０２１４】
入出力インタフェース１６６には、図示しない入力装置と出力装置とが接続される。入出力インタフェース１６６は、入力装置から送られてくる信号を、バス１６７を介してＣＰＵ１６１に送信する。
【０２１５】
通信インタフェース１６４は、ＩＰネットワーク３００に接続されている。通信インタフェース１６４は、ＩＰネットワーク３００を介して、他のコンピュータとの間で電子メールの送受信をおこなう。
【０２１６】
以上のようなハードウェア構成によって、本実施形態の処理を実現することができる。なお、ＩＰネットワーク３００を介して接続する他のコンピュータ（たとえば、メールサーバ、Ｗｅｂサーバなど）も同様のハードウェア構成で実現できる。
【０２１７】
なお、ＣＰＵ上で動作するソフトウェアでおこなう処理については、ＡＳＩＣ（Application Specific ＩＣ：特定用途向けＩＣ）を用いたハードウェア処理に置換可能である。
【０２１８】
このような通信装置１００は、たとえば、通信装置間でデータを送受信する。
なお、上記の処理は、コンピュータによって実現することができる。その場合、通信装置１００が有すべき処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０２１９】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０２２０】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【０２２１】
なお、上述の実施形態は、実施形態の要旨を逸脱しない範囲内において種々の変更を加えることができる。
さらに、上述の実施形態は、多数の変形、変更が当業者にとって可能であり、説明した正確な構成および応用例に限定されるものではない。
【０２２２】
以上説明した実施形態に基づき、以下の付記を開示する。
（付記１）  ＩＰネットワークに接続して通信をおこなう通信装置において、
ＩＰ通信を処理するＩＰ処理部と、
コネクションレス型プロトコル通信を処理するプロトコル処理部と、
前記通信装置の輻輳を検出する輻輳検出部と、
前記輻輳を検出することとなった通信先ＩＰアドレスを判定するＩＰアドレス判定部と、
前記輻輳を検出することとなった通信先ＩＰアドレスへのコネクションレス型プロトコル通信時に、ＩＰヘッダにある輻輳通知をおこなうためのＥＣＮ（Explicit Congestion Notification）フィールドに輻輳通知情報を付与するＥＣＮ付与部と、
を備えることを特徴とする通信装置。
【０２２３】
（付記２）前記ＥＣＮ付与部は、前記ＥＣＮフィールドのうちＥＣＴ（ECN Capable Transport）に自通信装置の輻輳通知情報を付与することを特徴とする付記１記載の通信装置。
【０２２４】
（付記３）さらに、前記ＥＣＮフィールドのうちＣＥ（Congestion Experienced）から、前記ＩＰネットワークの通信経路途中の輻輳通知情報を検出するＥＣＮ検出部を備え、
前記ＩＰアドレス判定部は、前記通信経路途中の輻輳通知情報を検出することとなった通信先ＩＰアドレスを判定し、
前記ＥＣＮ付与部は、前記通信経路途中の輻輳通知情報を検出することとなった通信先ＩＰアドレスへのコネクションレス型プロトコル通信時に、前記ＣＥに前記通信経路途中の輻輳通知情報を付与することを特徴とする付記１記載の通信装置。
【０２２５】
（付記４）前記ＥＣＮ付与部は、前記通信経路途中の輻輳通知情報の検出一回につき一度、前記ＣＥに前記通信経路途中の輻輳通知情報を付与することを特徴とする付記３記載の通信装置。
【０２２６】
（付記５）  前記ＥＣＮ検出部は、前記通信経路途中の輻輳通知情報を検出した場合には、前記通信経路途中の輻輳通知情報の検出を所定期間おこなわないことを特徴とする付記４記載の通信装置。
【０２２７】
（付記６）  ＩＰネットワークに接続して通信をおこなう通信装置において、
ＩＰ通信を処理するＩＰ処理部と、
コネクションレス型プロトコル通信を処理するプロトコル処理部と、
ＩＰヘッダにある輻輳通知をおこなうためのＥＣＮ（Explicit Congestion Notification）フィールドの輻輳通知情報を検出するＥＣＮ検出部と、
前記輻輳通知情報を検出した通信先ＩＰアドレスを判定するＩＰアドレス判定部と、
前記通信先ＩＰアドレスへのコネクションレス型プロトコル通信時に、送信レートを制限する送信レート制御部と、
を備えることを特徴とする通信装置。
【０２２８】
（付記７）前記ＥＣＮ検出部は、前記ＥＣＮフィールドのうちＥＣＴ（ECN Capable Transport）から前記輻輳通知情報を検出することを特徴とする付記６記載の通信装置。
（付記８）さらに、前記通信先ＩＰアドレスへのコネクションレス型プロトコル通信時に、前記ＥＣＮフィールドのＣＥ（Congestion Experienced）に輻輳通知情報を付与するＥＣＮ付与部を備え、
前記ＥＣＮ検出部は、前記ＣＥから、前記ＩＰネットワークの通信経路途中の輻輳通知情報を検出し、
前記ＩＰアドレス判定部は、前記通信経路途中の輻輳通知情報を検出することとなった通信先ＩＰアドレスを判定し、
前記ＥＣＮ付与部は、前記通信経路途中の輻輳通知情報を検出することとなった通信先ＩＰアドレスへのコネクションレス型プロトコル通信時に、前記ＣＥに輻輳通知情報を付与することを特徴とする付記７記載の通信装置。
【０２２９】
（付記９）前記ＥＣＮ付与部は、前記通信経路途中の輻輳通知情報の検出一回につき一度、前記ＣＥに前記通信経路途中の輻輳通知情報を付与することを特徴とする付記８記載の通信装置。
【０２３０】
（付記１０）前記ＥＣＮ検出部は、前記通信経路途中の輻輳通知情報を検出した場合には、前記通信経路途中の輻輳通知情報の検出を所定期間おこなわないことを特徴とする付記９記載の通信装置。
【０２３１】
（付記１１）ＩＰネットワークに接続して通信をおこなう通信装置の通信方法において、
前記通信装置の輻輳を検出し、
前記輻輳を検出することとなった通信先ＩＰアドレスへのコネクションレス型プロトコル通信時に、ＩＰヘッダにある輻輳通知をおこなうためのＥＣＮ（Explicit Congestion Notification）フィールドに輻輳通知情報を付与する、
ことを特徴とする通信装置の通信方法。
【０２３２】
（付記１２）ＩＰネットワークに接続して通信をおこなう通信装置の通信方法において、
ＩＰヘッダにある輻輳通知をおこなうためのＥＣＮ（Explicit Congestion Notification）フィールドの輻輳通知情報を検出し、
前記輻輳通知情報を検出した通信先ＩＰアドレスへのコネクションレス型プロトコル通信時に、送信レートを制限する、
ことを特徴とする通信装置の通信方法。
【符号の説明】
【０２３３】
１０、２０  通信装置
１１  輻輳検出部
１２、２４  ＩＰアドレス判定部
１３  ＥＣＮ付与部
１４、２２  プロトコル処理部
１５、２１  ＩＰ処理部
２３  ＥＣＮ検出部
２５  送信レート制御部
３００  ＩＰネットワーク
【図１】
2011015288.tif 000003
【図２】
2011015288.tif 000004
【図３】
2011015288.tif 000005
【図４】
2011015288.tif 000006
【図５】
2011015288.tif 000007
【図６】
2011015288.tif 000008
【図７】
2011015288.tif 000009
【図８】
2011015288.tif 000010
【図９】
2011015288.tif 000011
【図１０】
2011015288.tif 000012
【図１１】
2011015288.tif 000013
【図１２】
2011015288.tif 000014
【図１３】
2011015288.tif 000015
【図１４】
2011015288.tif 000016
【図１５】
2011015288.tif 000017
【図１６】
2011015288.tif 000018
【図１７】
2011015288.tif 000019
【図１８】
2011015288.tif 000020
【図１９】
2011015288.tif 000021