(57)【特許請求の範囲】
【請求項１】
ネットワークを介して接続した他の通信装置との間の通信路に、所定の条件を満たすように中継器が介在するかを判断する判断手段と、
前記ネットワークにおける使用可能な帯域である使用可能帯域を特定するために実行され、前記他の通信装置との間で前記帯域を計測する計測データの通信を行う計測通信であって、前記中継器又は前記他の通信装置が前記計測データを受信した場合に返信する応答データのヘッダ部に基づいて前記帯域の計測を行い、前記使用可能帯域を特定する第一計測通信と、前記計測データを受信した他の通信装置が前記計測データのデータ部に基づいて前記帯域の計測を行い、計測された前記帯域を前記他の通信装置から取得することによって前記使用可能帯域を特定する第二計測通信とのうち何れか一方を、前記判断手段による判断結果に基づいて選択する選択手段と、
前記使用可能帯域を特定するために、前記選択手段によって選択された前記第一計測通信または前記第二計測通信を実行する第一通信手段と
を備えたことを特徴とする通信装置。
【請求項２】
前記第一計測通信および前記第二計測通信を実行する第二通信手段を備え、
前記判断手段は、
前記第二通信手段によって実行された前記第一計測通信および前記第二計測通信の計測結果の差分に基づいて、前記通信路に前記所定の条件を満たすように前記中継器が介在するかを判断することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記判断手段は、
前記第二通信手段によって実行された前記第一計測通信及び前記第二計測通信の計測結果の差分を複数回分取得し、取得した複数回分の差分と所定閾値との関係に基づいて、前記中継器が介在するかを判断することを特徴とする請求項２に記載の通信装置。
【請求項４】
前記第二通信手段は、前記第一通信手段によって前記第一計測通信または前記第二計測通信が繰り返し実行される場合の時間間隔よりも長い時間間隔で、前記第一計測通信および前記第二計測通信を繰り返し実行することを特徴とする請求項２または３に記載の通信装置。
【請求項５】
前記選択手段は、
前記第一通信手段によって前記第一計測通信が実行されている場合であって、前記判断手段によって前記通信路に前記所定の条件を満たすように前記中継器が介在すると判断された場合に、前記第二計測通信を選択し、
前記第一通信手段によって前記第二計測通信が実行されている場合であって、前記判断手段によって前記通信路に前記所定の条件を満たすように前記中継器が介在しないと判断された場合の連続回数が所定回数未満である場合、前記第二計測通信を選択し、
前記第一通信手段によって前記第二計測通信が実行されている場合であって、前記判断手段によって前記通信路に前記所定の条件を満たすように前記中継器が介在しないと判断された場合の連続回数が所定回数以上である場合、前記第一計測通信を選択することを特徴とする請求項１から４のいずれかに記載の通信装置。
【請求項６】
前記通信路に前記所定の条件を満たすように前記中継器が介在するかの判断指示を受け付けた場合に、前記判断手段は、前記中継器が介在するかを判断することを特徴とする請求項１から３のいずれかに記載の通信装置。
【請求項７】
前記所定の条件を満たすように中継器が介在するとは、前記計測通信に影響を及ぼすように前記中継器が前記通信路に介在することを特徴とする請求項１から６のいずれかに記載の通信装置。
【請求項８】
ネットワークを介して接続した他の通信装置との間の通信路に、所定の条件を満たすように中継器が介在するかを判断する判断ステップと、
前記ネットワークにおける使用可能な帯域である使用可能帯域を特定するために実行され、前記他の通信装置との間で前記帯域を計測する計測データの通信を行う計測通信であって、前記中継器が前記計測データを受信した場合に返信する応答データのヘッダ部に基づいて前記帯域の計測を行い、前記使用可能帯域を特定する第一計測通信と、前記他の通信装置が前記計測データのデータ部に基づいて前記帯域の計測を行い、計測された前記帯域を前記他の通信装置から取得することによって前記使用可能帯域を特定する第二計測通信とのうち何れか一方を、前記判断ステップによる判断結果に基づいて選択する選択ステップと、
前記使用可能帯域を特定するために、前記選択ステップによって選択された前記第一計測通信または前記第二計測通信を実行する第一通信ステップと
を備えたことを特徴とする通信方法。
【請求項９】
ネットワークを介して接続した他の通信装置との間の通信路に、所定の条件を満たすように中継器が介在するかを判断する判断ステップと、
前記ネットワークにおける使用可能な帯域である使用可能帯域を特定するために実行され、前記他の通信装置との間で前記帯域を計測する計測データの通信を行う計測通信であって、前記中継器が前記計測データを受信した場合に返信する応答データのヘッダ部に基づいて前記帯域の計測を行い、前記使用可能帯域を特定する第一計測通信と、前記他の通信装置が前記計測データのデータ部に基づいて前記帯域の計測を行い、計測された前記帯域を前記他の通信装置から取得することによって前記使用可能帯域を特定する第二計測通信とのうち何れか一方を、前記判断ステップによる判断結果に基づいて選択する選択ステップと、
前記使用可能帯域を特定するために、前記選択ステップによって選択された前記第一計測通信または前記第二計測通信を実行する第一通信ステップと
をコンピュータに実行させるための通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信網の状態を特定することが可能な通信装置、通信方法、および通信プログラムに関する。
【背景技術】
【０００２】
インターネット等の通信網の状態を特定することが可能な通信装置が知られている。例えば特許文献１には、通信網の状態として通信遅延を特定する通信装置が開示されている。この通信装置は、時間情報等を付加したデータを用い、他の通信装置との間で通信を実行する。これによって通信装置は、通信網の通信遅延を特定する。通信装置は、特定した通信遅延に基づいてデータの送信速度を最適化し、通信遅延の増大を防いでいる。
【０００３】
Transmission Control Protocol（ＴＣＰ）に基づいて通信装置間で通信が行われる場合、通信装置は、ＴＣＰヘッダに含まれる情報を参照することによって、通信網の状態を特定できる。例えば通信装置は、ＴＣＰヘッダに含まれるシーケンス番号やウィンドウサイズを参照することによって、通信遅延を特定できる。このように、ＴＣＰヘッダに含まれる情報に基づいて通信装置が通信網の通信状態を特定する場合、特許文献１に記載された通信装置とは異なり、特別な情報をデータに付加する処理や、付加した特別な情報を解析する処理等が不要となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−３０８２７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
プロトコルを変換する中継器が通信網に介在する場合がある。中継器の一例として、プロキシサーバが挙げられる。中継器によってデータが中継される場合、中継器はデータ中のＴＣＰヘッダを書き換える。この場合、通信装置は、ＴＣＰヘッダを使用して通信網の状態を特定できなくなるという問題点がある。
【０００６】
本発明の目的は、中継器の有無を判断し、判断結果に応じて、ネットワークの状態を計測するための計測方法を切り替えることによって、通信網の状態を適切に特定することが可能な通信装置、通信方法、および通信プログラムを提供することである。
【課題を解決するための手段】
【０００７】
本発明の第一態様に係る通信装置は、ネットワークを介して接続した他の通信装置との間の通信路に、所定の条件を満たすように中継器が介在するかを判断する判断手段と、前記ネットワークにおける使用可能な帯域である使用可能帯域を特定するために実行され、前記他の通信装置との間で前記帯域を計測する計測データの通信を行う計測通信であって、前記中継器又は前記他の通信装置が前記計測データを受信した場合に返信する応答データのヘッダ部に基づいて前記帯域の計測を行い、前記使用可能帯域を特定する第一計測通信と、前記計測データを受信した他の通信装置が前記計測データのデータ部に基づいて前記帯域の計測を行い、計測された前記帯域を前記他の通信装置から取得することによって前記使用可能帯域を特定する第二計測通信とのうち何れか一方を、前記判断手段による判断結果に基づいて選択する選択手段と、前記使用可能帯域を特定するために、前記選択手段によって選択された前記第一計測通信または前記第二計測通信を実行する第一通信手段とを備えている。
【０００８】
第一態様によれば、通信装置は、他の通信装置との間の通信路に、所定の条件を満たすように中継器が介在するか否かを判断する。通信装置は、判断結果に応じて、計測通信の方法を切り替えることができる。例えば通信装置は、通信路に中継器が介在しない場合には第一計測通信を選択し、中継器が介在する場合には第二計測通信を選択する。このように通信装置は、使用可能帯域を特定する計測通信の方法を、通信路に中継器が介在するか否かに応じて選択できる。通信装置は、使用可能帯域を迅速かつ適切に特定することができる。
【０００９】
第一態様において、前記第一計測通信および前記第二計測通信を実行する第二通信手段を備え、前記判断手段は、前記第二通信手段によって実行された前記第一計測通信および前記第二計測通信の計測結果の差分に基づいて、前記通信路に前記所定の条件を満たすように前記中継器が介在するかを判断してもよい。第一計測通信による計測結果と、第二計測通信による計測結果との関係は、所定の条件を満たすように中継器が通信路に介在するか否かによって変化する。従って通信装置は、計測結果の変化の様子に基づき、所定の条件を満たすように中継器が通信路に介在するか否かを判断できる。このようにして通信装置は、通信路に中継器が介在するかを容易に判断できる。
【００１０】
第一態様において、前記判断手段は、前記第二通信手段によって実行された前記第一計測通信及び前記第二計測通信の計測結果との差分を複数回分取得し、取得した複数回分の差分と所定閾値との関係に基づいて、前記中継器が介在するかを判断してもよい。これによって、通信装置は、所定の条件を満たすように通信路に中継器が介在するか否かを、より適切に判断できる。
【００１１】
第一態様において、前記第二通信手段は、前記第一通信手段によって前記第一計測通信または前記第二計測通信が繰り返し実行される場合の時間間隔よりも長い時間間隔で、前記第一計測通信および前記第二計測通信を繰り返し実行してもよい。これによって通信装置は、第一計測通信および第二計測通信が実行される頻度を抑制できる。従って通信装置は、計測通信によってトラフィックが増大することを抑止できる。
【００１２】
第一態様において、前記選択手段は、前記第一通信手段によって前記第一計測通信が実行されている場合であって、前記判断手段によって前記通信路に前記所定の条件を満たすように前記中継器が介在すると判断された場合に、前記第二計測通信を選択し、前記第一通信手段によって前記第二計測通信が実行されている場合であって、前記判断手段によって前記通信路に前記所定の条件を満たすように前記中継器が介在しないと判断された場合の連続回数が所定回数未満である場合、前記第二計測通信を選択し、前記第一通信手段によって前記第二計測通信が実行されている場合であって、前記判断手段によって前記通信路に前記所定の条件を満たすように前記中継器が介在しないと判断された場合の連続回数が所定回数以上である場合、前記第一計測通信を選択してもよい。これによって通信装置は、第二計測通信が実行される頻度を高くし、第一計測通信が実行される頻度を低くすることができる。従って通信装置は、計測結果が安定する第二計測通信を優先的に実行し、使用可能帯域をより適切に特定できる。
【００１３】
第一態様において、前記通信路に前記所定の条件を満たすように前記中継器が介在するかの判断指示を受け付けた場合に、前記判断手段は、前記中継器が介在するかを判断してもよい。これによって通信装置は、所定の条件を満たすように通信路に中継器が介在するかを、指定したタイミングで判断することができる。
【００１４】
第一態様において、前記所定の条件を満たすように中継器が介在するとは、前記計測通信に影響を及ぼすように前記中継器が前記通信路に介在することであってもよい。通信装置は、所定条件を満たす中継器が通信路に介在するか否かに基づいて計測通信の方法を選択し実行することによって、使用可能帯域をさらに適切に特定することができる。
【００１５】
本発明の第二態様に係る通信方法は、ネットワークを介して接続した他の通信装置との間の通信路に、所定の条件を満たすように中継器が介在するかを判断する判断ステップと、前記ネットワークにおける使用可能な帯域である使用可能帯域を特定するために実行され、前記他の通信装置との間で前記帯域を計測する計測データの通信を行う計測通信であって、前記中継器が前記計測データを受信した場合に返信する応答データのヘッダ部に基づいて前記帯域の計測を行い、前記使用可能帯域を特定する第一計測通信と、前記他の通信装置が前記計測データのデータ部に基づいて前記帯域の計測を行い、計測された前記帯域を前記他の通信装置から取得することによって前記使用可能帯域を特定する第二計測通信とのうち何れか一方を、前記判断ステップによる判断結果に基づいて選択する選択ステップと、前記使用可能帯域を特定するために、前記選択ステップによって選択された前記第一計測通信または前記第二計測通信を実行する第一通信ステップとを備えている。第二態様によれば、第一態様と同様の効果を奏することができる。
【００１６】
本発明の第三態様に係る通信プログラムは、ネットワークを介して接続した他の通信装置との間の通信路に、所定の条件を満たすように中継器が介在するかを判断する判断ステップと、前記ネットワークにおける使用可能な帯域である使用可能帯域を特定するために実行され、前記他の通信装置との間で前記帯域を計測する計測データの通信を行う計測通信であって、前記中継器が前記計測データを受信した場合に返信する応答データのヘッダ部に基づいて前記帯域の計測を行い、前記使用可能帯域を特定する第一計測通信と、前記他の通信装置が前記計測データのデータ部に基づいて前記帯域の計測を行い、計測された前記帯域を前記他の通信装置から取得することによって前記使用可能帯域を特定する第二計測通信とのうち何れか一方を、前記判断ステップによる判断結果に基づいて選択する選択ステップと、前記使用可能帯域を特定するために、前記選択ステップによって選択された前記第一計測通信または前記第二計測通信を実行する第一通信ステップとをコンピュータに実行させる。第三態様によれば、第一態様と同様の効果を奏することができる。
【図面の簡単な説明】
【００１７】
【図１】通信システム１を示す模式図である。
【図２】中継器７が通信路２に介在する状態で第一計測通信が実行される場合を示す図である。
【図３】中継器８が通信路４に介在する状態で第一計測通信が実行される場合を示す図である。
【図４】中継器７が通信路２に介在する状態で第二計測通信が実行される場合を示す図である。
【図５】中継器８が通信路４に介在する状態で第二計測通信が実行される場合を示す図である。
【図６】中継器７が通信路２に介在する状態で第一計測通信および第二計測通信が実行される場合を示す図である。
【図７】中継器７が通信路２に介在する状態で第一計測通信および第二計測通信が実行される場合を示す図である。
【図８】中継器７が通信路２に介在する状態で第一計測通信および第二計測通信が実行される場合を示す図である。
【図９】中継器８が通信路４に介在する状態で第一計測通信および第二計測通信が実行される場合を示す図である。
【図１０】中継器８が通信路４に介在する状態で第一計測通信および第二計測通信が実行される場合を示す図である。
【図１１】中継器８が通信路４に介在する状態で第一計測通信および第二計測通信が実行される場合を示す図である。
【図１２】メイン処理を示す図である。
【図１３】計測処理を示す図である。
【図１４】比較処理を示す図である。
【図１５】差分と閾値Ｔとの関係を示すグラフである。
【図１６】差分と閾値Ｔとの関係を示すグラフである。
【図１７】第一計測通信および第二計測通信が切り替えられるタイミングを示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明の一実施形態について、図面を参照して説明する。図１を参照し、通信システム１について説明する。通信システム１は、通信装置１１、１２（以下、総称して「通信装置１０」ともいう。）を備える。通信装置１１、１２は、ネットワーク６を介して接続する。通信装置１１、１２は、ネットワーク６を介して通信を行うことができる。ネットワーク６には、通信路２、３、４が含まれる。通信装置１１、１２は、ネットワーク６の状態に応じて決定される通信路２、３、４のうち何れかを介して通信を行う。通信装置１０は、周知のパーソナルコンピュータ（ＰＣ）である。ネットワーク６は、周知のインターネットである。通信装置１０は、ＴＣＰ／ＩＰに基づいて通信を行う。
【００１９】
通信路２には中継器７が介在する。通信路４には中継器８が介在する。通信路３に中継器は介在しない。通信装置１１、１２が通信路２、４を介して通信を行う場合、中継器７、８は、通信装置１１、１２間で送受信されるデータを中継する。中継器７は、データを中継する場合に、データに付加されたＴＣＰヘッダを改変しない。中継器７が通信路２に介在しても、通信装置１１、１２間の通信に影響は及ばない。このため、中継器７が通信路２に介在する場合と、中継器７が通信路２に介在しない場合（即ち、通信路３を介して通信が行われる場合）とでは、同一の方法で通信が行われることになる。中継器７の例として、リピータ、ハブ、ルータ等が挙げられる。一方、中継器８は、データを中継する場合、データに付加されたＴＣＰヘッダを改変する。中継器８は、データを送信した通信装置１０に対してＡＣＫを返信する（詳細は後述する）。従って、通信装置１１、１２間で通信路４を介して通信が行われる場合と、通信路２、３を介して通信が行われる場合とでは、異なる方法で通信が行われることになる。中継器８の例として、周知のプロトコル変換機器（ゲートウェイ、プロキシサーバ等）が挙げられる。
【００２０】
通信装置１０の電気的構成について説明する。通信装置１０は、通信装置１０の制御を司るＣＰＵ２１を備える。ＣＰＵ２１は、ＲＯＭ２２、ＲＡＭ２３、ＨＤＤ２４、通信Ｉ／Ｆ２５、入力部２６、および出力部２７と電気的に接続する。ＲＯＭ２２には、ブートプログラム、ＢＩＯＳ等が記憶される。ＲＡＭ２３には、タイマやカウンタ、一時的なデータが記憶される。ＨＤＤ２４には、ＣＰＵ２１の制御プログラムやＯＳが記憶される。通信Ｉ／Ｆ２５は、中継器７、８、および他の通信装置１０と通信を行うためのインタフェースである。入力部２６は、通信装置１０に対して情報の入力を行うキーボード、マウス、マイク等である。出力部２７は、通信装置１０のユーザに対して情報を出力するディスプレイ、スピーカ等である。
【００２１】
通信装置１０は、通信路２、３、４における使用可能な伝送路容量を特定し、特定された伝送路容量内でデータが送信されるように、送信するデータの量を調整する。これによって通信装置１０は、通信路２、３、４において使用可能な伝送路容量を効率的に使用することができる。以下、伝送路容量を「帯域」ともいう。使用可能な伝送路容量を「使用可能帯域」ともいう。帯域および使用可能帯域の単位はｂｐｓである。通信装置１０は、方法の異なる二種類の計測通信（第一計測通信および第二計測通信）によって使用可能帯域を特定することができる。通信装置１０は、通進路に介在する中継器７、８の有無、および、中継器７、８の種類に応じて、第一計測通信または第二計測通信を使い分ける。以下詳説する。
【００２２】
図２および図３を参照し、第一計測通信について説明する。第一計測通信では、ＴＣＰの確認応答機能を利用して使用可能帯域を特定する。確認応答機能は、ＴＣＰパケットを受信した通信装置１０や中継器８が、ＴＣＰパケットを送信した通信装置１０や中継器８に対して、ＴＣＰパケットを受信した旨を通知する機能である。なお中継器７は確認応答機能を有していない。
【００２３】
図２は、通信路２の使用可能帯域を特定するために、通信装置１１が第一計測通信を実行した場合を示している。通信装置１１は、ＴＣＰヘッダおよびデータを含むＴＣＰパケット４１を、中継器７を介して通信装置１２に送信する（Ｓ１１）。中継器７はＴＣＰパケット４１を受信し、通信装置１２に対してＴＣＰパケット４１を中継する（Ｓ１３）。通信装置１２はＴＣＰパケット４１を受信する。通信装置１２は、ＴＣＰパケット４１を受信した旨を通信装置１１に通知するために、ＡＣＫパケット４３を、中継器７を介して通信装置１１に送信する（Ｓ１７）。ＡＣＫパケット４３は、ＴＣＰヘッダのＡＣＫフラグがＯＮされたものである。中継器７はＡＣＫパケット４３を受信し、通信装置１１に対してＡＣＫパケット４３を中継する（Ｓ１９）。通信装置１１はＡＣＫパケット４３を受信する。
【００２４】
通信装置１１は、Ｓ１１でＴＣＰパケット４１を送信してから、Ｓ１９でＡＣＫパケット４３を受信するまでの経過時間を計測する。通信装置１１は、ＡＣＫパケット４３のＴＣＰヘッダに含まれるシーケンス番号を参照することによって、送信したＴＣＰパケット４１に対応するＡＣＫパケット４３を特定する。なお通信装置１２は、ＴＣＰパケット４１の受信後、即座にＡＣＫパケット４３を返信する。このため、計測される経過時間は、ＴＣＰパケット４１およびＡＣＫパケット４３が通信路２を伝達する場合に要した時間と略同一となる。また通信装置１１は、ＴＣＰパケット４１およびＡＣＫパケット４３のデータサイズを特定する。例えば通信装置１１は、ＡＣＫパケット４３のＩＰヘッダに含まれるパケット長を参照することによって、受信したＡＣＫパケット４３のデータサイズを特定する。なお、ＴＣＰパケット４１のデータサイズは、Ｓ１１で通信装置１１自身が送信しているため、既知である。通信装置１１は、ＴＣＰパケット４１のデータサイズおよびＡＣＫパケット４３のデータサイズを加算した加算値を、経過時間で除算する。これによって通信装置１１は、通信路２の使用可能帯域を算出する。
【００２５】
なお算出される使用可能帯域は、通信装置１１から中継器７までの間の通信路２Ａにおける使用可能な帯域と、中継器７から通信装置１２までの間の通信路２Ｂにおける使用可能な帯域とのうち、より小さい帯域を示すものである。使用可能帯域は、通信路２のボトルネックの部分における使用可能な帯域を示すことになる。
【００２６】
なお中継器７は、通信装置１１、１２間で送受信されるデータを中継する処理を行うのみである。中継器７が通信路２に介在しても、通信装置１１、１２間の通信に影響は及ばない。このため通信装置１１、１２間で、中継器７が介在する通信路２を介して通信が行われる場合と、中継器が介在しない通信路３を介して通信が行われる場合とでは、同一の方法で通信が行われることになる。従って、通信路３の使用可能帯域を特定するための第一計測通信も、上述と同様の方法で実行されることになる。
【００２７】
図３は、通信路４の使用可能帯域を特定するために、通信装置１１が第一計測通信を実行した場合を示している。通信装置１１は、ＴＣＰヘッダおよびデータを含むＴＣＰパケット５１を、中継器８を介して通信装置１２に送信する（Ｓ２１）。中継器８はＴＣＰパケット５１を受信する。図２の場合と異なり、中継器８は、ＴＣＰパケット５１に含まれるＴＣＰヘッダを改変する（Ｓ２３）。例えば中継器８は、ＴＣＰヘッダに含まれるアドレス情報（送信元ポート番号および宛先ポート番号）やシーケンス番号を改変する。中継器８は、ＴＣＰヘッダを改変したＴＣＰパケット５５を、通信装置１２に対して中継する（Ｓ２９）。中継器８は、ＴＣＰパケット５１を受信した旨を通信装置１１に通知するために、ＡＣＫパケット５３を通信装置１１に送信する（Ｓ２７）。通信装置１１はＡＣＫパケット５３を受信する。
【００２８】
通信装置１２は、Ｓ２９で中継器８から送信されたＴＣＰパケット５５を受信する。通信装置１２は、ＴＣＰパケット５５を受信した旨を、ＴＣＰパケット５５を送信した中継器８に通知するために、ＡＣＫパケット５７を中継器８に送信する（Ｓ３３）。中継器８はＡＣＫパケット５７を受信する。
【００２９】
通信装置１２が送信するＡＣＫパケット５７は、図２の場合と異なり、ＴＣＰヘッダが改変されている。例えばＴＣＰヘッダのシーケンス番号が改変された場合、通信装置１１がＡＣＫパケット５７を取得して使用可能帯域を特定しようとしても、Ｓ２１で送信したＴＣＰパケット５１に対応するＡＣＫパケット５７を特定することができないので、図２の場合と同様の方法で使用可能帯域を特定することができない。従って第二計測通信では、以下のようにして使用可能帯域を特定する。
【００３０】
通信装置１１は、Ｓ２１でＴＣＰパケット５１を送信してから、Ｓ２７でＡＣＫパケット５３を受信するまでの経過時間を計測する。通信装置１１は、ＴＣＰパケット５１のデータサイズおよびＡＣＫパケット５３のデータサイズを加算した加算値を、経過時間によって除算する。これによって通信装置１１は、通信装置１１と中継器７との間の通信路４Ａの使用可能帯域を算出する。
【００３１】
以上のように、通信路２、３に対して第一計測通信が実行された場合（図２参照）、通信路２、３全体の使用可能帯域が特定される。通信装置１１は、通信路２、３を介して通信装置１２に対してデータを送信する場合、特定した使用可能帯域を超えない範囲で、送信するデータの帯域（以下「使用帯域」という。）を定める。通信装置１１は、使用帯域を用いてデータが送信されるように、データ量を調整する。これによって通信装置１１は、通信路２、３の使用可能帯域を効率的に使用できる。
【００３２】
一方、通信路４に対して第一計測通信が実行された場合（図３参照）、通信路４の一部である通信路４Ａの使用可能帯域が特定されることになる。残りの通信路４Ｂの使用可能帯域は特定されない。このため、通信路４Ｂの使用可能帯域が通信路４Ａの使用可能帯域より小さい場合、特定した使用可能帯域に基づいて通信装置１１が定める使用帯域が、通信路４Ｂの使用可能帯域よりも大きくなる可能性がある。このような使用帯域を用いてデータが通信装置１１から送信されると、データ遅延やデータ抜けが発生する可能性があるため、適切でない。従って、中継器８が介在する通信路４の使用可能帯域は、必要に応じて、後述するように第二計測通信によって特定される。
【００３３】
なお、上述で説明した第一計測通信の具体的方法は一例である。ＴＣＰヘッダに含まれる情報を用いて使用可能帯域が計測されるのであれば、第一計測通信は他の方法で実行されてもよい。また例えば通信装置１１は、以下のようにしてＴＣＰパケット４１（図２参照）、５１（図３参照）を送信する場合の帯域を定めてもよい。
【００３４】
通信装置１１は、ＴＣＰパケット４１、５１を送信した場合の帯域（以下、「帯域Ｘ」という。）と、ＡＣＫパケット４３（図２参照）、５３（図３参照）を受信した場合に特定した使用可能帯域（以下、「帯域Ｙ」という。）とを比較する。通信装置１１は、帯域Ｘと帯域Ｙとの差分を算出する。通信装置１１は、算出した差分が所定の範囲内に収まっているかを判断する。通信装置１１は、算出した差分が所定の範囲内に収まっている場合、次にＴＣＰパケット４１、５１を送信する場合の帯域を、前回ＴＣＰパケット４１、５１を送信した場合の帯域よりも大きくする。一方、算出した差分が所定の範囲の上限よりも大きくなった場合、次にＴＣＰパケット４１、５１を送信する場合の帯域を、前回ＴＣＰパケット４１、５１を送信した場合の帯域よりも小さくする。他方、算出した差分が所定の範囲の下限よりも小さくなった場合、次にＴＣＰパケット４１、５１を送信する場合の帯域を、前回ＴＣＰパケット４１、５１を送信した場合の帯域と同一とする。以上のように、ＴＣＰパケット４１、５１を送信する場合の帯域を変化させることによって、通信装置１１は、通信路の状態の変化に応じてＴＣＰパケットを送信する場合の帯域を適切に変化させ、使用可能帯域を特定できる。
【００３５】
図４および図５を参照し、第二計測通信について説明する。第二計測通信は、ＴＣＰパケットのデータに格納された計測用データを利用して、使用可能帯域を特定する。第二計測通信では、第一計測通信とは異なり、ＴＣＰパケットを受信した通信装置１０が使用可能帯域を特定する。特定された使用可能帯域は、ＴＣＰパケットを送信した通信装置１０に対して通知される。以下詳説する。
【００３６】
図４は、通信路２の使用可能帯域を計測するために、通信装置１１が第二計測通信を実行した場合を示している。通信装置１１は、計測用データＭが格納されたデータおよびＴＣＰヘッダを含むＴＣＰパケット６１を作成する。計測用データＭには、送信時刻情報およびデータサイズが含まれる。送信時刻情報は、ＴＣＰパケット６１が送信された時刻を示す情報である。データサイズは、ＴＣＰパケットのデータサイズである。通信装置１１は、中継器７を介して通信装置１２に対して、複数のＴＣＰパケット６１を順番に送信する（Ｓ４１）。
【００３７】
中継器７は、複数のＴＣＰパケット６１を受信し、通信装置１２に対して複数のＴＣＰパケット６１を中継する（Ｓ４３）。通信装置１２は、複数のＴＣＰパケット６１を受信する。通信装置１２は、ＴＣＰパケット６１を受信した時刻を示す時刻情報（以下「受信時刻情報」という。）をＲＡＭ２３に記憶する。
【００３８】
通信装置１２は、受信した複数のＴＣＰパケット６１のデータに格納された計測用データＭに基づき、使用可能帯域を特定する。具体的には次の通りである。通信装置１２は、計測用データＭに含まれる送信時刻情報に基づき、ＴＣＰパケット６１の送信間隔を算出する。通信装置１２は、ＲＡＭ２３に記憶した受信時刻情報に基づき、ＴＣＰパケット６１の受信間隔を算出する。通信装置１２は、算出した送信間隔および受信間隔に基づき、ＴＣＰパケット６１が通信路２を伝達するために要した時間を算出する。通信装置１２は、計測用データＭに含まれるデータサイズを、ＴＣＰパケット６１が通信路２を伝達するために要した時間で除算する。これによって通信装置１２は、通信路２の使用可能帯域を算出する。
【００３９】
算出された使用可能帯域は、第一計測通信によって特定された使用可能帯域と同様、通信路２Ａにおいて使用可能な帯域と、通信路２Ｂにおいて使用可能な帯域とのうち、より小さい帯域を示す。使用可能帯域は、通信路２のボトルネックの部分における使用可能な帯域を示すことになる。
【００４０】
通信装置１２は、特定した使用可能帯域をデータに格納し、ＴＣＰパケット６３を作成する。通信装置１２は、中継器７を介して通信装置１１に対して、ＴＣＰパケット６３を送信する（Ｓ４７）。中継器７はＴＣＰパケット６３を受信し、通信装置１１に対してＴＣＰパケット６３を中継する（Ｓ４９）。通信装置１１は、ＴＣＰパケット６３を受信する。通信装置１１は、受信したＴＣＰパケット６３のデータに格納された使用可能帯域を取得する。
【００４１】
なお、中継器が介在しない通信路３の使用可能帯域を特定するための第二計測通信も、上述と同様の方法で実行されることになる。
【００４２】
図５は、通信路４の使用可能帯域を特定するために、通信装置１１が第二計測通信を実行した場合を示している。通信装置１１は、計測用データＭが格納されたデータおよびＴＣＰヘッダを含むＴＣＰパケット７１を作成する。計測用データＭには、送信時刻情報およびデータサイズが含まれる。通信装置１１は、中継器８を介して通信装置１２に対して、複数のＴＣＰパケット７１を順番に送信する（Ｓ６１）。図４の場合と異なり、中継器８は、ＴＣＰパケット７１に含まれるＴＣＰヘッダを改変する（Ｓ６３）。中継器８は、ＴＣＰヘッダを改変した複数のＴＣＰパケット７５を、通信装置１２に対して中継する（Ｓ６９）。中継器８は、ＴＣＰパケット７１を受信した旨を通信装置１１に通知するために、ＡＣＫパケット（図示せず）を通信装置１１に送信する。通信装置１１はＡＣＫパケットを受信する。
【００４３】
通信装置１２は、Ｓ６９で中継器８から送信された複数のＴＣＰパケット７５を受信する。通信装置１２は、ＴＣＰパケット７５を受信した旨を中継器８に通知するために、ＡＣＫパケット（図示せず）を中継器８に送信する。中継器８はＡＣＫパケットを受信する。
【００４４】
通信装置１２は、ＴＣＰパケット７５を受信した時刻を示す受信時刻情報をＲＡＭ２３に記憶する。通信装置１２は、受信した複数のＴＣＰパケット７５のデータに格納された計測用データＭに基づき、使用可能帯域を特定する。使用可能帯域の方法は、第二計測通信によって通信路２の使用可能帯域を特定した場合（図４参照）と同一である。これによって通信装置１２は、通信路４の使用可能帯域を算出する。
【００４５】
通信装置１２は、算出した使用可能帯域をデータに含むＴＣＰパケット７７を作成する。通信装置１２は、中継器８を介して通信装置１１に対して、ＴＣＰパケット７７を送信する（Ｓ７３）。中継器８はＴＣＰパケット７７を受信し、ＴＣＰヘッダを改変する。中継器８は、ＴＣＰヘッダを改変したＴＣＰパケット７３を、通信装置１１に対して送信する（Ｓ６７）。通信装置１１はＴＣＰパケット７３を受信する。通信装置１１は、受信したＴＣＰパケット７３のデータに格納された使用可能帯域を取得する。
【００４６】
以上のように、第二計測通信が実行された場合、通信路２、３、４のいずれの場合も、通信路２、３、４全体の使用可能帯域が特定される（図４、図５参照）。通信路４に対して第二計測通信が実行された場合に、通信路４全体の使用可能帯域を特定することができるという点で、通信路４の一部（通信路４Ａ）の使用可能帯域が特定される第一計測通信の場合と異なる。通信装置１１は、通信路２、３、４を介して通信装置１２に対してデータを送信する場合、特定した使用可能帯域を超えない範囲で使用帯域を定め、使用帯域を用いてデータが送信されるように、データ量を調整する。これによって通信装置１１は、通信路２、３、４の使用可能帯域を効率的に使用できる。
【００４７】
なお上述で説明した第二計測通信の具体的方法は一例である。ＴＣＰパケットのデータに含める計測用データを用いて使用可能帯域が計測されるのであれば、他の方法であってもよい。例えば通信装置１１は、以下のようにして使用可能帯域を特定してもよい。
【００４８】
通信装置１１は、計測用データが格納されたデータを含むＴＣＰパケット６１（図４参照）、７１（図５参照）を、通信装置１２に対して送信する。通信装置１２はＴＣＰパケット６１、７１を受信し、送信時刻情報を取得する。通信装置１２は、送信時刻情報に基づき、ＴＣＰパケット６１、７１の送信間隔を算出する。通信装置１２は、算出した送信間隔と受信間隔とを比較する。通信装置１２は、送信間隔と受信間隔との差分を算出する。通信装置１２は、算出した差分をデータに含むＴＣＰパケット６３（図４参照）、７７（図５参照）を作成する。通信装置１２は、通信装置１１に対してＴＣＰパケット６３、７７を送信する。
【００４９】
通信装置１１は、ＴＣＰパケット６３、７７を受信し、差分を取得する。通信装置１１は、算出した差分が所定の範囲内に収まっているかを判断する。通信装置１１は、算出した差分が所定の範囲内に収まっている場合、次にＴＣＰパケット６１、７１を送信する場合の帯域を、前回ＴＣＰパケット６１、７１を送信した場合の帯域よりも大きくする。一方、算出した差分が所定の範囲の上限よりも大きくなった場合、次にＴＣＰパケット６１、７１を送信する場合の帯域を、前回ＴＣＰパケット６１、７１を送信した場合の帯域よりも小さくする。他方、算出した差分が所定の範囲の下限よりも小さくなった場合、次にＴＣＰパケット６１、７１を送信する場合の帯域を、前回ＴＣＰパケット６１、７１を送信した場合の帯域と同一とする。以上のように、ＴＣＰパケットを送信する場合の帯域を変化させることによって、通信装置１１は、通信路の状態の変化に応じてＴＣＰパケットを送信する場合の帯域を適切に変化させ、使用可能帯域を特定できる。
【００５０】
なお上述したように、第一計測通信が実行された場合（図２、図３参照）、通信路４における中継器８と通信装置１２との間の通信路４Ｂの使用可能帯域を特定することができない（図４参照）。このため通信装置１１は、中継器８が介在する通信路４を介して通信装置１２と通信を行う場合、通信路４全体の使用可能帯域を特定するために、第二計測通信を優先的に実行する。通信路４に対して第二計測通信が実行された場合、通信路４全体の使用可能帯域が特定されるためである。なお詳細は後述するが、通信路４全体の使用可能帯域を特定する必要がない場合には、中継器８が介在する通信路４に対して第一計測通信が実行される場合もある。
【００５１】
一方、通信路２、３に対して計測通信が実行される場合、第一計測通信および第二計測通信のいずれの場合も、通信路２、３全体の使用可能帯域が特定される。この場合通信装置１１は、第一計測通信を優先的に実行して使用可能帯域を特定する。理由は以下の通りである。
【００５２】
第二計測通信では、ＴＣＰパケットのデータに格納された計測用データが使用されて使用可能帯域が特定される。このため通信装置１１は、計測用データが格納されていない汎用のＴＣＰパケットを使用して第二計測通信を行うことができない。これに対して第一計測通信では、確認応答機能が利用され、ＴＣＰヘッダに含まれる情報が使用されて使用可能帯域が特定される。従って第一計測通信では、汎用のＴＣＰパケットを使用して使用可能帯域を特定することが可能となる。このため通信装置１１は、第一計測通信を優先的に実行することによって、通信装置１２との間で汎用のＴＣＰパケットを使用した通信を実行しつつ、同時に使用可能帯域を特定できるようにしている。
【００５３】
また第二計測通信では、ＴＣＰパケットのデータに格納された情報を使用することになるので、通信装置１１のプログラムのうちアプリケーション層レベルで使用可能帯域の特定処理を実行する必要がある。このため、第二計測通信を実行するためには、使用可能帯域の特定処理を行うアプリケーションを通信装置１１に実装する必要がある。加えて、アプリケーション層の処理に要する時間が余分に発生し、処理遅延の要因となる可能性がある。一方、第一計測通信では、ＴＣＰヘッダに含まれる情報を使用することになるので、通信装置１１のプログラムのうちカーネル層レベルで使用可能帯域の特定処理を実行することが可能となる。従って第一計測通信を優先的に実行することによって、使用可能帯域の特定処理を高速化することができる。
【００５４】
通信装置１０は、通信路に介在する中継器に応じ、第一計測通信または第二計測通信を選択する。通信装置１０は、選択した第一計測通信または第二計測通信を、所定の周期で繰り返し実行する。周期とは、所定の時間間隔を示す。通信装置１０は、通信路の使用可能帯域を周期的に特定することによって、通信路の状態が変化した場合も、使用可能帯域を継続的に特定できる。通信装置１０は、特定した使用可能帯域に基づいて使用帯域を定め、他の通信装置１０に対してデータを送信することによって、使用可能帯域を効率的に使用しつつ、高品質な通信を行うことができる。以下、中継器に応じた第一計測通信または第二計測通信が実行される周期を、第一周期という。
【００５５】
また通信装置１０は、通信路に介在する中継器を、第一周期よりも長い第二周期で周期的に判断する。これによって通信装置１０は、通信路に介在する中継器が変更された場合も、変更後の中継器に応じた適切な計測通信を実行し、使用可能帯域を継続的に特定できる。通信路に介在する中継器は、第一計測通信および第二計測通信の結果を比較することによって実行される。詳細は以下のとおりである。
【００５６】
通信路に介在する中継器を判断する方法について説明する。図６から図８は、通信路２に介在する中継器７が判断される場合を示している。図６では、通信路２Ａにおける使用可能な帯域が、通信路２Ｂにおける使用可能な帯域よりも大きい状態であるとする。通信路２Ｂが通信路２全体のボトルネックになっている。この状態で通信装置１１が第一計測通信を実行した場合、ボトルネックである通信路２Ｂにおける使用可能な帯域が、通信路２全体の使用可能帯域として特定される。通信装置１１が第二計測通信を実行した場合も同様に、ボトルネックである通信路２Ｂにおける使用可能な帯域が、通信路２全体の使用可能帯域として特定される。以上の結果、第一計測通信および第二計測通信によって特定される使用可能帯域は略同一となる。
【００５７】
図７では、通信路２Ａにおける使用可能な帯域が、通信路２Ｂにおける使用可能な帯域よりも小さい状態であるとする。通信路２Ａが通信路２全体のボトルネックになっている。この状態で通信装置１１が第一計測通信を実行した場合、ボトルネックである通信路２Ａにおける使用可能な帯域が、通信路２全体の使用可能帯域として特定される。通信装置１１が第二計測通信を実行した場合も同様に、ボトルネックである通信路２Ａにおける使用可能な帯域が、通信路２全体の使用可能帯域として特定される。以上の結果、第一計測通信および第二計測通信によって特定される使用可能帯域は略同一となる。
【００５８】
図８では、通信路２Ａにおける使用可能な帯域と、通信路２Ｂにおける使用可能な帯域とが略同一の状態であるとする。通信装置１１が第一計測通信を実行した場合、通信路２Ａ、２Ｂにおける使用可能な帯域が、使用可能帯域として特定される。通信装置１１が第二計測通信を実行した場合も同様に、通信路２Ａ、２Ｂにおける使用可能な帯域が、使用可能帯域として特定される。以上の結果、第一計測通信および第二計測通信によって特定される使用可能帯域は略同一となる。
【００５９】
以上のように、中継器７が介在する通信路２に対して第一計測通信および第二計測通信が実行された場合、双方によって特定される使用可能帯域は、通信路２Ａ、２Ｂにおける使用可能な帯域の状態に依らず、常に略同一となる。なお、中継器が介在しない通信路３に対して第一計測通信および第二計測通信が実行された場合も同様に、双方によって特定される使用可能帯域は略同一となる。
【００６０】
図９から図１１は、通信路４に介在する中継器８が判断される場合を示している。図９では、通信路４Ａにおける使用可能な帯域が、通信路４Ｂにおける使用可能な帯域よりも大きい状態であるとする。この状態で通信装置１１が第一計測通信を実行した場合、通信路４Ａにおける使用可能な帯域が、使用可能帯域として特定される。一方、通信路４Ｂが通信路４全体のボトルネックになっていることになるので、通信装置１１が第二計測通信を実行した場合、ボトルネックである通信路４Ｂにおける使用可能な帯域が、通信路４全体の使用可能帯域として特定される。以上の結果、第一計測通信によって特定される使用可能帯域（通信路４Ａにおける使用可能な帯域）は、第二計測通信によって特定される使用可能帯域（通信路４Ｂにおける使用可能な帯域）よりも大きくなる。
【００６１】
図１０では、通信路４Ａにおける使用可能な帯域が、通信路４Ｂにおける使用可能な帯域よりも小さい状態であるとする。この状態で通信装置１１が第一計測通信を実行した場合、通信路４Ａにおいて使用可能な帯域が、使用可能帯域として特定される。一方、通信路４Ａが通信路４全体のボトルネックになっていることになるので、通信装置１１が第二計測通信を実行した場合、ボトルネックである通信路４Ａにおける使用可能な帯域が、通信路４全体の使用可能帯域として特定される。以上の結果、第一計測通信によって特定される使用可能帯域（通信路４Ａにおける使用可能な帯域）、および、第二計測通信によって特定される使用可能帯域（通信路４Ａにおける使用可能な帯域）は略同一となる。
【００６２】
図１１では、通信路４Ａにおける使用可能な帯域と、通信路４Ｂにおける使用可能な帯域とが略同一の状態であるとする。通信装置１１が第一計測通信を実行した場合、通信路４Ａにおける使用可能な帯域が、使用可能帯域として特定される。通信装置１１が第二計測通信を実行した場合、通信路４Ａ、４Ｂにおける使用可能な帯域が、通信路４全体の使用可能帯域として特定される。以上の結果、第一計測通信によって特定される使用可能帯域（通信路４Ａにおける使用可能な帯域）、および、第二計測通信によって特定される使用可能帯域（通信路４Ａ、４Ｂにおける使用可能な帯域）は略同一となる。
【００６３】
以上のように、中継器８が介在する通信路４に対して第一計測通信および第二計測通信が実行された場合、第一計測通信によって特定される使用可能帯域が、第二計測通信によって特定される使用可能帯域よりも大きくなるか、又は、双方によって特定される使用可能帯域が略同一となる。
【００６４】
通信装置１１は、第一計測通信によって特定された使用可能帯域と、第二計測通信によって特定された使用可能帯域とを比較する。通信装置１１は、第一計測通信によって特定された使用可能帯域が、第二計測通信によって特定された使用可能帯域よりも大きくなった場合（図９参照）、通信路４に中継器８が介在し、且つ、通信装置１１、１２間の計測通信に中継器８が影響を及ぼしていると判断する。通信装置１１は、通信路４全体の使用可能帯域を特定する必要があるので、第二計測通信を優先的に実行する。
【００６５】
一方、通信装置１１は、第一計測通信によって特定された使用可能帯域と、第二計測通信によって特定された使用可能帯域とが略同一となった場合、（ａ）通信路２に中継器７が介在している（図６〜図８参照）、（ｂ）通信路３に中継器が介在していない、および、（ｃ）通信路４に中継器８が介在しているものの、通信装置１１、１２間の計測通信に中継器８が影響を及ぼさない（図１０、図１１参照）のうちいずれかの状態であると判断する。但しこれらの場合、第一計測通信および第二計測通信によって特定される使用可能帯域は、いずれも通信路全体の使用可能帯域を適切に示していることになる。従って通信装置１１は、より効率的な計測通信である第一計測通信を優先的に実行する。
【００６６】
図１２から図１４を参照し、通信装置１０のＣＰＵ２１において実行されるメイン処理について説明する。メイン処理は、通信装置１０の電源を投入する操作がユーザによって実行された場合に、ＨＤＤ２４（図１参照）に記憶されたプログラムに従って、ＣＰＵ２１が実行する。なおメイン処理が起動された直後の状態で、ＣＰＵ２１は、初期状態の計測通信として第一計測通信を選択する。
【００６７】
図１２に示すように、はじめにＣＰＵ２１は計測処理（図１３参照）を実行する（Ｓ１１１）。計測処理では、通信路に介在する中継器に対応する計測通信を選択するために、第一計測通信および第二計測通信を実行して中継器を判断する処理が実行される。計測処理の詳細については後述する。計測処理（Ｓ１１１）の後、ＣＰＵ２１は、第一周期が経過したか判断する（Ｓ１１５）。第一周期が経過していない場合（Ｓ１１５：ＮＯ）、第一周期の経過を継続して監視するために、処理はＳ１１５に戻る。第一周期が経過した場合（Ｓ１１５：ＹＥＳ）、ＣＰＵ２１は、計測処理（Ｓ１１１参照）によって選択された第一計測通信または第二計測通信を実行し、使用可能帯域を特定する（Ｓ１１７）。
【００６８】
ＣＰＵ２１は、第一周期よりも長い第二周期が経過したか判断する（Ｓ１１９）。第二周期が経過していない場合（Ｓ１１９：ＮＯ）、計測処理（Ｓ１１１参照）によって選択された第一計測通信または第二計測通信を第一周期で継続して実行するために、処理はＳ１１５に戻る。一方、第二周期が経過した場合（Ｓ１１９：ＹＥＳ）、第二周期で計測処理を実行するために、処理はＳ１１１に戻る。
【００６９】
図１３を参照し、計測処理について説明する。はじめにＣＰＵ２１は、第一計測通信が選択された状態であるか判断する（Ｓ１２１）。第一計測通信が選択された状態である場合（Ｓ１１１：ＹＥＳ）、ＣＰＵ２１は、第一計測通信および第二計測通信によって特定される使用可能帯域を比較して中継器を判断し、対応する計測通信を選択する処理（比較処理、図１４参照）を実行する（Ｓ１２３）。
【００７０】
図１４を参照し、比較処理について説明する。ＣＰＵ２１は、第一計測通信を実行し、使用可能帯域を特定する（Ｓ１４１）。以下、第一計測通信によって特定された使用可能帯域を、「第一帯域」という。次にＣＰＵ２１は、第二計測通信を実行し、使用可能帯域を特定する（Ｓ１４３）。以下、第二計測通信によって特定された使用可能帯域を、「第二帯域」という。ＣＰＵ２１は、第一計測通信および第二計測通信を所定のｎ回繰り返して実行したか判断する（Ｓ１４５）。第一計測通信および第二計測通信の実行回数がｎ回未満の場合（Ｓ１４５：ＮＯ）、第一計測通信および第二計測通信を繰り返し実行するために、処理はＳ１４１に戻る。
【００７１】
第一計測通信および第二計測通信をｎ回実行した場合（Ｓ１４５：ＹＥＳ）、ＣＰＵ２１は、第一帯域から第二帯域を減算し、差分を算出する（Ｓ１４７）。第一計測通信および第二計測通信はｎ回実行されているので、ｎ個の差分が算出されることになる。ＣＰＵ２１は、算出された差分と所定の閾値Ｔとを、次のようにして比較する。
【００７２】
図１５および図１６を参照して具体的に説明する。図１５および図１６は、算出されたｎ個の差分と閾値Ｔとの関係を示している。例えば図１５に示すように、算出された差分のうち閾値Ｔよりも大きい差分の数がｎ／２以上ある場合、第一帯域の方が第二帯域よりも大きくなる傾向があると判断する。ＣＰＵ２１は、通信路４に中継器８が介在し、且つ、通信装置１１、１２間の計測通信に中継器８が影響を及ぼしている状態（図９参照）であると判断する。この場合、通信路４の使用可能帯域を計測する計測通信として第二計測通信が選択されることになる（図１４、Ｓ１５１参照、後述）。
【００７３】
一方、例えば図１６に示すように、算出された差分のうち閾値Ｔよりも大きい差分の数がｎ／２未満である場合、第一帯域と第二帯域とが略同一となる傾向があると判断する。ＣＰＵ２１は、（ａ）通信路２に中継器７が介在した状態（図６〜図８参照）、（ｂ）通信路３に中継器が介在しない状態、および、（ｃ）通信路４に中継器８が介在しているものの、通信装置１１、１２間の計測通信に中継器８が影響を及ぼしていない状態（図１０、図１１参照）のうちいずれかであると判断する。この場合、通信路２、３、４の使用可能帯域を計測する計測通信として、第一計測通信が選択されることになる（図１４、Ｓ１５３参照、後述）。
【００７４】
以上のように通信装置１１は、ｎ回分の計測通信によって特定した使用可能帯域を比較することによって、計測結果が一時的に変動した場合やばらついた場合でも、中継器８が通信路４に介在し、且つ、通信路１１、１２間の計測通信に中継器８が影響を及ぼしているかをより適切に判断できる。
【００７５】
図１４に示すように、閾値Ｔ以上となる差分の数がｎ／２以上である場合（Ｓ１４９：ＹＥＳ）、ＣＰＵ２１は、通信路の使用可能帯域を計測する計測通信として第二計測通信を選択する（Ｓ１５１）。比較処理は終了し、処理は計測処理（図１３参照）に戻る。一方、閾値Ｔ以上となる差分の数がｎ／２未満である場合（Ｓ１４９：ＮＯ）、ＣＰＵ２１は、通信路の使用可能帯域を計測する計測通信として第一計測通信を選択する（Ｓ１５３）。比較処理は終了し、処理は計測処理（図１３参照）に戻る。
【００７６】
図１３に示すように、Ｓ１２３の処理時点では、Ｓ１２１で第一計測通信が選択された状態であると判断している。この場合、比較処理（図１４参照）によって選択された第一計測通信または第二計測通信を実行するために、計測処理は終了し、処理はメイン処理（図１２参照）に戻る。なおメイン処理では、比較処理によって選択された第一計測通信又は第二計測通信が実行されることになる（Ｓ１１７、図１２参照）。比較処理によって第一計測通信が選択された場合（Ｓ１５１、図１４参照）、第一計測通信が継続して実行されることになる。一方、比較処理によって第二計測通信が選択された場合（Ｓ１５３、図１４参照）、第一計測通信から第二計測通信に即座に切り替えられ、第二計測通信が実行されることになる。
【００７７】
一方、図１３のＳ１２１で、第二計測通信が選択された状態であると判断している場合（Ｓ１２１：ＮＯ）、ＣＰＵ２１は、比較処理（図１４参照）を実行する（Ｓ１２５）。比較処理は、Ｓ１２３で実行される比較処理と同一である。比較処理によって第二計測通信が選択された場合（Ｓ１２７：ＹＥＳ）、Ｓ１２１で第二計測通信が選択された状態であると判断しているので、第二計測通信が選択された状態のまま変化していないことになる。この場合、メイン処理（図１２参照）において第二計測通信を継続して実行する（Ｓ１１７、図１２参照）ために、計測処理は終了し、処理はメイン処理に戻る。
【００７８】
一方、比較処理によって第一計測通信が選択された場合（Ｓ１２７：ＮＯ）、Ｓ１２１で第二計測通信が選択された状態であると判断しているので、メイン処理のＳ１１７（図１２参照）で実行されている第二計測通信とは異なる第一計測通信が選択されたことになる。この場合ＣＰＵ２１は、メイン処理のＳ１１７で実行される第二計測通信を、第一計測通信に即座に変更しない。ＣＰＵ１１は、前回実行された比較処理でも同様に、第一計測通信が選択されているかを判断する（Ｓ１２９）。前回実行された比較処理でも同様に第一計測通信を選択している場合（Ｓ１２９：ＹＥＳ）、比較処理によって第一計測通信が二回連続して選択されたことになる。この場合、ＣＰＵ２１は、第一計測通信を選択する（Ｓ１３１）。計測処理は終了し、処理はメイン処理（図１２参照）に戻る。メイン処理のＳ１１７（図１２参照）では、第二計測通信から第一計測通信に変更され、第一計測通信が実行されることになる。一方、前回実行された比較処理において第二計測通信が選択されている場合（Ｓ１２９：ＮＯ）、ＣＰＵ２１は第二計測通信を選択する（Ｓ１３３）。計測処理は終了し、処理はメイン処理に戻る。メイン処理のＳ１１７では、第二計測通信が継続して実行されることになる。
【００７９】
以上のようにして通信装置１０は、第一計測通信から第二計測通信への変更は即座に実行するのに対し、第二計測通信から第一計測通信への変更は即座に実行しない。このようにして通信装置１０は、第二計測通信が実行される頻度を高くし、第一計測通信が実行される頻度を低くしている。第二計測通信は、中継器８が通信路に介在し、且つ、通信装置１１、１２間の通信に中継器８が影響を及ぼしているか否かに関わらず、通信路全体の使用可能帯域を常に特定することができる。このため通信装置１０は、第二計測通信が実行される頻度を高くすることによって、使用可能帯域を安定的に特定している。
【００８０】
図１７を参照し、メイン処理（図１２参照）のＳ１１７によって実行される計測通信（図１７中上段）が、比較処理（図１４参照）の結果（図１７中下段）に応じて変化する様子について説明する。第一計測通信が第一周期で継続的に実行され、使用可能帯域の特定がされていたとする（図中５１）（Ｓ１１５、Ｓ１１７、図１２参照）。第二周期が到来し（Ｓ１１９：ＹＥＳ、図１２参照）、計測処理が実行される（Ｓ１１１、図１２参照）。計測処理中の比較処理（Ｓ１２３、図１３参照）によって、第一帯域と第二帯域とが略同一になる傾向があると判断され（図中５３）（Ｓ１４９：ＮＯ、図１４参照）、第一計測通信が選択される（Ｓ１５３、図１４参照）。選択された第一計測通信が継続して実行される（図中５１）（Ｓ１１５、Ｓ１１７、図１２参照）。
【００８１】
次の第二周期が到来し（Ｓ１１９、図１２参照）、計測処理が実行される（Ｓ１１１、図１２参照）。計測処理中の比較処理（Ｓ１２３、図１３参照）によって、第一帯域の方が第二帯域よりも大きくなる傾向があると判断され（図中５５）（Ｓ１４９：ＹＥＳ、図１４参照）、第二計測通信が選択される（Ｓ１５１、図１４参照）。選択された第二計測通信が実行される（図中５７）（Ｓ１１５、Ｓ１１７、図１２参照）。
【００８２】
次の第二周期が到来し（Ｓ１１９、図１２参照）、計測処理が実行される（Ｓ１１１、図１２参照）。計測処理中の比較処理（Ｓ１２５、図１３参照）によって、第一帯域と第二帯域とが略同一になる傾向があると判断され（図中５９）（Ｓ１４９：ＮＯ、図１４参照）、第一計測通信が選択される（Ｓ１５３、図１４参照）。ところが、前回の比較処理において第二計測通信が選択されているので（Ｓ１２９：ＮＯ、図１３参照）、最終的に第二計測通信が選択され（Ｓ１３３、図１３参照）、第二計測通信が継続して実行される（図中６１）（Ｓ１１５、Ｓ１１７、図１２参照）。
【００８３】
次の第二周期が到来し（Ｓ１１９、図１２参照）、計測処理が実行される（Ｓ１１１、図１２参照）。計測処理中の比較処理（Ｓ１２５、図１３参照）によって、第一帯域と第二帯域とが略同一になる傾向があると判断され（図中６３）（Ｓ１４９：ＮＯ、図１４参照）、第一計測通信が選択される（Ｓ１５３、図１４参照）。前回の比較処理において第一計測通信が選択されているので（Ｓ１２９：ＹＥＳ、図１３参照）、最終的に第一計測通信が選択され（Ｓ１３１、図１３参照）、第一計測通信が実行される（図中６５）（Ｓ１１５、Ｓ１１７、図１２参照）。
【００８４】
以上説明したように、通信装置１０は、所定の条件を満たすように中継器８が通信路に介在するか否かを判断し、判断結果に応じて、計測通信を切り替えることができる。通信装置１０は、（ａ）通信路２に中継器７が介在している（図６〜図８参照）、（ｂ）通信路３に中継器が介在していない、および、（ｃ）通信路４に中継器８が介在しているものの、通信装置１１、１２間の計測通信に中継器８が影響を及ぼさない（図１０、図１１参照）のうちいずれかの状態である場合には、汎用のＴＣＰパケットを用いて使用可能帯域を計測できる第一計測通信を選択する。一方、通信装置１０は、通信路４に中継器８が介在し、且つ、通信装置１１、１２間の通信に中継器８が影響を及ぼしている場合（図９参照）、通信路４全体の使用可能帯域を特定するために第二計測通信を選択する。このように通信装置１０は、使用可能帯域を特定する計測通信の方法を、所定の条件を満たすように中継器８が通信路に介在するか否かに応じて選択できる。このため通信装置１０は、使用可能帯域を迅速かつ適切に特定することができる。
【００８５】
また通信装置１０は、第一計測通信によって特定される使用可能帯域と、第二計測通信によって特定される使用可能帯域とを比較することによって、所定の条件を満たすように中継器８が通信路に介在するかを容易かつ適切に判断することができる。
【００８６】
また通信装置１０は、第一周期よりも第二周期を長くする。これによって、第一計測通信および第二計測通信を行い中継器８の有無を判断する回数を抑制する。これによって通信装置１０は、ネットワーク６のトラフィックが計測通信によって増大することを抑止できる。
【００８７】
なお、Ｓ１４９の処理を行うＣＰＵ２１が本発明の「判断手段」に相当する。Ｓ１３１、Ｓ１３３、Ｓ１５１、Ｓ１５３の処理を行うＣＰＵ２１が本発明の「選択手段」に相当する。Ｓ１１７の処理を行うＣＰＵ２１が本発明の「第一通信手段」に相当する。Ｓ１４１およびＳ１４３の処理を行うＣＰＵ２１が本発明の「第二通信手段」に相当する。Ｓ１４９の処理が本発明の「判断ステップ」に相当する。Ｓ１３１、Ｓ１３３、Ｓ１５１、Ｓ１５３の処理が本発明の「選択ステップ」に相当する。Ｓ１１７の処理が本発明の「第一通信ステップ」に相当する。
【００８８】
通信路４に介在し、且つ、通信装置１１、１２間の計測通信に影響を及ぼしている状態の中継器８が、本発明の「所定の条件を満たす中継器」に相当する。通信路に介在しているものの、通信装置１１、１２間の計測通信に影響を及ぼさない状態の中継器７、８は、本発明の「所定の条件を満たす中継器」から除外される。
【００８９】
なお本発明は上述の実施形態に限定されず、種々の変更が可能である。上述の第一計測通信では、ＴＣＰの確認応答機能を利用して使用可能帯域が特定された。本発明は、他の通信プロトコルにおける同様の機能を利用することによって、使用可能帯域が特定されてもよい。上述の第一計測通信および第二計測通信における使用可能帯域の特定方法は一例であり、他の方法で使用可能帯域が特定されてもよい。例えば第二計測通信において、通信装置１１は、使用帯域を少しずつ増加させながら、ＴＣＰパケットを繰り返し送信してもよい。通信装置１２は、ＴＣＰパケットの受信間隔を計測し、その変化傾向に基づいて、使用可能帯域を特定してもよい。具体的には、使用帯域が使用可能帯域未満である場合には、送信間隔と受信間隔とは略同一になる。一方、使用帯域が使用可能帯域以上になった場合、送信間隔よりも受信間隔の方が長くなる。通信装置１２は、送信間隔よりも受信間隔のほうが長くなった場合の受信間隔に基づき、通信路の使用可能帯域を特定してもよい。
【００９０】
上述では、第一計測通信および第二計測通信をｎ回実行し、その差分を評価することによって、所定の条件を満たすように中継器８が通信路に介在するか否かを判断した。例えば通信装置１１は、差分の平均値と所定の閾値とを比較することによって、所定の条件を満たすように中継器８が通信路に介在するか否かを判断してもよい。又例えば通信装置１１は、差分の最大値と所定の閾値とを比較することによって、所定の条件を満たすように中継器８が通信路に介在するかを判断してもよい。
【００９１】
上述では、第一周期よりも第二周期を長くした。これに対し、第一周期と第二周期は同一であってもよい。上述では、比較処理によって第一計測通信が二回以上連続した場合に、使用可能帯域を特定するための計測通信を、第二計測通信から第一計測通信に変更した。これに対し、第一計測通信の連続回数は一回としてもよいし、三回以上としてもよい。
【００９２】
上述では、所定の条件を満たすように中継器８が通信路に介在するか否かを、第二周期で第一計測通信および第二計測通信を実行することによって判断した。例えば通信装置１１は、入力部２６を介して判断指示を検出した場合にも同様に、第一計測通信および第二計測通信を実行し、中継器８が通信路に介在するかを判断してもよい。また例えば通信装置１１は、他の通信装置１０から所定のパケットを受信した場合、第一計測通信および第二計測通信を実行し、中継器が通信路に介在するかを判断してもよい。例えば通信装置１１は、通信装置１２との通信が実行されている最中に、新たに別の通信装置１０との間で通信を開始する場合、入力部２６を介して判断指示を受け付けてもよいし、別の通信装置１０から、通信の開始を要求するパケットを受信してもよい。通信装置１１は、これらの場合に、第一計測通信および第二計測通信を実行し、通信路に中継器８が介在するかを判断してもよい。これによって通信装置１１は、中継器８が通信路に介在するか否かを周期的に特定する場合と比較して、通信状況の変化に迅速に対応できる。従って通信装置１１は、通信路上の中継機の検出、および計測手段の切り替えを短時間で実行することが可能となる。
【符号の説明】
【００９３】
１      通信システム
２、２Ａ、２Ｂ  通信路
３    通信路
４、４Ａ、４Ｂ  通信路
６  ネットワーク
７、８  中継器
１０、１１、１２  通信装置
【図１】
0005747830.tif 000002
【図２】
0005747830.tif 000003
【図３】
0005747830.tif 000004
【図４】
0005747830.tif 000005
【図５】
0005747830.tif 000006
【図６】
0005747830.tif 000007
【図７】
0005747830.tif 000008
【図８】
0005747830.tif 000009
【図９】
0005747830.tif 000010
【図１０】
0005747830.tif 000011
【図１１】
0005747830.tif 000012
【図１２】
0005747830.tif 000013
【図１３】
0005747830.tif 000014
【図１４】
0005747830.tif 000015
【図１５】
0005747830.tif 000016
【図１６】
0005747830.tif 000017
【図１７】
0005747830.tif 000018