(57)【特許請求の範囲】
【請求項１】
端末に適用されるパケット送信方法であって、前記端末はベースバンドプロセッサと、アプリケーションプロセッサと、通信インタフェースとを備え、
前記ベースバンドプロセッサにより、第１のパケットに関する情報を前記アプリケーションプロセッサにレポートするステップであり、前記第１のパケットは前記ベースバンドプロセッサによって破棄された送信対象パケットであり、前記第１のパケットに関する前記情報は前記第１のパケットの識別子を含む、ステップと、
前記アプリケーションプロセッサにより、第２のパケットを前記第１のパケットに関する前記情報に応じて前記ベースバンドプロセッサに送信するステップであり、前記第２のパケットは前記第１のパケットと同一である、ステップと、
前記ベースバンドプロセッサにより、前記通信インタフェースを使用して前記第２のパケットをネットワークデバイスに送信するステップと
を含む、パケット送信方法。
【請求項２】
前記ベースバンドプロセッサにより、パケット廃棄の理由に基づいて第１のパケットを決定するステップであって、
ここで、パケット廃棄の前記理由は以下の、
前記端末により、無線リソース制御（ＲＲＣ）リンクが確立していないこと、
前記ベースバンドプロセッサにより、Ｅ−ＵＴＲＡＮ無線アクセスベアラ管理（ＥＲＡＢＭ）メッセージが受信されていること、
異なるタイプのセルラネットワークにおける前記端末のハンドオーバ、
パケットデータコンバージェンスプロトコル（ＰＤＣＰ）の再構成、
無線リンク制御（ＲＬＣ）の再構成、
ＲＬＣの再確立、
ＰＤＣＰキューが一杯またはサービス割り込み、
の理由の少なくとも一つを含み、
前記第１のパケットはキャッシュキューにあるパケット、ＰＤＣＰキューにある送信対象のパケット、キャッシュキューに保存されるのに失敗したパケット、またはＰＤＣＰキューに挿入されるのに失敗したパケットであること
をさらに含む請求項１に記載の方法。
【請求項３】
前記ベースバンドプロセッサにより、前記端末のデータ接続が利用可能か利用不可能かを決定するステップであって、
ここで、前記端末のデータ接続が利用不可能である場合とは、以下の、
前記端末が切断状態にある場合、
前記端末がいずれのサービングセルにも正常にキャンプオンし損なう場合、
前記端末のデータサービスが無効状態にある場合、または
回線交換ドメインが２Ｇへフォールバックしている時に、前記端末が２Ｇコールシナリオにある場合、
のいずれか１つの場合である
ことをさらに含む請求項１または２に記載の方法。
【請求項４】
前記レポートするステップは、
前記端末のデータ接続が利用可能な場合、前記ベースバンドプロセッサにより、前記第１のパケットに関する前記情報を前記アプリケーションプロセッサにレポートするステップを含む、
請求項１ないし３のいずれか一項に記載の方法。
【請求項５】
前記レポートするステップは、
前記端末のデータ接続が利用不可である場合、前記ベースバンドプロセッサにより、前記第１のパケットに関する前記情報をキャッシングし、前記端末の前記データ接続が利用不可から利用可能に切り替えられた場合、前記ベースバンドプロセッサにより、前記第１のパケットに関する前記情報を前記アプリケーションプロセッサにレポートするステップを含む、
請求項１ないし４のいずれか一項に記載の方法。
【請求項６】
前記アプリケーションプロセッサにより、第２のパケットを前記第１のパケットに関する前記情報に応じて前記ベースバンドプロセッサに送信する前記ステップの後で、前記方法はさらに、
前記アプリケーションプロセッサにより、前記第１のパケットが送信されるのに用いられたＴＣＰ接続の輻輳ウインドウの値を増大するステップを含む、
請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記第１のパケットの前記識別子は、前記第１のパケットのシーケンス番号であり、
前記送信するステップは、
前記アプリケーションプロセッサにより、前記第１のパケットと同じシーケンス番号を有する前記第２のパケットを、前記第１のパケットが送信されるのに用いられたＴＣＰ接続のソースポート番号に応じて前記ベースバンドプロセッサに送信するステップを含む、
請求項１から６のいずれか一項に記載の方法。
【請求項８】
ベースバンドプロセッサと、アプリケーションプロセッサと、送信器とを備えるパケット送信装置であって、
前記ベースバンドプロセッサは、第１のパケットに関する情報を前記アプリケーションプロセッサにレポートするように構成され、前記第１のパケットは前記ベースバンドプロセッサによって破棄された送信対象パケットであり、前記第１のパケットに関する前記情報は前記第１のパケットの識別子を含み、
前記アプリケーションプロセッサは、第２のパケットを前記第１のパケットに関する前記情報に応じて前記ベースバンドプロセッサに送信するように構成され、前記第２のパケットは前記第１のパケットと同一であり、
前記ベースバンドプロセッサはさらに、前記送信器を使用して前記第２のパケットをネットワークデバイスに送信するように構成される、パケット送信装置。
【請求項９】
前記ベースバンドプロセッサは、パケット廃棄の理由に基づいて第１のパケットを決定するようにさらに構成され、
ここで、パケット廃棄の前記理由は以下の、
端末により、無線リソース制御（ＲＲＣ）リンクが確立していないこと、
前記ベースバンドプロセッサにより、Ｅ−ＵＴＲＡＮ無線アクセスベアラ管理（ＥＲＡＢＭ）メッセージが受信されていること、
異なるタイプのセルラネットワークにおける前記端末のハンドオーバ、
パケットデータコンバージェンスプロトコル（ＰＤＣＰ）の再構成、
無線リンク制御（ＲＬＣ）の再構成、
ＲＬＣの再確立、
ＰＤＣＰキューが一杯またはサービス割り込み、
の理由の少なくとも一つを含み、
前記第１のパケットはキャッシュキューにあるパケット、ＰＤＣＰキューにある送信対象のパケット、キャッシュキューに保存されるのに失敗したパケット、またはＰＤＣＰキューに挿入されるのに失敗したパケットである
ように構成される請求項８に記載の装置。
【請求項１０】
前記ベースバンドプロセッサは、端末のデータ接続が利用可能か利用不可能かを決定するようにさらに構成され、
ここで、前記端末のデータ接続が利用不可能である場合とは、以下の、
前記端末が切断状態にある場合、
前記端末がいずれのサービングセルにも正常にキャンプオンし損なう場合、
前記端末のデータサービスが無効状態にある場合、または
回線交換ドメインが２Ｇへフォールバックしている時に、前記端末が２Ｇコールシナリオにある場合、
のいずれか１つの場合である
ように構成される請求項８または９に記載の装置。
【請求項１１】
前記ベースバンドプロセッサは、前記装置のデータ接続が利用可能な場合、前記第１のパケットに関する前記情報を前記アプリケーションプロセッサにレポートするようにさらに構成される、
請求項８から１０のいずれか一項に記載の装置。
【請求項１２】
前記ベースバンドプロセッサは、前記装置のデータ接続が利用不可である場合、前記第１のパケットに関する前記情報をキャッシングし、前記装置の前記データ接続が利用不可から利用可能に切り替えられた場合、前記第１のパケットに関する前記情報を前記アプリケーションプロセッサにレポートするようにさらに構成される、
請求項８から１１のいずれか一項に記載の装置。
【請求項１３】
前記アプリケーションプロセッサは、前記第２のパケットを前記第１のパケットに関する前記情報に応じて前記ベースバンドプロセッサに送信した後で、前記第１のパケットが送信されるのに用いられたＴＣＰ接続の輻輳ウインドウの値を増大するようにさらに構成される、
請求項８から１２のいずれか一項に記載の装置。
【請求項１４】
無線周波数コンポーネントを使用してネットワークデバイスに対するデータ接続を確立するチップであって、前記チップは、アプリケーションプロセッサおよびベースバンドプロセッサを備え、
前記ベースバンドプロセッサは、第１のパケットに関する情報を前記アプリケーションプロセッサにレポートするように構成され、前記第１のパケットは前記ベースバンドプロセッサによって破棄された送信対象パケットであり、前記第１のパケットに関する前記情報は前記第１のパケットの識別子を含み、
前記アプリケーションプロセッサは、第２のパケットを前記第１のパケットに関する前記情報に応じて前記ベースバンドプロセッサに送信するように構成され、前記第２のパケットは前記第１のパケットと同一であり、
前記ベースバンドプロセッサはさらに、前記無線周波数コンポーネントを使用して前記第２のパケットを前記ネットワークデバイスに送信するように構成される、チップ。
【請求項１５】
前記ベースバンドプロセッサは、パケット廃棄の理由に基づいて第１のパケットを決定するようにさらに構成され、
ここで、パケット廃棄の前記理由は以下の、
端末により、無線リソース制御（ＲＲＣ）リンクが確立していないこと、
前記ベースバンドプロセッサにより、Ｅ−ＵＴＲＡＮ無線アクセスベアラ管理（ＥＲＡＢＭ）メッセージが受信されていること、
異なるタイプのセルラネットワークにおける前記端末のハンドオーバ、
パケットデータコンバージェンスプロトコル（ＰＤＣＰ）の再構成、
無線リンク制御（ＲＬＣ）の再構成、
ＲＬＣの再確立、
ＰＤＣＰキューが一杯またはサービス割り込み、
の理由の少なくとも一つを含み、
前記第１のパケットはキャッシュキューにあるパケット、ＰＤＣＰキューにある送信対象のパケット、キャッシュキューに保存されるのに失敗したパケット、またはＰＤＣＰキューに挿入されるのに失敗したパケットである
ように構成される請求項１４に記載のチップ。
【請求項１６】
前記ベースバンドプロセッサは、端末のデータ接続が利用可能か利用不可能かを決定するようにさらに構成され、
ここで、前記端末のデータ接続が利用不可能である場合とは、以下の、
前記端末が切断状態にある場合、
前記端末がいずれのサービングセルにも正常にキャンプオンし損なう場合、
前記端末のデータサービスが無効状態にある場合、または
回線交換ドメインが２Ｇへフォールバックしている時に、前記端末が２Ｇコールシナリオにある場合、
のいずれか１つの場合である
ように構成される請求項１４または１５に記載のチップ。
【請求項１７】
前記第１のパケットに関する前記情報を前記アプリケーションプロセッサにレポートすることに関し、前記ベースバンドプロセッサは、前記チップのデータ接続が利用可能な場合、前記第１のパケットに関する前記情報を前記アプリケーションプロセッサにレポートするように構成される、
請求項１４から１６のいずれか一項に記載のチップ。
【請求項１８】
前記第１のパケットに関する前記情報を前記アプリケーションプロセッサにレポートすることに関し、前記ベースバンドプロセッサは、前記チップのデータ接続が利用不可である場合、前記第１のパケットに関する前記情報をキャッシングし、前記チップの前記データ接続が利用不可から利用可能に切り替えられた場合、前記第１のパケットに関する前記情報を前記アプリケーションプロセッサにレポートするように構成される、
請求項１４から１７のいずれか一項に記載のチップ。
【請求項１９】
パケットを送信するためのコンピュータ命令を格納する非一時的コンピュータ可読媒体であって、
ベースバンドプロセッサおよびアプリケーションプロセッサによって実行された時に、前記ベースバンドプロセッサおよび前記アプリケーションプロセッサに請求項１から７のいずれか一項に記載の方法を実行させる非一時的コンピュータ可読媒体。
【請求項２０】
命令を含むコンピュータプログラムであって、
コンピュータによって実行された時に、前記コンピュータに請求項１から７のいずれか一項に記載の方法のステップを実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信分野に関し、特に、パケット送信方法および装置、チップ、ならびに端末に関する。
【背景技術】
【０００２】
モバイルインターネットアクセスが端末の主な特徴となるにつれて、ネットワークにアクセスするために端末によって使用される技術的解決策が発達し続けている。これにより、端末製品の情報取得率が大幅に向上する。モバイル通信分野で一般的に使用されている伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）は、コネクション対応型であり、信頼性があり、かつバイトストリームベースのトランスポート層通信プロトコルである。
【０００３】
端末がＴＣＰ／ＩＰプロトコルを用いてネットワークにアクセスする処理において、パケットは破棄されることが多い（これはパケットロスとも呼ばれる）。現在の処理方法は、通常、送信側がデータを再送信することである。現在の処理方法では、パケットが失われたかどうかは、受信側からのフィードバックによって判断される。例えば、送信側が、指定された時間内に、受信側によって送信されたＡＣＫなどのフィードバックメッセージを受信しなかった場合、パケットが失われたと判断され、失われたパケットのデータを含むパケットが再送される。この解決法では、パケット損失に応答するときに端末では比較的大きな遅延があり、端末とネットワークデバイスとの間のデータ伝送の停止時間は比較的長く、リアルタイムの通信品質は比較的深刻な影響を受ける。
【発明の概要】
【０００４】
これを考慮し、本出願は、ベースバンドプロセッサによって破棄された送信対象パケットを端末により再送する際の遅延を減少し、また端末によるパケット損失に対する応答の際の遅延をある程度減少し、端末とネットワークとの間のデータ伝送がより円滑になるようなパケット送信方法および装置、チップ、ならびに端末を提供する。
【０００５】
第１の態様によれば、本発明の実施形態は、端末に適用されるパケット送信方法であって、端末はベースバンドプロセッサと、アプリケーションプロセッサと、通信インタフェースとを備え、ベースバンドプロセッサにより、第１のパケットに関する情報をアプリケーションプロセッサにレポートするステップであり、第１のパケットはベースバンドプロセッサによって破棄された送信対象パケットであり、第１のパケットに関する情報は第１のパケットの識別子および第１のパケットが送信されるのに使用されたＴＣＰ接続の識別子を含む、ステップと、アプリケーションプロセッサにより、第２のパケットを第１のパケットに関する情報に応じてベースバンドプロセッサに送信するステップであり、第２のパケットは第１のパケットと同一である、ステップと、ベースバンドプロセッサにより、通信インタフェースを使用して第２のパケットをネットワークデバイスに送信するステップとを含む、パケット送信方法を提供する。
【０００６】
なお、ベースバンドプロセッサによって破棄された送信対象パケットは、アプリケーションプロセッサによってベースバンドプロセッサに配信され、かつベースバンドプロセッサによる通信インタフェースを使用したネットワークデバイスへの送信が失敗するパケットとして理解され得る。
【０００７】
ネットワークデバイスは、基地局またはサーバなどのデバイスとし得ることに留意されたい。
【０００８】
第２のパケットは、第１のパケットのコピーとして理解されてもよい。
【０００９】
このようにして、送信対象パケットを破棄した後、ベースバンドプロセッサは、アプリケーションプロセッサに、ベースバンドプロセッサによって破棄された送信対象パケットに関する情報をレポートし得るため、アプリケーションプロセッサは、レポートされた情報に従って、ベースバンドプロセッサによって破棄されたパケットのコピーをベースバンドプロセッサに再配信する。パケットのタイムアウトタイマーが満了し、確認応答パケットがピアエンドから受信されないと判定される前に、パケットが廃棄され、パケットがベースバンドプロセッサに再送信されることを決定することができる。これにより、ベースバンドプロセッサによって廃棄された送信対象パケットを端末により再送信する際の遅延を減少することができ、端末によるパケット損失に応答する際の遅延をある程度減少することができるため、端末とネットワークとの間のデータ送信はより滑らかになる。無線セルラネットワークの状態はしばしば変化するので、ベースバンドプロセッサが送信対象パケットを廃棄する事例が頻繁に発生する。
【００１０】
第１の態様を参照すると、第１の態様の第１の実装において、ベースバンドプロセッサにより、第１のパケットに関する情報をアプリケーションプロセッサにレポートするステップは、端末のデータ接続が利用可能な場合、ベースバンドプロセッサにより、第１のパケットに関する情報をアプリケーションプロセッサにレポートするステップを含む。
【００１１】
データ接続は、データサービスを実行するために使用される接続である。端末のデータ接続は、端末と基地局との間のデータ接続として理解され得る。
【００１２】
第１の態様または第１の態様の第１の実装を参照すると、別の実装において、
端末のデータ接続が利用不可である場合、ベースバンドプロセッサは、第１のパケットに関する情報をキャッシングし、端末のデータ接続が利用不可から利用可能に切り替えられた場合、ベースバンドプロセッサは、第１のパケットに関する情報をアプリケーションプロセッサにレポートする。
【００１３】
端末は、定期的な検出、イベントトリガ、命令トリガなどによって、端末のデータ接続が利用可能か利用不可かを判定し得ると理解されたい。以下のいずれかの場合、すなわち、端末が切断状態にある、端末がいずれのサービングセルにも正常にキャンプオンし損なう、端末のデータサービスが無効状態にある、または回線交換ドメインが２Ｇへフォールバックしている（回線交換フォールバック、ＣＳＦＢ）時に端末が２Ｇコールシナリオにある場合、端末のデータ接続は利用できない。
【００１４】
端末のデータ接続が利用不可から利用可能に切り替えられると、ベースバンドプロセッサは第１のパケットに関する情報をアプリケーションプロセッサにレポートすることに留意されたい。これは、端末のデータ接続が利用不可から利用可能に切り替わった後、ベースバンドプロセッサが第１のパケットに関する情報をアプリケーションプロセッサにレポートすることを示す。命令の読み出し、関連操作の実行などには時間がかかるため、同時性は厳密には要求されない。すなわち、端末のデータ接続が利用不可から利用可能に切り替わった後の比較的短い時間（例えば、数ミリ秒または数秒）内に、ベースバンドプロセッサは、第１のパケットに関する情報をアプリケーションプロセッサへレポートする動作を完了する。
【００１５】
第１の態様および第２の態様において、ベースバンドプロセッサは、データ接続が利用可能な場合にのみ、廃棄された送信対象パケットに関する情報をアプリケーションプロセッサにレポートするので、再送信の有効性を改善することができる。破棄された送信対象パケットに関する情報が、データ接続が利用可能であるときにのみアプリケーションプロセッサにレポートされる場合、端末のエネルギー消費量は減少されることが可能である。
【００１６】
上記の実装のいずれか１つによれば、別の実装において、アプリケーションプロセッサにより、第２のパケットを第１のパケットに関する情報に応じてベースバンドプロセッサに送信するステップの後で、本方法はさらに、アプリケーションプロセッサにより、ＴＣＰ接続の輻輳ウインドウの値を増大するステップを含む。
【００１７】
アプリケーションプロセッサが第２のパケットをベースバンドプロセッサに送信した後、輻輳ウインドウは縮小され得る。輻輳ウインドウが増大された後、タイムアウト再送による影響が排除されることができ、端末により送信されるパケット量が確保されることができ、また端末の送信スループットを向上させることができる。
【００１８】
上記の実装のいずれか１つによれば、別の実装において、第１のパケットの識別子は、第１のパケットのシーケンス番号であり、第１のパケットが送信されるのに使用されたＴＣＰ接続の識別子は、ＴＣＰ接続のソースポート番号であり、アプリケーションプロセッサにより、第２のパケットを第１のパケットに関する情報に応じてベースバンドプロセッサに送信するステップは、アプリケーションプロセッサにより、第１のパケットと同じシーケンス番号を有する第２のパケットをソースポート番号に応じてベースバンドプロセッサに送信するステップを含む。
【００１９】
第２の態様によれば、本発明の実施形態は、パケット送信装置を提供し、パケット送信装置は、ベースバンドプロセッサと、アプリケーションプロセッサと、送信器とを備える。ベースバンドプロセッサは、第１のパケットに関する情報をアプリケーションプロセッサにレポートするように構成され、第１のパケットはベースバンドプロセッサによって破棄された送信対象パケットであり、第１のパケットに関する情報は第１のパケットの識別子および第１のパケットが送信されるのに使用されたＴＣＰ接続の識別子を含み、アプリケーションプロセッサは、第２のパケットを第１のパケットに関する情報に応じてベースバンドプロセッサに送信するように構成され、第２のパケットは第１のパケットと同一であり、ベースバンドプロセッサはさらに、送信器を使用して第２のパケットをネットワークデバイスに送信するように構成される。
【００２０】
第２の態様は第１の態様に対応する装置であるため、様々な実装、説明、および技術的効果については、第１の態様の説明を参照されたい。
【００２１】
第３の態様によれば、チップが提供される。チップは、無線周波数コンポーネントを使用してネットワークデバイスに対するデータ接続を確立し、チップは、アプリケーションプロセッサおよびベースバンドプロセッサを備え、ベースバンドプロセッサは、第１のパケットに関する情報をアプリケーションプロセッサにレポートするように構成され、第１のパケットはベースバンドプロセッサによって破棄された送信対象パケットであり、第１のパケットに関する情報は第１のパケットの識別子および第１のパケットが送信されるのに使用されたＴＣＰ接続の識別子を含み、アプリケーションプロセッサは、第２のパケットを第１のパケットに関する情報に応じてベースバンドプロセッサに送信するように構成され、第２のパケットは第１のパケットと同一であり、ベースバンドプロセッサはさらに、無線周波数コンポーネントを使用して第２のパケットをネットワークデバイスに送信するように構成される。
【００２２】
第３の態様は、第２の態様の具体的な製品形態である。第３の態様の様々な実装、説明、および技術的効果については、第２の態様を参照し、詳細は本明細書では再度説明されない。
【００２３】
第４の態様によれば、端末が提供される。端末は、アプリケーションプロセッサと、ベースバンドプロセッサと、メモリと、通信インタフェースとを備える。アプリケーションプロセッサ、ベースバンドプロセッサ、および通信インタフェースはメモリに接続され、アプリケーションプロセッサ、ベースバンドプロセッサ、および通信インタフェースは、メモリに格納された命令を呼び出すことによって、第１の態様の上記実装のいずれか一つの方法を実行する。
【００２４】
第５の態様によれば、格納媒体が提供され、第１の態様の上記実装による方法のいずれか１つを実現し得るコードを格納するように構成される。
【００２５】
第４の態様および第５の態様の様々な実装、説明、および技術的効果については、第１の態様を参照し、詳細は本明細書では再度説明されない。
【図面の簡単な説明】
【００２６】
本出願の技術的解決策をより明確に説明するために、以下、実施形態を説明するために必要な添付図面を簡単に説明する。明らかに、以下の説明における添付図面は、単に本出願のいくつかの実施形態を示しており、当業者は創造的な努力なしにこれらの添付図面から他の図面をなお導出し得る。
【００２７】
【図１】図１は、本発明の実施形態によるシステムのネットワークの模式図である。
【図２】図２は、本発明の実施形態による端末のハードウェア構成の模式図である。
【図３】図３は、本発明の実施形態による端末のソフトウェアアーキテクチャの模式図である。
【図４】図４は、本発明の実施形態によるＴＣＰパケットフォーマットの模式図である。
【図５】図５は、本発明の実施形態によるパケット送信方法の模式図である。
【図６】図６は、本発明の実施形態によるパケット送信装置の模式図である。
【図７】図７は、本発明の実施形態による端末の模式図である。
【図８Ａ】図８Ａは、本発明の実施形態による送信側と受信側との間のパケット送信中のカプセル化処理の模式図である。
【図８Ｂ】図８Ｂは、本発明の実施形態による送信側と受信側との間のパケット送信中のカプセル化処理の模式図である。
【発明を実施するための形態】
【００２８】
本出願は、パケット送信方法および装置、チップ、および端末を提供する。以下、本出願における技術的解決策を本出願における添付図面を参照して明確に説明する。明らかに、説明される実施形態は、単に本出願のいくつかではあるがすべてではない。創造的な努力をせずに本出願に基づいて当業者によって得られる他のすべての実施形態は、本発明の保護範囲に包含されるべきものである。
【００２９】
以下は、本出願における技術用語の一部である。
【００３０】
輻輳ウインドウは、輻輳制御の場合に、ＴＣＰデータ送信中に１つのＲＴＴ期間内にデータのソース側によって送信されことができるデータパケットの最大量である。輻輳ウインドウのバックオフとは、ネットワークが輻輳しているときにデータの送信側が輻輳ウインドウを減少することを意味する。
【００３１】
モバイル通信サービスは、データサービス（Ｄａｔａ  Ｓｅｒｖｉｃｅ）と音声サービスとに分類される。データサービスは、モバイル通信ＣＳ（Ｃｉｒｃｕｉｔ  Ｓｗｉｔｃｈｅｄ、回線交換）方式ドメイン音声サービス以外の他のサービスを含む。データ接続は、端末と基地局との間のデータ接続として理解されてもよく、端末と基地局との間の接続であり、データサービスを処理するために使用される接続を示す。端末と基地局との間のデータ接続が利用可能であることは、端末がデータサービスを処理するためにセルラネットワークを使用することを示し、すなわち、端末はセルラネットワーク内の基地局から信号を受信することができ、端末は、データサービスにおいて基地局とデータまたは命令を交換する機能を使用することができ、ここにおけるデータおよび命令とはデータサービスにおけるものである。端末と基地局との間のデータ接続が利用不可であることは、端末がデータサービスを処理するためにセルラネットワークを使用できないことを示し、すなわち、端末はセルラネットワークから信号を受信できない、または端末は音声サービスを処理する必要があり、したがって、データサービスにおいてセルラネットワーク内の基地局とデータまたは命令を同時に交換することができない。現在、端末のデータ接続が利用不可であるという既知の事例には、以下のもの、すなわち、端末が切断状態にある、端末がいずれのサービングセルにも正常にキャンプオンし損なう、端末のデータサービスが無効状態にある、または回線交換ドメインが２Ｇへフォールバックしている（回線交換フォールバック、ＣＳＦＢ）時に端末が２Ｇコールシナリオにある場合が含まれる。
【００３２】
送信対象パケットとは、端末から基地局に送信されるパケットであり、通常、端末上で動作するアプリケーションによって生成され、基地局に送信する必要があるデータをプロトコルスタックを用いてカプセル化したＴＣＰパケットである。送信対象パケット内のデータは、ユーザの何らかの行動または行為によって生成されることがある。例えば、アプリケーションはブラウザである。ユーザは、ブラウザに表示されたリンクをタップするか、ＷＥＢサイトのアカウントやパスワードを入力する。リンク上のデータまたはユーザによって入力されたアカウントまたはパスワードは、ブラウザが基地局に送信する必要があるデータである。送信対象パケット内のデータは、代替的に、実行中のプロセスにおいてタスクを実行するためのアプリケーションによって生成されてもよい。例えば、アプリケーションはブラウザである。ホームページ上のニュースウィンドウを定期的に更新するために、ブラウザは、基地局に送信する必要がある要求データを生成する。プロトコルスタックを用いてデータをカプセル化して得たパケットは、端末の無線周波数コンポーネント（例えば、アンテナ）を用いて端末により送信される前の送信対象パケットである。当業者は、端末が送信対象パケットを生成または決定し得ることを理解するべきである。送信対象パケットの生成方法は、本発明において限定されない。
【００３３】
同一性：本出願における同一性は、完全な同一性または本質的な同一性を示す。例えば、第１のパケットと第２のパケットがＴＣＰパケットである場合、第１のパケットと第２のパケットが同一であることは、少なくともデータ部、ソースポート番号、および宛先ポート番号などの情報に関して第１のパケットと第２のパケットが同一であることを示す。第２のパケットは第１のパケットのコピーとして理解されてもよく、それにより第１のパケットと第２のパケットのパケットヘッダまたはパケットトレーラの間の無視可能な差が許容される。これらの差は、例えば、タイムスタンプが異なる、またはいくつかのランダムに生成された値が異なるなどの理由により、パケットの生成中に端末によって生成されることがある。
【００３４】
本出願において提供される技術的解決策は、典型的には、無線通信システム、例えば、モバイル通信用のグローバルシステム（ＧＳＭ、Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｏｆ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）ネットワーク、符号分割多重アクセス（ＣＤＭＡ、Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）ネットワーク、時分割同期符号分割多重アクセス（ＴＤ−ＳＣＤＭＡ、Ｔｉｍｅ  Ｄｉｖｉｓｉｏｎ−Ｓｙｎｃｈｒｏｎｏｕｓ  Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）ネットワーク、広帯域符号分割多重アクセス（ＷＣＤＭＡ、Ｗｉｄｅｂａｎｄ  Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ  Ｗｉｒｅｌｅｓｓ）ネットワーク、汎用パケット無線サービス（ＧＰＲＳ、Ｇｅｎｅｒａｌ  Ｐａｃｋｅｔ  Ｒａｄｉｏ  Ｓｅｒｖｉｃｅ）ネットワーク、ロングタームエボリューション（ＬＴＥ、Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）ネットワーク、ソフトウェア定義ネットワーク（ＳＤＮ、Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ）、またはワイヤレスセンサネットワーク（Ｗｉｒｅｌｅｓｓ  Ｓｅｎｓｏｒ  Ｎｅｔｗｏｒｋ）に適用され得る。
【００３５】
図２は、本発明の実施形態による通信システム１００の簡略ブロック図である。通信システム１００は、本発明のアプリケーションシナリオとしてのみ使用される。これは、本発明のアプリケーションシナリオに対する限定として解釈されるべきではない。
【００３６】
本発明の明細書、特許請求の範囲、および添付の図面において、用語「第１の」、「第２の」、「第３の」、「第４の」など（存在する場合）は、類似の対象を区別することを意図しており、必ずしも特別の順番やシーケンスを示すとは限らない。
【００３７】
図２に示すように、通信システム１００は、端末１０と、アクセスポイント１１と、ゲートウェイ１２と、広域ネットワーク１３と、サーバ２０とを含む。本発明のこの実施形態における端末１０は、モバイル端末（Ｍｏｂｉｌｅ  Ｔｅｒｍｉｎａｌ）、例えば、携帯電話、タブレット型コンピュータ、スポーツ射撃デバイス、またはノート型コンピュータなどの携帯型、ウェアラブル、または車載型のモバイルデバイスでもよく、またはセルラネットワークにアクセス可能なコンピュータまたはサーバなどのデバイス、またはセルラネットワークにアクセス可能なルータまたはゲートウェイ、例えば、ＳＩＭ（Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  Ｍｏｄｕｌｅ、加入者識別モジュール）カードを使用可能なルータまたはゲートウェイなどのネットワークデバイスであってもよい。本発明のこの実施形態では、携帯電話が説明例として使用される。サーバ２０は、アプリケーションサーバ、サーバエージェント、データセンタサーバ、またはルータやゲートウェイなどのネットワークデバイスとすることができる。
【００３８】
当業者であれば、通信システムは通常、図２に示すものより少ないかまたは多い構成要素を含み得る、または、図２に示すものと異なる構成要素も含み得ることを理解するであろう。図２は、本発明のこの実施形態で開示された実装により関連する構成要素のみを示す。例えば、図２は１つのサーバ２０を示しているが、当業者は１つの通信システムが任意の数のサーバを含み得ることを理解するであろう。
【００３９】
広域ネットワーク１３は、公衆ネットワーク、専用ネットワーク、またはインターネットの一部、および／またはそれらの任意の組み合わせを含み得る。アクセスポイントは、基地局、無線ローカルエリアネットワーク（ＷＬＡＮ）アクセスポイント、または他の形態のアクセスポイントであってもよい。ゲートウェイ１２およびアクセスポイント１１は無線ネットワークに含まれてもよい。簡潔にするために、無線ネットワークの他の部分は説明されない。
【００４０】
図２は、端末１０のハードウェア構成をさらに示している。図２によると、端末１０は、アプリケーションプロセッサ１１０、メモリ１２０、通信サブシステム１３０、および電力管理サブシステム１４０を含む。メモリ１２０は実行可能プログラムを格納し、実行可能プログラムはオペレーティングシステムおよびアプリケーションプログラムを含む。アプリケーションプロセッサ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｃｅｓｓｏｒ）１１０は、オペレーティングシステムやアプリケーションプログラムを実行するように構成されたプロセッサである。
【００４１】
実施形態では、アプリケーションプログラムはウェブブラウザであり、サーバ２０はウェブコンテンツプロバイダのサーバである。別の実施形態では、アプリケーションプログラムはオンラインビデオプレーヤであり、サーバ２０はビデオコンテンツプロバイダのサーバである。別の実施形態では、アプリケーションプログラムはインスタントメッセージングソフトウェアであり、サーバ２０はインスタントメッセージングサービスプロバイダのサーバである。
【００４２】
通信サブシステム１３０は、主に、ベースバンド処理、変調および復調、信号増幅およびフィルタリング、ならびに平衡化などの機能を実施する。通信サブシステム１３０は、無線周波数モジュール１３２、アンテナ１３３、および無線モデム（Ｍｏｄｅｍ）とも呼ばれるベースバンドプロセッサ（Ｂａｓｅｂａｎｄ  Ｐｒｏｃｅｓｓｏｒ、ＢＰ）１３１を含む。ベースバンドプロセッサ１３１およびＷｉ−Ｆｉモジュール１５０は１つのチップに統合されてもよいことに留意されたい。また、ベースバンドプロセッサ１３１とアプリケーションプロセッサ１１０とを１つのチップに集積してもよいし、それぞれ独立したチップであってもよい。図２は単なる例示的表現である。電力管理サブシステム１４０は、システムに電力を供給するように構成されている。
【００４３】
メモリ１２０は通常、内部メモリと外部ストレージとを含む。内部メモリは、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、キャッシュ（ＣＡＣＨＥ）などであってもよい。外部ストレージは、ハードディスク、光ディスク、ＵＳＢフラッシュドライブ、フロッピーディスク、テープドライブなどであってもよい。実行可能プログラムは通常、外部ストレージに格納されており、アプリケーションプロセッサ１１０は、実行可能プログラムを外部ストレージから内部メモリにロードした後にそのプログラムを実行する。
【００４４】
オプションで、端末１０はさらにＷｉ−Ｆｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ、ワイヤレスフィデリティ）モジュール１５０を含み、Ｗｉ−Ｆｉモジュール１５０はＩＥＥＥ８０２．１１シリーズのプロトコルをサポートし、端末１０はＷｉ−Ｆｉモジュール１５０を使用してＷＬＡＮにアクセスし得る。
【００４５】
オプションで、端末１０は、ユーザによって入力された情報またはユーザに対して提供された情報を表示するように構成されたディスプレイ１６０と、端末１０の様々なメニューインタフェースとをさらに含む。ディスプレイ１６０は、液晶ディスプレイ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ，  ＬＥＤ）、有機発光ダイオード（Ｏｒｇａｎｉｃ  Ｌｉｇｈｔ−Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ、ＯＬＥＤ）などであってもよい。いくつかの他の実施形態では、タッチパネルがディスプレイ１６０を覆ってタッチディスプレイスクリーンを形成してもよい。
【００４６】
また、端末１０は、写真またはビデオを撮影するためのカメラ１８０と、重力センサ、加速度センサ、または光学センサなどの１つまたは複数のセンサ１７０とをさらに含み得る。
【００４７】
さらに、当業者は、端末１０が図２に示されるものより少ないかまたは多い構成要素を含んでもよいことを理解しえ得る。また図２に示す端末１０では、本発明のこの実施形態において開示されている複数の実装により関連する構成要素のみが示されている。
【００４８】
以下、端末１０のハードウェアおよびソフトウェア環境についてさらに説明する。端末１０は、論理レベルに従って、ハードウェア層、オペレーティングシステム、およびオペレーティングシステム上で動作するアプリケーション層（ユーザモードとも呼ばれる）に分割し得る。ハードウェア層は、図２に関する実施形態で説明したハードウェア、例えば、アプリケーションプロセッサ１１０、メモリ１２０、およびＷｉ−Ｆｉモジュール１５０を含む。オペレーティングシステムは、アンドロイド（登録商標）オペレーティングシステム、リナックス（登録商標）オペレーティングシステム、ウィンドウズ（登録商標）オペレーティングシステム、または他のタイプのオペレーティングシステムであってもよい。これは、本発明のこの実施形態においては限定されない。
【００４９】
実施形態では、オペレーティングシステムは、フレームワーク（フレームワーク）層、カーネルモード、およびドライバ層を含む。ドライバ層は、センサドライバ、Ｗｉ−Ｆｉドライバ、ディスプレイドライバなどのハードウェアデバイスのドライバを含む。カーネルモードは、ＴＣＰプロトコルスタック、ＩＰプロトコルスタックなどを含む。以下、本発明のこの実施形態における方法手順を参照してカーネルモードをさらに説明する。フレームワーク層は、ユーザモードとカーネルモードとの間の通信用のインタフェース、およびいくつかのサービス、例えば、グラフィックサービス（Ｇｒａｐｈｉｃ  Ｓｅｒｖｉｃｅ）２２４、システムサービス（Ｓｙｓｔｅｍ  ｓｅｒｖｉｃｅ）２２１、ウェブサービス（Ｗｅｂ  Ｓｅｒｖｉｃｅ）２２２、およびユーザサービス（Ｕｓｅｒ  Ｓｅｒｖｉｃｅ）２２３などのアプリケーション層で動作するアプリケーションを含む。これらのアプリケーションは通常、ディスプレイを使用してユーザと直接相互作用することができ、これらのアプリケーションはギャラリー、メディアプレーヤ（ｍｅｄｉａ  ｐｌａｙｅｒ）、ブラウザ（ｂｒｏｗｓｅｒ）、ＷｅＣｈａｔ（ＷｅＣｈａｔ）などである。オペレーティングシステム内のアプリケーションプログラムおよびアプリケーション層のアプリケーションプログラムは、実行可能プログラムとしてメモリ１２０に格納され得る。本発明のこの実施形態で使用される用語「プログラム」は、命令、命令セット、コード、コードセグメント、サブルーチン、ソフトウェアモジュール、アプリケーション、ソフトウェアパッケージスレッド、プロセス、機能、ファームウェア、ミドルウェアなどを含むがこれらに限定されないと広く解釈されるべきである。図２に示すように、端末１０は、通信サブシステム１３０を使用してセルラネットワークにアクセスし、次いで広域ネットワーク１３を使用してサーバ２０と通信し得る。別の実施形態では、端末１０はまた、Ｗｉ−Ｆｉモジュール１５０を使用してＷＬＡＮにアクセスし、次いで広域ネットワーク１３を使用してサーバ２０と通信し得る。具体的には、端末１０は、ネットワークにアクセスした後、ＴＣＰ／ＩＰプロトコルスタック（ＴＣＰプロトコルスタックおよびＩＰプロトコルスタック）を使用してサーバ２０に対するＴＣＰ接続を確立し、次いでＴＣＰ接続を使用してデータを送信し得る。ＴＣＰ／ＩＰプロトコルスタックは、ＴＣＰ／ＩＰ参照モデルで定義されているＴＣＰ／ＩＰプロトコルスイートを実装するために使用されるミドルウェアである。ＴＣＰプロトコルスタックは、端末１０上のソフトウェア、ハードウェア、および／またはファームウェアの適切な組み合わせによって実行され得る。ＴＣＰ／ＩＰプロトコルスイートは、２つのコアプロトコル、すなわちＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）およびＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を含む。端末１０とサーバ２０との間のＴＣＰ接続の確立は、端末１０上で動作しているアプリケーションプログラムによって開始し得る。図３におけるブラウザ２１３は、例として使用される。ブラウザ２１３はソケットオープン（ｓｏｃｋｅｔ  ｏｐｅｎ）コマンドを生成し、そのコマンドは端末１０のＴＣＰプロトコルスタックに転送され、ＴＣＰプロトコルスタックを起動して３方向メッセージ交換（「スリーウェイハンドシェイク」とも呼ばれる）によるサーバ２０へのＴＣＰ接続を確立する。そして、ＴＣＰプロトコルスタックは、接続が確立されたことをブラウザ２１３に通知する。
【００５０】
次いで、確立されたＴＣＰ接続に基づいてＴＣＰパケットがブラウザ２１３とサーバ２０との間で送信され得る。ＴＣＰパケットフォーマットを図４に示す。ソースポートおよび宛先ポートは送信側および受信側のアプリケーションプロセスを決定するように構成され、ＴＣＰ接続はソースポート、宛先ポート、ソースＩＰアドレス、および宛先ＩＰアドレスを使用して一意に決定され得る。ＴＣＰパケットヘッダ内のシーケンス番号（Ｓｅｑｕｅｎｃｅ  Ｎｕｍｂｅｒ、通常略してｓｅｑと称される）フィールドは、パケットロード内の第１のデータバイトのシーケンス番号を搬送する。ＴＣＰパケットを受信した後、受信側は肯定応答（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ、略してＡＣＫ）パケットを送信側に送信する。ＡＣＫヘッダの確認応答番号（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ  Ｎｕｍｂｅｒ、略してａｃｋと称される）フィールド値は、受信側が受信したパケットの「シーケンス番号」フィールドの値を表し、受信側が「シーケンス番号」値がＡＣＫパケットの「確認応答番号（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ  Ｎｕｍｂｅｒ）」の値より小さい全てのパケットを受信したことを意味する。ウインドウサイズは、受信側の現在の受信バッファのサイズを示すために使用される。さらに、ＴＣＰパケットヘッダには６つのフラグビットと１つのカスタマイズ可能なオプション（Ｏｐｔｉｏｎ）フィールドがあり、オプションフィールドは追加情報を伝達するために使用し得る。６つのフラグビットの定義は以下の通りである。
【００５１】
ＵＲＧは、緊急ポインタが有効であることを示す。
【００５２】
ＡＣＫは、確認応答番号が有効であることを示す。
【００５３】
ＰＳＨは、処理するためにデータをアプリケーション層に直ちにプッシュすることを示す。
【００５４】
ＲＳＴは異常リセットを示す。
【００５５】
ＳＹＮは同期フラグであり、ＳＹＮが１に設定されると接続が確立される。
【００５６】
ＦＩＮは、コネクションを解除することを要求するために使用される終了フラグである。
【００５７】
以下、ＴＣＰ再送信メカニズムと輻輳制御メカニズムについて簡単に説明する。説明を簡単にするために、本出願においてその間で通信接続が確立されている２つのデバイスのうちの一方を送信側と呼び、他方を受信側と呼ぶ。送信側および受信側はそれぞれ、データ受信および送信能力を有する任意のデバイスであり得ることを理解されよう。例えば、送信側はサーバ２０であってもよく、受信側は端末１０あってもよい。さらに、送信側および受信側は２つの相対的な役割であり、そして交換可能であり得る、すなわち、異なるシナリオにおいて、同じデバイスが送信側になることも、または受信側になることもあり得る。
【００５８】
ＴＣＰ再送信メカニズムはパケットの信頼できる送信を保証し、再送信メカニズムは主に、タイムアウト再送信および高速再送信を含む。タイムアウト再送信の基本プロセスは次のとおりである。パケットを送信した後、送信側はタイムアウトタイマーを開始し、タイムアウトタイマーが満了した後もパケットが正しく受信されたことを示す確認応答パケットを送信側が受信しない場合、送信側はパケットを再送信する。タイムアウトタイマーの値は、通常、ＲＴＯ（Ｒｅｔｒａｎｓｍｉｓｓｉｏｎ  Ｔｉｍｅｏｕｔ）として表される。ＲＴＯは通常、ＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）、すなわち、パケットの送信からそのパケットの肯定応答（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ）の受信までに費やされる時間として設定される。ＲＴＴは、サンプリングによって得てもよい。
【００５９】
しかしながら、無線通信システムは端末にサービスを提供し、技術の発展と共に、端末は通常、２Ｇ、３Ｇ、および４Ｇネットワークなどの複数の種類の通信プロトコルをサポートすることを理解されたい。端末の位置が変わるなどの理由で、ネットワークは通常、不安定になったり、または信号強度が変化する。例えば、エレベータや地下駐車場のように信号が弱い領域、あるいは新幹線や高速鉄道のような高速輸送手段に端末があるようなシナリオでは、ネットワーク信号が不安定なため、端末のネットワーク接続ステータスが変化する。例えば、端末は、例えばＬＴＥからＷＣＤＭＡへのような異なるタイプのセルラネットワークでハンドオーバされてもよく、あるいはある期間内に、端末はネットワークから切断されてネットワークに再接続されてもよいが、この種の変化は、ある期間には頻繁になる。そのようなシナリオでは、端末が送信側として使用されるとき、セルラネットワークに送信されることになっているパケットの送信中に、端末のモデムはパケットを破棄し得る。この場合に生じるパケット損失は、アクティブパケット廃棄とも呼ばれる。したがって、アクティブパケット廃棄は、セルラネットワークを使用する端末で頻繁に発生する。
【００６０】
アクティブパケット廃棄は、パケットが送信のためにネットワークに入力する前に発生する行為であり、データはネットワーク送信プロセスにおいて失われないことが分かるだろう。上記の説明によれば、ＴＣＰ再送信メカニズムでは、パケット損失の原因は区別されない。通常、再送は、ネットワーク側からのフィードバックを受信した後に実行される必要があり、したがって、モバイル端末は、アクティブなパケット破棄に応答するときに比較的大きな遅延を有する。本発明のこの実施形態では、アプリケーションプロセッサ１１０内のＴＣＰプロトコルスタックがベースバンドプロセッサ１３１内の送信対象データのパケット損失を感知することができるように最適化が主に実行され、アクティブなパケット廃棄に対するモバイル端末による応答の遅延を低減する。本発明のこの実施形態における方法は、パケット再送信メカニズムを含む別の信頼できるトランスポートプロトコルにも適用可能であることを理解されるだろう。本発明のこの実施形態では、説明例としてＴＣＰパケットが使用される。
【００６１】
図３はさらに、図１のアプリケーションプロセッサ１１０およびベースバンドプロセッサ１３１が、本発明のこの実施形態において協調してデータを処理するプロセスに使用されるソフトウェアアーキテクチャを示す。アプリケーションプロセッサ１１０はプロセッサコアと見なし得る。ベースバンドプロセッサ１３１（モデムとも呼ばれる）は別のプロセッサコアと見なされる。ソフトウェアアーキテクチャは、２つのコア間のデータ通信用メカニズムをサポートできる。２つのコア間の通信は、特定のコア間通信プロトコルに適合している。コア間通信プロトコルの種類は、本発明のこの実施形態において限定されない。本発明のこの実施形態における端末がデータパケットをネットワーク側デバイスに送信するためのデータのソース側として使用されるプロセスは、図３を参照して以下に簡単に説明される。アプリケーションプロセッサ１１０では、アプリケーション層のアプリケーション（ＡＰＰ、ａｐｐｌｉｃａｔｉｏｎ）がＴＣＰ接続のソース側のソケットインタフェースを使用してデータパケットをＴＣＰプロトコルスタックとカーネル（カーネルモードとも呼ばれる）のＩＰプロトコルスタックを介して転送した後、アプリケーションプロセッサ１１０およびモデムのそれぞれのタスク（スレッドとしても理解され得るタスク）であり、コア間通信に使用されるタスクは、データパケットをモデム内の３ＧＰＰ（３ｒｄ  Ｇｅｎｅｒａｔｉｏｎ  Ｐａｒｔｎｅｒｓｈｉｐ  Ｐｒｏｊｅｃｔ、第３世代パートナーシッププロジェクト）プロトコルスタック（タスクまたはスレッドとしても理解され得る）に転送するために使用され、次いで３ＧＰＰプロトコルスタックは、通信サブシステム１３０内のハードウェアを使用して端末からデータパケットを送信する。
３ＧＰＰプロトコルスタックは、データリンク層および物理層において、１つまたは複数の通信プロトコルを搬送するために使用される。搬送される通信プロトコルは主に様々なセルラネットワークに使用される通信プロトコルであり、３Ｇネットワークの様々な通信プロトコルに限定されず、例えば、ＧＳＭ、ＣＤＭＡ、またはＬＴＥであってもよい。これは本発明において限定されない。
本発明のこの実施形態では、端末のカーネルの種類は、端末のオペレーティングシステムの種類によって決定され、本発明では限定されない。例えば、カーネルは、Ｌｉｎｕｘカーネル（Ａｎｄｒｏｉｄカーネル）またはＷｉｎｄｏｗｓカーネルであってもよい。実装において、比較的大きなデータ量のデータ（データパケットなど）をアプリケーションプロセッサ１１０とモデムとの間で送信するために使用されるコア間通信タスクは、比較的小さいデータ量の情報（ハートビート情報または制御命令など）をアプリケーションプロセッサ１１０とモデムとの間で送信するために使用されるコア間通信タスクとは異なる。さらに、比較的小さいデータ量の情報を送信するために使用されるコア間通信タスクは、次のように実施されてもよい。１つのタスクはアプリケーションプロセッサ１１０およびベースバンドプロセッサ１３１のそれぞれで動作し、比較的小さいデータ量の情報は２つのタスク間で送信されてもよく、２つのプロセッサ間の情報伝送は２つのタスク間の通信によって実施されてもよい。
【００６２】
具体的には、モデムでは、３ＧＰＰプロトコルスタックおよびアプリケーションプロセッサ１１０との間でデータパケットを送信するために使用されるタスクは、それぞれのデータパケットキャッシュキューを有しており、タイマは通常、これらのデータパケットキャッシュキューを監視するように構成される。具体的には、３ＧＰＰプロトコルスタック内の異なるプロトコルは通常、異なるデータパケットキャッシュキューに対応している。例えば、ＰＤＣＰ（Ｐａｃｋｅｔ  Ｄａｔａ  Ｃｏｎｖｅｒｇｅｎｃｅ  Ｐｒｏｔｏｃｏｌ、パケットデータコンバージェンスプロトコル）キューがＬＴＥプロトコルでは用いられ、ＰＤＣＰキューまたはＲＬＣ（Ｒａｄｉｏ  Ｌｉｎｋ  Ｃｏｎｔｒｏｌ、無線リンク制御）キューがＷＣＤＭＡまたはＴＤ−ＳＣＤＭＡプロトコルでは用いられる。複数の場合において、データパケットキャッシュキュー内のデータパケットはモデムによって能動的に破棄され、ネットワークデバイスに送信されることができない。以下、いくつかの典型的なパケット破棄シナリオを簡単に列挙する。本発明のこの実施形態におけるパケット破棄シナリオは、以下の例に限定されないことを理解されたい。
【００６３】
例えば、モデム内にあり、プロセッサ１１０にデータパケットを送信するために使用されるタスクにおいて、アプリケーションプロセッサ１１０からデータパケットを受信した後、通常、ＲＲＣ接続が確立されているかどうかが判定される。ＲＲＣ接続が確立されていた場合、受信データパケットは処理するために３ＧＰＰプロトコルスタックに送信される。ＲＲＣ接続が確立されていなかった場合、データパケットはタスクのキューにキャッシュされ、ＲＲＣ接続が正常に確立された後に送信される。タスクでは、データパケットがキャッシュキューに保存されなかった場合、またはタスクのキャッシュキューのタイマが満了になり、かつＲＲＣ接続が確立されなかった場合、データパケットが破棄される、あるいはタスクでは、タスクのデータパケットキャッシュキューを消去するために使用されるＥＲＡＢＭ（Ｅ−ＵＴＲＡＮ無線アクセスベアラ管理）メッセージが受信された後で、キャッシュキュー内のデータパケットが能動的に消去される。
【００６４】
３ＧＰＰプロトコルスタックは、端末のデータ接続が利用可能であるかどうかを判断するために、端末がデータサービスを処理するためにセルラネットワークを使用することができない原因となるイベントを、検出手段によって発見し得る。例えば、端末は切断状態にある、端末はいずれのサービングセルにも正常にキャンプオンすることができない、端末のデータサービスは無効状態にある、または端末は回線交換ドメインが２Ｇへフォールバックしている（回線交換フォールバック、ＣＳＦＢ）時の場合には２Ｇコールシナリオにある。前述のいくつかのシナリオでは、端末のデータ接続は利用不可である。端末のデータ接続を利用できなくするイベントは、本発明のこの実施形態においては限定されない。あるいは、３ＧＰＰプロトコルスタックは、端末によって受信またはアクセスされるセルラネットワーク信号の強度や、端末によってアクセスされるセルラネットワークの種類、および端末が音声サービスを実行しているかどうかのような、端末がデータサービスを処理するためにセルラネットワークを使用できるかどうかを表すためにに使用されるいくつかのパラメータを収集し得る。ベースバンドプロセッサは、事前設定されたアルゴリズムによる計算によって、端末の現在のデータ接続が利用可能であるかどうかを判定する。特定のパラメータおよび特定のアルゴリズムは、本発明のこの実施形態においては限定されない。前述の検出または計算は、３ＧＰＰプロトコルスタックによって定期的に実行されてもよく、またはいくつかの命令によって起動されてもよく、または前述のイベントによって起動されてもよい。端末のデータ接続が利用可能であるかどうかを３ＧＰＰプロトコルスタックがどのように決定するかは、本発明のこの実施形態においては限定されない。端末がセルラネットワークを使用してデータサービスを処理するプロセスでは、ＲＲＣ（Ｒａｄｉｏ  Ｒｅｓｏｕｒｃｅ  Ｃｏｎｔｒｏｌ、無線リソース制御）リンク確立および切断を伴い、端末と基地局との間のデータサービスインタラクションプロセスでしばしば実行され、端末と基地局との間のデータ接続が利用可能である場合、ＴＣＰ接続、すなわち、物理層（Ｐｈｙｓｉｃａｌ  Ｌａｙｅｒ）とメディアアクセス制御（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）層との間の接続をさらに確立するプロセスである。したがって、本発明のこの実施形態では、端末のデータ接続が利用可能であるという前提で、ＲＲＣリンク確立および切断の両方が発生する。データ接続が利用可能であるかどうかを端末が判断することは、ＲＲＣリンク確立および切断とは無関係である。
【００６５】
さらに、３ＧＰＰプロトコルスタックは、以下の場合に送信対象パケットを能動的に破棄し得る。
【００６６】
端末は、異なる無線セルラネットワーク間でハンドオーバされる。例えば、端末は、ＬＴＥネットワークからＷＣＤＭＡネットワーク、ＴＤ−ＳＣＤＭＡネットワーク、またはＧＳＭネットワークにハンドオーバされる。これは、実際のシナリオでは不安定な４Ｇネットワークに起因して端末が４Ｇ基地局に接続できない、あるいはＶｏＬＴＥ（Ｖｏｉｃｅ  ｏｖｅｒ  ＬＴＥ）技術が現在使用されていないシナリオでは音声通信がＬＴＥネットワーク（例えば、ＣＳＦＢシナリオ）で開始されるために引き起こされる。端末が３Ｇネットワークまたは２Ｇネットワークにハンドオーバされるとき、このイベントはＬ２層（すなわち、ＭＡＣ層、ＲＬＣ層、およびＰＤＣＰ層を含むＬＴＥ層２）で解除を引き起こす可能性がある。例えば、ＰＤＣＰキューが解除され、モデムはＰＤＣＰキュー内の送信予定のパケットをクリアする。他の例では、端末は、ＷＣＤＭＡまたはＴＤ−ＳＣＤＭＡからＬＴＥにハンドオーバされる。この出来事はまた、Ｌ２層で解除を引き起こす可能性がある。
【００６７】
ネットワークパラメータの設定が不適切である。例えば、端末がＬＴＥネットワークを使用している場合、不適切なパラメータはＰＤＣＰの再設定を起こす可能性があり、モデムはＰＤＣＰキュー内の送信対象パケットをクリアする。端末がＷＣＤＭＡまたはＴＤ−ＳＣＤＭＡネットワークを使用するとき、不適切なパラメータはＲＬＣ（無線リンク制御、無線リンク制御）再構成を引き起こす可能性がある。ＲＬＣ層はＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ、媒体アクセス制御）層の上方に位置し、ＭＡＣ層と共にＬ２層の一部であり、そしてモデムは送信対象パケットをクリアする。
【００６８】
端末がＷＣＤＭＡまたはＴＤ−ＳＣＤＭＡネットワークを使用するとき、ＲＮＣ（Ｒａｄｉｏ  Ｎｅｔｗｏｒｋ  Ｃｏｎｔｒｏｌｌｅｒ、無線ネットワークコントローラ）ハンドオーバはＲＬＣ再確立を引き起こす可能性があり、モデムは送信対象パケットをクリアする。
【００６９】
ＰＤＣＰキューは一杯であり、アプリケーションプロセッサ１１０によって配信されたパケットはキューに挿入されることができず、モデムにより廃棄される。この場合は、ＬＴＥネットワークまたはＷＣＤＭＡまたはＴＤ−ＳＣＤＭＡネットワークで発生する可能性がある。
【００７０】
セルラネットワークでは、複数の無線ベアラ（すなわち、３ＧＰＰプロトコルスタック内のデータリンク層によって確立されたリンク）は、アプリケーションの複数のサービスを提供し得る。通常、１つのサービスが１つのベアラを使用する。各ベアラは、１つのＰＤＣＰキューにキャッシュされた送信対象パケットに対応する。ベアラ上のサービスがネットワークの問題により異常中断された場合、モデムはそのサービスに対応するＰＤＣＰキュー内の送信予定パケットを能動的にクリアする。
【００７１】
理解を容易にするために、図４は、ＴＣＰパケットフォーマットの模式図である。
【００７２】
図５を参照して、以下、本発明の実施形態で提供されるパケット送信方法を説明する。本方法は端末に適用され、端末はアプリケーションプロセッサ、ベースバンドプロセッサ、および通信インタフェースを含み、本方法は以下のステップを含む。
【００７３】
Ｓ５０２：ベースバンドプロセッサは、第１のパケットに関する情報をアプリケーションプロセッサにレポートし、ここで第１のパケットは、ベースバンドプロセッサによって破棄される送信対象パケットである。
【００７４】
第１のパケットに関する情報は、第１のパケットの識別子と、第１のパケットが送信されるのに使用されたＴＣＰコネクションの識別子とを含む。
【００７５】
ベースバンドプロセッサによって破棄された送信対象パケットはまた、アプリケーションプロセッサによりベースバンドプロセッサに配信され、ベースバンドプロセッサにより通信インタフェースを使用してネットワークデバイスへの送信ができないパケットとして理解し得ることに留意されたい。
【００７６】
ベースバンドプロセッサは、複数の送信対象パケットを破棄してもよい。前述の説明から、送信対象パケットが多くの場合破棄される可能性があることを知り得る。具体的には、ベースバンドプロセッサは、破棄された送信対象パケットを決定するために、破棄された送信対象パケットに関する情報を記録してもよく、またはベースバンドプロセッサが送信対象パケットを破棄する原因となるイベント、例えば、異なるセルラネットワーク間のハンドオーバを監視してもよい。ベースバンドプロセッサが廃棄される送信対象パケットに関する情報をどのように取得するかは、本発明のこの実施形態においては限定されない。
【００７７】
ベースバンドプロセッサは、破棄された送信対象パケットに関する情報をアプリケーションプロセッサにレポートし得る。説明を簡単にするために、第１のパケットがＴＣＰパケットである例として第１のパケットを使用して説明が提供される。第１のパケットに関する情報は、第１のパケットの識別子と、第１のパケットが送信されるのに使用されたＴＣＰ接続の識別子とを含む。実装形態では、第１のパケットの識別子はパケットのシーケンス番号であってもよい。第１のパケットが送信されるのに使用されたＴＣＰ接続の識別子は、ＴＣＰ接続のソースポート番号であってもよい。ＴＣＰパケットフォーマット（図４に示すように）によれば、ベースバンドプロセッサは、送信対象パケットを処理するプロセスにおいて解析することによってシーケンス番号およびソースポート番号を取得し得る。
【００７８】
当業者は、ベースバンドプロセッサがパケットに関する情報でありレポートされる必要がある情報を決定してもよく、特定の実装は本発明のこの実施形態では限定されないことを理解すべきである。具体的な伝送プロトコルはＴＣＰプロトコルに限定されない。
【００７９】
実装では、ベースバンドプロセッサは、破棄された送信対象パケットに関する情報をレポートするための適切な機会を選択し、パケットが破棄された後でアプリケーションプロセッサへのレポートを直ちに実行する代わりに、適切な機会に複数の破棄されたパケットに関する情報をレポートし得る。具体的には、端末のデータ接続が利用可能であるとき、ベースバンドプロセッサは第１のパケットに関する情報をアプリケーションプロセッサにレポートする。あるいは、端末のデータ接続が利用不可である場合、ベースバンドプロセッサは第１のパケットに関する情報をキャッシュし、端末のデータ接続が利用不可から利用可能に切り替えられる場合、ベースバンドプロセッサは第１のパケットに関する情報をアプリケーションプロセッサにレポートする。前述の２つの方法を一緒に使用できることを理解されたい。
【００８０】
ベースバンドプロセッサのキャッシュキューは、アプリケーションプロセッサにレポートされるべき情報をキャッシュし得るが、その情報は、ベースバンドプロセッサにより破棄された送信対象パケットに関する情報である。
【００８１】
データ接続は、データサービスを実施するために使用される接続である。端末のデータ接続は、端末と基地局との間のデータ接続として理解され得る。詳細については、前述の説明を参照されたし。
【００８２】
端末のデータ接続が利用不可から利用可能に切り替えられると、ベースバンドプロセッサは第１のパケットに関する情報をアプリケーションプロセッサにリポートすることに留意されたい。これは、端末のデータ接続が利用不可から利用可能に切り替わった後、ベースバンドプロセッサが第１のパケットに関する情報をアプリケーションプロセッサにリポートすることを示す。命令の読み取り、関連する操作の実行などには時間がかかるので、同時性は厳密には要求されない。すなわち、端末のデータ接続が利用不可から利用可能に切り替わった後の比較的短い時間（例えば、数ミリ秒または数秒）内に、ベースバンドプロセッサは、第１のパケットに関する情報をアプリケーションプロセッサにリポートする動作を完了する。
【００８３】
この実装において、ベースバンドプロセッサは、端末のデータ接続が利用可能であるかどうかを決定する必要があることが理解され得る。
【００８４】
端末は、周期的な検出、イベントトリガ、命令トリガなどによって、端末のデータ接続が利用可能か利用不可かを判定し得ることを理解され得る。データ接続が利用可能であるかどうかを決定するために使用されるイベント、その分析で使用される特定の分析プロセスおよびアルゴリズム、ならびに端末のデータ接続が利用可能であるかどうかを判定するためにベースバンドプロセッサを起動する方法は本発明の実施形態では限定されない。さらなる説明については、前述の関連説明を参照されたい。
【００８５】
ベースバンドプロセッサはステップＳ５０２を実行して、データパケットをベースバンドプロセッサに時間内に再送するようにパケットが廃棄されたことをアプリケーションプロセッサに知らせ、ベースバンドプロセッサは再送されたデータパケットを取得してデータパケットを受信側に送信する。したがって、端末のデータ接続が利用できないときに再送信が実行されると、データ接続が利用できないためにベースバンドプロセッサは再びパケットを能動的に破棄し、アプリケーションプロセッサのこの再送信は無効になる。したがって、データ接続が利用可能である場合にのみベースバンドプロセッサが破棄された送信対象パケットに関する情報をアプリケーションプロセッサにレポートすれば、再送有効性を改善することができる。さらに、ステップＳ５０２を実行するとき、ベースバンドプロセッサはアプリケーションプロセッサを起動する必要がある。パケットが廃棄された直後にベースバンドプロセッサが情報をレポートする場合、アプリケーションプロセッサは頻繁に起動され、そしてそれゆえに、端末のエネルギー消費は非常に増大する。モバイル端末は通常電池を使用しており、消費電力はできるだけ少なく、待機時間はできるだけ長くすることが必要となる。したがって、廃棄された送信対象パケットに関する情報が、ネットワークが利用可能であるときにだけアプリケーションプロセッサにレポートされる場合、端末のエネルギー消費量が減少されることが可能である。
【００８６】
もちろん、別の実装では、ベースバンドプロセッサは代替として、端末のデータ接続が利用可能であるかどうかを考慮せず、再送信が必要なパケットに関する情報が決定されると、情報をアプリケーションプロセッサにレポートする。これは、本発明のこの実施形態においては限定されない。
【００８７】
Ｓ５０４：アプリケーションプロセッサは、第１のパケットに関する情報に従って第２のパケットをベースバンドプロセッサに送信し、ここで第２のパケットは第１のパケットと同一である。
【００８８】
実装では、アプリケーションプロセッサは、受信した第１のパケットに関する情報に従って、その情報が含む第１のパケットと第１のパケットが配置されているＴＣＰ接続のソースポートとを取得し、アプリケーションプロセッサはソースポートを使用して第１のパケットをベースバンドプロセッサに再送信する。
【００８９】
第２のパケットは、第１のパケットのコピーとして理解し得る。
【００９０】
ＴＣＰ伝送プロトコルによれば、送信側のＴＣＰプロトコルスタックがパケットを下位層に送信した後、パケットのコピーがＴＣＰ接続のキューに保存されることを理解されたい。パケットのコピーは、ＴＣＰ接続の受信側から返されたＡＣＫ（Ａｃｋｎｏｗｌｅｄｇｅｍｅｎｔ、確認応答）が受信され、パケットが受信側で正常に受信されたことを確認するまで削除されない。そうでなければ、もしＴＣＰ接続の受信側から返されたＡＣＫが受信されない場合は、パケットのコピーは送信タイムアウトの場合における再送信のために記憶される。したがって、アプリケーションプロセッサは、第１のパケットに関するものであり、ベースバンドプロセッサによってレポートされた情報に従って、第２のパケットをベースバンドプロセッサに再送信し得る。
【００９１】
Ｓ５０６：ベースバンドプロセッサは、通信インタフェースを使用して第２のパケットをネットワークデバイスに送信する。
【００９２】
ネットワークデバイスは、セルラネットワーク内の基地局またはサーバなどのネットワークデバイスとし得る。これは、本発明のこの実施形態において限定されない。
【００９３】
結論として、送信対象パケットを破棄した後、ベースバンドプロセッサは、アプリケーションプロセッサにベースバンドプロセッサによって破棄された送信対象パケットに関する情報をレポートし得る。その結果、アプリケーションプロセッサは、レポートされた情報に従ってベースバンドプロセッサに、ベースバンドプロセッサによって破棄されたパケットのコピーを再配信することができる。パケットのタイムアウトタイマーが満了し、いかなる確認応答パケットもピアエンドから受信されないことが判定される前に、パケットが廃棄され、パケットがベースバンドプロセッサに再送信されることが決定可能である。これにより、ベースバンドプロセッサによって廃棄された送信対象パケットを端末が再送信する際の遅延を減少することができ、端末によるパケット損失に応答する遅延をある程度減少することができ、その結果、端末とネットワークとの間のデータ伝送はより滑らかになる。無線セルラネットワークの状態はしばしば変化するので、ベースバンドプロセッサが送信対象パケットを廃棄する場合が頻繁に発生する。
【００９４】
さらに、上述のように、実装において、電力消費を考慮して、端末によってアクセスされるセルラネットワークの状態が利用可能になるまで、ベースバンドプロセッサは破棄された送信対象パケットに関する情報をレポートしない。この場合、破棄された送信対象パケットに関する情報は、レポートされる前に特定時間待機する必要がある。これにより、以下の２つのケースが発生し得る。１つのケースでは、パケットに関する情報がベースバンドプロセッサによってレポートされる前に、廃棄された送信対象パケットのタイムアウトタイマが満了する。この場合、破棄されたパケットと同じパケットは、ＴＣＰ接続とタイムアウト再送信メカニズムを使用して再送信された可能性がある。ベースバンドプロセッサは、もはや廃棄されたパケットに関する情報をアプリケーションプロセッサにレポートする必要がない。ベースバンドプロセッサは、廃棄されたパケットと同じ受信されたパケットに従って、廃棄されたパケットに関する情報をフィルタ除去し得る。それによって電力の浪費および端末トラフィックの浪費を回避することができる。他のケースでは、アプリケーションプロセッサが破棄されたパケットと同じパケットを配信するとき、破棄されたパケットのタイムアウトタイマーは満了する。この場合もタイムアウト再送要件を同等に満たしているため、ＴＣＰ接続の輻輳制御方式が起動され得る。
【００９５】
ＴＣＰ再送信メカニズムは信頼できるパケット送信を保証することができるが、従来技術の再送信メカニズムでは、ネットワーク輻輳が原因でパケット損失が引き起こされることがデフォルトで考慮されることに留意されたい。通常、ネットワーク伝送中のパケット損失の最も一般的な原因は、ネットワーク負荷が高すぎることである。ネットワークデバイスは、現時点でネットワークにおいて送信される必要があるデータ量を捌くことができず、ネットワークの輻輳が引き起こされ、したがってネットワーク内で送信されるいくつかのパケットは破棄される。したがって、輻輳制御方法を再送信メカニズムと共に使用してネットワーク内の輻輳を低減し、再送信されたパケットによってピアエンドに到達する成功率を向上させる。輻輳制御アルゴリズムは主に、スロースタート（Ｓｌｏｗ  Ｓｔａｒｔ）、輻輳回避（Ｃｏｎｇｅｓｔｉｏｎ  Ａｖｏｉｄａｎｃｅ）などを含む。簡単に言えば、パケットが損失し、再送信する必要があることが分かると、アプリケーションプロセッサは、輻輳ウインドウ（ＣＷＮＤ，  ｃｏｎｇｅｓｔｉｏｎ  ｗｉｎｄｏｗ）の値やスロースタート閾値（ｓｓｔｈｒｅｓｈ、ｓｌｏｗ  ｓｔａｒｔ  ｔｈｒｅｓｈｏｌｄ）などの、端末によってネットワークに送信されるパケットの量を制限するためのいくつかのパラメータの値を減少する。アプリケーションプロセッサは通常、調整されたパラメータを使用して、再送信されたパケットをベースバンドプロセッサに配信する速度と、後続の送信対象パケットをベースバンドプロセッサに配信する速度とを制御する。
【００９６】
例えば、パケット損失がタイムアウト再送信を引き起こす場合、送信側はスロースタート閾値をＣＷＮＤ／２に減少し、次いでＣＷＮＤを１に設定し、そしてスロースタートプロセスに再び入り得る。別の例では、送信側がＡＣＫに従って、パケットが損失されたと判断して高速再送信を開始する場合、送信側は輻輳ウインドウを半分に減少し、スロースタート閾値を更新された輻輳ウインドウサイズに設定してもよい。異なるアルゴリズムでは、輻輳ウインドウおよびスロースタート閾値を減少させる振幅および方法は異なるが、ほとんどの場合、パケット廃棄バックオフ規則が基礎として使用される、すなわち、送信側がネットワーク内でパケットが損失していると判断する場合、輻輳ウインドウサイズとスロースタート閾値が能動的に減少される。
【００９７】
しかしながら、本発明のこの実施形態における能動的なパケット廃棄はネットワーク輻輳によって引き起こされないので、端末によって無線ネットワークに送信されるパケットの量を減少する必要はなく、またパケットはベースバンドプロセッサによって能動的に廃棄されるため、できるだけ早くピアエンドにパケットを送信するために、特定量の送信パケットを確保する必要がある。しかしながら、本発明のこの実施形態における方法は通常、既存のＴＣＰメカニズムで使用され、ＣＷＮＤが減少されるという前述の問題は避けられない。
【００９８】
したがって、本発明のこの実施形態の実装では、アプリケーションプロセッサが第１のパケットに関する情報に従って第２のパケットをベースバンドプロセッサに送信した後、アプリケーションプロセッサは補償として輻輳ウインドウを増加させる。
【００９９】
例えば、ＣＷＮＤは、輻輳ウインドウの指定された初期値まで増加、または輻輳ウインドウの減少が再送信によって引き起こされる前に使用される、輻輳ウインドウの値に戻し得る。本発明のこの実施形態では、アプリケーションプロセッサが輻輳ウインドウを増加させる値、およびアプリケーションプロセッサが輻輳ウインドウを増加させるために使用するポリシーなどは限定されない。これにより、タイムアウト再送信による影響を排除でき、端末により送信されるパケット量を確保することができ、また端末の送信スループットを向上させることができる。
【０１００】
別の実施形態では、アプリケーションプロセッサとベースバンドプロセッサ（モデムとも呼ばれる）とを同一チップの同一コアに統合することさえ可能であり、上述の方法はそのようなチップにも適用可能である。説明を容易にするために、この実装では、チップはプロセッサと呼ばれ、ＴＣＰプロトコルスタックおよび３ＧＰＰプロトコルスタックは、プロセッサ上で動作する２つのタスク（またはスレッド）として理解されることもあり、この２つのタスクは異なるプロセスまたは同一のプロセスに属してもよく、ＴＣＰプロトコルスタックと３ＧＰＰプロトコルスタックは、スレッド間またはプロセス間の通信メカニズムを使用して情報を交換する。アプリケーションプログラムはさらに、アプリケーションプロセッサ上で動作する。
アプリケーションプログラムはさらに、例えば、アプリケーションプログラムによって生成されたデータまたはアプリケーションプログラムからの要求であり、ユーザ操作によって起動された要求を、ＴＣＰプロトコルスタックおよび３ＧＰＰプロトコルスタックを使用してパケットとして、基地局に送信する。３ＧＰＰプロトコルスタックは、アプリケーションプログラムの破棄されたパケットに関する、パケットの識別子およびパケットが位置するＴＣＰ接続の識別子などの情報をスレッド間またはプロセス間の通信メカニズムを使用してＴＣＰプロトコルスタックに転送し、その結果、ＴＣＰプロトコルスタックは、破棄されたパケットに関する受信した情報に従って、破棄されたパケットと同じパケットを３ＧＰＰプロトコルスタックに転送する。プロセッサは、３ＧＰＰプロトコルスタックによって受信され、廃棄されたパケットと同じパケットを通信インタフェースを使用して基地局に送信する。
この実装における他の詳細については、上述の本出願を参照されたい。詳細は本明細書では再度説明されない。このようにして、ベースバンドプロセッサによって破棄されたパケットの端末による再送信の際の遅延を減少させることができ、端末とネットワークデバイスとの間の遅延をある程度減少させ、端末とネットワークとの間のデータ伝送がより円滑になる。
【０１０１】
実施形態において、ベースバンドプロセッサが送信対象パケットを破棄した後に、アプリケーションプロセッサがベースバンドプロセッサとどのように協働して再送信を完了させるかについて、図３のソフトウェアアーキテクチャを参照しながらＡｎｄｒｏｉｄシステムを備える端末を例として使用して以下に説明する。アプリケーションプロセッサとベースバンドプロセッサは、２つのコアまたは２つの独立したチップである。本実施形態において、上述した内容については、前述の説明を参照されたい。詳細は本明細書では再度説明しない。
【０１０２】
この実装では、ベースバンドプロセッサは、３ＧＰＰプロトコルスタックと、アプリケーションプロセッサとの間でデータパケットを送信するために使用されるタスク（略してコア間データ送信タスクと称す）とを含み、さらに比較的少量のデータを送信するためのコア間通信タスクを含む。アプリケーションプロセッサは、ベースバンドプロセッサ内のコア間通信タスクに対応する別のコア間通信タスクと、ＴＣＰプロトコルスタックと、ＩＰプロトコルスタックと、アプリケーションプロセッサのアプリケーション層で動作するアプリケーションとを含む。
【０１０３】
ベースバンドプロセッサ内の３ＧＰＰプロトコルスタックは、ベースバンドプロセッサによって破棄された送信対象パケットと、端末によって現在アクセスされているセルラネットワークの状態とを監視する。具体的には、３ＧＰＰプロトコルスタックは、廃棄された送信対象パケットを決定するために、ベースバンドプロセッサが送信対象パケットを破棄する原因となるイベント、例えば、異なるセルラネットワーク間のハンドオーバを監視し得る。
【０１０４】
３ＧＰＰプロトコルスタックは、ベースバンドプロセッサによって廃棄された送信対象パケットに関する情報（廃棄されたパケットのシーケンス番号および廃棄されたパケットが位置するＴＣＰ接続のソースポート番号を含む）を生成しその情報をキューに格納し、端末のデータ接続が利用可能であるかどうかを示す情報（接続が利用可能であるかどうかを示すために使用されるいくつかのパラメータ、または異なる値が接続の利用可能または利用不可を示す、直接的にはブール値であり得る情報）を生成し、上記２種類の情報をベースバンドプロセッサ内のコア間通信タスクに転送する、例えば、共有メモリを用いてその情報を転送する。
【０１０５】
また、ベースバンドプロセッサ内にあり、かつアプリケーションプロセッサとの間でデータパケットを送信するために使用されるタスクにおいても、タスク内で破棄されたパケットが検出される。３ＧＰＰプロトコルスタックと同様に、タスクは、ベースバンドプロセッサにより破棄された送信対象パケットに関する生成された情報（破棄されたパケットのシーケンス番号および破棄されたパケットが配置されているＴＣＰ接続のソースポート番号を含む）をベースバンドプロセッサ内のコア間通信タスクに転送する、例えば、共有メモリを用いてその情報を転送する。
【０１０６】
コア間通信タスクは、廃棄されたパケットに関する取得した情報をタスクのキューを用いて管理する。キューが一杯になると、キューは破棄されたパケットに関する情報であり、キューが一杯になった後に得られる情報を破棄し、コア間通信タスクは３ＧＰＰプロトコルスタックによって提供される端末のデータ接続に関する情報に従って端末のデータ接続が利用可能か利用不可かを判断する。
【０１０７】
端末のデータ接続が利用可能の場合、コア間通信タスクはキュー内の破棄されたパケットに関する情報をアプリケーションプロセッサ内のコア間通信タスクに送信し、それによりアプリケーションプロセッサは破棄されたパケットに関する情報を学習する。
【０１０８】
端末のデータ接続が利用不可の場合、コア間通信タスクのキューのタイマが開始され、タイマが満了するとき、再び３ＧＰＰプロトコルスタックによって提供される情報に従ってタイマにより計時された時間の後で端末のデータ接続が利用可能かどうかが判定される。データ接続が利用可能である場合、コア間通信タスクは、キュー内の破棄されたパケットに関する情報をアプリケーションプロセッサ内のコア間通信タスクに送信し、タイマがリセットされる。データ接続がまだ利用できない場合、タイマがリセットされ、タイマが次に満了になるときに判定が実行される。
【０１０９】
アプリケーションプロセッサは、破棄された送信対象パケットに関するものであり、ベースバンドプロセッサによって送信された情報を解析して、破棄されたパケットのシーケンス番号および破棄されたパケットが位置するＴＣＰ接続のソースポート番号を取得する。
【０１１０】
アプリケーションプロセッサは、ソースポート番号を使用してＬｉｎｕｘネットワークプロトコルスタック内の対応するＴＣＰ接続を見つけ、廃棄された送信対象パケットのシーケンス番号と、ＴＣＰ接続の送信キュー内のパケットのシーケンス番号とを比較して破棄された送信対象パケットのコピーを見つけ、ＴＣＰ／ＩＰプロトコルスタックを使用して、破棄された送信対象パケットのコピーをベースバンドプロセッサに送信する。
【０１１１】
また、廃棄された送信対象パケットのコピーをアプリケーションプロセッサによって送信するプロセスにおいて、例えば、送信対象パケットのコピーが再送された後で、ＴＣＰ輻輳制御が起動された場合、端末のＣＷＮＤは１に減少し、アプリケーションプロセッサは現在のＣＷＮＤ値を端末の初期ＣＷＮＤ値（ＴＣＰ＿ＩＮＩＴ＿ＣＷＮＤ）とＣＷＮＤが１に減少する前に使用されていた値のうち小さい方の値に設定する。このようにして、タイムアウト再送による影響を排除しかつ端末のスループットを向上させるために輻輳ウインドウの不必要な減少が回避されることが可能であり、この結果、時間的により多くのパケットが送信されることができ、それによりパケット損失に対する再送に起因する遅延を低減する。
【０１１２】
ベースバンドプロセッサは、送信対象パケットのコピーであって、アプリケーションプロセッサによって送信されたコピーを受信し、アンテナなどの無線周波数回路を使用してそのコピーをネットワークデバイスに送信する。
【０１１３】
このようにして、送信対象パケットを破棄した後、ベースバンドプロセッサは、ベースバンドプロセッサによって破棄された送信対象パケットに関する情報をアプリケーションプロセッサにレポートすることが可能であり、それにより、アプリケーションプロセッサは、レポートされた情報に従ってベースバンドプロセッサに、ベースバンドプロセッサにより破棄されたパケットを再配信できる。パケットのタイムアウトタイマーが満了し、いかなる確認応答パケットもピアエンドから受信されないことが判断される前に、パケットが廃棄され、パケットがベースバンドプロセッサに再送信されることが決定されることが可能である。これにより、ベースバンドプロセッサにより破棄されたパケットを端末により再送信する際の遅延を減少することができ、端末の再送遅延をある程度減少することができるので、端末とネットワークとの間のデータ伝送はより円滑になる。無線セルラネットワークの状態はしばしば変化するので、ベースバンドプロセッサが送信対象パケットを廃棄するケースが頻繁に発生する。
【０１１４】
以下、テスト結果を用いて、上記実施の形態における方法の効果について説明する。上記実施形態の方法を用いることで端末の再送メカニズムが改善され、再送遅延を比較的大幅に減少することができ、アップリンク送信のデータスループットが向上される。弱電界シナリオとセルラネットワークの高速移動シナリオを実証するために、広州から深センまでの高速鉄道でチャイナユニコムの無線セルラネットワークの使用が選択されてテストを実行した。
【０１１５】
伝送遅延については、テストツールｉＰｅｒｆが使用され、サンプリング方法は、アプリケーションプロセッサを用いてデータパケットを伝送するタスクにおいて引き起こされる３ＧＰＰプロトコルスタックにおけるパケット損失について能動的にレポートされたパケット伝送遅延を計算することである。ソースエンドは、ピアエンドがサーバである携帯電話である。最適化前は、平均伝送遅延は約７５秒である。最適化後は、平均伝送遅延は約４５秒である。廃棄されたパケットに対する平均再送遅延は、４０％最適化されている。
【０１１６】
アップリンク伝送スループット（アップリンク伝送方向は携帯電話端末からサーバ方向）は、テストツールｉＰｅｒｆを用いる。サンプリング方法は、各ｉＰｅｒｆテスト中にカウントされた平均スループット（１ラウンドあたり１００秒または２００秒であり、サーバ側でカウントされる）を計算することである。最適化前は、平均スループットは約１．５Ｍｂｐｓである。最適化後は、平均スループットは約３．３Ｍｂｐｓである。平均スループットは、約２．２倍に向上される。
【０１１７】
本発明の実施形態はさらにパケット送信装置６００を提供し、パケット送信装置６００の概略構造図は図９である。本装置は、ベースバンドプロセッサ、アプリケーションプロセッサ、および送信器を含む。ベースバンドプロセッサは、第１のパケットに関する情報をアプリケーションプロセッサにレポートするように構成される。第１パケットは、ベースバンドプロセッサによって破棄される送信対象パケットであり、第１パケットに関する情報は、第１パケットの識別子と、第１パケットが送信されるのに使用されたＴＣＰコネクションの識別子とを含む。アプリケーションプロセッサは、第１のパケットに関する情報に従って第２のパケットをベースバンドプロセッサに送信するように構成され、第２のパケットは第１のパケットと同じである。ベースバンドプロセッサはさらに、送信器を使用して第２のパケットをネットワークデバイスに送信するように構成される。
【０１１８】
実装において、第１のパケットに関する情報をアプリケーションプロセッサにレポートすることに関して、ベースバンドプロセッサは、装置のデータ接続が利用可能であるときに、第１のパケットに関する情報をアプリケーションプロセッサにレポートするように構成される。
【０１１９】
本実施形態の上述の様々な実装を参照すると、第１のパケットに関する情報をアプリケーションプロセッサにレポートすることに関して、ベースバンドプロセッサは、装置のデータ接続が利用できないとき、第１のパケットの情報をキャッシュし、装置のデータ接続が利用不可から利用可能に切り替えられたとき、第１のパケットに関する情報をアプリケーションプロセッサにレポートするように構成される。
【０１２０】
この実施形態の上述の様々な実装を参照すると、アプリケーションプロセッサはさらに、第１のパケットに関する情報に従って第２のパケットをベースバンドプロセッサに送信した後にＲＲＣするように構成される。
【０１２１】
本実施形態の上述の様々な実装を参照すると、第１のパケットの識別子は第１のパケットのシーケンス番号であり、第１のパケットが送信されるのに使用されたＴＣＰ接続の識別子は、第１のパケットが配置されているＴＣＰ接続のソースポート番号であり、第１のパケットに関する情報に従って第２のパケット番号をベースバンドプロセッサに送信することに関して、アプリケーションプロセッサは、ソースポート番号に従って第１のパケットと同じシーケンス番号を有する第２のパケットをベースバンドプロセッサに送信するように構成される。
【０１２２】
この実施形態における名詞およびステップの具体的な説明および関連する有益な効果については、上述の説明を参照し、詳細は本明細書では再度説明されないことに留意されたい。
【０１２３】
上述の方法の実施形態で説明した装置は、セルラネットワークによって提供されるデータサービスを使用してデータサービスを送信または実行する任意のデバイスによって実装され得ることは理解されよう。本発明はさらに、上述の方法の実施形態における方法を実施するための端末を提供する。端末の概略構成図を図７に端末３００として示す。端末３００は、処理回路３０２と、処理回路３０２に接続された通信インタフェース３０４および記憶媒体３０６とを含む。図６の実施形態の送信器は、通信インタフェース３０４内の送信器回路３１８に相当する。
【０１２４】
処理回路３０２は、データを処理し、データアクセスおよびストレージを制御し、コマンドを送信し、他の装置を制御して動作を実行するように構成される。処理回路３０２は、１つまたは複数のプロセッサ、１つまたは複数のコントローラ、および／またはプログラムを実行するために使用され得る別の構造として実装され得る。処理回路３０２は、特に、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または他のプログラマブルロジックコンポーネントのうちの少なくとも１つを含み得る。汎用プロセッサは、マイクロプロセッサ、および任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械を含み得る。処理回路３０２は、代替的に、ＤＳＰとマイクロプロセッサとの組み合わせなどのコンピューティングコンポーネントとして実装されてもよい。
【０１２５】
本発明のこの実施形態では、処理回路はアプリケーションプロセッサ３０９とベースバンドプロセッサ３１０とを含む。
【０１２６】
記憶媒体３０６は、（ハードディスク、フロッピー（登録商標）ディスク、または磁気ストライプなどの）磁気記憶装置などのコンピュータ可読記憶媒体、（デジタル多用途ディスク（ＤＶＤ）などの）光学記憶媒体、スマートカード、フラッシュメモリデバイス、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、レジスタ、またはそれらの任意の組み合わせを含み得る。記憶媒体３０６は、処理回路３０２が情報を読み取り、その情報を記憶媒体３０６に書き込むことが可能なように処理回路３０２に結合され得る。具体的には、記憶媒体３０６は、処理回路３０２に統合されてもよく、または媒体３０６と処理回路３０２は分離されてもよい。
【０１２７】
通信インタフェース３０４は、端末３００と１つまたは複数の無線ネットワークデバイス（例えば、基地局またはサーバ）との間の双方向通信を実施するための回路および／またはプログラムを含み得る。通信インタフェース３０４は、１つまたは複数のアンテナ（図７には図示せず）に結合されてもよく、少なくとも１つの受信器回路３１６および／または少なくとも１つの送信器回路３１８を含む。
【０１２８】
実施形態において、記憶媒体３０６はプロトコルスタックプログラム３２０を記憶し、処理回路３０２はプロトコルスタックプログラム３２０を実行してプロトコルスタックの機能を実現する。プロトコルスタックと各アプリケーションプロセッサ３０９およびベースバンドプロセッサ３１０との関係については、図３の関連説明を参照されたい。
【０１２９】
プロトコルスタックは、アプリケーションプログラムのデータをＴＣＰ／ＩＰプロトコル仕様に従って特定のデータフォーマットの複数のパケットにカプセル化し、送信器回路３１８を使用して複数のパケットをアプリケーションサーバに送信するために使用される。また、プロトコルスタックはさらに、受信器回路３１６が受信したパケットをデカプセル化して、最終的にアプリケーションプログラムのデータを取得する。プロトコルスタックによるパケットのカプセル化およびデカプセル化のプロセスを図８Ａおよび図８Ｂに示す。パケットカプセル化プロセスは、本質的にプロトコルスタックがパケットにヘッダおよび／またはフレームトレーラを追加するプロセスであり、パケットデカプセル化プロセスは、本質的にパケットからヘッダおよび／またはフレームトレーラを削除するプロセスであることがわかる。通信インタフェース３０４により受信されたデータを復号および／またはデカプセル化した後で、プロトコルスタックは、データを上位層のアプリケーションプログラムに転送するか、またはアプリケーションプログラムのデータをカプセル化して通信インタフェースを使用することにより別のデバイスに送信し得る。
【０１３０】
実施形態では、プロトコルスタックは、層のプロトコルを実装するために、物理層、データリンク層、ネットワーク層、トランスポート層、およびアプリケーション層を含み得る。例えば、物理層は、物理デバイスインタフェース機能、伝送媒体タイプ、伝送速度、伝送モードなどを定義し、物理層で信号処理を実施するために使用される。同様に、データリンク層は、データリンク層の機能を実行するために使用され、例えば、ネットワーク層で生成されたシグナリングを分配し、物理層によって生成された情報を処理することを担当する。データリンク層は、それぞれＭＡＣ層、ＲＬＣ層、およびＬＬＣ層の機能を実装するように構成されているメディアアクセス制御（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ、ＭＡＣ）層モジュール、無線リンク制御（ＲＬＣ）層モジュール、および論理リンク制御（ＬＬＣ）層モジュールなどの１つまたは複数のサブモジュールを含み得る。例えば、ＭＡＣ層モジュールは、物理層によって提供されるサービスを使用して上位層プロトコルデータを送信し、上位層とエアインタフェースとの間のデータアクセスを管理するように構成される。ＲＬＣ層モジュールは、データの分割と再構成に使用される。ＬＬＣ層モジュールは、フロー制御、シーケンス制御、およびエラー制御機能を提供するように構成されている。さらに、ネットワーク層は、論理アドレス指定およびルーティング選択などの機能を実装するように構成されている。トランスポート層は、ポートアドレス指定、セグメント化および再構成、接続制御、フロー制御、およびエラー制御などの機能を実施するように構成されている。アプリケーション層は、上位層においてアプリケーションプログラム用のインタフェースを提供するように構成されている。
【０１３１】
本発明のこの実施形態の１つまたは複数の態様によれば、処理回路３０２は、プロトコルスタックの機能を実装するように、記憶媒体３０６に格納されたプロトコルスタックプログラム３２０を実行するように適合されている。アプリケーションプロセッサ３０９内のプロトコルスタックおよびベースバンドプロセッサ３１０内のプロトコルスタックは、前述の方法の実施形態におけるステップの一部またはすべてを具体的に実施する。
【０１３２】
本発明の実施形態はさらにチップを提供する。チップは無線周波数コンポーネントを使用してネットワークデバイスへのデータ接続を確立し、チップはアプリケーションプロセッサとベースバンドプロセッサとを含む。ベースバンドプロセッサは、第１のパケットに関する情報をアプリケーションプロセッサにレポートするように構成される。第１パケットは、ベースバンドプロセッサによって破棄される送信対象パケットであり、第１パケットに関する情報は、第１パケットの識別子と、第１パケットが送信されるのに使用されるＴＣＰ接続の識別子とを含む。アプリケーションプロセッサは、第１のパケットに関する情報に従って第２のパケットをベースバンドプロセッサに送信するように構成され、第２のパケットは第１のパケットと同じである。ベースバンドプロセッサは、無線周波数コンポーネントを使用して第２のパケットをネットワークデバイスに送信するようにさらに構成される。
【０１３３】
すなわち、本発明のこの実施形態で説明するチップは、実際には、図７に示す端末に配置されて使用される処理回路３０２である。
【０１３４】
実装において、第１のパケットに関する情報をアプリケーションプロセッサにレポートすることに関して、ベースバンドプロセッサは、チップのデータ接続が利用可能であるときに、第１のパケットに関する情報をアプリケーションプロセッサにレポートするように構成される。
【０１３５】
本発明のこの実施形態の前述の実装を参照すると、別の実装では、第１のパケットに関する情報をアプリケーションプロセッサにレポートすることに関して、ベースバンドプロセッサは、チップのデータ接続が利用できない場合、第１のパケットに関する情報をキャッシュし、チップのデータ接続が利用不可から利用可能に切り替わったときに、第１のパケットに関する情報をアプリケーションプロセッサにレポートするように構成される。
【０１３６】
本発明のこの実施形態の前述の実装を参照すると、別の実装では、アプリケーションプロセッサはさらに、第１のパケットに関する情報に従って第２のパケットをベースバンドプロセッサに送信した後に輻輳ウインドウを増大するよう構成される。
【０１３７】
本発明のこの実施形態の前述の実装を参照すると、別の実装では、第１のパケットの識別子は第１のパケットのシーケンス番号であり、第１のパケットが送信されるのに使用されるＴＣＰ接続の識別子は、ＴＣＰ接続のソースポート番号であり、第１のパケットに関する情報に従って第２のパケットをベースバンドプロセッサに送信することに関して、アプリケーションプロセッサは第１のパケットと同じシーケンス番号を有する第２のパケットをソースポート番号に従ってベースバンドプロセッサに送信するように構成される。
【０１３８】
本実施形態で説明するチップの詳細については、図８Ａと図８Ｂに示した端末および上述のチップに実装されることができる方法の実施形態の説明を参照し、詳細については、本明細書では再び説明しない。
【０１３９】
本発明の実施形態はさらに、記憶媒体を提供し、この媒体は、本発明で説明されたパケット送信方法を実施するためのコードを記憶するように構成される。
【０１４０】
本出願で提供されるパケット送信方法および装置は、上記で詳細に説明されている。本明細書では、本発明の原理および実装を説明するために具体的な例が適用され、前述の実施形態の説明は、本発明の方法および核となる概念を理解する手助けとすることだけを意図している。さらに、当業者であれば、本発明の思想に従って具体的な実装および適用範囲を変更することができる。結論として、本明細書の内容は本発明に対する限定として解釈されるべきではない。
【図１】
0006924830.tif 000002
【図２】
0006924830.tif 000003
【図３】
0006924830.tif 000004
【図４】
0006924830.tif 000005
【図５】
0006924830.tif 000006
【図６】
0006924830.tif 000007
【図７】
0006924830.tif 000008
【図８Ａ】
0006924830.tif 000009
【図８Ｂ】
0006924830.tif 000010