(57)【要約】【課題】非対称パケット通信路を用いてサーバと通信を行う場合に、ＡＣＫパケットの送信を抑制し、サーバにおいてシステムの期待する平均送信ＴＣＰスループットが得られるようにする。【解決手段】移動端末１００は、制御部２５０が保持する、送信するＡＣＫパケットのサイズ及び送信回線の回線速度に基づきＡＣＫパケットの生成間隔を算出する演算部２５１と、算出されたＡＣＫパケットの生成間隔を１周期として計時することを繰り返し行い、１周期の満了毎に満了信号を出力する遅延ＡＣＫタイマ２２３と、満了信号が入力する度に、その入力期間内に受信されたデータパケットに関する最新の受信確認情報を含ませたＡＣＫパケットを生成しＩＰ部２１０を介して送信バッファ２４０に送り込むデータパケット受信部２２１とを備えている。【選択図】      図２
2004364217.tif 000002
【特許請求の範囲】
【請求項１】
非対称パケット通信路における高速の受信回線からデータパケットを受けて低速の送信回線にＡＣＫパケットを送信するパケット通信装置において、
送信するＡＣＫパケットのサイズ及び送信回線の回線速度を保持する保持手段と、
前記ＡＣＫパケットのサイズ及び送信回線の回線速度に基づきＡＣＫパケットの生成間隔を算出する算出手段と、
前記算出されたＡＣＫパケットの生成間隔を１周期として計時することを繰り返し行い、１周期の満了毎に満了信号を出力する計時手段と、
前記満了信号が入力する度に、その入力期間内に受信されたデータパケットに関する最新の受信確認情報を含ませたＡＣＫパケットを生成して送信段に送信する送信手段と、
を具備することを特徴とするパケット通信装置。
【請求項２】
非対称パケット通信路における高速の受信回線からデータパケットを受けて低速の送信回線にＡＣＫパケットを送信するパケット通信装置において、
データパケットの受信毎に生成されるＡＣＫパケットを順に蓄積し、先に蓄積したＡＣＫパケットから順に送信段に送り込む蓄積手段と、
前記蓄積手段に新たに生成したＡＣＫパケットを蓄積する際に、最後に蓄積した直前ＡＣＫパケットと新たに蓄積する新ＡＣＫパケットとの一致不一致を比較し、不一致のときは直前ＡＣＫパケットを削除して新ＡＣＫパケットを蓄積し、一致したときは直前ＡＣＫパケットに新ＡＣＫパケットを上書きして蓄積する蓄積制御手段と、
を具備することを特徴とするパケット通信装置。
【請求項３】
ＡＣＫパケットの送信回数をカウントするカウンタと、
新たに生成したＡＣＫパケットと直前に生成したＡＣＫパケットとの一致不一致を比較し、不一致のときは前記カウンタをリセットし、一致のときは前記カウンタを更新する更新手段と、
前記カウンタのカウント値が設定値を超えるとき新たに生成したＡＣＫパケットを破棄する手段と、
を具備することを特徴とする請求項１又は請求項２記載のパケット通信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）を適用した非対称パケット通信路に接続されるパケット通信装置に関する。
【０００２】
【従来の技術】
非対称パケット通信路にＴＣＰを適用した従来のパケット通信方法を、ここでは、移動通信システムにおいて実施する場合について説明する。図９は、移動通信システムの構成例を示すブロック図である。
【０００３】
移動通信システムでは、図９に示すように、移動端末９００は、無線基地局装置９０１を介して、インターネットプロトコル（ＩＰ）を用いてパケットを転送するネットワーク（ＩＰネットワーク）９０２に接続される。そして、ネットワーク（ＩＰネットワーク）９０２上には、サーバ９０３が存在し、移動端末９００との間で非対称通信路にＴＣＰを適用したパケット通信が行われる。
【０００４】
即ち、移動端末９００は、サーバ９０３がＩＰネットワーク９０２に送信するデータパケットを無線基地局装置９０１を介して受け取り、ＡＣＫパケットを無線基地局装置９０１、ＩＰネットワーク９０２を介してサーバ９０３に返送するが、移動端末９００がデータパケットを受け取る下り回線９１１の回線速度の方が、ＡＣＫパケットを返送する上り回線９１２の回線速度よりも高速になっている。
【０００５】
図１０は、ＴＣＰパケットのフォーマットである。図１０に示すように、ＴＣＰパケットは、ヘッダ部１００１とペイロード部１００２とで構成される。ヘッダ部１００１には、発信元ポート番号フィールド１０１１、宛先ポート番号フィールド１０１２、シーケンス番号フィールド１０１３、ＡＣＫ番号フィールド１０１４、ヘッダ予約フィールド１０１５、予約フィールド１０１６、制御フラグフィールド１０１７、ウインドウサイズフィールド１０１８、ＴＣＰチェックサムフィールド１０１９及び緊急ポインタフィールド１０２０が設けられる。そして、ペイロード部１００２には、データフィールド１０２１が設けられる。
【０００６】
以下の説明に関係するフィールドは、シーケンス番号フィールド１０１３、ＡＣＫ番号フィールド１０１４、及びウインドウサイズフィールド１０１８である。シーケンス番号フィールド１０１３には、データパケットに含まれる最初のデータがユーザの全データ・ストリーム中のどの位置にあるかを示すシーケンス番号ＳＮが設定される。
【０００７】
制御フラグフィールド１０１７中のＡＣＫフラグは、ＡＣＫ番号フィールド１０１４にＡＣＫ番号ＡＮが入っていることを示すフラグである。このＡＣＫフラグが立っているときにのみ、ＡＣＫ番号フィールド１０１４は有効となる。
【０００８】
ＡＣＫ番号フィールド１０１４に設定されるＡＣＫ番号ＡＮは、正しく受信したデータパケットを発信側であるサーバ９０３に示すために、受信側である移動端末９００が次に受信することを期待しているデータパケットのシーケンス番号ＳＮである。即ち、ＡＣＫ番号ＡＮは、連続するデータ・ストリームを構成している受信データパケットの中でシーケンス番号ＳＮが一番新しいデータパケットについて、このデータパケットのペイロードサイズをシーケンス番号ＳＮに加えた値を示す。なお、データパケットのペイロードサイズは、データフィールド１０２１のサイズである。
【０００９】
ウインドウサイズフィールド１０１８は、発信側であるサーバ９０３がウインドウ制御を行うのに用いられる。即ち、受信側である移動端末９００が返送するＡＣＫパケットにおいて、ＡＣＫ番号ＡＮで始まるデータパケットをどれだけ受け取れる余裕があるかを示す値をウインドウサイズフィールド１０１８に設定してサーバ９０３に通知する。
【００１０】
図１１は、サーバ９０３が行うウインドウ制御を説明する図である。図１１において、サーバ９０３は、手順Ｓ１１１０において、送信ウインドウサイズ１１００として送信ウインドウサイズ＝７と設定し、その送信ウインドウサイズ１１００分のデータパケット１１０１からデータパケット１１０７までを順に送信する。
【００１１】
サーバ９０３は、次の手順Ｓ１１１１において、ＡＣＫパケットの受信によって移動端末９００が先頭のデータパケット１１０１を受信したことを確認する。サーバ９０３は、移動端末９００から受信したＡＣＫパケットのＡＣＫ番号ＡＮとウインドウサイズとから、移動端末９００が新たに受信できるデータパケットの開始番号と数を取得し、このデータパケットの数だけ送信ウインドウを更新する。
【００１２】
そして、次の手順Ｓ１１１２において、サーバ９０３は、更新したことによって送信ウインドウ内となった送信データパケット１１０８を新たに送信する。
【００１３】
さて、図１２は、図９に示す移動端末９００が非対称通信路にＴＣＰを適用した従来のパケット通信を実施する構成を示すブロック図である。図９に示した移動端末９００は、図１２に示すように、ＩＰ部１２１０、ＴＣＰ部１２２０、アプリケーション部１２３０、送信バッファ１２４０及び読み出し部１２４１を備えている。ＴＣＰ部１２２０は、データパケット受信部１２２１を備えている。
【００１４】
ＩＰ部１２１０は、下り回線９１１を介して受信したＩＰパケットにＩＰ処理を施してデータパケット受信部１２２１に送る。また、ＩＰ部１２１０は、データパケット受信部１２２１から受信したＡＣＫパケットにＩＰヘッダを付けて送信バッファ１２４０に送る。
【００１５】
データパケット受信部１２２１は、ＩＰ部１２１０から受信したデータパケットにＴＣＰ処理を施してアプリケーション部１２３０に送るとともに、データパケットを受信する度に、ＡＣＫフラグを立ててＡＣＫ番号ＡＮとウインドウサイズを設定したＡＣＫパケットを生成し、ＩＰ部１２１０に送信する。なお、以降の説明では、ＡＣＫパケットでは、ウインドウサイズフィールド１０１８に１データパケットの指定があるとし、ＡＣＫ番号ＡＮのみを取り上げることとする。
【００１６】
アプリケーション部１２３０は、ユーザパケットを処理するアプリケーション層である。
【００１７】
送信バッファ１２４０は、ＩＰ部１２１０から受信したＡＣＫパケットを蓄積する。読み出し部１２４１は、上り回線９１２の回線速度に応じて送信バッファ１２４０からＡＣＫパケットを読み出し、上り回線９１２にＡＣＫパケットを送出する。
【００１８】
次いで、図１３と図１４を参照して、図９に示した移動通信システムにおいて、ＴＣＰを用いたパケット通信を行なう場合の通信手順について説明する。なお、図１３は、図９に示すサーバ９０３と移動端末９００との間で行われる従来のパケット通信の通信手順を説明するシーケンス図である。図１４は、図１３に示す手順Ｓ１３６２から手順Ｓ１３６５までの区間における図１２に示す送信バッファ１２４０の状態を説明する図である。
【００１９】
なお、図１３では、説明を簡単化するために、データパケットのペイロードサイズを全て１〔ｂｙｔｅ〕とし、送信ウインドウサイズを“７”とした。サーバ９０３と移動端末９００の間にある矢印はパケットの送信と送信方向を表し、矢印の傾きはサーバ９０３と移動端末９００の間の伝搬遅延を表している。
【００２０】
また、図１４では、図１３に示す手順Ｓ１３６２から手順Ｓ１３６５までの区間において、移動端末９００が生成したＡＣＫパケットを送信バッファ１２４０に蓄積し、読み出し部１２４１を介して上り回線９１２に送出する様子が示されている。なお、読み出し部１２４１の右側が送信バッファ１２４０を表し、左側が上り回線９１２を表している。
【００２１】
サーバ９０３は、手順Ｓ１３８１において、送信ウインドウサイズ“７”に応じた７個のデータパケット（データパケット（ＳＮ＝１）８０１からデータパケット（ＳＮ＝７）８０７）を移動端末９００に順々に送信する。
【００２２】
移動端末９００では、手順Ｓ１３６１において、先頭のデータパケット（ＳＮ＝１）８０１を受信するので、直後の手順Ｓ１３６２においてＡＣＫパケット１３４１を生成する。手順Ｓ１３６１から手順Ｓ１３６２までの間隔は、データパケットを受信してからＡＣＫパケットを生成するまでの処理遅延である。ＡＣＫパケット１３４１のＡＣＫ番号フィールドには、次に受信することが期待されるデータパケットのシーケンス番号ＳＮ“２”であるＡＣＫ番号ＡＮが設定される。
【００２３】
図１４に示すように、生成されたＡＣＫパケット（ＡＮ＝２）１３４１は送信バッファ１２４０に蓄積される。送信バッファ１２４０での待ち合わせはないので、読み出し部１２４１によって直ちに上り回線９１２への送出が開始される。移動端末９００では、ＡＣＫパケット（ＡＮ＝２）１３４１の送出中に次のデータパケット（ＳＮ＝２）８０２を受信するので、次の手順Ｓ１３６３において、移動端末９００は、ＡＣＫパケット（ＡＮ＝３）１３４２を生成し、送信バッファ１２４０に蓄積する。
【００２４】
このとき、図１４に示すように、読み出し部１２４１は、ＡＣＫパケット（ＡＮ＝２）１３４１の送出中であるので、新たに生成したＡＣＫパケット（ＡＮ＝３）１３４２は、送信バッファ１２４０において送出を待ち合わせる。
【００２５】
次の手順Ｓ１３６４においても、移動端末９００は、受信したデータパケット（ＳＮ＝３）１３０３に対するＡＣＫパケット（ＡＮ＝４）１３４３を生成するが、図１４に示すように、ＡＣＫパケット（ＡＮ＝２）１３４１の送出中であるので、送信バッファ１２４０において、今回生成したＡＣＫパケット（ＡＮ＝４）１３４３は前回待ち合わせたＡＣＫパケット（ＡＮ＝３）１３４２の次に送出を待ち合わせる。
【００２６】
そして、手順Ｓ１３６５において、読み出し部１２４１は、ＡＣＫパケット（ＡＮ＝２）１３４１の送出を終了すると同時に、待ち合わせしていたＡＣＫパケット（ＡＮ＝３）１３４２の送出を開始する。手順Ｓ１３６２と手順Ｓ１３６５の間隔は、読み出し部１２４１がＡＣＫパケットを上り回線９１２に送出するのに要する時間である。
【００２７】
ＡＣＫパケット（ＡＮ＝２）１３４１の全てがサーバ９０３に受信されるまでには、手順Ｓ１３６５から伝搬遅延分の時間を要する。つまり、サーバ９０３では、手順Ｓ１３６５から伝搬遅延分の時間を経過した手順１３８２にてＡＣＫパケット（ＡＮ＝２）１３４１を受信し、それに基づき次のデータパケット（ＳＮ＝８）１３０８を送信する。
【００２８】
図１４では示されてないが、読み出し部１２４１は、手順Ｓ１３６６において、ＡＣＫパケット（ＡＮ＝３）１３４２の送出を終了し、同時に、ＡＣＫパケット（ＡＮ＝４）１３４３の送出を開始する。
【００２９】
サーバ９０３では、手順Ｓ１３６６から伝搬遅延分の時間を経過した手順１３８３にてＡＣＫパケット（ＡＮ＝３）１３４２を受信し、それに基づき次のデータパケット（ＳＮ＝９）８０９を送信する。
【００３０】
以降、同様に、読み出し部１２４１は、ＡＣＫパケットを送出終了する度に、送信バッファ１２４０において送出を待ち合わせていたＡＣＫパケットの送出を開始する。図１３では、手順Ｓ１３６７におけるＡＣＫパケット（ＡＮ＝４）１３４３の送信以外は省略している。
【００３１】
サーバ９０３では、手順Ｓ１３６７から伝搬遅延分の時間を経過した手順１３８４にてＡＣＫパケット（ＡＮ＝４）１３４３を受信し、それに基づき次のデータパケット（ＳＮ＝１０）８１０を送信する。以降、同様に、サーバ９０３では、ＡＣＫパケットを受信する度に新しいデータパケットを送信する。
【００３２】
このように、移動端末９００が新たに生成したＡＣＫパケットはその時点で最新の受信確認情報（シーケンス番号ＳＮ）を含んでいる。しかし、新たに生成したＡＣＫパケットは、送信バッファ１２４０に一旦蓄積され、以前に生成された全てのＡＣＫパケットを上り回線９１２に送出し終わってから送信される。つまり、送信バッファ１２４０にＡＣＫパケットが蓄積されている間は、移動端末９００は最新の受信確認情報（シーケンス番号ＳＮ）をサーバ９０３に送信することができない。
【００３３】
一方、サーバ９０３では、データパケット（ＳＮ＝７）８０７を送信した時点で送信ウインドウサイズ分のデータパケットを送信し終えている。その後は、新たにＡＣＫパケットを受信し、そのＡＣＫ番号ＡＮを見て送信ウインドウを１パケット分更新し、新たなデータパケットを送信する。
【００３４】
したがって、サーバ９０３では、送信ウインドウサイズ分のデータパケットを送信し終えた後に、データパケットを送信できる間隔は、手順１３８２，手順１３８３，手順１３８４に示すように、移動端末９００が１つのＡＣＫパケットを送出するのに要する時間と等しい間隔になる。
【００３５】
一般的なＴＣＰでは、送信するＡＣＫパケットの数を減らすために非特許文献１において開示されている遅延ＡＣＫ技術を使用している。
【００３６】
この遅延ＡＣＫ技術を用いると、サーバ９０３からデータパケットを受信している移動端末９００は、ＡＣＫパケットの平均生成間隔が半分になり、１つおきのデータパケット受信の度にＡＣＫパケットを生成する。また、移動端末９００が送信する１つのＡＣＫパケットは、２つのデータパケットに対する受信確認情報を格納する。
【００３７】
したがって、この遅延ＡＣＫ技術により、移動端末９００においては、送信バッファ１２４０でのＡＣＫパケットの蓄積数が半減し、サーバ９０３においては、１つのＡＣＫパケットを受信したことに伴う送信ウインドウの更新幅は２パケット分になるが、基本的な動作は図１３、図１４を用いて説明した通信手順と同じである。
【００３８】
【非特許文献１】
Ｒ．  Ｂｒａｄｅｎ，”Ｒｅｑｕｉｒｅｍｅｎｔｓ  ｆｏｒ  Ｉｎｔｅｒｎｅｔ  Ｈｏｓｔｓ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｌａｙｅｒｓ”，ＩＥＴＦ  ＲＦＣ１１２２  Ｏｃｔ  １９８９．
【００３９】
【発明が解決しようとする課題】
しかしながら、非対称通信路にＴＣＰを適用したパケット通信を行なう場合、上記従来の通信手順では、サーバ９０３は、送信ウインドウサイズ分のデータパケットを送信し終えると、以降は、ある一定値以上の平均送信ＴＣＰスループットが得られないという問題がある。
【００４０】
その理由は、サーバ９０３は、移動端末９００が１つのＡＣＫパケットを送出するのに要する時間の間隔で送信ウインドウを更新するが、１つのＡＣＫパケットを受信したことに伴う送信ウインドウの更新幅が常に１パケット分であるということである。これは１つのＡＣＫパケットが１パケット分の受信確認情報しか含まないためである。
【００４１】
例えば、平均送信スループットを大きくすることを期待して下り回線９１１の回線速度を速くしたとしても、送信ウインドウの更新間隔は変わらず、１つのＡＣＫパケットの受信による送信ウインドウの更新幅も変わらないため、平均送信ＴＣＰスループットも変わらない。
【００４２】
上記パケット通信に遅延ＡＣＫ技術を適用した場合、サーバ９０３において、１つのＡＣＫパケットを受信したことに伴う送信ウインドウの更新幅が２パケット分になるため、平均送信ＴＣＰスループットは改善されるものの、送信ウインドウの更新間隔は１つのＡＣＫパケットを送出するのに要する時間のまま変わらない。
【００４３】
したがって、遅延ＡＣＫ技術を用いた場合でも、下り回線９１１の回線速度を速くしても、平均送信ＴＣＰスループットは変わらず、システムが期待するスループットが得られないという問題がある。
【００４４】
本発明は、かかる点に鑑みてなされたものであり、サーバと非対称パケット通信を行う場合に、サーバにおいてシステムの期待する平均送信ＴＣＰスループットを得ることができるようにＡＣＫパケットの送信抑制制御が行えるパケット通信装置を提供することを目的とする。
【００４５】
【課題を解決するための手段】
本発明に係るパケット通信装置は、非対称パケット通信路における高速の受信回線からデータパケットを受けて低速の送信回線にＡＣＫパケットを送信するパケット通信装置において、送信するＡＣＫパケットのサイズ及び送信回線の回線速度を保持する手段と、前記ＡＣＫパケットのサイズ及び送信回線の回線速度に基づきＡＣＫパケットの生成間隔を算出する手段と、前記算出されたＡＣＫパケットの生成間隔を１周期として計時することを繰り返し行い、１周期の満了毎に満了信号を出力するタイマと、前記満了信号が入力する度に、その入力期間内に受信されたデータパケットに関する最新の受信確認情報を含ませたＡＣＫパケットを生成し送信段に送信する送信手段と、を具備する構成を採る。
【００４６】
この構成によれば、本発明に係るパケット通信装置は、決まった間隔でＡＣＫパケットを生成するので、無駄なＡＣＫパケットの生成・送信を抑制することができる。また、ＡＣＫパケットを送信回線に送出するのに要する間隔と、ＡＣＫパケットの生成イベントの発生間隔とを一致させることができるので、新たにＡＣＫパケットを生成するタイミングを直前のＡＣＫパケットが送出終了したタイミングと一致させることができ、新たに生成したＡＣＫパケットの送出開始を生成の直後に行うことができる。このとき、新たに生成されたＡＣＫパケットは、直前のＡＣＫパケットを生成したとき以降に受信したデータパケット分の受信確認情報を格納するので、送出するＡＣＫパケットに最新の受信確認情報を載せることができる。したがって、サーバではシステムの期待する平均送信ＴＣＰスループットを得ることができる。
【００４７】
本発明に係るパケット通信装置は、非対称パケット通信路における高速の受信回線からデータパケットを受けて低速の送信回線にＡＣＫパケットを送信するパケット通信装置において、データパケットの受信毎に生成されるＡＣＫパケットを順に蓄積し先に蓄積したＡＣＫパケットから順に送信段に送り込む蓄積手段と、前記蓄積手段に新たに生成したＡＣＫパケットを蓄積する際に、最後に蓄積した直前ＡＣＫパケットと新たに蓄積する新ＡＣＫパケットとの一致不一致を比較し、不一致のときは直前ＡＣＫパケットを削除して新ＡＣＫパケットを蓄積し、一致したときは直前ＡＣＫパケットに新ＡＣＫパケットを上書きして蓄積する蓄積制御手段と、を具備する構成を採る。
【００４８】
この構成によれば、本発明に係るパケット通信装置は、生成したＡＣＫパケットのうちＡＣＫ番号の不一致しないＡＣＫパケットを破棄するので、無駄なＡＣＫパケットの送信を抑制することができる。新たに生成されたＡＣＫパケットが直前に生成されたＡＣＫと一致するときは上書きするので、最新の受信確認情報を含んだＡＣＫパケットを送出することができる。したがって、サーバではシステムの期待する平均送信ＴＣＰスループットを得ることができる。
【００４９】
本発明に係るパケット通信装置は、上記の発明において、ＡＣＫパケットの送信回数をカウントするカウンタと、新たに生成したＡＣＫパケットと直前に生成したＡＣＫパケットとの一致不一致を比較し、不一致のときは前記カウンタをリセットし、一致のときは前記カウンタを更新する手段と、前記カウンタのカウント値が設定値を超えるとき新たに生成したＡＣＫパケットを破棄する手段と、を具備する構成を採る。
【００５０】
伝送エラーが多い状況下では、重複したＡＣＫパケットを生成してしまい、送信回線に重複ＡＣＫパケットを送出終了するまでは新たに生成したＡＣＫパケットを送出することができずに、送出を待たなくてはならないことが起こる。しかし、この構成によれば、生成した重複ＡＣＫパケットのうち無駄な重複ＡＣＫパケットの送信を抑制することができるので、新たに生成したＡＣＫパケットの送出を待ち合わせる時間を短縮することが可能となる。
【００５１】
【発明の実施の形態】
本発明の骨子は、通信装置がサーバと非対称パケット通信を行う場合に、通信装置が下記（１）〜（３）に示す方法によってＡＣＫパケットの送信を抑制し、サーバがシステムの期待する平均送信ＴＣＰスループットを得ることができるようにすることである。
【００５２】
（１）通信装置が、送信回線に送出するＡＣＫパケットのサイズ及び送信回線の回線速度を元にＡＣＫパケット生成間隔を算出し、算出したＡＣＫパケット生成間隔の期間内に受信されたデータパケットに対しては応答せず、そのＡＣＫパケット生成間隔の期間満了毎に最新の受信確認情報を含ませたＡＣＫパケットを生成し、ＡＣＫパケット送出段に存する送信バッファに送り込む。送信バッファでは待ち合わせなくＡＣＫパケットが読み出され、送信回線に送出される。
【００５３】
（２）通信装置が、ＡＣＫパケット生成段にデータパケットの受信毎に生成されるＡＣＫパケットを格納するＡＣＫパケット送信バッファを備え、このＡＣＫパケット送信バッファにおいて送信待ちのＡＣＫパケットと新たに生成されたＡＣＫパケットとのＡＣＫ番号を比較して送信待ちのＡＣＫパケットを一定の条件下に削除し、新たに生成されたＡＣＫパケットをＡＣＫパケット送信バッファからＡＣＫパケット送出段に存する送信バッファに送り込む。
【００５４】
（３）通信装置が、（１）または（２）において、ＡＣＫパケットの送信回数をカウントするカウンタを備え、新たに生成したＡＣＫパケットと直前のＡＣＫパケットとのＡＣＫ番号を比較し、比較の結果、不一致の場合にはカウンタを初期化し、一致した場合にはカウンタを更新することにより、ＡＣＫパケット番号が同番のＡＣＫパケットが連続した回数をカウントし、そのカウント値が予め設定した値以上のときには、新たに生成したＡＣＫパケットを破棄する。これによって、伝送エラーの多い状況下で行われる重複したＡＣＫパケットの生成・送信が抑制される。
【００５５】
以下、本発明の実施の形態について、添付図面を参照して詳細に説明する。
【００５６】
（実施の形態１）
図１は、本発明の実施の形態１に係る非対称通信路にＴＣＰを適用したパケット通信方法を説明するために用いる移動通信システムの構成例を示すブロック図である。
【００５７】
移動通信システムでは、図１に示すように、移動端末１００は、無線基地局装置１０１を介して、インターネットプロトコル（ＩＰ）を用いてパケットを転送するネットワーク（ＩＰ  Ｎｅｔｗｏｒｋ）１０２に接続される。そして、ネットワーク（ＩＰ  Ｎｅｔｗｏｒｋ）１０２上には、サーバ１０３が存在し、移動端末１００との間で非対称通信路にＴＣＰを適用したパケット通信が行われる。
【００５８】
即ち、移動端末１００は、サーバ１０３がＩＰ  Ｎｅｔｗｏｒｋ１０２に送信するデータパケットを無線基地局装置１０１を介して受け取り、ＡＣＫパケットを無線基地局装置１０１、ＩＰ  Ｎｅｔｗｏｒｋ１０２を介してサーバ１０３に返送するが、移動端末１００がデータパケットを受け取る下り回線１１１の回線速度の方が、ＡＣＫパケットを返送する上り回線１１２の回線速度よりも高速になっている。
【００５９】
図２は、図１に示した移動端末１００が非対称通信路にＴＣＰを適用した本実施の形態１によるパケット通信を実施する構成を示すブロック図である。図１に示した移動端末１００は、図２に示すように、ＩＰ部２１０、ＴＣＰ部２２０、アプリケーション部２３０、送信バッファ２４０、読み出し部２４１、制御部２５０及び演算部２５１を備えている。ＴＣＰ部２２０は、データパケット受信部２２１と遅延ＡＣＫタイマ部２２３とを備えている。
【００６０】
ＩＰ部２１０は、下り回線１１１を介して受信したＩＰパケットにＩＰ処理を施してデータパケット受信部２２１に送出する。また、ＩＰ部２１０は、データパケット受信部２２１から受信したＡＣＫパケットにＩＰヘッダを付けて送信バッファ２４０に送出する。
【００６１】
送信バッファ２４０は、ＩＰ部２１０から受信したＡＣＫパケットを蓄積する。読み出し部２４１は、上り回線１１２の回線速度に応じて送信バッファ２４０からＡＣＫパケットを読み出し、上り回線１１２にＡＣＫパケットを送出する。
【００６２】
制御部２５０は、上り回線１１２の回線速度（ｒｕ〔ｂｉｔ／ｓｅｃ〕）及び送信するＡＣＫパケットのサイズ（ＳＡ〔ｂｙｔｅ〕）を保持し、それを演算部２５１に送出する。
【００６３】
演算部２５１は、制御部２５０から上り回線１１２の回線速度及び送信するＡＣＫパケットのサイズを受け取り、読み出し部２４１における１つのＡＣＫパケットの送信間隔である８＊ＳＡ／ｒｕ〔ｓｅｃ〕を算出し、算出結果を遅延ＡＣＫタイマ部２２３に送出する。
【００６４】
遅延ＡＣＫタイマ部２２３は、演算部２５１から受け取った算出結果をＡＣＫパケット生成間隔としてタイマの周期に設定し、ＡＣＫパケット生成間隔を計時する度に、遅延ＡＣＫタイマ満了通知をデータパケット受信部２２１に送り、タイマを再起動する。
【００６５】
データパケット受信部２２１は、ＩＰ部２１０から受信したデータパケットを、ユーザパケットを処理するアプリケーション層であるアプリケーション部２３０に送出する。このとき、データパケット受信部２２１は、１つのデータパケットを受信する度にＣＫパケットを生成するのではなく、遅延ＡＣＫタイマ部２２３から遅延ＡＣＫタイマ満了通知を受け取ったときＡＣＫパケットを生成する。
【００６６】
ここに、データパケット受信部２２１は、１つ以上のデータパケットを受信した後に遅延ＡＣＫタイマ部２２３から遅延ＡＣＫタイマ満了通知を受け取ることになる。そこで、データパケット受信部２２１は、遅延ＡＣＫタイマ満了通知を受け取ると、その直前に受信されたデータパケットのシーケンス番号ＳＮの次のシーケンス番号ＳＮをＡＣＫ番号ＡＮとするＡＣＫパケットを生成し、ＩＰ部２１０に送信する。これによって、ＡＣＫパケットの送信量が抑制される。
【００６７】
また、データパケット受信部２２１は、ＩＰ部２１０から受信したデータパケットにＴＣＰ処理を施してアプリケーション部２３０に送るだけでなく、受信したデータパケットのシーケンス番号ＳＮ（Ｓｅｑｕｅｎｃｅ  Ｎｕｍｂｅｒ）によって損失の有無を監視している。データパケット受信部２２１は、データパケットの損失を検知した場合、損失を検知した直後にＩＰ部２１０にＡＣＫパケットを送信する。
【００６８】
図３は、図２に示す演算部２５１の動作例を示すフローチャートである。図３において、演算部２５１は、制御部２５０から送信するＡＣＫパケットのサイズと上り回線１１２の回線速度とを取得すると（ステップＳＴ３０１）、送信バッファ２４０においてＡＣＫパケットが蓄積されないようなＡＣＫパケット生成間隔である８＊ＳＡ／ｒｕ〔ｓｅｃ〕を算出し（ステップＳＴ３０２）、その算出したＡＣＫパケット生成間隔を遅延ＡＣＫタイマ部２２３に通知する（ステップＳＴ３０２）。これによって、演算部２５１にて算出されたＡＣＫパケット生成間隔が遅延ＡＣＫタイマ２２３の周期に設定される。
【００６９】
なお、演算部２５１では、遅延ＡＣＫタイマ部２２３にタイマ周期として設定するＡＣＫパケット生成間隔は、次のようにして求めてもよい。即ち、演算部２５１では、希望するＡＣＫパケットの平均送信速度と上り回線１１２の回線速度との比として定義するＡＣＫパケットの帯域占有率αとするとき、前記算出値（８＊ＳＡ／ｒｕ〔ｓｅｃ〕）にαを掛けた値（８＊α＊ＳＡ／ｒｕ〔ｓｅｃ〕）を算出し、その算出結果を遅延ＡＣＫタイマ部２２３に送ってもよい。
【００７０】
次いで、図４と図５を参照して、図１に示した移動通信システムにおいて、ＴＣＰを用いたパケット通信を行なう場合の通信手順について説明する。なお、図４は、図１に示すサーバ１０３と移動端末１００との間で行われる本実施の形態によるパケット通信の通信手順を説明するシーケンス図である。図５は、図４に示す手順Ｓ４６２から手順Ｓ４６４までの区間における図１に示す送信バッファ２４０の状態を説明する図である。
【００７１】
ここで、図４では、説明を簡単化するために、データパケットのペイロードサイズを全て１〔ｂｙｔｅ〕とし、送信ウインドウサイズを“７”とした。そして、１つのＡＣＫパケットを送信するのに要する時間を遅延ＡＣＫタイマの周期とした。なお、サーバ１０３と移動端末１００との間にある矢印はパケットの送信と送信方向を表し、矢印の傾きはサーバ１０３と移動端末１００の間の伝搬遅延を表している。
【００７２】
また、図５では、図４に示す手順Ｓ４６２から手順Ｓ４６４までの区間において、移動端末１００が生成したＡＣＫパケットを送信バッファ２４０に蓄積して、読み出し部２４１を介して上り回線１１２に送出する様子を示している。なお、読み出し部２４１の右側が送信バッファ２４０を表し、左側が上り回線１１２を表している。
【００７３】
図４において、「遅延ＡＣＫタイマ起動中」と表記する手順Ｓ４６２から手順Ｓ４６３までの区間、手順Ｓ４６３から手順Ｓ４６４までの区間、手順Ｓ４６４から手順Ｓ４６５までの区間等は、遅延ＡＣＫタイマ２２３の周期であり、１つのＡＣＫパケットを送出するのに要する時間に設定されている。そして、遅延ＡＣＫタイマ２２３の周期が満了するときに、ＡＣＫパケットの生成動作が行われ、それ以外の時ではＡＣＫパケットの生成動作が行われない。したがって、サーバ１０３と移動端末１００との間でのパケット通信は、次のようにして行われる。
【００７４】
サーバ１０３は、手順Ｓ４８１において、送信ウインドウサイズ“７”に応じた７個のデータパケット（データパケット（ＳＮ＝１）４０１からデータパケット（ＳＮ＝７）４０７）を移動端末１００に順々に送信する。
【００７５】
移動端末１００では、手順Ｓ４６１において先頭のデータパケット（ＳＮ＝１）４０１を受信する。その後の手順Ｓ４６２において、初めて遅延ＡＣＫタイマ２２３が満了する。これによってＡＣＫパケット４４１が生成される。ＡＣＫパケット４４１のＡＣＫ番号ＡＮには、次に受信することが期待されるデータパケットのシーケンス番号ＳＮ“２”であるＡＣＫ番号ＡＮが設定される。生成されたＡＣＫパケット（ＡＮ＝２）４４１は、図５に示すように送信バッファ２４０に蓄積される。送信バッファ２４０での待ち合わせはないので、読み出し部２４１によって直ちに上り回線１１２に送出が開始される。
【００７６】
同時に、手順Ｓ４６２において、遅延ＡＣＫタイマ２２３は再起動し、次に満了する手順Ｓ４６３に向かって計時が行われる。遅延ＡＣＫタイマ２２３が起動中である手順Ｓ４６２から手順Ｓ４６３までの期間は、ＡＣＫパケット（ＡＮ＝２）４４１の送出中である。この期間内にデータパケット（ＳＮ＝２）４０２とデータパケット（ＳＮ＝３）４０３とが受信されるが、ＡＣＫパケットの生成は行われない。
【００７７】
遅延ＡＣＫタイマ２２３が満了する手順Ｓ４６３においてＡＣＫパケット（ＡＮ＝２）４４１の送出が終了する。ＡＣＫパケット（ＡＮ＝２）４４１の全てがサーバ１０３に受信されるまでには、手順Ｓ４６３から伝搬遅延分の時間を要する。つまり、サーバ１０３では、手順Ｓ４６３から伝搬遅延分の時間を経過した手順４８２にてＡＣＫパケット（ＡＮ＝２）４４１を受信する。これは、送信ウインドウ分の７つのデータパケットを送信した後であるので、サーバ１０３では、送信ウインドウの更新を行いながらの送信動作に移行する。
【００７８】
即ち、サーバ１０３は、手順Ｓ４８２において、ＡＣＫパケット（ＡＮ＝２）４４１のＡＣＫ番号ＡＮから先頭のデータパケット（ＳＮ＝１）４０１の１パケットが受信されたことを認識し、送信ウインドウを１パケット分更新し、次のデータパケット（ＳＮ＝８）４０８を送信する。
【００７９】
移動端末１００では、遅延ＡＣＫタイマ２２３が満了する手順Ｓ４６３においてＡＣＫパケットを生成するが、既に１以上のデータパケットを受信しているので、遅延ＡＣＫタイマ２２３が満了する直前に受信したデータパケット（ＳＮ＝３）４０３の次のデータパケット（ＳＮ＝４）からの受信を期待したＡＣＫパケット４４２（ＡＮ＝４）を生成し、送信バッファ２４０に蓄積する。
【００８０】
しかし、このときには、読み出し部２４１が先に読み出したＡＣＫパケット４４１（ＡＮ＝２）は、送出を終了している。したがって、今回のＡＣＫパケット４４２（ＡＮ＝４）は、送信バッファ２４０で待機させることなく、この手順Ｓ４６３において読み出し部２４１によって直ちに上り回線１１２に送出が開始される。
【００８１】
同時に、手順Ｓ４６３において、遅延ＡＣＫタイマ２２３は再起動し、次に満了する手順Ｓ４６４に向かって計時が行われる。遅延ＡＣＫタイマ２２３が起動中である手順Ｓ４６３から手順Ｓ４６４までの期間は、ＡＣＫパケット（ＡＮ＝４）４４２の送出中である。この期間内にデータパケット（ＳＮ＝４）４０４とデータパケット（ＳＮ＝５）４０５とが受信されるが、ＡＣＫパケットの生成は行われない。
【００８２】
遅延ＡＣＫタイマ２２３が満了する手順Ｓ４６４においてＡＣＫパケット（ＡＮ＝４）４４２の送出が終了する。ＡＣＫパケット（ＡＮ＝４）４４２の全てがサーバ１０３に受信されるまでには、手順Ｓ４６４から伝搬遅延分の時間を要する。つまり、サーバ１０３では、手順Ｓ４６４から伝搬遅延分の時間を経過した手順Ｓ４８３にてＡＣＫパケット（ＡＮ＝４）４４２を受信する。
【００８３】
この場合には、ＡＮ＝４であるので、サーバ１０３では、データパケット（ＳＮ＝２）４０２とデータパケット（ＳＮ＝３）４０３の２パケットが受信されたことを認識し、送信ウインドウを２パケット分更新し、２つのデータパケット（ＳＮ＝９）４０９、（ＳＮ＝１０）４１０を順々に送信する。
【００８４】
移動端末１００では、遅延ＡＣＫタイマ２２３が満了する手順Ｓ４６４においてＡＣＫパケットを生成するが、既に１以上のデータパケットを受信しているので、遅延ＡＣＫタイマ２２３が満了する直前に受信したデータパケット（ＳＮ＝５）４０３の次のデータパケット（ＳＮ＝６）からの受信を期待したＡＣＫパケット４４３（ＡＮ＝６）を生成し、送信バッファ２４０に蓄積する。
【００８５】
しかし、このときには、読み出し部２４１が先に読み出したＡＣＫパケット４４２（ＡＮ＝４）は、送出を終了している。したがって、今回のＡＣＫパケット４４３（ＡＮ＝６）は、送信バッファ２４０で待機させることなく、この手順Ｓ４６４において読み出し部２４１によって直ちに上り回線１１２に送出が開始される。
【００８６】
同時に、手順Ｓ４６４において、遅延ＡＣＫタイマ２２３は再起動し、次に満了する手順Ｓ４６５に向かって計時が行われる。遅延ＡＣＫタイマ２２３が起動中である手順Ｓ４６４から手順Ｓ４６５までの期間は、ＡＣＫパケット（ＡＮ＝６）４４３の送出中である。この期間内にデータパケット（ＳＮ＝６）４０６とデータパケット（ＳＮ＝７）４０７とが受信されるが、ＡＣＫパケットの生成は行われない。
【００８７】
遅延ＡＣＫタイマ２２３が満了する手順Ｓ４６５においてＡＣＫパケット（ＡＮ＝６）４４３の送出が終了する。ＡＣＫパケット（ＡＮ＝６）４４３の全てがサーバ１０３に受信されるまでには、手順Ｓ４６５から伝搬遅延分の時間を要する。つまり、サーバ１０３では、手順Ｓ４６５から伝搬遅延分の時間を経過した手順Ｓ４８４にてＡＣＫパケット（ＡＮ＝６）４４３を受信する。
【００８８】
この場合には、ＡＮ＝６であるので、サーバ１０３では、データパケット（ＳＮ＝４）４０４とデータパケット（ＳＮ＝５）４０５の２パケットが受信されたことを認識し、送信ウインドウを２パケット分更新し、２つのデータパケット（ＳＮ＝１１）４１１、（ＳＮ＝１２）４１２を順々に送信する。以降、移動端末１００とサーバ１０３との間で同様の動作が繰り返される。
【００８９】
このように、本発明の実施の形態１によれば、移動端末１００は１つのＡＣＫパケットを送信するのに要する時間を元にしてＡＣＫパケットの生成間隔を決定し、直前のＡＣＫパケットを上り回線１１２に送出終了したタイミングにおいて新たなＡＣＫパケットを生成し、上り回線１１２に送出を開始するようにしたので、送信バッファ２４０にＡＣＫパケットが蓄積することを抑制することができる。
【００９０】
また、移動端末１００は、ＡＣＫパケットを生成するとき、その時点で最新の受信確認情報をＡＣＫパケットに格納し、ＡＣＫパケットを生成すると、直ちに上り回線１１２に送出を開始することができるので、最新の受信確認情報をサーバ１０３に伝えるのに要する時間を従来の技術に比べて低減することができる。
【００９１】
このとき、サーバ１０３は、移動端末１００が１つのＡＣＫパケットを送出するのに要する時間間隔で１つのＡＣＫパケットを受信し、そのＡＣＫパケットが格納する受信確認情報に応じて送信ウインドウを更新するが、本実施の形態１によれば、１つのＡＣＫパケットの受信に伴うウインドウの更新幅を大きくすることができる。
【００９２】
例えば、平均送信スループットを大きくすることを期待して下り回線１１１の回線速度を速くした場合、移動端末１００では遅延ＡＣＫタイマの起動中に受信するデータパケット数が多くなるが、それに応じて１つのＡＣＫパケットに格納する受信確認情報を多くすることができる。その結果、１つのＡＣＫパケットの受信に伴うサーバ１０３の送信ウインドウ更新幅が大きくなるので、システムが希望する平均送信ＴＣＰスループットに到達することが可能となる。
【００９３】
（実施の形態２）
図６は、本発明の実施形態２に係る非対称通信路にＴＣＰを適用したパケット通信方法を説明するために用いる移動通信システムの構成例を示すブロック図である。なお、図６では、図１に示した構成と同一ないしは同等である構成要素には同一の符号が付されている。ここでは、実施の形態２に関わる部分を中心に説明する。
【００９４】
図６示す移動通信システムでは、図１に示した構成の構成において、移動端末１００に代えて移動端末６００が設けられている。この移動端末６００は、図７に示すように構成されている。
【００９５】
図７は、図６に示した移動端末が非対称通信路にＴＣＰを適用した本実施の形態２によるパケット通信を実施する構成を示すブロック図である。なお、図７では、図２に示した構成と同一ないしは同等である構成要素には同一の符号が付されている。ここでは、実施の形態２に関わる部分を中心に説明する。
【００９６】
図７に示す移動端末６００では、図２に示した構成において、制御部２５０と演算部２５１が無く、ＴＣＰ部２２０に代えてＴＣＰ部７２０が設けられている。ＴＣＰ部７２０は、データパケット受信部７２１と、書き込み部７２２と、ＡＣＫパケット送信バッファ７２３とを備えている。
【００９７】
データパケット受信部７２１は、ＩＰ部２１０から受信したデータパケットにＴＣＰ処理を施してアプリケーション部２３０に送るとともに、データパケットを受信する度に、ＡＣＫ番号ＡＮを設定したＡＣＫパケットを生成し、書き込み部７２２に送信する。
【００９８】
書き込み部７２２は、データパケット受信部７２１から受信した新たに生成されたＡＣＫパケットをＡＣＫパケット送信バッファ７２３に書き込む。この書き込み処理の際に、書き込み部７２２は、新たに生成されたＡＣＫパケットと直前のＡＣＫパケット（最後にＡＣＫパケット送信バッファ７２３に書き込まれたＡＣＫパケット）とのＡＣＫ番号ＡＮを比較する。
【００９９】
そして、書き込み部７２２は、比較結果が不一致の場合は、新たに生成されたＡＣＫパケットは、直前のＡＣＫパケットが格納している受信確認情報も暗黙の内に格納していると考えられるので、直前のＡＣＫパケットをＡＣＫパケット送信バッファ７２３から削除し、新たに生成されたＡＣＫパケットをＡＣＫパケット送信バッファ７２３に書き込む。
【０１００】
即ち、この場合には、例えば、直前のＡＣＫパケットのＡＣＫ番号ＡＮが１０で、新たに生成したＡＣＫパケットのＡＣＫ番号ＡＮが２０である場合に、直前のＡＣＫパケットは、「シーケンス番号ＳＮが９以下のデータパケットを移動端末６００が受信した」という受信確認情報を格納している。それに対し、新たに生成されたＡＣＫパケットは、「シーケンス番号ＳＮが１９以下のデータパケットを移動端末６００が受信した」という受信確認情報を格納している。つまり、新たに生成されたＡＣＫパケットは、直前のＡＣＫパケットが格納している受信確認情報も暗黙の内に格納していることになる。それ故、直前のＡＣＫパケットは、削除する。
【０１０１】
一方、書き込み部７２２は、比較結果が一致した場合は、新たに生成されたＡＣＫパケットは直前のＡＣＫパケットと同じＡＣＫ番号ＡＮを持つ重複ＡＣＫパケットであると考えられるので、新たに生成されたＡＣＫパケットをＡＣＫパケット送信バッファ７２３に書き込む。
【０１０２】
そして、ＡＣＫパケット送信バッファ７２３に書き込まれたＡＣＫパケットは、ＡＣＫパケット送信バッファ７２３から書き込まれた順序で読み出され、ＩＰ部２１０に送出される。
【０１０３】
次に、図８を参照して、書き込み部７２２の動作について説明する。図８は、図７に示す書き込み部の動作例を示すフローチャートである。図８において、書き込み部７２２は、データパケット受信部７２１から新たに生成されたＡＣＫパケットを受信したか否かを判断する（ステップＳＴ８０１）。この判断の結果、受信していない場合（ステップＳＴ８０１：Ｎｏ）は本処理を終了する。受信した場合（ステップＳＴ８０１：Ｙｅｓ）はステップＳＴ８０２に進み、直前のＡＣＫパケットがＡＣＫパケット送信バッファ７２３に存在するか否かを判断する。
【０１０４】
ステップＳＴ８０２での判断結果、直前のＡＣＫパケットがＡＣＫパケット送信バッファ７２３に存在しない場合（ステップＳＴ８０２：Ｎｏ）は、ステップＳＴ８０５に進み、ＡＣＫパケット送信バッファ７２３に存在する場合（ステップＳＴ８０２：Ｙｅｓ）はステップＳＴ８０３に進む。
【０１０５】
ステップＳＴ８０３では、新たに生成されたＡＣＫパケットと直前のＡＣＫパケットとのＡＣＫ番号ＡＮを比較し、ＡＣＫ番号ＡＮが一致するか否かを判断する。つまり、新たに生成されたＡＣＫパケットが重複ＡＣＫパケットであるか否かを判断する。この判断結果、重複ＡＣＫパケットである場合（ステップＳＴ８０３：Ｙｅｓ）は、ステップＳＴ８０５に進み、重複ＡＣＫパケットパケットではない場合（ステップＳＴ８０３：Ｎｏ）はステップＳＴ８０４に進む。
【０１０６】
ステップＳＴ８０４では、ＡＣＫパケット送信バッファ７２３に存在していた直前のＡＣＫパケットを削除してステップＳＴ８０５に進む。ステップＳＴ８０５では、新たに生成されたＡＣＫパケットをＡＣＫパケット送信バッファ７２３に書き込み、本処理を終了する。
【０１０７】
本実施の形態２に係るパケット通信手順は、図４に示した実施の形態１に係るパケット通信手順と基本的に同じであるため説明を省略する。ＡＣＫパケットを生成するトリガが変わるだけであり、どちらの場合も送出するＡＣＫパケットに最新の情報を格納することができる。
【０１０８】
このように、本実施の形態２によれば、移動端末６００のＴＣＰ部に設けたＡＣＫパケット送信バッファ７２３においては、新しいＡＣＫパケットが古いＡＣＫパケットを上書きするため、最新の受信確認情報を含んでいるＡＣＫパケットだけが存在する。読み出し部７４１は、ＡＣＫパケットを送出終了すると、ＡＣＫパケット送信バッファ７２３からＡＣＫパケットを受信し上り回線１１２に送出開始するので、最新の受信確認情報をサーバ１０３に伝えることができる。
【０１０９】
サーバ１０３は、移動端末６００が１つのＡＣＫパケットを送出するのに要する時間の間隔で１つのＡＣＫパケットを受信し、そのＡＣＫパケットが格納している受信確認情報に応じて送信ウインドウを更新する。よって、例えば、平均送信スループットを大きくすることを期待して下り回線１１１の回線速度を速くした場合、ＡＣＫパケット送信バッファに書き込まれるＡＣＫパケット数が多くなるが、最後に書き込まれたＡＣＫパケット以外は破棄され、最後に書き込まれたＡＣＫパケットが格納している受信確認情報が多くなる。これによって、１つのＡＣＫパケットの受信に伴うサーバ１０３の送信ウインドウ更新幅が大きくなるので、システムが希望する平均送信ＴＣＰスループットに到達することが可能となる。
【０１１０】
ここで、移動端末１００，６００では、データパケット受信部２２１，７２１は、データパケットの損失を検知すると、直前のＡＣＫパケットと同じＡＣＫ番号ＡＮを持つ複数のＡＣＫパケットを重複して生成する。この場合、ＴＣＰのアルゴリズムに従えば、サーバ１０３が重複ＡＣＫパケットの受信によって輻輳を検知するためには、連続した三個の重複ＡＣＫパケットが受信できれば十分である。
【０１１１】
そこで、データパケット受信部２２１，７２１は、ＡＣＫパケットの送信回数をカウントするカウンタを備え、新たに生成したＡＣＫパケットと直前のＡＣＫパケットとのＡＣＫ番号を比較し、比較の結果、不一致の場合にはカウンタを初期化し、一致した場合にはカウンタを更新することにより、同番のＡＣＫパケットが連続した回数をカウントし、そのカウント値が予め設定した値以上のときには、新たに生成したＡＣＫパケットを破棄するようにしてもよい。
【０１１２】
これによれば、データパケットの損失を検知して連続してＮ（Ｎ＞３）個以上の重複ＡＣＫパケットを生成した場合には、Ｎ個目以降の重複ＡＣＫパケットについてはＩＰ部２１０に送信せずに破棄することができるので、伝送エラーの多い状況下で行われる重複したＡＣＫパケットの生成・送信が抑制でき、無駄なＡＣＫパケットの送信をさらに抑制することができる。
【０１１３】
なお、移動端末１００，６００のハードウエア構成は、任意であって、特に限定されない。例えば、移動端末１００，６００は、ＣＰＵや記憶装置（ＲＯＭ、ＲＡＭ、ハードディスク、その他の各種記憶媒体）を備えたコンピュータによって実現される。このように移動端末１００，６００がコンピュータによって実現される場合、移動端末１００，６００は、その動作を記述したプログラムをＣＰＵが実行することによって所定の動作を行なう。
【０１１４】
【発明の効果】
以上説明したように、本発明によれば、ＡＣＫパケットの送信を抑制する制御が行えるので、サーバにおいてシステムの期待する平均送信ＴＣＰスループットを得ることができる。
【図面の簡単な説明】
【図１】本発明の実施形態１に係る非対称通信路にＴＣＰを適用したパケット通信方法を説明するために用いる移動通信システムの構成例を示すブロック図
【図２】図１に示した移動端末が非対称通信路にＴＣＰを適用した本実施の形態１によるパケット通信を実施する構成を示すブロック図
【図３】図２に示す演算部の動作例を示すフローチャート
【図４】図１に示すサーバと移動端末との間で行われる本実施の形態によるパケット通信の通信手順を説明するシーケンス図
【図５】図４に示す手順Ｓ４６２から手順４６４までの区間における図１に示す送信バッファの状態を説明する図
【図６】本発明の実施形態２に係る非対称通信路にＴＣＰを適用したパケット通信方法を説明するために用いる移動通信システムの構成例を示すブロック図
【図７】図６に示した移動端末が非対称通信路にＴＣＰを適用した本実施の形態２によるパケット通信を実施する構成を示すブロック図
【図８】図７に示す書き込み部の動作例を示すフローチャート
【図９】非対称通信路にＴＣＰを適用した従来のパケット通信方法を説明するために用いる移動通信システムの構成例を示すブロック図
【図１０】ＴＣＰパケットのフォーマット
【図１１】サーバが行うウインドウ制御を説明する図
【図１２】図９に示す移動端末が非対称通信路にＴＣＰを適用した従来のパケット通信を実施する構成を示すブロック図
【図１３】図９に示すサーバと移動端末との間で行われる従来のパケット通信の通信手順を説明するシーケンス図
【図１４】図１３に示す手順Ｓ１３６２から手順１３６５までの区間における図１２に示す送信バッファの状態を説明する図
【符号の説明】
１００，６００  移動端末（通信装置）
１０１  無線基地局装置
１０２  ＩＰネットワーク
１０３  サーバ
１１１  下り回線（受信回線）
１１２  上り回線（送信回線）
２１０  ＩＰ部
２２０，７２０  ＴＣＰ部
２２１，７２１  データパケット受信部
２２３  遅延ＡＣＫタイマ部
２３０  アプリケーション部
２４０  送信バッファ
２５０  制御部
２５１  演算部
７２２  書き込み部
７２３  ＡＣＫパケット送信バッファ
【図１】
2004364217.tif 000003
【図２】
2004364217.tif 000004
【図３】
2004364217.tif 000005
【図４】
2004364217.tif 000006
【図５】
2004364217.tif 000007
【図６】
2004364217.tif 000008
【図７】
2004364217.tif 000009
【図８】
2004364217.tif 000010
【図９】
2004364217.tif 000011
【図１０】
2004364217.tif 000012
【図１１】
2004364217.tif 000013
【図１２】
2004364217.tif 000014
【図１３】
2004364217.tif 000015
【図１４】
2004364217.tif 000016