(57)【要約】【課題】  所望の通信路を介したデータの受信を、これとは異なる通信路を介したデータの受信よりも優先してできるようにすることを目的とする。【解決手段】  本発明の通信装置は、複数の通信路を確立する確立手段と、前記確立手段により確立された通信路を介してデータを受信する受信手段と、前記複数の通信路のうち、前記受信手段によるデータの受信を優先的に行う所定の通信路を判定する判定手段と、  前記複数の通信路のうち、前記判定手段により判定された前記所定の通信路とは異なる通信路を介したデータ送信を、前記所定の通信路を介したデータ送信よりも抑制させるための信号を送信する送信手段と、を有する。【選択図】  図５
2017157964.tif 000002
【特許請求の範囲】
【請求項１】
通信装置であって、
複数の通信路を確立する確立手段と、
前記確立手段により確立された通信路を介してデータを受信する受信手段と、
前記複数の通信路のうち、前記受信手段によるデータの受信を優先的に行う所定の通信路を判定する判定手段と、
前記複数の通信路のうち、前記判定手段により判定された前記所定の通信路とは異なる通信路を介したデータ送信を、前記所定の通信路を介したデータ送信よりも抑制させるための信号を送信する送信手段と、
を有することを特徴とする通信装置。
【請求項２】
前記送信手段は、前記受信手段により受信したデータに対する確認応答信号として、前記判定手段により判定された前記所定の通信路とは異なる通信路を介したデータ送信を、前記所定の通信路を介したデータ送信よりも抑制させるための信号を送信することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記送信手段は、前記所定の通信路に対して送信する信号に含まれるＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）に準拠したウィンドウサイズよりも、前記所定の通信路とは異なる通信路に対して送信する信号に含まれる前記ウィンドウサイズを小さくした信号を送信することを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記送信手段は、前記所定の通信路とは異なる通信路に対して送信する信号に含まれる前記ウィンドウサイズを０に設定した信号を送信することを特徴とする請求項３に記載の通信装置。
【請求項５】
前記通信路は、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）に準拠したコネクションであることを特徴とする請求項１から４のいずれか１項に記載の通信装置。
【請求項６】
前記受信手段により受信されたデータを格納する格納手段と、
前記格納手段がデータの格納に利用できる残容量と所定の閾値とを比較する比較手段と、
を更に有し、
前記比較手段による比較の結果、前記残容量が前記所定の閾値よりも少ない場合、前記送信手段は、前記複数の通信路のうち、前記判定手段により判定された前記所定の通信路とは異なる通信路を介したデータの受信を、前記所定の通信路を介したデータの受信よりも抑制するための信号を送信することを特徴とする請求項１から５のいずれか１項に記載の通信装置。
【請求項７】
前記比較手段による比較の結果、前記残容量が前記所定の閾値よりも大きい場合、前記送信手段は、前記複数の通信路のうち、前記判定手段により判定された前記所定の通信路とは異なる通信路を介したデータの受信を、前記所定の通信路を介したデータの受信よりも抑制するための信号を送信しないことを特徴とする請求項６に記載の通信装置。
【請求項８】
前記比較手段による比較の結果、前記残容量が前記所定の閾値よりも少ない場合、前記判定手段による判定を行い、
前記比較手段による比較の結果、前記残容量が前記所定の閾値よりも大きい場合、前記判定手段による判定を行わないことを特徴とする請求項６または７に記載の通信装置。
【請求項９】
通信装置の制御方法であって、
複数の通信路を確立する確立工程と、
前記確立工程において確立された通信路を介してデータを受信する受信工程と、
前記複数の通信路のうち、前記受信工程におけるデータの受信を優先的に行う所定の通信路を判定する判定工程と、
前記複数の通信路のうち、前記判定工程において判定された前記所定の通信路とは異なる通信路を介したデータ送信を、前記所定の通信路を介したデータ送信よりも抑制させるための信号を送信する送信工程と、
を有することを特徴とする制御方法。
【請求項１０】
コンピュータを請求項１から８のいずれか１項に記載の通信装置として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信の制御を行う通信装置に関する。
【背景技術】
【０００２】
ＴＣＰ／ＩＰ通信では、データの送信装置と受信装置とは、コネクションと呼ばれる通信路を確立し、当該通信路上で通信を行う。また、受信装置は、コネクションを介して受信したデータに対して受信確認応答であるＡＣＫを送信することで通信の信頼性を向上させている。このＡＣＫには、ＡＣＫを待つことなく、データの送信装置が送信することのできるデータ量を示すウィンドウサイズと呼ばれる情報が含められている。受信装置は、自装置が受信したデータを一時的に記憶するバッファの空き容量等に基づいて、ウィンドウサイズを設定する。一方、送信装置は、ウィンドウサイズに従って、送信するデータのサイズを調整することで、受信装置が利用可能なバッファを越えたデータを送信してしまうことを防止している（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１１０６８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、バッファとして利用可能なメモリのサイズが小さい装置が複数のコネクションを確立した場合、次のような課題が発生する。即ち、優先的にデータを受信したいコネクションがあるにも拘わらず、他のコネクションを介して受信したデータでバッファが占有されてしまい、優先的にデータを受信したいコネクションを介したデータ受信が阻まれてしまう場合があった。
【０００５】
例えば、プリンタが印刷データの受信のためにＰＣと接続するコネクションと、インターネットに接続するコネクションと、を確立している場合がある。この場合に、インターネットに接続するコネクションを介して大量のデータを受信してしまうと、印刷データの受信が阻まれ、プリンタ本来の動作に支障をきたす場合があった。
【０００６】
上記課題を鑑み、所望の通信路を介したデータの受信を、これとは異なる通信路を介したデータの受信よりも優先してできるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を鑑み、本発明の通信装置は、複数の通信路を確立する確立手段と、前記確立手段により確立された通信路を介してデータを受信する受信手段と、前記複数の通信路のうち、前記受信手段によるデータの受信を優先的に行う所定の通信路を判定する判定手段と、前記複数の通信路のうち、前記判定手段により判定された前記所定の通信路とは異なる通信路を介したデータ送信を、前記所定の通信路を介したデータ送信よりも抑制させるための信号を送信する送信手段と、を有する。
【発明の効果】
【０００８】
本発明によれば、所望の通信路を介したデータの受信を、これとは異なる通信路を介したデータの受信よりも優先して行うことができる。
【図面の簡単な説明】
【０００９】
【図１】システム構成図。
【図２】通信装置のハードウェア構成図。
【図３】通信装置のソフトウェア構成図。
【図４】コネクション毎の優先度を示すテーブル。
【図５】通信装置が実現するフローチャート。
【発明を実施するための形態】
【００１０】
図１に、本実施形態のシステム構成を示す。通信装置１０１と他の通信装置１０２はＴＣＰ／ＩＰに準拠した通信を行う。なお、通信装置１０１が、複数の他の通信装置１０２とＴＣＰ／ＩＰに準拠した通信を行うようにしてもよい。ここで、ＴＣＰとはＴｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌの略であり、ＩＰとはＩｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌの略である。ＴＣＰ／ＩＰに準拠した通信は、ＴＣＰ／ＩＰヘッダを付したパケットを送受信することによって行われる。
【００１１】
図２に、通信装置１０１のハードウェア構成を示す。記憶部２０１はＲＯＭやＲＡＭ等のメモリにより構成され、後述する各種動作を行うためのプログラムや、ＴＣＰ／ＩＰ通信のための通信パラメータ等の各種情報を記憶する。なお、記憶部２０１として、ＲＯＭ、ＲＡＭ等のメモリの他に、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性のメモリカード、ＣＤ、ＤＶＤなどの記憶媒体を用いてもよい。また、記憶部２０１が複数のメモリ等を備えていてもよい。
【００１２】
制御部２０２はＣＰＵやＭＰＵ等のプロセッサにより構成され、記憶部２０１に記憶されたプログラムを実行することにより通信装置１０１全体を制御する。なお、制御部２０２は、記憶部２０１に記憶されたプログラムとＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）との協働により通信装置１０１全体を制御するようにしてもよい。また、制御部２０２がマルチコア等の複数のプロセッサを備え、複数のプロセッサにより通信装置１０１全体を制御するようにしてもよい。
【００１３】
機能部２０３は、通信装置１０１が所定の処理を実行するためのハードウェアである。例えば、通信装置１０１がカメラである場合、機能部２０３は撮像部であり、撮像処理を行う。また、例えば、通信装置１０１がプリンタである場合、機能部２０３は印刷部であり、印刷処理を行う。また、例えば、通信装置１０１がプロジェクタである場合、機能部２０３は投影部であり、投影処理を行う。機能部２０３が処理するデータは、記憶部２０１に記憶されているデータであってもよいし、後述する通信部２０６を介して他の通信装置と通信したデータであってもよい。
【００１４】
入力部２０４は、ユーザからの各種操作の受付を行う。出力部２０５は、ユーザに対して各種出力を行う。ここで、出力部２０５による出力とは、画面上への表示や、スピーカーによる音声出力、振動出力等の少なくとも１つを含む。なお、タッチパネルのように入力部２０４と出力部２０５の両方を１つのモジュールで実現するようにしてもよい。
【００１５】
通信部２０６はＴＣＰ／ＩＰ通信の制御を行い、不図示のＩＦ（インターフェース）を介して、画像データや文書データ、映像データ等のコンテンツを他の通信装置１０２と通信する。
【００１６】
図３に、記憶部２０１に記憶されたプログラムを制御部２０２が読み出し、それを実行することで実現されるソフトウェアブロック図を示す。
【００１７】
送受信部３０１は、後述する通信処理部３０２から受け取ったデータを他の通信装置１０２に送信する。また、送受信部３０１は、他の通信装置１０２から受信したデータを通信処理部３０２へ提供する。通信処理部３０２はＴＣＰ／ＩＰ処理を行う。具体的には、送受信部３０１から受け取ったデータに対してＴＣＰ／ＩＰの受信処理を行う。また、通信処理部３０２は、後述するアプリケーション部３０６から受け取ったデータに対してＴＣＰ／ＩＰの送信処理を行う。また、通信処理部３０２は、アプリケーション部３０６において実行されるアプリケーションからの指示に応じて、ＴＣＰにおいてデータを通信するための通信路であるコネクションの確立および切断を行う。通信処理部３０２は、１台の他の通信装置１０２との間で複数のコネクションを確立することも、複数の他の通信装置１０２の各々との間で１つまたは複数のコネクションを確立することも可能である。
【００１８】
優先度管理部３０３は、通信処理部３０２が確立したコネクション毎の優先度を管理する。当該管理は、図４に示すようなコネクションＩＤと優先度値を対応付けたテーブルを用いて行われる。この例では、通信装置１０１が並行して維持することが可能な１０コのコネクションのうち、７コのコネクションが既に確立されている。
【００１９】
図４において、コネクションＩＤとは、各コネクションを識別するための識別情報である。また、優先度値とは、コネクション毎の優先度を示す値である。ここでは、優先度値が大きいほど優先度が高い。優先度の高いコネクションにおける通信は、優先度の低いコネクションにおける通信よりも、優先的に行われるように制御される。なお、以下の実施形態において、当該優先度は、対応するコネクションを介したデータ受信の優先度を示すものとして説明する。データ送信に関する各コネクションの優先度は、データ受信の優先度と同じであってもよいし、異なっていてもよい。
【００２０】
また、本実施形態において、優先度は、当該コネクションを利用するアプリケーションプログラムの重要度、および、コネクションを確立したタイミングに基づいて設定される。一例として、通信装置１０１がプリンタであって、プリントアプリケーションとインターネット接続アプリケーションの２つのアプリケーションを実行する場合について説明する。この場合、アプリケーション自体の優先度に応じて、当該アプリケーションが確立したコネクションの優先度が設定される。ここでは、プリントアプリケーションが確立したコネクションの優先度が、インターネット接続アプリケーションが確立したコネクションの優先度よりも高く設定される。これにより、プリンタとして優先的に処理すべきプリント処理に関する通信を優先的に行うことができる。
【００２１】
また、上述の例において、通信装置１０１が複数のプリントアプリケーションを実行する場合、当該複数のプリントアプリケーションの各々が確立したコネクションについては、コネクションが確立された順序に基づいて優先度が設定される。ここでは、より早く確立されたコネクションの優先度が、より遅く確立されたコネクションの優先度よりも高いものとする。これにより、より早く確立されたコネクションの通信を優先的に行うことができる。なお、これに代えて、より早く確立されたコネクションの優先度が、より遅く確立されたコネクションの優先度よりも低くするようにしてもよい。この場合、より遅く確立されたコネクションの通信を優先的に行うことができる。
【００２２】
いずれのアプリケーションの優先度を高めるか、また、コネクションの確立順序に応じた優先度の設定方法は、製品毎に固定的に決めておいてもよいし、ユーザが適宜変更できるようにしてもよい。
【００２３】
バッファ管理部３０４は、他の通信装置１０２と送受信するデータを一時的に記憶するバッファを管理する。バッファ管理部３０４が管理するバッファには、ネットワークバッファと受信バッファとがある。ネットワークバッファは複数のコネクションで共用されるメモリであり、各コネクションでのデータの送受信に応じて、その一部または全部が、一時的に当該コネクション用に割り当てられる。例えば、他の通信装置１０２から、あるコネクションを介してデータを受信した場合、バッファ管理部３０４は、当該データを一時的に記憶するために、ネットワークバッファの一部を当該コネクションに割り当てる。このようにして割り当てられたバッファを受信バッファと呼ぶ。なお、コネクション毎に、受信バッファとして利用できるサイズの上限値（最大受信バッファサイズ）が定められている。最大受信バッファサイズは、例えば６４ｋバイトである。当該割り当ての制御は、バッファ管理部３０４が行う。
【００２４】
このように、複数のコネクションでネットワークバッファを共用し、必要に応じてネットワークバッファから各コネクションに受信バッファを割り当てることで、メモリを効率的に利用することができる。なお、当該ネットワークバッファおよび受信バッファは、記憶部２０１の一部を構成する。
【００２５】
ウィンドウ制御部３０５は、ＴＣＰにおけるウィンドウサイズを制御する。ここで、ウィンドウサイズとは、他の通信装置１０２が通信装置１０１へ、ＴＣＰにおけるデータの受信確認応答信号であるＡＣＫを待つことなく送信することのできるデータ量、即ち、他の通信装置１０２に送信を許可するデータ量を示す。当該ウィンドウサイズは、通信装置１０１が他の通信装置１０２からデータを受信した際に、当該データに対するＡＣＫに含めて他の通信装置に通知される。なお、ＡＣＫは、Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔの略である。
【００２６】
アプリケーション部３０６は他の通信装置１０２から受信したデータに基づき、各種の情報処理やユーザへの提示を行う。また、各種の情報処理やユーザからの指示に基づいてデータを生成し、他の通信装置１０２へ送信するために、通信処理部３０２へ生成したデータを提供する。
【００２７】
次に、通信装置１０１が他の通信装置１０２からデータを含むＩＰパケットを受信した場合の動作について、図５を用いて説明する。図５は、通信装置１０１が他の通信装置１０２からデータを受信する際に、記憶部２０１に記憶されたプログラムを制御部２０２が読み出し、それを実行することで実現される処理の流れのフローチャートである。
【００２８】
なお、図５に示すフローチャートの少なくとも一部をハードウェアにより実現してもよい。ハードウェアにより実現する場合、例えば、所定のコンパイラを用いることで、各ステップを実現するためのプログラムからＦＰＧＡ上に自動的に専用回路を生成すればよい。ＦＰＧＡとは、Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙの略である。また、ＦＰＧＡと同様にしてＧａｔｅ  Ａｒｒａｙ回路を形成し、ハードウェアとして実現するようにしてもよい。また、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）により実現するようにしてもよい。
【００２９】
また、ここでは、他の通信装置１０２からデータを受信するのに先立って、通信装置１０１は他の通信装置１０２と複数のコネクションを確立済みであるものとする。また、図４に示すように、確立済みのコネクション毎に優先度が既に設定されているものとする。
【００３０】
まず、通信装置１０１は、他の通信装置１０２からパケットを受信し、受信したパケットに含まれるデータを受信バッファに格納する（Ｓ５０１）。例えば、３０ｋバイトのデータを受信した場合、通信装置１０１はネットワークバッファから、３０ｋバイト分のメモリをネットワークバッファから確保し、受信バッファとして利用できるようにする。そして、通信装置１０１は、３０ｋバイトのデータを当該確保した受信バッファに格納する。これに伴い、ネットワークバッファの空き容量（残容量）が３０ｋバイト分、低下する。
【００３１】
なお、通信装置１０１のウィンドウサイズを問い合わせるゼロウィンドウプローブ等、データを含まないパケットを受信した場合には、通信装置１０１はデータの受信バッファへの格納処理を省略することができる。
【００３２】
パケットを受信すると、通信装置１０１は、ネットワークバッファの空き容量（残容量）を確認する（Ｓ５０２）。そして、通信装置１０１は、ネットワークバッファの空き容量と所定の閾値との比較を行い、ネットワークバッファの空き容量が所定の閾値以上であるか否かを判定する（Ｓ５０３）。ここで、所定の閾値とは、例えば、コネクションの最大受信バッファサイズである。
【００３３】
なお、残容量として、ネットワークバッファの空き容量に代えて、Ｓ５０１におけるデータ受信に利用したコネクションの最大受信バッファサイズに対する空き容量を用いてもよい。例えば、コネクションの最大受信バッファサイズが６４ｋバイトであり、当該コネクションを介して受信したデータを受信バッファに３０ｋバイト格納している場合、コネクションの最大受信バッファサイズに対する空き容量は３４ｋとなる。通信装置１０１は、この空き容量３４ｋが、所定の閾値以上であるか否かを判定するようにしてもよい。なお、この場合は、所定の閾値として、例えば、コネクションの最大受信バッファサイズの半分の値を設定する。
【００３４】
該判定の結果、ネットワークバッファの空き容量が所定の閾値以上である場合（Ｓ５０３のＹｅｓ）について説明する。この場合、通信装置１０１は、他の通信装置１０２に送信を許可するデータ量を示すウィンドウサイズとして、データ受信に利用したコネクションの最大受信バッファサイズに対する空き容量の値を設定する（Ｓ５０６）。なお、データ受信に利用したコネクションの最大受信バッファサイズに対する空き容量よりも、ネットワークバッファの空き容量が小さい場合には、通信装置１０１はウィンドウサイズとして、ネットワークバッファの空き容量の値を設定する。即ち、ウィンドウサイズとして、最大受信バッファサイズに対する空き容量、もしくは、ネットワークバッファの空き容量のうち、いずれか小さい方の値が設定される。
【００３５】
例えば、ネットワークバッファの容量が２００ｋバイトであり、コネクションの最大受信バッファサイズが６４ｋバイトである場合を考える。この場合において、Ｓ５０１において３０ｋバイトを受信すると、コネクションの最大受信バッファサイズに対する空き容量は３４ｋバイトである。一方、ネットワークバッファは、Ｓ５０１において３０ｋバイトを受信し、３０ｋバイト分が受信バッファとして確保されるので、１７０ｋバイトの空き容量があると考えられる。しかしながら、ネットワークバッファは、他のコネクションの通信においても利用される。従って、他のコネクションの通信により、例えば、ネットワークバッファが１５０ｋバイト分、利用されている場合もある。このような場合、ネットワークバッファの空き容量は２０ｋバイトになってしまう。
【００３６】
このような場合には、最大受信バッファサイズに対する空き容量（３４ｋバイト）よりも、ネットワークバッファの空き容量（２０ｋバイト）の方が小さいため、ネットワークバッファの空き容量である２０ｋバイトがウィンドウサイズとして設定される。一方、例えば、ネットワークバッファが他のコネクションの通信において３０ｋバイトしか利用されていない場合には、Ｓ５０１で受信した３０ｋバイトのデータと合わせても、ネットワークバッファの空き容量は１４０ｋバイトとなる。このような場合には、最大受信バッファサイズに対する空き容量（３４ｋバイト）よりも、ネットワークバッファの空き容量（１４０ｋバイト）の方が大きい。従って、より小さい大受信バッファサイズに対する空き容量である２０ｋバイトがウィンドウサイズとして設定される。これにより、他のコネクションによる通信によってネットワークバッファが占有されている場合であっても、適切なウィンドウサイズを設定することができる。
【００３７】
そして、通信装置１０１は、Ｓ５０１において受信したデータに対するＡＣＫに、Ｓ５０６において設定されたウィンドウサイズを含めて他の通信装置１０２へ送信する（Ｓ５０８）。その後、通信装置１０１は、図５に示すフローを終了し、次のデータ受信を待ち受ける。
【００３８】
一方、ネットワークバッファの空き容量が所定の閾値未満である場合（Ｓ５０３のＮｏ）、通信装置１０１は、Ｓ５０１におけるデータ受信に利用したコネクションに対応する優先度値を取得する（Ｓ５０４）。なお、通信装置１０１は、受信したデータに含まれる他の通信装置１０２のＩＰアドレスや、ポート番号に基づいて、当該データが利用したコネクションを判別することができる。
【００３９】
そして、通信装置１０１は、Ｓ５０１におけるデータ受信に利用したコネクションに対応する優先度値が、他のコネクションに対応する優先度値よりも相対的に高いかを判定する（Ｓ５０５）。ここでは、データ受信に利用したコネクションに対応する優先度値が上位３番目以内に入っているかを判定する。例えば、図４におけるコネクションＩＤが２のコネクションを利用したデータである場合には優先度値が相対的に高いと判定され、コネクションＩＤが７のコネクションを利用したデータである場合には優先度値が相対的に低いと判定される。
【００４０】
Ｓ５０１におけるデータ受信に利用したコネクションに対応する優先度値が、他のコネクションに対応する優先度値よりも相対的に高いと判定された場合（Ｓ５０５のＹｅｓ）、Ｓ５０６に進む。Ｓ５０６以降の処理は、上述と同様なので、説明を省略する。
【００４１】
次に、Ｓ５０１におけるデータ受信に利用したコネクションに対応する優先度値が、他のコネクションに対応する優先度値よりも相対的に低いと判定された場合（Ｓ５０５のＮｏ）について説明する。この場合、通信装置１０１はウィンドウサイズとして、Ｓ５０６において設定されるウィンドウサイズよりも小さい値を設定する（Ｓ５０７）即ち、優先度の低いコネクションについて、送信を許可するデータ量を制限する。ここでは、ウィンドウサイズとして０が設定されるものとする。しかし、これに限らず、当該コネクションを利用するアプリケーションが他の通信装置１０２との接続を維持するために利用する信号を定期的に通信できるように、０よりも大きい値を設定するようにしてもよい。なお、この場合であっても、Ｓ５０６において設定されるウィンドウサイズよりは小さい値を設定するものとする。
【００４２】
その後、Ｓ５０８に進み、通信装置１０１は、Ｓ５０１において受信したデータに対するＡＣＫに、Ｓ５０７において設定されたウィンドウサイズを含めて他の通信装置１０２へ送信する。即ち、優先度の高いコネクションを介したデータ送信よりも、優先度の低いコネクションを介したデータ送信を抑制するための信号を送信する。
【００４３】
このように、優先度の低いコネクションについて、送信を許可するデータ量を抑制するので、優先度の低いコネクションのデータによって受信バッファが逼迫し、優先度の高いコネクションのデータを受信できなくなる可能性を低減させることができる。
【００４４】
なお、優先度の低いコネクションで、データ送信を抑制するための信号を送信された場合、当該コネクションの相手装置は、ゼロウィンドウプローブを送信する。通信装置１０１はゼロウィンドウプローブを受信すると、図５に示す処理が行われるので、通信装置１０１の受信状態に合わせて、優先度の低いコネクションからも、データの受信を開始することができる。
【００４５】
また、コネクションの切断やユーザの設定等に応じて、各コネクションの優先度が変わり、優先度の低いコネクションから優先度の高いコネクションに変更された場合、大きな値が設定されたウィンドウサイズを当該コネクション宛に通知するようにしてもよい。これにより、優先度の低いコネクションの通信相手からのゼロウィンドウプローブ等を待つことなく、データの受信を開始することができる。
【００４６】
また、上述の実施形態において、Ｓ５０２〜５０３を省略し、Ｓ５０１からＳ５０４に進むようにしてもよい。これにより、残容量に拘わらず、コネクションの優先度に応じた制御をすることができる。
【００４７】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００４８】
１０１  通信装置
１０２  他の通信装置
【図１】
2017157964.tif 000003
【図２】
2017157964.tif 000004
【図３】
2017157964.tif 000005
【図４】
2017157964.tif 000006
【図５】
2017157964.tif 000007