(57)【要約】【課題】不安定な無線リンクを介してデータパケットを受信する場合であっても、既存のＴＣＰレイヤに新たな改変を必要とすることなく、切断状態から接続状態へ移行した際に、データパケットの再送信を速やかに再開することができる無線端末等を提供する。【解決手段】無線端末は、受信されたデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、その受信ソケットバッファから出力されたデータパケットを一時的に蓄積するノードプロキシバッファと、ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、「切断状態」から「接続状態」へ移行した際に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ出力するように制御するバッファ制御手段とを有する。【選択図】図４
2011217199.tif 000002
【特許請求の範囲】
【請求項１】
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対するトランスポートレイヤ手段及びアプリケーションレイヤ手段を有するクライアントノード通信手段と
を有する無線端末において、
前記無線通信インタフェースによって受信されたデータパケットに対して、ノードプロキシとして機能するノードプロキシ通信手段と、
前記ノードプロキシ通信手段と、前記クライアントノード通信手段との間を接続する仮想通信インタフェース手段とを更に有し、
前記ノードプロキシ通信手段は、
前記無線通信インタフェースによって受信されたデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の前記受信ソケットバッファから出力された前記データパケットを一時的に蓄積するノードプロキシバッファと、
前記ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
前記無線通信インタフェースが「切断状態」から「接続状態」へ移行した際に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ一気に出力するように制御するバッファ制御手段と
を有することを特徴とする無線端末。
【請求項２】
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対する受信ソケットバッファを有するトランスポートレイヤ手段と、
前記受信ソケットバッファから前記データパケットを受け取るアプリケーションレイヤ手段と
を有する無線端末において、
前記トランスポートレイヤ手段の前記受信ソケットバッファから出力された前記データパケットを一時的に蓄積し、前記アプリケーションレイヤ手段へ出力するノードプロキシバッファと、
前記無線通信インタフェースが「切断状態」から「接続状態」へ移行した際に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ一気に出力するように制御するバッファ制御手段と
を有することを特徴とする無線端末。
【請求項３】
前記無線インタフェースは、遅延や切断の発生する通信環境の無線リンクに接続されており、
前記トランスポートレイヤ手段は、ＴＣＰ(Transmission Control Protocol)又はＳＣＴＰ／ＩＰ(Stream Control Transport Protocol)又はＤＣＣＰ(Datagram Congestion Control Protocol)を実装している
ことを特徴とする請求項１又は２に記載の無線端末。
【請求項４】
請求項１から３のいずれか１項に記載の無線端末と、該無線端末へデータパケットを送信する通信装置と、前記無線端末と前記通信装置との間に介在するプロキシサーバとを有することを特徴とするシステム。
【請求項５】
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対するトランスポートレイヤ手段及びアプリケーションレイヤ手段を有するクライアントノード通信手段と
を有する無線端末に搭載されたコンピュータを機能させるプログラムにおいて、
前記無線通信インタフェースによって受信されたデータパケットに対して、ノードプロキシとして機能するノードプロキシ通信手段と、
前記ノードプロキシ通信手段と、前記クライアントノード通信手段との間を接続する仮想通信インタフェース手段とを更に有し、
前記ノードプロキシ通信手段は、
前記無線通信インタフェースによって受信されたデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の前記受信ソケットバッファから出力された前記データパケットを一時的に蓄積するノードプロキシバッファと、
前記ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
前記無線通信インタフェースが「切断状態」から「接続状態」へ移行した際に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ一気に出力するように制御するバッファ制御手段と
を有するようにコンピュータを機能させることを特徴とする無線端末用のプログラム。
【請求項６】
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対する受信ソケットバッファを有するトランスポートレイヤ手段と、
前記受信ソケットバッファから前記データパケットを受け取るアプリケーションレイヤ手段と
を有する無線端末に搭載されたコンピュータを機能させるプログラムにおいて、
前記トランスポートレイヤ手段の前記受信ソケットバッファから出力された前記データパケットを一時的に蓄積し、前記アプリケーションレイヤ手段へ出力するノードプロキシバッファと、
前記無線通信インタフェースが「切断状態」から「接続状態」へ移行した際に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ一気に出力するように制御するバッファ制御手段と
してコンピュータを機能させることを特徴とする無線端末用のプログラム。
【請求項７】
請求項１から４のいずれか１項に記載の無線端末と、該無線端末へデータパケットを送信する通信装置との間に介在するプロキシサーバであって、
前記通信装置から受信したデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の前記受信ソケットバッファから出力された前記データパケットを一時的に蓄積可能なノードプロキシバッファと、
前記ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の前記受信ソケットバッファとノード側トランスポートレイヤ手段の前記送信ソケットバッファとが満杯の状態で前記無線端末からWindowUpdateメッセージを受信した後に、前記受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、前記送信ソケットバッファ又は前記ノードプロキシバッファへ出力するように制御するバッファ制御手段と
を有することを特徴とするプロキシサーバ。
【請求項８】
請求項１から４のいずれか１項に記載の無線端末と、該無線端末へデータパケットを送信する通信装置との間に介在するプロキシサーバに搭載されたコンピュータを機能させるプログラムであって、
前記通信装置から受信したデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の前記受信ソケットバッファから出力された前記データパケットを一時的に蓄積可能なノードプロキシバッファと、
前記ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の前記受信ソケットバッファとノード側トランスポートレイヤ手段の前記送信ソケットバッファとが満杯の状態で前記無線端末からWindowUpdateメッセージを受信した後に、前記受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、前記送信ソケットバッファ又は前記ノードプロキシバッファへ出力するように制御するバッファ制御手段と
してコンピュータを機能させることを特徴とするプロキシサーバ用のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不安定な無線リンクを介してデータパケットを受信する際に、データパケットの再送信の再開を早める技術に関する。
【背景技術】
【０００２】
近年、無線ＬＡＮ(Local Area Network)やモバイルＷｉＭＡＸ(Worldwide Interoperability for Microwave Access)に代表される無線端末及び無線ネットワークの発達に伴って、その通信エリアも広がりつつある。一方で、通信リンクが不安定で切断が生じやすい通信エリアへの更なる対応も必要となる。例えば、地下鉄や高速道路等の通信エリアへの対応である。
【０００３】
このように、常に利用可能でなく（途切れることが多く）且つ信頼性が低い通信リンク（例えば非特許文献１参照）であっても、できる限り接続状態を維持するために、通信ギャップ吸収技術がある（例えば非特許文献２参照）。この技術によれば、データパケットの送信元となるアプリケーションサーバと、その受信先となる無線端末との間に、プロキシサーバを介在させる。
【０００４】
図１は、無線端末とアプリケーションサーバとの間にプロキシサーバを介在させたシステム構成図である。
【０００５】
図１によれば、無線端末１とアプリケーションサーバ３との間のネットワークに、プロキシサーバ２が介在している。無線端末１は、無線リンクを介してアクセスポイントに接続する。アクセスポイントが接続するアクセスネットワークと、プロキシサーバ２が接続するインターネットとは、相互に接続されている。従って、無線端末１とプロキシサーバ２との間に、無線リンクが介在することとなる。アプリケーションサーバ３は、無線端末１を宛先とするデータパケットを、プロキシサーバ２へ送信する。プロキシサーバ２は、アクセスポイントによってカバーされる複数のエリアを移動する無線端末１へ、アプリケーションサーバ３から受信したデータパケットを代理転送する。
【０００６】
図２は、無線端末、プロキシサーバ及びアプリケーションサーバの機能構成図である。
【０００７】
図２によれば、無線端末１は、無線通信インタフェース１０１と、ＩＰレイヤ部１０２と、受信ソケットバッファを備えたトランスポートレイヤ部１１１と、例えばＦＴＰクライアントのようなアプリケーションレイヤ部１１２とを有する。
【０００８】
また、図２によれば、アプリケーションサーバ３は、無線端末１の機能構成に対応して、通信インタフェース３０１と、ＩＰレイヤ部３０２と、送信ソケットバッファを備えたトランスポートレイヤ部３１１と、例えばＦＴＰサーバのようなアプリケーションレイヤ部３１２とを有する。
【０００９】
更に、図２によれば、プロキシサーバ２は、通信インタフェース部２０１と、ＩＰレイヤ部２０２と、受信ソケットバッファを備えたサーバ側トランスポートレイヤ部２２１と、送信ソケットバッファを備えたノード側トランスポートレイヤ部２２２と、トランスポートレイヤの上位層としてのプロキシ実行部２２３とを有する。
【００１０】
通信ギャップ吸収技術によれば、プロキシ実行部２２３は、受信ソケットバッファから読み込んだデータを送信ソケットバッファに書き込む際、ＩＰアドレスやポート番号などの情報を変更する。プロキシサーバには、無線端末１に対する無線リンクが切断状態にある場合、アプリケーションサーバ３から無線端末１へ送信すべきデータパケットが送信ソケットバッファ及び受信ソケットバッファに一時的に蓄積される。そして、無線端末１に対する無線リンクが接続状態に回復した場合、蓄積されていたデータパケットは無線端末１へ送信される。
【００１１】
図２によれば、以下の２つのセッションに区分される。
（１）アプリケーションサーバ３−プロキシサーバ２間の第１のセッション
（２）プロキシサーバ２−無線端末１間の第２のセッション
これにより、不安定な無線リンクを介した第２のセッションが切断状態になったとしても、第１のセッションの接続状態は維持されている。プロキシサーバ２は、第２のセッションが切断状態になったとしても、アプリケーションサーバ３から無線端末１を宛先とするデータパケットを受信し、これらデータパケットを一時的に蓄積する。その後、第２のセッションが回復した場合、プロキシサーバ２は、一時的に蓄積していたデータパケットを、無線端末１へ送信する。
【００１２】
図１に戻って、例えば無線端末が走行中の車両内に存在しており、道路をサービスエリアとするＷｉＭＡＸのアクセスポイントと通信している場合がある。このとき、無線端末は、第１のアクセスポイントがカバーする第１のサービスエリアに存在する限り、アプリケーションサーバ３からのデータパケットを、プロキシサーバ２を介して受信し続ける。無線端末が、第１のサービスエリアを外れると、プロキシサーバ２がその後のデータパケットを、アプリケーションサーバ３から受信する。更に、その後、無線端末が、第２のアクセスポイントがカバーする第２のサービスエリアに入ると、プロキシサーバ２は、切断状態に一時的に蓄積していたデータパケットを、無線端末１へ送信する。無線端末１とプロキシサーバ２間の通信路が途切れても、プロキシサーバ２とアプリケーションサーバ３間の通信路は接続されたままであるため、アプリケーションサーバに通信断の影響を隠蔽できる。
【００１３】
プロキシ実行部２２３の下層に位置するトランスポートレイヤには、データパケットの送達の信頼性を確保するために、一般的にＴＣＰ(Transmission Control Protocol)が用いられる。ＴＣＰによれば、データパケットを受信した際に、送達確認メッセージ返信する。また、データパケットを欠損（ロス）した場合、そのデータパケットは再送信される。ここで、データパケットの欠損には、主として、以下の２種類がある。
（１）重複した送達確認メッセージの受信
（２）再送タイマの満了
【００１４】
無線リンクが「切断状態」にある場合、送達確認メッセージを含むいずれのデータパケットも通信できないために、「再送タイマの満了」による判断のみとなる。再送タイマが満了した場合、欠損されたデータパケットを再送すると共に、再度、再送タイマを起動する。このとき、一般的に、ネットワークへの過度のトラフィックの流入を防ぐために、再送タイマ値は、増分させる（通常２倍程度）。
【００１５】
例えばWindowsXP（登録商標）の場合、再送タイマ値の初期値は３秒であり、以下の式により接続状態に更新される。
再送タイマ値(RFC793)＝β×平滑化ＲＴＴ
β：１．３〜２．０程度
再送タイマ値(RFC2988)＝平滑化ＲＴＴ＋４×ＲＴＴ平均偏差
平滑化ＲＴＴ＝α×更新前平滑化ＲＴＴ＋（１−α）測定ＲＴＴ
【００１６】
上式で導出される再送タイマ値が、再送タイマの初期値となる。そして、再送信の毎に、以下のように増分される。
再送タイマ値＝再送タイマ値×２
【００１７】
WindowsXPの場合、ＲＴＴが５００ミリ秒及び平均偏差１００ミリ秒とすると、再送タイマ値は、以下のようになる。
初回の再送タイマ値  ：９００ミリ秒程度(RFC2988適用時)
・・・・・・・・・
６回目の再送タイマ値：１分程度
【００１８】
また、発明者らによる実験の結果によれば、Linux（登録商標）(カーネル2.6)の場合、再送タイマ値は、以下のようになった。
初回の再送タイマ値  ：３．４８秒
２回目の再送タイマ値：６．８６秒
３回目の再送タイマ値：１３．７２秒
（３回目の再送から、９分程度経過後に、４回目の再送開始）
４回目の再送タイマ値：５６９．４３秒
ここで、３回目の再送から、９分程度経過後に、４回目の再送を開始している。これは、一旦、通信切断が発生し、その後、通信接続したとしても、再送タイマが満了するまでは、実際のデータパケットの送信は再開されないということを意味する。
【００１９】
図３は、切断状態から接続状態へ移行しても、データパケットの再送信が再開されないことを表すシーケンス図である。
【００２０】
（Ｓ３１）アプリケーションサーバ３は、プロキシサーバ２へ、無線端末１を宛先とするデータパケットを連続的に送信している。
（Ｓ３２）ここで、無線端末１とプロキシサーバ２との間の無線リンクは、接続状態にあると想定する。このとき、プロキシサーバ２は、アプリケーションサーバ３から受信したデータパケットを、プロキシ実行部を介して無線端末１へ転送するべく送信ソケットバッファ２２２へ書き込む。送信ソケットバッファ２２２へ書き込まれたデータパケットは、トランプポートプロトコル（例えばＴＣＰ(Transmission Control Protocol)）によって無線端末１へ送信される。
（Ｓ３３）無線端末１のトランスポートレイヤ部は、プロキシサーバ２から受信したデータパケットを受信ソケットバッファに蓄積し、アプリケーションレイヤ部が受信ソケットバッファからデータを読み込む。
へ出力する。
（Ｓ３４）アプリケーションレイヤ部は、データパケットを読み込む毎に、セッションが接続状態にあることを認識する。
【００２１】
（Ｓ３５）その後、無線端末１とプロキシサーバ２との間の無線リンクが、切断状態になったとする。このとき、無線リンクが切断状態に移行した場合であっても、無線端末１のアプリケーションレイヤ部は、まだ読み込んでいないデータパケットが、トランスポートレイヤ部に蓄積されていれば読み込むことができる。アプリケーションレイヤ部は、読み込むデータが存在していること、つまりデータを読み込むことによって、セッションが接続状態にあることを認識している。
【００２２】
（Ｓ３６）無線端末１とプロキシサーバ２との間の無線リンクが切断状態にあっても、プロキシサーバ２とアプリケーションサーバ３との間のセッションは、接続状態に維持されている。従って、アプリケーションサーバ３は、未だ、プロキシサーバ２へ、無線端末１を宛先とするデータパケットを連続的に送信している。このとき、プロキシサーバ２は、データパケットを無線端末１へ送信することができないので、それらデータパケットは、送信待ちのために、送信ソケットバッファに蓄積されていく。
【００２３】
プロキシサーバ２は、データパケットを送信する度に、第１のタイマ値D1の再送タイマを起動する。その後、送達確認を得られず再送タイマがタイムアウトした際に、そのデータパケットを再送する。ここで、２回目の同一データパケット送信時、つまり１回目のデータパケット再送時、第２のタイマ値D2（D2＝D1×２）の再送タイマを起動する。その後、再送タイマがタイムアウトした際に、そのデータパケットを再度再送する。この２回目のデータパケット再送時には、第３のタイマ値D3（D3＝D2×２）の再送タイマを起動する。図３によれば、ここで、無線リンクが切断状態から接続状態へ移行したとする。接続状態へ移行したにも関わらず、第３のタイマ値D3の再送タイマがタイムアウトするまでは、データパケットを再送しない。
【００２４】
（Ｓ３７）その間、無線端末１のアプリケーションレイヤ部は、所定時間Ｔのタイマがタイムアウトしたとする。このとき、アプリケーションレイヤ部１１２は、セッションが切断状態へ移行したことを認識する。例えば、発明者らの実験によれば、WindowsXP（登録商標）に標準搭載されたＦＴＰ(File Transfer Protocol)クライアントソフトウェアによれば、最後にデータパケットを受信し又は送達確認を送信してから、６０秒後にタイムアウトが発生し、セッションが切断された。
【００２５】
（Ｓ３８）一方で、プロキシサーバ２は、データパケットを無線端末１へ送信することができないので、送信ソケットバッファが満杯になる。また、プロキシ実行部は送信ソケットバッファへデータを書き込むことができないため、受信ソケットバッファからデータを読み込むことができなくなり、受信ソケットバッファも満杯になる。このとき、第１のセッションに、ＴＣＰなどのウィンドウを用いて輻輳制御を行うプロトコルを利用している場合、プロキシサーバ２は、アプリケーションサーバ３からデータを受信した際に、受信ソケットバッファの空き容量が不足していることを意味する、受信側ウィンドウサイズがゼロである「Zero Window Ack」を返信する。
【００２６】
（Ｓ３９）その後、アプリケーションサーバ３は、プロキシサーバ２へデータパケットを送信できないために、自ら保持するトランスポートレイヤ部における送信ソケットバッファが満杯になる。そして、アプリケーションがデータを送信ソケットバッファに書き込めなくなった際に、タイマをスタートし、所定時間経過後のタイムアウトによって、セッションの切断状態を認識する。例えば、発明者らの実験によれば、特定のＦＴＰサーバソフトウェアによれば、デフォルトのタイムアウト値が１２０秒に設定されている。従って、アプリケーションサーバ３が、データパケットを送信できなくなってから、１２０秒後にタイムアウトが発生し、セッションが切断される。
【００２７】
前述したような再送信の再開の遅延を解決するための技術として、移動端末が接続先基地局を変更するハンドオーバに適用したものであって、遅延や切断の発生する無線通信環境であるChallenged Networkに適用されたものではないが、例えば、ＴＣＰを用いた受信側移動端末が、電波受信強度からハンドオーバを予期し、受信ウィンドウサイズ値をゼロにした送達確認メッセージを、送信側通信装置へ送信し、その送信側通信装置の再送タイマ値を凍結させる技術がある（例えば非特許文献３参照）。この技術によれば、受信側移動端末は、ハンドオーバが完了した際に、受信ウィンドウサイズ値がゼロでない送達確認メッセージを、送信側通信装置へ送信し、その送信側通信装置に再送信を促すことができる。また、受信側移動端末は、ハンドオーバ後に、ハンドオーバの実行したことを示すフラグを含む送達確認メッセージを、送信側通信装置へ送信し、通信レートを維持しながら迅速な再送信の再開を実行することもできる。
【００２８】
また、ハンドオーバ完了後に、受信側通信装置が、連続する送達確認メッセージを、送信側通信装置へ送信することによって、送信側通信装置を素早く再送モードに遷移させ、迅速な再送信の再開を実行する技術もある（例えば非特許文献４参照）。
【先行技術文献】
【非特許文献】
【００２９】
【非特許文献１】H. Yokota, S. Gundavelli and K. Leung, “Inter-TechnologyHandoff support in Mobile Node for Proxy Mobile IPv6,” Internet-draft, IETF,Oct. 2009.
【非特許文献２】H. Izumikawa and Y. Kishi, “Gap AbsorbingTechnique for Challenged Network Scenarios,” IEICE general conference, Mar.2010.
【非特許文献３】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.
【非特許文献４】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.
【発明の概要】
【発明が解決しようとする課題】
【００３０】
非特許文献３及び４に記載された技術を、Challenged Network環境に適用することもできる。しかしながら、いずれの技術も、ＴＣＰのメッセージ内の値を変更したり、ＴＣＰの既存の状態遷移以外の部分で新たな送達確認メッセージを作成する必要がある。勿論、オープンソースＯＳ(Operating System)であれば、ＴＣＰのソースコードを改変することも可能であるが、一般的なクローズドソースＯＳであれば、通常、ＴＣＰのソースコードを改変することは難しい。また、現在のところ、様々なバージョンのＴＣＰが出現しており、例えばLinuxでも数多くののＴＣＰバージョンを選択することができる。このような全てのＴＣＰのソースコードを改変することは難しい。
【００３１】
そこで、本発明は、不安定な無線リンクを介してデータパケットを受信する場合であっても、既存のＴＣＰレイヤに新たな改変を必要とすることなく、切断状態から接続状態へ移行した際に、データパケットの再送信を速やかに再開することができる無線端末、システム及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００３２】
本発明によれば、
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対するトランスポートレイヤ手段及びアプリケーションレイヤ手段を有するクライアントノード通信手段と
を有する無線端末において、
無線通信インタフェースによって受信されたデータパケットに対して、ノードプロキシとして機能するノードプロキシ通信手段と、
ノードプロキシ通信手段と、クライアントノード通信手段との間を接続する仮想通信インタフェース手段とを更に有し、
ノードプロキシ通信手段は、
無線通信インタフェースによって受信されたデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の受信ソケットバッファから出力されたデータパケットを一時的に蓄積するノードプロキシバッファと、
ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
無線通信インタフェースが「切断状態」から「接続状態」へ移行した際に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ一気に出力するように制御するバッファ制御手段と
を有することを特徴とする。
【００３３】
本発明によれば、
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対する受信ソケットバッファを有するトランスポートレイヤ手段と、
受信ソケットバッファからデータパケットを受け取るアプリケーションレイヤ手段と
を有する無線端末において、
トランスポートレイヤ手段の受信ソケットバッファから出力されたデータパケットを一時的に蓄積し、アプリケーションレイヤ手段へ出力するノードプロキシバッファと、
無線通信インタフェースが「切断状態」から「接続状態」へ移行した際に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ一気に出力するように制御するバッファ制御手段と
を有することを特徴とする。
【００３４】
本発明の無線端末における他の実施形態によれば、
無線インタフェースは、遅延や切断の発生する通信環境の無線リンクに接続されており、
トランスポートレイヤ手段は、ＴＣＰ(Transmission Control Protocol)又はＳＣＴＰ／ＩＰ(Stream Control Transport Protocol)又はＤＣＣＰ(Datagram Congestion Control Protocol)を実装していることも好ましい。
【００３５】
本発明によれば、前述の無線端末と、該無線端末へデータパケットを送信する通信装置と、無線端末と通信装置との間に介在するプロキシサーバとを有するシステムであってもよい。
【００３６】
本発明によれば、
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対するトランスポートレイヤ手段及びアプリケーションレイヤ手段を有するクライアントノード通信手段と
を有する無線端末に搭載されたコンピュータを機能させるプログラムにおいて、
無線通信インタフェースによって受信されたデータパケットに対して、ノードプロキシとして機能するノードプロキシ通信手段と、
ノードプロキシ通信手段と、クライアントノード通信手段との間を接続する仮想通信インタフェース手段とを更に有し、
ノードプロキシ通信手段は、
無線通信インタフェースによって受信されたデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の受信ソケットバッファから出力されたデータパケットを一時的に蓄積するノードプロキシバッファと、
ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
無線通信インタフェースが「切断状態」から「接続状態」へ移行した際に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ一気に出力するように制御するバッファ制御手段と
を有するようにコンピュータを機能させることを特徴とする。
【００３７】
本発明によれば、
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対する受信ソケットバッファを有するトランスポートレイヤ手段と、
受信ソケットバッファからデータパケットを受け取るアプリケーションレイヤ手段と
を有する無線端末に搭載されたコンピュータを機能させるプログラムにおいて、
トランスポートレイヤ手段の受信ソケットバッファから出力されたデータパケットを一時的に蓄積し、アプリケーションレイヤ手段へ出力するノードプロキシバッファと、
無線通信インタフェースが「切断状態」から「接続状態」へ移行した際に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ一気に出力するように制御するバッファ制御手段と
してコンピュータを機能させることを特徴とする。
【００３８】
本発明によれば、前述した無線端末と、該無線端末へデータパケットを送信する通信装置との間に介在するプロキシサーバであって、
通信装置から受信したデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の受信ソケットバッファから出力されたデータパケットを一時的に蓄積可能なノードプロキシバッファと、
ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の受信ソケットバッファとノード側トランスポートレイヤ手段の送信ソケットバッファとが満杯の状態で無線端末からWindowUpdateメッセージを受信した後に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、送信ソケットバッファ又はノードプロキシバッファへ出力するように制御するバッファ制御手段と
を有することを特徴とする。
【００３９】
本発明によれば、前述した無線端末と、該無線端末へデータパケットを送信する通信装置との間に介在するプロキシサーバに搭載されたコンピュータを機能させるプログラムであって、
通信装置から受信したデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の受信ソケットバッファから出力されたデータパケットを一時的に蓄積可能なノードプロキシバッファと、
ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の受信ソケットバッファとノード側トランスポートレイヤ手段の送信ソケットバッファとが満杯の状態で無線端末からWindowUpdateメッセージを受信した後に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、送信ソケットバッファ又はノードプロキシバッファへ出力するように制御するバッファ制御手段と
してコンピュータを機能させることを特徴とする。
【発明の効果】
【００４０】
本発明の無線端末、システム及びプログラムによれば、不安定な無線リンクを介してデータパケットを受信する場合であっても、既存のＴＣＰレイヤに新たな改変を必要とすることなく、切断状態から接続状態へ移行した際に、データパケットの再送信を速やかに再開することができる。
【図面の簡単な説明】
【００４１】
【図１】無線端末とアプリケーションサーバとの間にプロキシサーバを介在させたシステム構成図である。
【図２】無線端末、プロキシサーバ及びアプリケーションサーバの機能構成図である。
【図３】切断状態から接続状態へ移行しても、データパケットの再送信が再開されないことを表すシーケンス図である。
【図４】本発明における無線端末の機能構成図である。
【図５】本発明におけるシーケンス図である。
【図６】プロキシサーバが介在しない場合における、本発明の無線端末の基本的な機能構成図である。
【発明を実施するための形態】
【００４２】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【００４３】
図４は、本発明における無線端末の機能構成図である。尚、図４には、アプリケーションサーバから無線端末への下り方向の通信に必要な機能のみが表されている。
【００４４】
図４によれば、無線端末１は、無線通信インタフェース１０１と、ＩＰレイヤ部１０２と、仮想通信インタフェース１０３と、トランスポートレイヤ部１１１と、アプリケーションレイヤ部１１２と、ノードプロキシ通信部１２とを有する。無線通信インタフェース以外のこれら機能構成部は、無線端末に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。
【００４５】
無線通信インタフェース１０１は、無線リンクを介してデータパケットを受信する。本発明によれば、無線インタフェース１０１は、遅延や切断の発生する通信環境の無線リンクに接続されていると想定する。
【００４６】
ＩＰレイヤ部１０２は、ノードプロキシ通信部１２と無線通信インタフェース１０１との間で、データパケットに対するＩＰ(Internet Protocol)処理を実行する。ＩＰレイヤ部１０２は、プロキシサーバ２のＩＰレイヤ部との間で、ＩＰパケットの送受信を実行する。
【００４７】
仮想通信インタフェース部１０３は、ノードプロキシ通信部１２とトランスポートレイヤ部１１１との間を、仮想的な通信インタフェースによって接続する。
【００４８】
トランスポートレイヤ部１１１は、受信ソケットバッファを有し、トランスポートプロトコル処理を実行する。
【００４９】
アプリケーションレイヤ部１１２は、例えばＦＴＰクライアントソフトウェアのようなものであって、データパケットを受信する。
【００５０】
ノードプロキシ通信部１２は、無線端末内部に搭載されたプロキシ機構である。無線通信インタフェースによって受信されたデータパケットに対して、ノードプロキシとして機能する。また、ノードプロキシ通信部１２は、トランスポートレイヤ部１１１との間で、仮想通信インタフェース部１０３を介して接続される。
【００５１】
本発明によれば、ノードプロキシ通信部１２が介在することによって、以下の３つのセッションに区分される。
（１）アプリケーションサーバ３−プロキシサーバ２間の第１のセッション
（２）プロキシサーバ２−無線端末１のノードプロキシ通信部１２間の第２１のセッション
（３）無線端末１内におけるノードプロキシ通信部１２−アプリケーションレイヤ部１１２間の第２２のセッション
【００５２】
不安定な通信品質の通信リンクを介した第２１のセッションが切断状態になったとしても、仮想通信インタフェース部１０３に変更はないため、第２２のセッションの接続状態は維持されている。これにより、無線端末１−プロキシサーバ２間の無線リンクが切断された場合であっても、無線端末１のアプリケーションレイヤ部１１２から見た影響を、隠蔽することができる。
【００５３】
ノードプロキシ通信部１２は、サーバ側トランスポートレイヤ部１２１と、ノード側トランスポートレイヤ部１２２と、プロキシ実行部１２３とを有する。
【００５４】
サーバ側トランスポートレイヤ部１２１は、ＩＰレイヤ部１０２によって受信されたデータパケットに対する受信ソケットバッファを有する。尚、無線通信インタフェース１０１によって受信されたデータパケットは、ＩＰレイヤ部１０２を介して、カーネルによって自動的に受信ソケットバッファに入力される。
【００５５】
ノード側トランスポートレイヤ部１２２は、プロキシ実行部１２３から出力されたデータパケットに対する送信ソケットバッファを有する。尚、送信ソケットバッファに書き込まれたデータパケットは、カーネルによって自動的に仮想通信インタフェース１０３へ出力される。
【００５６】
サーバ側トランスポートレイヤ部１２１及び／又はノード側トランスポートレイヤ部１２２は、既存のＴＣＰ(Transmission Control Protocol)、ＳＣＴＰ(Stream Control Transport Protocol)又はＤＣＣＰ(Datagram Congestion Control Protocol)を実装する。また、サーバ側トランスポートレイヤ部１２１とノード側トランスポートレイヤ部１２２とが実装するトランスポートプロトコルは、異なっていてもよい。
【００５７】
プロキシ実行部１２３は、ノードプロキシバッファ及びバッファ制御部を有する。ノードプロキシバッファは、サーバ側トランスポートレイヤ部１２１の受信ソケットバッファから読み込んだデータパケットを、ノード側トランスポートレイヤ部１２２の送信ソケットバッファへ書き込む前に、一時的に蓄積できる。
【００５８】
プロキシ実行部１２３のバッファ制御部は、無線通信インタフェースの「接続状態／切断状態」を受け取る。「接続状態／切断状態」は、通信品質（ＲＳＳＩ、ＳＩＮＲ、パケットロス率等）によって検出されるものであってもよいし、ＯＳによって明示的に示される情報を得てもよい。
【００５９】
無線通信インタフェースが「切断状態」から「接続状態」へ移行した際に、バッファ制御部は、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ一気に出力するように制御する。これによって、利用可能な受信ソケットバッファの空き容量が、所定量以上に増加するために、例えばＴＣＰ等ではWindowUpdateメッセージが、プロキシサーバ２へ自動的に送信される。
【００６０】
WindowUpdateメッセージを受信したプロキシサーバ２は、再送タイマをリセットし、速やかにデータパケットを再送信する。これによって、既存のＴＣＰレイヤに新たな改変を必要とすることなく、切断状態から接続状態へ移行した際に、データパケットの再送信を速やかに再開することができる。
【００６１】
図５は、本発明におけるシーケンス図である。
【００６２】
（Ｓ５１）アプリケーションサーバ３は、プロキシサーバ２へ、無線端末１を宛先とするデータパケットを連続的に送信している。
（Ｓ５２）ここで、無線端末１とプロキシサーバ２との間の無線リンクは、接続状態にあると想定する。このとき、プロキシサーバ２は、アプリケーションサーバ３から受信したデータパケットを、ノード側トランスポートレイヤ部の送信ソケットバッファに蓄積しつつ、無線端末１へ転送する。
（Ｓ５３）無線端末１のトランスポートレイヤ部は、プロキシサーバ２から受信したデータパケットを、ノード側トランスポートレイヤ部の送信ソケットバッファ及びサーバ側トランスポートレイヤ部の受信ソケットバッファに蓄積しつつ、アプリケーションレイヤ部へ出力する。
（Ｓ５４）アプリケーションレイヤ部は、データパケットを受信する毎に、セッションが接続状態にあることを認識する。
【００６３】
（Ｓ５５）その後、無線端末１とプロキシサーバ２との間の無線リンクが、切断状態になったとする。
【００６４】
（Ｓ５６）無線端末１とプロキシサーバ２との間の無線リンクが切断状態にあっても、プロキシサーバ２とアプリケーションサーバ３との間のセッションは、接続状態に維持されている。従って、アプリケーションサーバ３は、未だ、プロキシサーバ２へ、無線端末１を宛先とするデータパケットを連続的に送信している。このとき、プロキシサーバ２は、データパケットを無線端末１へ送信することができないので、それらデータパケットをノー側トランスポートレイヤ部の送信ソケットバッファにも蓄積していく。その後、再送タイマのタイムアウトが繰り返され、タイマ値も増分しているとする。
【００６５】
（Ｓ５７）ここで、無線リンクが切断状態から接続状態へ移行したとする。このとき、プロキシ実行部のノードプロキシバッファは、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、一気に読み込む。これによって、サーバ側トランスポートレイヤ部の受信ソケットバッファについて、一度に、空き容量が所定量以上に増大する。
【００６６】
（Ｓ５８）このとき、既存のＴＣＰに基づいて、サーバ側トランスポートレイヤ部は、WindowUpdateメッセージを自動的にプロキシサーバ２へ送信する。WindowUpdateメッセージを受信したプロキシサーバ２のノード側トランスポートレイヤ部の送信ソケットバッファから、そのデータパケットが再送信される。
【００６７】
（Ｓ５９）そして、プロキシサーバ２は、データパケットを無線端末へ送信することによって、バッファ全体に空きが発生し、アプリケーションサーバ３からのデータパケットの受信を受け付けることができる。この際、バッファ制御部が、サーバ側トランスポートレイヤ部の受信ソケットバッファのキュー長が所定の長さ以下になるようにデータを読み込み、ノード側トランスポートレイヤ部の送信ソケットバッファ又はプロキシバッファに書き込むことも好ましい。なぜならば、それにより、サーバ側トランスポートレイヤ部は、既存のＴＣＰに基づいて、WindowUpdateメッセージを自動的にアプリケーションサーバ３へ送信するからである。もし、アプリケーションサーバ３が、プロキシサーバ２に対して再送を繰り返していたとしても、この動作により、アプリケーションサーバ３からプロキシサーバ２へのデータパケットの再送信も早まることになる。
【００６８】
図５によれば、図３と比較して、無線リンクが切断状態から接続状態へ移行した際に、データパケットが速やかに再送されるので、無線端末１のアプリケーションレイヤ部について、データパケットを受信できないことよる、アプリケーションにおけるタイマのタイムアウトが発生しにくくなる。一方で、アプリケーションサーバ３についても、データパケットを送信できないことによるタイマのタイムアウトが発生しにくくなる。
【００６９】
図６は、プロキシサーバが介在しない場合における、本発明の無線端末の基本的な機能構成図である。
【００７０】
図６によれば、無線端末１は、無線通信インタフェース１０１と、ＩＰレイヤ部１０２と、受信ソケットバッファを有するトランスポートレイヤ部１２１と、ノードプロキシバッファを有するプロキシ実行部１２３と、アプリケーションレイヤ部１１２とを有する。無線通信インタフェース以外のこれら機能構成部は、無線端末に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。
【００７１】
プロキシ実行部１２３は、ノードプロキシバッファと、バッファ制御部とを有する。ノードプロキシバッファは、トランスポートレイヤ部３１１の受信ソケットバッファから出力されたデータパケットを一時的に蓄積し、アプリケーションレイヤ部１１２へ出力する。また、バッファ制御部は、無線通信インタフェースが「切断状態」から「接続状態」へ移行した際に、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ一気に出力するように制御する。
【００７２】
前述した実施形態によれば、アプリケーションサーバから無線端末への下り方向のトラフィックについて説明したが、勿論、無線端末からアプリケーションサーバへの上り方向のトラフィックに適用することもできる。
【００７３】
また、アプリケーションサーバ自体が、プロキシサーバを包含するものであってもよい。その場合、プロキシサーバを備える必要がない。
【００７４】
以上、詳細に説明したように、本発明の無線端末、システム及びプログラムによれば、不安定な無線リンクを介してデータパケットを受信する場合であっても、既存のＴＣＰレイヤに新たな改変を必要とすることなく、切断状態から接続状態へ移行した際に、データパケットの再送信を速やかに再開することができる。
【００７５】
前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
【符号の説明】
【００７６】
１  無線端末
１０１  無線通信インタフェース
１０２  ＩＰレイヤ部
１０３  仮想通信インタフェース
１１１  受信ソケットバッファ
１１２  アプリケーションレイヤ部
１２  ノードプロキシ通信部
１２１  受信ソケットバッファ
１２２  送信ソケットバッファ
１２３  プロキシ実行部
２  プロキシサーバ
２０１  通信インタフェース
２０２  ＩＰレイヤ部
２２  プロキシ通信部
２２１  サーバ側トランスポートレイヤ部
２２２  ノード側トランスポートレイヤ部
２２３  プロキシ実行部
３  アプリケーションサーバ
３０１  通信インタフェース
３０２  ＩＰレイヤ部
３１１  トランスポートレイヤ部
３１２  アプリケーションレイヤ部
【図１】
2011217199.tif 000003
【図２】
2011217199.tif 000004
【図３】
2011217199.tif 000005
【図４】
2011217199.tif 000006
【図５】
2011217199.tif 000007
【図６】
2011217199.tif 000008