(57)【特許請求の範囲】
【請求項１】
基地局を介して端末装置にデータを送信する通信装置であって、
前記端末装置から確認応答を受信する応答信号受信部と、
前記基地局と前記端末装置間の無線通信速度を算出し、前記基地局の送信バッファに滞留しているデータ量を滞留データ量として算出し、前記無線通信速度と前記滞留データ量と前記確認応答の受信時刻に基づき、前記滞留データ量の変動を予測する、バッファ状況推定部と、
前記バッファ状況推定部が予測した前記変動に基づいて、前記端末装置に対する新規データの送信を行う時刻を追加送信時刻として計算する、送信時刻計算部と、
少なくとも前記追加送信時刻を経過した場合を条件に、所定の送信レートで、前記端末装置に前記新規データの送信を実施する、新規データ送信部と、
を備える通信装置。
【請求項２】
前記バッファ状況推定部は、前記滞留データ量が所定の閾値以下になると推定される時刻をバッファ枯渇時刻として算出し、
前記送信時刻計算部は、自通信装置と前記端末装置間の送信遅延と、前記受信時刻と、前記バッファ枯渇時刻とに基づいて、前記追加送信時刻を算出する、請求項１に記載の通信装置。
【請求項３】
前記バッファ状況推定部は、自通信装置が送信した送信データ量と、前記確認応答から取得される端末装置が受信した受信データ量とを更に用いて、前記滞留データ量を算出する、請求項１又は２に記載の通信装置。
【請求項４】
前記バッファ状況推定部は、前記端末装置の受信ウィンドウサイズの上限値と、前記基地局の前記送信バッファの前記滞留データ量の上限値の少なくともいずれか１つに基づき、前記滞留データ量を算出する、請求項１乃至３のいずれか一に記載の通信装置。
【請求項５】
前記バッファ状況推定部は、自通信装置が送信した送信データ量に基づいて、前記無線通信速度を算出する、請求項１乃至４のいずれか一に記載の通信装置。
【請求項６】
前記基地局から前記無線通信速度を取得する、基地局情報取得部をさらに備える、請求項１乃至５のいずれか一に記載の通信装置。
【請求項７】
前記送信時刻計算部は、直近の応答信号の受信時刻からの経過時間と、直近のデータ送信時刻からの経過時間とのうち、いずれかが事前に設定した閾値に到達する時刻を前記追加送信時刻とする、請求項１乃至６のいずれか一に記載の通信装置。
【請求項８】
ネットワークに接続する、端末装置通信部を備える、端末装置と、
前記端末装置に送信予定のデータを格納する、送信バッファを備える基地局と、
前記基地局を介して、前記端末装置にデータを送信する通信装置と、前記基地局と、前記端末装置と、
を含む通信システムであって、
前記通信装置は、
前記端末装置から確認応答を受信する応答信号受信部と、
前記基地局と前記端末装置間の無線通信速度を算出し、前記基地局の送信バッファに滞留しているデータ量を滞留データ量として算出し、前記無線通信速度と前記滞留データ量と前記確認応答の受信時刻に基づき、前記滞留データ量の変動を予測する、バッファ状況推定部と、
前記バッファ状況推定部が予測した前記変動に基づいて、前記端末装置に対する新規データの送信を行う時刻を追加送信時刻として計算する、送信時刻計算部と、
少なくとも前記追加送信時刻を経過した場合を条件に、所定の送信レートで、前記端末装置に前記新規データの送信を実施する、新規データ送信部と、
を備える通信システム。
【請求項９】
端末装置から確認応答を受信するステップと、
基地局と前記端末装置間の無線通信速度を算出するステップと、
前記基地局の送信バッファに滞留しているデータ量を滞留データ量として算出するステップと、
前記無線通信速度と前記滞留データ量と前記確認応答の受信時刻に基づき、前記滞留データ量の変動を予測するステップと、
前記変動に基づいて、前記端末装置に対する新規データの送信を行う時刻を追加送信時刻として計算するステップと、
少なくとも前記追加送信時刻を経過した場合を条件に、所定の送信レートで、前記端末装置に前記新規データの送信を実施するステップと、
を含む通信方法。
【請求項１０】
基地局を介して端末装置にデータを送信する通信装置を制御するコンピュータに実行させるプログラムであって、
前記端末装置から確認応答を受信する処理と、
前記基地局と前記端末装置間の無線通信速度を算出する処理と、
前記基地局の送信バッファに滞留しているデータ量を滞留データ量として算出する処理と、
前記無線通信速度と前記滞留データ量と前記確認応答の受信時刻に基づき、前記滞留データ量の変動を予測する処理と、
前記変動に基づいて、前記端末装置に対する新規データの送信を行う時刻を追加送信時刻として計算する処理と、
少なくとも前記追加送信時刻を経過した場合を条件に、所定の送信レートで、前記端末装置に前記新規データの送信を実施する処理と、
を前記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、日本国特許出願：特願２０１８−０１０５７１号（２０１８年１月２５日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、通信装置、通信システム、通信方法及びプログラムに関する。
【背景技術】
【０００２】
近年、スマートフォン等の普及により、モバイル網のトラフィックが増大している。トラフィック増加に対応する技術の一つとして、ＬＴＥ（Long Term Evolution）−Ａｄｖａｎｃｅｄから導入されたキャリアアグリゲーション（Carrier Aggregation、ＣＡ）が挙げられる。ＣＡとはコンポーネントキャリア（Component Carrier、ＣＣ）と呼ばれる周波数回線を複数かつ同時に使用することで、単一ＣＣの場合と比較して、モバイル通信の高速化を実現する技術である。【０００３】
しかし、ＣＡ技術を適用した通信において、その通信性能を最大限まで引き出せていないことがある。これは、基地局のデータリンク層とは独立にトランスポート層の制御を行う、インターネット側の通信装置が、基地局の状況を把握できないことに起因する。【０００４】
インターネット等において標準的に用いられる、トランスポート層の通信プロトコルとして、例えば、ＴＣＰ（Transmission Control Protocol）が知られている。ＴＣＰに代表される、一般的なトランスポート層のプロトコルにおいては、基地局と端末の再送有無など基地局の通信状況を把握できない。そのため、基地局の通信制御とインターネットの上位層の通信制御間における不整合が発生し、所定の通信性能を達成できない場合がある。【０００５】
例えば、基地局は端末にデータを送信する場合、基地局の送信バッファに、送信予定のデータを保存する。ここで、基地局の送信バッファとは、基地局自身の記憶領域である。基地局の送信バッファが一時的に空になると、基地局は送信を停止せざるを得ない。しかし、基地局の送信バッファが一時的に空になる状況を把握できない。そのため、インターネット側の通信装置は、基地局へのデータ送信を完了できない。その結果、インターネット側の通信装置から送信される無線資源が無駄になる。そのためインターネット側の通信装置からのデータ送信中に、基地局の送信バッファが空になる場合には、データ送信に要する時間は大きくなり、エンドツーエンドの通信速度であるスループットは小さくなる。【０００６】
このような問題に対し、エンドツーエンドのスループットを向上させるトランスポート層を制御する技術が存在する。【０００７】
例えば、特許文献１には、送信側の通信装置と、受信側の通信装置間の経路の帯域が広帯域であり、且つ、上記経路が長く、ＲＴＴ（Round Trip Time）が大きい（高遅延と呼ぶ）場合、スループットを向上できる通信装置等の技術が開示されている。具体的には、特許文献１の通信装置は、広帯域及び高遅延環境であると判定された場合に、第１の状態から、第２の状態へと遷移する。ここで、第１の状態とは、送信ウィンドウサイズが、受信ウィンドウサイズを超えないウィンドウサイズ（第１のウィンドウサイズ）である状態である。また、第２の状態とは、送信ウィンドウサイズが、受信ウィンドウサイズを超えるウィンドウサイズ（第２のウィンドウサイズ）である状態である。次に、特許文献１の通信装置は、第２の状態に遷移した場合、受信ウィンドウサイズを超えたサイズのパケットを送信する。その結果、特許文献１の送信装置は、受信側から通知された送信可能な最大データ量を超えたデータを送信することで、エンドツーエンドのスループットを向上できる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１２−０９５１９０号公報
【特許文献２】国際公開第２０１６／０２３９３５号
【発明の概要】
【発明が解決しようとする課題】
【０００９】
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。【００１０】
上述の特許文献に開示された技術では、広帯域かつ高遅延環境であると判断された場合には、データを追加送信する。それにより、通信経路上の装置において送信バッファが空になることを防止する。しかし、当該技術では、基地局の送信バッファが空になる課題を解決しきれない。なぜならば、当該技術では、適切なタイミングでデータを追加送信することが出来ない場合があるからである。以下、上記問題点について詳細に説明する。【００１１】
一般的な通信標準においては、通信過程中のエラー発生が不可避である。そのため、一般的な通信標準においては、送信エラーの検出方法と再送制御方法が規定されている。【００１２】
例えば、一般的な通信標準においては、下位層において送信失敗した場合に、エラーを検出する方法が規定されている。また、一般的な通信標準においては、再送が発生する際に、再送成功まで上位層の通信を完了しないようにして、再送を制御する方法が規定されている。さらに、一般的な通信標準においては、下位層に再送が発生すると、後続のパケットは再送が完了するまで待機して、再送を制御する方法も規定されている。【００１３】
以下、図２を参照しながら、送信側の端末装置がＴＣＰプロトコルを使用して基地局を経由し、受信側の端末装置にデータを送信する場合を例示して説明する。【００１４】
図２は、基地局１０３のプロトコル構成の一例、及び端末装置のプロトコル構成例の一例を示すブロック図である。【００１５】
基地局１０３は、３ＧＰＰ  Ｒｅｌ．１０以降の一般的な構成を備える。具体的には、基地局１０３は、基地局ＰＤＣＰ（Packet Data Convergence Protocol）層１０３１と、基地局ＲＬＣ（Radio Link Control）層１０３２と、１又は２以上のＭＡＣ（Media Access Control）層と、１又は２以上の物理層と、を備える。基地局ＰＤＣＰ層１０３１は、基地局１０３のＰＤＣＰ層である。基地局ＲＬＣ層１０３２は、基地局１０３のＲＬＣ層である。【００１６】
なお、図２には、基地局１０３と端末装置との関係を明確にするために、基地局１０３のＵ−Ｐｌａｎｅプロトコル以外の構成に関する記載を省略している。図２においては、基地局１０３の２つのＭＡＣ層（基地局ＭＡＣ層１０３３ａ、１０３３ｂ）を示すが、これは、基地局１０３のＭＡＣ層の数を、２つに限定する趣旨ではない。同様に、図２においては、基地局１０３の２つの物理層（基地局物理層１０３４ａ、１０３４ｂ）を示すが、これは、基地局１０３の物理層の数を２つに限定する趣旨ではない。以下の説明では、基地局１０３のＭＡＣ層を、夫々、区別する必要がない場合、基地局ＭＡＣ層１０３３と表記する。同様に、以下の説明では、基地局１０３の物理層を、夫々、区別する必要がない場合、基地局物理層１０３４と表記する。【００１７】
同様に、端末装置の通信手段である端末装置通信部１２１は、３ＧＰＰ  Ｒｅｌ．１０以降の一般的な構成を備える。端末装置通信部１２１は、端末トランスポート層１２１０と、端末ＰＤＣＰ層１２１１と、端末ＲＬＣ層１２１２と、１又は２以上のＭＡＣ層と、１又は２以上の物理層と、を備える。端末トランスポート層１２１０は、端末装置のトランスポート層である。端末ＰＤＣＰ層１２１１は、端末装置のＰＤＣＰ層である。端末ＲＬＣ層１２１２は、端末装置のＲＬＣ層である。【００１８】
図２においては、端末装置の２つのＭＡＣ層（端末ＭＡＣ層１２１３ａ、１２１３ｂ）を示すが、これは、端末装置のＭＡＣ層の数を２つに限定する趣旨ではない。同様に、図２においては、端末装置の２つの物理層（端末物理層１２１４ａ、１２１４ｂ）を示すが、これは、端末装置の物理層の数を２つに限定する趣旨ではない。以下の説明では、端末装置のＭＡＣ層を、夫々、区別する必要がない場合、端末ＭＡＣ層１２１３と表記する。同様に、以下の説明では、端末装置の物理層を、夫々、区別する必要がない場合、端末物理層１２１４と表記する。【００１９】
３ＧＰＰ（Third Generation Partnership Project）の標準モデルでは、基地局ＲＬＣ層１０３２は、少なくとも１つの基地局ＭＡＣ層１０３３と接続する。また、端末装置のＲＬＣ層（端末ＲＬＣ層１２１２）は、少なくとも１つのＭＡＣ層（端末ＭＡＣ層１２１３）と接続する。【００２０】
基地局ＭＡＣ層１０３３が端末ＭＡＣ層１２１３にデータを伝送完了すると、端末ＭＡＣ層１２１３は、伝送完了のデータを端末ＲＬＣ層１２１２に伝送する。同時に、端末ＭＡＣ層１２１３が伝送完了の通知を、基地局ＭＡＣ層１０３３に送信する。その後、端末ＲＬＣ層１２１２はデータを正常に受信したことを、基地局ＲＬＣ層１０３２に通知する。【００２１】
基地局ＭＡＣ層１０３３と端末ＭＡＣ層１２１３の間に伝送エラーが発生すると、端末ＭＡＣ層１２１３はデータを端末ＲＬＣ層１２１２に伝送できない。そのため、基地局ＭＡＣ層１０３３と端末ＭＡＣ層１２１３の間に伝送エラーが発生すると、端末ＭＡＣ層１２１３は、端末ＲＬＣ層およびその上位の端末ＰＤＣＰ層１２１１にもデータを転送できない。【００２２】
ＬＴＥにおいては、再送が発生した場合であっても、データの到着順序を保証する（ＲＬＣのＡＣＫ（Acknowledgement）モード）。そのため、基地局ＲＬＣ層１０３２と端末ＲＬＣ層１２１２の間でパケットが再送される場合、端末ＲＬＣ層１２１２に後続パケットが正常に届いても、再送されるパケットの受信が完了するまでは、後続パケットのデータを端末ＰＤＣＰ層１２１１に転送しない。さらに、端末ＰＤＣＰ層１２１１の上位である端末トランスポート層１２１０にもデータが転送されない。そのため、端末トランスポート層１２１０はデータを受信したことを示す通知（ＡＣＫ）を、ＴＣＰの送信装置に送信できない。【００２３】
また、ＴＣＰの輻輳制御には、送信中でACK未確認のデータ量を上限に抑える機能があるため、端末トランスポート層１２１０からの送信完了通知（ＡＣＫ）を受信しない限り、送信装置は新たなデータを送信しない。したがって、基地局ＲＬＣ層１０３２と端末ＲＬＣ層１２１２の間にあるパケットが再送される際、送信装置がＡＣＫパケットを受信するまで、後続データを送信しない。【００２４】
一方、基地局ＲＬＣ層１０３２と端末ＲＬＣ層１２１２の間にあるパケットが再送される場合、基地局ＲＬＣ層１０３２と端末ＲＬＣ層１２１２に再送されたパケット以降のパケットを逐次伝送する機能がある。その目的は、ＲＬＣ層またはＭＡＣ層の再送が発生しても、基地局１０３と端末装置の間にデータ伝送を停止させないことである。そのため、ＲＬＣ層の間に再送が発生しても、基地局１０３の送信バッファ（基地局ＰＤＣＰ層１０３１のバッファ）内に保存されたデータは逐次伝送される。その結果、基地局１０３の送信バッファ内に保存されたデータ量（いわゆる基地局１０３の送信バッファ内に滞留するデータ量）は減少する。【００２５】
その結果、送信側の端末装置の端末トランスポート層１２１０と基地局ＲＬＣ層１０３２間に不具合が発生する。送信側の端末装置の端末トランスポート層１２１０と基地局ＲＬＣ層１０３２間に不具合が発生すると、ＲＬＣ再送が発生した場合に、送信側の端末装置の端末トランスポート層１２１０は、ＡＣＫを受信するまで新たなデータを送信できない。その結果、基地局１０３のバッファ（以下、基地局１０３の送信バッファと呼ぶ）内に保存されたデータ量が減少し、枯渇してしまう。それを回避するために、基地局１０３が、バッファの状態を送信側の端末装置に通知する方法が提案されている[特許文献２]が、基地局にバッファの状態を通知できる機能を実装するだけでなく、送信側の端末装置にも通知されるバッファ状態を受信できる機能を実装する必要があり、装置単体で課題を解決することができない。また、実用化コストも高くなる。また、特許文献２により、基地局情報を送信側に通知できるが、無線情報をＡＣＫに乗せて通知するため、送信装置はＡＣＫを受信するまで新なデータを送信できず、課題を解決できない。この状態が継続し、基地局１０３の送信バッファ内に保存されたデータ量がゼロになると、無線帯域に伝送能力があっても、伝送されるデータが存在しないので、通信速度の劣化が発生する。【００２６】
特許文献１の技術においては、通信装置におけるＴＣＰの輻輳ウィンドウサイズと端末がＴＣＰ  ＡＣＫによって通知する受信ウィンドウサイズとの関係の変化を用いて、データを追加送信するタイミングを決定する。上述したように、ＲＬＣ層における再送は無線伝送のエラーを契機に突発的に発生する。そのため、特許文献１に記載の通信装置は、輻輳ウィンドウサイズと受信ウィンドウサイズの変化を観測しても、基地局のバッファ内のデータが０に減少したことを検知できない。その結果、特許文献１に記載の通信装置は、データを追加送信することが出来ず、通信速度の劣化が発生する場合がある。【００２７】
また、単に通信遅延が増大したことを以て、データの追加送信処理を実行する手法も考えうる。しかし、そのような手法を利用した場合、通信装置は、データの追加送信処理を開始するタイミングと、追加送信するデータ量を適切に設定できない。【００２８】
追加送信のデータ量が過小になれば、基地局バッファ内のデータが０になることによる通信速度劣化が発生する可能性がある。一方で、追加送信のデータ量が過大になれば、無線の伝送能力を超えたデータ量を送信してしまい、パケットロスや通信遅延の増大による通信品質の劣化を引き起こす可能性がある。【００２９】
本発明は以上の問題を鑑みてなされたものであって、通信速度の劣化を防止することに貢献する通信装置、通信システム、通信方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００３０】
第１の視点によると、通信装置が提供される。前記通信装置は、基地局を介して端末装置にデータを送信する。
前記通信装置は、前記端末装置から確認応答を受信する、応答信号受信部を備える。
さらに、前記基地局と前記端末装置間の無線通信速度を算出し、前記基地局の送信バッファに滞留しているデータ量を滞留データ量として算出し、前記無線通信速度と前記滞留データ量と前記確認応答の受信時刻とに基づき、前記滞留データ量の変動を予測する、バッファ状況推定部を備える。
さらに、前記通信装置は、前記バッファ状況推定部が予測した前記変動に基づいて、前記端末装置に対する新規データの送信を行う時刻を追加送信時刻として計算する、送信時刻計算部を備える。
さらに、前記通信装置は、少なくとも前記追加送信時刻を経過した場合を条件に、所定の送信レートで、前記端末装置に前記新規データの送信を実施する、新規データ送信部を備える。【００３１】
第２の視点によると、通信システムが提供される。前記通信システムは、端末装置と、基地局と、通信装置とを含んで構成される。
前記端末装置は、ネットワークに接続する、端末装置通信部を備える。
前記基地局は、前記端末装置に送信予定のデータを格納する、送信バッファを備える。
前記通信装置は、前記基地局を介して、前記端末装置にデータを送信する。
さらに、前記通信装置は、前記端末装置から確認応答を受信する、応答信号受信部を備える。
さらに、前記通信装置は、前記基地局と前記端末装置間の無線通信速度を算出し、前記基地局の送信バッファに滞留しているデータ量を滞留データ量として算出し、前記無線通信速度と前記滞留データ量と前記確認応答の受信時刻とに基づき、前記滞留データ量の変動を予測する、バッファ状況推定部を備える。
さらに、前記通信装置は、前記バッファ状況推定部が予測した前記変動に基づいて、前記端末装置に対する新規データの送信を行う時刻を追加送信時刻として計算する、送信時刻計算部を備える。
さらに、前記通信装置は、少なくとも前記追加送信時刻を経過した場合を条件に、所定の送信レートで、前記端末装置に前記新規データの送信を実施する、新規データ送信部を備える。【００３２】
第３の視点によると、通信方法が提供される。前記通信方法は、端末装置から確認応答を受信するステップを含む。
さらに、前記通信方法は、前記基地局と前記端末装置間の無線通信速度を算出するステップを含む。
さらに、前記通信方法は、前記基地局の送信バッファに滞留しているデータ量を滞留データ量として算出するステップを含む。
さらに、前記通信方法は、前記無線通信速度と前記滞留データ量と前記確認応答の受信時刻とに基づき、前記滞留データ量の変動を予測するステップを含む。
さらに、前記通信方法は、前記変動に基づいて、前記端末装置に対する新規データの送信を行う時刻を追加送信時刻として計算するステップを含む。
さらに、前記通信方法は、少なくとも前記追加送信時刻を経過した場合を条件に、所定の送信レートで、前記端末装置に前記新規データの送信を実施するステップを含む。
なお、本方法は、基地局を介して端末装置にデータを送信する通信装置という、特定の機械に結び付けられている。【００３３】
第４の視点によると、プログラムが提供される。前記プログラムは、基地局を介して端末装置にデータを送信する通信装置を制御するコンピュータに実行させるプログラムである。
前記プログラムは、前記端末装置から確認応答を受信する処理を、前記コンピュータに実行させる。
さらに、前記通信方法は、前記基地局と前記端末装置間の無線通信速度を算出する処理を、前記コンピュータに実行させる。
さらに、前記通信方法は、前記基地局の送信バッファに滞留しているデータ量を滞留データ量として算出する処理を、前記コンピュータに実行させる。
前記プログラムは、前記無線通信速度と前記滞留データ量と前記確認応答の受信時刻とに基づき、前記滞留データ量の変動を予測する処理を、前記コンピュータに実行させる。
前記プログラムは、前記変動に基づいて、前記端末装置に対する新規データの送信を行う時刻を追加送信時刻として計算する処理を、前記コンピュータに実行させる。
前記プログラムは、少なくとも前記追加送信時刻を経過した場合を条件に、所定の送信レートで、前記端末装置に前記新規データの送信を実施する処理を、前記コンピュータに実行させる。
なお、本プログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント（non-transient）なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００３４】
各視点によると、通信速度の劣化を防止することに貢献する通信装置、通信システム、通信方法及びプログラムが提供される。
【図面の簡単な説明】
【００３５】
【図１】一実施形態の概要を説明するための図である。
【図２】プロトコル構成例の一例を示すブロック図である。
【図３】第１の実施形態に係る無線通信システムの全体構成の一例を示す図である。
【図４】第１の実施形態に係る通信装置１１のハードウェア構成の一例を示すブロック図である。
【図５】第１の実施形態に係る端末装置１２のハードウェア構成の一例を示すブロック図である。
【図６】第１の実施形態に係る通信装置１１の構成の一例を示すブロック図である。
【図７】応答信号受信部１１１の構成の一例を示すブロック図である。
【図８】第１の実施形態に係る通信装置１１の動作の一例を示すフローチャートである。
【図９】処理時刻の一例を示す図である。
【図１０】第２の実施形態に係る通信装置２１の構成の一例を示すブロック図である。
【図１１】第２の実施形態に係る通信装置２１の動作の一例を示すフローチャート図である。
【発明を実施するための形態】
【００３６】
初めに、図１を用いて一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。また、各ブロック図のブロック間の接続線は、双方向及び単方向の双方を含む。一方向矢印については、主たる信号（データ）の流れを模式的に示すものであり、双方向性を排除するものではない。さらに、本願開示に示す回路図、ブロック図、内部構成図、接続図などにおいて、明示は省略するが、入力ポート及び出力ポートが各接続線の入力端及び出力端のそれぞれに存在する。入出力インターフェイスも同様である。
【００３７】
上述の通り、通信速度の劣化を防止することに貢献する通信装置が望まれる。
【００３８】
そこで、一例として、図１に示す通信装置１を提供する。通信装置１は、基地局を介して端末装置にデータを送信する。通信装置１は、応答信号受信部２と、バッファ状況推定部３と、送信時刻計算部４と、新規データ送信部５とを備える。
【００３９】
応答信号受信部２は、端末装置から確認応答を受信する。
【００４０】
バッファ状況推定部３は、基地局と端末装置間の無線通信速度を算出し、基地局の送信しているデータ量を滞留データ量として算出し、無線通信速度と滞留データ量と確認応答の受信時刻とに基づき、滞留データ量の変動を予測する。
【００４１】
送信時刻計算部４は、バッファ状況推定部３が予測した、基地局の滞留データの変動に基づいて、端末装置に対する新規データの送信を行う時刻を追加送信時刻として計算する。以下の説明では、追加データの送信処理を、追加送信処理とも呼ぶ。
【００４２】
新規データ送信部５は、少なくとも追加送信時刻を経過した場合を条件に、所定の送信レートで、端末装置に新規データの送信を実施する。
【００４３】
つまり、通信装置１は、少なくとも追加送信時刻を経過した場合を必要条件として、基地局の滞留データ量を考慮したうえで、新規データを送信するタイミングを決定する。そのため、通信装置１は、基地局の送信バッファが空になることを防止することに貢献する。その結果、通信装置１は、無線層において、新規データを伝送不可能になることを防止することに貢献する。従って、通信装置１は、通信速度の劣化を防止することに貢献する。
【００４４】
［第１の実施形態］
第１の実施形態について、図面を用いて詳細に説明する。
【００４５】
図３は、第１の実施形態に係る無線通信システムの全体構成の一例を示す図である。
【００４６】
第１の実施形態に係る無線通信システムは、ネットワーク１０１−１〜１０１−ｎ（ｎは、自然数。以下、同じ）を備える。ネットワーク１０１−１〜１０１−ｎは、異なる終端端末の通信種類（有線や無線）を含む。ネットワーク１０１−１〜１０１−ｎは、例えば、ＬＴＥの公衆携帯電話網、家庭用Ｗｉ−Ｆｉ（Wireless Fidelity）（登録商標、以下同じ）、建物内のＬＡＮ（Local Area Network）などである。
【００４７】
例えば、ネットワーク１０１−１、１０１−２は、モバイルネットワークである。端末装置１２−１は、基地局１０３−１を介して、ネットワーク１０１−１に接続する。端末装置１２−２は、基地局１０３−２を介して、ネットワーク１０１−２に接続する。以下の説明では、端末装置１２−１、１２−２を、夫々、区別する必要がない場合、端末装置１２と表記する。また、以下の説明では、基地局１０３−１、１０３−２を、夫々、区別する必要がない場合、基地局１０３と表記する。また、以下の説明では、ネットワーク１０１−１〜１０１−ｎを夫々、区別する必要がない場合、ネットワーク１０１と表記する。
【００４８】
端末装置１２は、対応するネットワーク１０１を経由し、インターネット１０４上のサーバ１０５にアクセスし、データ通信を行う。本発明の通信装置１１は、ＬＴＥ網を使用する端末装置１２のみに適用されず、他の無線通信形式を使用した端末にも対応する。例えば、端末装置１２は、Ｗｉ−Ｆｉ中継局を経由し、通信装置１１と通信してもよい。以下、説明の便宜上、端末装置１２は、ＬＴＥ網を使用する場合を例示して説明する。ただし、これは、本実施形態に係る端末装置１２が、ＬＴＥ網を使用する場合に限定する趣旨ではない。
【００４９】
本実施形態では、通信装置１１が通信経路上、ネットワーク１０１とインターネット１０４の接続部に設置される場合を例に挙げる。もちろん、通信装置１１の設置場所は、携帯ネットワークとインターネットの接続部に限定されず、接続部以外の他の通信経路上の装置であってもよい。例えば、通信装置１１が、通信経路上のサーバ１０５に設置される場合であってもよい。
【００５０】
［ハードウェア構成］
次に、第１の実施形態に係る各種装置のハードウェア構成を説明する。図４は、第１の実施形態に係る通信装置１１のハードウェア構成の一例を示すブロック図である。
【００５１】
［通信装置の構成］
通信装置１１は、例えば、図４に例示する構成を含んで構成される。例えば、通信装置１１は、内部バスにより相互に接続される、ＣＰＵ（Central Processing Unit）８１、メモリ８２、入出力インターフェイス８３、及び通信手段であるＮＩＣ（Network Interface Card）８４等を含む。
【００５２】
但し、図４に示す構成は、通信装置１１のハードウェア構成を限定する趣旨ではない。通信装置１１は、図示しないハードウェアを含んでもよいし、必要に応じて入出力インターフェイス８３を備えていなくともよい。また、通信装置１１に含まれるＣＰＵ等の数も図４の例示に限定する趣旨ではなく、例えば、通信装置１１は、複数のＣＰＵを含んで構成されてもよい。
【００５３】
メモリ８２は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、補助記憶装置（ハードディスク等）である。
【００５４】
入出力インターフェイス８３は、図示しない表示装置や入力装置のインターフェイスとして機能する。表示装置は、例えば、液晶ディスプレイ等である。入力装置は、例えば、キーボードやマウス等のユーザ操作を受け付ける。
【００５５】
通信装置１１の機能は、後述する各種処理モジュールにより実現される。当該処理モジュールは、例えば、メモリ８２に格納されたプログラムをＣＰＵ８１が実行することで実現される。また、そのプログラムは、ネットワークを介してダウンロードするか、あるいは、プログラムを記憶した記憶媒体を用いて、更新できる。さらに、上記処理モジュールは、半導体チップにより実現されてもよい。即ち、通信装置１１は、上記処理モジュールが行う機能を何らかのハードウェア、及び／又は、ソフトウェアで実行する手段を含んで構成される。
【００５６】
［端末装置の構成］
端末装置１２は、例えば、図５に例示する構成を備える。端末装置１２は、アンテナ９５を含むＲＦ（Radio Frequency）回路９４を含んで構成される。ＲＦ回路９４は、無線通信を実現するための回路であり、アンテナ９５を介して基地局１０３との間で無線信号の授受を行う。なお、端末装置１２が備えるハードウェアのうち、通信装置１１と共通するハードウェアの説明は省略する。
【００５７】
基地局１０３のハードウェア構成は当業者にとって明らかなものであるため、説明を省略する。
【００５８】
続いて、通信装置１１及び端末装置１２の処理構成（処理モジュール）について説明する。
【００５９】
図６は、通信装置１１と、端末装置１２と、ネットワーク１０１を含むシステムの構成例を示すブロック図である。端末装置１２は、端末装置通信部１２１を含んで構成される。ネットワーク１０１は、基地局１０３を含んで構成される。通信装置１１は、応答信号受信部１１１と、バッファ状況推定部１１２と、送信時刻計算部１１３と、新規データ送信部１１４とを含んで構成される。
【００６０】
端末装置１２の端末装置通信部１２１は、ネットワーク１０１の基地局１０３と通信可能に接続される。ネットワーク１０１は、通信装置１１の応答信号受信部１１１と通信可能に接続される。応答信号受信部１１１は、バッファ状況推定部１１２、送信時刻計算部１１３、新規データ送信部１１４と通信可能に接続される。送信時刻計算部１１３は、バッファ状況推定部１１２と新規データ送信部１１４とに、通信可能に接続される。
【００６１】
応答信号受信部１１１は、端末装置１２から応答信号を受信する。
【００６２】
バッファ状況推定部１１２は、基地局１０３と端末装置１２間の無線通信速度と、基地局１０３の送信バッファ以内の滞留データ量と、確認応答の受信時刻とに基づいて、基地局１０３の送信バッファ以内の滞留データ量の変動を予測する。
【００６３】
送信時刻計算部１１３は、基地局１０３の送信バッファ以内の滞留データ量の変動に基づいて、端末装置１２に対する新規データの追加送信時刻を計算する。
【００６４】
新規データ送信部１１４は、少なくとも追加送信時刻を経過した場合、所定の送信レートで、端末装置１２に新規データを送信する。
【００６５】
以下、図７を参照しながら、通信装置１１の構成についてより詳細に説明する。
【００６６】
図７は、図６に示される応答信号受信部１１１の構成の一例を示すブロック図である。応答信号受信部１１１は、ＯＳＩ（Open Systems Interconnection）参照モデルの一般的な構成を含んで構成される。具体的には、応答信号受信部１１１は、通信装置アプリケーション層１１１０、通信装置トランスポート層１１１１と、通信装置ネットワーク層１１１２と、通信装置ＭＡＣ層１１１３と、通信装置物理層１１１４と、を含んで構成される。なお、図７には、バッファ状況推定部１１２と、送信時刻計算部１１３と、新規データ送信部１１４との接続関係を明確にするために、応答信号受信部１１１に関連する構成以外の構成に関する記載を省略している。
【００６７】
バッファ状況推定部１１２は、応答信号受信部１１１の通信装置トランスポート層１１１１から得られる情報（例えば、送信パケット、受信パケット）に基づき、基地局１０３のバッファ状況を算出する。具体的には、バッファ状況推定部１１２は、基地局１０３の滞留データ量が所定の閾値以下になると推定される時刻を、バッファ枯渇時刻として算出する。その後、バッファ状況推定部１１２は、算出したバッファ枯渇時刻を送信時刻計算部１１３に伝送する。
【００６８】
また、バッファ状況推定部１１２は、通信装置トランスポート層１１１１と接続することを限定せず、応答信号受信部１１１の他の層（例えば、通信装置アプリケーション層１１１０）と接続してもよい。例えば、ＱＵＩＣなどのＵＤＰに基づく通信プロトコルは、確認応答の信号は通信装置トランスポート層１１１１に伝送されず、通信装置アプリケーション層１１１０に伝送されたためである。
【００６９】
送信時刻計算部１１３は、自通信装置１１と端末装置１２間の送信遅延と、確認応答の受信時刻と、バッファ枯渇時刻とに基づいて、追加送信時刻を算出する。送信時刻計算部１１３は、算出した追加送信時刻を新規データ送信部１１４に伝送する。また、送信時刻計算部１１３は、追加送信の送信レート（以下、追加送信レートと呼ぶ）を計算する。
【００７０】
新規データ送信部１１４は、送信時刻計算部１１３から受信した追加送信時刻と、送信時刻計算部１１３から受信した追加送信レートとに基づいて、基地局１０３を経由し、端末装置１２に、データを送信する。
【００７１】
［通信装置の動作］
図８は、第１の実施形態に係る通信装置１１の動作の一例を示すフローチャートである。
【００７２】
まず、端末装置１２は、通信装置１１とのデータ通信を開始する。本実施形態に係る通信装置１１と端末装置１２間の通信プロトコルは、応答確認機能を有するプロトコルである。例えば、本実施形態に係る通信装置１１と端末装置１２間の通信プロトコルは、通信装置トランスポート層１１１１において確認応答を送信するＴＣＰ等であってもよい。もちろん、本実施形態に係る通信装置１１と端末装置１２間の通信プロトコルは、通信装置トランスポート層１１１１において確認応答を送信するプロトコルに限定されず、他の層において確認応答を送信するプロトコルに対応してもよい。
【００７３】
バッファ状況推定部１１２は、往復遅延、インフライトデータ量、ＴＣＰスループット等を、応答信号受信部１１１から通信情報として取得する（ステップＳ１１）。ここで、インフライトデータ量とは、ＴＣＰにおいて送信成功かつ受信成功した、未確認のデータ量を意味する。また、ここで、ＴＣＰスループットとは、ＴＣＰにおける、直近の所定時間内のスループットを意味する。
【００７４】
例えば、バッファ状況推定部１１２は、直近の所定の時間内に、受信完了したパケットの総ビット数を、当該所定時間で割った値を、ＴＣＰスループットとして使用してもよい。または、バッファ状況推定部１１２は、単位時間当たりのＴＣＰスループットを算出し、算出した単位時間当たりのＴＣＰスループットの平均値を使用しても良い。または、バッファ状況推定部１１２は、単位時間当たりのＴＣＰスループットを算出し、算出した単位時間当たりのＴＣＰスループットの移動平均値を使用しても良い。
【００７５】
そして、バッファ状況推定部１１２は、基地局１０３の滞留データ量、及びバッファ枯渇時刻を計算する（ステップＳ１２）。具体的には、バッファ状況推定部１１２は、取得した通信情報を使用し、基地局１０３の滞留データ量、及びバッファ枯渇時刻を計算する。そして、バッファ状況推定部１１２は、算出したバッファ枯渇時刻を送信時刻計算部１１３に伝送する。
【００７６】
例えば、バッファ状況推定部１１２は、自通信装置１１が送信した送信データ量と、端末装置１２が受信した受信データ量とに基づいて、基地局１０３の滞留データ量を算出してもよい。ここで、端末装置１２が、当該端末装置１２が受信できるデータ量の上限値を、通信装置１１に通知してもよい。例えば、バッファ状況推定部１１２は、ＴＣＰヘッダに記載された値を、端末装置１２が受信できるデータ量の上限値として使用してもよい。
【００７７】
または、バッファ状況推定部１１２は、端末装置１２の受信ウィンドウサイズの上限値に基づいて、滞留データ量を算出してもよい。
【００７８】
または、バッファ状況推定部１１２は、基地局１０３の送信バッファの滞留データ量の上限値に基づいて、基地局１０３の滞留データ量を算出してもよい。
【００７９】
そして、基準時刻から、Ｔ秒後（Ｔは０より大きい整数。以下、同様。）に、基地局１０３の送信バッファ内の滞留データ量が所定の閾値以下になる（例えば、ゼロになる）、とバッファ状況推定部１１２は計算したとする。その場合、バッファ状況推定部１１２は、その基準時刻からＴ秒後の時刻を、バッファ枯渇時刻として算出する。ここで、基準時刻は、例えば、バッファ状況推定部１１２が、バッファ枯渇時刻を算出する時点の時刻であってもよい。また、基準時刻は、例えば、通信装置１１がデータを送信した、直近の時刻等であってもよい。
【００８０】
ここで、通信装置１１が基地局１０３に新たなデータを送信しない場合、基地局１０３の送信バッファ内の滞留データ量は所定の速度で消耗する。そのため、バッファ状況推定部１１２は、基地局１０３の送信バッファ内の滞留データ量と無線通信速度とを除算することで、バッファ枯渇時刻を計算してもよい。
【００８１】
バッファ状況推定部１１２は、送信側の端末装置１２が取得した通信情報、または通信装置１１が取得した通信情報に基づいて、基地局１０３の送信バッファ内の滞留データ量または無線通信速度を計算してもよい。
【００８２】
また、例えば、バッファ状況推定部１１２は、直近の所定時間内のＴＣＰスループットを、無線通信速度の近似値として使用してもよい。
【００８３】
また、例えば、バッファ状況推定部１１２は、直近の所定時間内のＴＣＰスループットに基づいてキャリアアグリゲーションの状況を加味して計算された値を、無線通信速度の近似値として算出してもよい。ＬＴＥのキャリアアグリゲーション技術が適用される場合、無線通信速度劣化の発生頻度が上昇する。そのため、バッファ状況推定部１１２は、キャリアアグリゲーション技術が適用された端末装置１２に関して、直近の所定時間のＴＣＰスループットと、端末装置１２が使用するコンポーネントキャリア数とを計算する。それにより、バッファ状況推定部１１２は、無線通信速度の近似値を算出する。
【００８４】
例えば、バッファ状況推定部１１２は、ＴＣＰスループット*f(N_CC)を用いて、無線通信速度の近似値を算出してもよい。
【００８５】
ここで、f(N_CC)は、端末装置１２が使用するコンポーネントキャリア数に対応する、ＴＣＰスループットある。バッファ状況推定部１１２は、コンポーネントキャリア数毎に、異なるＴＣＰスループットを利用して、無線通信速度の近似値を算出してもよい（例えば、f(1)=1.0, f(2)=1.02, f(3)=1.04等）。
【００８６】
また、バッファ状況推定部１１２は、端末装置１２が使用するコンポーネントキャリア数を推定するために、キャリアアグリゲーション技術を利用するとする。その場合、コンポーネントキャリア数が増加するほど無線通信速度劣化の発生頻度が上昇する。そこで、バッファ状況推定部１１２は、この特性を利用し、確認応答（例えばＡＣＫ信号）の到着間隔がある閾値を超えた頻度（所定時間内の発生回数）に基づいて、コンポーネントキャリア数を推定してもよい。
【００８７】
その後、送信時刻計算部１１３は、追加送信時刻を計算する（ステップＳ１３）。具体的には、送信時刻計算部１１３は、新規データ送信部１１４が送信したデータが、応答信号受信部１１１から基地局１０３の送信バッファに到着するまでの時間（即ち、送信遅延）を考慮し、追加送信時刻を計算する。これは、基地局１０３のバッファが空になることを防止するためである。
【００８８】
例えば、送信時刻計算部１１３は、通信装置１１と端末装置１２間の往復遅延（ＲＴＴ）に基づいて、往復遅延の半分（ＲＴＴ／２）を、送信遅延として算出する。
【００８９】
送信時刻計算部１１３は、往復遅延について、現在のＴＣＰセッション、または同じ端末装置１２に対する複数のＴＣＰセッション中の最小のＲＴＴ、または直近時間内の最小のＲＴＴを使用してもよい。これにより、送信時刻計算部１１３は、基地局１０３のキューイング遅延を排除した、実効的最小遅延を利用できる。
【００９０】
また、送信時刻計算部１１３は、パケットに記載されたタイムスタンプに基づいて、送信遅延を計算してもよい。例えば、図９に示すように、通信装置１１がパケットを送信した時刻をＴａとし、通信装置１１がパケットを受信した時刻をＴｂとする。その場合、ＲＴＴはＴｂ−Ｔａである。しかし、端末装置１２において、受信したパケットを処理するために、処理時間を要する。そのため、送信時刻計算部１１３は、実効的片道遅延を計算する際、端末装置１２の処理時間（Ｔｙ−Ｔｘ）を除去する。よって、端末装置１２がＴｘ、Ｔｙの時刻をパケットに記載する場合、送信時刻計算部１１３は、（（Ｔｂ−Ｔａ）−（Ｔｙ−Ｔｘ））を使用して、送信データが、応答信号受信部１１１から基地局１０３の送信バッファに到着するまでの時間を計算する。なお、例えば、端末装置１２は、ＴＣＰのヘッダのオプションフィールドを利用して、時刻Ｔｘ、時刻Ｔｙをパケットに記載してもよい。
【００９１】
ステップＳ１４において、追加送信時刻を越える場合であって、且つ応答信号受信部１１１が新たなＡＣＫを未受信であるか否かを、送信時刻計算部１１３は判断する。
【００９２】
追加送信時刻を越える場合であって、且つ測定期間中に応答信号受信部１１１が新たなＡＣＫを未受信である場合（ステップＳ１４のＹｅｓ分岐）には、送信時刻計算部１１３は、追加送信処理を実行する。そして、ステップＳ１５に遷移する。
【００９３】
例えば、応答信号受信部１１１がＡＣＫ信号を受信した場合、送信時刻計算部１１３は、タイマを起動してもよい。そして、送信時刻計算部１１３は、タイマを起動開始してからの経過時間を測定してもよい。
【００９４】
一方、追加送信時刻を超えるまでに、応答信号受信部１１１が新たなＡＣＫを受信した場合（ステップＳ１４のＮｏ分岐）には、ステップＳ１２に戻り、処理を継続する。
【００９５】
次に、図２をさらに参照しながら、送信時刻計算部１１３が、追加送信の要否を判断する処理について詳細に説明する。
【００９６】
ＬＴＥの標準モデルにおいては、任意の基地局ＭＡＣ層１０３３と端末ＭＡＣ層１２１３間に伝送エラーが発生した場合、端末トランスポート層１２１０のＡＣＫの受信間隔の延長が発生する。端末トランスポート層１２１０において、端末装置１２が、所定時間内にＴＣＰ  ＡＣＫを受信できない場合、基地局ＲＬＣ層１０３２が再送を実施している、と端末装置通信部１２１は推定する。
【００９７】
この場合、端末装置通信部１２１は、ＴＣＰ  ＡＣＫを受信できない。しかし、基地局１０３の送信バッファ内の滞留データ量が逐次減少している、とバッファ状況推定部１１２は推定する。そのため、送信時刻計算部１１３は、追加送信の要否を判断する。
【００９８】
また、バッファ状況推定部１１２は、ＴＣＰ  ＡＣＫに替えて、他のプロトコルの確認応答を使用して、基地局１０３の送信バッファ内の滞留データ量を推定してもよい。例えば、バッファ状況推定部１１２は、ＱＵＩＣ（Quick UDP Internet Connections）、ＭＱＴＴ（Message Queue Telemetry Transport）の応答信号を使用して、基地局１０３の送信バッファ内の滞留データ量を推定してもよい。通信装置１１が他のプロトコルの応答信号を使用する場合、応答信号は端末トランスポート層１２１０に伝送されることに限定されず、他の層（例えば、アプリケーション層）に伝送されてもよい。なお、以下、説明の便宜上、端末トランスポート層１２１０のＴＣＰを使用して、応答信号を伝送する場合について説明する。ただし、これは、本実施形態に係る端末装置１２が、端末トランスポート層１２１０のＴＣＰを使用して、応答信号を伝送する場合に限定する趣旨ではない。
【００９９】
送信時刻計算部１１３は、応答信号受信部１１１が直近のＡＣＫを受信してからの経過時間を測定する。また、通信装置トランスポート層１１１１に、同じ端末装置１２に対する複数のＴＣＰセッションが同時に通信する場合、送信時刻計算部１１３は、複数のＴＣＰセッションのうち、直近のＡＣＫを受信した時刻からの経過時間を測定する。また、送信時刻計算部１１３は、応答信号受信部１１１が直近のパケットを送信してからの経過時間を測定してもよい。
【０１００】
ステップＳ１５において、送信時刻計算部１１３は、送信レートを計算する。
【０１０１】
例えば、直近の所定時間内の無線通信速度を、送信レートとして計算してもよい。また、送信時刻計算部１１３は、他の通信特性を使用して、送信レートを推定してもよい。
【０１０２】
また、例えば、送信時刻計算部１１３は、直近の所定時間内のＴＣＰスループットまたは直近の所定時間内のＴＣＰ送信レートを近似して、送信レートとして計算してもよい。また、送信時刻計算部１１３は、ＴＣＰセッション中の最大のＴＣＰスループット、または直近の所定時間内の最大のＴＣＰスループットを使用して、送信レートを計算してもよい。
【０１０３】
また、通信装置１１が、同じ端末装置１２と複数のＴＣＰセッションを張ったとする。その場合、送信時刻計算部１１３は、複数のＴＣＰセッションのＴＣＰスループットの合算、または直近の所定時間内の複数のＴＣＰセッションのＴＣＰスループットの合算の最大値を使用して、送信レートを計算してもよい。
【０１０４】
さらに、キャリアアグリゲーション技術が適用されるとき、無線通信速度劣化の発生頻度が上昇する。そのため、キャリアアグリゲーション技術が適用された端末装置１２に対し、通信装置１１は、さらに高い送信レートで送信してもよい。
【０１０５】
送信時刻計算部１１３は、例えば、バッファ状況推定部１１２が無線通信速度を近似する際と同様の計算を使用して、送信レートを計算する。その後、送信時刻計算部１１３は、計算した送信レートを、新規データ送信部１１４に伝送する。
【０１０６】
ステップＳ１６において、新規データ送信部１１４は、新規データを送信する。
【０１０７】
一般的に、ＴＣＰにおいては、輻輳制御のため、送信に成功したデータ量であっても未確認のデータ量を所定の値に抑える仕組みがある。具体的には、一般的に、ＴＣＰにおいては、データのインフライト量が、輻輳ウィンドウ(cwnd)サイズを超えないように制御する。また、一般的に、ＴＣＰにおいては、受信側から返信したＡＣＫパケットのヘッダに含まれた受信ウィンドウ（rwnd）サイズを超えないように制御する。
【０１０８】
一方、本実施形態に係る通信装置１１は、輻輳ウィンドウ（cwnd）サイズ、またはＡＣＫパケットのヘッダに含まれた受信ウィンドウ（rwnd）サイズ、または通信装置トランスポート層１１１１のバッファの上限値、または基地局１０３の送信バッファの上限値の少なくとも１つの値を超えたデータを送信できる。そのため、新規データ送信部１１４は、新規データを送信する場合、輻輳ウィンドウ（cwnd）サイズ、ＡＣＫパケットのヘッダに含まれた受信ウィンドウ（rwnd）サイズ、または送信バッファのバッファサイズの制約を無視してデータを送信できる。
【０１０９】
［効果］
以上説明したように、第１の実施形態に係る通信装置１１は、基地局１０３の無線通信特性に基づいて、基地局１０３の送信バッファ内の滞留データ量が所定の閾値以下になると推定される時刻（即ち、バッファ枯渇時刻）を予測する。その後、通信装置１１は、基地局１０３の送信バッファ内の滞留データ量が所定の閾値以下になる（例えば、ゼロになる）前に、新規データ送信部１１４を経由し、基地局１０３に新規データを追加送信する。それにより、本実施形態に係る通信装置１１は、基地局１０３の送信バッファ内の滞留データ量を、所定の閾値より大きい（例えば、ゼロより大きい）データ量に維持できる。それにより、通信装置１１は、無線層において、新規データを伝送不可能になることを防止することに貢献する。その結果、通信装置１１は、通信性能の低下を防止できる。
【０１１０】
［第２の実施形態］
次に、第２の実施形態について、図面を用いて詳細に説明する。本実施形態は、基地局から基地局に関する情報を取得し、取得した情報を使用して、バッファ枯渇時刻を予測する形態である。なお、本実施形態における説明では、上記の実施形態と重複する部分の説明は省略する。さらに、本実施形態における説明では、上記の実施形態と同一の構成要素には、同一の符号を付し、その説明を省略する。また、本実施形態における説明では、上記の実施形態と同一の作用効果についても、その説明を省略する。
【０１１１】
［通信装置の構成］
図１０は、第２の実施形態に係る通信装置２１の構成の一例を示す図である。
【０１１２】
基地局情報取得部２１５は、基地局１０３から、基地局１０３に関する情報（以下、基地局情報と呼ぶ）を取得する。例えば、基地局情報取得部２１５は、基地局１０３の送信バッファの上限値（以下、バッファサイズの上限値とも呼ぶ）と、基地局１０３の送信バッファ内に滞留するデータ量とを、基地局情報として取得してもよい。また、例えば、基地局情報取得部２１５は、基地局１０３と端末装置１２の無線通信速度、基地局１０３と端末装置１２間の通信電波数（キャリアアグリゲーション状況）を、基地局情報とを取得してもよい。そして、基地局情報取得部２１５は、取得した基地局情報を、バッファ状況推定部２１２に伝送する。
【０１１３】
応答信号受信部２１１は、第１の実施形態に係る応答信号受信部１１１と同じ構成を有するため、説明を省略する。
【０１１４】
送信時刻計算部２１３は、第１の実施形態に係る送信時刻計算部１１３と同じ構成を有するため、説明を省略する。
【０１１５】
新規データ送信部２１４は、第１の実施形態に係る新規データ送信部１１４と同じ構成を有するため、説明を省略する。
【０１１６】
［通信装置の動作］
図１１は、第２の実施形態に係る通信装置２１の動作の一例を示すフローチャートである。
【０１１７】
まず、基地局情報取得部２１５は、基地局１０３から、基地局情報を取得する（ステップＳ２１）。例えば、基地局情報取得部２１５は、基地局１０３から、送信バッファの上限値（バッファサイズの上限値）、送信バッファ内に滞留するデータ量、端末装置１２との無線通信速度、端末装置１２との通信電波数（キャリアアグリゲーション状況）のうち、少なくとも１つの情報を取得する。そして、基地局情報取得部２１５は、取得した基地局１０３からの情報を、バッファ状況推定部２１２に伝送する。
【０１１８】
バッファ状況推定部２１２は、往復遅延、インフライトデータ量、ＴＣＰスループットを、応答信号受信部２１１から通信情報として取得する（ステップＳ２２）。
【０１１９】
バッファ状況推定部２１２は、基地局１０３の滞留データ量、及びバッファ枯渇時刻を計算する（ステップＳ２３）。具体的には、バッファ状況推定部２１２は、応答信号受信部２１１から取得した通信情報と、基地局情報取得部２１５から取得した基地局情報とを使用し、基地局１０３の滞留データ量、及びバッファ枯渇時刻を計算する。
【０１２０】
例えば、バッファ状況推定部２１２は、応答信号受信部２１１から取得した通信情報と、基地局情報取得部２１５から取得した基地局情報とを組み合わせて、基地局１０３の滞留データ量、及びバッファ枯渇時刻を計算してもよい。または、バッファ状況推定部２１２は、応答信号受信部２１１から取得した通信情報と、基地局情報取得部２１５から取得した基地局情報とのうち、一方の情報を使用して、基地局１０３の滞留データ量、及びバッファ枯渇時刻を計算してもよい。
【０１２１】
例えば、新たなデータがない場合、基地局１０３の送信バッファ内の滞留データ量は所定の速度で消耗する。そのため、バッファ状況推定部２１２は、滞留データ量と無線通信速度とを除算することで、バッファ枯渇時刻を算出できる。具体的には、バッファ状況推定部２１２は、基地局１０３の送信バッファ内の滞留データ量と無線通信速度とを推定する。そして、バッファ状況推定部２１２は、推定した無線通信速度でデータを送信すると仮定して、推定した滞留データ量を送信し終える時刻を算出することで、バッファ枯渇時刻を計算する。
【０１２２】
バッファ状況推定部２１２は、基地局情報取得部２１５から取得した基地局情報を使用して、基地局１０３の送信バッファ内の滞留データ量と無線通信速度とを算出する。例えば、バッファ状況推定部２１２は、は、基地局情報取得部２１５から取得した基地局１０３の送信バッファ内の滞留データ量、基地局１０３の送信バッファの上限値の少なくともいずれかを使用して、基地局１０３の送信バッファ内の滞留データ量を算出する。
【０１２３】
また、例えば、バッファ状況推定部２１２は、基地局情報取得部２１５から取得した基地局１０３と端末装置１２間の無線通信速度、または所定時間内の最大の無線通信速度を使用してもよい。
【０１２４】
そして、基準時刻から時間Ｔ秒経過後に基地局１０３の送信バッファ内の滞留データ量が所定の閾値以下になる（例えば、ゼロになる）、とバッファ状況推定部２１２は計算したとする。その場合、バッファ状況推定部２１２は、その基準時刻からＴ秒経過後の時刻を、バッファ枯渇時刻として算出する。そして、バッファ状況推定部２１２は、算出したバッファ枯渇時刻を送信時刻計算部２１３に伝送する。
【０１２５】
その後、送信時刻計算部２１３は、追加送信時刻を計算する（ステップＳ２４）。具体的には、送信時刻計算部２１３は、追加送信したデータが、応答信号受信部２１１から基地局１０３の送信バッファに到着するまでの時間（即ち、送信遅延）を考慮し、追加送信時刻を算出する。ここで、送信時刻計算部２１３は、基地局１０３から通知する情報を使用して、追加送信時刻を算出してもよい。例えば、送信時刻計算部２１３は、基地局１０３と端末装置１２間の往復遅延、または片道遅延、または基地局１０３から通知された情報中に記載されたタイムスタンプを使用して、追加送信時刻を算出してもよい。
【０１２６】
送信時刻計算部２１３は、応答信号受信部２１１が直近のＡＣＫを受信してからの経過時間を測定する。また、通信装置トランスポート層１１１１において、同じ端末装置１２に対する複数のＴＣＰセッションが同時に通信する場合、送信時刻計算部２１３は、複数のＴＣＰセッションのうち、直近のＡＣＫを受信した時刻からの経過時間を測定する。また、送信時刻計算部２１３は、応答信号受信部２１１が直近のパケットを送信した時刻からの経過時間を測定してもよい。
【０１２７】
ステップＳ２５において、追加送信時刻を越える場合であって、且つ測定期間中に応答信号受信部２１１が新たなＡＣＫを未受信であるか否かを、送信時刻計算部２１３は判断する。
【０１２８】
追加送信時刻を超える場合であって、且つ測定期間中に応答信号受信部２１１が新たなＡＣＫを未受信である場合（ステップＳ２５のＹｅｓ分岐）には、送信時刻計算部２１３は、追加送信処理を実行する。そして、ステップＳ２６に遷移する。
【０１２９】
例えば、送信時刻計算部２１３は、応答信号受信部２１１がＡＣＫ信号を受信した場合、タイマを起動して、タイマを起動開始してからの経過時間を測定してもよい。
【０１３０】
一方、追加送信時刻を超えるまでに、タイマ起動中に、応答信号受信部２１１が新たなＡＣＫを受信した場合（ステップＳ２５のＮｏ分岐）には、ステップＳ２３に遷移し、処理を継続する。
【０１３１】
ステップＳ２６において、送信時刻計算部２１３は、送信レートを計算する。
【０１３２】
送信時刻計算部２１３は、例えば、直近の所定時間内の無線通信速度を、送信レートとして計算する。また、送信時刻計算部２１３は、応答信号受信部２１１から取得した通信情報と、基地局情報取得部２１５から取得した基地局情報とを組み合わせて、送信レートを計算してもよい。また、送信時刻計算部２１３は、応答信号受信部２１１から取得した通信情報と、基地局情報取得部２１５から取得した基地局情報とのうち、一方の情報を使用して、送信レートを計算してもよい。
【０１３３】
例えば、送信時刻計算部２１３は、基地局情報取得部２１５から取得した、基地局１０３と端末装置１２間の無線通信速度、または所定時間内の最大の無線通信速度を使用して、送信レートを算出してもよい。
【０１３４】
また、送信時刻計算部２１３は、第１の実施形態と同じ方法を用いて、無線通信速度を計算してもよい。その場合、送信時刻計算部２１３は、基地局情報取得部２１５から取得した基地局情報を使用して、無線通信速度を計算してもよい。
【０１３５】
例えば、基地局情報取得部２１５は、基地局１０３と端末装置１２間の通信電波数（キャリアアグリゲーション状況）を取得する。そして、送信時刻計算部２１３は、直近の所定時間のＴＣＰスループットと、端末装置１２が使用するコンポーネントキャリア数とに基づいて、無線通信速度を計算する。その後、送信時刻計算部２１３は、計算した送信レートを、新規データ送信部２１４に伝送する。
【０１３６】
新規データ送信部２１４は、新規データを送信する（ステップＳ２７）。新規データ送信部２１４は、第１の実施形態に係る新規データ送信部１１４と同様に動作する。すなわち、新規データ送信部２１４は、新規データを送信する場合、通信プロトコルが規定した送信量、送信時刻、または通信レートの制限を無視してデータを送信できる。
【０１３７】
［変形例１］
本実施形態に係る通信装置２１の変形例１として、応答信号受信部２１１は、基地局１０３と端末装置１２間の無線通信速度を、当該端末装置１２から受信してもよい。
【０１３８】
以上の通り、本実施形態に係る通信装置２１は、第１の実施形態に係る通信装置１１と比較して、より一層、通信性能の低下を防止することに貢献する。その理由は、第２の実施形態に係る通信装置２１は、基地局１０３から取得した基地局情報に基づいて、バッファ枯渇時刻を予測するからである。さらに、本実施形態に係る通信装置２１は、基地局１０３から基地局情報を直接取得して送信レートを算出することで、基地局１０３から取得した無線通信速度と、計算した送信レートとの差分を低減できる。そのため、本実施形態に係る通信装置２１は、過少または過大な送信レートを用いて、データを送信することを避けることができる。その結果、本実施形態に係る通信装置２１は、通信ネットワークの性能劣化を防止することに貢献する。さらに、本実施形態に係る通信装置２１は、基地局１０３の送信バッファの能力を超えたデータ量を送信することを回避することに貢献する。
【０１３９】
上述の実施形態の一部又は全部は、以下の形態のようにも記載され得るが、以下には限られない。
【０１４０】
（形態１）上記第１の視点に係る通信装置の通りである。
【０１４１】
（形態２）前記バッファ状況推定部は、前記滞留データが所定の閾値以下となると推定される時刻をバッファ枯渇時刻として算出し、前記送信時刻計算部は、自通信装置と前記端末装置間の送信遅延と、前記受信時刻と、前記バッファ枯渇時刻とに基づいて、前記追加送信時刻を算出する、好ましくは形態１に記載の通信装置。
【０１４２】
（形態３）前記バッファ状況推定部は、自通信装置が送信した送信データ量と、前記確認応答信号から取得される端末装置が受信した受信データ量とを更に用いて、前記滞留データ量を算出する、好ましくは形態１又は２に記載の通信装置。
【０１４３】
（形態４）前記バッファ状況推定部は、前記端末装置の受信ウィンドウサイズの上限値と、前記基地局の前記送信バッファの前記滞留データ量の上限値の少なくともいずれか１つに基づき、前記滞留データ量を算出する、好ましくは形態１乃至３のいずれか一に記載の通信装置。
【０１４４】
（形態５）前記バッファ状況推定部は、自通信装置が送信した送信データ量に基づいて、前記無線通信速度を算出する、好ましくは形態１乃至４のいずれか一に記載の通信装置。
【０１４５】
（形態６）前記基地局から前記無線通信速度を取得する、基地局情報取得部をさらに備える、好ましくは形態１乃至５のいずれか一に記載の通信装置。
【０１４６】
（形態７）前記送信時刻計算部は、直近の応答信号の受信時刻からの経過時間と、直近のデータ送信時刻からの経過時間とのうち、少なくともいずれかが、事前に設定した閾値に到達する時刻を、前記追加送信時刻として決定する、好ましくは形態１乃至６のいずれか一に記載の通信装置。
【０１４７】
（形態８）前記送信時刻計算部は、前記無線通信速度に基づいて、送信レートを算出する、好ましくは形態１乃至７のいずれか一に記載の通信装置。
【０１４８】
（形態９）上記第２の視点に係る通信システムの通りである。
【０１４９】
（形態１０）前記バッファ状況推定部は、前記滞留データが所定の閾値以下となると推定される時刻をバッファ枯渇時刻として算出し、前記送信時刻計算部は、自通信装置と前記端末装置間の送信遅延と、前記受信時刻と、前記バッファ枯渇時刻とに基づいて、前記追加送信時刻を算出する、好ましくは形態９に記載の通信システム。
【０１５０】
（形態１１）上記第３の視点に係る通信方法の通りである。
【０１５１】
（形態１２）前記滞留データが所定の閾値以下となると推定される時刻をバッファ枯渇時刻として算出するステップをさらに含み、前記追加送信時刻を計算するステップにおいて、自通信装置と前記端末装置間の送信遅延と、前記受信時刻と、前記バッファ枯渇時刻とに基づいて、前記追加送信時刻を算出する、好ましくは形態１１に記載の通信方法。
【０１５２】
（形態１３）上記第４の視点に係るプログラムの通りである。
【０１５３】
（形態１４）前記滞留データが所定の閾値以下となると推定される時刻をバッファ枯渇時刻として算出する処理をさらに前記コンピュータに実行させ、前記追加送信時刻を計算する処理において、自通信装置と前記端末装置間の送信遅延と、前記受信時刻と、前記バッファ枯渇時刻とに基づいて、前記追加送信時刻を算出する、好ましくは形態１３に記載のプログラム。
【０１５４】
上記の形態９、１１、１３に示す形態は、形態１に示す形態と同様に、形態３乃至８に示す形態に展開することが可能である。
【０１５５】
なお、上記の特許文献の開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素（各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択（部分的削除を含む）が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。本発明で、アルゴリズム、ソフトウェア、ないしフローチャート或いは自動化されたプロセスステップが示された場合、コンピュータが用いられることは自明であり、またコンピュータにはプロセッサ及びメモリないし記憶装置が付設されることも自明である。よってその明示を欠く場合にも、本願には、これらの要素が当然記載されているものと解される。
【符号の説明】
【０１５６】
１、１１、２１  通信装置
２、１１１、２１１  応答信号受信部
３、１１２、２１２  バッファ状況推定部
４、１１３、２１３  送信時刻計算部
５、１１４、２１４  新規データ送信部
１２、１２−１、１２−２  端末装置
８１、９１  ＣＰＵ
８２、９２  メモリ
８３、９３  入出力インターフェイス
８４  ＮＩＣ
９４  ＲＦ回路
９５  アンテナ
１０１、１０１−１〜１０１−ｎ  ネットワーク
１０３、１０３−１、１０３−２  基地局
１０４  インターネット
１０５  サーバ
１２１  端末装置通信部
２１５  基地局情報取得部
１０３１  基地局ＰＤＣＰ層
１０３２  基地局ＲＬＣ層
１０３３、１０３３ａ、１０３３ｂ  基地局ＭＡＣ層
１０３４、１０３４ａ、１０３４ｂ  基地局物理層
１１１０  通信装置アプリケーション層
１１１１  通信装置トランスポート層
１１１２  通信装置ネットワーク層
１１１３  通信装置ＭＡＣ層
１１１４  通信装置物理層
１２１０  端末トランスポート層
１２１１  端末ＰＤＣＰ層
１２１２  端末ＲＬＣ層
１２１３、１２１３ａ、１２１３ｂ  端末ＭＡＣ層
１２１４、１２１４ａ、１２１４ｂ  端末物理層
【図１】
0006973511.tif 000002
【図２】
0006973511.tif 000003
【図３】
0006973511.tif 000004
【図４】
0006973511.tif 000005
【図５】
0006973511.tif 000006
【図６】
0006973511.tif 000007
【図７】
0006973511.tif 000008
【図８】
0006973511.tif 000009
【図９】
0006973511.tif 000010
【図１０】
0006973511.tif 000011
【図１１】
0006973511.tif 000012