通信端末、記憶サイズの制御方法、及びプログラム
【課題】データ損失時における再送要求の遅延を低減すること。
【解決手段】データを格納するための記憶領域を有する記憶部と、所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する受信部と、前記記憶部を用いて、前記受信部で受信されたデータの順序を修正する順序制御部と、前記受信部で受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する記憶サイズ制御部と、を備える、通信端末が提供される。
【解決手段】データを格納するための記憶領域を有する記憶部と、所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する受信部と、前記記憶部を用いて、前記受信部で受信されたデータの順序を修正する順序制御部と、前記受信部で受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する記憶サイズ制御部と、を備える、通信端末が提供される。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、通信端末、記憶サイズの制御方法、及びプログラムに関する。
【背景技術】
【0002】
複数の通信路を同時に利用してスループットを向上させる技術が検討されている。しかし、通信路間で遅延が異なるため、受信時にデータパケットの順序が入れ替わってしまうことがある。その結果、到着が遅れているだけのデータパケットを対象として再送要求が発せられ、無駄なデータパケットの再送によりスループットが低下してしまう。下記の特許文献1には、このようなスループットの低下を抑制するために、受信バッファを利用してデータパケットの入れ替わりを修正する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2004−80139号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記文献に記載の技術は、データパケットの全てにタイムスタンプを設定し、許容待ち時間を超えたデータパケットを上位層に転送するものである。そのため、全てのデータパケットについて到着時間や待ち時間を監視するという負荷の高い処理が発生してしまう。また、上記文献に記載の技術は、各通信路を介して受信した最新のデータパケットを用いて損失したデータパケットを判定している。そのため、ある通信路が不通になると、損失したデータパケットの判定が困難になってしまう。
【0005】
本技術は、データ損失時における再送要求の遅延を低減することが可能な、新規かつ改良された通信端末、記憶サイズの制御方法、及びプログラムを提供することを意図している。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本技術のある観点によれば、データを格納するための記憶領域を有する記憶部と、所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する受信部と、前記記憶部を用いて、前記受信部で受信されたデータの順序を修正する順序制御部と、前記受信部で受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する記憶サイズ制御部と、を備える、通信端末が提供される。
【0007】
また、前記記憶サイズ制御部は、各通信路を介して受信されたデータについて前記データの順序を示すシーケンス番号を監視し、通信路毎にシーケンス番号の最大値を検出する最大値検出部と、通信路毎に検出されたシーケンス番号の最大値を通信路間で比較し、当該シーケンス番号の最大値の差に基づいて前記入れ替わり量を算出する入れ替わり量算出部と、を含んでいてもよい。
【0008】
また、前記記憶サイズ制御部は、前記通信路毎に検出されるシーケンス番号の最大値が更新された場合に、前記入れ替わり量に基づいて前記記憶領域のサイズを制御する制御処理部をさらに含んでいてもよい。
【0009】
また、前記記憶領域は、TCPコネクション毎に設けられていてもよい。この場合、前記受信部は、複数のTCPコネクションを確立し、TCPコネクション毎に複数の通信路を介してデータを受信する。
【0010】
また、前記順序制御部は、次に上位層へ転送すべきデータを格納するためのデータ格納領域を前記記憶領域の先頭に設定し、当該記憶領域の先頭から順に順序に対応するデータ格納領域を設定し、前記受信部で受信されたデータを順序に対応するデータ格納領域に格納し、前記記憶領域の先頭から順に順序が揃った一又は複数のデータを上位層へ転送するように構成されていてもよい。
【0011】
また、前記順序制御部は、前記受信部で受信されたデータを格納するデータ格納領域がない場合、前記記憶領域に格納されたデータの中で順序の若いデータを上位層に転送し、データ格納領域の設定を更新した後、前記受信部で受信されたデータをデータ格納領域に格納するように構成されていてもよい。
【0012】
また、上記課題を解決するために、本技術の別の観点によれば、所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する受信ステップと、データを格納するための記憶領域を用いて、受信されたデータの順序を修正する順序制御ステップと、受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する記憶サイズ制御ステップと、を含む、記憶サイズの制御方法が提供される。
【0013】
また、上記課題を解決するために、本技術の別の観点によれば、所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する受信機能と、データを格納するための記憶領域を用いて、受信されたデータの順序を修正する順序制御機能と、受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する記憶サイズ制御機能と、をコンピュータに実現させるためのプログラムが提供される。
【0014】
また、上記課題を解決するために、本技術の別の観点によれば、上記のプログラムが記録された、コンピュータにより読み取り可能な記録媒体が提供される。
【発明の効果】
【0015】
以上説明したように本技術によれば、データ損失時における再送要求の遅延を低減することが可能になる。
【図面の簡単な説明】
【0016】
【図1】本実施形態に係るデータ通信システムの構成を示した説明図である。
【図2】本実施形態に係るデータ通信端末の構成を示した説明図である。
【図3】順序制御を行わない場合に発生する再送制御の流れを示した説明図である。
【図4】データパケットの構造を示した説明図である。
【図5】本実施形態に係る順序制御について説明するための説明図である。
【図6】本実施形態に係る順序制御について説明するための説明図である。
【図7】本実施形態に係る順序制御について説明するための説明図である。
【図8】本実施形態に係る順序制御について説明するための説明図である。
【図9】本実施形態に係る順序制御について説明するための説明図である。
【図10】本実施形態に係る順序制御について説明するための説明図である。
【図11】本実施形態に係る順序制御について説明するための説明図である。
【図12】本実施形態に係る順序制御について説明するための説明図である。
【図13】本実施形態に係る順序制御について説明するための説明図である。
【図14】本実施形態に係る順序制御について説明するための説明図である。
【図15】本実施形態に係る順序制御について説明するための説明図である。
【図16】本実施形態に係る順序制御について説明するための説明図である。
【図17】本実施形態に係る順序制御について説明するための説明図である。
【発明を実施するための形態】
【0017】
以下に添付図面を参照しながら、本技術に係る好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0018】
[説明の流れについて]
ここで、以下に記載する説明の流れについて簡単に述べる。
【0019】
まず、図1を参照しながら、本実施形態に係るデータ通信システム10のシステム構成例について説明する。次いで、図2を参照しながら、本実施形態に係るデータ通信端末100の機能構成例について説明する。この中で、図3を参照しながら、順序制御を行わない場合に発生する再送制御の流れについて説明する。また、図4を参照しながら、データパケットの構造について説明する。さらに、図5〜図14を参照しながら、本実施形態に係る順序制御について説明する。次いで、図15〜図17を参照しながら、本実施形態に係る順序制御の流れについて説明する。
【0020】
最後に、同実施形態の技術的思想について纏め、当該技術的思想から得られる作用効果について簡単に説明する。
【0021】
(説明項目)
1:はじめに
2:実施形態
2−1:データ通信システム10の構成
2−2:データ通信端末100の構成
2−3:順序制御部103の詳細な構成
2−4:順序制御の流れ
3:まとめ
【0022】
<1:はじめに>
本実施形態は、複数の通信路を同時に使用してデータ通信を行うデータ通信端末、及びデータ通信システムに関する。また、本実施形態は、通信路間の遅延差に起因して生じる受信データパケットの順序崩れを修正する順序制御方法に関する。さらに、本実施形態は、何らかの理由でデータパケットが損失した場合に発せられる再送要求が遅延することを抑制する技術に関する。
【0023】
近年、IEEE802.11a/b/g/nなどの無線LAN方式、或いは、UMTSやWiMAXなどの携帯電話方式など、様々な無線アクセス方式が実用化されている。無線LANインターフェースを内蔵したデータ通信端末は、ADSL、FTTH、CATVなどのブロードバンド回線(以下、BB回線)に接続された無線LANアクセスポイントを介してインターネットに接続することができる。また、携帯電話端末は、BB回線に接続された携帯電話方式の屋内用小型基地局(以下、フェムトセル)を介してインターネットに接続できる。
【0024】
また、最近では、複数の無線通信インターフェースを搭載したデータ通信端末が普及してきている。例えば、無線LAN方式の無線通信インターフェースと携帯電話方式の無線通信インターフェースとを搭載したデータ通信端末が実用化されている。このようなデータ通信端末を利用すると、ユーザは、フェムトセル及び無線LANアクセスポイントを両方使用可能なエリアにおいて、用途に応じて複数の無線アクセス方式を使い分けることが可能になる。
【0025】
但し、無線アクセス方式における伝送レートは、BB回線のような有線アクセス方式における伝送レートに比べて1/10程度である。そのため、フェムトセルや無線LANアクセスポイントを介してBB回線に接続した場合、そのスループットは、フェムトセルや無線LANアクセスポイントが実現可能なスループットで制限されてしまう。こうした理由から、複数の無線アクセス方式を利用可能な場合に、複数の無線アクセス方式を同時に用いてスループットの向上を図ることが望まれている。
【0026】
例えば、データ通信端末が、データ通信端末が無線LAN方式の無線通信インターフェースと携帯電話方式の無線通信インターフェースとを搭載しており、かつ、フェムトセル及び無線LANアクセスポイントに接続可能なエリア内にいる場合について考える。例えば、フェムトセルに接続される第1の無線通信路を経由してデータ通信を行っている際に、無線LANアクセスポイントに接続される第2の無線通信路を追加する方法について考える。この方法では、送受信されるデータパケットが2つの第1の無線通信路と第2の無線通信路とに分配されるため、スループットの向上が期待される。
【0027】
但し、第1の無線通信路と第2の無線通信路との間で遅延が異なる場合、送信側でデータパケットを各無線通信路に均等に分配しても、受信側に到達した段階でデータパケットの順序が入れ替わってしまうことがある。TCPのプロトコルにおいては、例えば、図4に示すように各データパケットに順序を示すシーケンス番号が付与されている。そのため、受信側ではこのシーケンス番号に基づいて順序制御を行うことが可能である。
【0028】
しかし、TCPのプロトコルには、本来先に到達すべきデータパケットよりも大きなシーケンス番号を持つデータパケットを受信する度に、欠落したデータパケットに対する再送要求を含んだ重複ACKを返す仕組みが設けられている。送信側で所定数の重複ACKを受け取ると、欠落したデータパケットが再送されると共に輻輳制御が行われる。この輻輳制御により、送信ウィンドウが縮小され、送信レートが下げられる。
【0029】
TCPのプロトコルに従う場合、無線通信路間の遅延差に起因してデータパケットの順序が入れ替わると、遅延により到着が遅れていたデータパケットを対象に上述した再送制御が行われてしまう。その結果、データパケットの無駄な再送が行われるだけでなく、輻輳制御により送信レートが下げられ、スループットが低下してしまう。このような再送制御が行われないようにする方法として、受信側でデータパケットの順序を制御する方法が考えられる。例えば、受信側に受信バッファを用意し、所定量のデータパケットを溜め込み、順序を修正した後でTCP層にデータパケット転送するという方法が考えられる。
【0030】
しかし、データパケットを損失した場合、受信バッファにデータパケットを溜め込んでいる時間だけ再送要求を発するタイミングが遅延してしまう。特に、受信バッファのサイズが大きい場合、この遅延は大きくなる。以上説明したような理由から、複数の無線通信路を同時に使用してスループットの向上を目指す場合、無線通信路間の遅延差に起因して生じるデータパケットの順序崩れを修正すること、及び欠落したデータパケットの再送要求が遅延するのを抑制することが求められる。なお、これまで無線通信路を対象に説明を進めてきたが、複数の有線通信路を同時に使用する場合も同様である。
【0031】
<2:実施形態>
以下、本技術の一実施形態について説明する。本実施形態は、複数の通信路を同時に使用してスループットの向上を図ると共に、通信路間の遅延差に起因して生じるデータパケットの順序崩れを修正し、かつ、欠落したデータパケットの再送要求が遅延するのを抑制する技術に関する。
【0032】
[2−1:データ通信システム10の構成]
まず、図1を参照しながら、本実施形態に係るデータ通信システム10の構成について説明する。図1は、本実施形態に係るデータ通信システム10の構成について説明するための説明図である。但し、図1に示した構成は一例であり、例えば、通信路の数や各通信路で用いるアクセス方式などは実施の態様に応じて適宜変形することが可能である。なお、説明の都合上、以下では無線LAN方式の通信路と携帯電話方式の通信路とを併用するケースを例に挙げて説明を進める。
【0033】
図1に示すように、データ通信システム10は、例えば、アプリケーションサーバ11と、ネットワーク12と、ブロードバンドモデム13と、ルータ14と、フェムトセル15と、無線LANアクセスポイント16と、データ通信端末100とを含む。また、ルータ14は、分配/合成器141を有する。さらに、データ通信端末100は、携帯電話無線インターフェース101と、無線LANインターフェース102と、順序制御部103と、分配/合成器104とを有する。
【0034】
フェムトセル15は、例えば、3GPPで標準化されたUMTSなどの携帯電話無線方式に対応した屋内用小型基地局である。そのため、フェムトセル15は、UMTS方式の携帯電話用インターフェース(携帯電話無線インターフェース101)と接続できる。一方、無線LANアクセスポイント16は、例えばIEEE802.11a/b/g/nなどの無線LAN方式に対応したアクセスポイントである。そのため、無線LANアクセスポイント16は、無線LAN方式の通信端末用インターフェース(無線LANインターフェース102)と接続できる。
【0035】
フェムトセル15及び無線LANアクセスポイント16は、分配/合成器141を搭載したルータ14と、ブロードバンドモデム13と、ネットワーク12を介してインターネットに接続している。
【0036】
また、データ通信端末100は、携帯電話無線インターフェース101、無線LANインターフェース102、及び分配/合成器104を有する。そのため、データ通信端末100は、例えば、UMTSなどの携帯電話無線方式で携帯電話基地局を経由したデータ通信を行うことが可能である。さらに、データ通信端末100は、例えば、IEEE802.11a/b/g/nなどの無線LANアクセスポイントを経由したデータ通信とを行うことが可能である。そして、データ通信端末100は、フェムトセル15を経由したデータ通信を行うことが可能である。
【0037】
例えば、データ通信端末100は、インターネット上のアプリケーションサーバ11からデータパケットをダウンロードする場合、携帯電話無線インターフェース101とフェムトセル15とを接続する。さらに、データ通信端末100は、無線LANインターフェース102と無線LANアクセスポイント16とを接続する。
【0038】
アプリケーションサーバ11からルータ14に到達したデータパケットは、分配/合成器141により所定の分配比で2つのルートに分配される。一方のルートは、フェムトセル15を経由して携帯電話無線インターフェース101に到達するルートである。もう一方のルートは、無線LANアクセスポイント16を経由して無線LANインターフェース102に到達するルートである。2つのルートに分配されたデータパケットは、それぞれのルートを通じてデータ通信端末100に送信される。
【0039】
携帯電話無線インターフェース101で受信されたデータパケットと、無線LANインターフェース102で受信されたデータパケットとは、順序制御部103に入力される。両方のデータパケットが入力されると、順序制御部103は、受信バッファを用いてデータパケットの順番を正しく並び替え、分配/合成器104に入力する。分配/合成器104は、入力されたデータパケットを合成する。分配/合成器104で合成されたデータパケットは、データ通信端末100のアプリケーションで使用される。
【0040】
なお、データ通信端末100は、各ルートで受信したデータパケットの最新のシーケンス番号を分配/合成器104で記憶しており、各ルートに対応する最新のシーケンス番号に基づいて順序制御部103が用いる受信バッファのサイズを決定している。また、データ通信端末100は、各ルートで到達したデータパケットの数を分配/合成器104で計測しており、その計測結果を定期的にルータ14に報告する。
【0041】
ルータ14は、各ルートに対して予め設定されているデータパケットの分配比と、データ通信端末100から報告されたデータパケットの数に基づく比率とを対比して、例えば分配の比率より到達の比率が少ないルートへのパケット配分を少なくする。このようなルータ14による制御を行うことで、損失の少ないルートに、より多くのパケットを振り分けることが可能になり、分配比率が最適化される。
【0042】
ここでは、携帯電話無線インターフェース101と無線LANインターフェース102とを搭載したデータ通信端末100を例示したが、他の無線通信インターフェースを搭載したデータ通信端末100であってもよい。例えば、インターネット・プロトコル(IP)のデータパケットを扱える無線通信インターフェースであればよく、WiMAXやBluetoothなど他の無線通信インターフェースを使用することも可能である。また、同じ無線アクセス方式の複数の無線通信インターフェースを使用することも可能である。
【0043】
ここで、図3を参照しながら、アプリケーションサーバ11から送信されたTCP/IPのデータパケットがデータ通信端末100に届くまでのシーケンス、及びデータ通信端末100による応答のシーケンスについて説明する。但し、図3に示すシーケンスは、データパケットの順序制御を行わない場合に生じる再送制御の様子を示すものである。
【0044】
図3に示すように、データパケット(Data#1〜Data#10)は、アプリケーションサーバ11から正しい順序で送信される。これらのデータパケットは、予めルータ14に設定された分配比で無線LANアクセスポイント16及びフェムトセル15に分配される。なお、無線LANアクセスポイント16からデータ通信端末100に至る遅延よりもフェムトセル15からデータ通信端末100に至る遅延の方が大きいものとする。
【0045】
そのため、Data#4のデータパケットがフェムトセル15からデータ通信端末100に届くよりも先に、Data#5からData#10のパケットが無線LANアクセスポイント16からデータ通信端末100に届く。まず、Data#1からData#3に対応するACK(確認応答)として、ACK#1からACK#3が正しくアプリケーションサーバ11に返却される。しかし、Data#4の到着が遅れているため、先に到着したData#5からData#10に対応したACKとして、重複ACK(DupACK#3)がアプリケーションサーバ11に返却される。
【0046】
アプリケーションサーバ11は、TCPのプロトコルに従い、重複ACKを3回受信したことを受けてData#4が損失したと判断する。そして、アプリケーションサーバ11は、同じデータを再送(Retransmission#4)する。さらに、アプリケーションサーバ11は、輻輳状態と判断して送信ウィンドウを小さくし、送信レートを落とす処理を行う。このように、データパケットの順序を修正しないと、実際にはデータを損失していなくても無駄な再送データが送出されたり、送信ウィンドウが縮小されたりしてスループットが低下してしまう。そのため、データ通信端末100は、所定量の受信データパケットを溜め込み、データパケットの順序を正しく整えてから受信パケットをTCP層に転送する順序制御を行う。
【0047】
ところで、TCPのプロトコルでは、データパケットの送信を開始する前に、通信相手との間でコネクションを確立し、データ通信が終了したらコネクションを切断するという処理が行われる。図4に示すように、TCPヘッダには、データパケットの順番を判定するためのシーケンス番号が含まれている。まず、コネクション確立時に乱数で初期化された32ビットの値がシーケンス番号に設定され、それ以降はデータパケットを送信する度に、送信したデータパケットのバイト数だけ加算した値がシーケンス番号に設定される。そのため、受信したデータパケットに含まれるTCPヘッダ中のシーケンス番号及びデータオフセットと、IPヘッダ中のヘッダ長及びパケット長とを調べることにより、次に受信が予定されているデータパケットのシーケンス番号を知ることができる。
【0048】
このように、1つのコネクションの中でシーケンス番号の初期値が与えられ、1つのコネクションの中でデータパケットの順序が管理される。1つ1つのコネクションは、終点IPアドレス、始点IPアドレス、終点ポート番号、始点ポート番号、プロトコル番号(TCP=6)の組み合わせに基づいて識別することができる。なお、データ通信端末100は、1つのコネクションについて1つの受信バッファを用意してもよいし、複数のコネクションで使用できるように複数の受信バッファを用意してもよい。つまり、コネクション毎に受信バッファを用意すれば、コネクション単位で順序制御を行うことができる。
【0049】
以上、データ通信システム10の構成について説明した。
【0050】
[2−2:データ通信端末100の構成]
次に、図2を参照しながら、本実施形態に係るデータ通信端末100の構成について、より詳細に説明する。図2は、本実施形態に係るデータ通信端末100の構成について、より詳細に説明するための説明図である。
【0051】
図2に示すように、データ通信端末100は、無線LANインターフェース102と、携帯電話無線インターフェース101と、順序制御部103と、分配/合成器104と、表示部111と、操作部112と、記憶部113と、制御部114と、音声画像処理部115と、スピーカ116と、マイク117と、通信インターフェース118、119とにより構成される。順序制御部103、分配/合成器104、表示部111、操作部112、記憶部113、制御部114、音声画像処理部115は、バスで接続されている。また、記憶部113は、順序制御部103により受信バッファとして利用される。
【0052】
表示部111は、画像を表示する表示手段である。操作部112は、ユーザがデータ通信端末100を操作するための入力手段である。記憶部113は、データを記憶することが可能な記憶手段である。制御部114は、データ通信端末100が有する各構成要素の動作を制御する手段である。音声画像処理部115は、表示部111に画像を表示させる表示制御手段である。また、音声画像処理部115は、スピーカ116に音声を出力したり、マイク117から入力された音声を処理する音声処理手段である。通信インターフェース118、119は、無線LAN方式や携帯電話無線方式以外のアクセス方式に対応した通信インターフェースである。
【0053】
以上、データ通信端末100の構成について説明した。なお、本実施形態に係るデータパケットの順序制御方法は、主に順序制御部103の機能を利用して実現される。そこで、以下では順序制御部103の詳細な構成について説明する。
【0054】
[2−3:順序制御部103の詳細な構成]
順序制御部103は、図5〜図13に示した方法でデータパケットの順序制御を実行する。図5〜図13は、順序制御部103の動作について説明するための説明図である。なお、本来のシーケンス番号はデータパケットのバイト数ずつ増加していくが、以下では、簡単のためにデータパケットの順番を示す数がシーケンス番号と一致していると仮定して説明を進める。また、受信バッファのサイズも本来は必要なデータパケットのバイト数で表現されるべきあるが、簡単のためにパケットの数で示している。さらに、以下の説明においては、無線LAN方式に対応するルートを通信路#1と表記し、携帯電話方式に対応するルートを通信路#2と表記する。
【0055】
まず、図5を参照する。図5に示すように、受信バッファのサイズは、8データパケット分に設定されているものとする。データパケットを受信すると、順序制御部103は、受信したデータパケットのシーケンス番号が受信バッファの先頭に格納されるべきデータパケットのシーケンス番号より小さいか否かを判断する。例えば、シーケンス番号1のデータパケットが受信されていない場合、受信バッファの先頭に格納すべきデータパケットは、シーケンス番号が2以降のデータパケットである。図5の例では、まず、シーケンス番号1のデータパケットが受信されている。そのため、シーケンス番号1のデータパケットは、受信バッファに格納されずに、そのまま上位層(TCP層)に転送される。
【0056】
シーケンス番号1のデータパケットが上位層に転送されると、受信バッファの先頭に格納されるべきデータパケットは、シーケンス番号が3以降のデータパケットになる。図5の例では、続いてシーケンス番号2のデータパケットが受信されている。そのため、シーケンス番号2のデータパケットは、受信バッファに格納されずに、そのまま上位層に転送される。同様に、シーケンス番号2のデータパケットが上位層に転送されると、受信バッファの先頭に格納されるべきデータパケットは、シーケンス番号が4以降のデータパケットになる。図5の例では、続いてシーケンス番号3のデータパケットが受信されている。そのため、シーケンス番号3のデータパケットは、受信バッファに格納されずに、そのまま上位層に転送される。
【0057】
このように、順序制御部103は、受信したデータパケットのシーケンス番号が受信バッファの先頭に格納されるべきデータパケットのシーケンス番号より小さい場合に、受信したデータパケットをそのまま上位層に転送する。
【0058】
次に、図6を参照する。図6の例は、既にシーケンス番号1〜3のデータパケットが上位層に転送された状態を示している。また、図6の例では、受信バッファにシーケンス番号5、6、7、9のデータパケットが格納されている。つまり、図6の例は、シーケンス番号1〜3を受信した後、シーケンス番号4のデータパケットが受信される前に、シーケンス番号5、6、7、9のデータパケットが受信された状態を示している。この状態で、通信路#1を介してシーケンス番号10のデータパケットが受信され、次いで、通信路#2を介してシーケンス番号4のデータパケットが受信された場合について考える。
【0059】
通信路#1を介してデータパケットが受信されると、順序制御部103は、通信路#1を介して受信されたデータパケットのうち、最新のデータパケットのシーケンス番号を示す最新シーケンス番号を更新する。この場合、通信路#1の最新シーケンス番号は10に更新される。同様に、通信路#2を介してデータパケットが受信されると、順序制御部103は、通信路#2を介して受信されたデータパケットのうち、最新のデータパケットのシーケンス番号を示す最新シーケンス番号を更新する。この場合、通信路#2の最新シーケンス番号は4に更新される。
【0060】
最新シーケンス番号を更新した場合、順序制御部103は、図7に示すように、更新後の最新シーケンス番号に基づいて受信バッファのサイズを変更する。なお、変更後の受信バッファサイズBは、通信路#1の最新シーケンス番号をS1、通信路#2の最新シーケンス番号をS2と表現すると、下記の式(1)に基づいて算出される。図7の例ではS1=10及びS2=4であるから、受信バッファサイズBは7となる。最新シーケンス番号を更新した場合、順序制御部103は、下記の式(1)に基づいて受信バッファサイズBを算出し、図7に示すように、算出結果に応じて受信バッファのサイズを変更する。
【0061】
B = |S1−S2|+1
…(1)
【0062】
受信バッファのサイズを変更した後、順序制御部103は、図8に示すように、受信したデータパケットを受信バッファに格納する。例えば、通信路#1を介して受信されたシーケンス番号10のデータパケットは、受信バッファの最後尾に格納される。一方、通信路#2を介して受信されたシーケンス番号4のデータパケットは、受信バッファの先頭に格納される。図8に示すように、受信バッファには、未着のデータパケット分だけデータ格納領域が確保されている。図8の例では、シーケンス番号4、8のデータパケットが未着のため、シーケンス番号4、8のデータパケットに対応するデータ格納領域が格納されている。そのため、通信路#2を介して受信されたシーケンス番号4のデータパケットは、シーケンス番号4に対応するデータ格納領域に格納される。
【0063】
シーケンス番号4のデータパケットを受信バッファの先頭に格納すると、図9に示すように、受信バッファの先頭から順に順序が揃ったデータパケットの組(図9の例では、シーケンス番号4〜7のデータパケット)が得られる。先頭から順に順序が揃ったデータパケットの組が得られると、順序制御部103は、図9に示すように、順序が揃ったデータパケットの組を上位層に転送する。つまり、受信バッファの先頭から順に、シーケンス番号が連続する一又は複数のデータパケットが揃った場合に、そのデータパケットの組が上位層に転送される。順序が揃ったデータパケットを上位層に転送した後、順序制御部103は、図10に示すように、受信バッファ内のデータ格納領域及びデータパケット(ウィンドウ)の位置を先頭に詰める。
【0064】
ところで、図11に示すように、一方の通信路(この例では通信路#2)のデータパケットが損失した場合、他方の通信路(この例では通信路#1)のデータパケットが受信バッファに格納しきれず、溢れてしまうことがある。この場合、順序制御部103は、受信バッファに格納されているデータパケットのうち、先頭に近い順に順序が揃っているデータパケットを上位層に転送する。そして、順序制御部103は、ウィンドウの位置を先頭に詰め、受信したデータパケットを受信バッファに格納する。図11の例では、シーケンス番号4のデータパケットが未着の状態でシーケンス番号5〜7のデータパケットが上位層に転送されている。そのため、上位層は、図12に示すように、シーケンス番号4のデータパケットに対する再送要求を行う。
【0065】
また、図13に示すように、受信バッファに既に格納されているデータパケットと同じデータパケットが受信されることもある。重複してデータパケットが受信された場合、順序制御部103は、図13に示すように、受信したデータパケットを破棄する。
【0066】
以上、順序制御部103の詳細な構成について説明した。
【0067】
図6〜図10に示した例では、通信路の遅延が異なることにより、通信路#2のデータパケットが6個程度のパケット分だけ通信路#1のデータパケットに追い越されている。しかし、上述した順序制御部103の機能を利用することで、パケット入れ替わり量を吸収可能な受信バッファを用いてデータパケットの順序を修正することが可能になる。また、図11及び図12に示した例のように、通信路#2における何らかの不具合によってシーケンス番号4のデータパケットを損失した場合でも、通信路#1を介して受信したデータパケットで受信バッファが溢れることにより、上位層にシーケンス番号5〜7のデータパケットが転送される。そして、上位層からシーケンス番号4のデータパケットに対する再送要求が送信される。
【0068】
上記のように、受信バッファが溢れたタイミングで上位層から再送要求が送信される。しかし、受信バッファのサイズが十分に小さく抑えられているため、受信バッファが溢れるまでに要する時間が短くて済む。その結果、データパケットの損失が発生しても、欠損したデータパケットに対する再送要求が送信されるまでの遅延が抑制される。図14は、通信路#1及び#2の最新シーケンス番号の更新に伴う受信バッファサイズの更新の様子を示したものである。点線は、通信路#1及び#2のシーケンス番号の差を示している。また、遅延の大きい方の最新シーケンス番号が更新されたときに受信バッファサイズが更新されるため、受信バッファのサイズは鎖線のようになる。上記のような構成にすることで、一方の通信路からデータパケットが届かなくなった場合にも、受信バッファのサイズが拡大してしまうことを防止できるようになる。
【0069】
[2−4:順序制御の流れ]
次に、図15〜図17を参照しながら、本実施形態に係る順序制御の流れについて説明する。図15〜図17を参照しながら、本実施形態に係る順序制御の流れについて説明するための説明図である。
【0070】
図15に示すように、データパケットが受信され、順序制御が開始されると、データ通信端末100は、IPヘッダ及びTCPヘッダをチェックする(S101)。次いで、データ通信端末100は、受信したデータパケットが順序制御の対象か否かを判定する(S102)。受信したデータパケットが順序制御の対象である場合、データ通信端末100は、処理をステップS104に進める。一方、受信したデータパケットが順序制御の対象でない場合、データ通信端末100は、処理をステップS103に進める。
【0071】
処理をステップS103に進めた場合、データ通信端末100は、受信したデータパケットを上位層へ転送し(S103)、処理をステップAへと進める。一方、処理をステップS104に進めた場合、データ通信端末100は、通信路毎に最新シーケンス番号を更新する(S104)。次いで、データ通信端末100は、受信バッファのサイズを更新するか否かを判定する(S105)。例えば、データ通信端末100は、上記の式(1)に基づいて受信バッファのサイズを算出し、算出したサイズと現状のサイズと比較することで、サイズの更新が必要か否かを判定する。
【0072】
受信バッファのサイズを更新すると判定した場合、データ通信端末100は、処理をステップS106に進める。一方、受信バッファのサイズを更新しないと判定した場合、データ通信端末100は、処理をステップBへと進める。処理をステップS106に進めた場合、データ通信端末100は、受信バッファのサイズを更新する(S106)。次いで、データ通信端末100は、ウィンドウの位置を再設定する(S107)。次いで、データ通信端末100は、受信したデータパケットにより受信バッファが溢れる場合に、受信バッファの前方に位置するデータパケットを上位層に転送し(S108)、処理をステップBへと進める。
【0073】
図16に示すように、処理をステップBへと進めた場合、データ通信端末100は、受信したデータパケットのシーケンス番号を参照し、受信バッファ内のどの位置に格納されるかを判定する(S109)。受信したデータパケットがウィンドウより前に格納される場合、データ通信端末100は、処理をステップS110に進める。また、受信したデータパケットがウィンドウより後に格納される場合、データ通信端末100は、処理をステップS111に進める。さらに、受信したデータパケットがウィンドウの中に格納される場合、データ通信端末100は、処理をステップCへと進める。
【0074】
処理をステップS110に進めた場合、データ通信端末100は、受信したデータパケットを上位層へ転送し(S110)、受信したデータパケットに対する順序制御を終了する。処理をステップS111に進めた場合、データ通信端末100は、ウィンドウの位置を再設定する(S111)。次いで、データ通信端末100は、受信したデータパケットにより受信バッファが溢れる場合に、受信バッファの前方に位置するデータパケットを上位層に転送する(S112)。次いで、データ通信端末100は、受信したデータパケットを受信バッファに格納し(S113)、受信したデータパケットに対する順序制御を終了する。また、処理をステップAへと進めた場合、データ通信端末100は、受信したデータパケットに対する順序制御を終了する。
【0075】
図17に示すように、処理をステップCへと進めた場合、データ通信端末100は、受信したデータパケットが、受信バッファに格納されているデータパケットと重複しているか否かを判定する(S114)。受信したデータパケットが受信バッファに格納されているデータパケットと重複している場合、データ通信端末100は、処理をステップS115に進める。一方、受信したデータパケットが受信バッファに格納されているデータパケットと重複していない場合、データ通信端末100は、処理をステップS116に進める。処理をステップS115に進めた場合、データ通信端末100は、受信したデータパケットを破棄し(S115)、処理をステップAへと進める。
【0076】
処理をステップS116に進めた場合、データ通信端末100は、受信したデータパケットを受信バッファに格納する(S116)。次いで、データ通信端末100は、受信したデータパケットを受信バッファに格納したことにより、受信バッファの先頭から順にデータパケットの順序が揃った場合、順序の揃ったデータパケットを上位層に転送する(S117)。次いで、データ通信端末100は、ウィンドウ位置を再設定し(S118)、処理をステップAへと進める。
【0077】
以上、本実施形態に係る順序制御の流れについて説明した。
【0078】
上記のように、複数の無線アクセス方式に対応したデータ通信端末100が、同時に複数の通信路を経由してデータ通信を行うことでスループットを向上することが可能になる。また、通信路間で遅延が異なる場合や各通信路の遅延が変動する場合にも、データ通信端末100においてデータパケットの順序崩れを修正し、無駄な再送要求を防止し、輻輳制御によるスループット低下を防止することが可能になる。さらに、データパケットの順序制御に用いる受信バッファのサイズをパケット順序の入れ替わり量(上記の式(1)を参照)に応じたサイズとすることで、損失したパケットの再送要求が遅れることを防止することができる。また、この受信バッファのサイズは、通信路の遅延の変動に応じて適応的に制御される。そのため、一部の通信路が不通となっても損失したデータパケットに対する再送要求の発生が遅延することを防ぐことが可能になる。
【0079】
<3:まとめ>
最後に、本実施形態の技術的思想について簡単に纏める。以下に記載する技術的思想は、例えば、PC、携帯電話、携帯ゲーム機、携帯情報端末、情報家電、カーナビゲーションシステム等、種々の情報処理装置(或いは通信端末)に対して適用することができる。
【0080】
上記の情報処理装置の機能構成は次のように表現することができる。当該情報処理装置は、以下に示す記憶部と、受信部と、順序制御部と、記憶サイズ制御部とを有する。当該記憶部は、データを格納するための記憶領域を有する。また、上記の受信部は、所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する。さらに、上記の順序制御部は、前記記憶部を用いて、前記受信部で受信されたデータの順序を修正する。そして、上記の記憶サイズ制御部は、前記受信部で受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する。
【0081】
複数の通信路を用いてデータ列を受信すると、通信路毎に遅延が異なるため、データの順序が入れ替わってしまう。そのため、上記の情報処理装置は、上位層が要求しているデータが受信されるまで記憶部にデータを格納しておくことでデータの順序を修正する。但し、記憶部にデータを格納する方法でデータの順序を修正すると、データの損失が発生した場合に、記憶部にデータを溜め込んでいる時間だけ再送要求が遅延してしまう。しかし、上記の情報処理装置は、記憶サイズ制御部の機能により記憶領域のサイズを動的に制御することで、データの損失が発生した場合に記憶部に溜め込まれるデータの量を抑え、再送要求の遅延を低減することができる。
【0082】
(備考)
上記のデータ通信端末100は、通信端末の一例である。上記の携帯電話無線インターフェース101、無線LANインターフェース102、通信インターフェース118、119は、受信部の一例である。上記の順序制御部103は、順序制御部、記憶サイズ制御部、最大値検出部、入れ替わり量算出部、制御処理部の一例である。
【0083】
以上、添付図面を参照しながら本技術に係る好適な実施形態について説明したが、本技術はここで開示した構成例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本技術の技術的範囲に属するものと了解される。
【符号の説明】
【0084】
10 データ通信システム
11 アプリケーションサーバ
12 ネットワーク
13 ブロードバンドモデム
14 ルータ
141 分配/合成器
15 フェムトセル
16 無線LANアクセスポイント
100 データ通信端末
101 携帯電話無線インターフェース
102 無線LANインターフェース
103 順序制御部
104 分配/合成器
111 表示部
112 操作部
113 記憶部
114 制御部
115 音声画像処理部
116 スピーカ
117 マイク
118、119 通信インターフェース
【技術分野】
【0001】
本技術は、通信端末、記憶サイズの制御方法、及びプログラムに関する。
【背景技術】
【0002】
複数の通信路を同時に利用してスループットを向上させる技術が検討されている。しかし、通信路間で遅延が異なるため、受信時にデータパケットの順序が入れ替わってしまうことがある。その結果、到着が遅れているだけのデータパケットを対象として再送要求が発せられ、無駄なデータパケットの再送によりスループットが低下してしまう。下記の特許文献1には、このようなスループットの低下を抑制するために、受信バッファを利用してデータパケットの入れ替わりを修正する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2004−80139号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記文献に記載の技術は、データパケットの全てにタイムスタンプを設定し、許容待ち時間を超えたデータパケットを上位層に転送するものである。そのため、全てのデータパケットについて到着時間や待ち時間を監視するという負荷の高い処理が発生してしまう。また、上記文献に記載の技術は、各通信路を介して受信した最新のデータパケットを用いて損失したデータパケットを判定している。そのため、ある通信路が不通になると、損失したデータパケットの判定が困難になってしまう。
【0005】
本技術は、データ損失時における再送要求の遅延を低減することが可能な、新規かつ改良された通信端末、記憶サイズの制御方法、及びプログラムを提供することを意図している。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本技術のある観点によれば、データを格納するための記憶領域を有する記憶部と、所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する受信部と、前記記憶部を用いて、前記受信部で受信されたデータの順序を修正する順序制御部と、前記受信部で受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する記憶サイズ制御部と、を備える、通信端末が提供される。
【0007】
また、前記記憶サイズ制御部は、各通信路を介して受信されたデータについて前記データの順序を示すシーケンス番号を監視し、通信路毎にシーケンス番号の最大値を検出する最大値検出部と、通信路毎に検出されたシーケンス番号の最大値を通信路間で比較し、当該シーケンス番号の最大値の差に基づいて前記入れ替わり量を算出する入れ替わり量算出部と、を含んでいてもよい。
【0008】
また、前記記憶サイズ制御部は、前記通信路毎に検出されるシーケンス番号の最大値が更新された場合に、前記入れ替わり量に基づいて前記記憶領域のサイズを制御する制御処理部をさらに含んでいてもよい。
【0009】
また、前記記憶領域は、TCPコネクション毎に設けられていてもよい。この場合、前記受信部は、複数のTCPコネクションを確立し、TCPコネクション毎に複数の通信路を介してデータを受信する。
【0010】
また、前記順序制御部は、次に上位層へ転送すべきデータを格納するためのデータ格納領域を前記記憶領域の先頭に設定し、当該記憶領域の先頭から順に順序に対応するデータ格納領域を設定し、前記受信部で受信されたデータを順序に対応するデータ格納領域に格納し、前記記憶領域の先頭から順に順序が揃った一又は複数のデータを上位層へ転送するように構成されていてもよい。
【0011】
また、前記順序制御部は、前記受信部で受信されたデータを格納するデータ格納領域がない場合、前記記憶領域に格納されたデータの中で順序の若いデータを上位層に転送し、データ格納領域の設定を更新した後、前記受信部で受信されたデータをデータ格納領域に格納するように構成されていてもよい。
【0012】
また、上記課題を解決するために、本技術の別の観点によれば、所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する受信ステップと、データを格納するための記憶領域を用いて、受信されたデータの順序を修正する順序制御ステップと、受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する記憶サイズ制御ステップと、を含む、記憶サイズの制御方法が提供される。
【0013】
また、上記課題を解決するために、本技術の別の観点によれば、所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する受信機能と、データを格納するための記憶領域を用いて、受信されたデータの順序を修正する順序制御機能と、受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する記憶サイズ制御機能と、をコンピュータに実現させるためのプログラムが提供される。
【0014】
また、上記課題を解決するために、本技術の別の観点によれば、上記のプログラムが記録された、コンピュータにより読み取り可能な記録媒体が提供される。
【発明の効果】
【0015】
以上説明したように本技術によれば、データ損失時における再送要求の遅延を低減することが可能になる。
【図面の簡単な説明】
【0016】
【図1】本実施形態に係るデータ通信システムの構成を示した説明図である。
【図2】本実施形態に係るデータ通信端末の構成を示した説明図である。
【図3】順序制御を行わない場合に発生する再送制御の流れを示した説明図である。
【図4】データパケットの構造を示した説明図である。
【図5】本実施形態に係る順序制御について説明するための説明図である。
【図6】本実施形態に係る順序制御について説明するための説明図である。
【図7】本実施形態に係る順序制御について説明するための説明図である。
【図8】本実施形態に係る順序制御について説明するための説明図である。
【図9】本実施形態に係る順序制御について説明するための説明図である。
【図10】本実施形態に係る順序制御について説明するための説明図である。
【図11】本実施形態に係る順序制御について説明するための説明図である。
【図12】本実施形態に係る順序制御について説明するための説明図である。
【図13】本実施形態に係る順序制御について説明するための説明図である。
【図14】本実施形態に係る順序制御について説明するための説明図である。
【図15】本実施形態に係る順序制御について説明するための説明図である。
【図16】本実施形態に係る順序制御について説明するための説明図である。
【図17】本実施形態に係る順序制御について説明するための説明図である。
【発明を実施するための形態】
【0017】
以下に添付図面を参照しながら、本技術に係る好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0018】
[説明の流れについて]
ここで、以下に記載する説明の流れについて簡単に述べる。
【0019】
まず、図1を参照しながら、本実施形態に係るデータ通信システム10のシステム構成例について説明する。次いで、図2を参照しながら、本実施形態に係るデータ通信端末100の機能構成例について説明する。この中で、図3を参照しながら、順序制御を行わない場合に発生する再送制御の流れについて説明する。また、図4を参照しながら、データパケットの構造について説明する。さらに、図5〜図14を参照しながら、本実施形態に係る順序制御について説明する。次いで、図15〜図17を参照しながら、本実施形態に係る順序制御の流れについて説明する。
【0020】
最後に、同実施形態の技術的思想について纏め、当該技術的思想から得られる作用効果について簡単に説明する。
【0021】
(説明項目)
1:はじめに
2:実施形態
2−1:データ通信システム10の構成
2−2:データ通信端末100の構成
2−3:順序制御部103の詳細な構成
2−4:順序制御の流れ
3:まとめ
【0022】
<1:はじめに>
本実施形態は、複数の通信路を同時に使用してデータ通信を行うデータ通信端末、及びデータ通信システムに関する。また、本実施形態は、通信路間の遅延差に起因して生じる受信データパケットの順序崩れを修正する順序制御方法に関する。さらに、本実施形態は、何らかの理由でデータパケットが損失した場合に発せられる再送要求が遅延することを抑制する技術に関する。
【0023】
近年、IEEE802.11a/b/g/nなどの無線LAN方式、或いは、UMTSやWiMAXなどの携帯電話方式など、様々な無線アクセス方式が実用化されている。無線LANインターフェースを内蔵したデータ通信端末は、ADSL、FTTH、CATVなどのブロードバンド回線(以下、BB回線)に接続された無線LANアクセスポイントを介してインターネットに接続することができる。また、携帯電話端末は、BB回線に接続された携帯電話方式の屋内用小型基地局(以下、フェムトセル)を介してインターネットに接続できる。
【0024】
また、最近では、複数の無線通信インターフェースを搭載したデータ通信端末が普及してきている。例えば、無線LAN方式の無線通信インターフェースと携帯電話方式の無線通信インターフェースとを搭載したデータ通信端末が実用化されている。このようなデータ通信端末を利用すると、ユーザは、フェムトセル及び無線LANアクセスポイントを両方使用可能なエリアにおいて、用途に応じて複数の無線アクセス方式を使い分けることが可能になる。
【0025】
但し、無線アクセス方式における伝送レートは、BB回線のような有線アクセス方式における伝送レートに比べて1/10程度である。そのため、フェムトセルや無線LANアクセスポイントを介してBB回線に接続した場合、そのスループットは、フェムトセルや無線LANアクセスポイントが実現可能なスループットで制限されてしまう。こうした理由から、複数の無線アクセス方式を利用可能な場合に、複数の無線アクセス方式を同時に用いてスループットの向上を図ることが望まれている。
【0026】
例えば、データ通信端末が、データ通信端末が無線LAN方式の無線通信インターフェースと携帯電話方式の無線通信インターフェースとを搭載しており、かつ、フェムトセル及び無線LANアクセスポイントに接続可能なエリア内にいる場合について考える。例えば、フェムトセルに接続される第1の無線通信路を経由してデータ通信を行っている際に、無線LANアクセスポイントに接続される第2の無線通信路を追加する方法について考える。この方法では、送受信されるデータパケットが2つの第1の無線通信路と第2の無線通信路とに分配されるため、スループットの向上が期待される。
【0027】
但し、第1の無線通信路と第2の無線通信路との間で遅延が異なる場合、送信側でデータパケットを各無線通信路に均等に分配しても、受信側に到達した段階でデータパケットの順序が入れ替わってしまうことがある。TCPのプロトコルにおいては、例えば、図4に示すように各データパケットに順序を示すシーケンス番号が付与されている。そのため、受信側ではこのシーケンス番号に基づいて順序制御を行うことが可能である。
【0028】
しかし、TCPのプロトコルには、本来先に到達すべきデータパケットよりも大きなシーケンス番号を持つデータパケットを受信する度に、欠落したデータパケットに対する再送要求を含んだ重複ACKを返す仕組みが設けられている。送信側で所定数の重複ACKを受け取ると、欠落したデータパケットが再送されると共に輻輳制御が行われる。この輻輳制御により、送信ウィンドウが縮小され、送信レートが下げられる。
【0029】
TCPのプロトコルに従う場合、無線通信路間の遅延差に起因してデータパケットの順序が入れ替わると、遅延により到着が遅れていたデータパケットを対象に上述した再送制御が行われてしまう。その結果、データパケットの無駄な再送が行われるだけでなく、輻輳制御により送信レートが下げられ、スループットが低下してしまう。このような再送制御が行われないようにする方法として、受信側でデータパケットの順序を制御する方法が考えられる。例えば、受信側に受信バッファを用意し、所定量のデータパケットを溜め込み、順序を修正した後でTCP層にデータパケット転送するという方法が考えられる。
【0030】
しかし、データパケットを損失した場合、受信バッファにデータパケットを溜め込んでいる時間だけ再送要求を発するタイミングが遅延してしまう。特に、受信バッファのサイズが大きい場合、この遅延は大きくなる。以上説明したような理由から、複数の無線通信路を同時に使用してスループットの向上を目指す場合、無線通信路間の遅延差に起因して生じるデータパケットの順序崩れを修正すること、及び欠落したデータパケットの再送要求が遅延するのを抑制することが求められる。なお、これまで無線通信路を対象に説明を進めてきたが、複数の有線通信路を同時に使用する場合も同様である。
【0031】
<2:実施形態>
以下、本技術の一実施形態について説明する。本実施形態は、複数の通信路を同時に使用してスループットの向上を図ると共に、通信路間の遅延差に起因して生じるデータパケットの順序崩れを修正し、かつ、欠落したデータパケットの再送要求が遅延するのを抑制する技術に関する。
【0032】
[2−1:データ通信システム10の構成]
まず、図1を参照しながら、本実施形態に係るデータ通信システム10の構成について説明する。図1は、本実施形態に係るデータ通信システム10の構成について説明するための説明図である。但し、図1に示した構成は一例であり、例えば、通信路の数や各通信路で用いるアクセス方式などは実施の態様に応じて適宜変形することが可能である。なお、説明の都合上、以下では無線LAN方式の通信路と携帯電話方式の通信路とを併用するケースを例に挙げて説明を進める。
【0033】
図1に示すように、データ通信システム10は、例えば、アプリケーションサーバ11と、ネットワーク12と、ブロードバンドモデム13と、ルータ14と、フェムトセル15と、無線LANアクセスポイント16と、データ通信端末100とを含む。また、ルータ14は、分配/合成器141を有する。さらに、データ通信端末100は、携帯電話無線インターフェース101と、無線LANインターフェース102と、順序制御部103と、分配/合成器104とを有する。
【0034】
フェムトセル15は、例えば、3GPPで標準化されたUMTSなどの携帯電話無線方式に対応した屋内用小型基地局である。そのため、フェムトセル15は、UMTS方式の携帯電話用インターフェース(携帯電話無線インターフェース101)と接続できる。一方、無線LANアクセスポイント16は、例えばIEEE802.11a/b/g/nなどの無線LAN方式に対応したアクセスポイントである。そのため、無線LANアクセスポイント16は、無線LAN方式の通信端末用インターフェース(無線LANインターフェース102)と接続できる。
【0035】
フェムトセル15及び無線LANアクセスポイント16は、分配/合成器141を搭載したルータ14と、ブロードバンドモデム13と、ネットワーク12を介してインターネットに接続している。
【0036】
また、データ通信端末100は、携帯電話無線インターフェース101、無線LANインターフェース102、及び分配/合成器104を有する。そのため、データ通信端末100は、例えば、UMTSなどの携帯電話無線方式で携帯電話基地局を経由したデータ通信を行うことが可能である。さらに、データ通信端末100は、例えば、IEEE802.11a/b/g/nなどの無線LANアクセスポイントを経由したデータ通信とを行うことが可能である。そして、データ通信端末100は、フェムトセル15を経由したデータ通信を行うことが可能である。
【0037】
例えば、データ通信端末100は、インターネット上のアプリケーションサーバ11からデータパケットをダウンロードする場合、携帯電話無線インターフェース101とフェムトセル15とを接続する。さらに、データ通信端末100は、無線LANインターフェース102と無線LANアクセスポイント16とを接続する。
【0038】
アプリケーションサーバ11からルータ14に到達したデータパケットは、分配/合成器141により所定の分配比で2つのルートに分配される。一方のルートは、フェムトセル15を経由して携帯電話無線インターフェース101に到達するルートである。もう一方のルートは、無線LANアクセスポイント16を経由して無線LANインターフェース102に到達するルートである。2つのルートに分配されたデータパケットは、それぞれのルートを通じてデータ通信端末100に送信される。
【0039】
携帯電話無線インターフェース101で受信されたデータパケットと、無線LANインターフェース102で受信されたデータパケットとは、順序制御部103に入力される。両方のデータパケットが入力されると、順序制御部103は、受信バッファを用いてデータパケットの順番を正しく並び替え、分配/合成器104に入力する。分配/合成器104は、入力されたデータパケットを合成する。分配/合成器104で合成されたデータパケットは、データ通信端末100のアプリケーションで使用される。
【0040】
なお、データ通信端末100は、各ルートで受信したデータパケットの最新のシーケンス番号を分配/合成器104で記憶しており、各ルートに対応する最新のシーケンス番号に基づいて順序制御部103が用いる受信バッファのサイズを決定している。また、データ通信端末100は、各ルートで到達したデータパケットの数を分配/合成器104で計測しており、その計測結果を定期的にルータ14に報告する。
【0041】
ルータ14は、各ルートに対して予め設定されているデータパケットの分配比と、データ通信端末100から報告されたデータパケットの数に基づく比率とを対比して、例えば分配の比率より到達の比率が少ないルートへのパケット配分を少なくする。このようなルータ14による制御を行うことで、損失の少ないルートに、より多くのパケットを振り分けることが可能になり、分配比率が最適化される。
【0042】
ここでは、携帯電話無線インターフェース101と無線LANインターフェース102とを搭載したデータ通信端末100を例示したが、他の無線通信インターフェースを搭載したデータ通信端末100であってもよい。例えば、インターネット・プロトコル(IP)のデータパケットを扱える無線通信インターフェースであればよく、WiMAXやBluetoothなど他の無線通信インターフェースを使用することも可能である。また、同じ無線アクセス方式の複数の無線通信インターフェースを使用することも可能である。
【0043】
ここで、図3を参照しながら、アプリケーションサーバ11から送信されたTCP/IPのデータパケットがデータ通信端末100に届くまでのシーケンス、及びデータ通信端末100による応答のシーケンスについて説明する。但し、図3に示すシーケンスは、データパケットの順序制御を行わない場合に生じる再送制御の様子を示すものである。
【0044】
図3に示すように、データパケット(Data#1〜Data#10)は、アプリケーションサーバ11から正しい順序で送信される。これらのデータパケットは、予めルータ14に設定された分配比で無線LANアクセスポイント16及びフェムトセル15に分配される。なお、無線LANアクセスポイント16からデータ通信端末100に至る遅延よりもフェムトセル15からデータ通信端末100に至る遅延の方が大きいものとする。
【0045】
そのため、Data#4のデータパケットがフェムトセル15からデータ通信端末100に届くよりも先に、Data#5からData#10のパケットが無線LANアクセスポイント16からデータ通信端末100に届く。まず、Data#1からData#3に対応するACK(確認応答)として、ACK#1からACK#3が正しくアプリケーションサーバ11に返却される。しかし、Data#4の到着が遅れているため、先に到着したData#5からData#10に対応したACKとして、重複ACK(DupACK#3)がアプリケーションサーバ11に返却される。
【0046】
アプリケーションサーバ11は、TCPのプロトコルに従い、重複ACKを3回受信したことを受けてData#4が損失したと判断する。そして、アプリケーションサーバ11は、同じデータを再送(Retransmission#4)する。さらに、アプリケーションサーバ11は、輻輳状態と判断して送信ウィンドウを小さくし、送信レートを落とす処理を行う。このように、データパケットの順序を修正しないと、実際にはデータを損失していなくても無駄な再送データが送出されたり、送信ウィンドウが縮小されたりしてスループットが低下してしまう。そのため、データ通信端末100は、所定量の受信データパケットを溜め込み、データパケットの順序を正しく整えてから受信パケットをTCP層に転送する順序制御を行う。
【0047】
ところで、TCPのプロトコルでは、データパケットの送信を開始する前に、通信相手との間でコネクションを確立し、データ通信が終了したらコネクションを切断するという処理が行われる。図4に示すように、TCPヘッダには、データパケットの順番を判定するためのシーケンス番号が含まれている。まず、コネクション確立時に乱数で初期化された32ビットの値がシーケンス番号に設定され、それ以降はデータパケットを送信する度に、送信したデータパケットのバイト数だけ加算した値がシーケンス番号に設定される。そのため、受信したデータパケットに含まれるTCPヘッダ中のシーケンス番号及びデータオフセットと、IPヘッダ中のヘッダ長及びパケット長とを調べることにより、次に受信が予定されているデータパケットのシーケンス番号を知ることができる。
【0048】
このように、1つのコネクションの中でシーケンス番号の初期値が与えられ、1つのコネクションの中でデータパケットの順序が管理される。1つ1つのコネクションは、終点IPアドレス、始点IPアドレス、終点ポート番号、始点ポート番号、プロトコル番号(TCP=6)の組み合わせに基づいて識別することができる。なお、データ通信端末100は、1つのコネクションについて1つの受信バッファを用意してもよいし、複数のコネクションで使用できるように複数の受信バッファを用意してもよい。つまり、コネクション毎に受信バッファを用意すれば、コネクション単位で順序制御を行うことができる。
【0049】
以上、データ通信システム10の構成について説明した。
【0050】
[2−2:データ通信端末100の構成]
次に、図2を参照しながら、本実施形態に係るデータ通信端末100の構成について、より詳細に説明する。図2は、本実施形態に係るデータ通信端末100の構成について、より詳細に説明するための説明図である。
【0051】
図2に示すように、データ通信端末100は、無線LANインターフェース102と、携帯電話無線インターフェース101と、順序制御部103と、分配/合成器104と、表示部111と、操作部112と、記憶部113と、制御部114と、音声画像処理部115と、スピーカ116と、マイク117と、通信インターフェース118、119とにより構成される。順序制御部103、分配/合成器104、表示部111、操作部112、記憶部113、制御部114、音声画像処理部115は、バスで接続されている。また、記憶部113は、順序制御部103により受信バッファとして利用される。
【0052】
表示部111は、画像を表示する表示手段である。操作部112は、ユーザがデータ通信端末100を操作するための入力手段である。記憶部113は、データを記憶することが可能な記憶手段である。制御部114は、データ通信端末100が有する各構成要素の動作を制御する手段である。音声画像処理部115は、表示部111に画像を表示させる表示制御手段である。また、音声画像処理部115は、スピーカ116に音声を出力したり、マイク117から入力された音声を処理する音声処理手段である。通信インターフェース118、119は、無線LAN方式や携帯電話無線方式以外のアクセス方式に対応した通信インターフェースである。
【0053】
以上、データ通信端末100の構成について説明した。なお、本実施形態に係るデータパケットの順序制御方法は、主に順序制御部103の機能を利用して実現される。そこで、以下では順序制御部103の詳細な構成について説明する。
【0054】
[2−3:順序制御部103の詳細な構成]
順序制御部103は、図5〜図13に示した方法でデータパケットの順序制御を実行する。図5〜図13は、順序制御部103の動作について説明するための説明図である。なお、本来のシーケンス番号はデータパケットのバイト数ずつ増加していくが、以下では、簡単のためにデータパケットの順番を示す数がシーケンス番号と一致していると仮定して説明を進める。また、受信バッファのサイズも本来は必要なデータパケットのバイト数で表現されるべきあるが、簡単のためにパケットの数で示している。さらに、以下の説明においては、無線LAN方式に対応するルートを通信路#1と表記し、携帯電話方式に対応するルートを通信路#2と表記する。
【0055】
まず、図5を参照する。図5に示すように、受信バッファのサイズは、8データパケット分に設定されているものとする。データパケットを受信すると、順序制御部103は、受信したデータパケットのシーケンス番号が受信バッファの先頭に格納されるべきデータパケットのシーケンス番号より小さいか否かを判断する。例えば、シーケンス番号1のデータパケットが受信されていない場合、受信バッファの先頭に格納すべきデータパケットは、シーケンス番号が2以降のデータパケットである。図5の例では、まず、シーケンス番号1のデータパケットが受信されている。そのため、シーケンス番号1のデータパケットは、受信バッファに格納されずに、そのまま上位層(TCP層)に転送される。
【0056】
シーケンス番号1のデータパケットが上位層に転送されると、受信バッファの先頭に格納されるべきデータパケットは、シーケンス番号が3以降のデータパケットになる。図5の例では、続いてシーケンス番号2のデータパケットが受信されている。そのため、シーケンス番号2のデータパケットは、受信バッファに格納されずに、そのまま上位層に転送される。同様に、シーケンス番号2のデータパケットが上位層に転送されると、受信バッファの先頭に格納されるべきデータパケットは、シーケンス番号が4以降のデータパケットになる。図5の例では、続いてシーケンス番号3のデータパケットが受信されている。そのため、シーケンス番号3のデータパケットは、受信バッファに格納されずに、そのまま上位層に転送される。
【0057】
このように、順序制御部103は、受信したデータパケットのシーケンス番号が受信バッファの先頭に格納されるべきデータパケットのシーケンス番号より小さい場合に、受信したデータパケットをそのまま上位層に転送する。
【0058】
次に、図6を参照する。図6の例は、既にシーケンス番号1〜3のデータパケットが上位層に転送された状態を示している。また、図6の例では、受信バッファにシーケンス番号5、6、7、9のデータパケットが格納されている。つまり、図6の例は、シーケンス番号1〜3を受信した後、シーケンス番号4のデータパケットが受信される前に、シーケンス番号5、6、7、9のデータパケットが受信された状態を示している。この状態で、通信路#1を介してシーケンス番号10のデータパケットが受信され、次いで、通信路#2を介してシーケンス番号4のデータパケットが受信された場合について考える。
【0059】
通信路#1を介してデータパケットが受信されると、順序制御部103は、通信路#1を介して受信されたデータパケットのうち、最新のデータパケットのシーケンス番号を示す最新シーケンス番号を更新する。この場合、通信路#1の最新シーケンス番号は10に更新される。同様に、通信路#2を介してデータパケットが受信されると、順序制御部103は、通信路#2を介して受信されたデータパケットのうち、最新のデータパケットのシーケンス番号を示す最新シーケンス番号を更新する。この場合、通信路#2の最新シーケンス番号は4に更新される。
【0060】
最新シーケンス番号を更新した場合、順序制御部103は、図7に示すように、更新後の最新シーケンス番号に基づいて受信バッファのサイズを変更する。なお、変更後の受信バッファサイズBは、通信路#1の最新シーケンス番号をS1、通信路#2の最新シーケンス番号をS2と表現すると、下記の式(1)に基づいて算出される。図7の例ではS1=10及びS2=4であるから、受信バッファサイズBは7となる。最新シーケンス番号を更新した場合、順序制御部103は、下記の式(1)に基づいて受信バッファサイズBを算出し、図7に示すように、算出結果に応じて受信バッファのサイズを変更する。
【0061】
B = |S1−S2|+1
…(1)
【0062】
受信バッファのサイズを変更した後、順序制御部103は、図8に示すように、受信したデータパケットを受信バッファに格納する。例えば、通信路#1を介して受信されたシーケンス番号10のデータパケットは、受信バッファの最後尾に格納される。一方、通信路#2を介して受信されたシーケンス番号4のデータパケットは、受信バッファの先頭に格納される。図8に示すように、受信バッファには、未着のデータパケット分だけデータ格納領域が確保されている。図8の例では、シーケンス番号4、8のデータパケットが未着のため、シーケンス番号4、8のデータパケットに対応するデータ格納領域が格納されている。そのため、通信路#2を介して受信されたシーケンス番号4のデータパケットは、シーケンス番号4に対応するデータ格納領域に格納される。
【0063】
シーケンス番号4のデータパケットを受信バッファの先頭に格納すると、図9に示すように、受信バッファの先頭から順に順序が揃ったデータパケットの組(図9の例では、シーケンス番号4〜7のデータパケット)が得られる。先頭から順に順序が揃ったデータパケットの組が得られると、順序制御部103は、図9に示すように、順序が揃ったデータパケットの組を上位層に転送する。つまり、受信バッファの先頭から順に、シーケンス番号が連続する一又は複数のデータパケットが揃った場合に、そのデータパケットの組が上位層に転送される。順序が揃ったデータパケットを上位層に転送した後、順序制御部103は、図10に示すように、受信バッファ内のデータ格納領域及びデータパケット(ウィンドウ)の位置を先頭に詰める。
【0064】
ところで、図11に示すように、一方の通信路(この例では通信路#2)のデータパケットが損失した場合、他方の通信路(この例では通信路#1)のデータパケットが受信バッファに格納しきれず、溢れてしまうことがある。この場合、順序制御部103は、受信バッファに格納されているデータパケットのうち、先頭に近い順に順序が揃っているデータパケットを上位層に転送する。そして、順序制御部103は、ウィンドウの位置を先頭に詰め、受信したデータパケットを受信バッファに格納する。図11の例では、シーケンス番号4のデータパケットが未着の状態でシーケンス番号5〜7のデータパケットが上位層に転送されている。そのため、上位層は、図12に示すように、シーケンス番号4のデータパケットに対する再送要求を行う。
【0065】
また、図13に示すように、受信バッファに既に格納されているデータパケットと同じデータパケットが受信されることもある。重複してデータパケットが受信された場合、順序制御部103は、図13に示すように、受信したデータパケットを破棄する。
【0066】
以上、順序制御部103の詳細な構成について説明した。
【0067】
図6〜図10に示した例では、通信路の遅延が異なることにより、通信路#2のデータパケットが6個程度のパケット分だけ通信路#1のデータパケットに追い越されている。しかし、上述した順序制御部103の機能を利用することで、パケット入れ替わり量を吸収可能な受信バッファを用いてデータパケットの順序を修正することが可能になる。また、図11及び図12に示した例のように、通信路#2における何らかの不具合によってシーケンス番号4のデータパケットを損失した場合でも、通信路#1を介して受信したデータパケットで受信バッファが溢れることにより、上位層にシーケンス番号5〜7のデータパケットが転送される。そして、上位層からシーケンス番号4のデータパケットに対する再送要求が送信される。
【0068】
上記のように、受信バッファが溢れたタイミングで上位層から再送要求が送信される。しかし、受信バッファのサイズが十分に小さく抑えられているため、受信バッファが溢れるまでに要する時間が短くて済む。その結果、データパケットの損失が発生しても、欠損したデータパケットに対する再送要求が送信されるまでの遅延が抑制される。図14は、通信路#1及び#2の最新シーケンス番号の更新に伴う受信バッファサイズの更新の様子を示したものである。点線は、通信路#1及び#2のシーケンス番号の差を示している。また、遅延の大きい方の最新シーケンス番号が更新されたときに受信バッファサイズが更新されるため、受信バッファのサイズは鎖線のようになる。上記のような構成にすることで、一方の通信路からデータパケットが届かなくなった場合にも、受信バッファのサイズが拡大してしまうことを防止できるようになる。
【0069】
[2−4:順序制御の流れ]
次に、図15〜図17を参照しながら、本実施形態に係る順序制御の流れについて説明する。図15〜図17を参照しながら、本実施形態に係る順序制御の流れについて説明するための説明図である。
【0070】
図15に示すように、データパケットが受信され、順序制御が開始されると、データ通信端末100は、IPヘッダ及びTCPヘッダをチェックする(S101)。次いで、データ通信端末100は、受信したデータパケットが順序制御の対象か否かを判定する(S102)。受信したデータパケットが順序制御の対象である場合、データ通信端末100は、処理をステップS104に進める。一方、受信したデータパケットが順序制御の対象でない場合、データ通信端末100は、処理をステップS103に進める。
【0071】
処理をステップS103に進めた場合、データ通信端末100は、受信したデータパケットを上位層へ転送し(S103)、処理をステップAへと進める。一方、処理をステップS104に進めた場合、データ通信端末100は、通信路毎に最新シーケンス番号を更新する(S104)。次いで、データ通信端末100は、受信バッファのサイズを更新するか否かを判定する(S105)。例えば、データ通信端末100は、上記の式(1)に基づいて受信バッファのサイズを算出し、算出したサイズと現状のサイズと比較することで、サイズの更新が必要か否かを判定する。
【0072】
受信バッファのサイズを更新すると判定した場合、データ通信端末100は、処理をステップS106に進める。一方、受信バッファのサイズを更新しないと判定した場合、データ通信端末100は、処理をステップBへと進める。処理をステップS106に進めた場合、データ通信端末100は、受信バッファのサイズを更新する(S106)。次いで、データ通信端末100は、ウィンドウの位置を再設定する(S107)。次いで、データ通信端末100は、受信したデータパケットにより受信バッファが溢れる場合に、受信バッファの前方に位置するデータパケットを上位層に転送し(S108)、処理をステップBへと進める。
【0073】
図16に示すように、処理をステップBへと進めた場合、データ通信端末100は、受信したデータパケットのシーケンス番号を参照し、受信バッファ内のどの位置に格納されるかを判定する(S109)。受信したデータパケットがウィンドウより前に格納される場合、データ通信端末100は、処理をステップS110に進める。また、受信したデータパケットがウィンドウより後に格納される場合、データ通信端末100は、処理をステップS111に進める。さらに、受信したデータパケットがウィンドウの中に格納される場合、データ通信端末100は、処理をステップCへと進める。
【0074】
処理をステップS110に進めた場合、データ通信端末100は、受信したデータパケットを上位層へ転送し(S110)、受信したデータパケットに対する順序制御を終了する。処理をステップS111に進めた場合、データ通信端末100は、ウィンドウの位置を再設定する(S111)。次いで、データ通信端末100は、受信したデータパケットにより受信バッファが溢れる場合に、受信バッファの前方に位置するデータパケットを上位層に転送する(S112)。次いで、データ通信端末100は、受信したデータパケットを受信バッファに格納し(S113)、受信したデータパケットに対する順序制御を終了する。また、処理をステップAへと進めた場合、データ通信端末100は、受信したデータパケットに対する順序制御を終了する。
【0075】
図17に示すように、処理をステップCへと進めた場合、データ通信端末100は、受信したデータパケットが、受信バッファに格納されているデータパケットと重複しているか否かを判定する(S114)。受信したデータパケットが受信バッファに格納されているデータパケットと重複している場合、データ通信端末100は、処理をステップS115に進める。一方、受信したデータパケットが受信バッファに格納されているデータパケットと重複していない場合、データ通信端末100は、処理をステップS116に進める。処理をステップS115に進めた場合、データ通信端末100は、受信したデータパケットを破棄し(S115)、処理をステップAへと進める。
【0076】
処理をステップS116に進めた場合、データ通信端末100は、受信したデータパケットを受信バッファに格納する(S116)。次いで、データ通信端末100は、受信したデータパケットを受信バッファに格納したことにより、受信バッファの先頭から順にデータパケットの順序が揃った場合、順序の揃ったデータパケットを上位層に転送する(S117)。次いで、データ通信端末100は、ウィンドウ位置を再設定し(S118)、処理をステップAへと進める。
【0077】
以上、本実施形態に係る順序制御の流れについて説明した。
【0078】
上記のように、複数の無線アクセス方式に対応したデータ通信端末100が、同時に複数の通信路を経由してデータ通信を行うことでスループットを向上することが可能になる。また、通信路間で遅延が異なる場合や各通信路の遅延が変動する場合にも、データ通信端末100においてデータパケットの順序崩れを修正し、無駄な再送要求を防止し、輻輳制御によるスループット低下を防止することが可能になる。さらに、データパケットの順序制御に用いる受信バッファのサイズをパケット順序の入れ替わり量(上記の式(1)を参照)に応じたサイズとすることで、損失したパケットの再送要求が遅れることを防止することができる。また、この受信バッファのサイズは、通信路の遅延の変動に応じて適応的に制御される。そのため、一部の通信路が不通となっても損失したデータパケットに対する再送要求の発生が遅延することを防ぐことが可能になる。
【0079】
<3:まとめ>
最後に、本実施形態の技術的思想について簡単に纏める。以下に記載する技術的思想は、例えば、PC、携帯電話、携帯ゲーム機、携帯情報端末、情報家電、カーナビゲーションシステム等、種々の情報処理装置(或いは通信端末)に対して適用することができる。
【0080】
上記の情報処理装置の機能構成は次のように表現することができる。当該情報処理装置は、以下に示す記憶部と、受信部と、順序制御部と、記憶サイズ制御部とを有する。当該記憶部は、データを格納するための記憶領域を有する。また、上記の受信部は、所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する。さらに、上記の順序制御部は、前記記憶部を用いて、前記受信部で受信されたデータの順序を修正する。そして、上記の記憶サイズ制御部は、前記受信部で受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する。
【0081】
複数の通信路を用いてデータ列を受信すると、通信路毎に遅延が異なるため、データの順序が入れ替わってしまう。そのため、上記の情報処理装置は、上位層が要求しているデータが受信されるまで記憶部にデータを格納しておくことでデータの順序を修正する。但し、記憶部にデータを格納する方法でデータの順序を修正すると、データの損失が発生した場合に、記憶部にデータを溜め込んでいる時間だけ再送要求が遅延してしまう。しかし、上記の情報処理装置は、記憶サイズ制御部の機能により記憶領域のサイズを動的に制御することで、データの損失が発生した場合に記憶部に溜め込まれるデータの量を抑え、再送要求の遅延を低減することができる。
【0082】
(備考)
上記のデータ通信端末100は、通信端末の一例である。上記の携帯電話無線インターフェース101、無線LANインターフェース102、通信インターフェース118、119は、受信部の一例である。上記の順序制御部103は、順序制御部、記憶サイズ制御部、最大値検出部、入れ替わり量算出部、制御処理部の一例である。
【0083】
以上、添付図面を参照しながら本技術に係る好適な実施形態について説明したが、本技術はここで開示した構成例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本技術の技術的範囲に属するものと了解される。
【符号の説明】
【0084】
10 データ通信システム
11 アプリケーションサーバ
12 ネットワーク
13 ブロードバンドモデム
14 ルータ
141 分配/合成器
15 フェムトセル
16 無線LANアクセスポイント
100 データ通信端末
101 携帯電話無線インターフェース
102 無線LANインターフェース
103 順序制御部
104 分配/合成器
111 表示部
112 操作部
113 記憶部
114 制御部
115 音声画像処理部
116 スピーカ
117 マイク
118、119 通信インターフェース
【特許請求の範囲】
【請求項1】
データを格納するための記憶領域を有する記憶部と、
所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する受信部と、
前記記憶部を用いて、前記受信部で受信されたデータの順序を修正する順序制御部と、
前記受信部で受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する記憶サイズ制御部と、
を備える、
通信端末。
【請求項2】
前記記憶サイズ制御部は、
各通信路を介して受信されたデータについて前記データの順序を示すシーケンス番号を監視し、通信路毎にシーケンス番号の最大値を検出する最大値検出部と、
通信路毎に検出されたシーケンス番号の最大値を通信路間で比較し、当該シーケンス番号の最大値の差に基づいて前記入れ替わり量を算出する入れ替わり量算出部と、
を含む、
請求項1に記載の通信端末。
【請求項3】
前記記憶サイズ制御部は、
前記通信路毎に検出されるシーケンス番号の最大値が更新された場合に、前記入れ替わり量に基づいて前記記憶領域のサイズを制御する制御処理部をさらに含む、
請求項2に記載の通信端末。
【請求項4】
前記記憶領域は、TCPコネクション毎に設けられており、
前記受信部は、複数のTCPコネクションを確立し、TCPコネクション毎に複数の通信路を介してデータを受信する、
請求項2に記載の通信端末。
【請求項5】
前記順序制御部は、
次に上位層へ転送すべきデータを格納するためのデータ格納領域を前記記憶領域の先頭に設定し、当該記憶領域の先頭から順に順序に対応するデータ格納領域を設定し、前記受信部で受信されたデータを順序に対応するデータ格納領域に格納し、前記記憶領域の先頭から順に順序が揃った一又は複数のデータを上位層へ転送する、
請求項2に記載の通信端末。
【請求項6】
前記順序制御部は、
前記受信部で受信されたデータを格納するデータ格納領域がない場合、前記記憶領域に格納されたデータの中で順序の若いデータを上位層に転送し、データ格納領域の設定を更新した後、前記受信部で受信されたデータをデータ格納領域に格納する、
請求項5に記載の通信端末。
【請求項7】
所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する受信ステップと、
データを格納するための記憶領域を用いて、受信されたデータの順序を修正する順序制御ステップと、
受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する記憶サイズ制御ステップと、
を含む、
記憶サイズの制御方法。
【請求項8】
所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する受信機能と、
データを格納するための記憶領域を用いて、受信されたデータの順序を修正する順序制御機能と、
受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する記憶サイズ制御機能と、
をコンピュータに実現させるためのプログラム。
【請求項1】
データを格納するための記憶領域を有する記憶部と、
所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する受信部と、
前記記憶部を用いて、前記受信部で受信されたデータの順序を修正する順序制御部と、
前記受信部で受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する記憶サイズ制御部と、
を備える、
通信端末。
【請求項2】
前記記憶サイズ制御部は、
各通信路を介して受信されたデータについて前記データの順序を示すシーケンス番号を監視し、通信路毎にシーケンス番号の最大値を検出する最大値検出部と、
通信路毎に検出されたシーケンス番号の最大値を通信路間で比較し、当該シーケンス番号の最大値の差に基づいて前記入れ替わり量を算出する入れ替わり量算出部と、
を含む、
請求項1に記載の通信端末。
【請求項3】
前記記憶サイズ制御部は、
前記通信路毎に検出されるシーケンス番号の最大値が更新された場合に、前記入れ替わり量に基づいて前記記憶領域のサイズを制御する制御処理部をさらに含む、
請求項2に記載の通信端末。
【請求項4】
前記記憶領域は、TCPコネクション毎に設けられており、
前記受信部は、複数のTCPコネクションを確立し、TCPコネクション毎に複数の通信路を介してデータを受信する、
請求項2に記載の通信端末。
【請求項5】
前記順序制御部は、
次に上位層へ転送すべきデータを格納するためのデータ格納領域を前記記憶領域の先頭に設定し、当該記憶領域の先頭から順に順序に対応するデータ格納領域を設定し、前記受信部で受信されたデータを順序に対応するデータ格納領域に格納し、前記記憶領域の先頭から順に順序が揃った一又は複数のデータを上位層へ転送する、
請求項2に記載の通信端末。
【請求項6】
前記順序制御部は、
前記受信部で受信されたデータを格納するデータ格納領域がない場合、前記記憶領域に格納されたデータの中で順序の若いデータを上位層に転送し、データ格納領域の設定を更新した後、前記受信部で受信されたデータをデータ格納領域に格納する、
請求項5に記載の通信端末。
【請求項7】
所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する受信ステップと、
データを格納するための記憶領域を用いて、受信されたデータの順序を修正する順序制御ステップと、
受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する記憶サイズ制御ステップと、
を含む、
記憶サイズの制御方法。
【請求項8】
所定の順序で受信されるべき複数のデータを含むデータ列が複数の通信路に分けて送信された場合に、当該各通信路を介して各データを受信する受信機能と、
データを格納するための記憶領域を用いて、受信されたデータの順序を修正する順序制御機能と、
受信されるデータの順序が入れ替わっている度合いを示す入れ替わり量に基づいて前記記憶領域のサイズを動的に制御する記憶サイズ制御機能と、
をコンピュータに実現させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2012−191251(P2012−191251A)
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願番号】特願2011−50481(P2011−50481)
【出願日】平成23年3月8日(2011.3.8)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願日】平成23年3月8日(2011.3.8)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Bluetooth
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
[ Back to top ]