(57)【要約】 【課題】  バースト的なＡＣＫの発生を防止し、リバースリンクに対する負荷を軽減することができるデータ通信装置を提供する。【解決手段】  伝送制御手段２は、送受信手段１によってデータが受信された場合、ＡＣＫを生成し、ＡＣＫ削減手段４へ出力する。受信間隔検出手段３は、データが受信される時間間隔を検出し、この時間間隔が第１の所定値以上であった場合に、ＡＣＫ削減手段４に対してＡＣＫ削減動作を開始させる。この場合、ＡＣＫ削減手段４は、送受信手段１を介して送信されるＡＣＫの数を削減する。ＡＣＫ間隔検出手段６は、伝送制御手段２によってＡＣＫが生成される時間間隔を検出し、この時間間隔が第２の所定値以上であった場合に、ＡＣＫ削減手段４に対してＡＣＫ削減動作を停止させる。【選択図】    図２
2006101339.tif 000002
【特許請求の範囲】
【請求項１】
データ送受信を行う送受信手段と、
該送受信手段によって受信されたデータに対応する確認応答情報を生成し、前記送受信手段を介して前記確認応答情報を出力する伝送制御手段と、
前記送受信手段によって受信されるデータの受信間隔を検出する第１検出手段と、
前記伝送制御手段によって前記確認応答情報が生成される間隔を検出する第２検出手段と、
前記第１検出手段が検出する受信間隔が所定の間隔を超えた場合、前記第２検出手段が検出する受信間隔が所定の間隔を超えるまで、前記伝送制御手段が生成する前記確認応答情報を削除する削除手段と、
を備えたことを特徴とするデータ通信装置。
【請求項２】
前記第１検出手段が検出する受信間隔が所定の間隔を超えた場合、前記削除手段は、前記伝送制御手段が生成する最新の前記確認応答情報のみを記憶することにより、前記伝送制御手段が生成する前記確認応答情報を削除することを特徴とする請求項１に記載のデータ通信装置。
【請求項３】
前記伝送制御手段が生成する前記確認応答情報の識別情報の重複を検出する重複検出手段を備え、
前記削除手段は、前記重複検出手段が所定回数の重複を検出してから前記確認応答情報を削除する
ことを特徴とする請求項１に記載のデータ通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット交換網を経由する通信を行う場合のトランスポート層プロトコルを実行する伝送制御手段を備えたデータ通信装置に関し、特に、一時的な遅延の発生とバースト的なパケットの送信を伴う通信路を通信経路中に含む通信における負荷の改善を図ったデータ通信装置に関する。
【背景技術】
【０００２】
従来、インターネット通信において信頼性を保証するトランスポート層プロトコルとしてＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）が知られている。ＴＣＰはＲＦＣ７９３、ＲＦＣ１１２２、ＲＦＣ２５８１、ＲＦＣ２５８２などに文書化されているが、その改良のための研究が続けられている。ＴＣＰは、ＯＳＩ参照モデルにおいてトランスポート層に位置し、コネクションの制御、ストリーム型通信の実現、誤り制御やフロー制御などの品質の制御、ポート番号で指定されるポート間の通信、および輻輳制御（ネットワークのトラヒックが増加することにより、有効な通信を行うことができなくなる輻輳状態にならないように通信を制御する技術）を行っている。
【０００３】
ＴＣＰに基づいた通信においては、送信すべきデータをセグメントと呼ばれる小さなデータに分割し、そのセグメントをＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットに格納して送信する。受信側はＩＰパケットを受信すると、ＴＣＰに基づいてセグメントを取り出し、順番に連結して元のデータを復元する。
【０００４】
ネットワーク層に位置するＩＰは、ＩＰアドレスで指定されるホスト間の通信を規定する。ＴＣＰのコネクションは、ＩＰアドレスに加えてポート番号で指定される二つのポート間で確立される。このため、複数のアプリケーションが同時に通信経路を使用しても、ポート番号の違いによって区別することができる。
【０００５】
ＴＣＰの誤り制御はＡＣＫ（ＡＣＫｎｏｗｌｅｄｇｅ：確認応答、肯定応答）によって実現されており、受信側から送信側へＡＣＫが送信され、送信側は、ＡＣＫの返らないデータセグメントを再送する。また、送信側はＴＣＰに基づいて、スループットを大きくするために、あるウインドウサイズ分のデータセグメントを送信しようとする。この方式はスライディングウインドウフロー制御と呼ばれ、ウインドウサイズ分のデータセグメントの送信が許可され、そのデータセグメントに対するＡＣＫが受信側から返信されるとウインドウのシーケンス番号がスライドしていく。送信側が持つこのウィンドウはＣｏｎｇｅｓｔｉｏｎ  ｗｉｎｄｏｗ（ｃｗｎｄ：輻輳ウィンドウ）と呼ばれ、輻輳制御も兼ねている。
【０００６】
ＴＣＰのフロー制御は、受信側から送信側へ返されるＡＣＫの中で、Ｒｅｃｅｉｖｅｒ  ｗｉｎｄｏｗ（ｒｗｎｄ）を通知することによっても行われる。このｒｗｎｄは、受信側が受け取ることができるデータ量を表しており、ｒｗｎｄとして０を通知すれば、送信を停止させることができる。ｒｗｎｄは、受信側が用意しているバッファ量に依存して決まる。送信側はｒｗｎｄとｃｗｎｄのうち小さい方を超えないように送信を抑制する。
【０００７】
スライディングウインドウフロー制御の目的は、ＡＲＱ（自動再送要求）による再送制御を行うことにより、受信側のバッファが不足する事態を避けると共に、スループットを向上させることにある。インターネットでは複数のデータリンクを経由して通信が行われるため、特定のデータリンク層に依存せずに、トランスポート層においてフロー制御を行う必要がある。
【０００８】
以下、ＴＣＰの輻輳制御について説明する。ＴＣＰの輻輳制御においては、ネットワークの輻輳崩壊を避けるために、スロースタートと輻輳回避動作とが行われる。スロースタートにおいては、送信の開始時にｃｗｎｄを小さく設定しておき、受信側からＡＣＫが返送されるごとにｃｗｎｄを指数関数状に増加させる。例えば、ＡＣＫが１個返送されるたびにｃｗｎｄは１増加する。
【０００９】
つまり、１個のＡＣＫに対して２個のデータセグメントが送信可能となる。輻輳回避は、ｃｗｎｄを少しずつ増加させる動作である。輻輳回避においては、ＡＣＫが１個返送されるたびにｃｗｎｄは１／ｃｗｎｄ増加する。つまり、ｃｗｎｄ個のＡＣＫが返送されると、現在のｃｗｎｄに対して、ｃｗｎｄ＋１が次のｃｗｎｄの値となる。フロー制御が受信側に対する配慮であるのに対し、輻輳制御はネットワークに対する配慮である。
【００１０】
無線データ通信の普及により、通信経路中に無線通信路を含む利用形態が増えている。高速な無線通信路においては、一時的な遅延の発生とバースト的なパケットの送信とを伴うことがある。無線通信路のデータリンク層および物理層においては、自動再送要求（ＡＲＱ）に基づいたプロトコルを実行することにより信頼性を高めている。無線通信路にある受信端末は、受信したデータに誤りを検出すると、そのデータの再送を送信側に要求し、要求したデータが到着するまでの間に受信したデータを一時的にバッファに蓄積して遅延させる。
【００１１】
無線通信路の送信側にある基地局は、受信端末が受信確認応答（ＡＣＫ）を返送するまでは、再送に備えてデータを保持している。無線通信路においては一時的に品質が悪化することがあるため、基地局は変調方式とデータ伝送速度とを変えることによって、誤り率が低くなり過ぎないように調節をしている。それでも、無線通信路の誤り率は有線通信路に比べて大きく、無線通信路においては再送制御が必要となっている。
【００１２】
ＴＣＰはＤｅｌａｙｅｄ ＡＣＫと呼ばれる機構を備えている。Ｄｅｌａｙｅｄ  ＡＣＫに関してはＲＦＣ１１２２、ＲＦＣ８１３で述べられている。Ｄｅｌａｙｅｄ ＡＣＫにおいては、ＡＣＫの送信を遅延させて、次のＡＣＫが発生するか、タイムアウトするか、または送信データセグメントが発生した際にＡＣＫを送信する。ＡＣＫを遅延させた状態で次のＡＣＫが発生した場合、送信するＡＣＫが２個に１個の割合で削減されることになり、また、送信データセグメントが発生した場合には、それにＡＣＫを相乗りさせることにより、送信するＡＣＫの個数が削減される。
【００１３】
このＤｅｌａｙｅｄ ＡＣＫの動作は、Ｔｅｌｎｅｔアプリケーションの実行時にはＡＣＫパケットの数を減らすというメリットがあったが、大きなデータをダウンロードする場合には特にメリットがなく、むしろＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ：遅延）のばらつきを生じさせるといったデメリットがある。また、Ｄｅｌａｙｅｄ ＡＣＫの方式を拡張してＡＣＫの送信の遅延を大きくし、ＡＣＫの個数の削減率を大きくすると、それに応じて、送信側から送信されるデータセグメントがバースト的になり、フォワードリンク（下り）で輻輳が発生しやすくなる。
【００１４】
なお、ＡＣＫを削減する技術として、以下のようなものが開示されている。フォワードリンクの伝送速度が大きくリバースリンク（上り）の伝送速度が小さい非対称な通信路において、リバースリンクの通信路で輻輳が発生しかけたときに、待ち行列の中に既に記憶されている最古のＡＣＫパケットを廃棄して最新のＡＣＫパケットを待ち行列に記憶することにより、先頭から落とすバッファ理論（ｄｒｏｐ−ｆｒｏｍ−ｆｒｏｎｔ  ｂｕｆｆｅｒ  ｄｉｓｃｉｐｌｉｎｅ）に基づいてＡＣＫの数の削減を実行するルーターが開示されている。この装置は、非対称な通信路では伝送速度が小さいリバースリンクで輻輳が生じやすいことに着目し、ルーターの中で送信できずに滞留しているＡＣＫパケットのうち、廃棄した場合の悪影響が最も少ない最古のＡＣＫパケットを廃棄するようにしたものである。
【００１５】
従来、無線端末がデータの送信側へ再送要求を送信しても、要求したデータが再送されない場合、無線通信路の通信プロトコルによって定められた遅延が発生する。無線端末は、ある所定の時間だけ再送を待つが、その再送がタイムアウトした場合に、無線端末はそのデータが失われたものとして、そのデータの再送を待っている間に受信してバッファに蓄積しているデータを下流に出力する。無線通信路のフォワードリンクの帯域は数百ｋｂｐｓに達しており、将来はさらに大きくなると想定される。このため、無線通信路において生じる一時的な遅延の後には、データパケットがバースト的に送信されることになる。
【００１６】
このようなバースト的なデータセグメントが到着した下流のデータ通信装置は、ＴＣＰに基づいてＡＣＫパケットをバースト的に送信する。ただし、一部のデータセグメントが喪失している場合には、ＡＣＫにおけるシーケンス番号は増大しない。このＡＣＫが、送信側におけるＴＣＰの再送タイムアウト前に到着した場合には重複ＡＣＫと認識され、送信側によって高速再転送が実行されるが、再送タイムアウトが発生していれば、送信側はＴＣＰに基づいて、ＡＣＫの到着を待たずにデータの再送を行う。
【００１７】
上述した通信の様子は図１２に示されている。図１２は、従来知られているＴＣＰ ＮｅｗＲｅｎｏ（ＲＦＣ２５８２）の受信側での動作を示すタイムシーケンスグラフであり、横軸は時間、縦軸はシーケンス番号を表している。なお、通常のタイムシーケンスグラフは送信側で測定されるものであるが、図１２は受信側での状況を示している。受信側においては、無線通信路に接続している無線端末と、この無線端末とデータの入出力を行う下流側のデータ通信装置とが存在するものとする。図１２はデータセグメント３０の受信と、それに対するＡＣＫ３１の送信とをプロットしたものである。区間３２において、データ通信装置は、無線端末を介してデータセグメント３０を受信すると、わずかな遅延の後ただちにＡＣＫ３１を送信するため、両者のマークはほぼ重なってプロットされている。
【００１８】
区間３２においては順調にデータセグメント３０が下流のデータ通信装置に到着しているが、区間３３においては大きな遅延が発生している。この間、無線端末は、再送要求したデータが再送されるのを待っており、その間も無線端末は次々とデータを受信し、そのデータを蓄積していく。無線通信路において再送要求したデータが再送されずにタイムアウトすると、無線端末は蓄積していたデータを下流に放出するため、区間３４で示されるように、短時間に大量のデータセグメント３０が下流のデータ通信装置に到着し、それらに対して大量のＡＣＫ３１が送信される。ただし、一部のデータセグメント３０が到着していないため、ＡＣＫのシーケンス番号が一定のままで、大量の重複ＡＣＫが送信されている。
【００１９】
送信側は、ＴＣＰに基づいて重複ＡＣＫを検出するか、あるいは再送要求がタイムアウトした場合にデータセグメントの再送を行い、区間３５でこれが無線端末および下流のデータ通信装置に届いたことが示されている。再送されたデータセグメントに対するＡＣＫは、次に到着すべきデータセグメントのシーケンス番号であるため、区間３５に示されるように、ＡＣＫ番号が増大する。その後、区間３６において通信が順調に回復している。
【００２０】
無線通信路は、その帯域幅が比較的狭いため、多くの場合、通信経路中でのボトルネックとなっている。そして、上述したようなバースト的なＡＣＫパケットは、無線通信路のリバースリンクに対して負荷をかけることになる。無線通信路のリバースリンクの帯域幅はフォワードリンクの帯域幅の１／１０程度しか用意されないことが多く、バースト的に発生したＡＣＫパケットは、無線端末の送信待ち行列に蓄積されることになる。なお、特許文献１には、ＴＣＰ／ＩＰによる回線インターフェース装置が記載されている。
【特許文献１】特開平７−６７０８８号公報
【発明の開示】
【発明が解決しようとする課題】
【００２１】
しかし、このようなデータパケットの一時的で大きな遅延と、それに続くバースト的なＡＣＫパケットの発生は、無線通信路の品質が悪化した場合に生じるため、そのときリバースリンクの帯域幅は通常時よりも小さくなっていることが多く、無線端末の送信待ち行列に蓄積されたバースト的なＡＣＫが全て送信されるまでには多くの時間がかかるという問題があった。この場合、その他のパケットがリバースリンクを通過するのにも多くの時間を要するという問題もあった。さらに、無線端末の送信待ち行列があふれて、ＡＣＫパケットやその他のパケットが喪失する可能性もあるという問題もあった。
【００２２】
本発明は、上述した問題点に鑑みてなされたものであって、バースト的なＡＣＫの発生を防止し、リバースリンクに対する負荷を軽減することができるデータ通信装置を提供することを目的とする。
【課題を解決するための手段】
【００２３】
本発明は上記の課題を解決するためになされたもので、請求項１に記載の発明は、データ送受信を行う送受信手段と、該送受信手段によって受信されたデータに対応する確認応答情報を生成し、前記送受信手段を介して前記確認応答情報を出力する伝送制御手段と、前記送受信手段によって受信されるデータの受信間隔を検出する第１検出手段と、前記伝送制御手段によって前記確認応答情報が生成される間隔を検出する第２検出手段と、前記第１検出手段が検出する受信間隔が所定の間隔を超えた場合、前記第２検出手段が検出する受信間隔が所定の間隔を超えるまで、前記伝送制御手段が生成する前記確認応答情報を削除する削除手段とを備えたことを特徴とするデータ通信装置である。
【００２４】
請求項２に記載の発明は、請求項１に記載のデータ通信装置において、前記第１検出手段が検出する受信間隔が所定の間隔を超えた場合、前記削除手段は、前記伝送制御手段が生成する最新の前記確認応答情報のみを記憶することにより、前記伝送制御手段が生成する前記確認応答情報を削除することを特徴とする。
【００２５】
請求項３に記載の発明は、請求項１に記載のデータ通信装置において、前記伝送制御手段が生成する前記確認応答情報の識別情報の重複を検出する重複検出手段を備え、前記削除手段は、前記重複検出手段が所定回数の重複を検出してから前記確認応答情報を削除することを特徴とする。
【発明の効果】
【００２６】
本発明によれば、バースト的なＡＣＫの発生を防止し、リバースリンクに対する負荷を軽減することができるという効果が得られる。
【発明を実施するための最良の形態】
【００２７】
以下、図面を参照し、本発明を実施するための最良の形態について説明する。図１は、本発明の第１の実施形態による通信システムの構成を示すブロック図である。以下、図中の各構成について説明する。本実施形態によるデータ通信装置２０は、ＩＥＥＥ８０２．３において定められているＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）によって無線端末２１と接続している。
【００２８】
無線端末２１は、データ通信装置２０にとってのデフォルトゲートウェイとなる。また、無線端末２１は、無線通信路を介して無線基地局２２とのデータリンクを形成している。このデータリンクにおいては、誤りの少ない信頼性のある通信を実現するために、ＡＲＱ （自動再送要求）を行うデータリンク層プロトコルが実行されている。このデータリンク上をＩＰパケットが運ばれる。無線基地局２２はインターネット２３に接続している。
【００２９】
インターネット２３に接続された情報サーバ２４（外部装置）は、ｈｔｔｐ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）サーバまたはｆｔｐ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）サーバとして稼動しており、データ通信装置２０からのリクエストに応じて情報を提供する。なお、情報サーバ２４においてもＴＣＰが実行されるが、データ通信装置２０と同様の機能を有している必要はなく、一般的に普及しているＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の機能を使用すればよい。もちろん、データ通信装置２０の機能を情報サーバ２４が備えていてもよい。
【００３０】
図２は、本発明の第１の実施形態によるデータ通信装置２０の機能構成を示すブロック図である。以下、図中の各構成について説明する。送受信手段１は、ＩＥＥＥ ８０２．３に定められている物理層／データリンク層を用いると共に、ネットワーク層にＩＰを用いて、パケット交換網を経由する通信を実現するハードウェアおよびソフトウェアである。この送受信手段１は通信路上の他の通信装置とパケットの送受信を行うと共に、そのパケットからＩＰパケットを取り出して処理する。
【００３１】
ＩＰパケットが自分に関するものであり、かつＴＣＰプロトコルを使用している場合には、送受信手段１はＩＰパケットを伝送制御手段２へ出力し、そのパケットに関する処理を依頼する。なお、ＴＣＰ以外のプロトコル、例えばＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）やＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）を使用した受信パケットに関しては、送受信手段１は、それを担当する図示せぬソフトウェアに処理を依頼する。
【００３２】
伝送制御手段２は、ＴＣＰに基づいて、誤り制御やフロー制御等の通信制御を行う。特に伝送制御手段２は、送受信手段１によってデータセグメントが受信された場合に、そのデータセグメントの受信を情報サーバ２４へ通知するためのＡＣＫ（確認応答情報）を生成する。また、伝送制御手段２は、ＴＣＰのコネクションごとにメモリーやタイマーなどのリソースの割り当てを行う。伝送制御手段２は、アプリケーション層等の図示せぬ上位プロトコルの機能手段とデータの受け渡しを行っており、送受信手段１から出力された受信データを上位プロトコルの機能手段へ渡すと共に、この機能手段から渡された送信データを送受信手段１へ出力する。
【００３３】
受信間隔検出手段３は、送受信手段１によってデータセグメントが受信される時間間隔を検出（測定）する。この受信間隔検出手段３は第１の所定値でタイムアウトするタイマーを有している。本実施形態において第１の所定値は５００ｍｓに設定されている。この値は無線通信路のデータリンクプロトコルが再送を諦めるまでのタイムアウト値に一致させている。このタイマーは、データセグメントが送受信手段１から伝送制御手段２に渡されるときに、送受信手段１の指示によってリセットされる。受信間隔検出手段３のタイマーがタイムアウトした場合、受信間隔検出手段３は、ＡＣＫ削減手段４を動作状態に設定することにより、ＡＣＫ削減手段４に対して、ＡＣＫの数を削減するＡＣＫ削減動作の開始を指示する。
【００３４】
ＡＣＫ削減手段４は、受信間隔検出手段３によってＡＣＫ削減動作の開始を指示された場合に、送受信手段１を介して無線端末２１へ送信されるＡＣＫの数を削減する。このＡＣＫ削減手段４は、バッファ５を有している。バッファ５は、ＡＣＫ削減手段４に入力されたＡＣＫを一時的に記憶する。バッファ５が空の状態で、ＡＣＫ削減手段４がＡＣＫ削減動作を行っている場合、伝送制御手段２からＡＣＫ削減手段４にＡＣＫが入力されると、ＡＣＫ削減手段４はそのＡＣＫをバッファ５に一時的に格納し、送受信手段１には出力せずにおく。
【００３５】
この状態でさらにＡＣＫが入力されると、ＡＣＫ削減手段４は新しいＡＣＫをバッファ５に上書きし、これも送受信手段１には出力せずにおく。これを繰り返すと、バッファ５には常に最新のＡＣＫが１個だけ記憶されていることになる。このＡＣＫは次にＡＣＫ削減手段４が停止された際に送受信手段１に出力され、無線端末２１へ送信される。つまり、連続して発生されたＡＣＫのうち、最新の１個だけが送信されることになる。
【００３６】
ＡＣＫ間隔検出手段６は、伝送制御手段２によるＡＣＫの発生の時間間隔を検出（測定）する。ＡＣＫ間隔検出手段６もタイマーを有しており、そのタイマーは第２の所定値でタイムアウトする。本実施形態において第２の所定値は１０ｍｓに設定されている。この値に関しては、バースト的なＡＣＫの発生が終了したことを検出することができるだけの大きさであって、かつできるだけ小さい値が設定される。伝送制御手段２は、ＡＣＫを発生したときにＡＣＫ間隔検出手段６に対してタイマーのリセットを指示する。この指示を受けたＡＣＫ間隔検出手段６はタイマーをリセットする。
【００３７】
ＡＣＫ間隔検出手段６のタイマーがタイムアウトすると、ＡＣＫ間隔検出手段６はＡＣＫ削減手段４によるＡＣＫの削減動作を停止させる。このとき、バッファ５の中にＡＣＫが格納されていた場合、ＡＣＫ削減手段４はバッファ５中のＡＣＫを送受信手段１へ出力し、送受信手段１はＡＣＫを無線端末２１へ送信する。ＡＣＫ削減手段４がＡＣＫ削減動作を停止している場合には、入力されたＡＣＫはバッファ５に記憶されることなく、直ちに送受信手段１に渡され送信される。なお、第１の所定値および第２の所定値の値は上述した値に限定されない。
【００３８】
次に、本実施形態によるデータ通信装置２０の動作について説明する。情報サーバ２４からコンテンツデータ等を受信するために、データ通信装置２０はまずコネクションの確立を行う。伝送制御手段２はＳＹＮ（コネクション開始要求）パケットを作成し、送受信手段１を介して無線端末２１へ送信する。このＳＹＮパケットは無線端末２１から無線通信によって無線基地局２２へ送信され、無線基地局２２からインターネット２３を介して情報サーバ２４へ送信される。情報サーバ２４は、そのパケットがＴＣＰのＳＹＮパケットであることを認識し、ＴＣＰヘッダ内のＡＣＫフラグおよびＳＹＮフラグを１としたパケット（ＳＹＮ＋ＡＣＫ）を作成してデータ通信装置２０へ送信する。ＳＹＮパケットとは逆向きに、ＳＹＮ＋ＡＣＫパケットがデータ通信装置２０へ配送される。
【００３９】
ＴＣＰによるコネクション確立は３ｗａｙハンドシェークと呼ばれ、データ通信装置２０がＳＹＮパケットを送信し、続いてそれを受信した情報サーバ２４がＳＹＮ＋ＡＣＫパケットを送信し、続いてそれを受信したデータ通信装置２０がＡＣＫを送信することによって、コネクションが確立する。このとき、送受信手段１によって受信されたＳＹＮ＋ＡＣＫは伝送制御手段２によって処理され、伝送制御手段２によって生成されたＡＣＫは送受信手段１を介して情報サーバ２４へ送信される。この時点において、ＡＣＫ削減手段４はまだ動作していない。情報サーバ２４によってＡＣＫが受信されて認識されると、コネクションが確立し、以後、情報サーバ２４はデータ通信装置２０へデータセグメントを送信する。
【００４０】
データ通信装置２０の以後の動作は、図３〜図７に示されるフローチャートのようになる。以下、図３〜図７を用いてデータ通信装置２０の動作について説明する。データ通信装置２０は、無線端末２１からデータセグメントを受信するたびに、図３に示される処理を行う。送受信手段１は、無線端末２１からデータセグメントを受信し、そのデータセグメントを伝送制御手段２へ出力する（ステップＳ３１）。伝送制御手段２はＴＣＰのコネクションごとに受信間隔検出手段３およびＡＣＫ間隔検出手段６のタイマーに対してリソースを割り当てる。これによって、伝送制御手段２は複数のコネクションを同時に処理することができる。伝送制御手段２は、受信間隔検出手段３に対して第１の受信間隔の測定を指示し、指示を受けた受信間隔検出手段３はタイマーを起動する（ステップＳ３２）。
【００４１】
図４は、受信間隔検出手段３のタイマーがタイムアウトした場合の動作を示している。受信間隔検出手段３のタイマーがリセットされることなく５００ｍｓでタイムアウトした場合、第２の時間間隔が５００ｍｓ以上であることが検出され、図３の動作に対して割り込みが発生し、図４の動作が実行され、この動作の実行終了後に図３の続きの動作が行われる。図４において受信間隔検出手段３は、ＡＣＫ削減手段４に対してＡＣＫの削減動作を開始させる（ステップＳ４１）。
【００４２】
図３に戻り、ステップＳ３２に続いて、伝送制御手段２は、送受信手段１から出力されたデータセグメントに誤りがあるかどうかの検査（確認）を行う（ステップＳ３３）。この処理は図５に示されている。伝送制御手段２は、データセグメントの誤りを検査し（ステップＳ３３１）、誤りがなかった場合には、ＴＣＰに基づいて、シーケンス番号によって示される順番どおりにデータセグメントを連結し、データの到着を待っているアプリケーション等にデータを渡す（ステップＳ３３２）。続いて、伝送制御手段２は、内部に保持するデータセグメントのシーケンス番号を更新し（ステップＳ３３３）、誤り検査に関する処理を終了する。ステップＳ３３１において誤りがあった場合には、シーケンス番号を更新せずに、誤り検査に関する処理を終了する。
【００４３】
続いて、図３のステップＳ３４へ進む。伝送制御手段２は、到着したデータセグメントに対応したＡＣＫを生成し、ＡＣＫ削減手段４へ出力すると共に、ＡＣＫ間隔検出手段６に対してタイマーのリセットを指示する。このＡＣＫには、確認されたデータセグメントの次に到着すべきデータセグメントのシーケンス番号が格納されている。伝送制御手段２から指示を受けたＡＣＫ間隔検出手段６はタイマーをリセットする（ステップＳ３４）。
【００４４】
続いて、ＡＣＫ削減手段４はＡＣＫ削減動作中であるかどうか判断する（ステップＳ３５）。ＴＣＰコネクションが開始された直後には、ＡＣＫ削減手段４はＡＣＫの削減機能を停止しており、ＡＣＫ削減手段４は、入力されたＡＣＫをそのまま送受信手段１へ出力する。送受信手段１はこのＡＣＫをＩＰパケットに格納し、無線端末２１へ送信する（ステップＳ３６）。一方、ステップＳ３５において、ＡＣＫ削減手段４がＡＣＫ削減動作中であった場合にはステップＳ３７へ進む。
【００４５】
ステップＳ３７における処理は図６に示されている。伝送制御手段２は、ＡＣＫ間隔検出手段６に対してＡＣＫの発生間隔の測定を指示し、指示を受けたＡＣＫ間隔検出手段６はタイマーを起動する（ステップＳ３７１）。続いて、ＡＣＫ削減手段４は、伝送制御手段２から入力されたＡＣＫの数を削減する（ステップＳ３７２）。
【００４６】
この処理においてＡＣＫ削減手段４は、バッファ５にＡＣＫが格納されていない場合には、入力されたＡＣＫをバッファ５に一時的に格納し、送受信手段１には出力せずにおく。また、バッファ５にＡＣＫが格納されていない場合には、ＡＣＫ削減手段４は新しいＡＣＫをバッファ５に上書きし、これも送受信手段１には出力せずにおく。この動作により、バッファ５には常に最新のＡＣＫが１個だけ記憶されていることになる。このＡＣＫは次にＡＣＫ削減手段４が停止された際に送受信手段１に出力され、無線端末２１へ送信される。つまり連続して発生したＡＣＫのうち、最新の１個だけが送信されることになる。この後、処理は終了する。
【００４７】
図７は、ＡＣＫ間隔検出手段６のタイマーがタイムアウトした場合の動作を示している。ＡＣＫ間隔検出手段６のタイマーがリセットされることなく１０ｍｓでタイムアウトした場合、図３または図５の動作に対して割り込みが発生し、図７の動作が実行され、この動作の実行終了後に図３または図５の続きの動作が行われる。ＡＣＫ間隔検出手段６のタイマーがタイムアウトした場合、ＡＣＫ間隔検出手段６は、ＡＣＫ削減手段４に対してＡＣＫ削減動作を停止させる（ステップＳ７１）。
【００４８】
続いて、ＡＣＫ削減手段４はバッファ５にＡＣＫが格納されているかどうか判定する（ステップＳ７２）。バッファ５にＡＣＫが格納されていた場合、ＡＣＫ削減手段４は、そのＡＣＫを送受信手段１へ出力する。送受信手段１はそのＡＣＫを無線端末２１へ送信する（ステップＳ７３）。一方、バッファ５にＡＣＫが格納されていなかった場合、処理が終了する。
【００４９】
本実施形態においては、バースト的に発生したＡＣＫが結果的に１個のＡＣＫに削減されてしまう。このとき、送信側では５００ｍｓ程度の空白の後に、ＡＣＫによって通知されるＡＣＫ番号（シーケンス番号）が急激に増大し、これによってバースト的な送信が発生する可能性がある。バースト的な送信はフォワードリンクで輻輳を起こす可能性があるが、輻輳を起こさなければ、先に発生した５００ｍｓ程度の空白を埋め合わせてスループットの低下を防止する効果を期待することができる。フォワードリンクでもボトルネックは無線通信路であることが多いため、無線通信路のフォワードリンクが輻輳を起こしやすいかどうかが問題となる。
【００５０】
現在普及しつつある高速な無線通信路の無線基地局ではこうした輻輳は起こりにくいのであるが、もし輻輳が問題になるのであれば、ＡＣＫ削減手段４がＡＣＫを削減する割合を小さく抑えるようにしてもよい。すなわち、ＡＣＫ削減手段４は、入力されるＡＣＫの数をカウンターでカウントしておき、その数が一定数に達したら、バッファ５に記憶されているＡＣＫをクリアし、入力されたＡＣＫを、今度はバッファ５に記憶させずに送受信手段１へ渡し、送信させる。カウンターのしきい値をＭとすると、伝送制御手段２によって生成されたＡＣＫのうち、無線端末２１へ送信されるＡＣＫが占める送信比率は１／Ｍとなる。一定の割合でＡＣＫが送信されることにより、送信側でのバースト性を緩和することができる。
【００５１】
なお、本実施形態においては、ＡＣＫを記憶するためのバッファ５を含むＡＣＫ削減手段４を示したが、バッファ５を持たずにＡＣＫの数を削減することも可能である。例えば、ＡＣＫ削減手段４は、ＡＣＫの削減動作を行っている間は、入力されたＡＣＫを全て廃棄するものとしてもよいし、カウンターを備え、Ｍ個の入力に対して１個のＡＣＫを出力し、それ以外は破棄することにより、ＡＣＫの個数を１／Ｍに削減するようにしてもよい。
【００５２】
図８は、本実施形態の動作を示すタイムシーケンスグラフであり、横軸は時間、縦軸はシーケンス番号である。図８は受信側での状況を示している。区間３２においては、順調にデータセグメント３０がデータ通信装置２０に到着しているが、区間３３で大きな遅延が発生している。この間、無線端末２１は、再送要求したデータが再送されるのを待っており、その間も無線端末２１には次々とデータが蓄積されていく。無線通信路において再送要求したデータが再送されずにタイムアウトすると、無線端末２１は蓄積していたデータを放出する。
【００５３】
このため、図８の区間３４で示されるように短時間に大量のデータセグメント３０がデータ通信装置２０に到着する。ただし、一部のデータセグメントは到着していない。従来は、図１２の区間３４に示されように、大量のＡＣＫ３１がバースト的に発生していた。一方、本実施形態においては、区間３３において受信間隔検出手段３のタイマーが第１の所定値でタイムアウトし、ＡＣＫ削減手段４によるＡＣＫ削減動作が開始される。区間３４においては、ＡＣＫ間隔検出手段６のタイマーがタイムアウトするまでの第２の所定値よりも短い時間間隔でデータセグメントが到着し、それに対するＡＣＫが伝送制御手段２によって生成される。このため、ＡＣＫ間隔検出手段６はタイムアウトする前にリセットされるので、ＡＣＫ削減手段４によるＡＣＫ削減動作が継続され、区間３４においてはＡＣＫが送信されない。
【００５４】
そして、区間３５において、１個のＡＣＫ３１が送信されている。これは、ＡＣＫ間隔検出手段６のタイマーが１０ｍｓの時間経過によりタイムアウトして、ＡＣＫ削減手段４によるＡＣＫ削減動作が停止させられ、バッファ５に記憶されていたＡＣＫが送信されたものである。情報サーバ２４は、ＴＣＰに基づいて、データセグメントの再送を行い、区間３５でこれがデータ通信端末２０に届いたことが示されている。再送されたデータセグメントに対するＡＣＫのＡＣＫ番号は次に到着すべきデータセグメントのシーケンス番号であるから、急激にＡＣＫ番号が増大する。その後、区間３６で通信が順調に回復している。
【００５５】
次に、本発明の第２の実施形態について説明する。図９は、本実施形態によるデータ通信装置２０の機能構成を示すブロック図である。図において、図２と同一の構成には同一の符号を付与し、説明を省略する。本実施形態においては、重複ＡＣＫ検出手段７が設けられている。この重複ＡＣＫ検出手段７は、ＡＣＫの識別番号であるＡＣＫ番号に基づいて重複ＡＣＫを検出する。重複ＡＣＫ検出手段７も、ＴＣＰコネクションが開始された際に、伝送制御手段２によってリソースが割り当てられる。
【００５６】
重複ＡＣＫとは、ＡＣＫ番号の重複したＡＣＫのことである。受信側で、あるデータセグメントが受信できていない状態で後続のデータセグメントが受信された場合に、失われているデータセグメントのシーケンス番号にＡＣＫ番号が固定されたまま複数のＡＣＫが送信され、送信側がこれを検出して再転送を行う。この動作は高速再転送と呼ばれている。送信側は、ＡＣＫ番号が同じＡＣＫを３個重複して受信した場合に高速再転送を実行する。重複ＡＣＫは、データセグメントが失われた後でも後続のデータセグメントの受信が続いていることを示している。この重複ＡＣＫにより、輻輳が軽微であるか、輻輳ではないエラーなどによる喪失であるとみなせるので、送信側はＴＣＰに基づいて、輻輳ウインドウｃｗｎｄを落とし過ぎないように動作する。
【００５７】
重複ＡＣＫは、再送を早期に実行させるために重要であるので、本実施形態においては、ＡＣＫ削減手段４によって重複ＡＣＫが失われることを重複ＡＣＫ検出手段７が防いでいる。本実施形態によるデータ通信装置２０は、図３のステップＳ３７における動作として、図１０に示される動作を行う以外は第１の実施形態と同様の動作を行う。以下、図１０を用いて、図３のステップＳ３７における動作について説明する。
【００５８】
伝送制御手段２は、ＡＣＫ間隔検出手段６に対してＡＣＫの発生間隔の測定を指示し、指示を受けたＡＣＫ間隔検出手段６はタイマーを起動する（ステップＳ３７３）。ＡＣＫ削減手段４は、ステップＳ３４において伝送制御手段２から出力されたＡＣＫに関して、バッファ５にＡＣＫが格納されていない場合には、バッファ５にＡＣＫを格納し、バッファ５にＡＣＫが格納されている場合には、バッファ５にＡＣＫを上書きする（ステップＳ３７４）。
【００５９】
伝送制御手段２は重複ＡＣＫ検出手段７に対して、図３のステップＳ３４で発生したＡＣＫのＡＣＫ番号を通知する。重複ＡＣＫ検出手段７は通知されたＡＣＫ番号を記憶すると共に、そのＡＣＫ番号が、以前に記憶した一つ前のＡＣＫのＡＣＫ番号と同じであるか否かを判定する（ステップＳ３７５）。伝送制御手段２によって通知されたＡＣＫ番号が、以前に記憶した一つ前のＡＣＫのＡＣＫ番号と同一でなかった場合、図３に戻り、処理が終了する。
【００６０】
一方、伝送制御手段２によって通知されたＡＣＫ番号が、以前に記憶した一つ前のＡＣＫ番号と同一であった場合、重複ＡＣＫ検出手段７はＡＣＫ間隔検出手段６に対してタイマーの停止を指示する。この指示を受けたＡＣＫ間隔検出手段６はタイマーを停止する（ステップＳ３７６）。重複ＡＣＫ検出手段７はＡＣＫ削減手段４のＡＣＫ削減動作を停止させ、ＡＣＫ削減手段４によるＡＣＫ削減動作は停止状態となる（ステップＳ３７７）。
【００６１】
ＡＣＫ削減手段４によるＡＣＫ削減動作が停止した場合、ステップＳ３７７において、バッファ５にＡＣＫが記憶されていれば、ＡＣＫ削減手段４はそのＡＣＫを送受信手段１へ出力し、以後、ＡＣＫ削減手段４は入力されたＡＣＫをそのままＡＣＫ送受信手段１へ出力する。送受信手段１はこのＡＣＫを無線端末２１へ送信する。すなわち、重複ＡＣＫは失われずに送信される。重複ＡＣＫは最初の３個が意味を持っているから、４個目以後のバースト的に発生している重複ＡＣＫは削減すべきである。したがって、検出した重複ＡＣＫの数を数えるカウンタを重複ＡＣＫ検出手段７が備え、４個目の重複ＡＣＫを検出した場合に、重複ＡＣＫ検出手段７がＡＣＫ削減手段４に対してＡＣＫ削減動作を開始させるようにしてもよい。
【００６２】
図１１は、本実施形態の動作を示すタイムシーケンスグラフであり、横軸は時間、縦軸はシーケンス番号である。図８と同様に、図１１は受信側での状況を示している。図１１においては、区間３４で３個のＡＣＫ３１が送信されている。これは、一部のデータセグメント３０が欠けていたためにＡＣＫ番号が一定のままとなっている重複ＡＣＫである。重複ＡＣＫ検出手段７がこれを検出し、ＡＣＫ削減手段４のＡＣＫ削減動作を停止することにより、重複ＡＣＫが送信されている。
【００６３】
重複ＡＣＫが３個あれば、情報サーバ２４はＴＣＰに基づいて高速再転送を行うので、不要な重複ＡＣＫを削減するため、重複ＡＣＫ検出手段７は４個目の重複ＡＣＫを検出すると、ＡＣＫ削減手段４に対してＡＣＫ削減動作を開始させ、バースト的なＡＣＫの送信を回避している。重複ＡＣＫが情報サーバ２４に届いて高速再転送が行われれば、図１１の区間３５におけるデータセグメントの再送は、図８の場合よりも早期に到着する可能性があり、スループットの向上に寄与する。
【００６４】
なお、上述した第１または第２の実施形態によるデータ通信装置２０および無線端末２１を一体の装置として構成し、その装置をＵＳＢ等の規格によりＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）やＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）等に接続してもよいし、その装置がＰＣやＰＤＡ等に内蔵されていてもよい。
【００６５】
また、データ通信装置２０と無線端末２１との接続は上記の実施形態に限定されるものではなく、ＵＳＢ等のシリアルインターフェースにより接続してもよい。また、無線端末２１がデータ通信カードの場合は、ＰＣＭＣＩＡに準拠した接続でもよい。なお、データ通信装置２０は例えばＰＣやＰＤＡ等の情報処理装置が挙げられ、無線端末２１は例えば携帯電話機、データ通信デバイス、通信モジュール等の無線通信装置が挙げられる。また、データ通信装置２０と無線端末２１とを一体のデータ通信装置とした場合、このデータ通信装置は、例えば携帯電話機、ＰＤＡ、無線接続手段を内蔵するＰＣ等が挙げられる。
【００６６】
上述したように、第１の実施形態によれば、データが受信される時間間隔が所定値以上である場合に、ＡＣＫが発生される時間間隔が所定値以上となるまでの間、ＡＣＫ削減手段４がＡＣＫ削減動作を行うことにより、バースト的なＡＣＫの発生を防止し、リバースリンクに対する負荷を軽減することができる。すなわち、リバースリンクの帯域幅の不足を避けることができ、リバースリンクのパケットの遅延や、輻輳によるパケットの廃棄を避けることができる。
【００６７】
また、第２の実施形態によれば、重複ＡＣＫ検出手段７が重複ＡＣＫを検出した場合に、ＡＣＫ削減手段４のＡＣＫ削減動作を停止させることにより、高速再転送に必要な重複ＡＣＫが送信されるので、高速再転送がより早期に実行されるようにすることができ、スループットを向上させることができる。さらに、重複ＡＣＫ検出手段７が４個目以後の重複ＡＣＫを検出した場合に、ＡＣＫ削減手段４に対してＡＣＫ削減動作を開始させることにより、無用な重複ＡＣＫのバースト的な発生を防止することができる。
【００６８】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成はこれらの実施の形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、上述した実施形態におけるデータ通信装置２０は、その動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させることにより実現してもよい。
【００６９】
ここで、「コンピュータ」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００７０】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【図面の簡単な説明】
【００７１】
【図１】本発明の第１の実施形態による通信システムの構成を示すブロック図である。
【図２】同実施形態によるデータ通信装置の機能構成を示すブロック図である。
【図３】同実施形態によるデータ通信装置の動作を示すフローチャートである。
【図４】同実施形態による受信間隔検出手段のタイマーがタイムアウトした場合のデータ通信装置の動作を示すフローチャートである。
【図５】同実施形態によるデータ通信装置の誤り検査時の動作を示すフローチャートである。
【図６】同実施形態によるＡＣＫ削減手段がＡＣＫの削減動作を行っている場合のデータ通信装置の動作を示すフローチャートである。
【図７】同実施形態によるＡＣＫ間隔検出手段のタイマーがタイムアウトした場合のデータ通信装置の動作を示すフローチャートである。
【図８】同実施形態におけるデータ受信状況を示すタイムシーケンスグラフである。
【図９】本発明の第２の実施形態によるデータ通信装置の機能構成を示すブロック図である。
【図１０】同実施形態によるＡＣＫ削減手段がＡＣＫの削減動作を行っている場合のデータ通信装置の動作を示すフローチャートである。
【図１１】同実施形態におけるデータ受信状況を示すタイムシーケンスグラフである。
【図１２】従来のデータ通信におけるデータ受信状況を示すタイムシーケンスグラフである。
【符号の説明】
【００７２】
１・・・送受信手段、２・・・伝送制御手段、３・・・受信間隔検出手段（第１検出手段）、４・・・ＡＣＫ削減手段（削除手段）、５・・・バッファ、６・・・ＡＣＫ間隔検出手段（第２検出手段）、７・・・重複ＡＣＫ検出手段（重複検出手段）、２０・・・データ通信装置、２１・・・無線端末、２２・・・無線基地局、２３・・・インターネット、２４・・・情報サーバ。
【図１】
2006101339.tif 000003
【図２】
2006101339.tif 000004
【図３】
2006101339.tif 000005
【図４】
2006101339.tif 000006
【図５】
2006101339.tif 000007
【図６】
2006101339.tif 000008
【図７】
2006101339.tif 000009
【図８】
2006101339.tif 000010
【図９】
2006101339.tif 000011
【図１０】
2006101339.tif 000012
【図１１】
2006101339.tif 000013
【図１２】
2006101339.tif 000014