以下で、本発明の諸実施形態における添付図面を参照して本発明の諸実施形態の技術的解決策を明確かつ十分に説明する。明らかに、説明した実施形態は本発明の諸実施形態の一部にすぎず全部ではない。当業者が創造的作業なしに本発明の諸実施形態に基づいて取得する他の全ての実施形態は本発明の保護範囲に入るものとする。
本発明の技術的解決策の利点をより明確にするために、以下では添付図面と諸実施形態を参照して本発明を詳細に説明する。
TCP/IPは、有線送信に対して開発、設計された。TCP/IPが無線通信システムに導入れた後、無線通信の制限のためエア・インタフェース信号の変動が生じる。ダウンリンクのデータ送信に関して、サーバが数ミリ秒または数百ミリ秒の間に、端末が返した肯定応答パケットを受信できないことがある。エア・インタフェース信号の変動が消失した後、サーバは短時間の間に大量の肯定応答パケットを受信する。その結果、サーバが大量の受信した肯定応答パケットに従って大量のパケットを端末に配送するという問題が生ずる可能性がある。同様に、アップリンクのデータ送信に対しては、同様な問題が、端末がパケットをサーバに送信するときに存在しうる。
この問題を考慮して、本発明の諸実施形態では、送信期間とデータ量閾値がデータ送信装置で設定され、データ量閾値を使用して、データ受信側が受理した送信された肯定応答パケットの全てにより示される総データ量がデータ量閾値内にあるように、データ送信装置が各送信期間内にデータ送信側に送信した肯定応答パケットを制御する。このように、各送信期間においてデータ送信側により受信された肯定応答パケットの量が、データ受信側が受理した受信された肯定応答パケットの全てにより示される総データ量がデータ量閾値内にあることを満たし、それにより大量のパケットがデータ送信側により送信されるという問題を解決する。
本発明の諸実施形態で説明したデータ送信装置が、アクセス・ネットワーク装置もしくはコア・ネットワーク装置のような無線ネットワーク内の従来型のデータ送信ノード装置であってもよく、または、アクセス・ネットワーク側に配置され従来型のアクセス・ネットワーク装置とは独立なデータ送信装置であってもよく、または、コア・ネットワーク側に配置され従来型のコア・ネットワーク装置とは独立なデータ送信装置であってもよい。例えば、データ送信装置が、ベース・トランシーバ・ステーション(Base Transceiver Station、BTS)、ノードB(NodeB)、もしくは発展型ノードB(Evolutional NodeB、eNBまたはeNodeB)のような様々な通信システムにおける基地局であってもよく、モバイル通信用グローバル・システム(Global System for Mobile Communications、GSM(登録商標))における基地局コントローラ(Baase Station Controller、BSC)またはユニバーサル移動体通信システム(Universal Mobile Telecommunication、UMTS)における無線ネットワーク・コントローラ(Radio Network Controller、RNC)であってもよく、本発明では限定されない。
本発明の諸実施形態におけるデータ送信側はサーバであってもよく、または、端末であってもよい。対応するデータ受信側が端末であってもよく、または、サーバであってもよい。例えば、アップリンクのデータ送信では、データ送信側は端末であり、データ受信側はサーバである。ダウンリンクのデータ送信では、データ送信側はサーバであり、データ受信側は端末であり、本発明では限定されない。
それに応じて、本発明の諸実施形態の肯定応答パケットがアップリンクの肯定応答パケットであってもよく、または、ダウンリンクの肯定応答パケットであってもよい。
図8を参照する。図8は、本発明の実施形態1に従うデータ送信装置の略構造図である。本図に示すように、データ送信装置800は、受信回路810、送信回路820、メモリ830、ならびに受信回路810、送信回路820、およびメモリ830に接続されたプロセッサ840を備える。受信回路810は、肯定応答パケットを受信するように構成される。送信回路820は、肯定応答パケットを送信するように構成される。メモリ830はデータ量閾値を格納する。プロセッサ840は、データ受信側が受理した現在の送信期間において送信された全ての肯定応答パケットにより示される総データ量を更新し、当該更新された総データ量とメモリ840に格納されたデータ量閾値に従って、送信回路820が現在の送信期間において肯定応答パケットを送信し続けるかどうかを制御するように構成される。
上述のデータ送信装置は、送信期間において、データ受信側により受理された全ての送信された肯定応答パケットにより示される総データ量を更新し、当該更新された総データ量をローカルに格納されたデータ量閾値と比較し、当該比較の結果に従って、肯定応答パケットを現在の送信期間において送信し続けるかどうかを制御して、あまりに多くの肯定応答パケットが送信期間においてデータ送信側に到着しないようにし、それにより、大量のパケットがデータ送信側により送信されるという問題を解決する。データ送信側による大量のパケットの送信は、パケットが時間通りに送信されないという問題とパケット損失の問題につながるおそれがある。例えば、サーバは一般に強力な送信機能を有するが、多数の肯定応答パケットを或る期間に受信すると、サーバは受信した肯定応答パケットに従って大量のパケットを配信し、これがデータ・バーストにつながる。しかし、中間的な送信ネットワーク要素の送信能力はしばしば十分に強力ではなく、そのため、パケットが時間通りに送信されないという問題とパケット損失の問題が生ずる。上述の実施形態では、中間的な送信ネットワーク要素がサーバの送信能力の利用を制限して、データ送信側でのデータ・バーストに起因する、パケットが時間通りに送信されないという問題とパケット損失の問題を解決する。
実際のニーズに従ってまたは運用者による要求により、当業者がデータ量閾値の値または範囲を設定してもよく、本発明では限定されないことに留意されたい。例えば、ダウンリンクのデータ送信では、サーバは強力な処理機能を有し、データ送信装置が存在する無線ネットワークのベアラ機能が、サーバ・データのバーストから生ずる影響に十分に耐えることができず、その結果、パケット損失の問題が発生し、送信が時間通りに実施されない。この場合、データ量閾値をベアラ・ネットワークのベアラ機能に基づいて設定してもよい。ベアラ・ネットワークのベアラ機能が、スイッチまたはルータのベアラ機能のような、アクセス・ネットワークとコア・ネットワークの間の送信ネットワーク要素のベアラ機能であってもよい。別の例として、データ量閾値を有限のベアラ・リンク速度で制限してもよく、ベアラ・リンクがアクセス・ネットワークとコア・ネットワークの間のリンクであってもよい。別の例として、データ量閾値を、データ送信装置が存在する無線ネットワークの送信帯域幅により制限してもよい。別の例として、データ送信側またはデータ受信側の処理機能が制限されているときは、データ量閾値をデータ送信側またはデータ受信側の処理機能に従って決定してもよく、例えば、データ送信側の伝送制御プロトコル(TCP)送信ウィンドウまたはデータ受信側のTCP受信ウィンドウに従って決定してもよい。
さらに、データ受信側が受理した現在の送信期間で送信された全ての肯定応答パケットにより示される総データ量を更新するステップに関して、総データ量を1つの肯定応答パケットが送信されるたびに更新してもよく、または、総データ量を3つ以上の肯定応答パケットが送信されるたびに更新してもよく、または、当該送信時間を時間セグメントに分割してもよい。この場合、初期の時間セグメントにおいて、総データ量が、複数の肯定応答パケットが送信されるたびに更新され、長い時間セグメントにおいて、総データ量が、1つの肯定応答パケットが送信されるたびに更新される。さらに、以前の更新の後かつ次の更新の前に送信された肯定応答パケットの量を、当該以前の更新の結果に従って決定してもよい。実装の簡単さのため、総データ量を1つの肯定応答パケットが送信されるたびに更新してもよく、本発明では限定されない。
実施形態1に対応して、本発明の実施形態2ではさらに肯定応答パケットを処理するための方法を提供する。図9を参照する。図9は、本発明の実施形態2に従う肯定応答パケットを処理するための方法の略流れ図である。図9に示すように、当該方法は以下のステップを含む。
S910で、肯定応答パケットを送信する。S920では、データ受信側が受理した現在の送信期間において送信された全ての肯定応答パケットにより示される総データ量を更新する。S930では、当該更新された総データ量をデータ量閾値と比較する。S940では、当該比較の結果に従って、肯定応答パケットを現在の送信期間において送信し続けるかどうかを制御する。
肯定応答パケットを処理するための上述の方法では、データ受信側により受理された全ての送信された肯定応答パケットにより示される総データ量を送信期間において更新し、当該更新された総データ量をローカルに格納されたデータ量閾値と比較し、当該比較の結果に従って、肯定応答パケットを現在の送信期間において送信し続けるかどうかを制御して、あまりに多くの肯定応答パケットが1つの送信期間においてデータ送信側に到着しないようにし、それにより大量のパケットがデータ送信側により送信されるという問題を解決する。データ送信側による大量のパケットの送信は、パケットが時間通りに送信されないという問題とパケット損失の問題につながりうる。例えば、サーバは一般に強力な送信機能を有するが、或る期間内に多数の肯定応答パケットを受信すると、サーバは受信した肯定応答パケットに従って大量のパケットを配信し、これがデータ・バーストにつながる。しかし、中間的な送信ネットワーク要素の送信能力はしばしば十分に強力ではなく、そのため、パケットが時間通りに送信されないという問題とパケット損失の問題が生じる。上述の実施形態では、当該中間的な送信ネットワーク要素がサーバの送信機能の利用を制限し、データ送信側でのデータ・バーストに起因する、パケットが時間通りに送信されないという問題とパケット損失の問題を解決する。
データ量閾値と総データ量の更新の説明は実施形態1での説明と同じであり、詳細についてはここでは繰り返し説明することはしない。
以下では、プロセッサ840により総データ量を更新するプロセスまたは上述のステップS920で総データ量を更新するプロセスを詳細に説明する。
上述の総データ量を、肯定応答パケットの肯定応答パケット・シーケンス番号に従って更新してもよい。当該肯定応答パケットの肯定応答パケット・シーケンス番号はTCP ACKのシーケンス番号である。当該TCP ACKのシーケンス番号は、当該シーケンス番号より前のデータがデータ受信側により全て受理されていることを示す。したがって、1つの肯定応答パケットが送信されるたびに、データ受信側が受理した当該現在送信されている肯定応答パケットによって示されるデータ量を、当該現在送信されている肯定応答パケットのシーケンス番号と過去に送信された肯定応答パケットのシーケンス番号の差に従って決定してもよい。このように、データ受信側により受理された送信期間において全ての送信された肯定応答パケットにより示される総データ量を、データ受信側により受理されている各肯定応答パケットにより示されるデータ量を用いて更新してもよい。例えば、送信された肯定応答パケットのシーケンス番号が747337662であるとすると、これは747337662番目のバイトより前のデータがデータ受信側により全て受理され、当該肯定応答パケットより後に送信された肯定応答パケットのシーケンス番号は747340582であることを示し、747340582番目のバイトより前のデータが全て受信されたことを示す。この場合、当該更新された総データ量=更新前の総データ量+(747340582−747337662)である。
これは、図10に示すように、データ受信側が受理した現在の送信期間で送信された全ての肯定応答パケットにより示される総データ量を更新するステップS920がさらに以下を含んでもよいことを意味する。
S101では、現在送信されている肯定応答パケットの肯定応答パケット・シーケンス番号と過去に送信された肯定応答パケットの肯定応答パケット・シーケンス番号の差異に従って、データ受信側が受理した当該現在送信されている肯定応答パケットによって示されるデータ量を決定する。
S102では、データ受信側が受理した当該現在送信されている肯定応答パケットにより示されるデータ量に従って総データ量を更新する。
肯定応答パケットの肯定応答パケット・シーケンス番号は一般にnビットの二値形で表されることに留意されたい。当該肯定応答パケット・シーケンス番号に、nビットの二値数で表せる最大数値が割り当てられるときには、番号は再び最小数値から開始する。これは、シーケンス番号ラップと呼ばれる現象である。当該現在送信されている肯定応答パケットの肯定応答パケット・シーケンス番号をラップすると、当該現在送信されている肯定応答パケットの肯定応答パケット・シーケンス番号と以前の肯定応答パケットの肯定応答パケット・シーケンス番号の差が負の値であり、上述の方法に従って更新を実施するときに問題が生ずる。したがって、当該現在送信されている肯定応答パケットの肯定応答パケット・シーケンス番号をラップすると、更新が実施されないおそれがあり、これは総データ量が不変のままであることを意味する。この場合、1つの肯定応答パケットが反映するデータ量が無視されるけれども、実装の効果には影響がない。この理由は、本発明の実施形態では、送信期間においてデータ送信側に送信された肯定応答パケットが反映する総データ量はデータ量閾値未満であるように厳密に制御されるものではなく、データ量閾値の周りで制御されるものであるからである。総データ量が、1つの肯定応答パケットにより示されるデータ量のデータ量閾値を超えたとしても、本発明の本質には影響がなく、当該解決策の効果の実現には本質的な影響が及ばない。
以下では、プロセッサ840が当該比較の結果に従って送信回路820が現在の送信期間において肯定応答パケットを送信し続けるかどうかを制御するプロセス、当該比較の結果に従って、ステップS940で肯定応答パケットを現在の送信期間において送信し続けるかどうかを制御するプロセスを詳細に説明する。
当該更新された総データ量がデータ量閾値より大きいときには、現在の送信期間において肯定応答パケットを送信するのを停止する。これを、プロセッサ840により、現在の送信期間における肯定応答パケットの送信を停止するように送信回路820を制御することで実現してもよい。当該更新された総データ量がデータ量閾値より小さいときには、現在の送信期間において肯定応答パケットを送信するステップを継続してもよい。これを、プロセッサ840により、肯定応答パケットを現在の送信期間において送信し続けるように送信回路820を制御することで実現してもよい。
以下では、更新された総データ量がデータ量閾値に等しい場合の処理方式を説明する。この場合、現在の送信期間において肯定応答パケットを送信するのを停止するか、または、肯定応答パケットを送信するステップを継続してもよい。例えば、プロセッサ840が、現在の送信期間における肯定応答パケットの送信を停止するように送信回路820を制御するか、または、肯定応答パケットを現在の送信期間において送信し続けるように送信回路820を制御してもよい。この理由は、本発明の当該実施形態では、データ受信側により受理された、送信期間においてデータ送信装置800がデータ送信側に送信した肯定応答パケットによって示される総データ量がデータ量閾値未満であるように厳密に制御されるものではなく、データ量閾値周りで制御されるものであるからである。総データ量が1つの肯定応答パケットが反映するデータ量のデータ量閾値を超えたとしても、当該解決策の効果の実現には本質的な影響がない。
さらに、データ量閾値の特定の範囲内の値を、肯定応答パケットの送信を停止することおよび肯定応答パケットの送信を継続することの基礎として使用してもよい。例えば、当該更新された総データ量をデータ量閾値と比較した後、当該更新された総データ量がデータ量閾値に近いが到達していないことが分かったときには、肯定応答パケットを送信するのを停止してもよい。要するに、送信期間においてデータ送信側に送信される、データ受信側により受理されている肯定応答パケットにより示される総データ量がデータ量閾値の周りで制御される限り、本発明は、当該更新された総データ量をデータ量閾値と比較し、当該比較の結果に従って、当該送信回路が肯定応答パケットを現在の送信期間において送信し続けるかどうかを制御するプロセスを厳密に限定しようとするものではなく、当業者はこれに基づいて柔軟に作業して、様々な実施形態を取得することができ、当該様々な実施形態は全て本発明の保護範囲に入る。
したがって、詳細に関して、当該実施形態は様々な実装形態を含むことができる。それらを、例を用いて下記で説明する。しかし、これらの例は本発明を限定しようとするものではない。
図11を参照する。図11は、本発明の実施形態3に従う、肯定応答パケットを処理するための方法の略流れ図である。当該方法はデータ送信装置により実行される。データ送信装置は、データ量閾値を事前に格納し、送信シーケンス番号(SendSeq)を使用して、データ受信側により受理された送信期間において送信された全ての肯定応答パケットにより示される総データ量を表現する。図11に示すように、当該方法は以下のステップを含む。
110では、送信期間が開始したとき、SendSeqをゼロに設定する。続いて、現在の送信期間において、1つの肯定応答パケットが送信されるたびにSendSeqを更新し、SendSeqが更新されるたびに、当該更新されたSendSeqとデータ量閾値の関係を決定する。これは、現在の送信期間において、以下のステップS111からステップS113を、現在の送信期間が終了するかまたは当該更新されたSendSeqがデータ量閾値より大きくなるまで繰返し実施する。
S111では、肯定応答パケットを送信する。S112では、SendSeqを更新する。S113では、当該更新されたSendSeqとデータ量閾値の関係を決定する。当該更新されたSendSeqがデータ量閾値より小さい場合には、ステップS111乃至ステップS113を実施し続け、当該更新されたSendSeqがデータ量閾値より大きい場合には、ステップS114を実施する。
S114では、現在の送信期間が終了するまで現在の送信期間において肯定応答パケットを送信するステップを一時停止し、SendSeqが次の送信期間でゼロに設定された後、肯定応答パケットを送信し続ける。
データ量閾値の説明は実施形態1の説明と同じであり、詳細についてはここでは繰り返し説明することはしない。
当該実施形態では、肯定応答パケット・シーケンス番号の差を用いてSendSeqを決定してもよい。この場合、肯定応答パケット・シーケンス番号は、当該肯定応答パケット・シーケンス番号より前のデータが全てデータ受信側により受理されたことを示すために使用され、このケースでは、2つの肯定応答パケット・シーケンス番号の差が、現在送信されている肯定応答パケットに対応する既に受理されたデータ量を反映してもよい。さらに、1つの肯定応答パケットが送信されるたびに、SendSeqは、送信された肯定応答パケットに対応する既に受理されたデータ量を累積することによって更新され、当該更新されたSendSeqが、受理された肯定応答パケットにより示される総データ量を反映してもよい。この場合、当該肯定応答パケットは或る期間内にデータ送信装置により送信される。このように、SendSeqを監視することによって、送信期間において送信された肯定応答パケットの量を制御し、大量のパケットがデータ送信側により送信されるという問題を解決し、それによりさらにパケットが時間通りに送信されないという問題とパケット損失の問題を解決する。
当該更新されたSendSeqがデータ量閾値に等しい場合には、肯定応答パケットを送信するステップを現在の送信期間が終了するまで一時停止し、当該送信シーケンス番号が次の送信期間でゼロに設定された後に再開してもよく、または、肯定応答パケットを送信するステップを継続してもよいことに留意されたい。その理由は上述の実施形態で説明したものと同じでありここでは繰り返し説明しない。
上述のステップS112でSendSeqを更新するプロセスにおいて、更新されたSendSeqと更新前のSendSeqの関係は以下の通りである。
更新されたSendSeq=更新前のSendSeq+Max(0、第1の肯定応答パケットの肯定応答パケット・シーケンス番号−第2の肯定応答パケットの肯定応答パケット・シーケンス番号)。ここで、Max()は、最大値を選択することを示し、当該第1の肯定応答パケットと当該第2の肯定応答パケットは、データ送信装置によりデータ送信側に連続的に送信される2つの肯定応答パケットである。当該第1の肯定応答パケットは、SendSeqを更新する前最も直近に送信された肯定応答パケットであり、当該第2の肯定応答パケットは、当該第1の肯定応答パケットより前に送信された肯定応答パケットである。SendSeqが更新されたときに当該第2の肯定応答パケットの肯定応答パケット・シーケンス番号を使用できるようにするために、当該肯定応答パケット・シーケンス番号を、当該第2の肯定応答パケットを送信する前に格納する必要がある。したがって、第2の肯定応答パケットの肯定応答パケット・シーケンス番号は、データ送信装置により既に格納されている肯定応答パケット・シーケンス番号でもある。即ち、更新されたSendSeq=更新前のSendSeq+Max(0、SendSeqを更新する前最も直近に送信された肯定応答パケットの肯定応答パケット・シーケンス番号−既に格納されている肯定応答パケット・シーケンス番号)である。
分かるように、SendSeqを更新するプロセスでは、1つの肯定応答パケットが送信されるたびに、当該肯定応答パケットの肯定応答パケット・シーケンス番号を用いて既に格納されている肯定応答パケット・シーケンス番号を更新する。即ち、SendSeqを更新した後、当該方法はさらに、既に格納されている肯定応答パケットの肯定応答パケット・シーケンス番号を更新するステップを含む。既に格納されている肯定応答パケットの肯定応答パケット・シーケンス番号を更新したとき、SendSeqを更新する前最も直近に送信された肯定応答パケットの肯定応答パケット・シーケンス番号が既に格納されている肯定応答パケット・シーケンス番号より大きいか、または、SendSeqを更新する前最も直近に送信された肯定応答パケットの肯定応答パケット・シーケンス番号と既に格納されている肯定応答パケット・シーケンス番号の差分が事前設定値より小さい場合には、現在格納されている肯定応答パケット・シーケンス番号を、SendSeqを更新する前最も直近に送信された肯定応答パケットの肯定応答パケット・シーケンス番号に更新する。そうでない場合には、これは、当該2つの連続的に送信された肯定応答パケット・シーケンス番号は同一であり、既に格納されている肯定応答パケット・シーケンス番号は不変のままでありうることを示す。当該事前設定値は、肯定応答パケット・シーケンス番号のビット量に従って決まる。nビットの文字を用いて肯定応答パケット・シーケンス番号を示すとき、当該事前設定値は−2n−1である。当該送信シーケンス番号を更新する前に最も直近に送信された肯定応答パケットの肯定応答パケット・シーケンス番号と既に格納されている肯定応答パケット・シーケンス番号の差分が当該事前設定値より小さいとき、シーケンス番号のラップが生じたことを意味し、これは、肯定応答パケットが「0」から再び採番されることを意味し現在格納されている肯定応答パケット・シーケンス番号を、当該送信シーケンス番号を更新する前に最も直近に送信された肯定応答パケットの肯定応答パケット・シーケンス番号に更新して、後のSendSeqの更新を容易にする。さらに、シーケンス番号のラップが生じたとき、SendSeqを更新しなくともよい。即ち、更新されたSendSeq=更新前のSendSeq+Max(0、−2n−1)=更新前のSendSeqである。この場合、結果として1つまたは複数の肯定応答パケットが送信される可能性があるが、当該解決策の効果の実現には本質的な影響はない。
例えば、32ビットの文字は肯定応答パケット・シーケンス番号を示すために使用され、当該事前設定値は−2147483648である。当該送信シーケンス番号を更新する前に最も直近に送信された肯定応答パケットの肯定応答パケット・シーケンス番号と既に格納されている肯定応答パケット・シーケンス番号の間の差分が−2147483648より小さいとき、シーケンス番号のラップが生じたことを示し、SendSeqを更新しなくてもよいが、既に格納されている肯定応答パケット・シーケンス番号が更新される。
本発明の1実施形態では、タイマをデータ送信装置に配置して上述の送信期間の制御を実装してもよい。ここで、当該タイマの期間は当該送信期間に等しい。この場合、当該送信期間が開始したとき当該送信シーケンス番号をゼロに設定する上述のステップS110を次のように実装してもよい。即ち、当該タイマを開始し、当該送信シーケンス番号をゼロに設定する。現在の送信期間において現在の送信期間が終了するまで肯定応答パケットを送信するステップを一時停止し、SendSeqが次の送信期間でゼロに設定された後、肯定応答パケットを送信する上述のステップS114を次のように実装してもよい。即ち、当該タイマがタイムアウトしたとき、当該タイマを再開し、当該送信シーケンス番号をゼロに設定した後、肯定応答パケットの送信を継続する。
さらに図12を参照する。図12は、本発明の実施形態4に従う肯定応答パケットを処理するための方法の略流れ図である。当該方法はデータ送信装置により実行され、SendSeqは、データ受信側により受理された送信期間において送信された全ての肯定応答パケットにより示される総データ量を示すために使用される。図12に示すように、当該方法は以下のステップを含む。
S120では、新たな肯定応答パケットを受信する。S121では、別の肯定応答パケットまたは他の肯定応答パケットが既にバッファされているかどうかを判定し、別の肯定応答パケットまたは他の肯定応答パケットが既にバッファされている場合には、ステップS122を実施し、そうでない場合には、ステップS123を実施する。
S122では、当該新たな肯定応答パケットをバッファし、当該別の肯定応答パケットまたは他の肯定応答パケットがデータ送信側に送信された後に当該新たな肯定応答パケットを送信する。
S123では、現在のSendSeqとデータ量閾値の関係を決定する。現在のSendSeqがデータ量閾値より大きい場合には、ステップS124を実施し、現在のSendSeqがデータ量閾値より小さい場合には、ステップS125を実施する。
S124では、当該新たな肯定応答パケットをバッファし、SendSeqが次の送信期間でゼロに設定された後、当該新たな肯定応答パケットをデータ送信側に送信する。S125では、当該新たな肯定応答パケットをデータ送信側に送信する。
更新された送信シーケンス番号がデータ量閾値に等しいときには、肯定応答パケットを送信するステップを現在の送信期間が終了するまで一時停止し、当該送信シーケンス番号が次の送信期間でゼロに設定された後に再開するか、または、肯定応答パケットを送信するステップを継続してもよいことに留意されたい。
さらに図13を参照すると、当該別の肯定応答パケットまたは他の肯定応答パケットがデータ送信側に送信された後に新たな肯定応答パケットを送信する上述のステップS122が以下のステップを含んでもよい。
S131では、別の肯定応答パケットまたは他の肯定応答パケットを送信する。S132では、SendSeqを更新する。S133では、当該更新されたSendSeqとデータ量閾値の関係を決定し、当該更新されたSendSeqがデータ量閾値より小さい場合には、ステップS134を実施し、当該更新されたSendSeqがデータ量閾値より大きい場合には、ステップS135を実施する。当該更新されたSendSeqがデータ量閾値に等しいとき、ステップS134を実施してもよく、またはステップS135を実施してもよく、その理由については上述の説明で説明したものと同じであり、ここでは再度説明することはしない。S134では、新たな肯定応答パケットを送信する。S135では、現在の送信期間が終了するまで当該新たな肯定応答パケットの送信を一時停止し、当該送信シーケンス番号が次の送信期間でゼロに設定された後、当該新たな肯定応答パケットを送信する。
データ送信装置が当該新たな肯定応答パケットを受信したとき、1つの別の肯定応答パケットをデータ送信装置にバッファするかまたは複数の他の肯定応答パケットをデータ送信装置にバッファしてもよいことに留意されたい。これは、1つまたは複数の他の肯定応答パケットが存在しうることを意味する。さらに、図14を参照すると、複数の他の肯定応答パケットが存在するとき、当該他の肯定応答パケットを送信する上述のステップS131が、待ち行列に従って1つずつ他の肯定応答パケットを送信し、1つの肯定応答パケットが送信されるたびに、当該他の肯定応答パケットが全て送信されるまで、以下のステップを繰り返すステップを含んでもよい。
S141では、SendSeqを更新する。S142では、当該更新されたSendSeqとデータ量閾値の関係を決定し、当該更新されたSendSeqがデータ量閾値より小さい場合には、ステップS143を実施し、当該更新されたSendSeqがデータ量閾値より大きい場合には、ステップS144を実施する。当該更新されたSendSeqがデータ量閾値に等しいとき、ステップS143を実施してもよく、またはステップS144を実施してもよく、その理由については上述の説明で説明したものと同じであり、ここでは再度説明することはしない。S143では次の肯定応答パケットを送信し続ける。
S144では、現在の送信期間が終了するまで肯定応答パケットを送信するステップを一時停止し、当該送信シーケンス番号が次の送信期間でゼロに設定された後、次の肯定応答パケットを送信し続ける。
SendSeqを更新するプロセスは実施形態3で説明したのと同じであり、ここでは繰り返し説明しない。
さらに、当該実施形態では、タイマをデータ送信装置に配置して、上述の送信期間の制御を実装してもよい。この場合、当該タイマの期間は当該送信期間に等しい。
上述の実施形態3および実施形態4では、当該送信期間が開始したときSendSeqはゼロに設定され、送信された肯定応答パケットにより示される既に受理されたデータ量に従ってSendSeqが更新されることに留意されたい。これは1つの例にすぎない。別の実施形態では、SendSeqを「1」または別の数値に設定し、データ量閾値をそれに応じて調節してもよく、または、SendSeqが「1」または別の小さな数値に設定され、かつ、本発明の効果の実現に影響が及ばないときには、データ量閾値を調節しなくともよく、本発明の実施形態では限定されない。
例えば、本発明の実施形態5では、送信期間が開始したとき、SendSeqはデータ量閾値に設定され、1つの肯定応答パケットが送信されるたびに、SendSeqが降順に更新され、SendSeqがゼロ以下に減ると、当該期間において肯定応答パケットを送信するのを停止する。図15を参照する。この場合、肯定応答パケットを処理するための方法は以下のステップを含む。
S150では、送信期間が開始したとき、SendSeqをデータ量閾値に設定する。続いて、現在の送信期間において、1つの肯定応答パケットが送信されるたびにSendSeqを更新し、SendSeqが更新されるたびに、当該更新されたSendSeqとゼロとの関係を決定する。即ち、現在の送信期間において、以下のステップS151乃至ステップS153を現在の送信期間が終了するかまたは当該更新されたSendSeqがゼロより小さくなるまで繰返し実施する。
S151では、肯定応答パケットを送信する。S152では、SendSeqを更新する。S153では、当該更新されたSendSeqとゼロとの関係を決定する。当該更新されたSendSeqがゼロより大きい場合には、ステップS151乃至ステップS153を実施し続け、当該更新されたSendSeqがゼロより小さい場合には、ステップS154を実施する。S154では、現在の送信期間が終了するまで現在の送信期間において肯定応答パケットを送信するステップを一時停止し、SendSeqが次の送信期間でデータ量閾値に設定された後、肯定応答パケットを送信し続ける。この場合、SendSeqの更新を以下のように行う。
更新されたSendSeq=更新前のSendSeq−Max(0、第1の肯定応答パケットの肯定応答パケット・シーケンス番号−第2の肯定応答パケットの肯定応答パケット・シーケンス番号)。ここで、Max()は、最大値を選択することを示し、当該第1の肯定応答パケットと当該第2の肯定応答パケットは、データ送信装置によりデータ送信側に連続的に送信される2つの肯定応答パケットである。当該第1の肯定応答パケットは、SendSeqを更新する前最も直近に送信された肯定応答パケットであり、当該第2の肯定応答パケットは、当該第1の肯定応答パケットより前に送信された肯定応答パケットである。SendSeqが更新されたときに当該第2の肯定応答パケットの肯定応答パケット・シーケンス番号を使用できるようにするために、当該肯定応答パケット・シーケンス番号を、当該第2の肯定応答パケットを送信する前に格納する必要がある。したがって、第2の肯定応答パケットの肯定応答パケット・シーケンス番号は、アクセス・ネットワーク装置により既に格納されている肯定応答パケット・シーケンス番号でもある。即ち、更新されたSendSeq=更新前のSendSeq−Max(0、当該送信シーケンス番号を更新する前に最も直近に送信された肯定応答パケットの肯定応答パケット・シーケンス番号−既に格納されている肯定応答パケット・シーケンス番号)である。
分かるように、SendSeqを更新するプロセスでは、1つの肯定応答パケットが送信されるたびに、当該肯定応答パケットの肯定応答パケット・シーケンス番号を用いて既に格納されている肯定応答パケット・シーケンス番号を更新する。即ち、SendSeqを更新した後、当該方法はさらに、既に格納されている肯定応答パケットの肯定応答パケット・シーケンス番号を更新するステップを含む。既に格納されている肯定応答パケット・シーケンス番号を更新するステップは、実施形態3で説明したものと同じであり、ここでは繰り返し説明しない。
さらに、当該更新されたSendSeqがゼロに等しい場合には、肯定応答パケットを送信するステップを現在の送信期間が終了するまで一時停止し、当該送信シーケンス番号を次の送信期間でデータ量閾値に設定した後に再開するか、または、肯定応答パケットを送信するステップを継続してもよい。
さらに図16を参照する。図16は、本発明の実施形態6に従うデータ送信装置の略構造図である。図16に示すように、データ送信装置160は、受信回路161、送信回路162、メモリ163、およびプロセッサ164を備える。当該受信回路161は、肯定応答パケットを受信するように構成される。送信回路162は、肯定応答パケットを送信するように構成される。メモリ163はデータ量閾値を格納する。プロセッサ164は、受信回路161、送信回路162、およびメモリ163に接続される。プロセッサ164は、データ量閾値と総データ量の差分を更新するように構成される。ここで、総データ量はデータ受信側により受理されている現在の送信期間において送信された全ての肯定応答パケットにより示される総データ量である。プロセッサ164はさらに、更新したデータ量閾値と総データ量の差分に従って、送信回路162が現在の送信期間において肯定応答パケットを送信し続けるかどうかを制御するように構成される。
分かるように、当該実施形態と実施形態1の相違は、プロセッサ164がデータ量閾値に基づいてデータ量閾値と総データ量の差分を更新し、当該差分に従って、送信回路162が現在の送信期間において肯定応答パケットを送信し続けるかどうかを制御することである。データ量閾値は事前に設定されているので、データ量閾値と総データ量の差分の変化は実際には総データ量の変化を反映する。したがって、当該差分を用いて肯定応答パケットを送信期間において送信し続けるかどうかを制御することによって、実施形態1を使用するときと同じ効果を達成することができる。
実施形態6に対応して、本発明の実施形態7では肯定応答パケットを処理するための方法をさらに提供する。図17を参照する。図17は、本発明の実施形態7に従う肯定応答パケットを処理するための方法の略流れ図である。図17に示すように、当該方法は以下のステップを含む。
S171では、肯定応答パケットを送信する。S172では、データ量閾値と総データ量の差分を更新する。総データ量は、データ受信側により受理されている現在の送信期間において送信された全ての肯定応答パケットにより示される総データ量である。
S173では、データ量閾値と総データ量の更新された差分に従って、肯定応答パケットを現在の送信期間において送信し続けるかどうかを制御する。
実施形態6と実施形態7におけるデータ量閾値の説明は実施形態1で説明したものと同じであり、ここでは繰り返し説明しない。
データ量閾値と総データ量の差分を更新する方式と頻度は、例えば、実施形態1で説明したのと同じであり、ここでは再度説明することはしない。
以下では、プロセッサ164によりデータ量閾値と総データ量の差分を更新するプロセス、または、上述のステップS172で総データ量を更新するプロセスを説明する。
データ量閾値と総データ量の差分の更新は、データ量閾値に基づいて総データ量を更新するプロセスである。総データ量を更新するのは、上述の実施形態1で説明したのと同じであり、当該総量を更新するたびに、データ量閾値と総データ量に対して減算を実施して、更新後にデータ量閾値と総データ量の差分を取得できるようにする。さらに、現在の肯定応答パケット・シーケンス番号がラップするときには、更新を実施しなくともよい。
具体的には、送信期間が開始したとき、更新をデータ量閾値に基づいて開始してもよく、1つの肯定応答パケットが送信されるたびに、データ受信側が受理している肯定応答パケットが示すデータ量を減らし、当該データ量がゼロまたはゼロ付近に減ったときには、当該送信期間において肯定応答パケットを送信するのを停止する。さらに図18を参照する。図18は、本発明の実施形態8に従うデータ送信装置の略構造図である。図18に示すように、当該装置は、送信ユニット181、更新ユニット182、および制御ユニット183を備える。送信ユニット181は、肯定応答パケットを送信するように構成され、更新ユニット182は、データ受信側が受理した現在の送信期間において送信された全ての肯定応答パケットにより示される総データ量を更新するように構成され、制御ユニット183は、当該更新された総データ量をデータ量閾値と比較し、当該比較の結果に従って、肯定応答パケットを現在の送信期間において送信し続けるかどうかを制御するように構成される。
データ量閾値の説明は実施形態1で説明したものと同じであり、ここでは繰り返し説明しない。
さらに、更新ユニット182による更新のプロセスと制御ユニット183による制御のプロセスは実施形態1で説明したのと同一であり、ここでは再度説明することはしない。
本発明の諸実施形態における肯定応答パケットはアップリンク肯定応答パケットであってもよい。ここで、アップリンクとは、端末装置から基地局への方向、または、端末装置から無線ネットワーク・コントローラ(Radio Network Controller、略してRNC)への方向、または、端末装置からサーバへの方向等を意味する。
本発明の1実施形態では肯定応答パケットを処理するための方法を提供する。図1に示すように、当該方法は以下のステップを含む。
100では、新たな肯定応答パケットが到着する。101では、第1のエンティティが、別の肯定応答パケットまたは他の肯定応答パケットが既にバッファされているかどうかを判定し、別の肯定応答パケットまたは他の肯定応答パケットが既にバッファされている場合には、ステップ102を実施する。そうでない場合には、様々な場合に従ってステップ103乃至ステップ105のうち1つを実施する。102では、当該新たな肯定応答パケットをバッファし、当該別の肯定応答パケットまたは他の肯定応答パケットが送信された後に当該新たな肯定応答パケットを送信する。103では、当該第1のエンティティのタイマが開始されていない場合に、当該タイマを開始し、当該新たな肯定応答パケットを送信する。104では、当該第1のエンティティのタイマが既に開始されており、かつ、送信シーケンス番号(SendSeq)が肯定応答パケット送信閾値より大きい場合に、当該新たな肯定応答パケットをバッファし、当該タイマを再開し、当該タイマがタイムアウトする前に、当該新たな肯定応答パケットを送信する。105では、当該第1のエンティティのタイマが既に開始されており、かつ、送信シーケンス番号(SendSeq)が肯定応答パケット送信閾値以下である場合に、当該新たな肯定応答パケットを送信する。
SendSeqは当該タイマが開始した後に当該第1のエンティティにより送信された肯定応答パケットの総データ量であり、当該肯定応答パケット送信閾値は当該タイマの期間において当該第1のエンティティが送信できる肯定応答パケットの総データ量である。
場合によっては、当該タイマを開始または再開したとき、SendSeqの値は0であり、当該新たな肯定応答パケットが送信された後、当該方法はさらにSendSeqを更新するステップを含む。
例えば、別の肯定応答パケットまたは他の肯定応答パケットが既にバッファされている場合には、新たな肯定応答パケットをバッファするステップは、当該新たな肯定応答パケットを当該別の肯定応答パケットまたは他の肯定応答パケットに続いてバッファするステップを含み、当該新たな肯定応答パケットを当該別の肯定応答パケットまたは他の肯定応答パケットが送信された後に送信するステップは、当該第1のエンティティのタイマがタイムアウトしたとき、待ち行列に従って1つずつ、当該バッファ内の肯定応答パケットを送信するステップを含む。
場合によっては、ステップ102の後に、当該方法はさらに1つの肯定応答パケットが送信されるたびにSendSeqを更新するステップを含む。
場合によっては、ステップ102の後に、当該方法はさらに、SendSeqが更新されるたびに、当該更新されたSendSeqが当該肯定応答パケット送信閾値より大きいかどうかを判定するステップと、当該新たな肯定応答パケットを送信する前に、当該更新されたSendSeqが当該肯定応答パケット送信閾値より大きい場合には、当該第1のエンティティに既にバッファされた肯定応答パケットの送信を停止し、当該タイマを再開し、当該タイマがタイムアウトする前に当該新たな肯定応答パケットを送信するステップを含む。
例えば、SendSeqが更新されたとき、当該更新されたSendSeqと更新前のSendSeqの関係は、更新されたSendSeq=更新前のSendSeq+Max(0、第1の肯定応答パケットの肯定応答パケット・シーケンス番号−第2の肯定応答パケットの肯定応答パケット・シーケンス番号)である。ここで、当該第1の肯定応答パケットと当該第2の肯定応答パケットは当該第1のエンティティにより連続的に送信される2つの肯定応答パケットである。
さらに、SendSeqを更新した後、当該方法はさらに、肯定応答パケットの肯定応答パケット・シーケンス番号を更新するステップを含む。第2の肯定応答パケットの肯定応答パケット・シーケンス番号を更新するとき、第1の肯定応答パケットの肯定応答パケット・シーケンス番号が第2の肯定応答パケットの肯定応答パケット・シーケンス番号より大きいか、または、第1の肯定応答パケットのシーケンス番号と第2の肯定応答パケットの肯定応答パケット・シーケンス番号の差が−2147483648より小さい場合には、第1の肯定応答パケットの肯定応答パケット・シーケンス番号を第2の肯定応答パケットの肯定応答パケット・シーケンス番号として使用し、そうでなければ、第1のエンティティが読み取った第2の肯定応答パケットの肯定応答パケット・シーケンス番号を第2の肯定応答パケットの肯定応答パケット・シーケンス番号として使用する。
当該肯定応答パケット送信閾値の値は平均送信バイト速度(AvgSendByte)と当該タイマの期間の積であり、AvgSendByteは、集約最大ビット・レート(AMBR)と最大スループット(MaxThroughput)に従って決まる。ここで、MaxThroughputが0であるとき、
である。ここで、記号
は、最も近い最大の整数への丸めを示す。MaxThroughputが0でないときには、
である。ここで、記号
は、最も近い最大の整数への丸めを示す。
当該タイマの期間は、当該第1のエンティティが肯定応答パケットを送信する期間である。ここで、当該肯定応答パケットは、80バイトを超えず肯定応答文字を含むアップリンクパケットである。
さらに、新たな肯定応答パケットが到着したとき、当該新たな肯定応答パケットをバッファし送信するために使用される当該第1のエンティティが存在しない場合には、当該方法はさらに当該第1のエンティティを生成するステップを含む。当該第1のエンティティは基地局内に存在する。
場合によっては、当該実施形態の当該第1のエンティティは、NodeB、eNodeB、HNodeB、またはHeNodeBのような基地局であってもよく、または、RNCであってもよい。
先行技術と比較して、本発明の当該実施形態では、第1のエンティティが肯定応答パケットを受信した後に、当該肯定応答パケットを処理することができ、送信期間と送信データ量閾値を肯定応答パケットに設定することができ、各送信期間にサーバに送信された肯定応答パケットの総データ量を制御することができ、さらに、当該肯定応答パケットの量を制御することができる。このように、肯定応答パケットを定常的な速度でサーバに送信することができる、それにより、肯定応答パケットの量の急増に起因する、ダウンリンクのパケットが時間通りに送信されないという問題とパケット損失の問題を回避し、さらにネットワーク・スループットの低下を回避し、ネットワーク送信効率を高める。
本発明の別の実施形態では肯定応答パケットを処理するための方法を提供する。図2に示すように、当該方法は以下のステップを含む。
200で、新たな肯定応答パケットが到着する。201では、第2のエンティティが、当該新たな肯定応答パケットのバッファと送信に使用される第1のエンティティが存在するかどうかを判定し、当該第1のエンティティが存在する場合には、ステップ202を実施し、そうでない場合には、様々なケースに従ってステップ203乃至ステップ205の1つを実施する。202では、当該肯定応答パケットを当該第1のエンティティに送信する。203では、当該第1のエンティティが存在せず、既存の第3のエンティティの量が第2の閾値mより小さく、かつ、肯定応答パケットが既にバッファされている第3のエンティティの量が第3の閾値nより大きくない場合には、当該第1のエンティティを生成し、当該新たな肯定応答パケットを当該第1のエンティティに送信する。204では、当該第1のエンティティが存在せず、既存の第3のエンティティの量が第2の閾値mより小さくなく、かつ、肯定応答パケットが既にバッファされている第3のエンティティの量が第3の閾値nより大きくない場合には、肯定応答パケットがバッファされない少なくとも1つの第3のエンティティを削除し、当該第1のエンティティを生成し、当該新たな肯定応答パケットを当該第1のエンティティに送信する。205では、当該第1のエンティティが存在せず、かつ、肯定応答パケットが既にバッファされている第3のエンティティの量が第3の閾値nより大きい場合に、当該新たな肯定応答パケットをサーバに送信する。
mは、肯定応答パケットを送信しバッファするために生成し使用できるエンティティの量の上限であり、nは、肯定応答パケットを同時にバッファすることを可能とする第3の量の上限である。
場合によっては、当該実施形態における第1のエンティティは、NodeB、eNodeB、HNodeB、またはHeNodeBのような基地局であってもよく、または、RNCであってもよい。
先行技術と比較して、本発明の当該実施形態では、新たな肯定応答パケットが第2のエンティティに到着したとき、当該第2のエンティティが、当該新たな肯定応答パケットに対して、当該新たに到着した肯定応答パケットのバッファおよび/または送信のような処理方式を決定する第1のエンティティを設定する。当該第1のエンティティは肯定応答パケットを処理して、当該肯定応答パケットを定常的な速度でサーバに送信できるようにする。それにより、肯定応答パケットの量の急増に起因する、ダウンリンクのパケットが時間通りに送信されないという問題とパケット損失の問題を回避し、さらにネットワーク・スループットの低下を回避しネットワーク送信効率を高める。
本発明の別の実施形態では肯定応答パケットを処理するための方法を提供する。当該実施形態の詳細を、上述の2つの実施形態に関する例として構築してもよい。図3に示すように、当該方法は以下のステップを含む。
301では、新たな肯定応答パケットが到着したとき、第2のエンティティが、当該新たな肯定応答パケットのバッファと送信に使用される第1のエンティティが存在するかどうかを判定し、当該第1のエンティティが存在しない場合には、ステップ302を実施し、当該第1のエンティティが存在する場合には、ステップ303を実施する。
当該肯定応答パケットは3つの条件を満たさなければならない。即ち、当該パケットがアップリンク方向にあること、当該パケットのサイズがが80バイトを超えないこと、および当該パケットが肯定応答文字(Acknowledgement、略してACK)を含むことである。
当該第1のエンティティは、肯定応答パケットを処理するための基地局における動作ユニットである。生成時に、当該エンティティは、ソースIP、宛先IP、ソース・ポート番号、宛先ポート番号、タイマ、肯定応答パケット・シーケンス番号、および送信シーケンス番号(SendSeq)のようなパラメータを有する。LastSeqは、以前に送信された肯定応答パケットのシーケンス番号を示し、SendSeqは当該タイマが開始した後に当該第1のエンティティにより送信される肯定応答パケットの総データ量である。初期化の最中に、肯定応答パケット・シーケンス番号とSendSeqの両方が0である。
302では、当該第2のエンティティが、対応する第1のエンティティを当該新たな肯定応答パケットに対して生成する。
場合によっては、当該方法はさらに、当該第1のエンティティが存在せず、既存の第3のエンティティの量が第2の閾値mより小さく、かつ、肯定応答パケットが既にバッファされている第3のエンティティの量が第3の閾値nより大きくない場合に、当該第1のエンティティを生成し、当該新たな肯定応答パケットを当該第1のエンティティに送信するステップと、当該第1のエンティティが存在せず、既存の第3のエンティティの量が第2の閾値mより小さくなく、かつ、肯定応答パケットが既にバッファされている第3のエンティティの量が第3の閾値nより大きくない場合に、肯定応答パケットがバッファされない少なくとも1つの第3のエンティティを削除し、当該第1のエンティティを生成し、当該新たな肯定応答パケットを当該第1のエンティティに送信するステップと、を含む。
場合によっては、当該方法はさらに、当該第1のエンティティが存在せず、肯定応答パケットが既にバッファされている第3のエンティティの量が第3の閾値nより大きい場合に、当該新たな肯定応答パケットをサーバに送信するステップを含む。
mは、肯定応答パケットをバッファし送信するために生成し使用できるエンティティの量の上限であり、nは、肯定応答パケットを同時にバッファすることを可能とする第3の量の上限である。303では、当該第2のエンティティが当該新たな肯定応答パケットを当該第1のエンティティに送信する。
304では、当該新たな肯定応答パケットが到着したとき、別の肯定応答パケットまたは他の肯定応答パケットが既に当該第1のエンティティにバッファされている場合には、当該新たな肯定応答パケットを当該別の肯定応答パケットまたは他の肯定応答パケットに続いてバッファする。
305では、当該第1のエンティティが、当該タイマがタイムアウトしたかどうかを判定し、当該タイマがタイムアウトした場合には、ステップ307を実施し、タイマがタイムアウトしなかった場合には、ステップ306を実施する。当該タイマの期間は当該第1のエンティティが肯定応答パケットを送信する期間である。
306では、当該第1のエンティティが待ち行列と送信間隔に従って肯定応答パケットをサーバに送信し、1つの肯定応答パケットが送信されるたびにSendSeqを更新し、当該更新されたSendSeqが肯定応答パケット送信閾値より大きいとき、肯定応答パケットを送信するのを停止し、ステップ308に飛ぶ。
SendSeqは当該タイマが開始した後に当該第1のエンティティにより送信される肯定応答パケットの総データ量であり、当該肯定応答パケット送信閾値は当該タイマの期間において当該第1のエンティティが送信できる肯定応答パケットの総データ量である。当該肯定応答パケット送信閾値の値は平均送信バイト速度(AvgSendByte)と当該タイマの期間の積であり、AvgSendByteは、集約最大ビット・レート(AMBR)と最大スループット(MaxThroughput)に従って決まる。ここで、MaxThroughputが0であるとき、
である。ここで、記号
は、最も近い最大の整数への丸めを示す。MaxThroughputが0でないときには、
である。ここで、記号
は、最も近い最大の整数への丸めを示す。
具体的には、SendSeqが更新されたとき、当該更新されたSendSeqと更新前のSendSeqの関係は、更新されたSendSeq=更新前のSendSeq+Max(0、第1の肯定応答パケットの肯定応答パケット・シーケンス番号−第2の肯定応答パケットの肯定応答パケット・シーケンス番号)である。ここで、当該第1の肯定応答パケットと当該第2の肯定応答パケットは当該第1のエンティティにより連続的に送信される2つの肯定応答パケットである。
場合によっては、SendSeqを更新した後、肯定応答パケットの肯定応答パケット・シーケンス番号をそれに応じて更新すべきである。第2の肯定応答パケットの肯定応答パケット・シーケンス番号を更新するとき、第1の肯定応答パケットの肯定応答パケット・シーケンス番号が第2の肯定応答パケットの肯定応答パケット・シーケンス番号より大きいか、または、第1の肯定応答パケットのシーケンス番号と第2の肯定応答パケットの肯定応答パケット・シーケンス番号の差が−2147483648より小さい場合には、第1の肯定応答パケットの肯定応答パケット・シーケンス番号を第2の肯定応答パケットの肯定応答パケット・シーケンス番号として使用し、そうでなければ、第1のエンティティが読み取った第2の肯定応答パケットの肯定応答パケット・シーケンス番号を第2の肯定応答パケットの肯定応答パケット・シーケンス番号として使用する。
307では、当該第1のエンティティが待ち行列に従って当該バッファ内の肯定応答パケットを1つずつ当該サーバに送信し、1つの肯定応答パケットが送信されるたびにSendSeqを更新し、当該更新されたSendSeqが肯定応答パケット送信閾値より大きくなるまで肯定応答パケットを送信するのを停止する。308では、当該第1のエンティティがタイマを再開し、新たな肯定応答パケットを次の送信期間において送信する。
当該実施形態における第1のエンティティ、第2のエンティティ、および第3のエンティティを全て、基地局内に配置してもよいことに留意されたい。
先行技術と比較して、本発明の当該実施形態では、新たな肯定応答パケットが到着したとき、第2のエンティティは、第1のエンティティを検索するかまたは生成し、当該新たな肯定応答パケットを当該第1のエンティティに送信し、当該第1のエンティティが、当該新たな肯定応答パケットを別の肯定応答パケットまたは他の肯定応答パケットに続いてバッファして当該新たな肯定応答パケットを送信し、同時に、送信期間と肯定応答パケットに対する送信データ量閾値を設定し、各送信期間においてサーバに送信される肯定応答パケットの総データ量を制御し、さらに当該肯定応答パケットの量を制御する。このように、肯定応答パケットを定常的な速度でサーバに送信することができる、それにより、肯定応答パケットの量の急増に起因する、ダウンリンクのパケットが時間通りに送信されないという問題とパケット損失の問題を回避し、さらにネットワーク・スループットの低下を回避しネットワーク送信効率を高める。
本発明の別の実施形態では、肯定応答パケットを処理するための方法を提供する。当該実施形態と上述の実施形態の相違は、新たな肯定応答パケットが第1のエンティティに到着したとき、当該第1のエンティティが別の肯定応答パケットをバッファせず、タイマを開始しないことである。図4に示すように、当該方法は以下のステップを含む。
401では、第2のエンティティが新たな肯定応答パケットを第1のエンティティに送信する。当該第1のエンティティを検索し生成するプロセスについては、上述の実施形態のステップ301およびステップ302を参照されたい。
402では、当該新たな肯定応答パケットが到着したとき、当該第1のエンティティが別の肯定応答パケットをバッファせず当該第1のエンティティのタイマが開始されていない場合には、当該第1のエンティティが当該新たな肯定応答パケットをサーバに送信し、送信シーケンス番号(SendSeq)を更新する。
当該タイマの期間は当該第1のエンティティが肯定応答パケットを送信する期間であり、SendSeqは、当該タイマが開始した後に当該第1のエンティティにより送信される肯定応答パケットの総データ量である。具体的には、SendSeqが更新されたとき、当該更新されたSendSeqと更新前のSendSeqの関係は、更新されたSendSeq=更新前のSendSeq+Max(0、第1の肯定応答パケットの肯定応答パケット・シーケンス番号−第2の肯定応答パケットの肯定応答パケット・シーケンス番号)である。ここで、当該第1の肯定応答パケットと当該第2の肯定応答パケットは当該第1のエンティティにより連続的に送信される2つの肯定応答パケットである。
場合によっては、SendSeqを更新した後、肯定応答パケットの肯定応答パケット・シーケンス番号をそれに応じて更新すべきである。第2の肯定応答パケットの肯定応答パケット・シーケンス番号を更新するとき、第1の肯定応答パケットの肯定応答パケット・シーケンス番号が第2の肯定応答パケットの肯定応答パケット・シーケンス番号より大きいか、または、第1の肯定応答パケットのシーケンス番号と第2の肯定応答パケットの肯定応答パケット・シーケンス番号の差が−2147483648より小さい場合には、第1の肯定応答パケットの肯定応答パケット・シーケンス番号を第2の肯定応答パケットの肯定応答パケット・シーケンス番号として使用し、そうでなければ、第1のエンティティが読み取った第2の肯定応答パケットの肯定応答パケット・シーケンス番号を第2の肯定応答パケットの肯定応答パケット・シーケンス番号として使用する。
当該実施形態における第1のエンティティ、第2のエンティティ、および第3のエンティティを全て、基地局内に配置してもよいことに留意されたい。
先行技術と比較して、本発明の当該実施形態では、新たな肯定応答パケットが到着したとき、第2のエンティティは、第1のエンティティを検索するかまたは生成し、当該新たな肯定応答パケットを当該第1のエンティティに送信し、当該第1のエンティティが別の肯定応答パケットをバッファせずタイマを開始しないときには、当該第1のエンティティが当該新たな肯定応答パケットに対して当該タイマを開始し、当該新たな肯定応答パケットをサーバに送信し、同時に、送信期間と肯定応答パケットに対する送信データ量閾値を設定し、各送信期間においてサーバに送信される肯定応答パケットの総データ量を制御し、さらに当該肯定応答パケットの量を制御する。このように、肯定応答パケットを定常的な速度でサーバに送信することができる、それにより、肯定応答パケットの量の急増に起因する、ダウンリンクのパケットが時間通りに送信されないという問題とパケット損失の問題を回避し、さらにネットワーク・スループットの低下を回避しネットワーク送信効率を高める。
本発明の別の実施形態では肯定応答パケットを処理するための方法を提供する。当該実施形態と上述の2つの実施形態の相違は、新たな肯定応答パケットが第1のエンティティに到着したとき、当該第1のエンティティが別の肯定応答パケットをバッファせず、タイマが既に開始されていることである。図5に示すように、当該方法は以下のステップを含む。
501では、第2のエンティティが新たな肯定応答パケットを第1のエンティティに送信する。当該第1のエンティティを検索し生成するプロセスについては、第3の実施形態のステップ301およびステップ302を参照されたい。
502では、当該新たな肯定応答パケットが到着したとき、当該第1のエンティティが別の肯定応答パケットをバッファせず当該第1のエンティティのタイマが既に開始されている場合には、当該第1のエンティティが、送信シーケンス番号(SendSeq)が肯定応答パケット送信閾値より大きいかどうかを判定し、SendSeqが当該肯定応答パケット送信閾値より大きい場合には、ステップ504を実施し、SendSeqが当該肯定応答パケット送信閾値より大きくない場合には、ステップ503を実施する。
SendSeqは当該タイマが開始した後に当該第1のエンティティにより送信される肯定応答パケットの総データ量であり、当該肯定応答パケット送信閾値は当該タイマの期間において当該第1のエンティティが送信できる肯定応答パケットの総データ量であり、当該タイマの期間は当該第1のエンティティが肯定応答パケットを送信する期間である。
例えば、当該肯定応答パケット送信閾値の値は平均送信バイト速度(AvgSendByte)と当該タイマの期間の積であり、AvgSendByteは、集約最大ビット・レート(AMBR)と最大スループット(MaxThroughput)に従って決まる。ここで、MaxThroughputが0であるとき、
である。ここで、記号
は、最も近い最大の整数への丸めを示す。MaxThroughputが0でないときには、
である。ここで、記号
は、最も近い最大の整数への丸めを示す。
503では、当該第1のエンティティが当該新たな肯定応答パケットをサーバに送信し、当該送信シーケンス番号(SendSeq)を更新する。
場合によっては、更新されたSendSeqが送信閾値より大きい場合には、後続の肯定応答パケットの送信を停止する。
例えば、更新されたSendSeq=更新前のSendSeq+Max(0、第1の肯定応答パケットの肯定応答パケット・シーケンス番号−第2の肯定応答パケットの肯定応答パケット・シーケンス番号)である。ここで、当該第1の肯定応答パケットと当該第2の肯定応答パケットは当該第1のエンティティにより連続的に送信される2つの肯定応答パケットである。
場合によっては、SendSeqを更新した後、ローカルに格納された肯定応答パケットの肯定応答パケット・シーケンス番号をそれに応じて更新すべきである。第2の肯定応答パケットの肯定応答パケット・シーケンス番号を更新するとき、第1の肯定応答パケットの肯定応答パケット・シーケンス番号が第2の肯定応答パケットの肯定応答パケット・シーケンス番号より大きいか、または、第1の肯定応答パケットのシーケンス番号と第2の肯定応答パケットの肯定応答パケット・シーケンス番号の差が−2147483648より小さい場合には、第1の肯定応答パケットの肯定応答パケット・シーケンス番号が第2の肯定応答パケットの肯定応答パケット・シーケンス番号をローカルに格納された肯定応答パケット・シーケンス番号として置き換え、そうでなければ、第1のエンティティが読み取った第2の肯定応答パケットの肯定応答パケット・シーケンス番号が第2の肯定応答パケットの肯定応答パケット・シーケンス番号をローカルに格納された肯定応答パケット・シーケンス番号として置き換える。
504では、当該第1のエンティティが当該新たな肯定応答パケットをバッファし、当該タイマを再開し、当該新たな肯定応答パケットを当該タイマがタイムアウトする前に送信する。
当該実施形態における第1のエンティティ、第2のエンティティ、および第3のエンティティを全て、基地局内に配置してもよいことに留意されたい。
先行技術と比較して、本発明の当該実施形態では、新たな肯定応答パケットが到着したとき、第2のエンティティは、第1のエンティティを検索するかまたは生成し、当該新たな肯定応答パケットを当該第1のエンティティに送信し、当該第1のエンティティが別の肯定応答パケットをバッファしないとき、かつ、タイマが開始された後に、当該第1のエンティティが、現在の送信シーケンス番号(Sendseq)がデータ量閾値を超えたかどうかを判定する。現在のSendSeqが当該閾値を超えない場合には、当該第1のエンティティは即座に新たな肯定応答パケットを送信する。現在のSendSeqが当該閾値を超えた場合には、当該第1のエンティティが当該タイマを再開し、当該新たな肯定応答パケットを次の送信期間内に送信する。各送信期間においてサーバに送信される肯定応答パケットの総データ量を制御し、さらに、当該肯定応答パケットの量を制御して、当該肯定応答パケットを定常的な速度でサーバに送信できるようにする。それにより、肯定応答パケットの量の急増に起因する、ダウンリンクのパケットが時間通りに送信されないという問題とパケット損失の問題を回避し、さらにネットワーク・スループットの低下を回避しネットワーク送信効率を高める。
本発明の諸実施形態ではさらに、以上の実施形態で提供した方法を実施するための装置を提供する。以下では説明のために例を使用する。説明の簡単さのため、以下の例における任意的な説明、細かい説明等は詳細には行わない。これらについては、上述の方法の実施形態における例を参照されたい。
本発明の別の実施形態では肯定応答パケットを処理するための装置を提供する。図6に示すように、当該装置は、第1の受信器61、第1のプロセッサ62、メモリ63、第1の送信器64、およびタイマ65を備える。第1の受信器61は、肯定応答パケットを受信するように構成される。メモリ63は、第1の受信器61が受信した肯定応答パケットをバッファするように構成される。第1の送信器64は、メモリ63がバッファした肯定応答パケットを送信するように構成される。第1のプロセッサ62は、新たな肯定応答パケットが第1の受信器61に到着したとき、別の肯定応答パケットまたは他の肯定応答パケットが既にメモリ63にバッファされていると判定した場合には、メモリ63をトリガして、当該新たな肯定応答パケットをバッファし、当該別の肯定応答パケットまたは他の肯定応答パケットが送信された後に当該新たな肯定応答パケットを送信するように第1の送信器64に指示するか、または、新たな肯定応答パケットが第1の受信器61に到着したとき、メモリ63が別の肯定応答パケットをバッファせず、かつ、タイマ65が開始されていないと判定された場合には、タイマ65を開始するようにトリガし、第1の送信器64をトリガして当該新たな肯定応答パケットを送信するか、または、新たな肯定応答パケットが第1の受信器61に到着したとき、メモリ63が別の肯定応答パケットをバッファせず、タイマ65が既に開始されており、かつ、送信シーケンス番号(SendSeq)が肯定応答パケット送信閾値より大きい場合には、当該新たな肯定応答パケットをバッファするようにメモリ63をトリガし、タイマ65を再開するようにトリガし、タイマ65がタイムアウトする前に当該新たな肯定応答パケットを送信するように第1の送信器64に指示するか、または、新たな肯定応答パケットが第1の受信器61に到着したとき、メモリ63が別の肯定応答パケットをバッファせず、タイマ65が既に開始されており、かつ、送信シーケンス番号(SendSeq)が肯定応答パケット送信閾値以下であると判定された場合には、当該新たな肯定応答パケットを送信するように第1の送信器64をトリガするように構成される。SendSeqは、タイマ65が開始した後に送信される肯定応答パケットの総データ量であり、当該肯定応答パケット送信閾値は、タイマ65の期間内において送信できる肯定応答パケットの総データ量である。
場合によっては、第1のプロセッサ62はさらに、第1の送信器64が新たな肯定応答パケットを送信した後にSendSeqを更新するように構成される。
例えば、メモリ63は特に、当該新たな肯定応答パケットを当該別の肯定応答パケットまたは他の肯定応答パケットに続いてバッファするように構成され、第1の送信器64は特に、タイマ65がタイムアウトしたときに、待ち行列に従って1つずつ、メモリ63にバッファされた肯定応答パケットを送信するように構成される。
場合によっては、第1のプロセッサ62はさらに、第1の送信器64が1つの肯定応答パケットを送信するたびにSendSeqを更新するように構成される。
場合によっては、第1のプロセッサ62はさらに、SendSeqが更新されるたびに、当該更新されたSendSeqが当該肯定応答パケット送信閾値より大きいかどうかを判定し、第1のプロセッサ62が更新したSendSeqが、第1の送信器64が当該新たな肯定応答パケットを送信する前の当該肯定応答パケット送信閾値より大きいときには、既に当該第1のエンティティにバッファされた肯定応答パケットを送信するのを停止するように第1の送信器64をトリガし、タイマ65を再開するようにトリガし、タイマ65がタイムアウトする前に当該新たな肯定応答パケットを送信するように第1の送信器64に指示するように構成される。
場合によっては、第1のプロセッサ62はさらに、肯定応答パケットの肯定応答パケット・シーケンス番号を更新するように構成される。第2の肯定応答パケットの肯定応答パケット・シーケンス番号を更新するとき、第1の肯定応答パケットの肯定応答パケット・シーケンス番号が第2の肯定応答パケットの肯定応答パケット・シーケンス番号より大きいか、または、第1の肯定応答パケットのシーケンス番号と第2の肯定応答パケットの肯定応答パケット・シーケンス番号の差が−2147483648より小さい場合には、第1の肯定応答パケットの肯定応答パケット・シーケンス番号を第2の肯定応答パケットの肯定応答パケット・シーケンス番号として使用し、そうでなければ、第1のエンティティが読み取った第2の肯定応答パケットの肯定応答パケット・シーケンス番号を第2の肯定応答パケットの肯定応答パケット・シーケンス番号として使用する。タイマ65の期間は肯定応答パケットが送信される期間である。
当該実施形態の装置は、NodeB、eNodeB、HNodeB、またはHeNodeBのような基地局であってもよく、またはRNCであってもよいことに留意されたい。
先行技術と比較して、本発明の当該実施形態では、第1のエンティティが肯定応答パケットを受信した後に、当該肯定応答パケットを処理することができ、送信期間および送信データ量閾値を肯定応答パケットに対して設定することができ、各送信期間にサーバに送信された肯定応答パケットの総データ量を制御することができ、さらに当該肯定応答パケットの量を制御することができる。このように、肯定応答パケットを定常的な速度でサーバに送信することができる、それにより、肯定応答パケットの量の急増に起因する、ダウンリンクのパケットが時間通りに送信されないという問題とパケット損失の問題を回避し、さらにネットワーク・スループットの低下を回避しネットワーク送信効率を高める。
本発明の別の実施形態では、肯定応答パケットを処理するための装置を提供する。図7に示すように、当該装置は、第2の受信器71、第2のプロセッサ72、および第2の送信器73を備える。第2の受信器71は肯定応答パケットを受信するように構成される。第2の送信器73は、第2の受信器7が受信した肯定応答パケットを第1のエンティティに送信するように構成される。当該第1のエンティティは、当該新たな肯定応答パケットをバッファしサーバに送信するように構成される。
第2のプロセッサ72は、新たな肯定応答パケットが第2の受信器71に到着したとき、当該第1のエンティティが存在すると判定した場合には、当該肯定応答パケットを当該第1のエンティティに送信するように第2の送信器73をトリガするか、または、新たな肯定応答パケットが第2の受信器71に到着したとき、当該第1のエンティティが存在せず、既存の第3のエンティティの量が第2の閾値mより小さく、肯定応答パケットが既にバッファされている第3のエンティティの量が第3の閾値nより大きくないと判定した場合には、当該第1のエンティティを生成し、当該新たな肯定応答パケットを当該第1のエンティティに送信するように第2の送信器73をトリガするか、または、新たな肯定応答パケットが第2の受信器71に到着したとき、当該第1のエンティティが存在せず、既存の第3のエンティティの量が第2の閾値mより小さくなく、肯定応答パケットが既にバッファされている第3のエンティティの量が第3の閾値nより大きくないと判定した場合には、肯定応答パケットがバッファされていない少なくとも1つの第3のエンティティを削除し、当該第1のエンティティを生成し、当該新たな肯定応答パケットを当該第1のエンティティに送信するように第2の送信器73をトリガするか、または、新たな肯定応答パケットが第2の受信器71に到着したとき、当該第1のエンティティが存在せず、肯定応答パケットが既にバッファされている第3のエンティティの量が第3の閾値nより大きいと判定した場合には、当該新たな肯定応答パケットをサーバに送信するように第2の送信器73をトリガするように構成される。
mは、肯定応答パケットをバッファし送信するために生成し使用できるエンティティの量の上限であり、nは、肯定応答パケットを同時にバッファすることを可能とする第3の量の上限である。
当該実施形態の装置はNodeB、eNodeB、HNodeB、またはHeNodeBのような基地局であってもよく、または、RNCであってもよいことに留意されたい。
先行技術と比較して、本発明の当該実施形態では、新たな肯定応答パケットが第2のエンティティに到着したとき、当該第2のエンティティは、当該新たな肯定応答パケットに対して、当該新たに到着した肯定応答パケットのバッファおよび/または送信のような処理方式を決定する第1のエンティティを設定し、当該第1のエンティティが肯定応答パケットを処理して、当該肯定応答パケットを定常的な速度でサーバに送信できるようにする。それにより、肯定応答パケットの量の急増に起因する、ダウンリンクのパケットが時間通りに送信されないという問題とパケット損失の問題を回避し、さらにネットワーク・スループットの低下を回避し、ネットワーク送信効率を高める。
本発明の諸実施形態で提供した肯定応答パケットを処理するための装置は、上で提供した方法の実施形態を実装することができる。具体的な機能の実装については、方法の実施形態の説明を参照されたい。詳細についてはここでは繰り返し説明することはしない。本発明の諸実施形態で提供した肯定応答パケットを処理するための方法と装置はTCP送信サービスでのデータ送信に適用可能であるが、それに限定されるものではない。
本発明の1実施形態ではさらに、図6で示した装置および/または図7で示した装置を備えうるシステムを提供する。
上記諸実施形態の方法のプロセスの全部または一部を関連するハードウェアに指示するコンピュータ・プログラムにより実装してもよいことは当業者には理解される。当該プログラムをコンピュータ可読記憶媒体に格納してもよい。当該プログラムを実行すると、当該実施形態の方法のプロセスが実施される。当該記憶媒体には、磁気ディスク、光ディスク、読取専用メモリ(Read−Only Memory、ROM)、ランダム・アクセス・メモリ(Rおよびom Access Memory、RAM)等を含めてもよい。
以上の説明は本発明の具体的な実装形態にすぎず、本発明の保護範囲を限定しようとするものではない。本発明で開示した技術的範囲において当業者が容易に想到する任意の変形または置換は本発明の保護範囲に入るものとする。したがって、本発明の保護範囲は特許請求の範囲の保護範囲により支配される。