(57)【要約】【課題】使用されるプロトコルによらず送信装置と受信装置との間の通信のスループットを向上させることを可能にすること。【解決手段】本発明の一態様に係る通信制御装置は、送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、上記送信装置から受信する第１通信処理部と、上記パケットを上記受信装置へ送信する第２通信処理部と、を備え、前記第２通信処理部は、前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信し、前記第１通信処理部は、前記確認応答パケットを前記送信装置へ送信し、前記通信制御装置は、前記送信装置が送信速度を変更するように上記パケット又は前記確認応答パケットの制御を行う制御部、をさらに備える。
2020012973.tif 000002
【特許請求の範囲】
【請求項１】
通信制御装置であって、
送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信する第１通信処理部と、
前記パケットを前記受信装置へ送信する第２通信処理部と、
を備え、
前記第２通信処理部は、前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信し、
前記第１通信処理部は、前記確認応答パケットを前記送信装置へ送信し、
前記通信制御装置は、
前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行う制御部、
をさらに備える、
通信制御装置。
【請求項２】
前記制御は、前記確認応答パケット又は前記パケットの送信タイミングの調整を含む、請求項１に記載の通信制御装置。
【請求項３】
前記送信タイミングの前記調整は、前記確認応答パケット間の送信間隔又は前記パケット間の送信間隔を短く又は長くすることを含む、請求項２に記載の通信制御装置。
【請求項４】
前記送信タイミングの前記調整は、前記確認応答パケット又は前記パケットの送信を遅らせることを含む、請求項２又は３に記載の通信制御装置。
【請求項５】
前記制御は、前記確認応答パケットの一部の破棄を含む、請求項１〜４のいずれか１項に記載の通信制御装置。
【請求項６】
前記破棄は、所定の確率で、所定の割合で、又は所定の時間間隔で確認応答パケットを破棄することである、請求項５に記載の通信制御装置。
【請求項７】
前記制御は、前記パケットの送信順序の調整を含む、請求項１〜６のいずれか１項に記載の通信制御装置。
【請求項８】
前記送信順序の前記調整は、前記パケットが受信順にではなくシーケンス順に送信されるように前記パケットの送信順序を調整することである、請求項７に記載の通信制御装置。
【請求項９】
前記パケットは、少なくとも一部が暗号化され又は認証されるパケットであり、
前記確認応答パケットは、少なくとも一部が暗号化され又は認証される確認応答パケットである、
請求項１〜８のいずれか１項に記載の通信制御装置。
【請求項１０】
前記確認応答パケットの前記一部は、前記送信装置への確認応答のための情報を含む、請求項９に記載の通信制御装置。
【請求項１１】
前記送信装置と前記受信装置との間の目標送信速度を推定する目標送信速度推定部、
をさらに備え、
前記制御部は、前記目標送信速度に基づいて前記制御を行う、
請求項１〜１０のいずれか１項に記載の通信制御装置。
【請求項１２】
前記送信装置と前記受信装置との間の現在の送信速度を推定する現在送信速度推定部、
をさらに備え、
前記制御部は、前記現在の送信速度及び前記目標送信速度に基づいて前記制御を行う、
請求項１１に記載の通信制御装置。
【請求項１３】
前記送信装置により使用されている送信制御方式を推定する送信制御推定部、
をさらに備え、
前記制御部は、推定された前記送信制御方式に基づいて前記制御を行う、
請求項１〜１２のいずれか１項に記載の通信制御装置。
【請求項１４】
前記送信装置は、第１の送信制御方式又は第２の送信制御方式を使用する送信装置であり、
前記第１の送信制御方式は、パケットのロスの有無に基づいて送信速度を制御する送信制御方式であり、
前記第２の送信制御方式は、パケットの送受信から推定されるネットワーク性能に基づいて送信速度を制御する送信制御方式である、
請求項１〜１３のいずれか１項に記載の通信制御装置。
【請求項１５】
前記パケットは、データパケットである、請求項１〜１４のいずれか１項に記載の通信制御装置。
【請求項１６】
送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信することと、
前記パケットを前記受信装置へ送信することと、
前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信することと、
前記確認応答パケットを前記送信装置へ送信することと、
前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行うことと、
を含む方法。
【請求項１７】
送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信することと、
前記パケットを前記受信装置へ送信することと、
前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信することと、
前記確認応答パケットを前記送信装置へ送信することと、
前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行うことと、
をプロセッサに実行させるプログラム。
【請求項１８】
送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信することと、
前記パケットを前記受信装置へ送信することと、
前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信することと、
前記確認応答パケットを前記送信装置へ送信することと、
前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行うことと、
をプロセッサに実行させるプログラムを記録したコンピュータに読み取り可能な非一時的記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御装置、方法、プログラム、及びコンピュータに読み取り可能な非一時的記録媒体に関する。
【背景技術】
【０００２】
近年、スマートフォンやタブレット等の高機能なモバイル端末の普及に伴い、モバイルネットワーク経由のトラヒックが増加している。【０００３】
多くの通信で使用されている送信速度制御（例えば、ＣＵＢＩＣ及びＮｅｗＲｅｎｏ等）では、モバイルネットワークにおける急激な帯域変動に追従することが困難である。そのため、帯域が十分に使われず、スループットが低下し得る。【０００４】
送信装置から受信装置へパケットを中継する中継装置において送信速度を調整する技術がある。例えば、特許文献１には、中継装置において、送信装置から受信したデータに対して本来ならば受信装置によって当該送信装置へ送信される確認応答（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ：ＡＣＫ）を受信装置に代わって当該送信装置へ送信し、送信速度を調整して当該データを受信装置へ送信する技術が、開示されている。特許文献２にも、概ね同様の技術が開示されている。特許文献３には、中継装置において、ネットワークの可用帯域を推定し、当該可用帯域に基づいて目標送信速度を推定し、当該目標送信速度が現在の送信速度に近づくように、送信装置へのＡＣＫパケットの送信の頻度を調整する技術が、開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１２４９８４号公報
【特許文献２】国際公開第２０１５／０４８９９９号
【特許文献３】特開２０１８−０６７７８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１−３の技術は、中継装置が代理としてＡＣＫパケットを生成又は改変し、当該ＡＣＫを送信装置へ送信できることを前提としている。【０００７】
しかし、使用されるプロトコルに起因して、中継装置がＡＣＫパケットを生成及び改変できない場合もある。一例として、ＡＣＫパケットが暗号化又は認証され、中継装置が当該ＡＣＫパケットを生成及び改変し、送受信できなくなり得る。また、ＡＣＫパケットが暗号化される場合には、中継装置はＡＣＫパケットの確認応答番号を把握できず、パケットが正常に届いたのか、ロスしたのかを識別できないので、ロスパケットの再送を促進するＡＣＫパケットを送信できなくなる。このような場合には、特許文献１−３の技術を適用することは困難となる。【０００８】
本発明の目的は、使用されるプロトコルによらず送信装置と受信装置との間の通信のスループットを向上させることを可能にする通信制御装置及び方法を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一態様に係る通信制御装置は、送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、上記送信装置から受信する第１通信処理部と、上記パケットを上記受信装置へ送信する第２通信処理部と、を備え、上記第２通信処理部は、上記パケットのための確認応答パケットであって、上記受信装置と上記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、上記受信装置から受信し、上記第１通信処理部は、上記確認応答パケットを上記送信装置へ送信し、上記通信制御装置は、上記送信装置が送信速度を変更するように上記パケット又は上記確認応答パケットの制御を行う制御部と、を備える。【００１０】
本発明の一態様に係る方法は、送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、上記送信装置から受信することと、上記パケットを上記受信装置へ送信することと、上記パケットのための確認応答パケットであって、上記受信装置と上記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、上記受信装置から受信することと、上記確認応答パケットを上記送信装置へ送信することと、上記送信装置が送信速度を変更するように上記パケット又は上記確認応答パケットの制御を行うことと、を含む。【００１１】
本発明の一態様に係るプログラムは、送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信することと、前記パケットを前記受信装置へ送信することと、前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信することと、前記確認応答パケットを前記送信装置へ送信することと、前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行うことと、をプロセッサに実行させるプログラムである。【００１２】
本発明の一態様に係るコンピュータに読み取り可能な非一時的記録媒体は、送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信することと、前記パケットを前記受信装置へ送信することと、前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信することと、前記確認応答パケットを前記送信装置へ送信することと、前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行うことと、をプロセッサに実行させるプログラムを記録したコンピュータに読み取り可能な非一時的記録媒体である。
【発明の効果】
【００１３】
本発明によれば、使用されるプロトコルによらず送信装置と受信装置との間の通信のスループットを向上させることが可能になる。なお、本発明により、当該効果の代わりに、又は当該効果とともに、他の効果が奏されてもよい。
【図面の簡単な説明】
【００１４】
【図１】ＣＵＢＩＣにおける輻輳ウィンドウ（ｃｗｎｄ）の変化の例を説明するための説明図である。
【図２】ＢＢＲにおける送信データ量の調整の手法を説明するための説明図である。
【図３】無線帯域の変動と送信速度制御（ＣＵＢＩＣ）によるスループットの変化の例を示すグラフである。
【図４】ＱＵＩＣパケットの例を説明するための説明図である。
【図５】実施形態に係るシステムの概略的な構成の一例を示す説明図である。
【図６】第１の実施形態に係る通信制御装置の概略的な機能構成の例を示すブロック図である。
【図７】第１の実施形態に係る通信制御装置の概略的なハードウェア構成の例を示すブロック図である。
【図８】第１の実施形態に係る送信装置１０から受信装置２０へのパケットの送信の例を説明するためのシーケンス図である。
【図９Ａ】第１の実施形態に係る送信タイミングの調整の第１の例を説明するためのシーケンス図である。
【図９Ｂ】第１の実施形態に係る送信タイミングの調整の第２の例を説明するためのシーケンス図である。
【図１０】第１の実施形態に係る送信タイミングの調整の第３の例を説明するためのシーケンス図である。
【図１１】第１の実施形態に係るパケットの送信順序の調整の例を説明するためのシーケンス図である。
【図１２】第１の実施形態に係るＡＣＫパケットの一部の破棄の例を説明するためのシーケンス図である。
【図１３】第２の実施形態に係る通信制御装置の概略的な機能構成の例を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、添付の図面を参照して本発明の実施形態を詳細に説明する。なお、本明細書及び図面において、同様に説明されることが可能な要素については、同一の符号を付することにより重複説明が省略され得る。
【００１６】
説明は、以下の順序で行われる。
１．関連技術
２．実施形態に係るシステムの構成
３．第１の実施形態
３．１．通信制御装置の機能構成
３．２．通信制御装置のハードウェア構成
３．３．技術的特徴
４．第２の実施形態
４．１．通信制御装置の機能構成
４．２．通信制御装置のハードウェア構成
４．３．技術的特徴
【００１７】
この開示において、「Ａ及び／又はＢ」という表現は、「ＡとＢとの両方」（ｂｏｔｈ  Ａ  ａｎｄ  Ｂ）又は「ＡとＢとのいずれか一方」（ｅｉｔｈｅｒ  Ａ  ｏｒ  Ｂ）を意味する。
【００１８】
＜＜１．関連技術＞＞
図１〜図４を参照して、本発明の実施形態に関連する技術を説明する。
【００１９】
（１）ＣＵＢＩＣ
ＣＵＢＩＣは、Ｌｉｎｕｘ（登録商標）  ｋｅｒｎｅｌ  ２．６．１９以降のＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）で標準的に用いられている輻輳制御方式である。ＣＵＢＩＣは、パケットのロスの有無に基づいて送信速度を制御する方式であり、ロスベースの方式と言える。
【００２０】
図１は、ＣＵＢＩＣにおける輻輳ウィンドウ（Ｃｏｎｇｅｓｔｉｏｎ  Ｗｉｎｄｏｗ：ｃｗｎｄ）の変化の例を説明するための説明図である。
【００２１】
まず、スロースタートフェーズでは、送信装置は、ＡＣＫの受信ごとにｃｗｎｄを１パケットだけ大きくする。このフェーズでは、ｃｗｎｄは時間軸で指数関数的に増加する。この増加は、ｃｗｎｄが所定の閾値（初期ｓｓｔｈｒｅｓｈ）に達するまで続く。
【００２２】
次に、輻輳回避フェーズでは、送信装置は、正常にＡＣＫを受信している限り、時間の経過に応じて３次関数的にｃｗｎｄを増加させる。一方、送信装置は、同一パケットに対する重複した確認応答（ＤｕｐＡＣＫ）を３回受信した場合には、軽度の輻輳と判断してｃｗｎｄを一定割合（例えば３割）だけ減少させ、タイムアウトの場合には、重度の輻輳と判断してｃｗｎｄを２パケットにする。図１の例では、輻輳回避フェーズにおいて、送信装置は、正常にＡＣＫを受信している間は、ｃｗｎｄを増加させているが、輻輳に伴うＤｕｐＡＣＫ等の発生に応じて、ｃｗｎｄを減少させている。
【００２３】
このように、ＣＵＢＩＣでは、送信装置は、ＡＣＫの受信状況に応じてｃｗｎｄを増減させる。即ち、送信装置は、ＡＣＫの受信状況に応じて送信速度を変更する。
【００２４】
（２）ＢＢＲ
ＢＢＲ（Ｂｏｔｔｌｅｎｅｃｋ  Ｂａｎｄｗｉｄｔｈ  ａｎｄ  Ｒｏｕｎｄ−ｔｒｉｐ  ｐｒｏｐａｇａｔｉｏｎ  ｔｉｍｅ）は、近年のＴＣＰやＱＵＩＣ等で利用可能な輻輳制御方式である。ＢＢＲは、パケットの送受信から推定されるネットワーク性能に基づいて送信速度を制御する方式であり、ファンクションベースの方式と言える。
【００２５】
具体的には、ＢＢＲでは、送信装置は、データを送信しながらネットワーク性能を推定し、推定結果から送信データ量を決定する。ＣＵＢＩＣとは異なり、パケットのロスが発生しても、送信データ量の制御は行われない。
【００２６】
ＢＢＲでは、送信データ量の「ペース」と「上限」とを調整してデータが送信され、「可用帯域」と「通信遅延」が継続的に推定される。具体的には、図２に示されるように、送信装置は、「ＳＴＡＲＴＵＰ」により、ペースを密に、上限を大きくし、「ＤＲＡＩＮ」により、ペースを疎に、上限を大きくし、「ＰＲＯＢＥ＿ＢＷ」により、ペースを普通（微変動）に、上限を普通にし、「ＰＲＯＢＥ＿ＲＴＴ」により、ペースを普通に、上限を極小にする。
【００２７】
送信装置は、一定時間内の「到達確認データ量÷経過時間」の最大値を「可用帯域」として推定し、一定時間内のＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）の最小値を「通信遅延」として推定する。「可用帯域」は、ＢｔｌＢｗ  （Ｂｏｔｔｌｅｎｅｃｋ  Ｂａｎｄｗｉｄｔｈ）と呼ばれ、「通信遅延」は、ＲＴｐｒｏｐ  （Ｒｏｕｎｄ−Ｔｒｉｐ  ｐｒｏｐａｇａｔｉｏｎ  ｔｉｍｅ）：と呼ばれる。
【００２８】
さらに、送信装置は、「可用帯域」と「通信遅延」とを乗算することにより「送信データ量」を算出する。この「送信データ量」は、ＢＤＰ（Ｂａｎｄｗｉｄｔｈ−Ｄｅｌａｙ  Ｐｒｏｄｕｃｔ）と呼ばれる。
【００２９】
（３）モバイル網におけるスループット
近年、スマートフォンやタブレット等の高機能なモバイル端末の普及に伴い、モバイルネットワーク経由のトラヒックが増加している。多くの通信で使用されている送信速度制御（例えば、ＣＵＢＩＣ及びＮｅｗＲｅｎｏ等）では、モバイルネットワークにおける急激な帯域変動に追従することが困難である。
【００３０】
図３は、無線帯域の変動と送信速度制御（ＣＵＢＩＣ）によるスループットの変化の例を示すグラフである。図３を参照すると、無線帯域の変動に応じて、ＣＵＢＩＣによる送信速度制御（ＣＵＢＩＣ）によりスループットが変化しているが、当該無線帯域の変動が激しいため、スループットは十分に追従できていない。
【００３１】
（４）ＱＵＩＣ
ＱＵＩＣ（Ｑｕｉｃｋ  ＵＤＰ  Ｉｎｔｅｒｎｅｔ  Ｃｏｎｎｅｃｔｉｏｎｓ）は、トランスポートプロトコルであり、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）の上位レイヤプロトコルとして用いられる。ＱＵＩＣは、中間装置でのパケットの生成や改変といった操作が非常に困難なパケットの構成となっている。
【００３２】
図４は、ＱＵＩＣパケットの例を説明するための説明図である。図４を参照すると、ＵＤＰパケットのＳＤＵ（Ｓｅｒｖｉｃｅ  Ｄａｔａ  Ｕｎｉｔ）として、ＱＵＩＣパケットが示されている。ＱＵＩＣパケットは、ＱＵＩＣパケットヘッダとペイロードとを含み、当該ペイロードは、１つ以上のＱＵＩＣフレームを含む。各ＱＵＩＣフレームは、ＱＵＩＣフレームヘッダとＱＵＩＣデータとを含む。ＱＵＩＣパケット内のペイロードは、暗号化される。また、ＱＵＩＣパケットヘッダは、暗号化されないが認証され、改変不可である。
【００３３】
＜＜２．実施形態に係るシステムの構成＞＞
図５を参照して、本発明の実施形態に係るシステムの構成の例を説明する。
【００３４】
図５は、本発明の実施形態に係るシステム１の概略的な構成の一例を示す説明図である。図５を参照すると、システム１は、送信装置１０、受信装置２０及び通信制御装置１００を含む。通信制御装置１００は、中継装置と呼ばれてもよい。
【００３５】
送信装置１０は、パケットを受信装置２０へ送信する。通信制御装置１００は、送信装置１０と受信装置２０との間に位置し、上記パケットを転送（又は中継）する。具体的には、通信制御装置１００は、送信側ネットワーク３０を介して送信装置１０から上記パケットを受信し、受信側ネットワーク４０を介して受信装置２０へ上記パケットを送信する。例えば、上記パケットは、データパケットである。
【００３６】
一例として、ユーザがコンテンツをダウンロードする場合に、送信装置１０は、サーバであってもよく、受信装置２０は、パーソナルコンピュータ（ＰＣ）又はスマートフォンであってもよい。この場合に、受信側ネットワーク４０は、モバイルネットワークであってもよく、インターネットであってもよく、又は、インターネット及びモバイルネットワークを含んでもよい。あるいは、ユーザがコンテンツをアップロードする場合には、送信装置１０は、パーソナルコンピュータ（ＰＣ）又はスマートフォンであってもよく、受信装置２０は、サーバであってもよい。当然ながら、送信装置１０及び受信装置２０はこれらの例に限定されない。
【００３７】
送信装置１０は、送信制御方式を使用して送信速度を制御する。一例として、上記送信制御方式は、パケットのロスの有無に基づいて送信速度を制御する第１の送信制御方式（例えばＣＵＢＩＣ等のロスベースの送信制御方式）である。あるいは、上記送信制御方式は、パケットの送受信から推定されるネットワーク性能に基づいて送信速度を制御する第２の送信制御方式（例えばＢＢＲ等のファンクションベースの送信制御方式）である。当然ながら、上記送信制御方式は、これらの例には限定されない。なお、上記送信制御方式は、輻輳制御方式とも呼ばれ得る。
【００３８】
＜＜３．第１の実施形態＞＞
図６〜図１２を参照して、本発明の第１の実施形態を説明する。
【００３９】
＜３．１．通信制御装置の機能構成＞
図６は、第１の実施形態に係る通信制御装置１００の概略的な機能構成の例を示すブロック図である。図６を参照すると、通信制御装置１００は、第１通信処理部１１０、第２通信処理部１２０、現在送信速度推定部１３０、目標送信速度推定部１４０、送信制御推定部１５０及び制御部１６０を備える。
【００４０】
第１通信処理部１１０は、パケットを送受信する。例えば、第１通信処理部１１０は、送信装置１０からパケット（例えばデータパケット）を受信し、送信装置１０へパケット（例えばＡＣＫパケット）を送信する。
【００４１】
第２通信処理部１２０は、パケットを送受信する。例えば、第２通信処理部１２０は、受信装置２０へパケット（例えばデータパケット）を送信し、受信装置２０からパケット（例えばＡＣＫパケット）を受信する。
【００４２】
第１通信処理部１１０及び第２通信処理部１２０は、例えば、１つ以上のプロトコルレイヤの処理を行う。具体的には、例えば、当該１つ以上のプロトコルレイヤは、レイヤ３（ネットワークレイヤ）以上のプロトコルレイヤを含む。上記１つ以上のプロトコルレイヤは、レイヤ２以下のプロトコルレイヤをさらに含んでもよい。あるいは、上記１つ以上のプロトコルレイヤは、レイヤ２以下のプロトコルレイヤのみを含んでもよい。また、第１通信処理部１１０及び第２通信処理部１２０は、１つの通信処理部として統合されていてもよい。
【００４３】
現在送信速度推定部１３０は、通信制御装置１００が転送しているパケットに係るセッション又はストリームの各々について、送信装置１０と受信装置２０との間の現在の送信速度を推定する。
【００４４】
目標送信速度推定部１４０は、通信制御装置１００が転送しているパケットに係るセッション又はストリームの各々について、送信装置１０と受信装置２０との間の目標送信速度を推定する。
【００４５】
送信制御推定部１５０は、通信制御装置１００が転送しているパケットに係るセッション又はストリームの各々について、送信装置１０により使用されている送信制御方式を推定する。
【００４６】
制御部１６０は、送信装置から受信装置へ送信されるパケットについての制御を行う。例えば、当該制御は、上記パケットのためのＡＣＫパケット（第２通信処理部１２０により受信装置２０から受信され、第１通信処理部１１０により送信装置１０へ送信されるＡＣＫパケット）又は上記パケット（第１通信処理部１１０により送信装置１０から受信され、第２通信処理部１２０により受信装置２０へ送信されるデータパケット）の制御である。制御部１６０は、第１通信処理部１１０又は第２通信処理部１２０の動作を制御することにより、上記ＡＣＫパケット又は上記パケットの間接的な制御を行ってもよい。あるいは、制御部１６０は、第１通信処理部１１０と第２通信処理部１２０との間で上記ＡＣＫパケット又は上記パケットを直接的に処理することにより、上記ＡＣＫパケット又は上記パケットの直接的な制御を行ってもよい。
【００４７】
第１通信処理部１１０、第２通信処理部１２０、現在送信速度推定部１３０、目標送信速度推定部１４０、送信制御推定部１５０及び制御部１６０についてのより具体的な動作は、第１の実施形態の技術的特徴として後に説明する。
【００４８】
＜３．２．通信制御装置のハードウェア構成＞
図７は、第１の実施形態に係る通信制御装置１００の概略的なハードウェア構成の例を示すブロック図である。図７を参照すると、通信制御装置１００は、プロセッサ２１０、メインメモリ２２０、ストレージ２３０、通信インタフェース２４０及び入出力インタフェース２５０を備える。プロセッサ２１０、メインメモリ２２０、ストレージ２３０、通信インタフェース２４０及び入出力インタフェース２５０は、バス２６０を介して互いに接続されている。
【００４９】
プロセッサ２１０は、メインメモリ２２０から読み出されるプログラムを実行する。一例として、プロセッサ２１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００５０】
メインメモリ２２０は、プログラム及び各種データを記憶する。一例として、メインメモリ２２０は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００５１】
ストレージ２３０は、プログラム及び各種データを記憶する。一例として、ストレージ２３０は、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）及び／又はＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）を含む。
【００５２】
通信インタフェース２４０は、他の装置との通信のためのインタフェースである。一例として、通信インタフェース２４０は、ネットワークアダプタ又はネットワークインタフェースカードである。
【００５３】
入出力インタフェース２５０は、キーボード等の入力装置、及びディスプレイ等の出力装置との接続のためのインタフェースである。
【００５４】
第１通信処理部１１０及び第２通信処理部１２０は、プロセッサ２１０及びメインメモリ２２０により実装されてもよく、あるいは、プロセッサ２１０、メインメモリ２２０及び通信インタフェース２４０により実装されてもよい。現在送信速度推定部１３０、目標送信速度推定部１４０、送信制御推定部１５０及び／又は制御部１６０は、プロセッサ２１０及びメインメモリ２２０により実装されてもよい。
【００５５】
当然ながら、通信制御装置１００のハードウェア構成はこの例に限定されない。通信制御装置１００は、他のハードウェア構成により実装されてもよい。
【００５６】
あるいは、通信制御装置１００は、仮想化されていてもよい。即ち、通信制御装置１００は、仮想マシンとして実装されてもよい。この場合に、通信制御装置１００（仮想マシン）は、プロセッサ及びメモリ等を含む物理マシン（ハードウェア）及びハイパーバイザ上で仮想マシンとして動作してもよい。
【００５７】
通信制御装置１００は、プログラム（命令）を記憶するメモリ（メインメモリ２２０）と、当該プログラム（命令）を実行可能な１つ以上のプロセッサ（プロセッサ２１０）とを含んでもよい。当該１つ以上のプロセッサは、上記プログラムを実行して、第１通信処理部１１０、第２通信処理部１２０、現在送信速度推定部１３０、目標送信速度推定部１４０、送信制御推定部１５０及び／又は制御部１６０の動作を行ってもよい。上記プログラムは、第１通信処理部１１０、第２通信処理部１２０、現在送信速度推定部１３０、目標送信速度推定部１４０、送信制御推定部１５０及び／又は制御部１６０の動作をプロセッサに実行させるためのプログラムであってもよい。
【００５８】
＜３．３．技術的特徴＞
図８〜図１２を参照して、第１の実施形態の技術的特徴を説明する。
【００５９】
（１）パケットの中継
通信制御装置１００（第１通信処理部１１０）は、送信装置１０から受信装置２０へ送信されるパケットを送信装置１０から受信する。そして、通信制御装置１００（第２通信処理部１２０）は、上記パケットを受信装置２０へ送信する。
【００６０】
例えば、上記パケットは、データパケットである。例えば、上記パケットは、パケットデータユニット（ＰＤＵ）である。上記パケットは、パケットと呼ばれる代わりに、フレーム、データグラム又はセグメント等の他の類似の呼称で呼ばれてもよい。
【００６１】
さらに、通信制御装置１００（第２通信処理部１２０）は、上記パケットのための確認応答（ＡＣＫ）パケットを受信装置２０から受信する。そして、通信制御装置１００（第１通信処理部１１０）は、上記確認応答（ＡＣＫ）パケットを送信装置１０へ送信する。
【００６２】
図８は、第１の実施形態に係る送信装置１０から受信装置２０へのパケットの送信の例を説明するためのシーケンス図である。送信装置１０は、パケット（データパケット）５１を受信装置２０へ送信する（Ｓ３０１、Ｓ３０３）。この際に、通信制御装置１００は、パケット５１を送信装置１０から受信し（Ｓ３０１）、パケット５１を受信装置２０へ送信する（Ｓ３０３）。即ち、通信制御装置１００は、送信装置１０から受信装置２０へパケット５１を転送（又は中継）する。さらに、受信装置２０は、パケット５１を受信し（Ｓ３０３）、パケット５１についてのＡＣＫパケット５３を送信装置１０へ送信する（Ｓ３０５、Ｓ３０７）。この際に、通信制御装置１００は、ＡＣＫパケット５３を受信装置２０から受信し（Ｓ３０５）、ＡＣＫパケット５３を送信装置１０へ送信する（Ｓ３０７）。即ち、通信制御装置１００は、受信装置２０から送信装置１０へパケット５３を転送（又は中継）する。
【００６３】
（２）パケット及び確認応答（ＡＣＫ）パケット
送信装置１０から受信装置２０へ送信される上記パケットは、送信装置１０と受信装置２０との間の中継点（例えば通信制御装置１００等）において生成及び改変できないパケットである。
【００６４】
さらに、上記パケットのための確認応答（ＡＣＫ）パケットは、受信装置２０と送信装置１０との間の中継点において生成及び改変できないＡＣＫパケットである。
【００６５】
より具体的には、例えば、上記パケット及び上記ＡＣＫパケットは、少なくとも一部が暗号化され又は認証される。とりわけ、上記ＡＣＫパケットの暗号化され又は認証される一部は、送信装置１０への確認応答のための情報（例えば確認応答番号等）を含む。
【００６６】
第１の例として、送信装置１０は、少なくとも一部が認証されたパケットを送信し、受信装置２０は、少なくとも一部が認証されたＡＣＫパケットを送信する。この場合には、当該パケット及び当該ＡＣＫパケットは認証されているので、通信制御装置１００は、上記パケット及び上記ＡＣＫパケットを生成及び改変することができない。
【００６７】
第２の例として、送信装置１０は、少なくとも一部が暗号化されたパケットを送信し、受信装置２０は、少なくとも一部が暗号化されたＡＣＫパケットを送信する。この場合には、当該パケット及び当該ＡＣＫパケットは暗号化されているので、通信制御装置１００は、上記パケット及び上記ＡＣＫパケットを生成及び改変することができない。
【００６８】
一例として、上記パケットは、（例えば図４に示されるような）ＱＵＩＣパケットであり、上記パケットについてのＡＣＫパケットも、ＱＵＩＣパケットである。この場合に、例えば、送信装置１０への確認応答のための情報（例えば確認応答番号）は、ＡＣＫパケット（ＱＵＩＣパケット）の認証されたヘッダ、又は、ＡＣＫパケット（ＱＵＩＣパケット）の暗号化されたペイロードに含まれる。別の例として、上記パケットは、（例えば図４に示されるような）ＱＵＩＣフレームであってもよく、上記パケットについてのＡＣＫパケットも、ＱＵＩＣフレームであってもよい。この場合に、送信装置１０への確認応答のための情報（例えば確認応答番号）は、暗号化されたＡＣＫパケット（ＱＵＩＣフレーム）に含まれてもよい。
【００６９】
（３）パケットについての制御
通信制御装置１００（制御部１６０）は、送信装置１０から受信装置２０へ送信される上記パケットについての制御であって、送信装置１０に送信速度を変更させる当該制御を行う。
【００７０】
例えば、上記制御は、上記パケットのためのＡＣＫパケット又は上記パケットの制御である。
【００７１】
（３−１）現在の送信速度及び目標送信速度に基づく制御
・現在の送信速度の推定
例えば、通信制御装置１００（現在送信速度推定部１３０）は、送信装置１０の現在の送信速度を推定する。
【００７２】
例えば、通信制御装置１００（現在送信速度推定部１３０）は、送信装置１０から受信されるパケットのヘッダに含まれるタイムスタンプ情報等に基づいてＲＴＴを推定し、当該ＲＴＴの間に受信されるパケットのデータ量（又はその統計値）を送信装置１０の現在の送信速度（ｃｗｎｄ）として推定する。
【００７３】
例えばこのように、上記現在の送信速度は、ＲＴＴの間に送信されるデータ量であってもよい。あるいは、上記現在の送信速度は、単位時間あたりに送信されるデータ量（スループット）であってもよい。
【００７４】
・目標送信速度の推定
例えば、通信制御装置１００（目標送信速度推定部１４０）は、送信装置１０の目標送信速度を推定する。
【００７５】
例えば、通信制御装置１００（目標送信速度推定部１４０）は、送信側ネットワーク３０側の可用帯域（以下、「第１の可用帯域」と呼ぶ）と、受信側ネットワーク４０側の可用帯域（以下、「第２の可用帯域」と呼ぶ）とを推定する。そして、通信制御装置１００（目標送信速度推定部１４０）は、第１の可用帯域にＲＴＴを乗算することにより得られる第１の値と、第２の可用帯域にＲＴＴを乗算することにより得られる第２の値とのうちの一方（例えば小さい方の値）を、目標送信速度として推定する。
【００７６】
・第１の可用帯域（送信側ネットワーク側の可用帯域）の推定
例えば、通信制御装置１００（目標送信速度推定部１４０）は、送信装置１０から受信されるデータパケットについての以下の例のいずれかを、上記第１の可用帯域として推定してもよい。
［例１］「データパケットのサイズ÷データパケットの受信間隔」（又はその統計値）
［例２］「パケット群のサイズ÷パケット群の受信にかかった時間」（又はその統計値）（パケット群は、受信間隔が閾値以下又は一定時間内に受信したデータパケットの集合）
【００７７】
・第２の可用帯域（受信側ネットワーク側の可用帯域）の推定
一例として、通信制御装置１００（目標送信速度推定部１４０）は、以下の例のいずれかを上記第２の可用帯域として推定してもよい。
［例１］「ＡＣＫパケットによって到達確認されたデータ量÷ＡＣＫパケットの受信間隔」（又はその統計値）
［例２］「ＡＣＫパケット群によって到達確認されたデータ量÷その受信にかかった時間」（又はその統計値）（ＡＣＫパケット群は、受信間隔が閾値以下又は一定時間内に受信したＡＣＫパケットの集合）
［例３］通信制御装置１００において蓄積しているデータパケットの減少速度
【００７８】
通信制御装置１００（目標送信速度推定部１４０）は、送信装置１０から受信したデータパケットを蓄積した後に、当該データパケットを受信側ネットワーク４０にまとめて送信することで、一時的に上記第２の可用帯域を超える又は近い送信速度でデータパケットを送信することにより、上記第２の可用帯域を推定してもよい。
【００７９】
通信制御装置１００（目標送信速度推定部１４０）は、上記第２の可用帯域を推定するにあたり、宛先ＩＰアドレス等の情報から、同一又は同様のネットワーク性能にあると推測した過去の受信装置に向けた通信の実績を利用してもよい。
【００８０】
・推定結果に基づく制御
例えば、通信制御装置１００（制御部１６０）は、上記現在の送信速度及び上記目標送信速度に基づいて、上記パケットについての上記制御（送信装置１０に送信速度を変更させる制御）を行う。
【００８１】
例えば、通信制御装置１００（制御部１６０）は、送信装置１０の送信速度が上記目標送信速度に近づくように、上記制御を行う。
【００８２】
一例として、上記目標送信速度と上記現在の送信速度との差（目標送信速度−現在の送信速度）が所定の閾値（いずれかの正の数又は０）よりも大きい場合に、通信制御装置１００（制御部１６０）は、上記制御（送信装置１０に送信速度を上げさせる制御）を行う。上記現在の送信速度と上記目標送信速度との差（現在の送信速度−目標送信速度）が所定の閾値（いずれかの正の数又は０）よりも大きい場合に、通信制御装置１００（制御部１６０）は、上記制御（送信装置１０に送信速度を下げさせる制御）を行ってもよい。
【００８３】
別の例として、通信制御装置１００（制御部１６０）は、上記目標送信速度と上記現在の送信速度との差（目標送信速度−現在の送信速度）に応じて制御パラメータを設定し、当該制御パラメータを用いて上記制御を行ってもよい。
【００８４】
（３−２）制御の第１の例：転送タイミングの調整
例えば、上記制御は、上記ＡＣＫパケット又は上記パケットの送信タイミングの調整を含む。即ち、通信制御装置１００（制御部１６０）は、上記ＡＣＫパケット又は上記パケットの送信タイミングの調整を行う。
【００８５】
・第１の例
第１の例として、上記送信タイミングの上記調整は、上記ＡＣＫパケット間の送信間隔を短くすることを含む。即ち、通信制御装置１００（制御部１６０）は、上記ＡＣＫパケット間の送信間隔を短くする。
【００８６】
図９Ａは、第１の実施形態に係る送信タイミングの調整の第１の例を説明するためのシーケンス図である。通信制御装置１００（第２通信処理部１２０）は、ＡＣＫパケット５５、５７、５９を受信装置２０から受信する（Ｓ３２１、Ｓ３２３、Ｓ３２５）。通信制御装置１００は、ＡＣＫパケット５５、５７、５９の各々を即座に送信装置１０へ送信せずに蓄積し、ＡＣＫパケット５５、５７、５９を所定間隔９１（短い間隔）で送信する。その結果、送信装置１０は、短時間でＡＣＫパケット５５、５７、５９を受信することになり、送信装置１０において、短時間で多くの到達確認済みのデータ量がカウントされる。所定間隔９１は、予め定められている制御パラメータであってもよく、通信制御装置１００（制御部１６０）により設定される制御パラメータであってもよい。
【００８７】
これにより、例えば、データパケットがまとめて送信できたように送信装置１０に見せることができる。その結果、例えば、送信装置１０がファンクションベースの送信制御方式（例えばＢＢＲ等）を使用している場合に、可用帯域の最大値が大きくなり、送信データ量が大きくなり得る。即ち、送信装置１０の送信速度が大きくなり得るし、送信装置１０と受信装置２０との間の通信のスループットが向上し得る。
【００８８】
なお、上記送信タイミングの上記調整は、（上記ＡＣＫパケット間の送信間隔ではなく）上記パケット（データパケット）間の送信間隔を短くすることを含んでもよい。即ち、通信制御装置１００（制御部１６０）は、上記パケット（データパケット）間の送信間隔を短くしてもよい。この場合にも、結果として、ＡＣＫパケット間の送信間隔も短くなるので、同様の効果が得られる。
【００８９】
・第２の例
第２の例として、上記送信タイミングの上記調整は、上記ＡＣＫパケット間の送信間隔を長くすることを含む。即ち、第２の例では、第１の例とは反対に、通信制御装置１００（制御部１６０）は、上記ＡＣＫパケット間の送信間隔を長くする。
【００９０】
図９Ｂは、第１の実施形態に係る送信タイミングの調整の第２の例を説明するためのシーケンス図である。通信制御装置１００（第２通信処理部１２０）は、ＡＣＫパケット５５、５７、５９を受信装置２０から受信する（Ｓ３２１、Ｓ３２３、Ｓ３２５）。通信制御装置１００は、ＡＣＫパケット５５、５７、５９を所定間隔９２（長い間隔）で送信する。その結果、送信装置１０は、長時間でＡＣＫパケット５５、５７、５９を受信することになり、送信装置１０において、一定期間あたりにカウントされる到達確認済みのデータ量が少なくなる。所定間隔９２は、予め定められている制御パラメータであってもよく、通信制御装置１００（制御部１６０）により設定される制御パラメータであってもよい。
【００９１】
これにより、例えば、データパケットが少しずつ送信されたように送信装置１０に見せることができる。その結果、例えば、送信装置１０がファンクションベースの送信制御方式（例えばＢＢＲ等）を使用している場合に、可用帯域の最大値が小さくなり、送信データ量が小さくなり得る。即ち、送信装置１０の送信速度が小さくなり得るし、送信装置１０と受信装置２０との間の通信のスループットが低下し得る。
【００９２】
なお、上記送信タイミングの上記調整は、（上記ＡＣＫパケット間の送信間隔ではなく）上記パケット（データパケット）間の送信間隔を長くすることを含んでもよい。即ち、通信制御装置１００（制御部１６０）は、上記パケット（データパケット）間の送信間隔を長くしてもよい。この場合にも、結果として、ＡＣＫパケット間の送信間隔も長くなるので、同様の効果が得られる。
【００９３】
・第３の例
別の例として、上記送信タイミングの上記調整は、上記ＡＣＫパケットの送信を遅らせることを含んでもよい。通信制御装置１００（制御部１６０）は、上記ＡＣＫパケットの送信を遅らせてもよい。
【００９４】
図１０は、第１の実施形態に係る送信タイミングの調整の第３の例を説明するためのシーケンス図である。通信制御装置１００（第２通信処理部１２０）は、ＡＣＫパケット６１を受信装置２０から受信するが（Ｓ３４１）、ＡＣＫパケット６１を即座に送信装置１０へ送信せず、所定時間９３後にＡＣＫパケット６１を送信装置１０へ送信する（Ｓ３４３）。同様に、通信制御装置１００（第２通信処理部１２０）は、ＡＣＫパケット６３を受信装置２０から受信するが（Ｓ３４５）、ＡＣＫパケット６３を即座に送信装置１０へ送信せず、所定時間９３後にＡＣＫパケット６３を送信装置１０へ送信する（Ｓ３４７）。所定時間９３は、予め定められている制御パラメータであってもよく、通信制御装置１００（制御部１６０）により設定される制御パラメータであってもよい。
【００９５】
これにより、例えば、ＲＴＴ（送信装置１０がパケットを送信してからＡＣＫを受信するまでの時間）を大きくすることができる。例えば、送信装置１０がロスベースの（例えばＣＵＢＩＣ等）を使用している場合に、結果として、再送の許容待機時間が長くなる（例えば、ＲＴＯ（Ｒｅｔｒａｎｓｍｉｓｓｉｏｎ  Ｔｉｍｅ  Ｏｕｔ）の値が大きくなる）。そのため、突発的な遅延の発生時に、再送及びそれに伴う送信速度の低下が回避され得る。あるいは、送信装置１０がファンクションベースの送信制御方式（例えばＢＢＲ等）を使用している場合に、結果として、推定される通信遅延が大きくなる。そのため、送信データ量が大きくなり得る。即ち、送信装置１０の送信速度が大きくなり得るし、送信装置１０と受信装置２０との間の通信のスループットが向上し得る。
【００９６】
なお、上記送信タイミングの上記調整は、（上記ＡＣＫパケットではなく）上記パケット（データパケット）の送信を遅らせることを含んでもよい。この場合にも、結果として、ＲＴＴが大きくなるので、同様の効果が得られる。
【００９７】
（３−３）制御の第２の例：転送順序の調整
例えば、上記制御は、上記パケットの送信順序の調整を含む。即ち、通信制御装置１００（制御部１６０）は、上記パケットの送信順序の調整を行う。
【００９８】
具体的には、例えば、上記送信順序の上記調整は、上記パケットが受信順にではなくシーケンス順に送信されるように上記パケットの送信順序を調整することである。即ち、通信制御装置１００（制御部１６０）は、上記パケットが受信順にではなくシーケンス順に送信されるように上記パケットの送信順序を調整する。例えば、通信制御装置１００（制御部１６０）は、通信制御装置１００にバッファされているパケットがシーケンス順に送信されるように当該パケットの送信順序を調整する。
【００９９】
図１１は、第１の実施形態に係るパケットの送信順序の調整の例を説明するためのシーケンス図である。送信装置１０は、パケット６５、６７、６９、７１、７３を送信し（Ｓ３６１〜Ｓ３７１）、通信制御装置１００は、パケット６５、６７、６９、７１、７３を受信してバッファする。パケット６５、６７、６９、７１は、新規パケットであるが、パケット７３は、再送パケットである。そのため、パケット７３（再送パケット）は、パケット６５、６７、６９、７１、７３の中では、受信順では最後のパケットであるが、シーケンス順では最初のパケットである。よって、通信制御装置１００は、まず、パケット７３（再送パケット）を受信装置２０へ送信し（Ｓ３７１）、その後、シーケンス順にパケット６５、６７、６９、７１を受信装置２０へ送信する（Ｓ３７３〜Ｓ３７９）。
【０１００】
これにより、例えば、再送パケットを優先的に転送することができる。その結果、パケットロスの発生後に、再送パケットがより早く到達確認済みパケットとなり、送信ウィンドウ内に残っているパケットの量がより早く低下し、より多くの新規パケットが送信され得る。即ち、送信装置１０の送信速度が大きくなり得るし、送信装置１０と受信装置２０との間の通信のスループットが向上し得る。
【０１０１】
また、送信装置１０から送信されたパケットが、シーケンス順に通信制御装置１００に到着しなかった場合に、当該パケットが順に送信され得る。そのため、パケットがシーケンス順に受信装置２０に到着する可能性が高くなり、同一パケットに対する重複した確認応答（ＤｕｐＡＣＫ）が発生する可能性が低くなる。例えば、送信装置１０がロスベースの送信制御方式（例えばＣＵＢＩＣ等）を使用している場合に、同一パケットに対する重複した確認応答（ＤｕｐＡＣＫ）が複数個（例えば３つ以上）連続して発生する可能性が低くなり、送信速度の低下（例えばｃｗｎｄの低下）が抑えられ得る。即ち、送信装置１０と受信装置２０との間の通信のスループットが向上し得る。
【０１０２】
（３−４）制御の第３の例：ＡＣＫパケットの一部破棄
例えば、上記制御は、上記ＡＣＫパケットの一部の破棄を含む。即ち、通信制御装置１００（制御部１６０）は、上記ＡＣＫパケットの一部の破棄を行う。
【０１０３】
例えば、上記破棄は、所定の確率で、所定の割合で、又は所定の時間間隔で確認応答パケットを破棄することである。即ち、通信制御装置１００（制御部１６０）は、所定の確率で、所定の割合で、又は所定の時間間隔で、ＡＣＫパケットを破棄する。当該所定の確率、当該所定の割合、及び当該所定の時間間隔は、予め定められている制御パラメータであってもよく、通信制御装置１００（制御部１６０）により設定される制御パラメータであってもよい。
【０１０４】
図１２は、第１の実施形態に係るＡＣＫパケットの一部の破棄の例を説明するためのシーケンス図である。受信装置２０は、ＡＣＫパケット７５を送信装置１０へ送信する（Ｓ３８１、Ｓ３８３）。通信制御装置１００は、ＡＣＫパケット７５を受信装置２０から受信し（Ｓ３８１）、ＡＣＫパケット７５を送信装置１０へ送信する（Ｓ３８３）。受信装置２０は、ＡＣＫパケット７７を送信装置１０へ送信する（Ｓ３８５）。しかし、通信制御装置１００は、ＡＣＫパケット７７を受信装置２０から受信し（Ｓ３８５）、ＡＣＫパケット７７を破棄する（Ｓ３８７）。受信装置２０は、ＡＣＫパケット７９を送信装置１０へ送信する（Ｓ３８９、Ｓ３９１）。通信制御装置１００は、ＡＣＫパケット７９を受信装置２０から受信し（Ｓ３８９）、ＡＣＫパケット７９を送信装置１０へ送信する（Ｓ３９１）。その結果、送信装置１０において、ＡＣＫパケット７９の受信により、多くの到達確認済みのデータ量が一気にカウントされる。
【０１０５】
これにより、例えば、データパケットがまとめて送信できたように送信装置１０に見せることができる。その結果、例えば、送信装置１０がファンクションベースの送信制御方式（例えばＢＢＲ等）を使用している場合に、可用帯域の最大値が大きくなり、送信データ量が大きくなり得る。即ち、送信装置１０の送信速度が大きくなり得るし、送信装置１０と受信装置２０との間の通信のスループットが向上し得る。
【０１０６】
また、同一パケットに対する重複した確認応答（ＤｕｐＡＣＫ）が発生したとしても、同一パケットに対する重複した確認応答（ＤｕｐＡＣＫ）が複数個（例えば３つ以上）連続して送信装置１０により受信される可能性が低くなる。そのため、例えば、送信装置１０がロスベースの送信制御方式（例えばＣＵＢＩＣ等）を使用している場合に、送信速度の低下（例えばｃｗｎｄの低下）が抑えられ得る。即ち、送信装置１０と受信装置２０との間の通信のスループットが向上し得る。
【０１０７】
（３−５）制御の第１、第２及び第３の例
上記制御として、上記ＡＣＫパケット又は上記パケットの送信タイミングの調整、上記パケットの送信順序の調整、及び、上記ＡＣＫパケットの一部の破棄を説明した。上記制御は、上記送信タイミングの調整、上記送信順序の調整、及び上記ＡＣＫパケットの一部の破棄の全てを含んでもよく、又は、一部のみを含んでもよい。例えば、上記制御は、上記送信タイミングの調整、上記送信順序の調整、及び上記ＡＣＫパケットの一部の破棄のうちの１つであってもよい。
【０１０８】
（３−６）その他
通信制御装置１００（送信制御推定部１５０、制御部１６０）は、送信装置１０により使用されている送信制御方式を推定し、推定された当該送信制御方式に基づいて上記制御を行ってもよい。
【０１０９】
例えば、通信制御装置１００（制御部１６０）は、推定された上記送信制御方式に適合する制御（例えば、送信タイミングの調整、送信順序の調整、又は、ＡＣＫパケットの一部の破棄）を選択し、実行してもよい。あるいは、通信制御装置１００（制御部１６０）は、推定された上記送信制御方式に適合する制御パラメータを選択し、当該制御パラメータを用いて制御を行ってもよい。
【０１１０】
これにより、例えば、より適切に送信装置１０の送信速度が変更され得る。
【０１１１】
以上、第１の実施形態を説明した。第１の実施形態によれば、上述したように、使用されるプロトコルによらず送信装置１０と受信装置２０との間の通信のスループットを向上させることが可能になる。
【０１１２】
＜＜４．第２の実施形態＞＞
図１３を参照して、本発明の第２の実施形態を説明する。上述した第１の実施形態は、具体的な実施形態であるが、第２の実施形態は、より一般化された実施形態である。
【０１１３】
＜４．１．通信制御装置の機能構成＞
図１３は、第２の実施形態に係る通信制御装置３００の概略的な機能構成の例を示すブロック図である。図１３を参照すると、通信制御装置３００は、第１通信処理部３１０、第２通信処理部３２０及び制御部３３０を備える。
【０１１４】
第１通信処理部３１０は、パケットを送受信する。例えば、第１通信処理部３１０は、送信装置１０からパケット（例えばデータパケット）を受信し、送信装置１０へパケット（例えばＡＣＫパケット）を送信する。
【０１１５】
第２通信処理部３２０は、パケットを送受信する。例えば、第２通信処理部３２０は、受信装置２０へパケット（例えばデータパケット）を送信し、受信装置２０からパケット（例えばＡＣＫパケット）を受信する。
【０１１６】
制御部３３０は、送信装置から受信装置へ送信されるパケットについての制御を行う。例えば、当該制御は、上記パケットのためのＡＣＫパケット（第２通信処理部３２０により受信装置２０から受信され、第１通信処理部３１０により送信装置１０へ送信されるＡＣＫパケット）又は上記パケット（第１通信処理部３１０により送信装置１０から受信され、第２通信処理部３２０により受信装置２０へ送信されるデータパケット）の制御である。制御部３３０は、第１通信処理部３１０又は第２通信処理部３２０の動作を制御することにより、上記ＡＣＫパケット又は上記パケットの間接的な制御を行ってもよい。あるいは、制御部３３０は、第１通信処理部３１０と第２通信処理部３２０との間で上記ＡＣＫパケット又は上記パケットを直接的に処理することにより、上記ＡＣＫパケット又は上記パケットの直接的な制御を行ってもよい。
【０１１７】
第１通信処理部３１０、第２通信処理部３２０及び制御部３３０についてのより具体的な動作は、第２の実施形態の技術的特徴として後に説明する。
【０１１８】
＜４．２．通信制御装置のハードウェア構成＞
第２の実施形態に係る通信制御装置３００のハードウェア構成は、例えば、第１の実施形態に係る通信制御装置１００のハードウェア構成と同じである。よって、ここでは重複する説明を省略する。
【０１１９】
＜４．３．技術的特徴＞
第２の実施形態の技術的特徴を説明する。
【０１２０】
（１）パケットの中継
通信制御装置３００（第１通信処理部３１０）は、送信装置１０から受信装置２０へ送信されるパケットを送信装置１０から受信する。そして、通信制御装置３００（第２通信処理部３２０）は、上記パケットを受信装置２０へ送信する。
【０１２１】
第２の実施形態に係るこの点の説明は、例えば、（符号の相違を除き）第１の実施形態に係るこの点の説明と同じである。よって、ここでは重複する説明を省略する。しかし、当然ながら、第２の実施形態はこの例に限定されない。
【０１２２】
（２）パケット及び確認応答（ＡＣＫ）パケット
送信装置１０から受信装置２０へ送信される上記パケットは、送信装置１０と受信装置２０との間の中継点（例えば通信制御装置３００等）において生成及び改変できないパケットである。
【０１２３】
さらに、上記パケットのための確認応答（ＡＣＫ）パケットは、受信装置２０と送信装置１０との間の中継点において生成及び改変できないＡＣＫパケットである。
【０１２４】
第２の実施形態に係るこの点の説明は、例えば、（符号の相違を除き）第１の実施形態に係るこの点の説明と同じである。よって、ここでは重複する説明を省略する。しかし、当然ながら、第２の実施形態はこの例に限定されない。
【０１２５】
（３）パケットについての制御
通信制御装置３００（制御部３３０）は、送信装置１０から受信装置２０へ送信される上記パケットについての制御であって、送信装置１０に送信速度を変更させる当該制御を行う。
【０１２６】
第２の実施形態に係るこの点の説明は、例えば、（符号の相違を除き）第１の実施形態に係るこの点の説明と同じである。よって、ここでは重複する説明を省略する。しかし、当然ながら、第２の実施形態はこの例に限定されない。
【０１２７】
以上、第２の実施形態を説明した。第２の実施形態によれば、使用されるプロトコルによらず送信装置１０と受信装置２０との間の通信のスループットを向上させることが可能になる。
【０１２８】
以上、本発明の実施形態を説明したが、本発明はこれらの実施形態に限定されるものではない。これらの実施形態は例示にすぎないということ、及び、本発明のスコープ及び精神から逸脱することなく様々な変形が可能であるということは、当業者に理解されるであろう。
【０１２９】
例えば、本明細書に記載されている処理におけるステップは、必ずしもシーケンス図に記載された順序に沿って時系列に実行されなくてよい。例えば、処理におけるステップは、シーケンス図として記載した順序と異なる順序で実行されても、並列的に実行されてもよい。また、処理におけるステップの一部が削除されてもよく、さらなるステップが処理に追加されてもよい。
【０１３０】
また、本明細書において説明した通信制御装置の構成要素（例えば、第１通信処理部、第２通信処理部、現在送信速度推定部、目標送信速度推定部、送信制御推定部及び／又は制御部）を備える装置（例えば、モジュール）が提供されてもよい。また、上記構成要素の処理を含む方法が提供されてもよく、上記構成要素の処理をプロセッサに実行させるためのプログラムが提供されてもよい。また、当該プログラムを記録したコンピュータに読み取り可能な非一時的記録媒体（Non-transitory  computer  readable  medium）が提供されてもよい。当然ながら、このような装置、モジュール、方法、プログラム、及びコンピュータに読み取り可能な非一時的記録媒体も本発明に含まれる。
【０１３１】
上記実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【０１３２】
（付記１）
通信制御装置であって、
送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信する第１通信処理部と、
前記パケットを前記受信装置へ送信する第２通信処理部と、
を備え、
前記第２通信処理部は、前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信し、
前記第１通信処理部は、前記確認応答パケットを前記送信装置へ送信し、
前記通信制御装置は、
前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行う制御部、
をさらに備える、
通信制御装置。
【０１３３】
（付記２）
前記制御は、前記確認応答パケット又は前記パケットの送信タイミングの調整を含む、付記１に記載の通信制御装置。
【０１３４】
（付記３）
前記送信タイミングの前記調整は、前記確認応答パケット間の送信間隔又は前記パケット間の送信間隔を短く又は長くすることを含む、付記２に記載の通信制御装置。
【０１３５】
（付記４）
前記送信タイミングの前記調整は、前記確認応答パケット又は前記パケットの送信を遅らせることを含む、付記２又は３に記載の通信制御装置。
【０１３６】
（付記５）
前記制御は、前記確認応答パケットの一部の破棄を含む、付記１〜４のいずれか１項に記載の通信制御装置。
【０１３７】
（付記６）
前記破棄は、所定の確率で、所定の割合で、又は所定の時間間隔で確認応答パケットを破棄することである、付記５に記載の通信制御装置。
【０１３８】
（付記７）
前記制御は、前記パケットの送信順序の調整を含む、付記１〜６のいずれか１項に記載の通信制御装置。
【０１３９】
（付記８）
前記送信順序の前記調整は、前記パケットが受信順にではなくシーケンス順に送信されるように前記パケットの送信順序を調整することである、付記７に記載の通信制御装置。
【０１４０】
（付記９）
前記パケットは、少なくとも一部が暗号化され又は認証されるパケットであり、
前記確認応答パケットは、少なくとも一部が暗号化され又は認証される確認応答パケットである、
付記１〜８のいずれか１項に記載の通信制御装置。
【０１４１】
（付記１０）
前記確認応答パケットの前記一部は、前記送信装置への確認応答のための情報を含む、付記９に記載の通信制御装置。
【０１４２】
（付記１１）
前記送信装置と前記受信装置との間の目標送信速度を推定する目標送信速度推定部、
をさらに備え、
前記制御部は、前記目標送信速度に基づいて前記制御を行う、
付記１〜１０のいずれか１項に記載の通信制御装置。
【０１４３】
（付記１２）
前記送信装置と前記受信装置との間の現在の送信速度を推定する現在送信速度推定部、
をさらに備え、
前記制御部は、前記現在の送信速度及び前記目標送信速度に基づいて前記制御を行う、
付記１１に記載の通信制御装置。
【０１４４】
（付記１３）
前記送信装置により使用されている送信制御方式を推定する送信制御推定部、
をさらに備え、
前記制御部は、推定された前記送信制御方式に基づいて前記制御を行う、
付記１〜１２のいずれか１項に記載の通信制御装置。
【０１４５】
（付記１４）
前記送信装置は、第１の送信制御方式又は第２の送信制御方式を使用する送信装置であり、
前記第１の送信制御方式は、パケットのロスの有無に基づいて送信速度を制御する送信制御方式であり、
前記第２の送信制御方式は、パケットの送受信から推定されるネットワーク性能に基づいて送信速度を制御する送信制御方式である、
付記１〜１３のいずれか１項に記載の通信制御装置。
【０１４６】
（付記１５）
前記パケットは、データパケットである、付記１〜１４のいずれか１項に記載の通信制御装置。
【０１４７】
（付記１６）
送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信することと、
前記パケットを前記受信装置へ送信することと、
前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信することと、
前記確認応答パケットを前記送信装置へ送信することと、
前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行うことと、
を含む方法。
【０１４８】
（付記１７）
送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信することと、
前記パケットを前記受信装置へ送信することと、
前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信することと、
前記確認応答パケットを前記送信装置へ送信することと、
前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行うことと、
をプロセッサに実行させるプログラム。
【０１４９】
（付記１８）
送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信することと、
前記パケットを前記受信装置へ送信することと、
前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信することと、
前記確認応答パケットを前記送信装置へ送信することと、
前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行うことと、
をプロセッサに実行させるプログラムを記録したコンピュータに読み取り可能な非一時的記録媒体。
【０１５０】
この出願は、２０１８年７月９日に出願された日本出願特願２０１８−１２９９２９を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１５１】
１              システム
１０            送信装置
２０            受信装置
１００、３００  通信制御装置
１１０、３１０  第１通信処理部
１２０、３２０  第２通信処理部
１３０          現在送信速度推定部
１４０          目標送信速度推定部
１５０          送信制御推定部
１６０、３３０  制御部
【図１】
2020012973.tif 000003
【図２】
2020012973.tif 000004
【図３】
2020012973.tif 000005
【図４】
2020012973.tif 000006
【図５】
2020012973.tif 000007
【図６】
2020012973.tif 000008
【図７】
2020012973.tif 000009
【図８】
2020012973.tif 000010
【図９Ａ】
2020012973.tif 000011
【図９Ｂ】
2020012973.tif 000012
【図１０】
2020012973.tif 000013
【図１１】
2020012973.tif 000014
【図１２】
2020012973.tif 000015
【図１３】
2020012973.tif 000016
【手続補正書】
【提出日】令和2年12月24日(2020.12.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
通信制御装置であって、
送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信する第１通信処理部と、
前記パケットを前記受信装置へ送信する第２通信処理部と、
を備え、
前記第２通信処理部は、前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信し、
前記第１通信処理部は、前記確認応答パケットを前記送信装置へ送信し、
前記通信制御装置は、
前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行う制御部、
をさらに備える、
通信制御装置。
【請求項２】
前記制御は、前記確認応答パケット又は前記パケットの送信タイミングの調整を含む、請求項１に記載の通信制御装置。
【請求項３】
前記送信タイミングの前記調整は、前記確認応答パケット間の送信間隔又は前記パケット間の送信間隔を短く又は長くすることを含む、請求項２に記載の通信制御装置。
【請求項４】
前記送信タイミングの前記調整は、前記確認応答パケット又は前記パケットの送信を遅らせることを含む、請求項２又は３に記載の通信制御装置。
【請求項５】
前記制御は、前記確認応答パケットの一部の破棄を含む、請求項１〜４のいずれか１項に記載の通信制御装置。
【請求項６】
前記制御は、前記パケットの送信順序の調整を含む、請求項１〜５のいずれか１項に記載の通信制御装置。
【請求項７】
前記パケットは、少なくとも一部が暗号化され又は認証されるパケットであり、
前記確認応答パケットは、少なくとも一部が暗号化され又は認証される確認応答パケットである、
請求項１〜６のいずれか１項に記載の通信制御装置。
【請求項８】
前記送信装置と前記受信装置との間の目標送信速度を推定する目標送信速度推定部、
をさらに備え、
前記制御部は、前記目標送信速度に基づいて前記制御を行う、
請求項１〜７のいずれか１項に記載の通信制御装置。
【請求項９】
送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信することと、
前記パケットを前記受信装置へ送信することと、
前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信することと、
前記確認応答パケットを前記送信装置へ送信することと、
前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行うことと、
を含む方法。
【請求項１０】
送信装置から受信装置へ送信されるパケットであって、当該送信装置と当該受信装置との間の中継点において生成及び改変できない当該パケットを、前記送信装置から受信することと、
前記パケットを前記受信装置へ送信することと、
前記パケットのための確認応答パケットであって、前記受信装置と前記送信装置との間の中継点において生成及び改変できない当該確認応答パケットを、前記受信装置から受信することと、
前記確認応答パケットを前記送信装置へ送信することと、
前記送信装置が送信速度を変更するように前記パケット又は前記確認応答パケットの制御を行うことと、
をプロセッサに実行させるプログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００９５
【補正方法】変更
【補正の内容】
【００９５】
これにより、例えば、ＲＴＴ（送信装置１０がパケットを送信してからＡＣＫを受信するまでの時間）を大きくすることができる。例えば、送信装置１０がロスベースの送信制御方式（例えばＣＵＢＩＣ等）を使用している場合に、結果として、再送の許容待機時間が長くなる（例えば、ＲＴＯ（Ｒｅｔｒａｎｓｍｉｓｓｉｏｎ  Ｔｉｍｅ  Ｏｕｔ）の値が大きくなる）。そのため、突発的な遅延の発生時に、再送及びそれに伴う送信速度の低下が回避され得る。あるいは、送信装置１０がファンクションベースの送信制御方式（例えばＢＢＲ等）を使用している場合に、結果として、推定される通信遅延が大きくなる。そのため、送信データ量が大きくなり得る。即ち、送信装置１０の送信速度が大きくなり得るし、送信装置１０と受信装置２０との間の通信のスループットが向上し得る。
【国際調査報告】
2020012973.tif 000017
2020012973.tif 000018
2020012973.tif 000019
2020012973.tif 000020