説明

不安定な無線リンクにおける再送信の再開を早める無線端末、システム及びプログラム

【課題】不安定な無線リンクを介してデータパケットを受信する場合であっても、既存のTCPレイヤに新たな改変を必要とすることなく、切断状態から接続状態へ移行した際に、データパケットの再送信を速やかに再開することができる無線端末等を提供する。
【解決手段】無線端末は、受信されたデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、その受信ソケットバッファから出力されたデータパケットを一時的に蓄積するノードプロキシバッファと、ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、「切断状態」から「接続状態」へ移行した際に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ出力するように制御するバッファ制御手段とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不安定な無線リンクを介してデータパケットを受信する際に、データパケットの再送信の再開を早める技術に関する。
【背景技術】
【0002】
近年、無線LAN(Local Area Network)やモバイルWiMAX(Worldwide Interoperability for Microwave Access)に代表される無線端末及び無線ネットワークの発達に伴って、その通信エリアも広がりつつある。一方で、通信リンクが不安定で切断が生じやすい通信エリアへの更なる対応も必要となる。例えば、地下鉄や高速道路等の通信エリアへの対応である。
【0003】
このように、常に利用可能でなく(途切れることが多く)且つ信頼性が低い通信リンク(例えば非特許文献1参照)であっても、できる限り接続状態を維持するために、通信ギャップ吸収技術がある(例えば非特許文献2参照)。この技術によれば、データパケットの送信元となるアプリケーションサーバと、その受信先となる無線端末との間に、プロキシサーバを介在させる。
【0004】
図1は、無線端末とアプリケーションサーバとの間にプロキシサーバを介在させたシステム構成図である。
【0005】
図1によれば、無線端末1とアプリケーションサーバ3との間のネットワークに、プロキシサーバ2が介在している。無線端末1は、無線リンクを介してアクセスポイントに接続する。アクセスポイントが接続するアクセスネットワークと、プロキシサーバ2が接続するインターネットとは、相互に接続されている。従って、無線端末1とプロキシサーバ2との間に、無線リンクが介在することとなる。アプリケーションサーバ3は、無線端末1を宛先とするデータパケットを、プロキシサーバ2へ送信する。プロキシサーバ2は、アクセスポイントによってカバーされる複数のエリアを移動する無線端末1へ、アプリケーションサーバ3から受信したデータパケットを代理転送する。
【0006】
図2は、無線端末、プロキシサーバ及びアプリケーションサーバの機能構成図である。
【0007】
図2によれば、無線端末1は、無線通信インタフェース101と、IPレイヤ部102と、受信ソケットバッファを備えたトランスポートレイヤ部111と、例えばFTPクライアントのようなアプリケーションレイヤ部112とを有する。
【0008】
また、図2によれば、アプリケーションサーバ3は、無線端末1の機能構成に対応して、通信インタフェース301と、IPレイヤ部302と、送信ソケットバッファを備えたトランスポートレイヤ部311と、例えばFTPサーバのようなアプリケーションレイヤ部312とを有する。
【0009】
更に、図2によれば、プロキシサーバ2は、通信インタフェース部201と、IPレイヤ部202と、受信ソケットバッファを備えたサーバ側トランスポートレイヤ部221と、送信ソケットバッファを備えたノード側トランスポートレイヤ部222と、トランスポートレイヤの上位層としてのプロキシ実行部223とを有する。
【0010】
通信ギャップ吸収技術によれば、プロキシ実行部223は、受信ソケットバッファから読み込んだデータを送信ソケットバッファに書き込む際、IPアドレスやポート番号などの情報を変更する。プロキシサーバには、無線端末1に対する無線リンクが切断状態にある場合、アプリケーションサーバ3から無線端末1へ送信すべきデータパケットが送信ソケットバッファ及び受信ソケットバッファに一時的に蓄積される。そして、無線端末1に対する無線リンクが接続状態に回復した場合、蓄積されていたデータパケットは無線端末1へ送信される。
【0011】
図2によれば、以下の2つのセッションに区分される。
(1)アプリケーションサーバ3−プロキシサーバ2間の第1のセッション
(2)プロキシサーバ2−無線端末1間の第2のセッション
これにより、不安定な無線リンクを介した第2のセッションが切断状態になったとしても、第1のセッションの接続状態は維持されている。プロキシサーバ2は、第2のセッションが切断状態になったとしても、アプリケーションサーバ3から無線端末1を宛先とするデータパケットを受信し、これらデータパケットを一時的に蓄積する。その後、第2のセッションが回復した場合、プロキシサーバ2は、一時的に蓄積していたデータパケットを、無線端末1へ送信する。
【0012】
図1に戻って、例えば無線端末が走行中の車両内に存在しており、道路をサービスエリアとするWiMAXのアクセスポイントと通信している場合がある。このとき、無線端末は、第1のアクセスポイントがカバーする第1のサービスエリアに存在する限り、アプリケーションサーバ3からのデータパケットを、プロキシサーバ2を介して受信し続ける。無線端末が、第1のサービスエリアを外れると、プロキシサーバ2がその後のデータパケットを、アプリケーションサーバ3から受信する。更に、その後、無線端末が、第2のアクセスポイントがカバーする第2のサービスエリアに入ると、プロキシサーバ2は、切断状態に一時的に蓄積していたデータパケットを、無線端末1へ送信する。無線端末1とプロキシサーバ2間の通信路が途切れても、プロキシサーバ2とアプリケーションサーバ3間の通信路は接続されたままであるため、アプリケーションサーバに通信断の影響を隠蔽できる。
【0013】
プロキシ実行部223の下層に位置するトランスポートレイヤには、データパケットの送達の信頼性を確保するために、一般的にTCP(Transmission Control Protocol)が用いられる。TCPによれば、データパケットを受信した際に、送達確認メッセージ返信する。また、データパケットを欠損(ロス)した場合、そのデータパケットは再送信される。ここで、データパケットの欠損には、主として、以下の2種類がある。
(1)重複した送達確認メッセージの受信
(2)再送タイマの満了
【0014】
無線リンクが「切断状態」にある場合、送達確認メッセージを含むいずれのデータパケットも通信できないために、「再送タイマの満了」による判断のみとなる。再送タイマが満了した場合、欠損されたデータパケットを再送すると共に、再度、再送タイマを起動する。このとき、一般的に、ネットワークへの過度のトラフィックの流入を防ぐために、再送タイマ値は、増分させる(通常2倍程度)。
【0015】
例えばWindowsXP(登録商標)の場合、再送タイマ値の初期値は3秒であり、以下の式により接続状態に更新される。
再送タイマ値(RFC793)=β×平滑化RTT
β:1.3〜2.0程度
再送タイマ値(RFC2988)=平滑化RTT+4×RTT平均偏差
平滑化RTT=α×更新前平滑化RTT+(1−α)測定RTT
【0016】
上式で導出される再送タイマ値が、再送タイマの初期値となる。そして、再送信の毎に、以下のように増分される。
再送タイマ値=再送タイマ値×2
【0017】
WindowsXPの場合、RTTが500ミリ秒及び平均偏差100ミリ秒とすると、再送タイマ値は、以下のようになる。
初回の再送タイマ値 :900ミリ秒程度(RFC2988適用時)
・・・・・・・・・
6回目の再送タイマ値:1分程度
【0018】
また、発明者らによる実験の結果によれば、Linux(登録商標)(カーネル2.6)の場合、再送タイマ値は、以下のようになった。
初回の再送タイマ値 :3.48秒
2回目の再送タイマ値:6.86秒
3回目の再送タイマ値:13.72秒
(3回目の再送から、9分程度経過後に、4回目の再送開始)
4回目の再送タイマ値:569.43秒
ここで、3回目の再送から、9分程度経過後に、4回目の再送を開始している。これは、一旦、通信切断が発生し、その後、通信接続したとしても、再送タイマが満了するまでは、実際のデータパケットの送信は再開されないということを意味する。
【0019】
図3は、切断状態から接続状態へ移行しても、データパケットの再送信が再開されないことを表すシーケンス図である。
【0020】
(S31)アプリケーションサーバ3は、プロキシサーバ2へ、無線端末1を宛先とするデータパケットを連続的に送信している。
(S32)ここで、無線端末1とプロキシサーバ2との間の無線リンクは、接続状態にあると想定する。このとき、プロキシサーバ2は、アプリケーションサーバ3から受信したデータパケットを、プロキシ実行部を介して無線端末1へ転送するべく送信ソケットバッファ222へ書き込む。送信ソケットバッファ222へ書き込まれたデータパケットは、トランプポートプロトコル(例えばTCP(Transmission Control Protocol))によって無線端末1へ送信される。
(S33)無線端末1のトランスポートレイヤ部は、プロキシサーバ2から受信したデータパケットを受信ソケットバッファに蓄積し、アプリケーションレイヤ部が受信ソケットバッファからデータを読み込む。
へ出力する。
(S34)アプリケーションレイヤ部は、データパケットを読み込む毎に、セッションが接続状態にあることを認識する。
【0021】
(S35)その後、無線端末1とプロキシサーバ2との間の無線リンクが、切断状態になったとする。このとき、無線リンクが切断状態に移行した場合であっても、無線端末1のアプリケーションレイヤ部は、まだ読み込んでいないデータパケットが、トランスポートレイヤ部に蓄積されていれば読み込むことができる。アプリケーションレイヤ部は、読み込むデータが存在していること、つまりデータを読み込むことによって、セッションが接続状態にあることを認識している。
【0022】
(S36)無線端末1とプロキシサーバ2との間の無線リンクが切断状態にあっても、プロキシサーバ2とアプリケーションサーバ3との間のセッションは、接続状態に維持されている。従って、アプリケーションサーバ3は、未だ、プロキシサーバ2へ、無線端末1を宛先とするデータパケットを連続的に送信している。このとき、プロキシサーバ2は、データパケットを無線端末1へ送信することができないので、それらデータパケットは、送信待ちのために、送信ソケットバッファに蓄積されていく。
【0023】
プロキシサーバ2は、データパケットを送信する度に、第1のタイマ値D1の再送タイマを起動する。その後、送達確認を得られず再送タイマがタイムアウトした際に、そのデータパケットを再送する。ここで、2回目の同一データパケット送信時、つまり1回目のデータパケット再送時、第2のタイマ値D2(D2=D1×2)の再送タイマを起動する。その後、再送タイマがタイムアウトした際に、そのデータパケットを再度再送する。この2回目のデータパケット再送時には、第3のタイマ値D3(D3=D2×2)の再送タイマを起動する。図3によれば、ここで、無線リンクが切断状態から接続状態へ移行したとする。接続状態へ移行したにも関わらず、第3のタイマ値D3の再送タイマがタイムアウトするまでは、データパケットを再送しない。
【0024】
(S37)その間、無線端末1のアプリケーションレイヤ部は、所定時間Tのタイマがタイムアウトしたとする。このとき、アプリケーションレイヤ部112は、セッションが切断状態へ移行したことを認識する。例えば、発明者らの実験によれば、WindowsXP(登録商標)に標準搭載されたFTP(File Transfer Protocol)クライアントソフトウェアによれば、最後にデータパケットを受信し又は送達確認を送信してから、60秒後にタイムアウトが発生し、セッションが切断された。
【0025】
(S38)一方で、プロキシサーバ2は、データパケットを無線端末1へ送信することができないので、送信ソケットバッファが満杯になる。また、プロキシ実行部は送信ソケットバッファへデータを書き込むことができないため、受信ソケットバッファからデータを読み込むことができなくなり、受信ソケットバッファも満杯になる。このとき、第1のセッションに、TCPなどのウィンドウを用いて輻輳制御を行うプロトコルを利用している場合、プロキシサーバ2は、アプリケーションサーバ3からデータを受信した際に、受信ソケットバッファの空き容量が不足していることを意味する、受信側ウィンドウサイズがゼロである「Zero Window Ack」を返信する。
【0026】
(S39)その後、アプリケーションサーバ3は、プロキシサーバ2へデータパケットを送信できないために、自ら保持するトランスポートレイヤ部における送信ソケットバッファが満杯になる。そして、アプリケーションがデータを送信ソケットバッファに書き込めなくなった際に、タイマをスタートし、所定時間経過後のタイムアウトによって、セッションの切断状態を認識する。例えば、発明者らの実験によれば、特定のFTPサーバソフトウェアによれば、デフォルトのタイムアウト値が120秒に設定されている。従って、アプリケーションサーバ3が、データパケットを送信できなくなってから、120秒後にタイムアウトが発生し、セッションが切断される。
【0027】
前述したような再送信の再開の遅延を解決するための技術として、移動端末が接続先基地局を変更するハンドオーバに適用したものであって、遅延や切断の発生する無線通信環境であるChallenged Networkに適用されたものではないが、例えば、TCPを用いた受信側移動端末が、電波受信強度からハンドオーバを予期し、受信ウィンドウサイズ値をゼロにした送達確認メッセージを、送信側通信装置へ送信し、その送信側通信装置の再送タイマ値を凍結させる技術がある(例えば非特許文献3参照)。この技術によれば、受信側移動端末は、ハンドオーバが完了した際に、受信ウィンドウサイズ値がゼロでない送達確認メッセージを、送信側通信装置へ送信し、その送信側通信装置に再送信を促すことができる。また、受信側移動端末は、ハンドオーバ後に、ハンドオーバの実行したことを示すフラグを含む送達確認メッセージを、送信側通信装置へ送信し、通信レートを維持しながら迅速な再送信の再開を実行することもできる。
【0028】
また、ハンドオーバ完了後に、受信側通信装置が、連続する送達確認メッセージを、送信側通信装置へ送信することによって、送信側通信装置を素早く再送モードに遷移させ、迅速な再送信の再開を実行する技術もある(例えば非特許文献4参照)。
【先行技術文献】
【非特許文献】
【0029】
【非特許文献1】H. Yokota, S. Gundavelli and K. Leung, “Inter-TechnologyHandoff support in Mobile Node for Proxy Mobile IPv6,” Internet-draft, IETF,Oct. 2009.
【非特許文献2】H. Izumikawa and Y. Kishi, “Gap AbsorbingTechnique for Challenged Network Scenarios,” IEICE general conference, Mar.2010.
【非特許文献3】P. Bonde, B. Jharia and A. K. Shrivastav, “PerformanceEvaluation of Exclusive Handover Message TCP in Mobile IP Based Networks DuringHandover,” IEEE ICACT 2010, Feb. 2010.
【非特許文献4】R. Caceres and L. Iftode, “Improving thePerformance of Reliable Transport Protocols in Mobile Computing Environments,”IEEE Journal on Selected Areas in Communications, Vol. 13, No. 5, Jun. 1995.
【発明の概要】
【発明が解決しようとする課題】
【0030】
非特許文献3及び4に記載された技術を、Challenged Network環境に適用することもできる。しかしながら、いずれの技術も、TCPのメッセージ内の値を変更したり、TCPの既存の状態遷移以外の部分で新たな送達確認メッセージを作成する必要がある。勿論、オープンソースOS(Operating System)であれば、TCPのソースコードを改変することも可能であるが、一般的なクローズドソースOSであれば、通常、TCPのソースコードを改変することは難しい。また、現在のところ、様々なバージョンのTCPが出現しており、例えばLinuxでも数多くののTCPバージョンを選択することができる。このような全てのTCPのソースコードを改変することは難しい。
【0031】
そこで、本発明は、不安定な無線リンクを介してデータパケットを受信する場合であっても、既存のTCPレイヤに新たな改変を必要とすることなく、切断状態から接続状態へ移行した際に、データパケットの再送信を速やかに再開することができる無線端末、システム及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0032】
本発明によれば、
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対するトランスポートレイヤ手段及びアプリケーションレイヤ手段を有するクライアントノード通信手段と
を有する無線端末において、
無線通信インタフェースによって受信されたデータパケットに対して、ノードプロキシとして機能するノードプロキシ通信手段と、
ノードプロキシ通信手段と、クライアントノード通信手段との間を接続する仮想通信インタフェース手段とを更に有し、
ノードプロキシ通信手段は、
無線通信インタフェースによって受信されたデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の受信ソケットバッファから出力されたデータパケットを一時的に蓄積するノードプロキシバッファと、
ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
無線通信インタフェースが「切断状態」から「接続状態」へ移行した際に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ一気に出力するように制御するバッファ制御手段と
を有することを特徴とする。
【0033】
本発明によれば、
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対する受信ソケットバッファを有するトランスポートレイヤ手段と、
受信ソケットバッファからデータパケットを受け取るアプリケーションレイヤ手段と
を有する無線端末において、
トランスポートレイヤ手段の受信ソケットバッファから出力されたデータパケットを一時的に蓄積し、アプリケーションレイヤ手段へ出力するノードプロキシバッファと、
無線通信インタフェースが「切断状態」から「接続状態」へ移行した際に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ一気に出力するように制御するバッファ制御手段と
を有することを特徴とする。
【0034】
本発明の無線端末における他の実施形態によれば、
無線インタフェースは、遅延や切断の発生する通信環境の無線リンクに接続されており、
トランスポートレイヤ手段は、TCP(Transmission Control Protocol)又はSCTP/IP(Stream Control Transport Protocol)又はDCCP(Datagram Congestion Control Protocol)を実装していることも好ましい。
【0035】
本発明によれば、前述の無線端末と、該無線端末へデータパケットを送信する通信装置と、無線端末と通信装置との間に介在するプロキシサーバとを有するシステムであってもよい。
【0036】
本発明によれば、
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対するトランスポートレイヤ手段及びアプリケーションレイヤ手段を有するクライアントノード通信手段と
を有する無線端末に搭載されたコンピュータを機能させるプログラムにおいて、
無線通信インタフェースによって受信されたデータパケットに対して、ノードプロキシとして機能するノードプロキシ通信手段と、
ノードプロキシ通信手段と、クライアントノード通信手段との間を接続する仮想通信インタフェース手段とを更に有し、
ノードプロキシ通信手段は、
無線通信インタフェースによって受信されたデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の受信ソケットバッファから出力されたデータパケットを一時的に蓄積するノードプロキシバッファと、
ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
無線通信インタフェースが「切断状態」から「接続状態」へ移行した際に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ一気に出力するように制御するバッファ制御手段と
を有するようにコンピュータを機能させることを特徴とする。
【0037】
本発明によれば、
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対する受信ソケットバッファを有するトランスポートレイヤ手段と、
受信ソケットバッファからデータパケットを受け取るアプリケーションレイヤ手段と
を有する無線端末に搭載されたコンピュータを機能させるプログラムにおいて、
トランスポートレイヤ手段の受信ソケットバッファから出力されたデータパケットを一時的に蓄積し、アプリケーションレイヤ手段へ出力するノードプロキシバッファと、
無線通信インタフェースが「切断状態」から「接続状態」へ移行した際に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ一気に出力するように制御するバッファ制御手段と
してコンピュータを機能させることを特徴とする。
【0038】
本発明によれば、前述した無線端末と、該無線端末へデータパケットを送信する通信装置との間に介在するプロキシサーバであって、
通信装置から受信したデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の受信ソケットバッファから出力されたデータパケットを一時的に蓄積可能なノードプロキシバッファと、
ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の受信ソケットバッファとノード側トランスポートレイヤ手段の送信ソケットバッファとが満杯の状態で無線端末からWindowUpdateメッセージを受信した後に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、送信ソケットバッファ又はノードプロキシバッファへ出力するように制御するバッファ制御手段と
を有することを特徴とする。
【0039】
本発明によれば、前述した無線端末と、該無線端末へデータパケットを送信する通信装置との間に介在するプロキシサーバに搭載されたコンピュータを機能させるプログラムであって、
通信装置から受信したデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の受信ソケットバッファから出力されたデータパケットを一時的に蓄積可能なノードプロキシバッファと、
ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の受信ソケットバッファとノード側トランスポートレイヤ手段の送信ソケットバッファとが満杯の状態で無線端末からWindowUpdateメッセージを受信した後に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、送信ソケットバッファ又はノードプロキシバッファへ出力するように制御するバッファ制御手段と
してコンピュータを機能させることを特徴とする。
【発明の効果】
【0040】
本発明の無線端末、システム及びプログラムによれば、不安定な無線リンクを介してデータパケットを受信する場合であっても、既存のTCPレイヤに新たな改変を必要とすることなく、切断状態から接続状態へ移行した際に、データパケットの再送信を速やかに再開することができる。
【図面の簡単な説明】
【0041】
【図1】無線端末とアプリケーションサーバとの間にプロキシサーバを介在させたシステム構成図である。
【図2】無線端末、プロキシサーバ及びアプリケーションサーバの機能構成図である。
【図3】切断状態から接続状態へ移行しても、データパケットの再送信が再開されないことを表すシーケンス図である。
【図4】本発明における無線端末の機能構成図である。
【図5】本発明におけるシーケンス図である。
【図6】プロキシサーバが介在しない場合における、本発明の無線端末の基本的な機能構成図である。
【発明を実施するための形態】
【0042】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【0043】
図4は、本発明における無線端末の機能構成図である。尚、図4には、アプリケーションサーバから無線端末への下り方向の通信に必要な機能のみが表されている。
【0044】
図4によれば、無線端末1は、無線通信インタフェース101と、IPレイヤ部102と、仮想通信インタフェース103と、トランスポートレイヤ部111と、アプリケーションレイヤ部112と、ノードプロキシ通信部12とを有する。無線通信インタフェース以外のこれら機能構成部は、無線端末に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。
【0045】
無線通信インタフェース101は、無線リンクを介してデータパケットを受信する。本発明によれば、無線インタフェース101は、遅延や切断の発生する通信環境の無線リンクに接続されていると想定する。
【0046】
IPレイヤ部102は、ノードプロキシ通信部12と無線通信インタフェース101との間で、データパケットに対するIP(Internet Protocol)処理を実行する。IPレイヤ部102は、プロキシサーバ2のIPレイヤ部との間で、IPパケットの送受信を実行する。
【0047】
仮想通信インタフェース部103は、ノードプロキシ通信部12とトランスポートレイヤ部111との間を、仮想的な通信インタフェースによって接続する。
【0048】
トランスポートレイヤ部111は、受信ソケットバッファを有し、トランスポートプロトコル処理を実行する。
【0049】
アプリケーションレイヤ部112は、例えばFTPクライアントソフトウェアのようなものであって、データパケットを受信する。
【0050】
ノードプロキシ通信部12は、無線端末内部に搭載されたプロキシ機構である。無線通信インタフェースによって受信されたデータパケットに対して、ノードプロキシとして機能する。また、ノードプロキシ通信部12は、トランスポートレイヤ部111との間で、仮想通信インタフェース部103を介して接続される。
【0051】
本発明によれば、ノードプロキシ通信部12が介在することによって、以下の3つのセッションに区分される。
(1)アプリケーションサーバ3−プロキシサーバ2間の第1のセッション
(2)プロキシサーバ2−無線端末1のノードプロキシ通信部12間の第21のセッション
(3)無線端末1内におけるノードプロキシ通信部12−アプリケーションレイヤ部112間の第22のセッション
【0052】
不安定な通信品質の通信リンクを介した第21のセッションが切断状態になったとしても、仮想通信インタフェース部103に変更はないため、第22のセッションの接続状態は維持されている。これにより、無線端末1−プロキシサーバ2間の無線リンクが切断された場合であっても、無線端末1のアプリケーションレイヤ部112から見た影響を、隠蔽することができる。
【0053】
ノードプロキシ通信部12は、サーバ側トランスポートレイヤ部121と、ノード側トランスポートレイヤ部122と、プロキシ実行部123とを有する。
【0054】
サーバ側トランスポートレイヤ部121は、IPレイヤ部102によって受信されたデータパケットに対する受信ソケットバッファを有する。尚、無線通信インタフェース101によって受信されたデータパケットは、IPレイヤ部102を介して、カーネルによって自動的に受信ソケットバッファに入力される。
【0055】
ノード側トランスポートレイヤ部122は、プロキシ実行部123から出力されたデータパケットに対する送信ソケットバッファを有する。尚、送信ソケットバッファに書き込まれたデータパケットは、カーネルによって自動的に仮想通信インタフェース103へ出力される。
【0056】
サーバ側トランスポートレイヤ部121及び/又はノード側トランスポートレイヤ部122は、既存のTCP(Transmission Control Protocol)、SCTP(Stream Control Transport Protocol)又はDCCP(Datagram Congestion Control Protocol)を実装する。また、サーバ側トランスポートレイヤ部121とノード側トランスポートレイヤ部122とが実装するトランスポートプロトコルは、異なっていてもよい。
【0057】
プロキシ実行部123は、ノードプロキシバッファ及びバッファ制御部を有する。ノードプロキシバッファは、サーバ側トランスポートレイヤ部121の受信ソケットバッファから読み込んだデータパケットを、ノード側トランスポートレイヤ部122の送信ソケットバッファへ書き込む前に、一時的に蓄積できる。
【0058】
プロキシ実行部123のバッファ制御部は、無線通信インタフェースの「接続状態/切断状態」を受け取る。「接続状態/切断状態」は、通信品質(RSSI、SINR、パケットロス率等)によって検出されるものであってもよいし、OSによって明示的に示される情報を得てもよい。
【0059】
無線通信インタフェースが「切断状態」から「接続状態」へ移行した際に、バッファ制御部は、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ一気に出力するように制御する。これによって、利用可能な受信ソケットバッファの空き容量が、所定量以上に増加するために、例えばTCP等ではWindowUpdateメッセージが、プロキシサーバ2へ自動的に送信される。
【0060】
WindowUpdateメッセージを受信したプロキシサーバ2は、再送タイマをリセットし、速やかにデータパケットを再送信する。これによって、既存のTCPレイヤに新たな改変を必要とすることなく、切断状態から接続状態へ移行した際に、データパケットの再送信を速やかに再開することができる。
【0061】
図5は、本発明におけるシーケンス図である。
【0062】
(S51)アプリケーションサーバ3は、プロキシサーバ2へ、無線端末1を宛先とするデータパケットを連続的に送信している。
(S52)ここで、無線端末1とプロキシサーバ2との間の無線リンクは、接続状態にあると想定する。このとき、プロキシサーバ2は、アプリケーションサーバ3から受信したデータパケットを、ノード側トランスポートレイヤ部の送信ソケットバッファに蓄積しつつ、無線端末1へ転送する。
(S53)無線端末1のトランスポートレイヤ部は、プロキシサーバ2から受信したデータパケットを、ノード側トランスポートレイヤ部の送信ソケットバッファ及びサーバ側トランスポートレイヤ部の受信ソケットバッファに蓄積しつつ、アプリケーションレイヤ部へ出力する。
(S54)アプリケーションレイヤ部は、データパケットを受信する毎に、セッションが接続状態にあることを認識する。
【0063】
(S55)その後、無線端末1とプロキシサーバ2との間の無線リンクが、切断状態になったとする。
【0064】
(S56)無線端末1とプロキシサーバ2との間の無線リンクが切断状態にあっても、プロキシサーバ2とアプリケーションサーバ3との間のセッションは、接続状態に維持されている。従って、アプリケーションサーバ3は、未だ、プロキシサーバ2へ、無線端末1を宛先とするデータパケットを連続的に送信している。このとき、プロキシサーバ2は、データパケットを無線端末1へ送信することができないので、それらデータパケットをノー側トランスポートレイヤ部の送信ソケットバッファにも蓄積していく。その後、再送タイマのタイムアウトが繰り返され、タイマ値も増分しているとする。
【0065】
(S57)ここで、無線リンクが切断状態から接続状態へ移行したとする。このとき、プロキシ実行部のノードプロキシバッファは、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、一気に読み込む。これによって、サーバ側トランスポートレイヤ部の受信ソケットバッファについて、一度に、空き容量が所定量以上に増大する。
【0066】
(S58)このとき、既存のTCPに基づいて、サーバ側トランスポートレイヤ部は、WindowUpdateメッセージを自動的にプロキシサーバ2へ送信する。WindowUpdateメッセージを受信したプロキシサーバ2のノード側トランスポートレイヤ部の送信ソケットバッファから、そのデータパケットが再送信される。
【0067】
(S59)そして、プロキシサーバ2は、データパケットを無線端末へ送信することによって、バッファ全体に空きが発生し、アプリケーションサーバ3からのデータパケットの受信を受け付けることができる。この際、バッファ制御部が、サーバ側トランスポートレイヤ部の受信ソケットバッファのキュー長が所定の長さ以下になるようにデータを読み込み、ノード側トランスポートレイヤ部の送信ソケットバッファ又はプロキシバッファに書き込むことも好ましい。なぜならば、それにより、サーバ側トランスポートレイヤ部は、既存のTCPに基づいて、WindowUpdateメッセージを自動的にアプリケーションサーバ3へ送信するからである。もし、アプリケーションサーバ3が、プロキシサーバ2に対して再送を繰り返していたとしても、この動作により、アプリケーションサーバ3からプロキシサーバ2へのデータパケットの再送信も早まることになる。
【0068】
図5によれば、図3と比較して、無線リンクが切断状態から接続状態へ移行した際に、データパケットが速やかに再送されるので、無線端末1のアプリケーションレイヤ部について、データパケットを受信できないことよる、アプリケーションにおけるタイマのタイムアウトが発生しにくくなる。一方で、アプリケーションサーバ3についても、データパケットを送信できないことによるタイマのタイムアウトが発生しにくくなる。
【0069】
図6は、プロキシサーバが介在しない場合における、本発明の無線端末の基本的な機能構成図である。
【0070】
図6によれば、無線端末1は、無線通信インタフェース101と、IPレイヤ部102と、受信ソケットバッファを有するトランスポートレイヤ部121と、ノードプロキシバッファを有するプロキシ実行部123と、アプリケーションレイヤ部112とを有する。無線通信インタフェース以外のこれら機能構成部は、無線端末に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。
【0071】
プロキシ実行部123は、ノードプロキシバッファと、バッファ制御部とを有する。ノードプロキシバッファは、トランスポートレイヤ部311の受信ソケットバッファから出力されたデータパケットを一時的に蓄積し、アプリケーションレイヤ部112へ出力する。また、バッファ制御部は、無線通信インタフェースが「切断状態」から「接続状態」へ移行した際に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ一気に出力するように制御する。
【0072】
前述した実施形態によれば、アプリケーションサーバから無線端末への下り方向のトラフィックについて説明したが、勿論、無線端末からアプリケーションサーバへの上り方向のトラフィックに適用することもできる。
【0073】
また、アプリケーションサーバ自体が、プロキシサーバを包含するものであってもよい。その場合、プロキシサーバを備える必要がない。
【0074】
以上、詳細に説明したように、本発明の無線端末、システム及びプログラムによれば、不安定な無線リンクを介してデータパケットを受信する場合であっても、既存のTCPレイヤに新たな改変を必要とすることなく、切断状態から接続状態へ移行した際に、データパケットの再送信を速やかに再開することができる。
【0075】
前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
【符号の説明】
【0076】
1 無線端末
101 無線通信インタフェース
102 IPレイヤ部
103 仮想通信インタフェース
111 受信ソケットバッファ
112 アプリケーションレイヤ部
12 ノードプロキシ通信部
121 受信ソケットバッファ
122 送信ソケットバッファ
123 プロキシ実行部
2 プロキシサーバ
201 通信インタフェース
202 IPレイヤ部
22 プロキシ通信部
221 サーバ側トランスポートレイヤ部
222 ノード側トランスポートレイヤ部
223 プロキシ実行部
3 アプリケーションサーバ
301 通信インタフェース
302 IPレイヤ部
311 トランスポートレイヤ部
312 アプリケーションレイヤ部

