【文献】
佐藤 彰洋 Akihiro Sato,電気関係学会関西支部連合大会,電気学会論文誌C Vol.129 No.11 IEEJ,日本,(社)電気学会 The Institute of Electrical Engineers of Japan,2009年11月 1日,第129巻
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0020】
以下、本発明の実施例を添付図面に基づき詳細に説明する。そして、以下では、本発明の実施例に係る動作を理解するために必要な部分のみが説明され、その他の部分の説明は本発明の要旨から逸脱しないように省略されることを留意するべきである。そして、後述される用語は本発明の実施例における機能を考慮して定義された用語であって、これはユーザ、運用者の意図又は慣例などによって異なる場合がある。よって、その定義は本明細書全般に亘る内容に基づいて行われるべきである。
【0021】
本発明は、多様な変更を加えることができ、様々な実施例を有することができ、特定の実施例を図面に例示して詳しく説明する。しかし、これは本発明を特定の実施形態に限定することを意図するものでなく、本発明の思想及び技術範囲に含まれるあらゆる変更、均等物乃至代替物を含むものであると理解されるべきである。よって、本特許明細書で本発明の原理を説明するために使用される
図1乃至
図17は単なる例示のためのものであって、発明の範囲を制限するいかなるものとして解釈されてはならない。
【0022】
後述の本発明の様々な実施例は、バッテリ寿命を改善するためにスマートフォン端末のような電子装置(又はクライアント)でTCP接続を制御する装置及び方法を提供する。本発明の実施例は、コンピュータ装置、例えば
図1に示すネットワーク環境で適用され得る。
【0023】
図1を参照すると、クライアント100は、ネットワーク300を介してサーバ200に接続される。ネットワーク300は、3G又はロングタームエボリューション(long term evolution、LTE)の無線通信システムの場合がある。クライアント100は、複数のアプリケーション(例えば、App−A11、App−B12、App−C13)10の実行によってサーバ200と連動し、その結果、サーバ200と様々なコンテンツをやり取りすることができる。クライアント100とサーバ200は伝送制御プロトコル(transmission control protocol、TCP)のような伝送プロトコルを介して互いに接続され得る。クライアント100は、様々な電子装置又はユーザ端末の場合があり、代表的にはスマートフォンの場合がある。
【0024】
本発明の実施例は、アプリケーションソフトウエアを変更する必要なくユーザーエクスペリエンスを悪化させたりアプリケーション機能に影響を及ぼしたりすることなく、より長いアイドル時間を有するようにしてより高いバッテリ寿命を達成することに役立つ。
【0025】
現在、スマートフォンエージェント(agents)によって設定されるTCP接続(connections)は恒久的な(persistent)接続及び非恒久的(non−persistent)接続の場合がある。サーバ200によって終了される非活性の非恒久的な接続(inactivenon−persistent connections)は、セルラー無線のようなネットワークリソースがアイドル状態から活性状態に移行する原因となる。このような現象は電力消費に繰り返し影響を及ぼす。本発明の実施例は、サーバ200によるTCP接続終了を最適化することでクライアント装置のバッテリ寿命を増加させるものである。
【0026】
後述の本発明の実施例は、クライアント100側、すなわち、スマートフォン末端で非活性の非恒久的なTCP接続を制御して終了する様々な方法を提示する。本発明の実施例に係る方法は、最小限の無線状態移行機会を使用することによって、サーバによって開始されるTCP接続終了処理によって招かれる電力消耗を低減できるようにする。
【0027】
本発明の実施例によれば、TCP接続終了処理方式は、後述の
図7に示すように、先行(proactive)TCP接続終了方式710、バッチ遅延(batching delayed)TCP接続終了方式720、及び結合された先行及びバッチTCP接続終了方式730を含む。
【0028】
本発明の実施例は、サーバによって開始されるTCP接続終了を制御しつつも調整前と同じように全体機能が維持されるようにすることによってバッテリ寿命を向上させることに焦点を当てる。
【0029】
本発明の実施例は、TCP接続を終了するサーバに対する依存性を減らし、特定及び異なるサーバ終了タイムアウトを有する全てのアプリケーションに適用され得る。本発明の実施例は、クライアント側でネットワークリソースを最小化する追加的な長所があり、ネットワーク側の要素からの追加的なサポートを必要としない。本発明の実施例は、ネットワークサポートを問わないため、これらの実施例は速かに使用されることができる。
【0030】
本発明の実施例は、恒久的及び非恒久的接続に対するTCP接続の分類が行われた後、アプリケーショントランスペアレント層でTCP接続情報をキャプチャすることから開始される。このような分類の高い精密度及び正確度を獲得するために使用される方法は、TCP接続が終了した後、接続再設定を試みる時間をモニタすることに基づく。
【0031】
恒久的接続(persistent connection)は、1つ以上の連続的なTCP接続を使用することによってクライアントとサーバの間のデータ交換が常に可能な接続に対して決定される。
【0032】
非恒久的接続を検出する例示的なステップは以下の通りであるが、これに限定されない。
1)接続の寿命が所定の時間より長く、
2)類似のTCP接続が以前のTCP接続の終了後に所定の時間及び所定の回数内で再設定される。ここで、類似のTCP接続とは、接続の同じホスト名又は宛先IPアドレス又はポートがキャッシュ及び/又はDB内にある場合を意味する。
【0033】
本発明の実施例は、進行中のTCP接続から様々な属性を動的に計算するものである。これらの属性は次のうちの1つ以上又は組み合わせであるが、これに限定されない。
【0034】
1)サーバ終了タイムアウト(server close timeout):
図6Aに示すように、サーバ終了タイムアウト612値は、最終データ伝送とサーバ200によって開始される終了の間で要する時間である。
【0035】
a)最終データ伝送はサーバ200からの(該当クライアント要求に対する)最終応答が受信された時間(T25)を表す。
b)サーバ200によって開始される終了はサーバ200によって開始される終了からTCP FINパケットが受信された時間(T30)を表す。
【0036】
2)ガードタイムアウト(guard timeout):
図6Bに示すように、ガードタイムアウト622値は、サーバ200とクライアントの特定のアプリケーション100−1間でこれ以上データ伝送がない後の最終データ伝送以後の最も早い時間である。ここで、最終データ伝送以降の最も早い時間は、連続的な要求及び該当応答(T85,T90)の後の非活性時間予測結果を表す。
【0037】
本発明の実施例は、次のようにサーバ終了タイムアウト612を計算する最適の方法を考慮するが、これに限定されない。
【0038】
サーバ終了タイムアウトの検出方法:
図6Aは、本発明の一実施例によってサーバによって開始されるTCP接続終了時間を検出する方法を示す。本発明の一実施例によれば、サーバによって開始される終了動作は、データ伝送に対する長期間の非活性化の後サーバ200によってトリガされる。
【0039】
それぞれの接続のTCPサーバ終了タイムアウトは、ポールシステムコール(poll system call)での所謂POLLRDHUPイベントをモニタリングすることで計算される。POLLRDHUPイベントは、ピア(peer)がその接続を切る際にトリガされる。すなわち、POLLRDHUPイベントは接続の遠隔終端(remote end)(例えば、サーバ200)がTCP FINパケットを伝送する際にトリガされる(
図6AのT30)。
【0040】
例示的なアルゴリズム:
サーバ終了タイムアウト(Server Close Time−out)=接続設定時間(connection established time)−POLLRDHUPイベントトリガ時間(event triggered time)(FIN受信時間(receiving time))
【0041】
本発明の実施例は、次のようにガードタイムアウトを計算する最適の方法を考慮するが、これに限定されない。
【0042】
ガードタイムアウト検出方法:
図6Bは、本発明の他の実施例によってガードタイムアウト(guard timeout)を検出する方法を示す。本発明の一実施例によれば、サーバ(例えば、
図1のサーバ200)とモバイルアプリケーション(例えば、
図1のApp−A11)の間の非恒久的接続のためのデータ伝送完了時間又は非活性化時間は、往復時間(RTT)及び応答処理時間の関数で計算される。
【0043】
ガードタイムアウトは、クライアントによって開始される終了からTCP接続ソケットが保護される時間の量である。これはソケットに対する「保護タイムアウト(protected timeout)」とも言える。
【0044】
ガードタイムアウトに対する計算は、一般にサーバの応答に対するアプリケーション処理時間(
図6Bのprocessing time N)と、要求/応答の往復時間(RTT M)、すなわち、要求と応答の間の遅延の関数である。
【0045】
ガードタイムアウト値は、TCP接続ソケットごとに異なる。それはソケットの寿命の間にソケット判読&作成時間スタンプに基づいて動的にアップデートされる。
【0046】
例示的なアルゴリズム:
ガードタイムアウト(Guard Timeout)=平均処理時間(Avg Processing Time)+(処理時間分散(Processing Time Variance))+平均RTT(Avg RTT)+(RTT分散(RTT Variance))。例えば、PCT接続ソケットxに対するガードタイムアウトg(x)は下記のように計算される:
【0048】
計算の細部事項:
処理時間(Processing Time)=要求伝送時間−最終応答受信時間
RTT=応答受信時間−最終要求伝送時間
【0049】
【数2】
処理時間の合計/処理期間の個数、ここで、Nは処理時間。
【数3】
平均処理時間からの分散
【数4】
W
1=処理時間分散に対する重み因子
W
2=RTT分散に対する重み因子
【0050】
図4は、本発明の様々な実施例に係るクライアント装置のブロック構成を示す。例えば、クライアント装置は、
図1に示すクライアント100の場合がある。
【0051】
図4を参照すると、クライアント100は、アンテナ部110、送受信機120、制御機130、及びメモリ140を含む。
【0052】
アンテナ部110は、送受信機120によって送信処理された信号を、無線チャネルを介して送信し、無線チャネル上の信号を受信する。アンテナ部110は、ビームフォーミングをサポートするための多数のアンテナ、アレイアンテナ又はアンテナ要素(element)を含むことができる。
【0053】
送受信機120は、送信される信号を送信処理し、または、受信される信号を受信処理する。例えば、送受信機120は、システムの物理層規格に従って基底帯域信号及びビット列間変換機能を行う。データ送信の際、送受信機120は、送信ビット列を符号化及び変調することによって複素シンボルを生成する。この時、送受信機120は、前記複素シンボルを副搬送波にマッピングし、IFFT(inverse fast Fourier transform)演算によってOFDMシンボルを生成できる。データ受信の際、送受信機120は、基底帯域信号を復調及び復号化して受信ビット列を復元する。また、送受信機120は、基底帯域信号をRF(radio frequency)帯域信号にアップコンバートした後、アンテナ部110を介して送信し、前記アンテナ110を介して受信されるRF帯域信号を基底帯域信号にダウンコンバートする。例えば、送受信機120は、送信フィルタ、受信フィルタ、増幅器、ミキサ(mixer)、オシレータ(oscillator)、DAC(Digital to Analog Converter)、ADC(Analog to Digital Converter)などを含むことができる。
【0054】
また、送受信機120は、多数のRFチェーンを含むことができる。さらに、送受信機120は、ビームフォーミング(beamforming)をサポートできる。ビームフォーミングのために、送受信機120は、アンテナ部110に含まれる多数のアンテナ又はアンテナ要素(element)を介して送受信される信号それぞれの位相及び大きさを調節できる。また、送受信機120は、送信される複数のデータストリームに対してプリコーディング(precoding)を行うことができる。これにより、送信装置は、MU−MIMO通信を行うことができる。送受信機120は、上述のように信号を送信及び受信する。このような送受信機120は、通信部又は送受信部と称することができ、場合によっては、送信機と受信機又は送信部と受信部に分離されて図示されることができる。
【0055】
メモリ140は、送受信機120の動作のための基本プログラム、アプリケーションプログラム、設定情報などのデータを格納する。また、メモリ140は、制御機130の要求に応じて保存されたデータを提供する。例えば、メモリ140は、
図11乃至
図15に示すフローによる低電力TCP接続終了動作の遂行と関連するプログラム及び/又は命令を格納することができる。
【0056】
制御機130は、(
図1の)クライアント100の全般的な動作を制御する。例えば、制御機130は、送受信機120を介して信号を送受信する。また、制御機130は、メモリ140にデータを記録し、メモリ140に記録されているデータを読み込む。このために、制御機130は、少なくとも1つのプロセッサ(processor)を含むことができる。
【0057】
本発明の実施例に係るTCP接続制御のために、制御機130は、タイムアウト計算モジュール132及びTCP接続終了モジュール134を含む。タイムアウト計算モジュール132は、本発明の実施例に係る低電力TCP接続終了動作のために、各TCP接続に対してサーバ開始のTCP接続終了時間及びガードタイムアウト(又はデータ伝送非活性化時間)を計算又は推定する。例えば、タイムアウト計算モジュール132は、
図6Aに示すフローに従ってサーバ開始のTCP接続終了時間を検出する。また、タイムアウト計算モジュール132は、
図6Bに示すフローに従ってガードタイムアウトを検出する。
【0058】
TCP接続終了モジュール134は、本発明の実施例に係る低電力TCP接続終了動作を行う。一実施例において、TCP接続終了モジュール134は、後述の
図13に示すフローに従って先行TCP接続終了動作を行う。他の実施例において、TCP接続終了モジュール134は、後述の
図14に示すフローに従ってバッチTCP接続終了動作を行う。他の実施例において、TCP接続終了モジュール134は、後述の
図15に示すフローに従って結合された先行及びバッチTCP接続終了動作を行う。
【0059】
本発明の一実施例によれば、制御機130は、複数のTCP接続のうち少なくとも1つのTCP接続に対するデータ伝送非活性化時間を決定し、前記データ伝送非活性化時間に前記TCP接続を終了する。
【0060】
一実施例において、前記データ伝送非活性化時間は、クライアント100とサーバ200の間での前記TCP接続に関わる一連の要求の送信から応答の受信までの往復時間(RTT)、及び前記サーバ200からの任意の応答受信以後の次の要求送信までの処理時間に基づいて決定されることができる。
【0061】
一実施例において、前記データ伝送非活性化時間は、サーバによって開始される前記TCP接続に対する終了時点より早い。前記サーバによって開始される前記TCP接続に対する終了は、前記サーバから前記TCP接続の終了を指示するメッセージが受信されることに応じて行われることができる。
【0062】
本発明の他の実施例によれば、制御機130は、複数のTCP接続のうちサーバ200によって終了処理が開始される少なくとも1つの第1TCP接続を確認し、前記TCP接続のうち前記第1TCP接続を除く少なくとも1つの第2TCP接続に対する処理とともに前記第1TCP接続をバッチ処理して終了する。
【0063】
一実施例において、前記第2TCP接続に対する処理は、前記第2TCP接続に対する接続処理、終了処理、及びデータパケットの送信及び/又は受信動作のうち1つを含むことができる。
【0064】
一実施例において、前記制御機は、前記複数のTCP接続のうち前記サーバからの終了メッセージの受信に応じて前記第1TCP接続を確認する動作を行うことができる。
【0065】
一実施例において、前記制御機は、前記第1TCP接続に対するデータ伝送非活性化時間が所定の基準時間より大きい場合に前記第1TCP接続を確認し、前記第1TCP接続をバッチ処理して終了する動作を行うことができる。前記制御機は、前記データ伝送非活性化時間が前記基準時間より大きくない場合、前記データ伝送非活性化時間に前記第1TCP接続を終了する動作をさらに行うことができる。
【0066】
一実施例において、前記データ伝送非活性化時間は、前記クライアント100とサーバ200の間での前記第1TCP接続に関わる一連の要求の送信から応答の受信までの往復時間(RTT)、及び前記サーバ200からの任意の応答受信以後の次の要求送信までの処理時間に基づいて決定されることができる。
【0067】
一実施例において、前記データ伝送非活性化時間は、前記サーバによって開始される前記第1TCP接続に対する終了時点より早い場合がある。前記サーバによって開始される前記第1TCP接続に対する終了は、前記サーバ200から前記第1TCP接続の終了を指示するメッセージが受信されることに応じて行うことができる。
【0068】
図5は、本発明の様々な実施例に係る低電力伝送制御プロトコル(low power transmission control protocol、LPTCP)のための全体ソフトウェアアーキテクチャ500を示す。例えば、このアーキテクチャ500は、
図4に示す制御機130によって制御されることができる。本発明の一実施例によれば、
図5は、アプリケーションによって使用されるネットワークソフトウェア構成要素とソフトウェアアーキテクチャ500でのLPTCPソリューションの使用を示す。
【0069】
図5を参照すると、アーキテクチャ500は、アプリケーション510、TCP接続モニタ(connection monitor)(又はラッパー(wrapper))520、TCP接続制御機(connection controller)530、ソケットレイヤライブラリ(socket layer library)(又はLIBC(Library for C))540、及びカーネル(Kernel)550を含む。本発明の実施例は、TCP接続モニタ520及びTCP接続制御機530を含むシステムを使用して具現されるが、本発明の範囲はこれに限定されない。
【0070】
図5に示すように、全てのネットワーク伝送はソケットレイヤライブラリ540上で発生する。TCP接続モニタ520は、ソケットレイヤライブラリ540、例えば、LIBC上のラッパー(wrapper)である。
【0071】
TCP接続モニタ520の役割及び任務は以下の通りであるが、これに限定されない。
a)TCP接続モニタ520はソケット呼び出し(すなわち、ソケット、終了、読み込み、作成、伝送/〜に伝送、受信/〜から受信、getaddrinfo)動作をモニタリングできる。
b)TCP接続モニタ520は、戻り値(return value)として、ストリームソケットピア終了された接続を指示するPOLLRDHUPを確認したり又は接続の半分のライティング(writing)をシャットダウンするために、poll()関数を呼び出すことでサーバによって開始されるTCP接続終了を識別できる。
c)TCP接続モニタ520は、CLOSE_WAIT又はLAST_ACK状態へのTCP接続状態変化をモニタリングすることでサーバによって開始されるTCP接続終了を識別できる。
d)TCP接続モニタ520は、TCP接続のシャットダウン(shutdown)を行うことができる。
e)TCP接続モニタ520は、独立型モード(stand−alone mode)でTCP接続の終了を開始できる。
f)TCP接続モニタ520は、ソケット呼び出しに対するラッパー(wrapper)の場合がある(LIBCライブラリ内にある場合がある)。
g)TCP接続モニタ520は、修正されたソケットレイヤの場合がある。
【0072】
TCP接続制御機530は、スマートフォン上で使用される独立したプロセスである。TCP接続制御機530は、非活性のTCP接続を先行終了するための決定及び時間に対して通知する決定ユニット(decisive unit)としてTCP接続モニタ520と相互作用する。
【0073】
TCP接続制御機530の役割及び任務は以下の通りであるが、これに限定されない。
a)TCP接続制御機530は、TCP接続の端末側終了に対する通知を開始できる。
b)TCP接続制御機530は、発生した(invoked)任意のTCP接続に対する接続又は終了関数とともに1つ以上のTCP接続モニタ(例えば、TCP接続モニタ520)に対するバッチTCP接続終了を調整することができる。
c)TCP接続制御機530は、ローソケットパケットキャプチャライブラリ(raw socket packet capture library)(すなわち、libpcap)を介してネットワーク層をモニタリングすることで任意の送信又は受信データパケットと共に1つ以上のTCP接続モニタ(例えば、TCP接続モニタ520)に対するバッチTCP接続終了を調整することができる。(図示せず)
d)TCP接続制御機530は、ネットワーク統計でパケットカウントの変化をモニタリングすることで任意の送信又は受信データパケットと共に1つ以上のTCP接続モニタに対するバッチTCP接続終了を調整することができる。
【0074】
本発明の実施例は、ランダムにサーバによって開始されるTCP接続終了による電力消費に比べてより良好なバッテリ寿命を達成するための次の方法を含むが、本発明の範囲はこれに限定されない。前述のように、本発明の実施例に係るTCP接続終了処理方式は、
図7に示すように、先行TCP接続終了(proactive TCP connection close)方式710、バッチ遅延TCP接続終了(batching delayed TCP connection close)方式720、及び結合された先行及びバッチTCP接続終了方式(combined proactive and batching TCP connection close)730を含む。
【0075】
先行TCP接続終了(proactive TCP connection close):
図3Aは、本発明の実施例に係る先行TCP接続終了の動作を示す。この終了動作は
図1に示すクライアント100で開始されることができる。
【0076】
図3Aを参照すると、非活性のTCP接続41−43は先行して終了されるが、このような動作はいかなる追加的な無線状態移行も招かない。これはTCP接続41−43の終了動作のための区間を無線活性化期間の最小時間に設定可能であるからである。この実施例によれば、非活性状態の非恒久的TCP接続(例えば、41−43)がクライアント装置100で先に終了される。クライアント装置100はサーバ開始の終了が発生したTCP接続のサーバタイムアウトを算出し、安全に終了できる時間の間非活性状態のTCP接続に対して前記算出されたサーバタイムアウトの前に直ちに終了する。
【0077】
App−A11、App−B12及びApp−C13は、同時にデータ同期化動作を開始する(
図3Aの20)。データ同期化活性化によって、無線状態はアイドル状態から活性状態に1回のみ移行される(
図3Aの60)。例えば、この実施例によれば、
図2に示すように、4回にわたる無線状態の移行が1回に減るようになる。活性無線状態で、電力消費は状態が活性状態の時まで維持される。この機会を利用して、
図5のTCP接続制御機530は設定された未だに非活性のTCP接続41−43を終了する。
【0078】
一方で、サーバによって開始されるクライアントでのTCP接続に対する終了の動作を図示する
図2を参照すると、3つのアプリケーション10に対するTCP接続41−43の終了動作のために、アイドル状態から活性状態への無線状態変化に対する4つのインスタント(instants)51−54が存在する。このように無線状態の変化の回数が多いほどクライアントでの電力消費を大きくなる。
【0079】
上述のようなガードタイムアウトは、進行中のデータ伝送からの本発明の実施形態による先行TCP接続終了動作を決定する決定的な属性である。
【0080】
図9Aは、本発明の一実施例に係る先行TCP接続終了動作のために行われるステップ900を示す。この動作のために、TCP接続制御機910とアプリケーション側でのTCP接続モニタ920の間の相互作用が存在する。
【0081】
図9Aに示すように、TCP接続モニタ920及びTCP接続制御機910は、次の通信ステップに従って相互作用する。
【0082】
a)期限が経過したガードタイムアウトを有するTCP接続モニタ920はTCP接続制御機910に先行TCP終了を登録する(
図9の931,932)。
b)TCP接続制御機910は、TCP接続又は終了(
図9の933−1)、新規パケットトランザクション(
図9の933−2)を待つか、又はタイムアウト満了(
図9の933)を待ち、一旦それが発生すると、TCP接続モニタ920に先行終了メッセージを伝送する(
図9の934)。
【0083】
図9Bは、本発明の他の実施例に係る先行TCP接続終了動作のために行われるステップ950を示す。この動作はTCP接続制御機910を利用できないシナリオを考慮したものである。独立型モードはアプリケーション範囲の一部として展開されることができる。
【0084】
図9Bを参照すると、TCP接続モニタ920は、独立型モード(standalone mode)で先行TCP接続終了を開始する機能を有する。期限が経過したガードタイムアウト941を有するTCP接続モニタ920は先行TCP接続終了942を行う。
【0085】
バッチ遅延TCP接続終了(batching delayed TCP connection closes):
図3Bは、本発明の実施例に係るバッチ遅延TCP接続終了の動作を示す。この実施例は、複数のTCP接続41−43が非活性の非恒久的接続に対するバッチとして終了されるように開始する。このような実施例は、
図2に示すように、アイドル状態から活性状態への反復的な無線状態移行を防止する。
【0086】
この実施例は、複数のTCP接続41−43をバッチ処理して終了するためにアイドル状態から活性状態への単一の無線移行72を引き起こす。この実施例によれば、非活性状態の非恒久的TCP接続は他のTCP接続と同時に終了される。サーバ開始の終了が発生したTCP接続が非活性化されると、非活性化TCP接続(例えば、
図3Bの41)は他のTCP接続(例えば、
図3Bの42−43)の接続又は終了が発生する際にバッチ処理してともに終了される。
【0087】
図3Bを参照すると、App−A、App−B及びApp−C10は同時にデータ同期化動作20を開始する。データ同期化活性化によって、無線状態はアイドル状態から活性状態に移行される(
図3Bの71)。しかし、様々なデータ伝送非活性化時間によって、TCP接続終了は独立して遅れる場合がある。
【0088】
ガードタイムアウト値は、アプリケーション10それぞれのTCP接続のそれぞれ41−43によって異なる。したがって、TCP接続41−43のすべてを共にバッチ処理することは複数の無線状態移行を防止する(
図3Bの30)。例えば、この実施例によれば、
図2に示すように4回にわたる無線状態の移行が2回に減るようになる。
【0089】
図10A及び
図10Bは、本発明の実施例に係る遅延TCP接続終了に対するバッチ動作時に行われるステップ1000−1,1000−2を示す。この動作のために、TCP接続制御機1010とアプリケーションプロセスでのTCP接続モニタ1021−1023の間で一定の相互作用が存在する。
【0090】
図10A及び
図10Bに示すように、TCP接続モニタ1010及びTCP接続制御機1021−1023は、次の通信ステップに従って相互作用する:
a)期限が経過したガードタイムアウトを有するTCP接続モニタ1021−1023はTCP接続制御機1010にTCPバッチ終了をほぼ同時に登録する(
図10Aのstep 1 1000−1,1031−1034)。
b)TCP接続制御機1010は、TCP終了又は最小サーバタイムアウトを待ち(
図10Bのstep 2 1000−2,1035)、一旦それが発生すると、バッチ終了メッセージを伝送する(
図10Bの1036)。
c)TCP接続制御機1010からTCPバッチ終了メッセージを受信した後、TCP接続モニタ1021−1023はTCP接続をバッチ処理して終了する。
【0091】
結合された先行及びバッチTCP接続終了(combined proactive and batching TCP connection close):
図8は、本発明の実施例に係るTCP接続先行及びバッチ終了の結合動作を説明するための図である。
【0092】
この動作は、先行TCP接続終了方法とバッチTCP接続終了方法の組み合わせを含む。クライアント装置は、サーバ開始の終了が発生する前に非活性状態の非恒久的TCP接続を終了したり、他のTCP接続の生成又は終了と同時に非活性状態の非恒久的TCP接続を終了する。クライアント装置は、平常時は先行終了モードで動作する。もし、先行終了によって無線テール(radio tail)が長く延長されると予想される場合、クライアント装置は、バッチ終了モードで動作する。例えば、t
GuardTimeout>t
InactivityTimerの場合、クライアント装置は、バッチ終了モードで動作する。別の例として、t
GuardTimeout<t
LowPowerの場合、クライアント装置は、先行終了モードで動作する。この実施例は、2つの実施例の節電利益の全体を累積した形態に該当する。この実施例のために所定のガードタイムアウト値が利用される。
【0093】
図11は、本発明の様々な実施例に係るTCP制御方法のためのTCP接続モニタ1102とTCP接続制御機1104の間の全体フローを示す。TCP接続モニタ1102は次のようなステップを行う:
1)TCP接続モニタ1102は、ソケット、接続、リード、ライトなどのようなソケットアプリケーションプログラムインタフェース(application program interface、API)を接続(hook)する(
図11の1111)。
2)TCP接続モニタ1102は、TCPソケットに対するソケットであるか否かを確認する(
図11の1112)。正であれば、ステップ1113に進み、否であれば、ステップ1116に進む。
3)TCP接続モニタ1102は、ソケットが新たに生成されるとTCP接続モニタ範囲で新規エントリーを生成し、そうでなければ、時間スタンプ、ガードタイムアウト、サーバタイムアウトなどのようなメタを使用して既存のTCP接続リスト(又はエントリー)をアップデートする(
図11の1113)。
TCP接続モニタ1102は、TCP終了をバッチ処理するTCP接続制御機1104にTCPメタデータをアップデートする(
図11の1122)。
TCP接続モニタ1102は、接続がサーバによって開始される終了であれば、ステップ1114に進み、否であれば、ステップ1116に進む。
4)TCP接続モニタ1102は、TCPソケットリード/ライト動作の時間スタンプに基づいてガードタイムアウトを計算し、ガード時間満了通知のためにタイマーをトリガさせる(
図11の1114)。
5)TCP接続モニタ1102は、一旦ガードタイムアウトが満了したり、TCP接続制御機1104からバッチ終了通知が受信されると、TCP接続を終了する(
図11の1115)。
6)TCP接続モニタ1102は、該当LIBC(Library for C)APIを呼び出す(
図11の1116)。
【0094】
TCP接続制御機1104は、次のようなステップを行う:
1)TCP接続制御機1104は、TCP接続モニタ1102からの要求を待つ(
図11の1121)。
2)TCP接続モニタ1102から要求が受信されると、TCP接続制御機1104は、TCP接続モニタ1102のメモリエントリーを生成したり既存のエントリーをアップデートする(
図11の1122)。
3)TCP接続制御機1104は、バッチ終了アプローチに対して決定し、TCP接続モニタ1102にTCP終了通知をマルチキャスティングする(
図11の1115)。
【0095】
図12は、本発明の一実施例に係る、データ伝送非活性時間又はガードタイムアウトを計算するための動作のフロー1200を示す。例えば、このフローは
図11に示すTCP接続モニタ1102及びTCP接続制御機1104によって行われることができる。
【0096】
1)ステップ1210にて、ソケット、接続、リード、ライトなどのようなソケットAPIが接続される。
2)ステップ1220にて、ソケットがTCPソケットであるか否かが確認される。TCPソケットが確認されると、ステップ1230に進み、否であれば、ステップ1260に進む。
3)ステップ1230にて、サーバIP、ポート、ドメイン名、サーバタイムアウトなどのようなTCPメタ情報が生成/アップデートされる。
4)ステップ1240にて、TCPソケットリード/ライト動作の時間スタンプに基づいてガードタイムアウトが計算される。
5)ステップ1250にて、TCP接続メタ、すなわちローカルキャッシュにガードタイムアウトがアップデートされる。
6)ステップ1260にて、該当LIBC APIが呼び出される。
【0097】
図13は、本発明の一実施例に係る、非活性の非恒久的TCP接続に対する先行終了方法のためのTCP制御の動作フロー1300を示す。例えば、このフローは
図11に示すTCP接続モニタ1102及びTCP接続制御機1104によって行われることができる。
【0098】
1)ステップ1310にて、TCPソケットリード/ライト動作に基づいて動的にガードタイムアウトが計算され、ガードタイムアウト満了通知のためにタイマーが設定される。
2)ステップ1310にて、ソケットリード/ライトが途中に発生する場合、タイマーが再設定される。
3)ステップ1320にて、ガードタイムアウト満了まで待機する。
4)ステップ1330にて、TCP接続が終了される。
【0099】
図14は、本発明の一実施例に係る、非活性の非恒久的TCP接続に対するバッチ終了方法のためのTCP制御の動作フロー1400を示す。例えば、このフローは
図11に示すTCP接続モニタ1102及びTCP接続制御機1104によって行われることができる。
【0100】
1)ステップ1410にて、TCPソケットリード/ライト動作に基づいて動的にガードタイムアウトが計算され、ガードタイムアウト満了通知のためにタイマーが設定される。
2)ステップ1410にて、ソケットリード/ライト途中に発生する場合、タイマーが再設定される。
3)ステップ1420にて、ガードタイムアウト満了まで待機する。
4)ステップ1430にて、ガードタイムアウトが正常値又は基準値より長い場合、他のTCP接続からのデータパケット又は制御パケットと共にバッチ終了が登録される。
5)ステップ1440にて、TCP接続制御機1104からのバッチ終了通知が待機される。
6)ステップ1450にて、TCP接続制御機1102からバッチ終了通知が受信されると、TCP接続モニタ1102はTCP接続を終了する。
【0101】
図15は、本発明の一実施例に係る、非活性の非恒久的TCP接続に対する先行及びバッチ終了を含む結合された方法のためのTCP制御の動作フロー1500を示す。例えば、このフローは、
図11に示すTCP接続モニタ1102及びTCP接続制御機1104によって行われることができる。
【0102】
a)ステップ1510にて、TCP接続に対するガードタイムアウトがTCP接続モニタ1102でアップデートされる。
b)ステップ1520にて、ガードタイムアウトが満了した後、ステップ1530にて、ガードタイムアウト値が所定の基準時間又はネットワーク非活性化タイマー値と比較される。ガードタイムアウトの満了はネットワーク非活性の開始によって推定される。
c)ガードタイムアウトが所定のしきい値より小さい場合、ステップ1560にて、先行TCP接続終了動作が行われる。
d)ガードタイムアウトが所定のしきい値より大きい場合、ステップ1540にて、他の進行中の接続に対して、バッチ要求がTCP接続制御機1104に登録される。
e)ステップ1540にて、TCP接続制御機1104からのバッチ終了通知が待機される。
f)ステップ1550にて、TCP接続制御機1102からバッチ終了通知が受信されると、TCP接続モニタ1102はTCP接続を終了する。
【0103】
図16A及び
図16Bは、本発明の様々な実施例に係るLPTCP(low power transmission control protocol)終了動作に対する電力節約面からみた試験結果1610,1620を示す。
【0104】
図16A及び
図16Bを参照すると、本発明の様々な実施例に係るLPTCP終了動作は、従来のTCP動作に比べてスマートフォンのような移動端末で17%程度電源が節約されることが分かる。
【0105】
図17は、本発明の様々な実施例に係るTCP制御動作に対するネットワークシグナリング減少面からみた試験結果1710,1720を示す。この試験結果は、接続分析器(connection analyzer)1700によって得られた結果である。
【0106】
図17を参照すると、本発明の様々な実施例に係るLPTCP終了動作によれば、シグナリングロード1710は16.2%(136→114)減少され、接続状態での時間1720は、25.8%(29分32秒→21分54秒)減少されることが分かる。
【0107】
上述のように本発明の実施例は本発明の様々な実施例はスマートフォン端末のようなクライアント装置でアプリケーションソフトウエアを変更する必要なくユーザーエクスペリエンスを悪化させたりアプリケーション機能に影響を及ぼしたりすることなく、より長いアイドル時間を有するようにしてより高いバッテリ寿命を達成することに役立つ。
【0108】
一方、本発明の詳細な説明では具体的な実施例に関して説明したが、本発明の範囲から逸脱しない限度内で様々な変形が可能であることは勿論である。よって、本発明の範囲は説明された実施例に限定されて定められてはならず、後述の特許請求の範囲だけでなくこの特許請求の範囲と均等なものによって定められるべきである。