(57)【要約】【課題】マルチホーミングのアソシエーション確立時に特定の回線で輻輳が発生しても、データチャンクの送受信を可能にする。【解決手段】通信装置１０は、複数のアドレス情報１４を使用して対向通信装置２０と通信するための集約パス３０を制御する集約パス制御部１１と、複数のアドレス情報１４のそれぞれに対して、対向通信装置２０が受信可能なデータサイズである受信ウィンドウ情報を管理するウィンドウサイズ管理部１２と、受信ウィンドウ情報に基づいて複数のアドレス情報１４のいずれかを使用して対向通信装置２０へデータを送信する送信部１３と、を備えるものである。【選択図】図１
2013223234.tif 000002
【特許請求の範囲】
【請求項１】
複数のアドレス情報を使用して対向通信装置と通信するための集約パスを制御する集約パス制御部と、
前記複数のアドレス情報のそれぞれに対して、前記対向通信装置が受信可能なデータサイズである受信ウィンドウ情報を管理するウィンドウサイズ管理部と、
前記受信ウィンドウ情報に基づいて前記複数のアドレス情報のいずれかを使用して前記対向通信装置へデータを送信する送信部と、
を備える通信装置。
【請求項２】
前記送信部は、前記複数のアドレス情報のうち、データ送信可能なサイズの前記受信ウィンドウ情報に対応したアドレス情報を使用してデータを送信する、
請求項１に記載の通信装置。
【請求項３】
前記複数のアドレス情報のうち、特定のアドレス情報のパスに輻輳が発生した場合、その他のアドレス情報を使用してデータを送信する、
請求項１または２に記載の通信装置。
【請求項４】
前記特定のアドレス情報のパスの輻輳が解消した場合、前記特定のアドレス情報を使用したデータの送信を再開する、
請求項３に記載の通信装置。
【請求項５】
前記受信ウィンドウ情報は、自通信装置が受信可能なデータサイズである自装置の受信ウィンドウ情報を含んでいる、
請求項１乃至４のいずれか一項に記載の通信装置。
【請求項６】
前記アドレス情報はＩＰアドレスであり、前記集約パスはＳＣＴＰマルチホーミングのアソシエーションである、
請求項１乃至５のいずれか一項に記載の通信装置。
【請求項７】
前記アドレス情報はＩＰアドレスであり、前記集約パスはＴＣＰマルチホーミングのセッションである、
請求項１乃至５のいずれか一項に記載の通信装置。
【請求項８】
通信装置と対向通信装置とが通信可能に接続された通信システムであって、
前記通信装置は、
複数のアドレス情報を使用して前記対向通信装置と通信するための集約パスを制御する集約パス制御部と、
前記複数のアドレス情報のそれぞれに対して、前記対向通信装置が受信可能なデータサイズである受信ウィンドウ情報を管理するウィンドウサイズ管理部と、
前記受信ウィンドウ情報に基づいて前記複数のアドレス情報のいずれかを使用して前記対向通信装置へデータを送信する送信部と、
を備える通信システム。
【請求項９】
複数のアドレス情報を使用して対向通信装置と通信するための集約パスを制御し、
前記複数のアドレス情報のそれぞれに対して、前記対向通信装置が受信可能なデータサイズである受信ウィンドウ情報を管理し、
前記受信ウィンドウ情報に基づいて前記複数のアドレス情報のいずれかを使用して前記対向通信装置へデータを送信する、
通信方法。
【請求項１０】
対向通信装置と通信する通信処理をコンピュータに実行させる通信プログラムであって、
前記通信処理は、
複数のアドレス情報を使用して前記対向通信装置と通信するための集約パスを制御し、
前記複数のアドレス情報のそれぞれに対して、前記対向通信装置が受信可能なデータサイズである受信ウィンドウ情報を管理し、
前記受信ウィンドウ情報に基づいて前記複数のアドレス情報のいずれかを使用して前記対向通信装置へデータを送信する、
通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信システム、通信方法及び通信プログラムに関し、特に、ウィンドウサイズに基づいてデータを送信する通信装置、通信システム、通信方法及び通信プログラムに関する。
【背景技術】
【０００２】
ＯＳＩレイヤ４プロトコルであるＳＣＴＰ（Stream Control Transmission Protocol）では回線の冗長化を目的としてマルチホーミング機能を備えている。マルチホーミング機能とは、複数のＩＰアドレスを含めたアソシエーション（ＳＣＴＰにおけるセッションの呼称）を確立することを可能とする機能である。マルチホーミング機能により、アソシエーションは代替の回線を持つことになり、回線の障害に対する冗長化を実現することができる。
【０００３】
ＳＣＴＰでは回線の輻輳状態に応じてチャンク（ＳＣＴＰにおけるノード間で送受信されるデータの単位）の送信をコントロールするためにｃｗｎｄ（Ｃｏｎｇｅｓｔｉｏｎ  ｗｉｎｄｏｗ）を備えている一方、ＴＣＰ（Transmission Control Protocol）と同様にｒｗｎｄ（Ｒｅｃｅｉｖｅｒ  Ｗｉｎｄｏｗ）とａ＿ｒｗｎｄ（Ａｄｖｅｒｔｉｓｅｄ  Ｒｅｃｅｉｖｅｒ  Ｗｉｎｄｏｗ  Ｃｒｅｄｉｔ）により受信ウィンドウサイズのコントロールを行っている。
【０００４】
例えば、ＳＣＴＰに関連する技術として特許文献１や２が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−２３２８４１号公報
【特許文献２】特開２００６−１０１４２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
図５は、関連するＳＣＴＰにおけるノード間のアソシエーションとｒｗｎｄおよびａ＿ｒｗｎｄを示す構成図である。図５において、ＳＣＴＰノード９００は、マルチホーミングのアソシエーションα９２１で使用されるＩＰ  ａｄｄｒｅｓｓ  ａ９０１及びＩＰ  ａｄｄｒｅｓｓ  ｂ９０２と、シングルホーミングのアソシエーションω９２２で使用されるＩＰ  ａｄｄｒｅｓｓ  ｘ９０３が設定されている。ｒｗｎｄ  α９０４およびａ＿ｒｗｎｄ  α９０５はアソシエーションα９２１に対する受信ウィンドウ変数ｒｗｎｄ／ａ＿ｒｗｎｄである。ｒｗｎｄ  ω９０６およびａ＿ｒｗｎｄ  ω９０７はアソシエーションω９２２に対する受信ウィンドウ変数ｒｗｎｄ／ａ＿ｒｗｎｄである。
【０００７】
ＳＣＴＰピアノード９１０は、アソシエーションα９２１で使用されるＩＰ  ａｄｄｒｅｓｓ  Ａ９１１及びＩＰ  ａｄｄｒｅｓｓ  Ｂ９１２と、アソシエーションω９２２で使用されるＩＰ  ａｄｄｒｅｓｓ  Ｘ９１３が設定されている。ｒｗｎｄ  γ９１４およびａ＿ｒｗｎｄ  γ９１５はアソシエーションα９２１に対する受信ウィンドウ変数ｒｗｎｄ／ａ＿ｒｗｎｄである。ｒｗｎｄ  Ω９１６およびａ＿ｒｗｎｄ  Ω９１７はアソシエーションω９２２に対する受信ウィンドウ変数ｒｗｎｄ／ａ＿ｒｗｎｄである。
【０００８】
このように、関連するＳＣＴＰにおいてはアソシエーション単位でｒｗｎｄ／ａ＿ｒｗｎｄを保持している。これはアソシエーションに複数のＩＰアドレスが含まれるマルチホーミングであっても単一のｒｗｎｄ／ａ＿ｒｗｎｄにより受信ウィンドウサイズのコントロールが行われることを意味する。
【０００９】
この場合、アソシエーションがマルチホームであるとき、特定の回線における輻輳の発生によりｒｗｎｄ／ａ＿ｒｗｎｄが０に近づくと、単一のｒｗｎｄ／ａ＿ｒｗｎｄにより受信ウィンドウサイズをコントロールしていることが原因で、輻輳の発生していない他の回線においてもチャンクの送受信ができなくなるという現象が発生する。
【００１０】
したがって、関連する技術では、ＳＣＴＰマルチホーミングのアソシエーションのような集約パス確立時に特定の回線で輻輳が発生すると、輻輳の発生していない他の回線でもデータチャンク等のデータの送受信が不可能になるという問題があった。
【００１１】
本発明の目的は、このような問題を解決する通信装置、通信システム、通信方法及び通信プログラムを提供することにある。
【課題を解決するための手段】
【００１２】
本発明に係る通信装置は、複数のアドレス情報を使用して対向通信装置と通信するための集約パスを制御する集約パス制御部と、前記複数のアドレス情報のそれぞれに対して、前記対向通信装置が受信可能なデータサイズである受信ウィンドウ情報を管理するウィンドウサイズ管理部と、前記受信ウィンドウ情報に基づいて前記複数のアドレス情報のいずれかを使用して前記対向通信装置へデータを送信する送信部と、を備えるものである。
【００１３】
本発明に係る通信システムは、通信装置と対向通信装置とが通信可能に接続された通信システムであって、前記通信装置は、複数のアドレス情報を使用して前記対向通信装置と通信するための集約パスを制御する集約パス制御部と、前記複数のアドレス情報のそれぞれに対して、前記対向通信装置が受信可能なデータサイズである受信ウィンドウ情報を管理するウィンドウサイズ管理部と、前記受信ウィンドウ情報に基づいて前記複数のアドレス情報のいずれかを使用して前記対向通信装置へデータを送信する送信部と、を備えるものである。
【００１４】
本発明に係る通信方法は、複数のアドレス情報を使用して対向通信装置と通信するための集約パスを制御し、前記複数のアドレス情報のそれぞれに対して、前記対向通信装置が受信可能なデータサイズである受信ウィンドウ情報を管理し、前記受信ウィンドウ情報に基づいて前記複数のアドレス情報のいずれかを使用して前記対向通信装置へデータを送信するものである。
【００１５】
本発明に係る通信プログラムは、対向通信装置と通信する通信処理をコンピュータに実行させる通信プログラムであって、前記通信処理は、複数のアドレス情報を使用して前記対向通信装置と通信するための集約パスを制御し、前記複数のアドレス情報のそれぞれに対して、前記対向通信装置が受信可能なデータサイズである受信ウィンドウ情報を管理し、前記受信ウィンドウ情報に基づいて前記複数のアドレス情報のいずれかを使用して前記対向通信装置へデータを送信するものである。
【発明の効果】
【００１６】
本発明によれば、集約パスの確立時に特定の回線で輻輳が発生しても、データの送受信が可能な通信装置、通信システム、通信方法及び通信プログラムを提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明に係る通信装置の特徴を説明するための構成図である。
【図２】実施の形態１に係る通信システムの構成を示す構成図である。
【図３】実施の形態１に係る通信システムの動作を示すシーケンス図である。
【図４】実施の形態１に係る通信システムの動作を示すフローチャートである。
【図５】関連する通信システムの構成を示す構成図である。
【発明を実施するための形態】
【００１８】
（本発明の特徴）
本発明の実施の形態の説明に先立って、図１を用いて、本発明の特徴についてその概要を説明する。
【００１９】
図１に示すように、本発明に係る通信装置（ＳＣＴＰノードに相当）１０は、集約パス制御部（アソシエーション制御部に相当）１１、ウィンドウサイズ管理部１２、送信部１３を備えている。そして、集約パス制御部１１は、複数のアドレス情報１４を使用して対向通信装置２０と通信するための集約パス３０を制御し、ウィンドウサイズ管理部１２は、複数のアドレス情報１４のそれぞれに対して対向通信装置２０が受信可能なデータサイズである受信ウィンドウ情報１５を管理し、送信部１３は、受信ウィンドウ情報１５に基づいて複数のアドレス情報１４のいずれかを使用して対向通信装置２０へデータを送信することを本発明の主要な特徴としている。
【００２０】
このように、本発明に係る通信装置では、ＳＣＴＰマルチホーミング等のような集約パスを介して対向通信装置と接続する構成において、ＩＰアドレス等のようなアドレス情報毎に受信ウィンドウサイズを管理するため、特定の回線で輻輳が発生した場合でも他の輻輳の発生していない回線を使用してチャンク等のデータを送受信することができる。
【００２１】
なお、上記特許文献１には、マルチホーミングにおけるｒｗｎｄ／ａ＿ｒｗｎｄについて記載されていないため、本発明のようにマルチホーミングにおける輻輳時の課題を解決することはできない。
【００２２】
また、本発明は、輻輳回避に限らず障害回避を行うことが可能であるが、上記特許文献２は、輻輳回避のみを目的としているため、障害回避を行うことは困難である。特許文献２は、本発明のようにｒｗｎｄ／ａ＿ｒｗｎｄをＩＰアドレス単位に管理するものではないため、ｒｗｎｄ／ａ＿ｒｗｎｄが０に近づいたときに通信不可となる状況は変わらず、障害回避を行うことができない。
【００２３】
（実施の形態１）
以下、図面を参照して実施の形態１について説明する。本実施の形態は、ＩＰアドレス単位にｒｗｎｄ／ａ＿ｒｗｎｄを管理することを特徴とする。なお、本実施の形態は、ｒｗｎｄ／ａ＿ｒｗｎｄにより課題を解決するものであるため、ｃ＿ｒｗｎｄなどその他のパラメータについては、特に限定されない。
【００２４】
図２は、本実施の形態に係る通信システムの構成を示している。この通信システムは、ＳＣＴＰノード１００とＳＣＴＰピアノード２００とがネットワーク３００を介して接続されたＳＣＴＰ通信システムである。ＳＣＴＰノード１００とＳＣＴＰピアノード２００とは同様の構成であり、ＳＣＴＰを実装したノードである。図２では、ＳＣＴＰノード１００とＳＣＴＰピアノード２００の間でアソシエーションα３０１やアソシエーションω３０２が確立され、チャンクが送受信される。アソシエーションα３０１は複数のＩＰアドレスを含むマルチホーミングのアソシエーションであり、アソシエーションω３０２は１つのＩＰアドレスを含むシングルホーミングのアソシエーションである。
【００２５】
なお、ＳＣＴＰノード１００及びＳＣＴＰピアノード２００の各部（各機能、各処理部）は、ハードウェア又はソフトウェア、もしくはその両方によって構成される。また、ＳＣＴＰノード１００及びＳＣＴＰピアノード２００の各部を、ＣＰＵやメモリ等を有するコンピュータにより実現してもよい。例えば、ＳＣＴＰノード１００及びＳＣＴＰピアノード２００の各部を、本実施の形態に係る通信プログラムをＣＰＵで実行することにより実現してもよい。本実施の形態に係る通信プログラムは、図３や図４等で後述する動作をコンピュータで実行するためのプログラムである。
【００２６】
ＳＣＴＰノード１００は、主に、アソシエーション制御部１１０、ウィンドウサイズ管理部１２０、送信部１３０を備えており、さらに、ネットワークインタフェース部１００ａ、ＳＣＴＰ情報保持部１００ｂを備えている。
【００２７】
ネットワークインタフェース部１００ａは、１つまたは複数のインタフェースから構成され、複数のＩＰアドレスが設定されている。ＳＣＴＰでは、ＩＰアドレスを使用してアソシエーションを介したチャンクの送受信を行う。ネットワークインタフェース部１００ａに設定されるＩＰアドレスは、送信時にチャンクの送信元ＩＰアドレスとして指定されるアドレスであり、受信時にチャンクの宛先ＩＰアドレスとして指定されるアドレスである。
【００２８】
図２では、ＩＰ  ａｄｄｒｅｓｓ  ａ１０１、ＩＰ  ａｄｄｒｅｓｓ  ｂ１０２、ＩＰ  ａｄｄｒｅｓｓ  ｘ１０３が設定されている。ＩＰ  ａｄｄｒｅｓｓ  ａ１０１、ＩＰ  ａｄｄｒｅｓｓ  ｂ１０２は、マルチホーミングのアソシエーションα３０１で使用されるＩＰアドレスであり、ＩＰ  ａｄｄｒｅｓｓ  ｘ１０３は、シングルホーミングのアソシエーションω３０２で使用されるＩＰアドレスである。例えば、ＩＰ  ａｄｄｒｅｓｓ  ａ１０１は、ＳＣＴＰピアノード２００のＩＰ  ａｄｄｒｅｓｓ  Ａ２０１との間でパスを構成してチャンクを送受信し、ＩＰ  ａｄｄｒｅｓｓ  ｂ１０２は、ＳＣＴＰピアノード２００のＩＰ  ａｄｄｒｅｓｓ  Ｂ２０２との間でパスを構成してチャンクを送受信し、ＩＰ  ａｄｄｒｅｓｓ  ｘ１０３は、ＳＣＴＰピアノード２００のＩＰ  ａｄｄｒｅｓｓ  Ｘ２０３との間でパスを構成してチャンクを送受信する。
【００２９】
ＳＣＴＰ情報保持部１００ｂは、ＳＣＴＰによる通信を行うために必要な情報を保持する保持部である。ＳＣＴＰ情報保持部１００ｂは、ＳＣＴＰでチャンクを送受信するためのパラメータである受信ウィンドウサイズを保持する。ｒｗｎｄは、対向装置が受信可能なデータサイズ（対向装置の空き受信バッファサイズ）を示す対向装置の受信ウィンドウ変数（情報）であり、ａ＿ｒｗｎｄは、自装置が受信可能なデータサイズ（自装置の空き受信バッファサイズ）を示す自装置の受信ウィンドウ変数（情報）である。
【００３０】
図５の関連する技術では、アソシエーション単位にｒｗｎｄ／ａ＿ｒｗｎｄを保持していたが、本実施の形態では、図２に示すように、ＩＰアドレス単位にｒｗｎｄ／ａ＿ｒｗｎｄを保持する。例えば、ＩＰアドレス毎に受信バッファが設けられており、この受信バッファの空き容量がｒｗｎｄ／ａ＿ｒｗｎｄとなる。
【００３１】
図２において、ｒｗｎｄ  ａ１０４およびａ＿ｒｗｎｄ  ａ１０５はＩＰ  ａｄｄｒｅｓｓ  ａ１０１に対する受信ウィンドウ変数ｒｗｎｄ／ａ＿ｒｗｎｄであり、また、ｒｗｎｄ  ｂ１０６およびａ＿ｒｗｎｄ  ｂ１０７はＩＰ  ａｄｄｒｅｓｓ  ｂ１０２に対する受信ウィンドウ変数ｒｗｎｄ／ａ＿ｒｗｎｄである。すなわち、ｒｗｎｄ  ａ１０４、ａ＿ｒｗｎｄ  ａ１０５、ｒｗｎｄ  ｂ１０６、ａ＿ｒｗｎｄ  ｂ１０７はマルチホーミングのアソシエーションで使用するＩＰアドレスに対する受信ウィンドウサイズである。
【００３２】
例えば、ｒｗｎｄ  ａ１０４は、ＩＰ  ａｄｄｒｅｓｓ  ａ１０１からＩＰ  ａｄｄｒｅｓｓ  Ａ２０１へ送信可能なウィンドウサイズであり、ａ＿ｒｗｎｄ  ａ１０５は、ＩＰ  ａｄｄｒｅｓｓ  ａ１０１がＩＰ  ａｄｄｒｅｓｓ  Ａ２０１から受信可能なウィンドウサイズである。ｒｗｎｄ  ｂ１０６は、ＩＰ  ａｄｄｒｅｓｓ  ｂ１０２からＩＰ  ａｄｄｒｅｓｓ  Ｂ２０２へ送信可能なウィンドウサイズであり、ａ＿ｒｗｎｄ  ｂ１０７は、ＩＰ  ａｄｄｒｅｓｓ  ｂ１０２がＩＰ  ａｄｄｒｅｓｓ  Ｂ２０２から受信可能なウィンドウサイズである。
【００３３】
さらに、ｒｗｎｄ  ｘ１０８及びａ＿ｒｗｎｄ ｘ１０９はＩＰ  ａｄｄｒｅｓｓ  ｘ１０３に対する受信ウィンドウ変数ｒｗｎｄ／ａ＿ｒｗｎｄである。すなわち、ｒｗｎｄ  ｘ１０８、ａ＿ｒｗｎｄ  ｘ１０９はシングルホーミングのアソシエーションで使用するＩＰアドレスに対する受信ウィンドウサイズである。例えば、ｒｗｎｄ  ｘ１０８は、ＩＰ  ａｄｄｒｅｓｓ  ｘ１０３からＩＰ  ａｄｄｒｅｓｓ  Ｘ２０３へ送信可能なウィンドウサイズであり、ａ＿ｒｗｎｄ  ｘ１０９は、ＩＰ  ａｄｄｒｅｓｓ  ｘ１０３がＩＰ  ａｄｄｒｅｓｓ  Ｘ２０３から受信可能なウィンドウサイズである。
【００３４】
アソシエーション制御部１１０は、ＳＣＴＰアソシエーションの確立（接続）や解放（切断）等を制御する。例えば、アソシエーション制御部１１０は、ＩＰ  ａｄｄｒｅｓｓ  ａ１０１及びＩＰ  ａｄｄｒｅｓｓ  ｂ１０２を使用して通信するように、ＳＣＴＰピアノード２００との間でアソシエーションα３０１を設定し、ＩＰ  ａｄｄｒｅｓｓ  ｘ１０３を使用して通信するように、ＳＣＴＰピアノード２００との間でアソシエーションω３０２を設定する。
【００３５】
ウィンドウサイズ管理部１２０は、ＳＣＴＰ情報保持部１００ｂの受信ウィンドウサイズを管理する。本実施の形態では、ＩＰアドレス毎に受信ウィンドウサイズを管理する。ウィンドウサイズ管理部１２０は、ＳＣＴＰピアノード２００からチャンクの受信時、ＩＰアドレス毎に通知される受信ウィンドウサイズにより各ｒｗｎｄを更新する。ウィンドウサイズ管理部１２０は、ＩＰアドレス毎の自装置の空き受信バッファサイズにより各ａ＿ｒｗｎｄを更新し、チャンクの送信時にＳＣＴＰピアノード２００へ通知する。
【００３６】
送信部１３０は、ＩＰアドレスを使用しアソシエーションを介してＳＣＴＰピアノード２００へチャンクを送信する。送信部１３０は、アソシエーションα３０１を介して通信するため、チャンクの送信元ＩＰアドレスに、ＩＰ  ａｄｄｒｅｓｓ  ａ１０１またはＩＰ  ａｄｄｒｅｓｓ  ｂ１０２を指定しＳＣＴＰピアノード２００へ送信する。また、送信部１３０は、アソシエーションω３０２を介して通信するため、チャンクの送信元ＩＰアドレスに、ＩＰ  ａｄｄｒｅｓｓ  ｘ１０３を指定しＳＣＴＰピアノード２００へ送信する。
【００３７】
さらに、本実施の形態では、送信部１３０は、ＩＰアドレス毎の受信ウィンドウ変数ｒｗｎｄ／ａ＿ｒｗｎｄに基づいてＳＣＴＰピアノード２００へチャンクを送信するべきかどうか判断し、送信可能なＩＰアドレスを選択してチャンクを送信する。例えば、ｒｗｎｄ  ａ１０４が０の場合、ＩＰ  ａｄｄｒｅｓｓ  ａ１０１からチャンクを送信せず、ｒｗｎｄ  ｂ１０６が０より大きい場合、ＩＰ  ａｄｄｒｅｓｓ  ｂ１０２からチャンクを送信する。
【００３８】
ＳＣＴＰピアノード２００は、ＳＣＴＰノード１００と同様に、アソシエーション制御部２１０、ウィンドウサイズ管理部２２０、送信部２３０を備えており、さらに、ネットワークインタフェース部２００ａ、ＳＣＴＰ情報保持部２００ｂを備えている。
【００３９】
ＳＣＴＰピアノード２００では、ＩＰ  ａｄｄｒｅｓｓ  Ａ２０１、ＩＰ  ａｄｄｒｅｓｓ  Ｂ２０２は、マルチホーミングのアソシエーションα３０１で使用されるＩＰアドレスであり、ＩＰ  ａｄｄｒｅｓｓ  Ｘ２０３は、シングルホーミングのアソシエーションω３０２で使用されるＩＰアドレスである。
【００４０】
ＳＣＴＰピアノード２００では、ｒｗｎｄ  Ａ２０４およびａ＿ｒｗｎｄ  Ａ２０５はＩＰ  ａｄｄｒｅｓｓ  Ａ２０１に対する受信ウィンドウ変数ｒｗｎｄ／ａ＿ｒｗｎｄであり、また、ｒｗｎｄ  Ｂ２０６およびａ＿ｒｗｎｄ  Ｂ２０７はＩＰ  ａｄｄｒｅｓｓ  Ｂ２０２に対する受信ウィンドウ変数ｒｗｎｄ／ａ＿ｒｗｎｄである。ｒｗｎｄ  Ｘ２０８及びａ＿ｒｗｎｄ Ｘ２０９はＩＰ  ａｄｄｒｅｓｓ  Ｘ２０３に対する受信ウィンドウ変数ｒｗｎｄ／ａ＿ｒｗｎｄである。
【００４１】
例えば、ｒｗｎｄ  Ａ２０４は、ＩＰ  ａｄｄｒｅｓｓ  Ａ２０１からＩＰ  ａｄｄｒｅｓｓ  ａ１０１へ送信可能なウィンドウサイズであり、ａ＿ｒｗｎｄ  Ａ２０５は、ＩＰ  ａｄｄｒｅｓｓ  Ａ２０１がＩＰ  ａｄｄｒｅｓｓ  ａ１０１から受信可能なウィンドウサイズである。ｒｗｎｄ  Ｂ２０６は、ＩＰ  ａｄｄｒｅｓｓ  Ｂ２０２からＩＰ  ａｄｄｒｅｓｓ  ｂ１０２へ送信可能なウィンドウサイズであり、ａ＿ｒｗｎｄ  Ｂ２０７は、ＩＰ  ａｄｄｒｅｓｓ  Ｂ２０２がＩＰ  ａｄｄｒｅｓｓ  ｂ１０２から受信可能なウィンドウサイズである。ｒｗｎｄ  Ｘ２０８は、ＩＰ  ａｄｄｒｅｓｓ  Ｘ２０３からＩＰ  ａｄｄｒｅｓｓ  ｘ１０３へ送信可能なウィンドウサイズであり、ａ＿ｒｗｎｄ  Ｘ２０９は、ＩＰ  ａｄｄｒｅｓｓ  Ｘ２０３がＩＰ  ａｄｄｒｅｓｓ  ｘ１０３から受信可能なウィンドウサイズである。
【００４２】
アソシエーション制御部２１０は、ＩＰ  ａｄｄｒｅｓｓ  Ａ２０１及びＩＰ  ａｄｄｒｅｓｓ  Ｂ２０２を使用して通信するように、ＳＣＴＰノード１００との間でアソシエーションα３０１を設定し、ＩＰ  ａｄｄｒｅｓｓ  Ｘ２０３を使用して通信するように、ＳＣＴＰノード１００との間でアソシエーションω３０２を設定する。
【００４３】
ウィンドウサイズ管理部２２０は、ＳＣＴＰノード１００からチャンクの受信時、ＩＰアドレス毎に通知される受信ウィンドウサイズによりｒｗｎｄをそれぞれ更新する。ウィンドウサイズ管理部２２０は、ＩＰアドレス毎の自装置の空き受信バッファサイズによりａ＿ｒｗｎｄを更新し、チャンクの送信時にＳＣＴＰノード１００へ通知する。
【００４４】
送信部２３０は、ＩＰアドレス毎の受信ウィンドウ変数ｒｗｎｄ／ａ＿ｒｗｎｄに基づいてＳＣＴＰノード１００へチャンクを送信するべきかどうか判断し、送信可能なＩＰアドレスを選択してチャンクを送信する。
【００４５】
ここで、より詳細なｒｗｎｄ／ａ＿ｒｗｎｄの値の更新・通知とｒｗｎｄの値に応じたデータチャンクの送信について、以下の（１）〜（３）で説明する。
【００４６】
（１）ＳＣＴＰの仕様どおり、各ノードは各ｒｗｎｄの現在値に応じて以下の規則に従ってチャンクの送信を規制する。
１．対向ノードのｒｗｎｄが０のとき、対向ノードにはデータチャンクを送信しない。ただし、その場合でも、ｃｗｎｄのサイズを超えない限りただ１つのデータチャンクをアウトスタンディングな状態で持つことができる。
【００４７】
（２）ＳＣＴＰの仕様どおり、各ノードは各ｒｗｎｄの値を以下の規則に従って更新する。
１．アソシエーション確立処理時、ｒｗｎｄの値をＩＮＩＴチャンクまたはＩＮＩＴ−ＡＣＫチャンクに乗って通知されるａ＿ｒｗｎｄの値で初期化する。
２．データチャンクを送信または再送すると送信データサイズ分ｒｗｎｄをデクリメントする。
３．あるデータチャンクを再送対象とする処理を行うとそのデータサイズ分ｒｗｎｄをインクリメントする。
４．対向ノードからＳＡＣＫを受信すると、ＳＡＣＫに乗せて通知されたａ＿ｒｗｎｄの値からアウトスタンディングなデータチャンクのサイズを引いた値をｒｗｎｄに代入する。
【００４８】
（３）ＳＣＴＰの仕様どおり、各ノードは各ａ＿ｒｗｎｄの値を以下の規則に従って更新し、対向ノードへ通知する。
１．アソシエーション確立処理時、アソシエーションごとに割り当てた受信バッファをａ＿ｒｗｎｄに代入し、ＩＮＩＴチャンクまたはＩＮＩＴ−ＡＣＫチャンクに乗せて対向ノードにａ＿ｒｗｎｄの通知を行う。
２．データチャンクの受信時には受信データサイズ分ａ＿ｒｗｎｄをデクリメントする。
３．データチャンクの受信後、そのデータを上位レイヤに通知すると、そのデータチャンクのサイズ分だけ受信バッファを開放する。この開放処理を行うと開放したサイズ分だけａ＿ｒｗｎｄをインクリメントする。
４．アソシエーション確立後はａ＿ｒｗｎｄをＳＡＣＫに載せて対向ノードに通知する。
【００４９】
図３は、上記ｒｗｎｄ／ａ＿ｒｗｎｄの値の更新・通知を含めた、本実施の形態に係る通信システムのアソシエーション確立及びデータ送受信シーケンスを示している。本実施の形態ではＩＰアドレス単位にａ＿ｒｗｎｄを保持するが、チャンクの送信元アドレスに対応した各ａ＿ｒｗｎｄの値をａ＿ｒｗｎｄフィールドに乗せてチャンクを送信することで対向装置にａ＿ｒｗｎｄの値を通知することができる。そのため、チャンクのフォーマットに変更は必要ない。
【００５０】
ただし、チャンクの送信元アドレスに対応した各ａ＿ｒｗｎｄの値をａ＿ｒｗｎｄフィールドに乗せるためには、チャンクをバンドルしたパケットの送信処理が完了する前に送信元アドレスを確定し取得しておく必要がある。この送信元アドレスの取得方法は、任意の方法でよく、特に限定されない。
【００５１】
図３に示すように、まず、ＳＣＴＰノード１００は、ＩＮＩＴチャンクをＳＣＴＰピアノード２００へ送信する（Ｓ１０１）。ＳＣＴＰノード１００は、アソシエーションに割り当てた受信バッファのサイズをａ＿ｒｗｎｄに設定したＩＮＩＴチャンクを送信する。ＩＮＩＴチャンクには、アソシエーションで使用する複数のＩＰアドレスも設定されている。アソシエーションα３０１の場合、ＩＮＩＴチャンクにＩＰ  ａｄｄｒｅｓｓ  ａ１０１及びＩＰ  ａｄｄｒｅｓｓ  ｂ１０２が設定されている。例えば、ＩＮＩＴチャンクにより、ＩＰアドレス毎に割り当てた複数のａ＿ｒｗｎｄを通知してもよい。ＳＣＴＰピアノード２００は、受信したＩＮＩＴチャンクに含まれるａ＿ｒｗｎｄの値でｒｗｎｄを初期化する。例えば、ＩＰアドレス毎のａ＿ｒｗｎｄが通知された場合、ＩＰアドレスに対応したｒｗｎｄをそれぞれ初期化する。
【００５２】
続いて、ＳＣＴＰピアノード２００は、ＩＮＩＴ−ＡＣＫチャンクをＳＣＴＰノード１００へ送信する（Ｓ１０２）。ＳＣＴＰピアノード２００は、アソシエーションに割り当てた受信バッファのサイズをａ＿ｒｗｎｄに設定したＩＮＩＴ−ＡＣＫチャンクを送信する。ＩＮＩＴ−ＡＣＫチャンクには、クッキー情報やアソシエーションで使用する複数のＩＰアドレスも設定されている。アソシエーションα３０１の場合、ＩＮＩＴ−ＡＣＫチャンクにＩＰ  ａｄｄｒｅｓｓ  Ａ２０１及びＩＰ  ａｄｄｒｅｓｓ  Ｂ２０２が設定されている。例えば、ＩＮＩＴ−ＡＣＫチャンクにより、ＩＰアドレス毎に割り当てた複数のａ＿ｒｗｎｄを通知してもよい。ＳＣＴＰノード１００は、受信したＩＮＩＴ−ＡＣＫチャンクに含まれるａ＿ｒｗｎｄの値でｒｗｎｄを初期化する。例えば、ＩＰアドレス毎のａ＿ｒｗｎｄが通知された場合、ＩＰアドレスに対応したｒｗｎｄをそれぞれ初期化する。
【００５３】
続いて、ＳＣＴＰノード１００は、ＣＯＯＫＩＥ−ＥＣＨＯチャンクをＳＣＴＰピアノード２００へ送信する（Ｓ１０３）。ＳＣＴＰノード１００は、受信したＩＮＩＴ−ＡＣＫチャンクのクッキー情報を設定して、ＣＯＯＫＩＥ−ＥＣＨＯを送信する。
【００５４】
続いて、ＳＣＴＰピアノード２００は、ＣＯＯＫＩＥ−ＥＣＨＯを受信すると、受信したＣＯＯＫＩＥ−ＥＣＨＯのクッキー情報と、ＩＮＩＴ−ＡＣＫで送信したクッキー情報とを比較して認証し、ＣＯＯＫＩＥ−ＡＣＫチャンクをＳＣＴＰノード１００へ送信する（Ｓ１０４）。これによりＳＣＴＰセッションが確立した状態となり、ＳＣＴＰノード１００及びＳＣＴＰピアノード２００がＤＡＴＡチャンクを送受信可能となる。
【００５５】
続いて、ＳＣＴＰノード１００は、ＤＡＴＡチャンクをＳＣＴＰピアノード２００へ送信する（Ｓ１０５）。ＳＣＴＰノード１００は、送信可能な大きさのｒｗｎｄ、例えば、０よりも大きい、または、送信データサイズよりも大きいｒｗｎｄを選択し、送信するＩＰアドレスを決定する。ＳＣＴＰノード１００は、送信するＩＰアドレスのｒｗｎｄを、送信データサイズ分デクリメントし、ＤＡＴＡチャンクを送信する。例えば、ｒｗｎｄ  ｂ１０６が０より大きい場合、ｒｗｎｄ  ｂ１０６を更新し、ＩＰ  ａｄｄｒｅｓｓ  ｂ１０２からＩＰ  ａｄｄｒｅｓｓ  Ｂ２０２へＤＡＴＡチャンクを送信する。
【００５６】
ＳＣＴＰピアノード２００は、ＤＡＴＡチャンクを受信すると、受信したＩＰアドレスのａ＿ｒｗｎｄを、受信データサイズ分デクリメントし、さらに、データを上位レイヤに通知した場合にａ＿ｒｗｎｄをインクリメントする。例えば、ＩＰ  ａｄｄｒｅｓｓ  Ｂ２０２でＤＡＴＡチャンクを受信すると、ａ＿ｒｗｎｄ  Ｂ２０７を更新する。
【００５７】
続いて、ＳＣＴＰピアノード２００は、ＳＡＣＫチャンクをＳＣＴＰノード１００へ送信する（Ｓ１０６）。ＳＣＴＰピアノード２００は、受信したＤＡＴＡチャンクに応答するため、受信したＩＰアドレスのａ＿ｒｗｎｄを設定したＳＡＣＫチャンクを送信する。例えば、更新したａ＿ｒｗｎｄ  Ｂ２０７を設定し、ＩＰ  ａｄｄｒｅｓｓ  Ｂ２０２からＩＰ  ａｄｄｒｅｓｓ  ｂ１０２へＳＡＣＫチャンクを受信する。
【００５８】
ＳＣＴＰノード１００は、受信したＳＡＣＫチャンクに含まれるａ＿ｗｒｎｄの値からアウトスタンディングなデータチャンクのサイズを引いた値をｒｗｎｄに設定する。例えば、ＩＰ  ａｄｄｒｅｓｓ  ｂ１０２でＳＡＣＫチャンクを受信すると、ｒｗｎｄ  ｂ１０６を更新する。
【００５９】
続いて、ＳＣＴＰピアノード２００は、ＤＡＴＡチャンクをＳＣＴＰノード１００へ送信する（Ｓ１０７）。ＳＣＴＰピアノード２００は、送信可能な大きさのｒｗｎｄを選択し、送信するＩＰアドレスを決定する。ＳＣＴＰピアノード２００は、送信するＩＰアドレスのｒｗｎｄを、送信データサイズ分デクリメントし、ＤＡＴＡチャンクを送信する。例えば、ｒｗｎｄ  Ａ２０４が０より大きい場合、ｒｗｎｄ  Ａ２０４を更新し、ＩＰ  ａｄｄｒｅｓｓ  Ａ２０１からＩＰ  ａｄｄｒｅｓｓ  ａ１０１へＤＡＴＡチャンクを送信する。
【００６０】
ＳＣＴＰノード１００は、ＤＡＴＡチャンクを受信すると、受信したＩＰアドレスのａ＿ｒｗｎｄを、受信データサイズ分デクリメントし、さらに、データを上位レイヤに通知した場合にａ＿ｒｗｎｄをインクリメントする。例えば、ＩＰ  ａｄｄｒｅｓｓ  ａ１０１でＤＡＴＡチャンクを受信すると、ａ＿ｒｗｎｄ  ａ１０５を更新する。
【００６１】
続いて、ＳＣＴＰノード１００は、ＳＡＣＫチャンクをＳＣＴＰピアノード２００へ送信する（Ｓ１０８）。ＳＣＴＰノード１００は、受信したＤＡＴＡチャンクに応答するため、受信したＩＰアドレスのａ＿ｒｗｎｄを設定したＳＡＣＫチャンクを送信する。例えば、更新したａ＿ｒｗｎｄ  ａ１０５を設定し、ＩＰ  ａｄｄｒｅｓｓ  ａ１０１ＢからＩＰ  ａｄｄｒｅｓｓ  Ａ２０１へＳＡＣＫチャンクを受信する。
【００６２】
ＳＣＴＰピアノード２００は、受信したＳＡＣＫチャンクに含まれるａ＿ｗｒｎｄの値からアウトスタンディングなデータチャンクのサイズを引いた値をｒｗｎｄに設定する。例えば、ＩＰ  ａｄｄｒｅｓｓ  Ａ２０１でＳＡＣＫチャンクを受信すると、ｒｗｎｄ  Ａ２０４を更新する。
【００６３】
本実施の形態では、上記ｒｗｎｄ／ａ＿ｒｗｎｄに従い、かつＩＰアドレス単位でｒｗｎｄ／ａ＿ｒｗｎｄを保持することにより、輻輳時に値が０になるｒｗｎｄが特定のＩＰアドレスに対応したもののみに限定される。その結果、そのＩＰアドレスに対応した特定の回線ではデータチャンクの送信ができなくなるものの、マルチホーミングであればｒｗｎｄの値が０でない他の回線を使用してデータチャンクの送受信が可能となる。
【００６４】
図４は、本実施の形態に係る通信システムの輻輳発生時のフローチャートである。ＳＣＴＰノード１００及びＳＣＴＰピアノード２００で同様の動作となり、ここではＳＣＴＰノード１００の動作として説明する。
【００６５】
まず、ＳＣＴＰノード１００は、図３のようにアソシエーションが確立すると、通常運用状態となる（Ｓ２０１）。このとき、特定のＩＰアドレスに対応した回線（パス）で輻輳（障害）が発生する（Ｓ２０２）。輻輳は、特定のＩＰアドレスのｒｗｎｄ／ａ＿ｒｗｎｄが０となるか、０に近づくように低下したことにより検出できる。また、ＨＥＡＲＴＢＥＡＴチャンク及びＨＥＡＲＴＢＥＡＴ−ＡＣＫチャンクを送受信することによりＩＰアドレス毎に定期的に導通確認し、回線（パス）の輻輳（障害）を検出することもできる。
【００６６】
ＳＣＴＰノード１００は、回線の輻輳を検出すると、輻輳している特定ＩＰアドレスへのデータチャンクの送信を抑制し（Ｓ２０３）、残りのＩＰアドレスへデータチャンクを送信する（Ｓ２０４）。ＳＣＴＰノード１００は、その他のＩＰアドレスに対応したｒｗｎｄが０でなければそのＩＰアドレスを宛先としてデータチャンクを送信する（Ｓ２０４）。例えば、ｒｗｎｄが０より大きいＩＰアドレスや、ｒｗｎｄが送信データサイズより大きいＩＰアドレスを選択する。また、ｒｗｎｄが最も大きいＩＰアドレスを選択してもよい。
【００６７】
その後、特定の回線で輻輳が解消する（Ｓ２０５）。輻輳の解消は、特定のＩＰアドレスのｒｗｎｄ／ａ＿ｒｗｎｄが０より大きくなるか、任意の閾値以上まで増加したことにより検出できる。また、ＨＥＡＲＴＢＥＡＴチャンク及びＨＥＡＲＴＢＥＡＴ−ＡＣＫチャンクを送受信することにより、回線の輻輳（障害）の解消を検出することもできる。
【００６８】
ＳＣＴＰノード１００は、輻輳が解消すると、通常運用状態に戻る（Ｓ２０６）。ＳＣＴＰノード１００は、輻輳が解消したため、特定ＩＰアドレスへのデータチャンクの送信を再開する。
【００６９】
以上のように、関連する技術では同一アソシエーション内において特定回線の輻輳により他回線でもチャンクの受信ができなくなることがあった状況を回避するために、本実施の形態では、ｒｗｎｄおよびａ＿ｒｗｎｄをＩＰアドレス単位に設けることとした。ｒｗｎｄおよびａ＿ｒｗｎｄをアソシエーションに含まれるＩＰアドレス単位に保持することにより、ＩＰアドレス単位での受信ウィンドウのコントロールが可能となる。その結果、特定回線における輻輳の発生時には他の輻輳の発生していない回線を使用してチャンクの送受信を行うことが可能となる。
【００７０】
したがって、ＳＣＴＰにてマルチホーミングのアソシエーションを確立したときには、アソシエーション内の全回線が輻輳によりデータ送信不可能とならない限り、ノード間でデータの送受信が行えることとなる。その結果、輻輳に対する運用性が高まる効果が得られる。
【００７１】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【００７２】
例えば、上記実施の形態では、ＳＣＴＰのアソシエーションにより通信を行う例について説明したが、その他のプロトコルで複数のアドレスを使用して通信を行ってもよい。一例として、ＴＣＰをマルチホーミングのセッション確立可能とするように変更した際に、本発明と同様のｒｗｎｄ／ａ＿ｒｗｎｄを使用することにより、輻輳に対する運用性が高まる効果が期待できる。
【００７３】
上記実施の形態では、ＩＰアドレス単位にｒｗｎｄ／ａ＿ｒｗｎｄに保持したが、さらに、アソシエーション単位にｒｗｎｄ／ａ＿ｒｗｎｄを保持してもよい。これにより、アソシエーション毎の送信可／不可を一度に判断できる。
【００７４】
また、アソシエーション内で、複数のＩＰアドレスを含むグループ単位にｒｗｎｄ／ａ＿ｒｗｎｄを保持してもよい。例えば、複数の有線回線のＩＰアドレスを含むグループに対するｒｗｎｄ／ａ＿ｒｗｎｄ、複数の無線回線のＩＰアドレスを含むグループに対するｒｗｎｄ／ａ＿ｒｗｎｄとしてもよい。輻輳（障害）が関連して発生するグループ毎にｒｗｎｄ／ａ＿ｒｗｎｄを保持することで、受信ウィンドウサイズを効率よく管理することができる。
【符号の説明】
【００７５】
１０    通信装置
１１    集約パス制御部
１２    ウィンドウサイズ管理部
１３    送信部
１４    アドレス情報
２０    対向通信装置
３０    集約パス
１００  ＳＣＴＰノード
１００ａ  ネットワークインタフェース部
１００ｂ  ＳＣＴＰ情報保持部
１０１〜１０３  ＩＰアドレス
１０４〜１０９  ｒｗｎｄ／ａ＿ｒｗｎｄ
１１０  アソシエーション制御部
１２０  ウィンドウサイズ管理部
１３０  送信部
２００  ＳＣＴＰピアノード
２００ａ  ネットワークインタフェース部
２００ｂ  ＳＣＴＰ情報保持部
２０１〜２０３  ＩＰアドレス
２０４〜２０９  ｒｗｎｄ／ａ＿ｒｗｎｄ
２１０  アソシエーション制御部
２２０  ウィンドウサイズ管理部
２３０  送信部
３００  ネットワーク
３０１、３０２  アソシエーション
【図１】
2013223234.tif 000003
【図２】
2013223234.tif 000004
【図３】
2013223234.tif 000005
【図４】
2013223234.tif 000006
【図５】
2013223234.tif 000007