【特許請求の範囲】
【請求項1】
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対するトランスポートレイヤ手段及びアプリケーションレイヤ手段を有するクライアントノード通信手段と
を有する無線端末において、
前記無線通信インタフェースによって受信されたデータパケットに対して、ノードプロキシとして機能するノードプロキシ通信手段と、
前記ノードプロキシ通信手段と、前記クライアントノード通信手段との間を接続する仮想通信インタフェース手段とを更に有し、
前記ノードプロキシ通信手段は、
前記無線通信インタフェースによって受信されたデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の前記受信ソケットバッファから出力された前記データパケットを一時的に蓄積するノードプロキシバッファと、
前記ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
前記無線通信インタフェースが「切断状態」から「接続状態」へ移行した際に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ一気に出力するように制御するバッファ制御手段と
を有することを特徴とする無線端末。
【請求項2】
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対する受信ソケットバッファを有するトランスポートレイヤ手段と、
前記受信ソケットバッファから前記データパケットを受け取るアプリケーションレイヤ手段と
を有する無線端末において、
前記トランスポートレイヤ手段の前記受信ソケットバッファから出力された前記データパケットを一時的に蓄積し、前記アプリケーションレイヤ手段へ出力するノードプロキシバッファと、
前記無線通信インタフェースが「切断状態」から「接続状態」へ移行した際に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ一気に出力するように制御するバッファ制御手段と
を有することを特徴とする無線端末。
【請求項3】
前記無線インタフェースは、遅延や切断の発生する通信環境の無線リンクに接続されており、
前記トランスポートレイヤ手段は、TCP(Transmission Control Protocol)又はSCTP/IP(Stream Control Transport Protocol)又はDCCP(Datagram Congestion Control Protocol)を実装している
ことを特徴とする請求項1又は2に記載の無線端末。
【請求項4】
請求項1から3のいずれか1項に記載の無線端末と、該無線端末へデータパケットを送信する通信装置と、前記無線端末と前記通信装置との間に介在するプロキシサーバとを有することを特徴とするシステム。
【請求項5】
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対するトランスポートレイヤ手段及びアプリケーションレイヤ手段を有するクライアントノード通信手段と
を有する無線端末に搭載されたコンピュータを機能させるプログラムにおいて、
前記無線通信インタフェースによって受信されたデータパケットに対して、ノードプロキシとして機能するノードプロキシ通信手段と、
前記ノードプロキシ通信手段と、前記クライアントノード通信手段との間を接続する仮想通信インタフェース手段とを更に有し、
前記ノードプロキシ通信手段は、
前記無線通信インタフェースによって受信されたデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の前記受信ソケットバッファから出力された前記データパケットを一時的に蓄積するノードプロキシバッファと、
前記ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
前記無線通信インタフェースが「切断状態」から「接続状態」へ移行した際に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ一気に出力するように制御するバッファ制御手段と
を有するようにコンピュータを機能させることを特徴とする無線端末用のプログラム。
【請求項6】
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対する受信ソケットバッファを有するトランスポートレイヤ手段と、
前記受信ソケットバッファから前記データパケットを受け取るアプリケーションレイヤ手段と
を有する無線端末に搭載されたコンピュータを機能させるプログラムにおいて、
前記トランスポートレイヤ手段の前記受信ソケットバッファから出力された前記データパケットを一時的に蓄積し、前記アプリケーションレイヤ手段へ出力するノードプロキシバッファと、
前記無線通信インタフェースが「切断状態」から「接続状態」へ移行した際に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ一気に出力するように制御するバッファ制御手段と
してコンピュータを機能させることを特徴とする無線端末用のプログラム。
【請求項7】
請求項1から4のいずれか1項に記載の無線端末と、該無線端末へデータパケットを送信する通信装置との間に介在するプロキシサーバであって、
前記通信装置から受信したデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の前記受信ソケットバッファから出力された前記データパケットを一時的に蓄積可能なノードプロキシバッファと、
前記ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の前記受信ソケットバッファとノード側トランスポートレイヤ手段の前記送信ソケットバッファとが満杯の状態で前記無線端末からWindowUpdateメッセージを受信した後に、前記受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、前記送信ソケットバッファ又は前記ノードプロキシバッファへ出力するように制御するバッファ制御手段と
を有することを特徴とするプロキシサーバ。
【請求項8】
請求項1から4のいずれか1項に記載の無線端末と、該無線端末へデータパケットを送信する通信装置との間に介在するプロキシサーバに搭載されたコンピュータを機能させるプログラムであって、
前記通信装置から受信したデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の前記受信ソケットバッファから出力された前記データパケットを一時的に蓄積可能なノードプロキシバッファと、
前記ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の前記受信ソケットバッファとノード側トランスポートレイヤ手段の前記送信ソケットバッファとが満杯の状態で前記無線端末からWindowUpdateメッセージを受信した後に、前記受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、前記送信ソケットバッファ又は前記ノードプロキシバッファへ出力するように制御するバッファ制御手段と
してコンピュータを機能させることを特徴とするプロキシサーバ用のプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−217199(P2011−217199A)
【公開日】平成23年10月27日(2011.10.27)
【国際特許分類】
【出願番号】特願2010−84560(P2010−84560)
【出願日】平成22年3月31日(2010.3.31)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】