(57)【要約】【課題】不安定な無線リンクを介してデータパケットを受信する場合であっても、専用のアプリケーションレイヤ部を備えることなく、切断状態への移行を意味するタイムアウトをできる限り回避することができる無線端末等を提供する。【解決手段】無線端末は、無線通信インタフェースによって受信されたデータパケットに対して、ノードプロキシとして機能するノードプロキシ通信手段を有する。ノードプロキシ通信手段は、ノードプロキシバッファを有する。ノードプロキシバッファは、「接続状態」である場合、蓄積されたデータパケットの所定キュー長が保持されるように、ノードプロキシバッファにおけるデータパケットの入力及び出力を制御し、「切断状態」である場合、所定時間だけ遅延させて、ノードプロキシバッファからデータパケットを出力するように制御される。【選択図】図４
2011217198.tif 000002
【特許請求の範囲】
【請求項１】
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対するトランスポートレイヤ手段及びアプリケーションレイヤ手段を有するノード通信手段と
を有する無線端末において、
前記無線通信インタフェースによって受信されたデータパケットに対する受信ソケットバッファからデータを読み込み一時的に蓄積するノードプロキシバッファと、
前記無線通信インタフェースが「接続状態」である場合、蓄積されたデータパケットの所定キュー長が保持されるように、前記ノードプロキシバッファにおけるデータパケットの入力及び出力を制御し、前記無線通信インタフェースが「切断状態」である場合、所定時間だけ遅延させて、前記ノードプロキシバッファからデータパケットを前記アプリケーションレイヤ手段へ出力するように制御するバッファ制御手段と
を有することを特徴とする無線端末。
【請求項２】
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対する受信ソケットバッファを有するトランスポートレイヤ手段と、
前記受信ソケットバッファから前記データパケットを受け取るアプリケーションレイヤ手段と
を有する無線端末において、
前記トランスポートレイヤ手段の前記受信ソケットバッファから出力された前記データパケットを一時的に蓄積し、前記アプリケーションレイヤ手段へ出力するノードプロキシバッファと、
前記無線通信インタフェースが「接続状態」である場合、蓄積されたデータパケットの所定キュー長が保持されるように、前記ノードプロキシバッファにおけるデータパケットの入力及び出力を制御し、前記無線通信インタフェースが「切断状態」である場合、所定時間だけ遅延させて、前記ノードプロキシバッファからデータパケットを出力するように制御するバッファ制御手段と
を有することを特徴とする無線端末。
【請求項３】
前記バッファ制御手段は、
前記ノードプロキシバッファに蓄積可能な最大キューイング時間を予め規定しており、
「接続状態」にある場合、当該ノードプロキシバッファに蓄積されているデータパケットが前記所定キュー長以下になったとしても、前記最大キューイング時間に達したデータパケットを出力するように制御する
ことを特徴とする請求項１又は２に記載の無線端末。
【請求項４】
前記無線インタフェースは、遅延や切断の発生する通信環境の無線リンクに接続されており、
前記トランスポートレイヤ手段は、ＴＣＰ(Transmission Control Protocol)、ＳＣＴＰ／ＩＰ(Stream Control Transport Protocol)又はＤＣＣＰ(Datagram Congestion Control Protocol)を実装していることを特徴とする請求項１から３のいずれか１項に記載の無線端末。
【請求項５】
請求項１から４のいずれか１項に記載の無線端末と、該無線端末へデータパケットを送信する通信装置との間に介在するプロキシサーバであって、
前記通信装置から受信したデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の前記受信ソケットバッファから出力された前記データパケットを一時的に蓄積可能なノードプロキシバッファと、
前記ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の前記受信ソケットバッファとノード側トランスポートレイヤ手段の前記送信ソケットバッファとが満杯になるまで、前記ノードプロキシバッファに前記データパケットを蓄積せず、前記受信ソケットバッファ及び前記送信ソケットバッファが満杯になった際に、前記ノードプロキシバッファへ前記受信ソケットバッファに蓄積されたデータパケットを所定時間間隔で読み込み且つ蓄積するように制御するバッファ制御手段と
を有することを特徴とするプロキシサーバ。
【請求項６】
請求項１から４のいずれか１項に記載の無線端末へ、データパケットを送信する通信装置であって、
前記無線端末へ送信すべきデータパケットを出力するアプリケーションレイヤ手段と、
前記アプリケーションレイヤ手段から出力された前記データパケットを一時的に蓄積可能なノードプロキシバッファと、
前記ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するトランスポートレイヤ手段と、
前記トランスポートレイヤ手段の前記送信ソケットバッファが満杯になるまで、前記ノードプロキシバッファに前記データパケットを蓄積せず、前記送信ソケットバッファが満杯になった際に、前記ノードプロキシバッファへ前記受信ソケットバッファに蓄積されたデータパケットを所定時間間隔で出力し且つ蓄積するように制御するバッファ制御手段と
を有することを特徴とする通信装置。
【請求項７】
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対するトランスポートレイヤ手段及びアプリケーションレイヤ手段を有するノード通信手段と
を有する無線端末に搭載されたコンピュータを機能させるプログラムにおいて、
前記無線通信インタフェースによって受信されたデータパケットに対して、ノードプロキシとして機能するノードプロキシ通信手段と、
前記ノードプロキシ通信手段と、前記ノード通信手段との間を接続する仮想通信インタフェース手段とを更に有し、
前記ノードプロキシ通信手段は、
前記無線通信インタフェースによって受信されたデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の前記受信ソケットバッファから出力された前記データパケットを一時的に蓄積するノードプロキシバッファと、
前記ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
前記無線通信インタフェースが「接続状態」である場合、蓄積されたデータパケットの所定キュー長が保持されるように、前記ノードプロキシバッファにおけるデータパケットの入力及び出力を制御し、前記無線通信インタフェースが「切断状態」である場合、所定時間だけ遅延させて、前記ノードプロキシバッファからデータパケットを出力するように制御するバッファ制御手段と
を有するようにコンピュータを機能させることを特徴とする無線端末用のプログラム。
【請求項８】
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対する受信ソケットバッファを有するトランスポートレイヤ手段と、
前記受信ソケットバッファから前記データパケットを受け取るアプリケーションレイヤ手段と
を有する無線端末に搭載されたコンピュータを機能させるプログラムにおいて、
前記トランスポートレイヤ手段の前記受信ソケットバッファから出力された前記データパケットを一時的に蓄積し、前記アプリケーションレイヤ手段へ出力するノードプロキシバッファと、
前記無線通信インタフェースが「接続状態」である場合、蓄積されたデータパケットの所定キュー長が保持されるように、前記ノードプロキシバッファにおけるデータパケットの入力及び出力を制御し、前記無線通信インタフェースが「切断状態」である場合、所定時間だけ遅延させて、前記ノードプロキシバッファからデータパケットを出力するように制御するバッファ制御手段と
を有するようにコンピュータを機能させることを特徴とする無線端末用のプログラム。
【請求項９】
請求項１から４のいずれか１項に記載の無線端末と、該無線端末へデータパケットを送信する通信装置との間に介在するプロキシサーバに搭載されたコンピュータを機能させるプログラムであって、
前記通信装置から受信したデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の前記受信ソケットバッファから出力された前記データパケットを一時的に蓄積可能なノードプロキシバッファと、
前記ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の前記受信ソケットバッファとノード側トランスポートレイヤ手段の前記送信ソケットバッファとが満杯になるまで、前記ノードプロキシバッファに前記データパケットを蓄積せず、前記受信ソケットバッファ及び前記送信ソケットバッファが満杯になった際に、前記ノードプロキシバッファへ前記受信ソケットバッファに蓄積されたデータパケットを所定時間間隔で出力し且つ蓄積するように制御するバッファ制御手段と
を有するようにコンピュータを機能させることを特徴とするプロキシサーバ用のプログラム。
【請求項１０】
請求項１から４のいずれか１項に記載の無線端末へ、データパケットを送信する通信装置に搭載されたコンピュータを機能させるプログラムであって、
前記無線端末へ送信すべきデータパケットを出力するアプリケーションレイヤ手段と、
前記アプリケーションレイヤ手段から出力された前記データパケットを一時的に蓄積可能なノードプロキシバッファと、
前記ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するトランスポートレイヤ手段と、
前記トランスポートレイヤ手段の前記送信ソケットバッファが満杯になるまで、前記ノードプロキシバッファに前記データパケットを蓄積せず、前記送信ソケットバッファが満杯になった際に、前記ノードプロキシバッファへ前記受信ソケットバッファに蓄積されたデータパケットを所定時間間隔で出力し且つ蓄積するように制御するバッファ制御手段と
を有するようにコンピュータを機能させることを特徴とする通信装置用のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不安定な無線リンクを介してデータパケットを受信する際に、無線リンクの切断耐性を高める技術に関する。
【背景技術】
【０００２】
近年、無線ＬＡＮ(Local Area Network)やモバイルＷｉＭＡＸ(Worldwide Interoperability for Microwave Access)に代表される無線端末及び無線ネットワークの発達に伴って、その通信エリアも広がりつつある。一方で、通信リンクが不安定で切断が生じやすい通信エリアへの更なる対応も必要となる。例えば、地下鉄や高速道路等の通信エリアへの対応である。
【０００３】
このように、常に利用可能でなく（途切れることが多く）且つ信頼性が低い通信リンク（例えば非特許文献１参照）であっても、できる限り接続状態を維持するために、通信ギャップ吸収技術がある（例えば非特許文献２参照）。この技術によれば、データパケットの送信元となるアプリケーションサーバと、その受信先となる無線端末との間に、プロキシサーバを介在させる。
【０００４】
図１は、無線端末とアプリケーションサーバとの間にプロキシサーバを介在させたシステム構成図である。
【０００５】
図１によれば、無線端末１とアプリケーションサーバ３との間のネットワークに、プロキシサーバ２が介在している。無線端末１は、無線リンクを介してアクセスポイントに接続する。アクセスポイントが接続するアクセスネットワークと、プロキシサーバ２が接続するインターネットとは、相互に接続されている。従って、無線端末１とプロキシサーバ２との間に、無線リンクが介在することとなる。アプリケーションサーバ３は、無線端末１を宛先とするデータパケットを、プロキシサーバ２へ送信する。プロキシサーバ２は、アクセスポイントによってカバーされる複数のエリアを移動する無線端末１へ、アプリケーションサーバ３から受信したデータパケットを代理転送する。
【０００６】
図２は、無線端末、プロキシサーバ及びアプリケーションサーバの機能構成図である。
【０００７】
図２によれば、無線端末１は、無線通信インタフェース１０１と、ＩＰレイヤ部１０２と、受信ソケットバッファを備えたトランスポートレイヤ部１１１と、例えばＦＴＰクライアントのようなアプリケーションレイヤ部１１２とを有する。
【０００８】
また、図２によれば、アプリケーションサーバ３は、無線端末１の機能構成に対応して、通信インタフェース３０１と、ＩＰレイヤ部３０２と、送信ソケットバッファを備えたトランスポートレイヤ部３１１と、例えばＦＴＰサーバのようなアプリケーションレイヤ部３１２とを有する。
【０００９】
更に、図２によれば、プロキシサーバ２は、通信インタフェース部２０１と、ＩＰレイヤ部２０２と、受信ソケットバッファを備えたサーバ側トランスポートレイヤ部２２１と、送信ソケットバッファを備えたノード側トランスポートレイヤ部２２２と、トランスポートレイヤの上位層としてのプロキシ実行部２２３とを有する。
【００１０】
通信ギャップ吸収技術によれば、プロキシ実行部２２３は、受信ソケットバッファから読み込んだデータを送信ソケットバッファに書き込む際、ＩＰアドレスやポート番号などの情報を変更する。プロキシサーバには、無線端末１に対する無線リンクが切断状態にある場合、アプリケーションサーバ３から無線端末１へ送信すべきデータパケットが送信ソケットバッファ及び受信ソケットバッファに一時的に蓄積される。そして、無線端末１に対する無線リンクが接続状態に回復した場合、蓄積されていたデータパケットは無線端末１へ送信される。
【００１１】
図２によれば、以下の２つのセッションに区分される。
（１）アプリケーションサーバ３−プロキシサーバ２間の第１のセッション
（２）プロキシサーバ２−無線端末１間の第２のセッション
これにより、不安定な通信品質の通信リンクを介した第２のセッションが切断状態になったとしても、第１のセッションの接続状態は維持されている。プロキシサーバ２は、第２のセッションが切断状態になったとしても、アプリケーションサーバ３から無線端末１を宛先とするデータパケットを受信し、これらデータパケットを一時的に蓄積する。その後、第２のセッションが回復した場合、プロキシサーバ２は、一時的に蓄積していたデータパケットを、無線端末１へ送信する。
【００１２】
図１に戻って、例えば無線端末が走行中の車両内に存在しており、道路をサービスエリアとするＷｉＭＡＸのアクセスポイントと通信している場合がある。このとき、無線端末は、第１のアクセスポイントがカバーする第１のサービスエリアに存在する限り、アプリケーションサーバ３からのデータパケットを、プロキシサーバ２を介して受信し続ける。無線端末が、第１のサービスエリアを外れると、プロキシサーバ２がその後のデータパケットを、アプリケーションサーバ３から受信する。更に、その後、無線端末が、第２のアクセスポイントがカバーする第２のサービスエリアに入ると、プロキシサーバ２は、切断状態に一時的に蓄積していたデータパケットを、無線端末１へ送信する。無線端末１とプロキシサーバ２間の通信路が途切れても、プロキシサーバ２とアプリケーションサーバ３間の通信路は接続されたままであるため、アプリケーションサーバに通信断の影響を隠蔽できる。
【００１３】
尚、データパケットの流れの中にプロキシサーバを介在させることなく、無線端末内にアプリケーションレベルゲートウェイを設置する技術もある（例えば非特許文献３参照）。この技術によれば、切断状態の状態を、無線端末内のアプリケーションに対して隠蔽することができる。
【先行技術文献】
【非特許文献】
【００１４】
【非特許文献１】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.
【非特許文献３】J. Ott, D. Kutscher, “ADisconnection-Tolerant Transport for Drive-thru Internet Environments,” Infocom2005.
【発明の概要】
【発明が解決しようとする課題】
【００１５】
しかしながら、不安定な無線リンクにおける切断耐性を高める場合、無線端末のアプリケーションレイヤ部とアプリケーションサーバのアプリケーションレイヤ部とにおける、タイムアウトが問題となる。一般に、アプリケーションレイヤ部は、所定時間以上、データパケットを受信しなかった場合又は送信できなかった場合、セッションが切断状態に移行したと判断する。アプリケーションレイヤ部が、一度、切断状態へ移行したと判断した場合、その後、ユーザ操作に基づくリンク確立シーケンスが更に必要とされる。
【００１６】
図３は、無線端末のアプリケーションによってリンク切断と判定されるまでのシーケンス図である。
【００１７】
（Ｓ３１）アプリケーションサーバ３は、プロキシサーバ２へ、無線端末１を宛先とするデータパケットを連続的に送信している。
（Ｓ３２）ここで、無線端末１とプロキシサーバ２との間の無線リンクは、接続状態にあると想定する。このとき、プロキシサーバ２は、アプリケーションサーバ３から受信したデータパケットを、プロキシ実行部を介して無線端末１へ転送するべく送信ソケットバッファ２２２へ書き込む。送信ソケットバッファ２２２へ書き込まれたデータパケットは、トランプポートプロトコル（例えばＴＣＰ(Transmission Control Protocol)）によって無線端末１へ送信される。
（Ｓ３３）無線端末１のトランスポートレイヤ部は、プロキシサーバ２から受信したデータパケットを受信ソケットバッファに蓄積し、アプリケーションレイヤ部が受信ソケットバッファからデータを読み込む。
（Ｓ３４）アプリケーションレイヤ部は、データパケットを読み込む毎に、セッションが接続状態にあることを認識し、リンク切断判定用のタイマをリセットする。
【００１８】
（Ｓ３５）その後、無線端末１とプロキシサーバ２との間の無線リンクが、切断状態になったとする。このとき、無線リンクが切断状態に移行した場合であっても、無線端末１のアプリケーションレイヤ部は、まだ読み込んでいないデータパケットが、トランスポートレイヤ部に蓄積されていれば読み込むことができる。アプリケーションレイヤ部は、読み込むデータが存在していること、つまりデータを読み込むことによって、セッションが接続状態にあることを認識している。
【００１９】
（Ｓ３６）無線端末１とプロキシサーバ２との間の無線リンクが切断状態にあっても、プロキシサーバ２とアプリケーションサーバ３との間のセッションは、接続状態に維持されている。従って、アプリケーションサーバ３は、今だ、プロキシサーバ２へ、無線端末１を宛先とするデータパケットを連続的に送信している。このとき、プロキシサーバ２は、データパケットを無線端末１へ送信することができないので、それらデータパケットは、送信待ちのために、送信ソケットバッファ２２２に蓄積されていく。
【００２０】
（Ｓ３７）その後、無線端末１のアプリケーションレイヤ部は、所定時間Ｔのタイマがタイムアウトしたとする。このとき、アプリケーションレイヤ部１１２は、セッションが切断状態へ移行したことを認識する。例えば、発明者らの実験によれば、WindowsXP（登録商標）に標準搭載されたＦＴＰ(File Transfer Protocol)クライアントソフトウェアによれば、最後にデータパケットを受信し又は送達確認を送信してから、６０秒後にタイムアウトが発生し、セッションが切断された。
【００２１】
（Ｓ３８）一方で、プロキシサーバ２は、データパケットを無線端末１へ送信することができないので、送信ソケットバッファが満杯になる。また、プロキシ実行部は送信ソケットバッファへデータを書き込むことができないため、受信ソケットバッファからデータを読み込むことができなくなり、受信ソケットバッファも満杯になる。このとき、第１のセッションに、ＴＣＰなどのウィンドウを用いて輻輳制御を行うプロトコルを利用している場合、プロキシサーバ２は、アプリケーションサーバ３からデータパケットを受信した際に、受信ソケットバッファの空き容量が不足していることを意味する「Zero Window Ack」を返信する。
【００２２】
（Ｓ３９）その後、アプリケーションサーバ３は、プロキシサーバ２へデータパケットを送信できないために、自ら保持するトランスポートレイヤ部における送信ソケットバッファが満杯になる。そして、データパケットを送信できなくなった際に、タイマをスタートし、所定時間経過後のタイムアウトによって、セッションの切断状態を認識する。例えば、発明者らの実験によれば、特定のＦＴＰサーバソフトウェアによれば、デフォルトのタイムアウト値が１２０秒に設定されている。従って、アプリケーションサーバ３が、データパケットを送信できなくなってから、１２０秒後にタイムアウトが発生し、セッションが切断される。
【００２３】
前述したように、アプリケーションレイヤ部が、一度、切断状態へ移行したと判断した場合、その後、ユーザ操作に基づくリンク確立シーケンスが更に必要とされる。
【００２４】
尚、非特許文献３に記載された技術のように、無線端末内にアプリケーションレベルゲートウェイを設置することによって、アプリケーションレベルにおける制御メッセージを用いて、切断状態のタイムアウトを回避することもできる。このような制御メッセージは、送信元及び受信先のアプリーションプログラムによって自由に作成及び改変することができる。しかしながら、送信元及び受信先のアプリケーションプログラム毎に、このような機能を全て設定しなければならず、現実的に難しい。また、相手方通信装置のアプリケーションプログラムが非対応である場合、結局、切断状態のタイムアウトは、所定時間経過後に発生する。
【００２５】
そこで、本発明は、不安定な無線リンクを介してデータパケットを受信する場合であっても、専用のアプリケーションレイヤ部を備えることなく、切断状態への移行を意味するタイムアウトをできる限り回避することができる無線端末、プロキシサーバ及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００２６】
本発明によれば、
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対するトランスポートレイヤ手段及びアプリケーションレイヤ手段を有するノード通信手段と
を有する無線端末において、
無線通信インタフェースによって受信されたデータパケットに対して、ノードプロキシとして機能するノードプロキシ通信手段と、
ノードプロキシ通信手段と、ノード通信手段との間を接続する仮想通信インタフェース手段とを更に有し、
ノードプロキシ通信手段は、
無線通信インタフェースによって受信されたデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の受信ソケットバッファから出力されたデータパケットを一時的に蓄積するノードプロキシバッファと、
ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
無線通信インタフェースが「接続状態」である場合、蓄積されたデータパケットの所定キュー長が保持されるように、ノードプロキシバッファにおけるデータパケットの入力及び出力を制御し、無線通信インタフェースが「切断状態」である場合、所定時間だけ遅延させて、ノードプロキシバッファからデータパケットを出力するように制御するバッファ制御手段と
を有することを特徴とする。
【００２７】
本発明によれば、
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対する受信ソケットバッファを有するトランスポートレイヤ手段と、
受信ソケットバッファからデータパケットを受け取るアプリケーションレイヤ手段と
を有する無線端末において、
トランスポートレイヤ手段の受信ソケットバッファから出力されたデータパケットを一時的に蓄積し、アプリケーションレイヤ手段へ出力するノードプロキシバッファと、
無線通信インタフェースが「接続状態」である場合、蓄積されたデータパケットの所定キュー長が保持されるように、ノードプロキシバッファにおけるデータパケットの入力及び出力を制御し、無線通信インタフェースが「切断状態」である場合、所定時間だけ遅延させて、ノードプロキシバッファからデータパケットを出力するように制御するバッファ制御手段と
を有することを特徴とする。
【００２８】
本発明の無線端末における他の実施形態によれば、バッファ制御手段は、
ノードプロキシバッファに蓄積可能な最大キューイング時間を予め規定しており、
「接続状態」にある場合、当該ノードプロキシバッファに蓄積されているデータパケットが所定キュー長以下になったとしても、最大キューイング時間に達したデータパケットを出力するように制御する
ことも好ましい。
【００２９】
本発明の無線端末における他の実施形態によれば、無線インタフェースは、遅延や切断の発生する通信環境の無線リンクに接続されており、
トランスポートレイヤ手段は、ＴＣＰ(Transmission Control Protocol)、ＳＣＴＰ(Stream Control Transport Protocol)又はＤＣＣＰ(Datagram Congestion Control Protocol)を実装していることも好ましい。
【００３０】
本発明によれば、前述の無線端末と、該無線端末へデータパケットを送信する通信装置との間に介在するプロキシサーバであって、
通信装置から受信したデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の受信ソケットバッファから出力されたデータパケットを一時的に蓄積可能なノードプロキシバッファと、
ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の受信ソケットバッファとノード側トランスポートレイヤ手段の送信ソケットバッファとが満杯になるまで、ノードプロキシバッファにデータパケットを蓄積せず、受信ソケットバッファ及び送信ソケットバッファが満杯になった際に、ノードプロキシバッファへ受信ソケットバッファに蓄積されたデータパケットを所定時間間隔で出力し且つ蓄積するように制御するバッファ制御手段と
を有することを特徴とする。
【００３１】
本発明によれば、前述の無線端末へ、データパケットを送信する通信装置であって、
無線端末へ送信すべきデータパケットを出力するアプリケーションレイヤ手段と、
アプリケーションレイヤ手段から出力されたデータパケットを一時的に蓄積可能なノードプロキシバッファと、
ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するトランスポートレイヤ手段と、
トランスポートレイヤ手段の送信ソケットバッファが満杯になるまで、ノードプロキシバッファにデータパケットを蓄積せず、送信ソケットバッファが満杯になった際に、ノードプロキシバッファへ受信ソケットバッファに蓄積されたデータパケットを所定時間間隔で出力し且つ蓄積するように制御するバッファ制御手段と
を有することを特徴とする。
【００３２】
本発明によれば、
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対するトランスポートレイヤ手段及びアプリケーションレイヤ手段を有するノード通信手段と
を有する無線端末に搭載されたコンピュータを機能させるプログラムにおいて、
無線通信インタフェースによって受信されたデータパケットに対して、ノードプロキシとして機能するノードプロキシ通信手段と、
ノードプロキシ通信手段と、ノード通信手段との間を接続する仮想通信インタフェース手段とを更に有し、
ノードプロキシ通信手段は、
無線通信インタフェースによって受信されたデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の受信ソケットバッファから出力されたデータパケットを一時的に蓄積するノードプロキシバッファと、
ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
無線通信インタフェースが「接続状態」である場合、蓄積されたデータパケットの所定キュー長が保持されるように、ノードプロキシバッファにおけるデータパケットの入力及び出力を制御し、無線通信インタフェースが「切断状態」である場合、所定時間だけ遅延させて、ノードプロキシバッファからデータパケットを出力するように制御するバッファ制御手段と
を有するようにコンピュータを機能させることを特徴とする。
【００３３】
本発明によれば、
無線リンクを介してデータパケットを受信する無線通信インタフェースと、
データパケットに対する受信ソケットバッファを有するトランスポートレイヤ手段と、
受信ソケットバッファからデータパケットを受け取るアプリケーションレイヤ手段と
を有する無線端末に搭載されたコンピュータを機能させるプログラムにおいて、
トランスポートレイヤ手段の受信ソケットバッファから出力されたデータパケットを一時的に蓄積し、アプリケーションレイヤ手段へ出力するノードプロキシバッファと、
無線通信インタフェースが「接続状態」である場合、蓄積されたデータパケットの所定キュー長が保持されるように、ノードプロキシバッファにおけるデータパケットの入力及び出力を制御し、無線通信インタフェースが「切断状態」である場合、所定時間だけ遅延させて、ノードプロキシバッファからデータパケットを出力するように制御するバッファ制御手段と
を有するようにコンピュータを機能させることを特徴とする。
【００３４】
本発明によれば、前述の無線端末と、該無線端末へデータパケットを送信する通信装置との間に介在するプロキシサーバに搭載されたコンピュータを機能させるプログラムであって、
通信装置から受信したデータパケットに対する受信ソケットバッファを有するサーバ側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の受信ソケットバッファから出力されたデータパケットを一時的に蓄積可能なノードプロキシバッファと、
ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するノード側トランスポートレイヤ手段と、
サーバ側トランスポートレイヤ手段の受信ソケットバッファとノード側トランスポートレイヤ手段の送信ソケットバッファとが満杯になるまで、ノードプロキシバッファにデータパケットを蓄積せず、受信ソケットバッファ及び送信ソケットバッファが満杯になった際に、ノードプロキシバッファへ受信ソケットバッファに蓄積されたデータパケットを所定時間間隔で出力し且つ蓄積するように制御するバッファ制御手段と
を有するようにコンピュータを機能させることを特徴とする。
【００３５】
本発明によれば、前述の無線端末へ、データパケットを送信する通信装置に搭載されたコンピュータを機能させるプログラムであって、
無線端末へ送信すべきデータパケットを出力するアプリケーションレイヤ手段と、
アプリケーションレイヤ手段から出力されたデータパケットを一時的に蓄積可能なノードプロキシバッファと、
ノードプロキシバッファから出力されたデータパケットに対する送信ソケットバッファを有するトランスポートレイヤ手段と、
トランスポートレイヤ手段の送信ソケットバッファが満杯になるまで、ノードプロキシバッファにデータパケットを蓄積せず、送信ソケットバッファが満杯になった際に、ノードプロキシバッファへ受信ソケットバッファに蓄積されたデータパケットを所定時間間隔で出力し且つ蓄積するように制御するバッファ制御手段と
を有するようにコンピュータを機能させることを特徴とする。
【発明の効果】
【００３６】
本発明の無線端末、プロキシサーバ及びプログラムによれば、不安定な無線リンクを介してデータパケットを受信する場合であっても、専用のアプリケーションレイヤ部を備えることなく、切断状態への移行を意味するタイムアウトをできる限り回避することができる。
【図面の簡単な説明】
【００３７】
【図１】無線端末とアプリケーションサーバとの間にプロキシサーバを介在させたシステム構成図である。
【図２】無線端末、プロキシサーバ及びアプリケーションサーバの機能構成図である。
【図３】無線端末のアプリケーションによってリンク切断と判定されるまでのシーケンス図である。
【図４】本発明における無線端末の機能構成図である。
【図５】本発明におけるシーケンス図である。
【図６】プロキシサーバが介在しない場合における、本発明の無線端末の基本的な機能構成図である。
【発明を実施するための形態】
【００３８】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【００３９】
図４は、本発明における無線端末の機能構成図である。尚、図４には、アプリケーションサーバから無線端末への下り方向の通信に必要な機能のみが表されている。
【００４０】
図４によれば、無線端末１は、無線通信インタフェース１０１と、ＩＰレイヤ部１０２と、仮想通信インタフェース１０３と、トランスポートレイヤ部１１１と、アプリケーションレイヤ部１１２と、ノードプロキシ通信部１２とを有する。無線通信インタフェース以外のこれら機能構成部は、無線端末に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。
【００４１】
無線通信インタフェース１０１は、無線リンクを介してデータパケットを受信する。本発明によれば、無線インタフェース１０１は、遅延や切断の発生する通信環境の無線リンクに接続されていると想定する。
【００４２】
ＩＰレイヤ部１０２は、ノードプロキシ通信部１２と無線通信インタフェース１０１との間で、データパケットに対するＩＰ(Internet Protocol)処理を実行する。ＩＰレイヤ部１０２は、プロキシサーバ２のＩＰレイヤ部との間で、ＩＰパケットの送受信を実行する。
【００４３】
仮想通信インタフェース部１０３は、ノードプロキシ通信部１２とトランスポートレイヤ部１１１との間を、仮想的な通信インタフェースによって接続する。
【００４４】
トランスポートレイヤ部１１１は、受信ソケットバッファを有し、トランスポートプロトコル処理を実行する。
【００４５】
アプリケーションレイヤ部１１２は、例えばＦＴＰクライアントソフトウェアのようなものであって、データパケットを受信する。
【００４６】
ノードプロキシ通信部１２は、無線端末内部に搭載されたプロキシ機構である。無線通信インタフェースによって受信されたデータパケットに対して、ノードプロキシとして機能する。また、ノードプロキシ通信部１２は、トランスポートレイヤ部１１１との間で、仮想通信インタフェース部１０３を介して接続される。
【００４７】
本発明によれば、ノードプロキシ通信部１２が介在することによって、以下の３つのセッションに区分される。
（１）アプリケーションサーバ３−プロキシサーバ２間の第１のセッション
（２）プロキシサーバ２−無線端末１のノードプロキシ通信部１２間の第２１のセッション
（３）無線端末１内におけるノードプロキシ通信部１２−アプリケーションレイヤ部１１２間の第２２のセッション
【００４８】
不安定な通信品質の通信リンクを介した第２１のセッションが切断状態になったとしても、仮想通信インタフェース部１０３に変更はないため、第２２のセッションの接続状態は維持されている。これにより、無線端末１−プロキシサーバ２間の無線リンクが切断された場合であっても、無線端末１のアプリケーションレイヤ部１１２から見た影響を、隠蔽することができる。
【００４９】
ノードプロキシ通信部１２は、サーバ側トランスポートレイヤ部１２１と、ノード側トランスポートレイヤ部１２２と、プロキシ実行部１２３とを有する。
【００５０】
サーバ側トランスポートレイヤ部１２１は、ＩＰレイヤ部１０２によって受信されたデータパケットに対する受信ソケットバッファを有する。尚、無線通信インタフェース１０１によって受信されたデータパケットは、ＩＰレイヤ部１０２を介して、カーネルによって自動的に受信ソケットバッファに入力される。
【００５１】
ノード側トランスポートレイヤ部１２２は、プロキシ実行部１２３から出力されたデータパケットに対する送信ソケットバッファを有する。尚、送信ソケットバッファに書き込まれたデータパケットは、カーネルによって自動的に仮想通信インタフェース１０３へ出力される。
【００５２】
サーバ側トランスポートレイヤ部１２１及び／又はノード側トランスポートレイヤ部１２２は、既存のＴＣＰ(Transmission Control Protocol)、ＳＣＴＰ(Stream Control Transport Protocol)又はＤＣＣＰ(Datagram Congestion Control Protocol)を実装する。また、サーバ側トランスポートレイヤ部１２１とノード側トランスポートレイヤ部１２２とが実装するトランスポートプロトコルは、異なっていてもよい。
【００５３】
プロキシ実行部１２３は、ノードプロキシバッファ及びバッファ制御部を有する。ノードプロキシバッファは、サーバ側トランスポートレイヤ部１２１の受信ソケットバッファから読み込んだデータパケットを、ノード側トランスポートレイヤ部１２２の送信ソケットバッファへ書き込む前に、一時的に蓄積できる。
【００５４】
プロキシ実行部１２３のバッファ制御部は、無線通信インタフェースの「接続状態／切断状態」を受け取る。「接続状態／切断状態」は、通信品質（ＲＳＳＩ、ＳＩＮＲ、パケットロス率等）によって検出されるものであってもよいし、ＯＳによって明示的に示される情報を得てもよい。
【００５５】
無線通信インタフェースが「接続状態」である場合、バッファ制御部は、ノードプロキシバッファに蓄積されたデータパケットの所定キュー長が保持されるように、ノードプロキシバッファにおけるデータパケットの入力及び出力を制御する。
【００５６】
一方で、無線通信インタフェースが「切断状態」である場合、バッファ制御部は、所定時間だけ遅延させて、ノードプロキシバッファからデータパケットを出力するように制御する。
【００５７】
無線通信インタフェースが「切断状態」から「接続状態」へ移行した際に、バッファ制御部は、受信ソケットバッファのキュー長が所定の長さ以下になるように、蓄積されたデータパケットを、ノードプロキシバッファへ一気に出力するように制御することも好ましい。これによって、利用可能な受信ソケットバッファの空き容量が、所定量以上に増加するために、例えばＴＣＰ等ではWindowUpdateメッセージが、プロキシサーバ２へ自動的に送信される。WindowUpdateメッセージを受信したプロキシサーバ２は、再送タイマをリセットし、速やかにデータパケットを再送信する。これによって、既存のＴＣＰレイヤに新たな改変を必要とすることなく、切断状態から接続状態へ移行した際に、データパケットの再送信を速やかに再開することができる。
【００５８】
ここで、WindowUpdateメッセージの送信を考慮すると、バッファ制御部は、「切断状態」時には、受信ソケットバッファのキュー長が、所定キュー長を下回らない範囲で、受信ソケットバッファからノードプロキシバッファへデータパケットを読み込む。これによって、切断中のノードブロキシバッファにより多くのデータを蓄積可能になると共に、切断状態で、WindowUpdateメッセージが、プロキシサーバ２へ自動的に送信されることを防ぐことができる。
【００５９】
また、ノードプロキシバッファに蓄積可能な最大キューイング時間を予め規定しておくことも好ましい。ここで、「切断状態」時の最大キューイング時間は、「接続状態」時の最大キューイング時間よりも長く設定する。「接続状態」にある場合、当該ノードプロキシバッファに蓄積されているデータパケットが所定キュー長以下になったとしても、最大キューイング時間に達したデータパケットを出力するように制御する。ノードプロキシバッファに、長時間、バッファされていることを回避するためである。尚、最大キューイング時間は、アプリケーション種別に応じて設定することが好ましい。
【００６０】
また、図４のプロキシサーバ２は、図２と同様の機能構成を有する。プロキシ通信部２２は、サーバ側トランスポートレイヤ部２２１と、ノード側トランスポートレイヤ部２２２と、プロキシ実行部２２３とを有する。サーバ側トランスポートレイヤ部２２１は、アプリケーションサーバ３から受信したデータパケットに対する受信ソケットバッファを有する。ノード側トランスポートレイヤ部２２２は、プロキシ実行部２２３から出力されたデータパケットに対する送信ソケットバッファを有する。
【００６１】
本発明によれば、プロキシ実行部２２３に特徴がある。プロキシ実行部２２３は、ノードプロキシバッファと、バッファ制御部とを有する。ノードプロキシバッファは、サーバ側トランスポートレイヤ部２２１の受信ソケットバッファから出力されたデータパケットをノード側トランスポートレイヤ部２２２へ出力する前に、一時的に蓄積できる。
【００６２】
バッファ制御部は、サーバ側トランスポートレイヤ部２２１の受信ソケットバッファとノード側トランスポートレイヤ部２２２の送信ソケットバッファとが満杯になるまで、当該ノードプロキシバッファにデータパケットを蓄積しない。そして、受信ソケットバッファ及び送信ソケットバッファが満杯になった際に、ノードプロキシバッファへ、受信ソケットバッファに蓄積されたデータパケットを所定時間間隔で読み込み且つ蓄積するように制御する。無線リンクが切断状態にある場合、送信ソケットバッファが満杯になった後、アプリケーションサーバ３からのデータパケットを受信し続けることによって、受信ソケットバッファも満杯となる。
【００６３】
その後、ノードプロキシバッファに対して、所定時間間隔で、データパケットが少しずつ蓄積される。このとき、受信ソケットバッファに空きが生じる毎に、アプリケーションサーバ３からのデータパケットを受け付けることができる。受信ソケットバッファが満杯になった際に、プロキシサーバ２からアプリケーションサーバ３へ送信される、受信側ウィンドウサイズがゼロである「Zero Window Ack」をサーバ３が受信すると、サーバ３は新たなデータ送信を控える。しかし、所定時間間隔のタイミングでは、ノードプロキシバッファに書きこまれたデータパケット分だけ一時的に受信ソケットバッファに空きが生じるので、この際のAckは受信側ウィンドウサイズがゼロではない。よって、アプリケーションサーバ３の送信ソケットバッファ３１１が満杯でアプリケーションでタイマが起動していても、上記タイミングで送信ソケットバッファ３１１に空きができるので、アプリケーションレイヤ部３１２は新たにデータを送信ソケットバッファ３１１に書き込むことができ、前記タイマはリセットされ得る。
【００６４】
図５は、本発明におけるシーケンス図である。
【００６５】
（Ｓ５０１）アプリケーションサーバ３は、プロキシサーバ２へ、無線端末１を宛先とするデータパケットを連続的に送信する。
【００６６】
（Ｓ５０２）無線端末１とプロキシサーバ２との間の無線リンクが「接続状態」にある場合、プロキシサーバ２は、アプリケーションサーバ３から受信したデータパケットをプロキシバッファを経由させ（又は蓄積せず）、無線端末１へ転送する。
【００６７】
（Ｓ５０３）無線端末１は、サーバ側トランスポートレイヤ部を介して、プロキシサーバ２から受信したデータパケットをノードプロキシバッファに蓄積する。ここで、ノードプロキシバッファは、蓄積されたデータパケットの所定キュー長（バッファサイズ）が保持されるように、データパケットの入力及び出力が制御される。
【００６８】
（Ｓ５０４）ノードプロキシバッファから出力されたデータパケットは、ノード側トランスポートレイヤ部、仮想通信インタフェース部及びトランスポートレイヤ部を介して、アプリケーションレイヤ部に入力される。このとき、アプリケーションレイヤ部は、データパケットを受信する毎に、セッションが接続状態にあることを認識し、リンク切断判定用のタイマをリセットする。
【００６９】
（Ｓ５０５）その後、無線端末１とプロキシサーバ２との間の無線リンクが、切断状態へ移行したとする。
【００７０】
（Ｓ５０６）無線リンクが切断状態に移行した場合であっても、無線端末１は、ノードプロキシバッファに蓄積済みのデータパケットを、ノード側トランスポートレイヤ部へ出力する。アプリケーションレイヤ部１１２は、データパケットを受信することによって、セッションが接続状態にあることを認識する。このとき、本発明によれば、無線通信インタフェースが「切断状態」である場合、所定時間だけ遅延させて、ノードプロキシバッファからデータパケットを出力するように制御する。これによって、アプリケーションレイヤ部１１２によってセッションが接続状態にあると認識できる時間を長く確保し、所定時間Ｔのタイマが、できる限りタイムアウトしないようにする。
【００７１】
（Ｓ５０７）無線端末１とプロキシサーバ２との間の無線リンクが切断状態にあっても、プロキシサーバ２とアプリケーションサーバ３との間のセッションは、接続状態に維持されている。従って、アプリケーションサーバ３は、今だ、プロキシサーバ２へ、無線端末１を宛先とするデータパケットを連続的に送信している。
【００７２】
このとき、プロキシサーバ２は、データパケットを無線端末１へ送信することができない。即ち、送信しても送達確認を受領できないので、送信完了できない。そのために、最初に、プロキシサーバ２におけるノード側トランスポートレイヤ部の送信ソケットバッファに、データパケットが蓄積されていく。
【００７３】
（Ｓ５０８）ノード側トランスポートレイヤ部の送信ソケットバッファが満杯になると、次に、サーバ側トランスポートレイヤ部の受信ソケットバッファに、データパケットが蓄積されていく。
【００７４】
（Ｓ５０９）サーバ側トランスポートレイヤ部の受信ソケットバッファが満杯になると、最後に、ノードプロキシバッファに対して、所定時間間隔で、データパケットが少しずつ蓄積される。このとき、受信ソケットバッファに空きが生じる毎に、アプリケーションサーバ３からのデータパケットを受け付けることができる。アプリケーションサーバ３から少しずつでデータパケットを受信できる限り、プロキシサーバ２は、受信ソケットバッファの空き容量が不足していることを意味する「Zero Window Ack」を、アプリケーションサーバ３へ送信しない。
【００７５】
（Ｓ５１０）その後、無線リンクが、接続状態へ移行したとする。この場合、プロキシサーバ２から無線端末１へ、データパケットの送信が再開される。
【００７６】
図６は、プロキシサーバが介在しない場合における、本発明の無線端末の基本的な機能構成図である。
【００７７】
図６によれば、無線端末１は、無線通信インタフェース１０１と、ＩＰレイヤ部１０２と、受信ソケットバッファを有するトランスポートレイヤ部１２１と、ノードプロキシバッファを有するプロキシ実行部１２３と、アプリケーションレイヤ部１１２とを有する。無線通信インタフェース以外のこれら機能構成部は、無線端末に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。
【００７８】
プロキシ実行部１２３は、ノードプロキシバッファと、バッファ制御部とを有する。ノードプロキシバッファは、トランスポートレイヤ部３１１の受信ソケットバッファから出力されたデータパケットを一時的に蓄積し、アプリケーションレイヤ部１１２へ出力する。また、バッファ制御部は、無線通信インタフェースが「接続状態」である場合、蓄積されたデータパケットの所定キュー長が保持されるように、ノードプロキシバッファにおけるデータパケットの入力及び出力を制御する。無線通信インタフェースが「切断状態」である場合、所定時間だけ遅延させて、ノードプロキシバッファからデータパケットを出力するように制御する。
【００７９】
前述した実施形態によれば、アプリケーションサーバから無線端末への下り方向のトラフィックについて説明したが、勿論、無線端末からアプリケーションサーバへの上り方向のトラフィックに適用することもできる。
【００８０】
また、アプリケーションサーバ自体が、プロキシサーバを包含するものであってもよい。その場合、プロキシサーバを備える必要がない。
【００８１】
以上、詳細に説明したように、本発明の無線端末、プロキシサーバ及びプログラムによれば、不安定な無線リンクを介してデータパケットを受信する場合であっても、専用のアプリケーションレイヤ部を備えることなく、切断状態への移行を意味するタイムアウトをできる限り回避することができる。
【００８２】
本発明によれば、ＴＣＰのようなトランスポートレイヤは、既存のものであって、新たな機能を全く必要としない。即ち、トランスポートレイヤの上位レイヤに、ノードプロキシバッファ及びバッファ制御部を備えるだけでよい。アプリケーションレイヤとトランスポートレイヤとの間のデータバッファの受け渡しを制御するだけで、アプリケーションのタイムアウト発生を防止するとともに、無線リンクが切断状態から接続状態に回復した後、迅速なデータパケットの転送を再開することができる。
【００８３】
前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
【符号の説明】
【００８４】
１  無線端末
１０１  無線通信インタフェース
１０２  ＩＰレイヤ部
１０３  仮想通信インタフェース
１１１  受信ソケットバッファ
１１２  アプリケーションレイヤ部
１２  ノードプロキシ通信部
１２１  サーバ側トランスポートレイヤ部
１２２  ノード側トランスポートレイヤ部
１２３  プロキシ実行部
２  プロキシサーバ
２０１  通信インタフェース
２０２  ＩＰレイヤ部
２２  プロキシ通信部
２２１  サーバ側トランスポートレイヤ部
２２２  ノード側トランスポートレイヤ部
２２３  プロキシ実行部
３  アプリケーションサーバ
３０１  通信インタフェース
３０２  ＩＰレイヤ部
３１１  トランスポートレイヤ部
３１２  アプリケーションレイヤ部
【図１】
2011217198.tif 000003
【図２】
2011217198.tif 000004
【図３】
2011217198.tif 000005
【図４】
2011217198.tif 000006
【図５】
2011217198.tif 000007
【図６】
2011217198.tif 000008