(57)【要約】【課題】輻輳回避後のスループットを向上すること。【解決手段】基地局において、送信バッファ２５１は、基地局から無線回線を介して通信端末へ送信されるＴＣＰパケットを蓄える。輻輳制御部２４５は、輻輳ウィンドウ値と、通信端末から報告された受信ウィンドウ値とのうち、最小のウィンドウ値に基づいて、送信バッファ２５１へのＴＣＰパケットの流入量を制御する。輻輳ウィンドウ値設定部２４３は、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値以上になったときに、輻輳ウィンドウ値を所定値まで減少させる。また、輻輳ウィンドウ値設定部２４３は、輻輳ウィンドウ値の減少後、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値未満になったときに、輻輳ウィンドウ値を、所定値より大きく、かつ、受信ウィンドウ値以上の値に設定する。【選択図】図３
2016208193.tif 000002
【特許請求の範囲】
【請求項１】
自局から無線回線を介して通信端末へ送信されるパケットを蓄える送信バッファと、前記通信端末へ送信したパケットに対する送達確認を受信するまでに送信可能なパケット数を示す輻輳ウィンドウ値に基づいて、前記送信バッファへ送るパケットの流入量を制御する基地局において、
前記輻輳ウィンドウ値と、前記通信端末から報告された受信ウィンドウ値とのうち、小さい値に基づいて、前記送信バッファへの前記パケットの流入量を制御する制御部と、
前記送信バッファにおける前記パケットの滞留量が閾値以上のときに、前記輻輳ウィンドウ値を所定値に、前記滞留量が前記閾値未満のときに、前記輻輳ウィンドウ値を、前記所定値より大きい前記受信ウィンドウ値以上の値に設定するウィンドウ値設定部と、
を具備する基地局。
【請求項２】
前記滞留量を監視し、前記滞留量が前記閾値以上を示すバッファ制御信号を出力する監視部と、
前記監視部から出力された前記バッファ制御信号を、自局と前記通信端末との間に確立され、前記無線回線毎の前記送信バッファに流入する複数のコネクションそれぞれの複数のバッファ制御信号に変換する変換部と、をさらに具備し、
前記ウィンドウ値設定部は、前記バッファ制御信号に基づいて、コネクション毎に、前記輻輳ウィンドウ値を前記所定値に設定する、
請求項１に記載の基地局。
【請求項３】
自局と通信端末との間の無線回線においてパケットの損失が発生したときに、前記通信端末から受信済みのＡＣＫ番号と、前記ＡＣＫ番号から、損失したパケットの直前のパケットのシーケンス番号までと同一のＳＡＣＫ番号と、前記損失したパケットの次のパケットのシーケンス番号と同一のＳＡＣＫ番号とを含むＡＣＫパケットを生成する生成部と、
前記生成部によって生成された前記ＡＣＫパケットに基づいて、前記損失したパケットの再送制御を行う再送制御部と、
を具備する基地局。
【請求項４】
自局から前記無線回線を介して前記通信端末へ送信されるパケットを蓄える送信バッファ、をさらに具備し、
前記生成部は、前記損失したパケットの前記次のパケットが前記送信バッファに蓄えられているときに、前記ＡＣＫパケットを生成する、
請求項３に記載の基地局。
【請求項５】
自局から無線回線を介して通信端末へ送信されるパケットを蓄える送信バッファを具備する基地局における通信制御方法であって、
前記送信バッファにおける前記パケットの滞留量が閾値以上になったときに、輻輳ウィンドウ値を所定値まで減少させ、前記輻輳ウィンドウ値の減少後、前記滞留量が前記閾値未満になったときに、前記輻輳ウィンドウ値を、前記所定値より大きく、かつ、前記通信端末から報告された受信ウィンドウ値以上の値に設定し、
前記輻輳ウィンドウ値と前記受信ウィンドウ値のうち、最小のウィンドウ値に基づいて、前記送信バッファへの前記パケットの流入量を制御する、
通信制御方法。
【請求項６】
自局から無線回線を介して通信端末へパケットを送信する基地局における通信制御方法であって、
前記無線回線においてパケットの損失が発生したときに、前記通信端末から受信済みのＡＣＫ番号と、前記ＡＣＫ番号から、損失したパケットの直前のパケットのシーケンス番号までと同一のＳＡＣＫ番号と、前記損失したパケットの次のパケットのシーケンス番号と同一のＳＡＣＫ番号とを含むＡＣＫパケットを生成し、
生成した前記ＡＣＫパケットに基づいて、前記損失したパケットの再送制御を行う、
通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、基地局及び通信制御方法に関する。
【背景技術】
【０００２】
無線通信システムにおいて、基地局と通信端末との間の無線回線に適したＴＣＰ（Transmission  Control  Protocol）制御を行うために、基地局にＴＣＰプロキシを搭載することが検討されている。ＴＣＰプロキシは、サーバ−通信端末間のＴＣＰ通信を基地局で一旦終端し、改めて基地局−通信端末間でＴＣＰコネクションを開設することにより、サーバ−基地局間と基地局−通信端末間とでＴＣＰ通信を中継する。
【０００３】
また、サーバに搭載されているアプリケーションをサーバから基地局へ移行して基地局に搭載することも検討されている。
【０００４】
ＴＣＰプロキシを搭載する基地局、及び、アプリケーションを搭載する基地局の何れもが、基地局−通信端末間に確立されたＴＣＰコネクションを終端する機能を備える。
【０００５】
また、ＴＣＰに従って行われる制御の一つに「輻輳制御」がある。輻輳制御では、送信ノードが、受信ノードまでのネットワークパス上においてＴＣＰパケットの輻輳を検知したときに、ＴＣＰパケットの送信レートを低下させる。この輻輳制御は、「輻輳ウィンドウ値」と、「受信ウィンドウ値」とを用いて行われる。ウィンドウ値は「ウィンドウサイズ」と呼ばれることもある。「輻輳ウィンドウ値」は、送信ノードが受信ノードからの送達確認応答（ACKnowledgement：ＡＣＫ）なしに送信可能なデータ量（つまり、パケット数）を示し、送信ノードが輻輳を発生させずに送信可能と推測したデータ量に相当する。輻輳ウィンドウ値は、送信ノードによって管理される。また、「受信ウィンドウ値」は、受信ノードが有する受信バッファの空き容量を示し、受信ノードから送信ノードへ報告される。受信ウィンドウ値は、受信ノードによって管理される。そして、送信ノードは、輻輳ウィンドウ値と受信ウィンドウ値のうち、最小の値に基づいて、送信データ量（つまり、送信パケット数）を調節する。つまり、送信ノードは、輻輳ウィンドウ値と受信ウィンドウ値のうち最小の値を「送信ウィンドウ値」に設定し、送信ウィンドウ値に応じたデータ量のＴＣＰパケットを受信ノードへ送信する。輻輳ウィンドウ値と受信ウィンドウ値とのうち最小の値を用いるのは、受信ノードの受信バッファが溢れることを防止するためである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−１０８７９０号公報
【特許文献２】特開２０１４−０５３８７３号公報
【特許文献３】特開２００６−１２９０２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
図１は、課題の説明に供する図である。ＴＣＰに従って行われる輻輳制御では、送信ノードは、受信ノードとの通信開始時ｔ０には、輻輳ウィンドウ値を通信開始時の初期値（例えば、２から３パケット）から指数関数的に増加させる、つまり、輻輳ウィンドウ値をスロースタートさせる。送信ノードが時刻ｔ０から時刻ｔ１まで輻輳ウィンドウ値を増加させた結果、時刻ｔ１でパケット損失が発生したものとする。時刻ｔ１で、送信ノードは、パケット損失の発生に基づいて輻輳が発生したと判断するため、輻輳ウィンドウ値をスロースタート閾値まで急激に減少させる。そして、輻輳ウィンドウ値の急激な減少により輻輳が回避されるため、送信ノードは、輻輳ウィンドウ値を、スロースタート閾値を初期値として時刻ｔ１から緩やかに増加させる。時刻ｔ１から輻輳ウィンドウ値が緩やかに増加するため、時刻ｔ１から時刻ｔ２までの間は輻輳が回避される。そして、送信ノードが時刻ｔ１から時刻ｔ２まで輻輳ウィンドウ値を緩やかに増加させた結果、時刻ｔ２で再びパケット損失が発生したものとする。時刻ｔ２で、送信ノードは、パケット損失の発生に基づいて輻輳が発生したと判断するため、輻輳ウィンドウ値を再びスロースタート閾値まで急激に減少させる。時刻ｔ２から時刻ｔ３までの動作は、時刻ｔ１から時刻ｔ２までのものと同様である。
【０００８】
しかし、輻輳回避後の輻輳ウィンドウ値が緩やかに増加すると、輻輳回避後の送信レートの増加も緩やかになるため、スループットが低下してしまう。
【０００９】
開示の技術は、上記に鑑みてなされたものであって、スループットを向上させることを目的とする。
【課題を解決するための手段】
【００１０】
開示の態様では、自局から無線回線を介して通信端末へ送信されるパケットを蓄える送信バッファと、前記通信端末へ送信したパケットに対する送達確認を受信するまでに送信可能なパケット数を示す輻輳ウィンドウ値に基づいて、前記送信バッファへ送るパケットの流入量を制御する基地局は、制御部と、ウィンドウ値設定部とを有する。前記制御部は、前記輻輳ウィンドウ値と、前記通信端末から報告された受信ウィンドウ値とのうち、小さい値に基づいて、前記送信バッファへの前記パケットの流入量を制御する。前記ウィンドウ値設定部は、前記送信バッファにおける前記パケットの滞留量が閾値以上のときに、前記輻輳ウィンドウ値を所定値に、前記滞留量が前記閾値未満のときに、前記輻輳ウィンドウ値を、前記所定値より大きい前記受信ウィンドウ値以上の値に設定する。
【発明の効果】
【００１１】
開示の態様によれば、スループットを向上できる。
【図面の簡単な説明】
【００１２】
【図１】図１は、課題の説明に供する図である。
【図２】図２は、実施例１の通信システムの構成の一例を示す図である。
【図３】図３は、実施例１の基地局における端末側ＴＣＰ部及びＬＴＥインタフェース部の構成の一例を示す図である。
【図４】図４は、実施例１の基地局の動作例の説明に供する図である。
【図５】図５は、実施例１の基地局におけるＬＴＥインタフェース部の処理例の説明に供するフローチャートである。
【図６】図６は、実施例１の基地局における端末側ＴＣＰ部の処理例の説明に供するフローチャートである。
【図７】図７は、実施例１の通信システムの処理シーケンスの一例を示す図である。
【図８】図８は、実施例２の基地局における端末側ＴＣＰ部及びＬＴＥインタフェース部の構成の一例を示す図である。
【図９】図９は、実施例２の基地局の動作例の説明に供する図である。
【図１０】図１０は、実施例２の特別ＡＣＫパケットのＴＣＰヘッダのフォーマットの一例を示す図である。
【図１１】図１１は、実施例２の基地局の処理例の説明に供するフローチャートである。
【図１２】図１２は、実施例２の通信システムの処理シーケンスの一例を示す図である。
【図１３】図１３は、実施例３の通信システムの構成の一例を示す図である。
【図１４】図１４は、実施例４の通信システムの構成の一例を示す図である。
【図１５】図１５は、実施例５の通信システムの構成の一例を示す図である。
【図１６】図１６は、基地局のハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示する基地局及び通信制御方法の実施例を図面に基づいて説明する。なお、この実施例により本願の開示する基地局及び通信制御方法が限定されるものではない。また、各実施例において同一の機能を有する構成部、及び、同一の処理を行うステップには同一の符号を付し、重複する説明を省略する。
【００１４】
［実施例１］
＜通信システムの構成例＞
図２は、実施例１の通信システムの構成の一例を示す図である。図２において、通信システム１は、サーバ１０と、基地局２０Ａと、通信端末３０Ａとを有する。サーバ１０と基地局２０Ａとは、有線回線によって接続される。有線回線は、例えば、Ethernet（登録商標）である。また、基地局２０Ａと、通信端末３０Ａとは、ＬＴＥ（Long  Term  Evolution）通信規格において規定されている無線ベアラによって接続される。ＬＴＥ通信規格の無線ベアラは、無線論理回線の一例である。
【００１５】
また、サーバ１０と通信端末３０Ａとの間には、基地局２０Ａを中継するＴＣＰコネクションが確立される。図２では、一例として、ＴＣＰコネクション＃１とＴＣＰコネクション＃２の２つのＴＣＰコネクションが確立されている。
【００１６】
つまり、サーバ１０と基地局２０Ａとは、有線回線を介して、ＴＣＰコネクションを用いてＴＣＰ通信を行う。また、基地局２０Ａと通信端末３０Ａとは、無線ベアラを介して、ＴＣＰコネクションを用いてＴＣＰ通信を行う。そして、基地局２０Ａは、サーバ１０−基地局２０Ａ間のＴＣＰ通信と、基地局２０Ａ−通信端末３０Ａ間のＴＣＰ通信とをプロキシ中継する。よって、基地局２０Ａを中継して、サーバ１０と通信端末３０Ａとの間の通信が実行される。１つの通信端末３０Ａに対しては１つまたは複数の無線ベアラが用意され、サーバ１０−通信端末３０Ａ間に確立された複数のＴＣＰコネクションは、それぞれ、何れかの無線ベアラに集約される。なお、図２においては、通信端末３０Ａに対し１つの無線ベアラが用意されている。
【００１７】
＜サーバの構成例＞
図２において、サーバ１０は、アプリケーション１１と、ＴＣＰ部１２と、有線インタフェース部１３とを有する。
【００１８】
アプリケーション１１は、アプリケーションデータ（以下では「アプリデータ」と呼ぶことがある）を生成し、生成したアプリデータをＴＣＰ部１２へ出力する。
【００１９】
ＴＣＰ部１２は、アプリケーション１１から入力されたアプリデータにＴＣＰヘッダを付加してＴＣＰパケットを形成し、形成したＴＣＰパケットを有線インタフェース部１３へ出力する。
【００２０】
有線インタフェース部１３は、ＴＣＰ部１２から入力されたＴＣＰパケットを基地局２０Ａへ送信する。
【００２１】
＜基地局の構成例＞
図２において、基地局２０Ａは、有線インタフェース部２１と、サーバ側ＴＣＰ部２２と、ＴＣＰプロキシ部２３と、端末側ＴＣＰ部２４と、ＬＴＥインタフェース部２５とを有する。
【００２２】
有線インタフェース部２１は、サーバ１０から送信されたＴＣＰパケットを受信し、受信したＴＣＰパケットをサーバ側ＴＣＰ部２２へ出力する。
【００２３】
サーバ側ＴＣＰ部２２は、有線インタフェース部２１から入力されたＴＣＰパケットからＴＣＰヘッダを削除してアプリデータを取得し、取得したアプリデータをＴＣＰプロキシ部２３へ出力する。
【００２４】
ＴＣＰプロキシ部２３は、サーバ側ＴＣＰ部２２と端末側ＴＣＰ部２４とを中継し、サーバ側ＴＣＰ部２２から入力されたアプリデータを端末側ＴＣＰ部２４へ出力する。
【００２５】
端末側ＴＣＰ部２４は、ＴＣＰプロキシ部２３から入力されたアプリデータにＴＣＰヘッダを付加してＴＣＰパケットを形成し、形成したＴＣＰパケットをＬＴＥインタフェース部２５へ出力する。また、端末側ＴＣＰ部２４は、ＬＴＥインタフェース部２５によって受信されるＡＣＫパケットをＬＴＥインタフェース部２５から入力される。
【００２６】
ＬＴＥインタフェース部２５は、ＬＴＥの通信方式に従った無線回線処理を行い、端末側ＴＣＰ部２４から入力されたＴＣＰパケットを通信端末３０Ａへ送信する。また、ＬＴＥインタフェース部２５から通信端末３０Ａへの送信レートは、無線ベアラ毎に（つまり、無線ベアラ単位で）制御される。また、ＬＴＥインタフェース部２５は、通信端末３０Ａから受信したＡＣＫパケットを端末側ＴＣＰ部２４へ出力する。
【００２７】
＜通信端末の構成例＞
図２において、通信端末３０Ａは、ＬＴＥインタフェース部３１と、ＴＣＰ部３２と、アプリケーション３３とを有する。
【００２８】
ＬＴＥインタフェース部３１は、ＬＴＥの通信方式に従った無線回線処理を行い、基地局２０Ａから送信されたＴＣＰパケットを受信し、受信したＴＣＰパケットをＴＣＰ部３２へ出力する。また、ＬＴＥインタフェース部３１は、ＴＣＰ部３２から入力されるＡＣＫパケットを基地局２０Ａへ送信する。
【００２９】
ＴＣＰ部３２は、ＬＴＥインタフェース部３１から入力されたＴＣＰパケットからＴＣＰヘッダを削除してアプリデータを取得し、取得したアプリデータをアプリケーション３３へ出力する。また、ＴＣＰ部３２は、ＬＴＥインタフェース部３１から入力されたＴＣＰパケットに対するＡＣＫパケットを生成し、生成したＡＣＫパケットをＬＴＥインタフェース部３１へ出力する。ＴＣＰ部３２は、受信したパケットを一時的に蓄える受信バッファをＴＣＰコネクション毎に有する。つまり、１つのＴＣＰコネクションに対して、１つの受信バッファが用いられる。ＴＣＰ部３２は、受信バッファの空き容量を監視し、受信ウィンドウ値を含むＡＣＫパケットを生成する。ＴＣＰ部３２が受信ウィンドウ値を含むＡＣＫパケットを生成することにより、受信ウィンドウ値が基地局２０Ａへ報告される。また、ＡＣＫパケットの生成はＴＣＰコネクション毎に行われるため、受信ウィンドウ値はＴＣＰコネクション毎に算出される。
【００３０】
アプリケーション３３は、ＴＣＰ部３２から入力されるアプリデータを用いて動作する。
【００３１】
＜基地局における端末側ＴＣＰ部及びＬＴＥインタフェース部の構成例＞
図３は、実施例１の基地局における端末側ＴＣＰ部及びＬＴＥインタフェース部の構成の一例を示す図である。図３における端末側ＴＣＰ部２４Ａは、図２における端末側ＴＣＰ部２４に相当し、図３におけるＬＴＥインタフェース部２５Ａは、図２におけるＬＴＥインタフェース部２５に相当する。
【００３２】
図３において、端末側ＴＣＰ部２４Ａは、ＴＣＰパケット形成部２４１と、ＢＰ（Back  Pressure）変換部２４２と、輻輳ウィンドウ値設定部２４３と、ＡＣＫ情報取得部２４４と、輻輳制御部２４５とを有する。また、ＬＴＥインタフェース部２５Ａは、送信バッファ２５１と、バッファ監視部２５２と、無線処理部２５３とを有する。
【００３３】
ＴＣＰパケット形成部２４１には、ＴＣＰプロキシ部２３（図２）からアプリデータが入力される。アプリデータの入力はＴＣＰコネクション毎に行われる。ＴＣＰパケット形成部２４１は、ＴＣＰプロキシ部２３から入力されたアプリデータにＴＣＰヘッダを付加してＴＣＰパケットを形成し、形成したＴＣＰパケットを輻輳制御部２４５へ出力する。ＴＣＰパケットの形成は、ＴＣＰコネクション毎に行われる。
【００３４】
ＢＰ変換部２４２は、バッファ監視部２５２から入力されるＢＰ信号（つまり、無線ベアラ毎のＢＰ信号）を、ＴＣＰコネクション毎の（つまり、ＴＣＰコネクション単位の）ＢＰ信号に変換する。ＢＰ変換部２４２は、変換後のＢＰ信号を輻輳ウィンドウ値設定部２４３へ出力する。ＢＰ信号（バックプレッシャ信号）とは、送信バッファ溢れになる状態（具体的には、送信バッファの滞留量が閾値を超える状態）を通知するための信号である。
【００３５】
輻輳ウィンドウ値設定部２４３は、ＢＰ変換部２４２からＢＰ信号（つまり、ＴＣＰコネクション毎のＢＰ信号）を入力されるときは、輻輳ウィンドウ値を０（ゼロ）に設定する。また、輻輳ウィンドウ値設定部２４３は、ＢＰ変換部２４２からＢＰ信号を入力されないときは、輻輳ウィンドウ値を受信ウィンドウ値以上の値に設定する。輻輳ウィンドウ値設定部２４３は、設定した輻輳ウィンドウ値を輻輳制御部２４５へ出力する。輻輳ウィンドウ値の設定は、ＴＣＰコネクション毎に（つまり、ＴＣＰコネクション単位で）行われる。
【００３６】
ＡＣＫ情報取得部２４４は、無線処理部２５３から入力されるＡＣＫパケットから受信ウィンドウ値を取得し、取得した受信ウィンドウ値を輻輳制御部２４５へ出力する。ＡＣＫパケットはＴＣＰコネクション毎に入力されるため、受信ウィンドウ値はＴＣＰコネクション毎に取得される。
【００３７】
輻輳制御部２４５は、ＡＣＫ情報取得部２４４から入力された受信ウィンドウ値を輻輳ウィンドウ値設定部２４３へ出力する。また、輻輳制御部２４５は、ＴＣＰパケット形成部２４１から入力されたＴＣＰパケットを送信バッファ２５１へ出力する。輻輳制御部２４５は、ＴＣＰパケットの出力にあたり、「送信ウィンドウ値」を制御することにより、ＴＣＰパケット形成部２４１から入力されるＴＣＰパケットの送信バッファ２５１への流入量を制御する。送信ウィンドウ値は、送信バッファ２５１へのＴＣＰパケットの流入可能量を示す。輻輳制御部２４５は、輻輳ウィンドウ値設定部２４３から入力された輻輳ウィンドウ値と、ＡＣＫ情報取得部２４４から入力された受信ウィンドウ値のうち、小さい値を送信ウィンドウ値に設定する。送信ウィンドウ値の設定は、ＴＣＰコネクション毎に行われる。
【００３８】
送信バッファ２５１は、輻輳制御部２４５から入力されるＴＣＰパケットを一時的に蓄える。送信バッファ２５１は無線ベアラ毎に用意され、１つの無線ベアラに対して、１つの送信バッファ２５１が用いられる。
【００３９】
バッファ監視部２５２は、送信バッファ２５１に蓄えられているＴＣＰパケットの量、つまり、送信バッファ２５１におけるＴＣＰパケットの滞留量を監視する。バッファ監視部２５２は、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値ＴＨ以上のときは、ＢＰ信号を生成し、生成したＢＰ信号をＢＰ変換部２４２へ出力する。一方で、バッファ監視部２５２は、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値ＴＨ未満のときは、ＢＰ信号を生成せず、ＢＰ信号をＢＰ変換部２４２へ出力しない。
【００４０】
ここで、図１において輻輳ウィンドウ値を緩やかに増加させるのは、送信ノードと受信ノードとの間のネットワークパス上に複数の中継ノードが存在する場合を想定するからである。すなわち、各中継ノードは送信パケットを溜める送信バッファを有し、送信バッファにパケットが溜まりきった後、送信バッファが溢れたときにパケット損失が発生する。また、何れかの中継ノードで送信バッファが溢れたときは、他の中継ノードでも送信バッファのパケット滞留量が大きい可能性が高い。よって、ネットワークパス上に複数の中継ノードが存在する場合は、実際には、ネットワークパスの帯域よりも高い送信レートにおいてパケット損失が発生する。一方で、送信ノードは、ネットワークパス上の各中継ノードの送信バッファのパケット滞留量を把握することは困難である。そこで、図１では、送信ノードは、中継ノードでのバッファ溢れによるパケット損失を頻発させないために、輻輳ウィンドウ値を緩やかに増加させる。
【００４１】
これに対し、基地局２０Ａは、中継ノードが存在しないので、中継ノードのハッファ滞留を考慮しなくても良い。そのために、基地局２０Ａは、自局内の送信バッファ２５１だけを考慮すれば良いので、通信端末からの応答を待つことなく、送信バッファ２５１におけるＴＣＰパケットの滞留量を把握し、把握した滞留量に応じて輻輳ウィンドウ値を制御することで、送信バッファ２５１でのバッファ溢れを防ぐことができる。
【００４２】
よって、輻輳ウィンドウ値設定部２４３では、送信バッファ２５１におけるＴＣＰパケットの滞留量がバッファ溢れになる前の閾値ＴＨを設定することで、その閾値以上のときに、輻輳ウィンドウ値が０（ゼロ）に設定される。また、輻輳ウィンドウ値設定部２４３では、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値ＴＨ未満のときに、輻輳ウィンドウ値が受信ウィンドウ値以上の値に設定される。これにより、基地局２０Ａは、送信バッファへのパケット流入量を、素早く受信側で受信可能なパケット数まで調整できるので、バッファ溢れによるパケットロスを防ぎ、輻輳回避後のスループットの低下が抑制できる。
【００４３】
無線処理部２５３は、ＬＴＥの通信方式に従った無線回線処理を行う。無線処理部２５３は、送信バッファ２５１からＴＣＰパケットを読み出し、読み出したＴＣＰパケットを含む無線フレームを形成し、形成した無線フレームに対して所定の無線送信処理を施し、無線送信処理後の無線フレームを通信端末３０Ａ（図２）へ送信する。つまり、無線処理部２５３は、送信バッファ２５１に蓄えられたＴＣＰパケットを、無線ベアラへ送出するときに、送信バッファ２５１から読み出す。送信バッファ２５１からのＴＣＰパケットの読み出しは、例えば、無線ベアラにおける輻輳状況に応じて行われる。すなわち、無線ベアラにおいて輻輳が発生していないと判断されるときは、送信バッファ２５１からＴＣＰパケットが順次読み出され、無線ベアラにおいて輻輳が発生していると判断されるときは、送信バッファ２５１からのＴＣＰパケットの読み出しは中止される。また、無線処理部２５３は、通信端末３０ＡからＡＣＫパケットを受信し、受信したＡＣＫパケットに所定の無線受信処理を施し、無線受信処理後のＡＣＫパケットをＡＣＫ情報取得部２４４へ出力する。ＡＣＫパケットは、ＴＣＰコネクション毎に受信される。また、ＴＣＰコネクション毎のＡＣＫパケットには、通信端末３０Ａから報告された受信ウィンドウ値が含まれる。
【００４４】
なお、ＢＰ変換部２４２は、端末側ＴＣＰ部２４Ａではなくて、ＬＴＥインタフェース部２５Ａに含まれても良い。
【００４５】
＜基地局の動作例＞
図４は、実施例１の基地局の動作例の説明に供する図である。
【００４６】
図４に示すように、輻輳ウィンドウ値設定部２４３は、ＢＰ変換部２４２からＢＰ信号が入力中でないとき、つまり、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値ＴＨ未満のときは、輻輳ウィンドウ値を受信ウィンドウ値以上の値に設定する。一方で、輻輳ウィンドウ値設定部２４３は、ＢＰ変換部２４２からＢＰ信号が入力中であるとき、つまり、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値ＴＨ以上のときは、輻輳ウィンドウ値を０（ゼロ）に設定する。つまり、輻輳ウィンドウ値設定部２４３は、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値ＴＨ以上になったときに、輻輳ウィンドウ値を０まで減少させる。また、輻輳ウィンドウ値設定部２４３は、輻輳ウィンドウ値の減少後、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値ＴＨ未満になったときに、輻輳ウィンドウ値を、０より大きく、かつ、受信ウィンドウ値以上の値に設定する。例えば、輻輳ウィンドウ値設定部２４３は、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値ＴＨ以上になった時刻ｔ１で、輻輳ウィンドウ値を０まで急激に減少させる。なお、０（ゼロ）は所定値の一例である。一方で、輻輳ウィンドウ値設定部２４３は、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値ＴＨ未満になった時刻ｔ２で、輻輳ウィンドウ値を時刻ｔ２時点での受信ウィンドウ値以上まで急激に増加させる。よって、輻輳制御部２４５における送信ウィンドウ値は、時刻ｔ１から時刻ｔ２までは０に設定され、時刻ｔ２以降は、受信ウィンドウ値と等しい値に設定される。
【００４７】
＜基地局におけるＬＴＥインタフェース部の処理例＞
図５は、実施例１の基地局におけるＬＴＥインタフェース部の処理例の説明に供するフローチャートである。図５に示すフローチャートは、例えば、基地局２０Ａの電源がオンされたときに開始される。
【００４８】
ステップＳ１０１では、バッファ監視部２５２が、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値ＴＨ以上であるか否かを判断する。
【００４９】
送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値ＴＨ以上であるときは（ステップＳ１０１：Ｙｅｓ）、ステップＳ１０２において、バッファ監視部２５２は、ＢＰ信号をＢＰ変換部２４２へ出力する。
【００５０】
一方で、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値ＴＨ未満であるときは（ステップＳ１０１：Ｎｏ）、ステップＳ１０３において、バッファ監視部２５２は、ＢＰ信号を出力しない。
【００５１】
ステップＳ１０２またはステップＳ１０３の処理後、処理はステップＳ１０１へ戻る。
【００５２】
＜基地局における端末側ＴＣＰ部の処理例＞
図６は、実施例１の基地局における端末側ＴＣＰ部の処理例の説明に供するフローチャートである。図６に示すフローチャートは、例えば、基地局２０Ａの電源がオンされたときに開始される。
【００５３】
ステップＳ２０１では、ＢＰ変換部２４２は、バッファ監視部２５２からの無線ベアラ単位のＢＰ信号をＴＣＰコネクション単位のＢＰ信号へ変換し、輻輳ウィンドウ値設定部２４３へ出力する。
【００５４】
次いで、ループの条件下で、ステップＳ２０１，Ｓ２１１，Ｓ２１２、または、ステップＳ２０１，Ｓ２０３，Ｓ２０４，Ｓ２０５の処理が繰り返し実行される。すなわち、確立済みのＴＣＰコネクション＃ｉ（ｉ＝１〜Ｎ，Ｎ＝確立済みＴＣＰコネクション数）について、ステップＳ２０１の判断結果がＹｅｓならば、ステップＳ２０１，Ｓ２１１，Ｓ２１２の処理が繰り返し実行され、ステップＳ２０１の判断結果がＮｏならば、ステップＳ２０１，Ｓ２０３，Ｓ２０４，Ｓ２０５の処理が繰り返し実行される。図２に示す例では、例えば、ｉ＝２である。
【００５５】
ステップＳ２０２では、輻輳ウィンドウ値設定部２４３は、ＢＰ変換部２４２からＢＰ信号が入力されているか否かを判断する。
【００５６】
ＢＰ変換部２４２からＢＰ信号が入力されているときは（ステップＳ２０２：Ｙｅｓ）、ステップＳ２１１で、輻輳ウィンドウ値設定部２４３は、ＴＣＰコネクション＃ｉの輻輳ウィンドウ値を０（ゼロ）に設定し、設定した輻輳ウィンドウ値を輻輳制御部２４５へ出力する。
【００５７】
次いで、ステップＳ２１２では、輻輳制御部２４５は、ＴＣＰコネクション＃ｉの送信ウィンドウ値を、ＴＣＰコネクション＃ｉの輻輳ウィンドウ値と、ＴＣＰコネクション＃ｉの受信ウィンドウ値とのうちの最小値に設定する。よって、ステップＳ２１２では、ＴＣＰコネクション＃ｉの送信ウィンドウ値は０（ゼロ）に設定される。送信ウィンドウ値が０に設定された結果、輻輳制御部２４５は、送信バッファ２５１への、ＴＣＰコネクション＃ｉのＴＣＰパケットの出力を停止する。つまり、送信ウィンドウ値が０に設定されると、送信バッファ２５１への、ＴＣＰコネクション＃ｉのＴＣＰパケットの流入が停止する。
【００５８】
一方で、ＢＰ変換部２４２から輻輳ウィンドウ値設定部へＢＰ信号が入力されないときは（ステップＳ２０２：Ｎｏ）、ステップＳ２０３で、ＡＣＫ情報取得部２４４は、ＴＣＰコネクション＃ｉのＡＣＫパケットからＴＣＰコネクション＃ｉの受信ウィンドウ値を取得し、取得した受信ウィンドウ値を輻輳制御部２４５へ出力する。取得された受信ウィンドウ値は、輻輳制御部２４５を介して、輻輳ウィンドウ値設定部２４３へも入力される。
【００５９】
次いで、ステップＳ２０４では、輻輳ウィンドウ値設定部２４３は、ＴＣＰコネクション＃ｉの輻輳ウィンドウ値を受信ウィンドウ値以上の値に設定し、設定した輻輳ウィンドウ値を輻輳制御部２４５へ出力する。
【００６０】
次いで、ステップＳ２０５では、輻輳制御部２４５は、ＴＣＰコネクション＃ｉの送信ウィンドウ値を、ＴＣＰコネクション＃ｉの輻輳ウィンドウ値と、ＴＣＰコネクション＃ｉの受信ウィンドウ値とのうちの最小値に設定する。
【００６１】
ループの繰り返し処理の終了後、処理はステップＳ２０１へ戻る。
【００６２】
＜通信システムの処理例＞
図７は、実施例１の通信システムの処理シーケンスの一例を示す図である。図７において、サーバ１０と基地局２０Ａとの間にはＴＣＰコネクションが確立済みであり、基地局２０Ａと通信端末３０Ａとの間にはＴＣＰコネクションが確立済みである。サーバ１０と基地局２０Ａとの間のＴＣＰコネクション、及び、基地局２０Ａと通信端末３０Ａとの間のＴＣＰコネクションは、サーバ１０と通信端末３０Ａとの間のＴＣＰ通信が開始されたことを契機にして確立される。
【００６３】
ステップＳ３０１では、サーバ１０は、アプリデータを含むＴＣＰパケットを送信し、サーバ側ＴＣＰ部２２は、有線インタフェース部２１を介してＴＣＰパケットを受信する。
【００６４】
次いで、ステップＳ３０２では、サーバ側ＴＣＰ部２２は、受信されたＴＣＰパケットに対するＡＣＫパケットを、有線インタフェース部２１を介してサーバ１０へ送信する。
【００６５】
次いで、ステップＳ３０３では、サーバ側ＴＣＰ部２２は、受信されたＴＣＰパケットからアプリデータを取得して、取得したアプリデータを、ＴＣＰプロキシ部２３を中継させて、端末側ＴＣＰ部２４Ａへ送信する。
【００６６】
次いで、ステップＳ３０４では、端末側ＴＣＰ部２４Ａは、アプリデータを含むＴＣＰパケットを形成し、形成したＴＣＰパケットを、ＬＴＥインタフェース部２５Ａへ送信する。ＬＴＥインタフェース部２５Ａは、受信したＴＣＰパケットを、ＬＴＥインタフェース部２５Ａが有する送信バッファ２５１に格納する。
【００６７】
次いで、ステップＳ３０５では、ＬＴＥインタフェース部２５Ａは、送信バッファ２５１からＴＣＰパケットを読み出し、読み出したＴＣＰパケットを含む無線フレームを形成し、形成した無線フレームに対して所定の無線送信処理を施す。ＬＴＥインタフェース部２５Ａは、無線送信処理後の無線フレームを、無線回線（つまり、無線ベアラ）を介して通信端末３０Ａへ送信する。通信端末３０ＡのＬＴＥインタフェース部３１は、ＬＴＥインタフェース部２５Ａから送信された無線フレームを受信する。
【００６８】
次いで、ステップＳ３０６では、ＬＴＥインタフェース部３１は、ＬＴＥインタフェース部３１までＴＣＰパケットが到達したことを示す「無線レイヤにおける送達確認応答（つまり、無線送達確認応答）」を基地局２０Ａへ送信する。
【００６９】
次いで、ステップＳ３０７では、ＬＴＥインタフェース部３１は、無線フレームから取得したＴＣＰパケットをＴＣＰ部３２へ送信し、ＴＣＰ部３２は、ＴＣＰパケットを受信する。ＴＣＰパケットには、アプリデータが含まれる。
【００７０】
次いで、ステップＳ３０８では、ＴＣＰ部３２は、ＴＣＰ部３２までＴＣＰパケットが到達したこと示す「ＴＣＰレイヤにおける送達確認応答パケット（つまり、ＡＣＫパケット）」をＬＴＥインタフェース部３１を介して基地局２０Ａへ送信する。ＡＣＫパケットには、通信端末３０Ａの受信ウィンドウ値が含まれる。ＡＣＫパケットは、基地局２０ＡのＬＴＥインタフェース部２５Ａを介して端末側ＴＣＰ部２４Ａによって受信される。端末側ＴＣＰ部２４Ａは、ＡＣＫパケットから受信ウィンドウ値を取得する。
【００７１】
次いで、ステップＳ３０９では、ＴＣＰ部３２は、ＴＣＰパケットから取得したアプリデータをアプリケーション３３へ送信する。
【００７２】
ステップＳ３０１〜Ｓ３０９の処理により、あるＴＣＰパケットについて、基地局２０Ａ−通信端末３０Ａ間での一連のパケット送受信が完了する。
【００７３】
次いで、ステップＳ３１０では、基地局２０Ａの端末側ＴＣＰ部２４Ａは、アプリデータを含むＴＣＰパケットをＬＴＥインタフェース部２５Ａへ送信する。ＬＴＥインタフェース部２５Ａは、受信したＴＣＰパケットを、ＬＴＥインタフェース部２５Ａが有する送信バッファ２５１に格納する。
【００７４】
次いで、ステップＳ３１１では、ＬＴＥインタフェース部２５Ａは、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値ＴＨ以上であること、つまり、無線回線（つまり、無線ベアラ）での輻輳の発生を検知する。
【００７５】
次いで、ステップＳ３１２では、無線回線での輻輳の発生を検知したＬＴＥインタフェース部２５Ａは、端末側ＴＣＰ部２４ＡへのＢＰ信号の送信を開始する。
【００７６】
ステップＳ３１３では、ＬＴＥインタフェース部２５Ａから端末側ＴＣＰ部２４ＡへのＢＰ信号の送信が継続される。ＢＰ信号の送信が継続されている間は、端末側ＴＣＰ部２４Ａは、輻輳ウィンドウ値を０（ゼロ）に設定するため、送信バッファ２５１へのＴＣＰパケットの送信を一時的に停止する。これにより、送信バッファ２５１へのＴＣＰパケットの流入が停止され、送信バッファにおけるパケット溢れによる輻輳を回避できる。
【００７７】
ステップＳ３１４，Ｓ３１５の処理は、ステップＳ３０５，Ｓ３０６の処理と同様であるため、説明を省略する。
【００７８】
次いで、ステップＳ３１６では、ＬＴＥインタフェース部２５Ａは、ステップＳ３１４で送信バッファ２５１からＴＣＰパケットを読み出したことにより、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値ＴＨ未満になったことを検知する。つまり、ＬＴＥインタフェース部２５Ａは、無線回線（つまり、無線ベアラ）での輻輳の解消を検知する。
【００７９】
次いで、ステップＳ３１７では、無線回線での輻輳の解消を検知したＬＴＥインタフェース部２５Ａは、端末側ＴＣＰ部２４ＡへのＢＰ信号の送信を停止する。ＢＰ信号の送信が停止されたため、端末側ＴＣＰ部２４Ａは、輻輳ウィンドウ値を所定値より大きい受信ウィンドウ値以上の値に設定する。輻輳ウィンドウ値が受信ウィンドウ値以上の値に設定された結果、端末側ＴＣＰ部２４Ａでは、送信ウィンドウ値が、受信ウィンドウ値と等しい値に設定される。よって、端末側ＴＣＰ部２４Ａは、受信ウィンドウ値に応じた流入量で、送信バッファ２５１へのＴＣＰパケットの送信を再開する。これにより、送信バッファ２５１へのＴＣＰパケットの流入が再開される。
【００８０】
次いで、ステップＳ３１８では、端末側ＴＣＰ部２４Ａは、アプリデータを含むＴＣＰパケットをＬＴＥインタフェース部２５Ａへ送信する。ＬＴＥインタフェース部２５Ａは、受信したＴＣＰパケットを、ＬＴＥインタフェース部２５Ａが有する送信バッファ２５１に格納する。
【００８１】
ステップＳ３１９〜Ｓ３２３の処理は、ステップＳ３０５〜Ｓ３０９の処理と同様であるため、説明を省略する。
【００８２】
以上のように、実施例１では、基地局２０Ａは、送信バッファ２５１と、輻輳制御部２４５と、輻輳ウィンドウ値設定部２４３とを有する。送信バッファ２５１は、基地局２０Ａから無線回線を介して通信端末３０Ａへ送信されるＴＣＰパケットを蓄える。輻輳制御部２４５は、輻輳ウィンドウ値と、通信端末３０Ａから報告された受信ウィンドウ値とのうち、最小のウィンドウ値に基づいて、送信バッファ２５１へのＴＣＰパケットの流入量を制御する。輻輳ウィンドウ値設定部２４３は、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値以上になったときに、輻輳ウィンドウ値を所定値まで減少させる。また、輻輳ウィンドウ値設定部２４３は、輻輳ウィンドウ値の減少後、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値未満になったときに、輻輳ウィンドウ値を、所定値より大きく、かつ、受信ウィンドウ値以上の値に設定する。所定値は、例えば０（ゼロ）である。
【００８３】
こうすることで、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値未満となった時点、つまり、無線回線での輻輳が解消した時点で、輻輳制御部２４５における最小のウィンドウ値を急激に増加させることができる。これにより、無線回線での輻輳が解消した時点で、送信バッファ２５１へのＴＣＰパケットの流入量を急激に増加させることができるため、送信レートを急激に増加させることができる。よって、実施例１によれば、スループットを向上できる。
【００８４】
また、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値以上になった時点、つまり、無線回線での輻輳が発生した時点で、輻輳ウィンドウ値を０（ゼロ）に減少させることができる。よって、無線回線での輻輳が発生した時点で、送信バッファ２５１へのＴＣＰパケットの流入を停止することができる。よって、無線回線での輻輳発生中は、送信バッファ２５１に新たなＴＣＰパケットが蓄積されることを防ぐことができる。よって、実施例１によれば、輻輳の解消に至るまでの時間を早めることができる。
【００８５】
また、基地局２０ＡへのＴＣＰの適用にあたっては、輻輳ウィンドウ値を所望の値に設定することは容易である。よって、実施例１によれば、スループットを向上できる機能を基地局２０Ａに容易に実装することができる。
【００８６】
また、基地局２０Ａは、バッファ監視部２５２と、ＢＰ変換部２４２とを有する。バッファ監視部２５２は、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値以上のときにＢＰ信号を出力する。ＢＰ変換部２４２は、バッファ監視部２５２から出力されたＢＰ信号を、基地局２０Ａと通信端末３０Ａとの間に確立された複数のＴＣＰコネクションそれぞれの複数のＢＰ信号に変換する。輻輳ウィンドウ値設定部２４３は、複数のＴＣＰコネクションそれぞれの複数のＢＰ信号に基づいて、ＴＣＰコネクション毎に、輻輳ウィンドウ値を設定する。
【００８７】
こうすることで、ＴＣＰコネクション毎に、送信バッファ２５１へのＴＣＰパケットの流入量を制御することができる。
【００８８】
なお、ＴＣＰパケットは、基地局から通信端末へ送信されるパケットの一例である。また、ＴＣＰコネクションは、サーバ−基地局間、または、基地局−通信端末間に確立されるコネクションの一例である。以下の実施例でも、同様である。
【００８９】
［実施例２］
実施例２では、基地局における端末側ＴＣＰ部及びＬＴＥインタフェース部の構成例が実施例１（図３）と相違する。
【００９０】
＜基地局における端末側ＴＣＰ部及びＬＴＥインタフェース部の構成例＞
図８は、実施例２の基地局における端末側ＴＣＰ部及びＬＴＥインタフェース部の構成の一例を示す図である。図８における端末側ＴＣＰ部２４Ｂは、図２における端末側ＴＣＰ部２４に相当し、図８におけるＬＴＥインタフェース部２５Ｂは、図２におけるＬＴＥインタフェース部２５に相当する。
【００９１】
図８において、端末側ＴＣＰ部２４Ｂは、ＴＣＰパケット形成部２４１と、再送制御部２４６と、ＡＣＫ情報取得部２４７とを有する。また、ＬＴＥインタフェース部２５Ｂは、送信バッファ２５１と、パケット損失検知部２５５と、ＡＣＫ情報記憶部２５６と、ＡＣＫパケット生成部２５７と、無線処理部２５８とを有する。
【００９２】
ＴＣＰパケット形成部２４１には、ＴＣＰプロキシ部２３（図２）からアプリデータが入力される。アプリデータの入力はＴＣＰコネクション毎に行われる。ＴＣＰパケット形成部２４１は、ＴＣＰプロキシ部２３から入力されたアプリデータにＴＣＰヘッダを付加してＴＣＰパケットを形成し、形成したＴＣＰパケットを再送制御部２４６へ出力する。ＴＣＰパケットの形成は、ＴＣＰコネクション毎に行われる。
【００９３】
再送制御部２４６は、同一シーケンス番号のＴＣＰパケットの初回送信時には、ＴＣＰパケット形成部２４１から入力されたＴＣＰパケットを送信バッファ２５１へ出力する。また、再送制御部２４６は、ＡＣＫパケット生成部２５７から入力されるＡＣＫパケットに基づいて、ＴＣＰパケットの再送制御を行う。再送制御部２４６は、同一シーケンス番号のＴＣＰパケットの再送時には、ＴＣＰパケット形成部２４１から入力されたＴＣＰパケットを無線処理部２５８へ出力する。
【００９４】
ＡＣＫ情報取得部２４７は、無線処理部２５８から入力されるＡＣＫパケットから、ＡＣＫ番号と受信ウィンドウ値とをＡＣＫ情報として取得し、取得したＡＣＫ番号と受信ウィンドウ値とを含むＡＣＫ情報をＡＣＫ情報記憶部２５６へ出力する。ＡＣＫ番号は、通信端末３０ＡのＴＣＰ部３２によって、ＴＣＰ部３２まで到達したＴＣＰパケットのシーケンス番号に基づいて設定される。また、ＡＣＫパケットはＴＣＰコネクション毎に入力されるため、ＡＣＫ番号はＴＣＰコネクション毎に取得される。
【００９５】
ＡＣＫ情報記憶部２５６は、ＡＣＫ情報取得部２４７から入力されたＡＣＫ番号と受信ウィンドウ値とを、ＡＣＫ情報として、ＴＣＰコネクション毎に記憶する。
【００９６】
送信バッファ２５１は、再送制御部２４６から入力されるＴＣＰパケットを一時的に蓄える。送信バッファ２５１は無線ベアラ毎に用意され、１つの無線ベアラに対して、１つの送信バッファ２５１が用いられる。
【００９７】
パケット損失検知部２５５は、無線回線（つまり、無線ベアラ）でのパケット損失を検知し、損失したパケットのシーケンス番号をＡＣＫパケット生成部２５７へ出力する。例えば、パケット損失検知部２５５は、無線処理部２５８によって行われる同一シーケンス番号のＴＣＰパケットの再送の回数に基づいて、無線回線でのパケット損失を検知する。
【００９８】
ＡＣＫパケット生成部２５７は、無線回線において損失したパケットの特定を端末側ＴＣＰ部２４Ｂの再送制御部２４６によって可能にするＡＣＫパケットを生成し、生成したＡＣＫパケットを再送制御部２４６へ出力する。以下では、ＡＣＫパケット生成部２５７が生成するＡＣＫパケットを「特別ＡＣＫパケット」と呼ぶことがある。
【００９９】
無線処理部２５８は、ＬＴＥの通信方式に従った無線回線処理を行う。また、無線処理部２５８は、送信バッファ２５１からＴＣＰパケットを読み出し、読み出したＴＣＰパケットを含む無線フレームを形成する。無線処理部２５８は、形成した無線フレームに対して所定の無線送信処理を施し、無線送信処理後の無線フレームを通信端末３０Ａ（図２）へ送信する。つまり、無線処理部２５８は、送信バッファ２５１に蓄えられたＴＣＰパケットを、無線ベアラへ送出するときに、送信バッファ２５１から読み出す。また、無線処理部２５８は、再送制御部２４６から入力されたＴＣＰパケットを含む無線フレームを形成し、形成した無線フレームに対して所定の無線送信処理を施し、無線送信処理後の無線フレームを通信端末３０Ａへ送信する。また、無線処理部２５８は、通信端末３０ＡからＡＣＫパケットを受信し、受信したＡＣＫパケットに所定の無線受信処理を施し、無線受信処理後のＡＣＫパケットをＡＣＫ情報取得部２４７へ出力する。ＡＣＫパケットは、ＴＣＰコネクション毎に受信される。また、ＴＣＰコネクション毎のＡＣＫパケットには、通信端末３０Ａから報告されたＡＣＫ番号が含まれる。また、無線処理部２５８は、無線回線上でのＴＣＰパケットの再送を行う。
【０１００】
＜基地局の動作例＞
端末側ＴＣＰ部２４Ｂ及びＬＴＥインタフェース部２５Ｂは、以下のようにしてＴＣＰパケットの再送を行う。ＴＣＰパケットの再送は、ＴＣＰコネクション毎に行われる。以下では、ＴＣＰパケットのシーケンス番号を「ＳＮ」と表記することがある。
【０１０１】
無線処理部２５８は、例えば無線回線品質の低下等により、送信した無線フレームが通信端末３０Ａに到達しなかったと判断したときは、無線フレームを再送する。無線処理部２５８は、例えば、無線レイヤにおける送達確認応答（つまり、無線送達確認応答）を通信端末３０Ａから受信しないときに、無線フレームが通信端末３０Ａに到達しなかったと判断する。また例えば、無線処理部２５８は、通信端末３０Ａから、通信端末３０Ａが無線フレームを受信できなかったことを示すＮＡＣＫ（Negative  ACKnowledgement）を受信したときに、無線フレームが通信端末３０Ａに到達しなかったと判断する。無線フレームが通信端末３０Ａに到達しなかったことの判断手法は、無線回線の標準仕様（例えば、ＬＴＥの標準仕様）に従う。また、無線処理部２５８は、通信端末３０Ａから受信する無線送達確認応答に基づいて、通信端末３０ＡのＬＴＥインタフェース部３１まで到達しているＴＣＰパケットのシーケンス番号を把握する。ここでは、通信端末３０ＡのＬＴＥインタフェース部３１まで到達しているＴＣＰパケットのシーケンス番号（以下では「到達パケット番号」と呼ぶことがある）を「３」と「４」とする。
【０１０２】
パケット損失検知部２５５は、例えば、無線処理部２５８によって行われた同一シーケンス番号のＴＣＰパケットから形成した無線フレームの再送の回数が所定の最大再送回数に達したときに、無線回線でのパケット損失が発生したと検知する。所定の最大再送回数は、例えば、無線回線の標準仕様（例えば、ＬＴＥの標準仕様）で定められる。パケット損失検知部２５５は、無線回線でのパケット損失の発生を検知したときは、無線回線において損失したＴＣＰパケットのシーケンス番号（以下では「損失パケット番号」と呼ぶことがある）と、到達パケット番号とを無線処理部２５８から取得する。パケット損失検知部２５５は、取得した損失パケット番号及び到達パケット番号をＡＣＫパケット生成部２５７へ出力する。ここでは、損失パケット番号を「５」とする。
【０１０３】
到達パケット番号＝３，４と損失パケット番号＝５とをパケット損失検知部２５５から入力されたＡＣＫパケット生成部２５７は、ＡＣＫ情報記憶部２５６に記憶されているＡＣＫ番号をＡＣＫ情報記憶部２５６から取得する。ここでは、ＡＣＫ情報記憶部２５６には、「３」までのＡＣＫ番号が記憶されているとする。ＡＣＫ番号＝３は、通信端末３０Ａから受信済みのＡＣＫ番号の一例である。ＡＣＫ番号により、通信端末３０ＡのＴＣＰ部３２まで到達しているＴＣＰパケットのシーケンス番号を把握することができる。ＴＣＰの仕様では、受信ノードは、受信したＴＣＰパケットのシーケンス番号の次のシーケンス番号をＡＣＫ番号に設定する。よって、ＡＣＫ番号＝３は、ＳＮ＝２までのＴＣＰパケットが通信端末３０ＡのＴＣＰ部３２まで到達済みであることを示す。また、ＡＣＫパケット生成部２５７は、ＡＣＫ情報記憶部２５６に記憶されている受信ウィンドウ値をＡＣＫ情報記憶部２５６から取得する。また、ＡＣＫパケット生成部２５７は、送信バッファ２５１の状態を監視し、送信バッファ２５１に蓄えられているＴＣＰパケットのシーケンス番号（以下では「蓄積パケット番号」と呼ぶことがある）を送信バッファ２５１から取得する。
【０１０４】
そして、ＡＣＫパケット生成部２５７は、到達パケット番号と、損失パケット番号と、ＡＣＫ番号と、蓄積パケット番号と、受信ウィンドウ値とに基づいて、特別ＡＣＫパケットを生成する。ＡＣＫパケット生成部２５７は、生成した特別ＡＣＫパケットを再送制御部２４６へ出力する。ここでは、取得された蓄積パケット番号は「６」であるとする。ＡＣＫパケット生成部２５７は、到達パケット番号＝３，４であり、かつ、蓄積パケット番号＝６であることから、以下のことを把握する。すなわち、ＡＣＫパケット生成部２５７は、ＳＮ＝３，４のＴＣＰパケットが、通信端末３０ＡのＬＴＥインタフェース部３１まで到達しており、かつ、送信バッファ２５１には蓄積されていないことを把握する。また、蓄積パケット番号＝６は、損失パケット番号＝５の次のシーケンス番号に相当する。つまり、蓄積パケット番号＝６を取得したＡＣＫパケット生成部２５７は、損失パケットの次のＴＣＰパケットが送信バッファ２５１に存在すると判断する。
【０１０５】
損失パケットの次のＴＣＰパケットが送信バッファ２５１に存在すると判断したＡＣＫパケット生成部２５７は、以下のようにして、特別ＡＣＫパケットを生成する。図９は、実施例２の基地局の動作例の説明に供する図である。図９には、特別ＡＣＫパケットのＴＣＰヘッダを示す。特別ＡＣＫパケットのＴＣＰヘッダは、ＡＣＫフィールドと、ＳＡＣＫ（Selective  ＡＣＫ：選択的ＡＣＫ）フィールドと、受信ウィンドウフィールドとを有する。
【０１０６】
ＡＣＫパケット生成部２５７は、ＡＣＫ情報記憶部２５６から取得したＡＣＫ番号をＡＣＫフィールドに設定する。よって、ＡＣＫパケット生成部２５７は、ＡＣＫ情報記憶部２５６から取得した「ＡＣＫ番号＝３」をＡＣＫフィールドに設定する（ステップＳ４０１）。
【０１０７】
また、ＡＣＫパケット生成部２５７は、ＡＣＫフィールドに設定したＡＣＫ番号（つまり、ＡＣＫ情報記憶部２５６から取得したＡＣＫ番号）から、「損失パケット番号−１」の番号までをＳＡＣＫ番号としてＳＡＣＫフィールドに設定する。ＡＣＫ番号＝３であり、損失パケット番号＝５であるため、ＡＣＫパケット生成部２５７は、ＳＡＣＫ番号＝３及びＳＡＣＫ番号＝４をＳＡＣＫフィールドに設定する（ステップＳ４０２）。よって、ＳＮ＝４は、無線回線での損失パケットであるＳＮ＝５のＴＣＰパケットの直前のＴＣＰパケットのシーケンス番号の一例である。また、ＳＮ＝３，４のＴＣＰパケットは、通信端末３０ＡのＬＴＥインタフェース部３１まで到達しているパケットの一例である。
【０１０８】
また、ＡＣＫパケット生成部２５７は、「損失パケット番号＋１」の番号をＳＡＣＫ番号としてＳＡＣＫフィールドに設定する。損失パケット番号＝５であるため、ＡＣＫパケット生成部２５７は、ＳＡＣＫ番号＝６をＳＡＣＫフィールドに設定する（ステップＳ４０３）。よって、ＳＮ＝６は、無線回線での損失パケットであるＳＮ＝５のＴＣＰパケットの次のＴＣＰパケットのシーケンス番号の一例である。
【０１０９】
また、ＡＣＫパケット生成部２５７は、ＡＣＫ情報記憶部２５６から取得した受信ウィンドウ値を受信ウィンドウフィールドに設定する（ステップＳ４０４）。
【０１１０】
ＳＡＣＫ番号は、どのシーケンス番号のＴＣＰパケットが通信端末３０ＡのＴＣＰ部３２まで到達したかを一意に示すＡＣＫであり、選択的に使用可能なものである。ここで通常のＡＣＫパケットは、ＴＣＰパケットの受信側である通信端末３０Ａによって生成されるものである。これに対し、特別ＡＣＫパケットは、通信端末３０Ａによって生成されるものではなく、ＴＣＰパケットの送信側である基地局２０Ａによって生成されるものである。つまり、特別ＡＣＫパケットに設定されたＳＡＣＫ番号＝３，４，６は、ＳＮ＝３，４，６のＴＣＰパケットが通信端末３０ＡのＴＣＰ部３２まで到達していることを擬似的に示す。
【０１１１】
ここで、特別ＡＣＫパケットのＴＣＰヘッダのフォーマットの一例を図１０に示す。図１０は、実施例２の特別ＡＣＫパケットのＴＣＰヘッダのフォーマットの一例を示す図である。
【０１１２】
図１０に示すように、特別ＡＣＫパケットのＴＣＰヘッダは、Source  Port，Destination  Port，Sequence  Number，Acknowledgement  Number，Data  Offset，Reserved，Flags，Window，Checksum，Urgent  Pointer，Optionsの各フィールドを有する。つまり、特別ＡＣＫパケットのＴＣＰヘッダの構成は、ＴＣＰの仕様における通常のＡＣＫパケットのＴＣＰヘッダの構成と同一である。
【０１１３】
また、特別ＡＣＫパケットのＩＰ（Internet Protocol）ヘッダの構成も、ＴＣＰの仕様における通常のＡＣＫパケットのＩＰヘッダの構成と同一である。すなわち、特別ＡＣＫパケットのＩＰヘッダは、プロトコル番号、送信元ＩＰアドレス、宛先ＩＰアドレスの各フィールドを有する。
【０１１４】
図１０において、Source  Portには、送信元ポート番号が設定され、Destination  Portには、宛先ポート番号が設定され、Sequence  Numberには、ＴＣＰパケットのシーケンス番号が設定される。また、Acknowledgement  Numberには、Flags内のACKフラグが「１（オン）」のとき、到達済みＴＣＰパケットの次のＴＣＰパケットのシーケンス番号（つまり、ＡＣＫ番号）が設定される。また、Data  Offsetには、ＴＣＰヘッダのヘッダ長が設定され、Reservedは、将来の利用のために予約されたフィールドであり、Flags内の各フラグは、制御内容を示すフラグである。また、Windowには、受信ウィンドウ値が設定され、Checksumは、誤り制御用のフィールドである。また、Urgent  Pointerは、Flags内のURGフラグが「１（オン）」のとき、緊急処理対象のデータの位置を示し、Optionsは、ユーザが任意に使用可能なフィールドであり、各種のＴＣＰオプションが設定されるフィールドである。図９に示すＡＣＫフィールドは、図１０のAcknowledgement  Numberフィールドに相当し、図９に示す受信ウィンドウフィールドは、図１０のWindowフィールドに相当する。また、図９に示すＳＡＣＫフィールドは、図１０のOptionsフィールドに含まれる。
【０１１５】
ＩＰヘッダに設定されたプロトコル番号、送信元ＩＰアドレス、宛先ＩＰアドレス、及び、ＴＣＰヘッダに設定された送信元ポート番号、宛先ポート番号の５tupleによって、ＴＣＰコネクションは特定される。
【０１１６】
図９に戻り、ＡＣＫパケット生成部２５７は、ＡＣＫ番号＝３、及び、ＳＡＣＫ番号＝３，４，６を含む特別ＡＣＫパケットを再送制御部２４６へ出力する。特別ＡＣＫパケットのＴＣＰヘッダの構成は、ＴＣＰの仕様における通常のＡＣＫパケットのＴＣＰヘッダの構成と同一であるため、再送制御部２４６は、特別ＡＣＫパケットも通常のＡＣＫパケットとみなして処理する。つまり、再送制御部２４６は、ＡＣＫ番号＝３と、ＳＡＣＫ番号＝３，４，６とから、損失パケットは、ＳＮ＝５のＴＣＰパケットであると特定する。よって、再送制御部２４６は、ＳＮ＝５のＴＣＰパケットを再送する。
【０１１７】
ここで、ＡＣＫパケット生成部２５７が上記のようなＳＡＣＫ番号を特別ＡＣＫパケットに設定するのは以下の理由による。
【０１１８】
ＳＮ＝５のＴＣＰパケットが無線回線において損失したことを再送制御部２４６へ早急に知らせるためには、ＳＮ＝６のＴＣＰパケットの送信前であっても、ＳＡＣＫ番号＝６を再送制御部２４６へ通知してしまうのが良い。ＳＡＣＫ番号は、ＳＮ＝６のＴＣＰパケットが通信端末３０ＡのＴＣＰ部３２まで到達したことを示すからである。ＳＡＣＫ番号＝３，４，６を再送制御部２４６へ通知することにより、損失パケットがＳＮ＝５のＴＣＰパケットであることを再送制御部２４６へ擬似的に通知する。
【０１１９】
一方で、ＳＡＣＫ番号＝３，４，６を含む特別ＡＣＫパケットの再送制御部２４６への入力時点では、ＳＮ＝６のＴＣＰパケットは、未だ、通信端末３０Ａまで到達していない。よって、ＳＡＣＫ番号＝６によってＴＣＰ部３２まで到達したと擬似的に示されたＳＮ＝６のＴＣＰパケットは、無線回線で損失して、実際には、通信端末３０Ａまで到達しない可能性がある。しかし、ＴＣＰの仕様では、受信ノードは、ＳＡＣＫにより送信ノードに対して送達確認応答を行ったＴＣＰパケットを、送信ノードへのＳＡＣＫ通知後に廃棄することが許容されている。このため、送信ノードは、ＳＡＣＫにより送達確認応答がなされたＴＣＰパケットがＳＡＣＫ通知後に廃棄されることを考慮して、通常、ＳＡＣＫにより送達確認応答がなされたＴＣＰパケットでもＴＣＰレイヤの送信バッファに蓄えておく。よって、基地局２０Ａの端末側ＴＣＰ部２４Ｂが有する送信バッファ（図示せず）には、ＳＮ＝６のＴＣＰパケットが蓄えられている。よって、ＳＡＣＫ番号＝６によってＴＣＰ部３２まで到達したと擬似的に示されたＳＮ＝６のＴＣＰパケットが無線回線で損失しても、端末側ＴＣＰ部２４Ｂでは、ＳＮ＝６のＴＣＰパケットを再送可能である。
【０１２０】
すなわち、再送制御部２４６は、ＳＡＣＫを受信したときは、そのＳＡＣＫに基づいてＴＣＰパケットを再送し、別途、ＡＣＫによる送達確認応答がいつまでも得られないＴＣＰパケットも再送する。通常、ＡＣＫによる送達確認応答が得られるまでの上限時間を規定するタイマーの設定時間は、ＳＡＣＫによる送達確認応答が得られるまでの時間より長いケースが多い。また、端末側ＴＣＰ部２４Ｂが有する送信バッファ（図示せず）には、ＡＣＫによる送達確認応答が得られるまでは、たとえ、ＳＡＣＫによる送達確認応答が得られても、ＳＡＣＫ番号をシーケンス番号とするＴＣＰパケットが蓄えられている。よって、通信端末３０Ａへ未だ到達していないＳＮ＝６のＴＣＰパケットが損失した場合でも、再送制御部２４６は、ＳＮ＝６のＴＣＰパケットに関するＡＣＫによる送達確認応答が所定時間得られないことをもって、ＳＮ＝６のＴＣＰパケットを再送する。よって、ＳＮ＝６のＴＣＰパケットが損失した場合でも、再送により、最終的には、ＳＮ＝６のＴＣＰパケットは通信端末３０Ａに到達する。よって、ＳＡＣＫ番号＝３，４，６を含む特別ＡＣＫパケットを、ＳＮ＝６のＴＣＰパケットが通信端末３０Ａに到達する以前に再送制御部２４６へ通知することは、問題ない。
【０１２１】
また、通信端末３０ＡのＬＴＥインタフェース部３１までは到達しているが、通信端末３０ＡのＴＣＰ部３２では未だ受信が確認されていないＳＮ＝３，４のＴＣＰパケットは、ＴＣＰ部３２での受信確認がなされる前に失われる可能性がある。例えば、ＬＴＥインタフェース部３１またはＴＣＰ部３２に異常が生じた場合等に、ＳＮ＝３，４のＴＣＰパケットが失われる可能性がある。よって、上記のようなＳＡＣＫ番号＝３，４の設定に代えて、ＡＣＫ番号＝５を設定したのでは、ＴＣＰ部３２まで到達済みと認識されるＴＣＰパケットが、基地局２０Ａと通信端末３０Ａとの間で異なり、両者間で認識の不整合が生じる可能性がある。なぜなら、ＡＣＫ番号＝５はＳＮ＝４までのＴＣＰパケットが通信端末３０ＡのＴＣＰ部３２まで到達済みであることが、ＴＣＢ部３２によって確認されていることを意味するからである。一方で、上記のように、ＴＣＰの仕様では、受信ノードは、ＳＡＣＫにより送信ノードに対して送達確認応答を行ったＴＣＰパケットを、送信ノードへのＳＡＣＫ通知後に廃棄することが許容されている。このため、送信ノードは、ＳＡＣＫにより送達確認応答がなされたＴＣＰパケットがＳＡＣＫ通知後に廃棄されることを考慮して、通常、ＳＡＣＫにより送達確認応答がなされたＴＣＰパケットでもＴＣＰレイヤの送信バッファに蓄えておく。よって、ＳＮ＝３，４のＴＣＰパケットがＴＣＰ部３２での受信確認がなされる前に失われても、再送により対処可能である。そこで、ＡＣＫパケット生成部２５７は、到達パケット番号＝３，４を取得した場合に、ＡＣＫ番号＝５を設定するのでなく、ＳＡＣＫ番号＝３，４を設定する。
【０１２２】
ここで、ＴＣＰの仕様において、受信ノードが、ＳＡＣＫにより送信ノードに対して送達確認応答を行ったＴＣＰパケットを、送信ノードへのＳＡＣＫ通知後に廃棄することが許容されているのは、例えば、以下の理由による。
【０１２３】
ＳＡＣＫは、ＡＣＫだけでは無駄なＴＣＰパケットが再送されてしまう可能性を考慮して、ＴＣＰの仕様に追加的に導入された送達確認応答である。例えば、受信ノードが、ＳＮ＝１００，１０１，１０３のＴＣＰパケットを受信したが、ＳＮ＝１０２のＴＣＰパケットを受信しない場合を想定する。この場合、ＳＮ＝１０１までのＴＣＰパケットが受信ノードに到達済みであることを示すＡＣＫ番号＝１０２だけでは、送信ノードは、受信ノードがＳＮ＝１０３のＴＣＰパケットを受信したか否かを判断することが困難である。よって、ＡＣＫ番号＝１０２だけでは、送信ノードがＳＮ＝１０２，１０３のＴＣＰパケットを再送してしまう可能性がある。しかし、ＳＮ＝１０３のＴＣＰパケットは受信ノードによって受信済みであるため、ＳＮ＝１０３のＴＣＰパケットの再送は無駄である。
【０１２４】
これに対し、ＳＡＣＫ番号＝１０３があれば、送信ノードは、ＳＮ＝１０３のＴＣＰパケットを受信ノードが受信済みであることを把握できるため、ＳＮ＝１０２のＴＣＰパケットだけの再送で済む。一方で、受信ノードのＴＣＰ部は、シーケンス番号順にＴＣＰパケットのデータをアプリケーションへ渡すことが好ましい。このため、受信ノードのＴＣＰ部は、ＳＮ＝１００，１０１のＴＣＰパケットのデータをアプリケーションに渡した後、ＳＮ＝１０２のＴＣＰパケットを受信するまで、ＳＮ＝１０３のＴＣＰパケットを受信バッファに蓄えておく。ここで、受信ノードのＴＣＰ部が、ＳＮ＝１０２のＴＣＰパケットの受信前に、ＳＮ＝１０３以降のＴＣＰパケットを大量に受信する場合、受信バッファが溢れてしまう可能性がある。そこで、ＴＣＰの仕様では、受信ノードは、受信バッファのバッファ溢れを防ぐために、ＳＡＣＫにより送信ノードに対して送達確認応答を行ったＴＣＰパケット（ここでは、ＳＮ＝１０３のＴＣＰパケット）を、ＳＡＣＫ通知後に廃棄することが許容されている。
【０１２５】
＜基地局の処理例＞
図１１は、実施例２の基地局の処理例の説明に供するフローチャートである。図１１に示すフローチャートは、例えば、無線回線（つまり、無線ベアラ）でのパケット損失が検知されたときに開始される。
【０１２６】
ステップＳ５０１では、ＡＣＫパケット生成部２５７は、送信バッファ２５１の情報を取得する。ＡＣＫパケット生成部２５７は、送信バッファ２５１の情報として、到達パケット番号に該当するＴＣＰパケットが送信バッファ２５１に蓄積されていないことを送信バッファ２５１から取得する。また、ＡＣＫパケット生成部２５７は、送信バッファ２５１の情報として、蓄積パケット番号を送信バッファ２５１から取得する。例えば、上記の動作例では、到達パケット番号＝３，４であり、蓄積パケット番号＝６である。
【０１２７】
次いで、ステップＳ５０２では、ＡＣＫパケット生成部２５７は、ＡＣＫ情報記憶部２５６に記憶されているＡＣＫ情報を取得する。ＡＣＫパケット生成部２５７は、ＡＣＫ情報として、ＡＣＫ番号及び受信ウィンドウ値をＡＣＫ情報記憶部２５６から取得する。例えば、上記の動作例では、ＡＣＫ番号＝３である。
【０１２８】
次いで、ステップＳ５０３では、ＡＣＫパケット生成部２５７は、損失パケットを特定する。ＡＣＫパケット生成部２５７は、パケット損失検知部２５５から入力される損失パケット番号に該当するＴＣＰパケットを損失パケットとして特定する。例えば、上記の動作例では、損失パケット番号＝５である。
【０１２９】
なお、ステップＳ５０１〜Ｓ５０３の処理順序は限定されない。
【０１３０】
次いで、ステップＳ５０４では、ＡＣＫパケット生成部２５７は、損失パケットの次のＴＣＰパケットが送信バッファ２５１にあるか否かを判断する。つまり、ＡＣＫパケット生成部２５７は、ステップＳ５０１で取得した蓄積パケット番号の中に、損失パケット番号の次のシーケンス番号に一致する蓄積パケット番号があるか否かを判断する。例えば、上記の動作例では、損失パケット番号＝５であり、蓄積パケット番号＝６が存在するため、ＡＣＫパケット生成部２５７は、損失パケットの次のＴＣＰパケットが送信バッファ２５１にあると判断する。
【０１３１】
ここで、再送制御部２４６から送信バッファ２５１へ未だ出力されていないＴＣＰパケットに対するＡＣＫパケットが再送制御部２４６へ入力されると、再送制御部２４６での認識状況に不整合が生じてしまう。すなわち、再送制御部２４６では、再送制御部２４６から未送信のＴＣＰパケットに対するＡＣＫパケットが受信されてしまうと、ＴＣＰパケットとＡＣＫパケットとの整合がとれなくなってしまう。ＴＣＰパケットとＡＣＫパケットとの整合がとれなくなってしまうと、再送制御部２４６での再送制御が混乱してしまう。そこで、損失パケットの次のＴＣＰパケットが送信バッファ２５１にないときは（ステップＳ５０４：Ｎｏ）、ＡＣＫパケット生成部２５７は、特別ＡＣＫパケットを生成することなく、処理は終了する。これにより、再送制御部２４６での再送制御の混乱を防止できる。
【０１３２】
一方で、損失パケットの次のＴＣＰパケットが送信バッファ２５１にあるときは（ステップＳ５０４：Ｙｅｓ）、ＡＣＫパケット生成部２５７は、ステップＳ５０５〜Ｓ５０８の処理を実行することにより、特別ＡＣＫパケットを生成する。
【０１３３】
すなわち、ステップＳ５０５では、ＡＣＫパケット生成部２５７は、ステップＳ５０２で取得したＡＣＫ番号を、特別ＡＣＫパケットのＴＣＰヘッダにおけるＡＣＫフィールドに設定する。つまり、ステップＳ５０５の処理は、図９のステップＳ４０１に相当する。
【０１３４】
次いで、ステップＳ５０６では、ＡＣＫパケット生成部２５７は、ＡＣＫ番号から、「損失パケット番号−１（つまり、損失パケット番号の直前のシーケンス番号）」までを、特別ＡＣＫパケットのＴＣＰヘッダにおけるＳＡＣＫフィールドに設定する。つまり、ステップＳ５０６の処理は、図９のステップＳ４０２に相当する。
【０１３５】
次いで、ステップＳ５０７では、ＡＣＫパケット生成部２５７は、「損失パケット番号＋１（つまり、損失パケット番号の次のシーケンス番号）」を特別ＡＣＫパケットのＴＣＰヘッダにおけるＳＡＣＫフィールドに設定する。つまり、ステップＳ５０７の処理は、図９のステップＳ４０３に相当する。
【０１３６】
次いで、ステップＳ５０８では、ＡＣＫパケット生成部２５７は、受信ウィンドウ値を特別ＡＣＫパケットのＴＣＰヘッダにおける受信ウィンドウフィールドに設定する。つまり、ステップＳ５０８の処理は、図９のステップＳ４０４に相当する。
【０１３７】
次いで、ステップＳ５０９では、ＡＣＫパケット生成部２５７は、ステップＳ５０５〜Ｓ５０８の処理によって生成した特別ＡＣＫパケットを再送制御部２４６へ送信する。
【０１３８】
ステップＳ５０９の処理後、処理は終了する。
【０１３９】
＜通信システムの処理例＞
図１２は、実施例２の通信システムの処理シーケンスの一例を示す図である。図１２において、サーバ１０と基地局２０Ａとの間にはＴＣＰコネクションが確立済みであり、基地局２０Ａと通信端末３０Ａとの間にはＴＣＰコネクションが確立済みである。サーバ１０と基地局２０Ａとの間のＴＣＰコネクション、及び、基地局２０Ａと通信端末３０Ａとの間のＴＣＰコネクションは、サーバ１０と通信端末３０Ａとの間のＴＣＰ通信が開始されたことを契機にして確立される。
【０１４０】
図１２におけるステップＳ３０１〜Ｓ３０９の処理は、実施例１（図７）と同様であるため、説明を省略する。
【０１４１】
ステップＳ６０１では、端末側ＴＣＰ部２４Ｂは、ＡＣＫ番号と受信ウィンドウ値とを含むＡＣＫ情報をＬＴＥインタフェース部２５Ｂへ送信する。
【０１４２】
ステップＳ６０２では、ＬＴＥインタフェース部２５Ｂは、端末側ＴＣＰ部２４Ｂから受信したＡＣＫ情報を記憶する。
【０１４３】
ステップＳ６０３では、端末側ＴＣＰ部２４Ｂは、アプリデータを含むＴＣＰパケットをＬＴＥインタフェース部２５Ｂへ送信する。ＬＴＥインタフェース部２５Ｂは、受信したＴＣＰパケットを、ＬＴＥインタフェース部２５Ｂが有する送信バッファ２５１に格納する。
【０１４４】
ステップＳ６０４では、ＬＴＥインタフェース部２５Ｂは、送信バッファ２５１からＴＣＰパケットを読み出し、読み出したＴＣＰパケットを含む無線フレームを形成し、形成した無線フレームに対して所定の無線送信処理を施す。ＬＴＥインタフェース部２５Ｂは、無線送信処理後の無線フレームを、無線回線（つまり、無線ベアラ）を介して通信端末３０Ａへ送信する。ここで、無線回線品質の低下等により、無線フレームが通信端末３０Ａまで到達しなかったために、ＬＴＥインタフェース部２５Ｂは、無線フレームを再送する。
【０１４５】
次いで、ステップＳ６０５では、ＬＴＥインタフェース部２５Ｂは、無線フレームの再送回数が所定の最大再送回数に達したことで、無線回線でのパケット損失を検知する。
【０１４６】
次いで、ステップＳ６０６では、ステップＳ６０５でパケット損失を検知したＬＴＥインタフェース部２５Ｂは、特別ＡＣＫパケットを生成し、生成した特別ＡＣＫパケットを端末側ＴＣＰ部２４Ｂへ送信する。
【０１４７】
次いで、ステップＳ６０７では、端末側ＴＣＰ部２４Ｂは、特別ＡＣＫパケットの内容に基づいて、ステップＳ６０４で損失したＴＣＰパケットの再送制御を行う。つまり、特別ＡＣＫパケットを受信した端末側ＴＣＰ部２４Ｂは、通信端末３０Ａからの送達確認応答を待たずに、及び、再送タイマーのタイムアウトを待たずに、無線回線で損失したＴＣＰパケットの再送を決定する。
【０１４８】
次いで、ステップＳ６０８では、端末側ＴＣＰ部２４Ｂは、ステップＳ６０７での再送制御に従って、アプリデータを含むＴＣＰパケットをＬＴＥインタフェース部２５Ｂへ再送する。つまり、端末側ＴＣＰ部２４Ｂは、ステップＳ６０４で失われたＴＣＰパケットと同一のＴＣＰパケットをＬＴＥインタフェース部２５Ｂへ送信する。
【０１４９】
ステップＳ３１９〜Ｓ３２３の処理は、実施例１（図７）と同様であるため、説明を省略する。
【０１５０】
以上のように、実施例２では、基地局２０Ａは、ＡＣＫパケット生成部２５７と、再送制御部２４６とを有する。ＡＣＫパケット生成部２５７は、基地局２０Ａと通信端末３０Ａとの間の無線回線においてＴＣＰパケットの損失が発生したときに、特別ＡＣＫパケットを生成する。ＡＣＫパケット生成部２５７が生成する特別ＡＣＫパケットは、通信端末３０Ａから受信済みのＡＣＫ番号と、そのＡＣＫ番号から、無線回線で損失したＴＣＰパケットの直前のＴＣＰパケットのシーケンス番号までと同一のＳＡＣＫ番号とを含む。また、ＡＣＫパケット生成部２５７が生成する特別ＡＣＫパケットは、無線回線で損失したＴＣＰパケットの次のＴＣＰパケットのシーケンス番号と同一のＳＡＣＫ番号を含む。再送制御部２４６は、ＡＣＫパケット生成部２５７によって生成された特別ＡＣＫパケットに基づいて、損失したＴＣＰパケットの再送制御を行う。
【０１５１】
こうすることで、再送制御部２４６は、ＡＣＫパケット生成部２５７によって生成された特別ＡＣＫパケットに基づいて、損失パケットを特定することができる。このため、再送制御部２４６は、通信端末３０Ａからの送達確認応答を待たずに、損失パケットを特定し、特定した損失パケットを再送することができる。つまり、再送制御部２４６は、損失パケットについての通信端末３０Ａからの送達確認応答の受信前に、損失パケットを再送することができる。よって、実施例２によれば、パケット損失によるスループットの低下を抑制することができる。
【０１５２】
また、ＡＣＫパケット生成部２５７は、ＴＣＰの仕様に則って動作する再送制御部２４６に対して、ＳＡＣＫ番号を含む特別ＡＣＫパケットを生成する。よって、実施例２によれば、スループットの低下を抑制することができる機能を基地局２０Ａに容易に実装することができる。
【０１５３】
また、基地局２０Ａは、送信バッファ２５１を有する。送信バッファ２５１は、基地局２０Ａから無線回線を介して通信端末３０Ａへ送信されるＴＣＰパケットを蓄える。ＡＣＫパケット生成部２５７は、無線回線で損失したＴＣＰパケットの次のＴＣＰパケットが送信バッファ２５１に蓄えられているときに、特別ＡＣＫパケットを生成する。
【０１５４】
こうすることで、再送制御部２４６では、ＴＣＰパケットと特別ＡＣＫパケットとの整合が維持されるため、再送制御部２４６での再送制御の混乱を防止できる。
【０１５５】
［実施例３］
＜通信システムの構成例＞
図１３は、実施例３の通信システムの構成の一例を示す図である。図１３において、通信システム２は、基地局２０Ｂを有する。基地局２０Ｂは、アプリケーション１１を有する。これに対し、実施例１（図２）では、サーバ１０がアプリケーション１１を有していた。つまり、実施例３では、実施例１のサーバ１０に搭載されていたアプリケーション１１が、サーバ１０から基地局２０Ｂへ移行されて基地局２０Ｂに搭載されている。よって、実施例３では、基地局２０Ｂは、サーバ側ＴＣＰ部２２及びＴＣＰプロキシ部２３を有しておらず、基地局２０Ｂと通信端末３０Ａとの間にＴＣＰコネクションが確立される。
【０１５６】
基地局２０Ａ（図２）におけるＴＣＰプロキシ部２３−端末側ＴＣＰ部２４間のＡＰＩ（Application  Programming  Interface）と、基地局２０Ｂにおけるアプリケーション１１−端末側ＴＣＰ部２４間のＡＰＩとは、同一のソケットインタフェースである。このため、端末側ＴＣＰ部２４からは、ＴＣＰプロキシ部２３も、アプリケーション１１も、同様のソフトウェアモジュールとして参照される。
【０１５７】
よって、実施例３によれば、端末側ＴＣＰ部２４とＬＴＥインタフェース部２５とが実施例１または実施例２と同様の処理を行うことによって、実施例１または実施例２と同様の効果を奏することができる。
【０１５８】
［実施例４］
＜通信システムの構成例＞
図１４は、実施例４の通信システムの構成の一例を示す図である。図１４において、通信システム３は、基地局２０Ｃと、通信端末３０Ｃとを有する。実施例１（図２）では、基地局２０Ａと通信端末３０Ａとが、ＬＴＥ通信規格において規定されている無線ベアラによって接続されていた。つまり、実施例１では、基地局２０Ａと通信端末３０Ａとの間の無線回線が無線ベアラであった。これに対し、実施例４では、図１４に示すように、基地局２０Ｃと通信端末３０Ｃとが、Ｗｉ−Ｆｉ通信規格または無線ＬＡＮ（Local  Area  Network）通信規格において規定されている無線ＬＡＮ回線によって接続される。つまり、無線ＬＡＮ回線は、無線論理回線の一例である。そこで、基地局２０Ｃは、Ｗｉ−Ｆｉインタフェース部２６を有し、通信端末３０Ｃは、Ｗｉ−Ｆｉインタフェース部３４を有する。Ｗｉ−Ｆｉインタフェース部２６は、Ｗｉ−Ｆｉの通信方式に従った無線回線処理を行い、端末側ＴＣＰ部２４から入力されたＴＣＰパケットを通信端末３０Ｃへ送信する。Ｗｉ−Ｆｉインタフェース部３４は、Ｗｉ−Ｆｉの通信方式に従った無線回線処理を行い、基地局２０Ｃから送信されたＴＣＰパケットを受信し、受信したＴＣＰパケットをＴＣＰ部３２へ出力する。
【０１５９】
基地局２０ＣにおけるＷｉ−Ｆｉインタフェース部２６は、実施例１のＬＴＥインタフェース部２５Ａ（図３）、または、実施例２のＬＴＥインタフェース部２５Ｂ（図８）と同様の構成を採る。ここで、Ｗｉ−Ｆｉ通信規格及び無線ＬＡＮ通信規格では、無線論理回線が、実装に依り、１本の無線ＬＡＮ回線、通信端末毎の無線ＬＡＮ回線、要求通信品質が異なる通信毎の無線ＬＡＮ回線、または、それらの組み合わせ毎の無線ＬＡＮ回線となる。但し、実施例１及び実施例２と同様に、サーバ１０−通信端末３０Ｃ間に確立された複数のＴＣＰコネクションが、１つの無線論理回線に集約される。そこで、基地局２０Ｃの端末側ＴＣＰ部２４では、無線ＬＡＮ回線単位のＢＰ信号が、ＴＣＰコネクション単位のＢＰ信号へ変換される。
【０１６０】
よって、実施例４によれば、端末側ＴＣＰ部２４とＷｉ−Ｆｉインタフェース部２６とが実施例１または実施例２と同様の処理を行うことによって、実施例１または実施例２と同様の効果を奏することができる。
【０１６１】
［実施例５］
＜通信システムの構成例＞
図１５は、実施例５の通信システムの構成の一例を示す図である。図１５において、通信システム４は、基地局２０Ｄと、通信端末３０Ｄとを有する。基地局２０Ｄは、ＭＰＴＣＰ（MultiPath  TCP）部２７と、端末側ＴＣＰ部２４−１，２４−２とを有する。ＭＰＴＣＰ部２７は、振分部２８を有する。端末側ＴＣＰ部２４−１は、実施例１の端末側ＴＣＰ部２４（図２）に相当し、端末側ＴＣＰ部２４−２は、実施例４の端末側ＴＣＰ部２４（図１４）に相当する。通信端末３０Ｄは、ＴＣＰ部３２−１，３２−２と、ＭＰＴＣＰ部３５とを有する。ＭＰＴＣＰ部３５は、集約部３６を有する。ＴＣＰ部３２−１は、実施例１のＴＣＰ部３２（図２）に相当し、ＴＣＰ部３２−２は、実施例４のＴＣＰ部３２（図１４）に相当する。
【０１６２】
基地局２０Ｄは、サーバ１０−通信端末３０Ｄ間のＴＣＰ通信を、ＬＴＥ及びＷｉ−Ｆｉの両方の無線回線を同時に使用して中継することによって、サーバ１０−通信端末３０Ｄ間のＴＣＰ通信のスループットを向上させる。
【０１６３】
基地局２０ＤのＴＣＰプロキシ部２３は、サーバ１０−通信端末３０Ｄ間のＴＣＰ通信を基地局２０Ｄで一旦終端し、改めて基地局２０Ｄ−通信端末３０Ｄ間のＭＰＴＣＰコネクションを開設する。これにより、ＴＣＰプロキシ部２３は、サーバ１０−基地局２０Ｄ間のＴＣＰ通信と、基地局２０Ｄ−通信端末３０Ｄ間のＭＰＴＣＰ通信とを中継する。
【０１６４】
ここで、ＭＰＴＣＰは、複数の経路（図１５では、ＬＴＥインタフェース経由とＷｉ−Ｆｉインタフェース経由）を同時に利用可能とするＴＣＰの拡張仕様である。ＭＰＴＣＰは、標準化団体ＩＥＴＦ（Internet  Engineering  Task  Force）で標準化されている。ＭＰＴＣＰは、複数のＴＣＰコネクション（つまり、複数のサブフロー）と、それら複数のＴＣＰコネクションを集約するＭＰＴＣＰコネクションとによって成立する。あるＭＰＴＣＰコネクションについて、基地局２０Ｄの振分部２８は、ＴＣＰパケット単位で、ＴＣＰパケットを、ＬＴＥインタフェースを経由するＴＣＰコネクションと、Ｗｉ−Ｆｉインタフェースを経由するＴＣＰコネクションとへ振り分ける。この際、振分部２８は、各ＴＣＰコネクションレベルのシーケンス番号とは別に、ＭＰＴＣＰコネクションレベルのシーケンス番号をＴＣＰパケットに付与する。一方で、通信端末３０Ｄの集約部３６は、ＭＰＴＣＰコネクションレベルのシーケンス番号に基づいて、それぞれのＴＣＰコネクション経由で受信したＴＣＰパケットの順序整列を行い、アプリデータをアプリケーション３３へ出力する。振分部２８は、例えば、ＭＰＴＣＰコネクションに集約される複数のＴＣＰコネクションのうち、srtt（smoothed  round  trip  time）が最小のものへＴＣＰパケットを振り分ける。また例えば、振分部２８は、ＭＰＴＣＰコネクションに集約される複数のＴＣＰコネクションのうち、輻輳ウィンドウ値に基づいて算出した推定帯域に対するインフライトパケット数の比率（つまり、帯域使用率）が最小のものへＴＣＰパケットを振り分ける。
【０１６５】
端末側ＴＣＰ部２４（図２）に相当する端末側ＴＣＰ部２４−１と、ＬＴＥインタフェース部２５とは、実施例１または実施例２と同様の処理を行う。また、端末側ＴＣＰ部２４（図１４）に相当する端末側ＴＣＰ部２４−２と、Ｗｉ−Ｆｉインタフェース部２６とは、実施例１または実施例２と同様の処理を行う。よって、実施例５によれば、実施例１または実施例２と同様の効果を奏することができる。
【０１６６】
［他の実施例］
［１］基地局２０Ａ，２０Ｂ，２０Ｃ，２０Ｄは、次のようなハードウェア構成により実現することができる。図１６は、基地局のハードウェア構成例を示す図である。図１６に示すように、基地局２０Ａ，２０Ｂ，２０Ｃ，２０Ｄは、ハードウェアの構成要素として、プロセッサ７１と、メモリ７２と、有線インタフェースモジュール７３と、無線インタフェースモジュール７４とを有する。プロセッサ７１の一例として、ＣＰＵ（Central  Processing  Unit），ＤＳＰ（Digital  Signal  Processor），ＦＰＧＡ（Field  Programmable  Gate  Array）等が挙げられる。また、基地局２０Ａ，２０Ｂ，２０Ｃ，２０Ｄは、プロセッサ７１と周辺回路とを含むＬＳＩ（Large  Scale  Integrated  circuit）を有しても良い。メモリ７２の一例として、ＳＤＲＡＭ等のＲＡＭ，ＲＯＭ，フラッシュメモリ等が挙げられる。
【０１６７】
有線インタフェース部２１は、有線インタフェースモジュール７３により実現される。無線処理部２５３，２５８は、無線インタフェースモジュール７４により実現される。ＴＣＰパケット形成部２４１と、ＢＰ変換部２４２と、輻輳ウィンドウ値設定部２４３と、ＡＣＫ情報取得部２４４，２４７と、輻輳制御部２４５と、再送制御部２４６とはプロセッサ７１により実現される。バッファ監視部２５２と、パケット損失検知部２５５と、ＡＣＫパケット生成部２５７と、振分部２８とは、プロセッサ７１により実現される。送信バッファ２５１と、ＡＣＫ情報記憶部２５６とは、メモリ７２により実現される。
【０１６８】
［２］基地局２０Ａ，２０Ｂ，２０Ｃ，２０Ｄでの上記説明における各処理は、各処理に対応するプログラムをプロセッサ７１に実行させることによって実現しても良い。例えば、上記説明における各処理に対応するプログラムがメモリ７２に記憶され、各プログラムがプロセッサ７１によってメモリ７２から読み出されて実行されても良い。また、各プログラムは、必ずしも予めメモリ７２に記憶されていなくても良い。すなわち、例えば、基地局２０Ａ，２０Ｂ，２０Ｃ，２０Ｄに接続可能な磁気ディスク、光ディスク、ＩＣカード、メモリカード等の可搬の記録媒体に各プログラムが予め記録され、各プログラムがプロセッサ７１により記録媒体から読み出されて実行されても良い。また例えば、インターネット、ＬＡＮ、無線ＬＡＮ等を介して無線または有線により基地局２０Ａ，２０Ｂ，２０Ｃ，２０Ｄに接続されるコンピュータまたはサーバ等に各プログラムが記憶され、各プログラムがプロセッサ７１へ読み出されて実行されても良い。
【０１６９】
［３］実施例１と実施例２とを組み合わせて実施しても良い。つまり、基地局２０Ａ，２０Ｂ，２０Ｃ，２０Ｄは、実施例１に記載の輻輳制御と、実施例２に記載の再送制御とを、並行して行っても良い。
【０１７０】
［４］実施例１では、輻輳ウィンドウ値設定部２４３は、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値以上になったときに、輻輳ウィンドウ値を所定値まで減少させた。また、輻輳ウィンドウ値設定部２４３は、送信バッファ２５１におけるＴＣＰパケットの滞留量が閾値未満になったときに、輻輳ウィンドウ値を受信ウィンドウ値以上まで増加させた。ここで、送信バッファ２５１におけるＴＣＰパケットの滞留量が大きいほど、送信バッファ２５１の空き容量は小さい。逆に、送信バッファ２５１におけるＴＣＰパケットの滞留量が小さいほど、送信バッファ２５１の空き容量は大きい。つまり、送信バッファ２５１におけるＴＣＰパケットの滞留量と、送信バッファ２５１の空き容量とは、１対１で対応する。そこで、輻輳ウィンドウ値設定部２４３は、送信バッファ２５１の空き容量が閾値未満になったときに、輻輳ウィンドウ値を所定値まで減少させても良い。また、輻輳ウィンドウ値設定部２４３は、送信バッファ２５１の空き容量が閾値以上になったときに、輻輳ウィンドウ値を受信ウィンドウ値以上まで増加させても良い。
【０１７１】
［５］例えば、上記説明で使用したＢＰ信号（バックプレッシャ信号）は、付記等に記載されているバッファ制御信号に対応する。
【０１７２】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１７３】
（付記１）自局から無線回線を介して通信端末へ送信されるパケットを蓄える送信バッファと、前記通信端末へ送信したパケットに対する送達確認を受信するまでに送信可能なパケット数を示す輻輳ウィンドウ値に基づいて、前記送信バッファへ送るパケットの流入量を制御する基地局において、
前記輻輳ウィンドウ値と、前記通信端末から報告された受信ウィンドウ値とのうち、小さい値に基づいて、前記送信バッファへの前記パケットの流入量を制御する制御部と、
前記送信バッファにおける前記パケットの滞留量が閾値以上のときに、前記輻輳ウィンドウ値を所定値に、前記滞留量が前記閾値未満のときに、前記輻輳ウィンドウ値を、前記所定値より大きい前記受信ウィンドウ値以上の値に設定するウィンドウ値設定部と、
を具備する基地局。
【０１７４】
（付記２）前記所定値はゼロである、
付記１に記載の基地局。
【０１７５】
（付記３）前記滞留量を監視し、前記滞留量が前記閾値以上を示すバッファ制御信号を出力する監視部と、
前記監視部から出力された前記バッファ制御信号を、自局と前記通信端末との間に確立され、前記無線回線毎の前記送信バッファに流入する複数のコネクションそれぞれの複数のバッファ制御信号に変換する変換部と、をさらに具備し、
前記ウィンドウ値設定部は、前記バッファ制御信号に基づいて、コネクション毎に、前記輻輳ウィンドウ値を前記所定値に設定する、
付記１または２に記載の基地局。
【０１７６】
（付記４）自局と通信端末との間の無線回線においてパケットの損失が発生したときに、前記通信端末から受信済みのＡＣＫ番号と、前記ＡＣＫ番号から、損失したパケットの直前のパケットのシーケンス番号までと同一のＳＡＣＫ番号と、前記損失したパケットの次のパケットのシーケンス番号と同一のＳＡＣＫ番号とを含むＡＣＫパケットを生成する生成部と、
前記生成部によって生成された前記ＡＣＫパケットに基づいて、前記損失したパケットの再送制御を行う再送制御部と、
を具備する基地局。
【０１７７】
（付記５）自局から前記無線回線を介して前記通信端末へ送信されるパケットを蓄える送信バッファ、をさらに具備し、
前記生成部は、前記損失したパケットの前記次のパケットが前記送信バッファに蓄えられているときに、前記ＡＣＫパケットを生成する、
付記４に記載の基地局。
【０１７８】
（付記６）前記無線回線は、ＬＴＥ通信規格において規定される無線ベアラである、
付記１から５の何れか一つに記載の基地局。
【０１７９】
（付記７）前記無線回線は、Ｗｉ−Ｆｉ通信規格において規定される無線ＬＡＮ回線である、
付記１から５の何れか一つに記載の基地局。
【０１８０】
（付記８）自局から無線回線を介して通信端末へ送信されるパケットを蓄える送信バッファを具備する基地局における通信制御方法であって、
前記送信バッファにおける前記パケットの滞留量が閾値以上になったときに、輻輳ウィンドウ値を所定値まで減少させ、前記輻輳ウィンドウ値の減少後、前記滞留量が前記閾値未満になったときに、前記輻輳ウィンドウ値を、前記所定値より大きく、かつ、前記通信端末から報告された受信ウィンドウ値以上の値に設定し、
前記輻輳ウィンドウ値と前記受信ウィンドウ値のうち、最小のウィンドウ値に基づいて、前記送信バッファへの前記パケットの流入量を制御する、
通信制御方法。
【０１８１】
（付記９）自局から無線回線を介して通信端末へパケットを送信する基地局における通信制御方法であって、
前記無線回線においてパケットの損失が発生したときに、前記通信端末から受信済みのＡＣＫ番号と、前記ＡＣＫ番号から、損失したパケットの直前のパケットのシーケンス番号までと同一のＳＡＣＫ番号と、前記損失したパケットの次のパケットのシーケンス番号と同一のＳＡＣＫ番号とを含むＡＣＫパケットを生成し、
生成した前記ＡＣＫパケットに基づいて、前記損失したパケットの再送制御を行う、
通信制御方法。
【符号の説明】
【０１８２】
２０Ａ，２０Ｂ，２０Ｃ，２０Ｄ  基地局
２１  有線インタフェース部
２２  サーバ側ＴＣＰ部
２３  ＴＣＰプロキシ部
２４，２４Ａ，２４Ｂ，２４−１，２４−２  端末側ＴＣＰ部
２５，２５Ａ，２５Ｂ  ＬＴＥインタフェース部
２６  Ｗｉ−Ｆｉインタフェース部
２７  ＭＰＴＣＰ部
２８  振分部
２４１  ＴＣＰパケット形成部
２４２  ＢＰ変換部
２４３  輻輳ウィンドウ値設定部
２４４，２４７  ＡＣＫ情報取得部
２４５  輻輳制御部
２４６  再送制御部
２５１  送信バッファ
２５２  バッファ監視部
２５３，２５８  無線処理部
２５５  パケット損失検知部
２５６  ＡＣＫ情報記憶部
２５７  ＡＣＫパケット生成部
【図１】
2016208193.tif 000003
【図２】
2016208193.tif 000004
【図３】
2016208193.tif 000005
【図４】
2016208193.tif 000006
【図５】
2016208193.tif 000007
【図６】
2016208193.tif 000008
【図７】
2016208193.tif 000009
【図８】
2016208193.tif 000010
【図９】
2016208193.tif 000011
【図１０】
2016208193.tif 000012
【図１１】
2016208193.tif 000013
【図１２】
2016208193.tif 000014
【図１３】
2016208193.tif 000015
【図１４】
2016208193.tif 000016
【図１５】
2016208193.tif 000017
【図１６】
2016208193.tif 000018