(57)【要約】【課題】データ損失時における再送要求の遅延を低減すること。【解決手段】データを格納するための記憶領域を有する記憶部と、所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する受信部と、前記記憶部を用いて、前記受信部で受信されたデータの順序を修正する順序制御部と、前記受信部で受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する記憶サイズ制御部と、を備える、通信端末が提供される。【選択図】図１
2012191251.tif 000002
【特許請求の範囲】
【請求項１】
データを格納するための記憶領域を有する記憶部と、
所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する受信部と、
前記記憶部を用いて、前記受信部で受信されたデータの順序を修正する順序制御部と、
前記受信部で受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する記憶サイズ制御部と、
を備える、
通信端末。
【請求項２】
前記記憶サイズ制御部は、
各通信路を介して受信されたデータについて前記データの順序を示すシーケンス番号を監視し、通信路毎にシーケンス番号の最大値を検出する最大値検出部と、
通信路毎に検出されたシーケンス番号の最大値を通信路間で比較し、当該シーケンス番号の最大値の差に基づいて前記入れ替わり量を算出する入れ替わり量算出部と、
を含む、
請求項１に記載の通信端末。
【請求項３】
前記記憶サイズ制御部は、
前記通信路毎に検出されるシーケンス番号の最大値が更新された場合に、前記入れ替わり量に基づいて前記記憶領域のサイズを制御する制御処理部をさらに含む、
請求項２に記載の通信端末。
【請求項４】
前記記憶領域は、ＴＣＰコネクション毎に設けられており、
前記受信部は、複数のＴＣＰコネクションを確立し、ＴＣＰコネクション毎に複数の通信路を介してデータを受信する、
請求項２に記載の通信端末。
【請求項５】
前記順序制御部は、
次に上位層へ転送すべきデータを格納するためのデータ格納領域を前記記憶領域の先頭に設定し、当該記憶領域の先頭から順に順序に対応するデータ格納領域を設定し、前記受信部で受信されたデータを順序に対応するデータ格納領域に格納し、前記記憶領域の先頭から順に順序が揃った一又は複数のデータを上位層へ転送する、
請求項２に記載の通信端末。
【請求項６】
前記順序制御部は、
前記受信部で受信されたデータを格納するデータ格納領域がない場合、前記記憶領域に格納されたデータの中で順序の若いデータを上位層に転送し、データ格納領域の設定を更新した後、前記受信部で受信されたデータをデータ格納領域に格納する、
請求項５に記載の通信端末。
【請求項７】
所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する受信ステップと、
データを格納するための記憶領域を用いて、受信されたデータの順序を修正する順序制御ステップと、
受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する記憶サイズ制御ステップと、
を含む、
記憶サイズの制御方法。
【請求項８】
所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する受信機能と、
データを格納するための記憶領域を用いて、受信されたデータの順序を修正する順序制御機能と、
受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する記憶サイズ制御機能と、
をコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、通信端末、記憶サイズの制御方法、及びプログラムに関する。
【背景技術】
【０００２】
複数の通信路を同時に利用してスループットを向上させる技術が検討されている。しかし、通信路間で遅延が異なるため、受信時にデータパケットの順序が入れ替わってしまうことがある。その結果、到着が遅れているだけのデータパケットを対象として再送要求が発せられ、無駄なデータパケットの再送によりスループットが低下してしまう。下記の特許文献１には、このようなスループットの低下を抑制するために、受信バッファを利用してデータパケットの入れ替わりを修正する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−８０１３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記文献に記載の技術は、データパケットの全てにタイムスタンプを設定し、許容待ち時間を超えたデータパケットを上位層に転送するものである。そのため、全てのデータパケットについて到着時間や待ち時間を監視するという負荷の高い処理が発生してしまう。また、上記文献に記載の技術は、各通信路を介して受信した最新のデータパケットを用いて損失したデータパケットを判定している。そのため、ある通信路が不通になると、損失したデータパケットの判定が困難になってしまう。
【０００５】
本技術は、データ損失時における再送要求の遅延を低減することが可能な、新規かつ改良された通信端末、記憶サイズの制御方法、及びプログラムを提供することを意図している。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本技術のある観点によれば、データを格納するための記憶領域を有する記憶部と、所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する受信部と、前記記憶部を用いて、前記受信部で受信されたデータの順序を修正する順序制御部と、前記受信部で受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する記憶サイズ制御部と、を備える、通信端末が提供される。
【０００７】
また、前記記憶サイズ制御部は、各通信路を介して受信されたデータについて前記データの順序を示すシーケンス番号を監視し、通信路毎にシーケンス番号の最大値を検出する最大値検出部と、通信路毎に検出されたシーケンス番号の最大値を通信路間で比較し、当該シーケンス番号の最大値の差に基づいて前記入れ替わり量を算出する入れ替わり量算出部と、を含んでいてもよい。
【０００８】
また、前記記憶サイズ制御部は、前記通信路毎に検出されるシーケンス番号の最大値が更新された場合に、前記入れ替わり量に基づいて前記記憶領域のサイズを制御する制御処理部をさらに含んでいてもよい。
【０００９】
また、前記記憶領域は、ＴＣＰコネクション毎に設けられていてもよい。この場合、前記受信部は、複数のＴＣＰコネクションを確立し、ＴＣＰコネクション毎に複数の通信路を介してデータを受信する。
【００１０】
また、前記順序制御部は、次に上位層へ転送すべきデータを格納するためのデータ格納領域を前記記憶領域の先頭に設定し、当該記憶領域の先頭から順に順序に対応するデータ格納領域を設定し、前記受信部で受信されたデータを順序に対応するデータ格納領域に格納し、前記記憶領域の先頭から順に順序が揃った一又は複数のデータを上位層へ転送するように構成されていてもよい。
【００１１】
また、前記順序制御部は、前記受信部で受信されたデータを格納するデータ格納領域がない場合、前記記憶領域に格納されたデータの中で順序の若いデータを上位層に転送し、データ格納領域の設定を更新した後、前記受信部で受信されたデータをデータ格納領域に格納するように構成されていてもよい。
【００１２】
また、上記課題を解決するために、本技術の別の観点によれば、所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する受信ステップと、データを格納するための記憶領域を用いて、受信されたデータの順序を修正する順序制御ステップと、受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する記憶サイズ制御ステップと、を含む、記憶サイズの制御方法が提供される。
【００１３】
また、上記課題を解決するために、本技術の別の観点によれば、所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する受信機能と、データを格納するための記憶領域を用いて、受信されたデータの順序を修正する順序制御機能と、受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する記憶サイズ制御機能と、をコンピュータに実現させるためのプログラムが提供される。
【００１４】
また、上記課題を解決するために、本技術の別の観点によれば、上記のプログラムが記録された、コンピュータにより読み取り可能な記録媒体が提供される。
【発明の効果】
【００１５】
以上説明したように本技術によれば、データ損失時における再送要求の遅延を低減することが可能になる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態に係るデータ通信システムの構成を示した説明図である。
【図２】本実施形態に係るデータ通信端末の構成を示した説明図である。
【図３】順序制御を行わない場合に発生する再送制御の流れを示した説明図である。
【図４】データパケットの構造を示した説明図である。
【図５】本実施形態に係る順序制御について説明するための説明図である。
【図６】本実施形態に係る順序制御について説明するための説明図である。
【図７】本実施形態に係る順序制御について説明するための説明図である。
【図８】本実施形態に係る順序制御について説明するための説明図である。
【図９】本実施形態に係る順序制御について説明するための説明図である。
【図１０】本実施形態に係る順序制御について説明するための説明図である。
【図１１】本実施形態に係る順序制御について説明するための説明図である。
【図１２】本実施形態に係る順序制御について説明するための説明図である。
【図１３】本実施形態に係る順序制御について説明するための説明図である。
【図１４】本実施形態に係る順序制御について説明するための説明図である。
【図１５】本実施形態に係る順序制御について説明するための説明図である。
【図１６】本実施形態に係る順序制御について説明するための説明図である。
【図１７】本実施形態に係る順序制御について説明するための説明図である。
【発明を実施するための形態】
【００１７】
以下に添付図面を参照しながら、本技術に係る好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１８】
［説明の流れについて］
ここで、以下に記載する説明の流れについて簡単に述べる。
【００１９】
まず、図１を参照しながら、本実施形態に係るデータ通信システム１０のシステム構成例について説明する。次いで、図２を参照しながら、本実施形態に係るデータ通信端末１００の機能構成例について説明する。この中で、図３を参照しながら、順序制御を行わない場合に発生する再送制御の流れについて説明する。また、図４を参照しながら、データパケットの構造について説明する。さらに、図５〜図１４を参照しながら、本実施形態に係る順序制御について説明する。次いで、図１５〜図１７を参照しながら、本実施形態に係る順序制御の流れについて説明する。
【００２０】
最後に、同実施形態の技術的思想について纏め、当該技術的思想から得られる作用効果について簡単に説明する。
【００２１】
（説明項目）
１：はじめに
２：実施形態
２−１：データ通信システム１０の構成
２−２：データ通信端末１００の構成
２−３：順序制御部１０３の詳細な構成
２−４：順序制御の流れ
３：まとめ
【００２２】
＜１：はじめに＞
本実施形態は、複数の通信路を同時に使用してデータ通信を行うデータ通信端末、及びデータ通信システムに関する。また、本実施形態は、通信路間の遅延差に起因して生じる受信データパケットの順序崩れを修正する順序制御方法に関する。さらに、本実施形態は、何らかの理由でデータパケットが損失した場合に発せられる再送要求が遅延することを抑制する技術に関する。
【００２３】
近年、ＩＥＥＥ８０２．１１ａ／ｂ／ｇ／ｎなどの無線ＬＡＮ方式、或いは、ＵＭＴＳやＷｉＭＡＸなどの携帯電話方式など、様々な無線アクセス方式が実用化されている。無線ＬＡＮインターフェースを内蔵したデータ通信端末は、ＡＤＳＬ、ＦＴＴＨ、ＣＡＴＶなどのブロードバンド回線（以下、ＢＢ回線）に接続された無線ＬＡＮアクセスポイントを介してインターネットに接続することができる。また、携帯電話端末は、ＢＢ回線に接続された携帯電話方式の屋内用小型基地局（以下、フェムトセル）を介してインターネットに接続できる。
【００２４】
また、最近では、複数の無線通信インターフェースを搭載したデータ通信端末が普及してきている。例えば、無線ＬＡＮ方式の無線通信インターフェースと携帯電話方式の無線通信インターフェースとを搭載したデータ通信端末が実用化されている。このようなデータ通信端末を利用すると、ユーザは、フェムトセル及び無線ＬＡＮアクセスポイントを両方使用可能なエリアにおいて、用途に応じて複数の無線アクセス方式を使い分けることが可能になる。
【００２５】
但し、無線アクセス方式における伝送レートは、ＢＢ回線のような有線アクセス方式における伝送レートに比べて１／１０程度である。そのため、フェムトセルや無線ＬＡＮアクセスポイントを介してＢＢ回線に接続した場合、そのスループットは、フェムトセルや無線ＬＡＮアクセスポイントが実現可能なスループットで制限されてしまう。こうした理由から、複数の無線アクセス方式を利用可能な場合に、複数の無線アクセス方式を同時に用いてスループットの向上を図ることが望まれている。
【００２６】
例えば、データ通信端末が、データ通信端末が無線ＬＡＮ方式の無線通信インターフェースと携帯電話方式の無線通信インターフェースとを搭載しており、かつ、フェムトセル及び無線ＬＡＮアクセスポイントに接続可能なエリア内にいる場合について考える。例えば、フェムトセルに接続される第１の無線通信路を経由してデータ通信を行っている際に、無線ＬＡＮアクセスポイントに接続される第２の無線通信路を追加する方法について考える。この方法では、送受信されるデータパケットが２つの第１の無線通信路と第２の無線通信路とに分配されるため、スループットの向上が期待される。
【００２７】
但し、第１の無線通信路と第２の無線通信路との間で遅延が異なる場合、送信側でデータパケットを各無線通信路に均等に分配しても、受信側に到達した段階でデータパケットの順序が入れ替わってしまうことがある。ＴＣＰのプロトコルにおいては、例えば、図４に示すように各データパケットに順序を示すシーケンス番号が付与されている。そのため、受信側ではこのシーケンス番号に基づいて順序制御を行うことが可能である。
【００２８】
しかし、ＴＣＰのプロトコルには、本来先に到達すべきデータパケットよりも大きなシーケンス番号を持つデータパケットを受信する度に、欠落したデータパケットに対する再送要求を含んだ重複ＡＣＫを返す仕組みが設けられている。送信側で所定数の重複ＡＣＫを受け取ると、欠落したデータパケットが再送されると共に輻輳制御が行われる。この輻輳制御により、送信ウィンドウが縮小され、送信レートが下げられる。
【００２９】
ＴＣＰのプロトコルに従う場合、無線通信路間の遅延差に起因してデータパケットの順序が入れ替わると、遅延により到着が遅れていたデータパケットを対象に上述した再送制御が行われてしまう。その結果、データパケットの無駄な再送が行われるだけでなく、輻輳制御により送信レートが下げられ、スループットが低下してしまう。このような再送制御が行われないようにする方法として、受信側でデータパケットの順序を制御する方法が考えられる。例えば、受信側に受信バッファを用意し、所定量のデータパケットを溜め込み、順序を修正した後でＴＣＰ層にデータパケット転送するという方法が考えられる。
【００３０】
しかし、データパケットを損失した場合、受信バッファにデータパケットを溜め込んでいる時間だけ再送要求を発するタイミングが遅延してしまう。特に、受信バッファのサイズが大きい場合、この遅延は大きくなる。以上説明したような理由から、複数の無線通信路を同時に使用してスループットの向上を目指す場合、無線通信路間の遅延差に起因して生じるデータパケットの順序崩れを修正すること、及び欠落したデータパケットの再送要求が遅延するのを抑制することが求められる。なお、これまで無線通信路を対象に説明を進めてきたが、複数の有線通信路を同時に使用する場合も同様である。
【００３１】
＜２：実施形態＞
以下、本技術の一実施形態について説明する。本実施形態は、複数の通信路を同時に使用してスループットの向上を図ると共に、通信路間の遅延差に起因して生じるデータパケットの順序崩れを修正し、かつ、欠落したデータパケットの再送要求が遅延するのを抑制する技術に関する。
【００３２】
［２−１：データ通信システム１０の構成］
まず、図１を参照しながら、本実施形態に係るデータ通信システム１０の構成について説明する。図１は、本実施形態に係るデータ通信システム１０の構成について説明するための説明図である。但し、図１に示した構成は一例であり、例えば、通信路の数や各通信路で用いるアクセス方式などは実施の態様に応じて適宜変形することが可能である。なお、説明の都合上、以下では無線ＬＡＮ方式の通信路と携帯電話方式の通信路とを併用するケースを例に挙げて説明を進める。
【００３３】
図１に示すように、データ通信システム１０は、例えば、アプリケーションサーバ１１と、ネットワーク１２と、ブロードバンドモデム１３と、ルータ１４と、フェムトセル１５と、無線ＬＡＮアクセスポイント１６と、データ通信端末１００とを含む。また、ルータ１４は、分配／合成器１４１を有する。さらに、データ通信端末１００は、携帯電話無線インターフェース１０１と、無線ＬＡＮインターフェース１０２と、順序制御部１０３と、分配／合成器１０４とを有する。
【００３４】
フェムトセル１５は、例えば、３ＧＰＰで標準化されたＵＭＴＳなどの携帯電話無線方式に対応した屋内用小型基地局である。そのため、フェムトセル１５は、ＵＭＴＳ方式の携帯電話用インターフェース（携帯電話無線インターフェース１０１）と接続できる。一方、無線ＬＡＮアクセスポイント１６は、例えばＩＥＥＥ８０２．１１ａ／ｂ／ｇ／ｎなどの無線ＬＡＮ方式に対応したアクセスポイントである。そのため、無線ＬＡＮアクセスポイント１６は、無線ＬＡＮ方式の通信端末用インターフェース（無線ＬＡＮインターフェース１０２）と接続できる。
【００３５】
フェムトセル１５及び無線ＬＡＮアクセスポイント１６は、分配／合成器１４１を搭載したルータ１４と、ブロードバンドモデム１３と、ネットワーク１２を介してインターネットに接続している。
【００３６】
また、データ通信端末１００は、携帯電話無線インターフェース１０１、無線ＬＡＮインターフェース１０２、及び分配／合成器１０４を有する。そのため、データ通信端末１００は、例えば、ＵＭＴＳなどの携帯電話無線方式で携帯電話基地局を経由したデータ通信を行うことが可能である。さらに、データ通信端末１００は、例えば、ＩＥＥＥ８０２．１１ａ／ｂ／ｇ／ｎなどの無線ＬＡＮアクセスポイントを経由したデータ通信とを行うことが可能である。そして、データ通信端末１００は、フェムトセル１５を経由したデータ通信を行うことが可能である。
【００３７】
例えば、データ通信端末１００は、インターネット上のアプリケーションサーバ１１からデータパケットをダウンロードする場合、携帯電話無線インターフェース１０１とフェムトセル１５とを接続する。さらに、データ通信端末１００は、無線ＬＡＮインターフェース１０２と無線ＬＡＮアクセスポイント１６とを接続する。
【００３８】
アプリケーションサーバ１１からルータ１４に到達したデータパケットは、分配／合成器１４１により所定の分配比で２つのルートに分配される。一方のルートは、フェムトセル１５を経由して携帯電話無線インターフェース１０１に到達するルートである。もう一方のルートは、無線ＬＡＮアクセスポイント１６を経由して無線ＬＡＮインターフェース１０２に到達するルートである。２つのルートに分配されたデータパケットは、それぞれのルートを通じてデータ通信端末１００に送信される。
【００３９】
携帯電話無線インターフェース１０１で受信されたデータパケットと、無線ＬＡＮインターフェース１０２で受信されたデータパケットとは、順序制御部１０３に入力される。両方のデータパケットが入力されると、順序制御部１０３は、受信バッファを用いてデータパケットの順番を正しく並び替え、分配／合成器１０４に入力する。分配／合成器１０４は、入力されたデータパケットを合成する。分配／合成器１０４で合成されたデータパケットは、データ通信端末１００のアプリケーションで使用される。
【００４０】
なお、データ通信端末１００は、各ルートで受信したデータパケットの最新のシーケンス番号を分配／合成器１０４で記憶しており、各ルートに対応する最新のシーケンス番号に基づいて順序制御部１０３が用いる受信バッファのサイズを決定している。また、データ通信端末１００は、各ルートで到達したデータパケットの数を分配／合成器１０４で計測しており、その計測結果を定期的にルータ１４に報告する。
【００４１】
ルータ１４は、各ルートに対して予め設定されているデータパケットの分配比と、データ通信端末１００から報告されたデータパケットの数に基づく比率とを対比して、例えば分配の比率より到達の比率が少ないルートへのパケット配分を少なくする。このようなルータ１４による制御を行うことで、損失の少ないルートに、より多くのパケットを振り分けることが可能になり、分配比率が最適化される。
【００４２】
ここでは、携帯電話無線インターフェース１０１と無線ＬＡＮインターフェース１０２とを搭載したデータ通信端末１００を例示したが、他の無線通信インターフェースを搭載したデータ通信端末１００であってもよい。例えば、インターネット・プロトコル（ＩＰ）のデータパケットを扱える無線通信インターフェースであればよく、ＷｉＭＡＸやＢｌｕｅｔｏｏｔｈなど他の無線通信インターフェースを使用することも可能である。また、同じ無線アクセス方式の複数の無線通信インターフェースを使用することも可能である。
【００４３】
ここで、図３を参照しながら、アプリケーションサーバ１１から送信されたＴＣＰ／ＩＰのデータパケットがデータ通信端末１００に届くまでのシーケンス、及びデータ通信端末１００による応答のシーケンスについて説明する。但し、図３に示すシーケンスは、データパケットの順序制御を行わない場合に生じる再送制御の様子を示すものである。
【００４４】
図３に示すように、データパケット（Ｄａｔａ＃１〜Ｄａｔａ＃１０）は、アプリケーションサーバ１１から正しい順序で送信される。これらのデータパケットは、予めルータ１４に設定された分配比で無線ＬＡＮアクセスポイント１６及びフェムトセル１５に分配される。なお、無線ＬＡＮアクセスポイント１６からデータ通信端末１００に至る遅延よりもフェムトセル１５からデータ通信端末１００に至る遅延の方が大きいものとする。
【００４５】
そのため、Ｄａｔａ＃４のデータパケットがフェムトセル１５からデータ通信端末１００に届くよりも先に、Ｄａｔａ＃５からＤａｔａ＃１０のパケットが無線ＬＡＮアクセスポイント１６からデータ通信端末１００に届く。まず、Ｄａｔａ＃１からＤａｔａ＃３に対応するＡＣＫ（確認応答）として、ＡＣＫ＃１からＡＣＫ＃３が正しくアプリケーションサーバ１１に返却される。しかし、Ｄａｔａ＃４の到着が遅れているため、先に到着したＤａｔａ＃５からＤａｔａ＃１０に対応したＡＣＫとして、重複ＡＣＫ（ＤｕｐＡＣＫ＃３）がアプリケーションサーバ１１に返却される。
【００４６】
アプリケーションサーバ１１は、ＴＣＰのプロトコルに従い、重複ＡＣＫを３回受信したことを受けてＤａｔａ＃４が損失したと判断する。そして、アプリケーションサーバ１１は、同じデータを再送（Ｒｅｔｒａｎｓｍｉｓｓｉｏｎ＃４）する。さらに、アプリケーションサーバ１１は、輻輳状態と判断して送信ウィンドウを小さくし、送信レートを落とす処理を行う。このように、データパケットの順序を修正しないと、実際にはデータを損失していなくても無駄な再送データが送出されたり、送信ウィンドウが縮小されたりしてスループットが低下してしまう。そのため、データ通信端末１００は、所定量の受信データパケットを溜め込み、データパケットの順序を正しく整えてから受信パケットをＴＣＰ層に転送する順序制御を行う。
【００４７】
ところで、ＴＣＰのプロトコルでは、データパケットの送信を開始する前に、通信相手との間でコネクションを確立し、データ通信が終了したらコネクションを切断するという処理が行われる。図４に示すように、ＴＣＰヘッダには、データパケットの順番を判定するためのシーケンス番号が含まれている。まず、コネクション確立時に乱数で初期化された３２ビットの値がシーケンス番号に設定され、それ以降はデータパケットを送信する度に、送信したデータパケットのバイト数だけ加算した値がシーケンス番号に設定される。そのため、受信したデータパケットに含まれるＴＣＰヘッダ中のシーケンス番号及びデータオフセットと、ＩＰヘッダ中のヘッダ長及びパケット長とを調べることにより、次に受信が予定されているデータパケットのシーケンス番号を知ることができる。
【００４８】
このように、１つのコネクションの中でシーケンス番号の初期値が与えられ、１つのコネクションの中でデータパケットの順序が管理される。１つ１つのコネクションは、終点ＩＰアドレス、始点ＩＰアドレス、終点ポート番号、始点ポート番号、プロトコル番号（ＴＣＰ＝６）の組み合わせに基づいて識別することができる。なお、データ通信端末１００は、１つのコネクションについて１つの受信バッファを用意してもよいし、複数のコネクションで使用できるように複数の受信バッファを用意してもよい。つまり、コネクション毎に受信バッファを用意すれば、コネクション単位で順序制御を行うことができる。
【００４９】
以上、データ通信システム１０の構成について説明した。
【００５０】
［２−２：データ通信端末１００の構成］
次に、図２を参照しながら、本実施形態に係るデータ通信端末１００の構成について、より詳細に説明する。図２は、本実施形態に係るデータ通信端末１００の構成について、より詳細に説明するための説明図である。
【００５１】
図２に示すように、データ通信端末１００は、無線ＬＡＮインターフェース１０２と、携帯電話無線インターフェース１０１と、順序制御部１０３と、分配／合成器１０４と、表示部１１１と、操作部１１２と、記憶部１１３と、制御部１１４と、音声画像処理部１１５と、スピーカ１１６と、マイク１１７と、通信インターフェース１１８、１１９とにより構成される。順序制御部１０３、分配／合成器１０４、表示部１１１、操作部１１２、記憶部１１３、制御部１１４、音声画像処理部１１５は、バスで接続されている。また、記憶部１１３は、順序制御部１０３により受信バッファとして利用される。
【００５２】
表示部１１１は、画像を表示する表示手段である。操作部１１２は、ユーザがデータ通信端末１００を操作するための入力手段である。記憶部１１３は、データを記憶することが可能な記憶手段である。制御部１１４は、データ通信端末１００が有する各構成要素の動作を制御する手段である。音声画像処理部１１５は、表示部１１１に画像を表示させる表示制御手段である。また、音声画像処理部１１５は、スピーカ１１６に音声を出力したり、マイク１１７から入力された音声を処理する音声処理手段である。通信インターフェース１１８、１１９は、無線ＬＡＮ方式や携帯電話無線方式以外のアクセス方式に対応した通信インターフェースである。
【００５３】
以上、データ通信端末１００の構成について説明した。なお、本実施形態に係るデータパケットの順序制御方法は、主に順序制御部１０３の機能を利用して実現される。そこで、以下では順序制御部１０３の詳細な構成について説明する。
【００５４】
［２−３：順序制御部１０３の詳細な構成］
順序制御部１０３は、図５〜図１３に示した方法でデータパケットの順序制御を実行する。図５〜図１３は、順序制御部１０３の動作について説明するための説明図である。なお、本来のシーケンス番号はデータパケットのバイト数ずつ増加していくが、以下では、簡単のためにデータパケットの順番を示す数がシーケンス番号と一致していると仮定して説明を進める。また、受信バッファのサイズも本来は必要なデータパケットのバイト数で表現されるべきあるが、簡単のためにパケットの数で示している。さらに、以下の説明においては、無線ＬＡＮ方式に対応するルートを通信路＃１と表記し、携帯電話方式に対応するルートを通信路＃２と表記する。
【００５５】
まず、図５を参照する。図５に示すように、受信バッファのサイズは、８データパケット分に設定されているものとする。データパケットを受信すると、順序制御部１０３は、受信したデータパケットのシーケンス番号が受信バッファの先頭に格納されるべきデータパケットのシーケンス番号より小さいか否かを判断する。例えば、シーケンス番号１のデータパケットが受信されていない場合、受信バッファの先頭に格納すべきデータパケットは、シーケンス番号が２以降のデータパケットである。図５の例では、まず、シーケンス番号１のデータパケットが受信されている。そのため、シーケンス番号１のデータパケットは、受信バッファに格納されずに、そのまま上位層（ＴＣＰ層）に転送される。
【００５６】
シーケンス番号１のデータパケットが上位層に転送されると、受信バッファの先頭に格納されるべきデータパケットは、シーケンス番号が３以降のデータパケットになる。図５の例では、続いてシーケンス番号２のデータパケットが受信されている。そのため、シーケンス番号２のデータパケットは、受信バッファに格納されずに、そのまま上位層に転送される。同様に、シーケンス番号２のデータパケットが上位層に転送されると、受信バッファの先頭に格納されるべきデータパケットは、シーケンス番号が４以降のデータパケットになる。図５の例では、続いてシーケンス番号３のデータパケットが受信されている。そのため、シーケンス番号３のデータパケットは、受信バッファに格納されずに、そのまま上位層に転送される。
【００５７】
このように、順序制御部１０３は、受信したデータパケットのシーケンス番号が受信バッファの先頭に格納されるべきデータパケットのシーケンス番号より小さい場合に、受信したデータパケットをそのまま上位層に転送する。
【００５８】
次に、図６を参照する。図６の例は、既にシーケンス番号１〜３のデータパケットが上位層に転送された状態を示している。また、図６の例では、受信バッファにシーケンス番号５、６、７、９のデータパケットが格納されている。つまり、図６の例は、シーケンス番号１〜３を受信した後、シーケンス番号４のデータパケットが受信される前に、シーケンス番号５、６、７、９のデータパケットが受信された状態を示している。この状態で、通信路＃１を介してシーケンス番号１０のデータパケットが受信され、次いで、通信路＃２を介してシーケンス番号４のデータパケットが受信された場合について考える。
【００５９】
通信路＃１を介してデータパケットが受信されると、順序制御部１０３は、通信路＃１を介して受信されたデータパケットのうち、最新のデータパケットのシーケンス番号を示す最新シーケンス番号を更新する。この場合、通信路＃１の最新シーケンス番号は１０に更新される。同様に、通信路＃２を介してデータパケットが受信されると、順序制御部１０３は、通信路＃２を介して受信されたデータパケットのうち、最新のデータパケットのシーケンス番号を示す最新シーケンス番号を更新する。この場合、通信路＃２の最新シーケンス番号は４に更新される。
【００６０】
最新シーケンス番号を更新した場合、順序制御部１０３は、図７に示すように、更新後の最新シーケンス番号に基づいて受信バッファのサイズを変更する。なお、変更後の受信バッファサイズＢは、通信路＃１の最新シーケンス番号をＳ１、通信路＃２の最新シーケンス番号をＳ２と表現すると、下記の式（１）に基づいて算出される。図７の例ではＳ１＝１０及びＳ２＝４であるから、受信バッファサイズＢは７となる。最新シーケンス番号を更新した場合、順序制御部１０３は、下記の式（１）に基づいて受信バッファサイズＢを算出し、図７に示すように、算出結果に応じて受信バッファのサイズを変更する。
【００６１】
Ｂ  ＝  ｜Ｓ１−Ｓ２｜＋１
…（１）
【００６２】
受信バッファのサイズを変更した後、順序制御部１０３は、図８に示すように、受信したデータパケットを受信バッファに格納する。例えば、通信路＃１を介して受信されたシーケンス番号１０のデータパケットは、受信バッファの最後尾に格納される。一方、通信路＃２を介して受信されたシーケンス番号４のデータパケットは、受信バッファの先頭に格納される。図８に示すように、受信バッファには、未着のデータパケット分だけデータ格納領域が確保されている。図８の例では、シーケンス番号４、８のデータパケットが未着のため、シーケンス番号４、８のデータパケットに対応するデータ格納領域が格納されている。そのため、通信路＃２を介して受信されたシーケンス番号４のデータパケットは、シーケンス番号４に対応するデータ格納領域に格納される。
【００６３】
シーケンス番号４のデータパケットを受信バッファの先頭に格納すると、図９に示すように、受信バッファの先頭から順に順序が揃ったデータパケットの組（図９の例では、シーケンス番号４〜７のデータパケット）が得られる。先頭から順に順序が揃ったデータパケットの組が得られると、順序制御部１０３は、図９に示すように、順序が揃ったデータパケットの組を上位層に転送する。つまり、受信バッファの先頭から順に、シーケンス番号が連続する一又は複数のデータパケットが揃った場合に、そのデータパケットの組が上位層に転送される。順序が揃ったデータパケットを上位層に転送した後、順序制御部１０３は、図１０に示すように、受信バッファ内のデータ格納領域及びデータパケット（ウィンドウ）の位置を先頭に詰める。
【００６４】
ところで、図１１に示すように、一方の通信路（この例では通信路＃２）のデータパケットが損失した場合、他方の通信路（この例では通信路＃１）のデータパケットが受信バッファに格納しきれず、溢れてしまうことがある。この場合、順序制御部１０３は、受信バッファに格納されているデータパケットのうち、先頭に近い順に順序が揃っているデータパケットを上位層に転送する。そして、順序制御部１０３は、ウィンドウの位置を先頭に詰め、受信したデータパケットを受信バッファに格納する。図１１の例では、シーケンス番号４のデータパケットが未着の状態でシーケンス番号５〜７のデータパケットが上位層に転送されている。そのため、上位層は、図１２に示すように、シーケンス番号４のデータパケットに対する再送要求を行う。
【００６５】
また、図１３に示すように、受信バッファに既に格納されているデータパケットと同じデータパケットが受信されることもある。重複してデータパケットが受信された場合、順序制御部１０３は、図１３に示すように、受信したデータパケットを破棄する。
【００６６】
以上、順序制御部１０３の詳細な構成について説明した。
【００６７】
図６〜図１０に示した例では、通信路の遅延が異なることにより、通信路＃２のデータパケットが６個程度のパケット分だけ通信路＃１のデータパケットに追い越されている。しかし、上述した順序制御部１０３の機能を利用することで、パケット入れ替わり量を吸収可能な受信バッファを用いてデータパケットの順序を修正することが可能になる。また、図１１及び図１２に示した例のように、通信路＃２における何らかの不具合によってシーケンス番号４のデータパケットを損失した場合でも、通信路＃１を介して受信したデータパケットで受信バッファが溢れることにより、上位層にシーケンス番号５〜７のデータパケットが転送される。そして、上位層からシーケンス番号４のデータパケットに対する再送要求が送信される。
【００６８】
上記のように、受信バッファが溢れたタイミングで上位層から再送要求が送信される。しかし、受信バッファのサイズが十分に小さく抑えられているため、受信バッファが溢れるまでに要する時間が短くて済む。その結果、データパケットの損失が発生しても、欠損したデータパケットに対する再送要求が送信されるまでの遅延が抑制される。図１４は、通信路＃１及び＃２の最新シーケンス番号の更新に伴う受信バッファサイズの更新の様子を示したものである。点線は、通信路＃１及び＃２のシーケンス番号の差を示している。また、遅延の大きい方の最新シーケンス番号が更新されたときに受信バッファサイズが更新されるため、受信バッファのサイズは鎖線のようになる。上記のような構成にすることで、一方の通信路からデータパケットが届かなくなった場合にも、受信バッファのサイズが拡大してしまうことを防止できるようになる。
【００６９】
［２−４：順序制御の流れ］
次に、図１５〜図１７を参照しながら、本実施形態に係る順序制御の流れについて説明する。図１５〜図１７を参照しながら、本実施形態に係る順序制御の流れについて説明するための説明図である。
【００７０】
図１５に示すように、データパケットが受信され、順序制御が開始されると、データ通信端末１００は、ＩＰヘッダ及びＴＣＰヘッダをチェックする（Ｓ１０１）。次いで、データ通信端末１００は、受信したデータパケットが順序制御の対象か否かを判定する（Ｓ１０２）。受信したデータパケットが順序制御の対象である場合、データ通信端末１００は、処理をステップＳ１０４に進める。一方、受信したデータパケットが順序制御の対象でない場合、データ通信端末１００は、処理をステップＳ１０３に進める。
【００７１】
処理をステップＳ１０３に進めた場合、データ通信端末１００は、受信したデータパケットを上位層へ転送し（Ｓ１０３）、処理をステップＡへと進める。一方、処理をステップＳ１０４に進めた場合、データ通信端末１００は、通信路毎に最新シーケンス番号を更新する（Ｓ１０４）。次いで、データ通信端末１００は、受信バッファのサイズを更新するか否かを判定する（Ｓ１０５）。例えば、データ通信端末１００は、上記の式（１）に基づいて受信バッファのサイズを算出し、算出したサイズと現状のサイズと比較することで、サイズの更新が必要か否かを判定する。
【００７２】
受信バッファのサイズを更新すると判定した場合、データ通信端末１００は、処理をステップＳ１０６に進める。一方、受信バッファのサイズを更新しないと判定した場合、データ通信端末１００は、処理をステップＢへと進める。処理をステップＳ１０６に進めた場合、データ通信端末１００は、受信バッファのサイズを更新する（Ｓ１０６）。次いで、データ通信端末１００は、ウィンドウの位置を再設定する（Ｓ１０７）。次いで、データ通信端末１００は、受信したデータパケットにより受信バッファが溢れる場合に、受信バッファの前方に位置するデータパケットを上位層に転送し（Ｓ１０８）、処理をステップＢへと進める。
【００７３】
図１６に示すように、処理をステップＢへと進めた場合、データ通信端末１００は、受信したデータパケットのシーケンス番号を参照し、受信バッファ内のどの位置に格納されるかを判定する（Ｓ１０９）。受信したデータパケットがウィンドウより前に格納される場合、データ通信端末１００は、処理をステップＳ１１０に進める。また、受信したデータパケットがウィンドウより後に格納される場合、データ通信端末１００は、処理をステップＳ１１１に進める。さらに、受信したデータパケットがウィンドウの中に格納される場合、データ通信端末１００は、処理をステップＣへと進める。
【００７４】
処理をステップＳ１１０に進めた場合、データ通信端末１００は、受信したデータパケットを上位層へ転送し（Ｓ１１０）、受信したデータパケットに対する順序制御を終了する。処理をステップＳ１１１に進めた場合、データ通信端末１００は、ウィンドウの位置を再設定する（Ｓ１１１）。次いで、データ通信端末１００は、受信したデータパケットにより受信バッファが溢れる場合に、受信バッファの前方に位置するデータパケットを上位層に転送する（Ｓ１１２）。次いで、データ通信端末１００は、受信したデータパケットを受信バッファに格納し（Ｓ１１３）、受信したデータパケットに対する順序制御を終了する。また、処理をステップＡへと進めた場合、データ通信端末１００は、受信したデータパケットに対する順序制御を終了する。
【００７５】
図１７に示すように、処理をステップＣへと進めた場合、データ通信端末１００は、受信したデータパケットが、受信バッファに格納されているデータパケットと重複しているか否かを判定する（Ｓ１１４）。受信したデータパケットが受信バッファに格納されているデータパケットと重複している場合、データ通信端末１００は、処理をステップＳ１１５に進める。一方、受信したデータパケットが受信バッファに格納されているデータパケットと重複していない場合、データ通信端末１００は、処理をステップＳ１１６に進める。処理をステップＳ１１５に進めた場合、データ通信端末１００は、受信したデータパケットを破棄し（Ｓ１１５）、処理をステップＡへと進める。
【００７６】
処理をステップＳ１１６に進めた場合、データ通信端末１００は、受信したデータパケットを受信バッファに格納する（Ｓ１１６）。次いで、データ通信端末１００は、受信したデータパケットを受信バッファに格納したことにより、受信バッファの先頭から順にデータパケットの順序が揃った場合、順序の揃ったデータパケットを上位層に転送する（Ｓ１１７）。次いで、データ通信端末１００は、ウィンドウ位置を再設定し（Ｓ１１８）、処理をステップＡへと進める。
【００７７】
以上、本実施形態に係る順序制御の流れについて説明した。
【００７８】
上記のように、複数の無線アクセス方式に対応したデータ通信端末１００が、同時に複数の通信路を経由してデータ通信を行うことでスループットを向上することが可能になる。また、通信路間で遅延が異なる場合や各通信路の遅延が変動する場合にも、データ通信端末１００においてデータパケットの順序崩れを修正し、無駄な再送要求を防止し、輻輳制御によるスループット低下を防止することが可能になる。さらに、データパケットの順序制御に用いる受信バッファのサイズをパケット順序の入れ替わり量（上記の式（１）を参照）に応じたサイズとすることで、損失したパケットの再送要求が遅れることを防止することができる。また、この受信バッファのサイズは、通信路の遅延の変動に応じて適応的に制御される。そのため、一部の通信路が不通となっても損失したデータパケットに対する再送要求の発生が遅延することを防ぐことが可能になる。
【００７９】
＜３：まとめ＞
最後に、本実施形態の技術的思想について簡単に纏める。以下に記載する技術的思想は、例えば、ＰＣ、携帯電話、携帯ゲーム機、携帯情報端末、情報家電、カーナビゲーションシステム等、種々の情報処理装置（或いは通信端末）に対して適用することができる。
【００８０】
上記の情報処理装置の機能構成は次のように表現することができる。当該情報処理装置は、以下に示す記憶部と、受信部と、順序制御部と、記憶サイズ制御部とを有する。当該記憶部は、データを格納するための記憶領域を有する。また、上記の受信部は、所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する。さらに、上記の順序制御部は、前記記憶部を用いて、前記受信部で受信されたデータの順序を修正する。そして、上記の記憶サイズ制御部は、前記受信部で受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する。
【００８１】
複数の通信路を用いてデータ列を受信すると、通信路毎に遅延が異なるため、データの順序が入れ替わってしまう。そのため、上記の情報処理装置は、上位層が要求しているデータが受信されるまで記憶部にデータを格納しておくことでデータの順序を修正する。但し、記憶部にデータを格納する方法でデータの順序を修正すると、データの損失が発生した場合に、記憶部にデータを溜め込んでいる時間だけ再送要求が遅延してしまう。しかし、上記の情報処理装置は、記憶サイズ制御部の機能により記憶領域のサイズを動的に制御することで、データの損失が発生した場合に記憶部に溜め込まれるデータの量を抑え、再送要求の遅延を低減することができる。
【００８２】
（備考）
上記のデータ通信端末１００は、通信端末の一例である。上記の携帯電話無線インターフェース１０１、無線ＬＡＮインターフェース１０２、通信インターフェース１１８、１１９は、受信部の一例である。上記の順序制御部１０３は、順序制御部、記憶サイズ制御部、最大値検出部、入れ替わり量算出部、制御処理部の一例である。
【００８３】
以上、添付図面を参照しながら本技術に係る好適な実施形態について説明したが、本技術はここで開示した構成例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本技術の技術的範囲に属するものと了解される。
【符号の説明】
【００８４】
１０      データ通信システム
１１      アプリケーションサーバ
１２      ネットワーク
１３      ブロードバンドモデム
１４      ルータ
１４１    分配／合成器
１５      フェムトセル
１６      無線ＬＡＮアクセスポイント
１００    データ通信端末
１０１    携帯電話無線インターフェース
１０２    無線ＬＡＮインターフェース
１０３    順序制御部
１０４    分配／合成器
１１１    表示部
１１２    操作部
１１３    記憶部
１１４    制御部
１１５    音声画像処理部
１１６    スピーカ
１１７    マイク
１１８、１１９    通信インターフェース
【図１】
2012191251.tif 000003
【図２】
2012191251.tif 000004
【図３】
2012191251.tif 000005
【図４】
2012191251.tif 000006
【図５】
2012191251.tif 000007
【図６】
2012191251.tif 000008
【図７】
2012191251.tif 000009
【図８】
2012191251.tif 000010
【図９】
2012191251.tif 000011
【図１０】
2012191251.tif 000012
【図１１】
2012191251.tif 000013
【図１２】
2012191251.tif 000014
【図１３】
2012191251.tif 000015
【図１４】
2012191251.tif 000016
【図１５】
2012191251.tif 000017
【図１６】
2012191251.tif 000018
【図１７】
2012191251.tif 000019