(57)【要約】【課題】上位層へ渡すデータユニットの順序制御をデータリンク層にて行う機能を有する受信装置を用いた通信において通信網の実質的な利用率を向上させる。【解決手段】移動機１０のＣＰＵ１１は、定期的に、トランスポート層の通信プロトコルを特定し、特定した通信プロトコルから定まる、通信網の利用率の低下を招かない条件を示す条件情報を取得し、この条件情報を条件領域１３２に書き込む。また、ＣＰＵ１１は、無線部１４を用いてＳＤＵを受信し、当該ＳＤＵが引き渡し領域１３３に即座に書き込まれた場合に引き渡し領域１３３へのＳＤＵの書き込み履歴が上記条件を満たすかを判定し、受信したＳＤＵを、満たす場合には引き渡し領域１３３に、満たさない場合には退避領域１３１に書き込む。また、ＣＰＵ１１は、引き渡し領域１３３に、退避領域１３１上のＳＤＵを、当該ＳＤＵよりも先に書き込まれるべき全てのＳＤＵが書き込まれた後に書き込む。【選択図】      図８
2005150951.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域を有する記憶手段と、
データリンク層にて、上位層からデータリンク層に引き渡された順序で前記記憶領域に書き込まれるべきデータユニットを受信する受信手段と、
トランスポート層の通信プロトコルから定まる条件であって通信網の利用率の低下を招かない条件を示す情報を取得する取得手段と、
前記受信されたデータユニットを前記記憶領域に書き込む書き込み手段と、
前記受信されたデータユニットが前記書き込み手段により前記記憶領域へ即座に書き込まれた場合に前記記憶領域へのデータユニットの書き込み履歴が前記取得手段に取得された情報により示される条件を満たすか否かを判定する条件判定手段と、
前記条件判定手段による判定結果が否定的な場合にのみ、前記受信されたデータユニットの前記記憶領域に書き込まれるタイミングが、前記受信されたデータユニットよりも先に前記記憶領域に書き込まれるべき未受信のデータユニットが前記記憶領域に書き込まれるタイミングよりも後になるように、前記書き込み手段を制御する制御手段と、
前記上位層にて、前記記憶領域に書き込まれたデータユニットを書き込まれた順に読み出す読み出し手段と
を有する受信装置。
【請求項２】
前記受信されたデータユニットが前記書き込み手段により前記記憶領域に即座に書き込まれた場合に前記記憶領域へのデータユニットの書き込み順序が前記上位層からデータリンク層へ引き渡された順序に合致するか否かを判定する入れ替わり判定手段を有し、
前記条件判定手段は、前記入れ替わり判定手段による判定結果が否定的な場合にのみ、前記受信された前記データユニットが前記書き込み手段により前記記憶領域へ即座に書き込まれた場合に前記記憶領域への前記データユニットの書き込み履歴が前記取得手段に取得された情報により示される条件を満たすか否かを判定し、
前記制御手段は、前記条件判定手段による判定結果が否定的な場合にのみ、前記受信されたデータユニットの前記記憶領域に書き込まれるタイミングが、前記受信されたデータユニットよりも先に前記記憶領域に書き込まれるべき未受信の前記データユニットが前記記憶領域に書き込まれるタイミングよりも後になるように、前記書き込み手段を制御する
ことを特徴とする請求項１に記載の受信装置。
【請求項３】
定期的にタイムアウトするタイマを有し、
前記取得手段は、前記タイマがタイムアウトしたときに、前記条件を示す情報を取得する
ことを特徴とする請求項１に記載の受信装置。
【請求項４】
前記取得手段に取得された情報により示される、トランスポート層の通信プロトコル毎の前記条件から、前記受信手段によるデータユニットの受信順序が乱れた場合に最も早く満たされる条件を選択する選択手段を有し、
前記取得手段は前記選択された条件を示す情報を取得する
ことを特徴とする請求項１に記載の受信装置。
【請求項５】
前記受信手段は、データリンク層にて、無線リンクを用いて、上位層からデータリンク層に引き渡された順序で前記記憶領域に書き込まれるべきデータユニットを受信する
ことを特徴とする請求項１に記載の受信装置。
【請求項６】
請求項２に記載の受信装置と、
トランスポート層にて、更新されるシーケンス番号が付されたデータセグメントをシーケンス番号の若い順に送信し、最も若いシーケンス番号が付された未受信のデータセグメントを通知する確認応答セグメントを受信し、既に受信した確認応答セグメントと同一のデータセグメントを通知する確認応答セグメントを一定数よりも多く受信すると該データセグメントを再送する送信装置と
を有し、
前記受信手段は、データリンク層にて、前記送信装置から送信されたデータセグメントを１つずつ内包するデータユニットであって上位層からデータリンク層に引き渡された順序で前記記憶領域に書き込まれるべきデータユニットを受信し、
前記取得手段は、前記一定数を示す情報を取得し、
前記条件判定手段は、前記入れ替わり判定手段による判定結果が否定的な場合にのみ、前記入れ替わり判定手段による判定結果が最後に肯定的となってから前記記憶領域に書き込まれたデータユニットの数が前記取得された情報で示される前記一定数未満であるか否かを判定する
ことを特徴とする通信システム。
【請求項７】
前記送信装置は、更に、トランスポート層にて、既に受信した確認応答セグメントと同一のデータセグメントを通知する確認応答セグメントを受信すると未送信のデータセグメントを送信する
ことを特徴とする請求項６に記載の通信システム。
【請求項８】
コンピュータに、
トランスポート層の通信プロトコルから定まる条件であって通信網の利用率の低下を招かない条件を示す情報を取得する第１の手順と、
データリンク層から上位層へのデータユニットの引き渡しに用いられる記憶領域であって書き込まれたデータユニットが書き込まれた順に上位層にて読み出される記憶領域に上位層からデータリンク層に引き渡された順序で書き込まれるべきデータユニットを受信し、前記受信したデータユニットが前記記憶領域へ即座に書き込まれた場合に前記記憶領域へのデータユニットの書き込み履歴が前記取得された情報により示される条件を満たすか否かを判定し、判定結果が肯定的な場合には前記受信したデータユニットを前記記憶領域に書き込み、否定的な場合にはデータユニットを退避する、という処理を繰り返す第２の手順と、
を実行させるとともに、
前記退避されたデータユニットよりも先に前記記憶領域に書き込まれるべき全てのデータユニットが前記記憶手段に書き込まれた後に、前記退避されたデータユニットを前記記憶領域に書き込む第３の手順
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データリンク層およびトランスポート層における通信制御技術に関する。
【背景技術】
【０００２】
ＯＳＩ階層モデルにおけるデータリンク層の通信プロトコルの１つに、無線リンクの制御のために標準化されたＲＬＣ（Radio Link Control）プロトコルがある。ＲＬＣプロトコルは、非特許文献１に示されるように、３ＧＰＰ（3rd Generation Partnership Project）において提案されたものであり、ＲＬＣプロトコルには、データリンク層を構成する２つの副層のうち、上位側のＲＬＣ副層にて通信ノードが行う操作（通信処理）が定められている。
【０００３】
ＲＬＣ副層における操作のモードには、ＡＭ（Acknowledgement Mode）、ＵＭ（Unacknowledgement Mode）、及びＴＭ（Transparent Mode）があり、操作モードがＡＭのＲＬＣ副層にて送信操作を行う送信ノードとの間でデータ転送可能な受信ノードは、操作モードがＡＭのＲＬＣ副層にて受信操作を行う受信ノードのみである。ＲＬＣ副層における操作モードのうち、本発明が解決しようとする課題に関係するのはＡＭのみであるから、以降、操作モードがＡＭのＲＬＣ副層に着目して説明する。なお、以降の説明において、「ＲＬＣ副層」は、操作モードがＡＭのＲＬＣ副層を意味する。
【０００４】
ＲＬＣ副層では、送信ノードと受信ノード間のデータ転送が、上位層との間で受け渡されるデータユニット（以降、ＳＤＵ（Service Data Unit）と称す）の先頭から順に切り出された部分データにヘッダを付加して生成されるデータユニット（以降、ＰＤＵ（Protocol Data Unit）と称す）を用いて行われる。ＰＤＵのヘッダには、当該ＰＤＵが生成された順序を示すシーケンス番号と切り出し元のＳＤＵの長さ情報が含まれている。また、ＲＬＣ副層では、データ転送において消失したＰＤＵがシーケンス番号を用いた選択再送（Selective Repeat）により再送される。なお、以降の説明では、「ＳＤＵ」及び「ＰＤＵ」はＲＬＣ副層におけるＳＤＵ及びＰＤＵを意味する。
【０００５】
ところで、無線リンクは有線の通信リンクに比較してデータ転送における誤り率が高い。このため、再送されたＰＤＵが再び消失することも起こり易い。つまり、再送遅延が大きい。したがって、ＲＬＣ副層では、ＰＤＵのみならず、ＳＤＵの受信順序（厳密には、ＳＤＵの組み立てに必要なＰＤＵをＭＡＣ（Medium Access Control）副層から渡され終える時点の後先）まで入れ替わる可能性がある。このようなＳＤＵの受信順序の入れ替わりによる影響を、上位層に比較して再送コストが低いＲＬＣ副層にて吸収するために、ＲＬＣ副層では、受信ノードがＳＤＵの順序制御を行う。具体的には、受信ノードは、ＳＤＵの受信順序が入れ替わり、未受信のＳＤＵよりも後に上位層へ渡すべきＳＤＵを先に受信した場合、このＳＤＵを、未受信のＳＤＵを受信して上位層に渡すまで保持する。このような順序制御により、ＳＤＵが送信ノードにて上位層から渡された順序で受信ノードにてＲＬＣ副層から上位層に渡されることが保証されている。なお、ＳＤＵの受信順序の入れ替わりを検出するためには、受信ノードが、送信ノードにてＳＤＵが上位層からＲＬＣ副層へ渡された順序を把握する必要がある。この把握は、ＰＤＵのヘッダに含まれているシーケンス番号と長さ情報を用いることで実現可能である。
【０００６】
しかし、このような順序制御によるＳＤＵの遅延は、通信網の実質的な利用率を低下させる原因となる。なお、「通信網の利用率」は、通信網により提供された網資源の容量（例えば、利用可能な通信リンクの帯域幅や当該通信リンクを利用可能な期間）に対する実際に利用した網資源の量の比率を意味し、「通信網の実質的な利用率」は、通信網により提供された網資源の容量に対する有効に利用した網資源の量の比率を意味する。ＲＬＣ副層におけるＳＤＵの遅延が通信網の実質的な利用率の低下を招くことになる理由は、トランスポート層で行われるデータ転送の種類によって異なるため、場合分けして説明する。
【０００７】
［バルクデータ転送の場合］
バルクデータ転送では、一般に、上位層にて、通信網に滞留するデータ量を調節して通信網の利用率を適切に保つフロー制御が行われる。このようなフロー制御の一例としては、ＴＣＰ（Transmission Control Protocol）における輻輳制御が挙げられる。ＴＣＰのフロー制御では、送信ノードが受信ノードから通知される確認応答セグメントによって、データユニットが通信網から正しく抜け出したことを確認した後、データユニットを新たに送出することで、通信網に滞留するデータ量を管理している。したがって、ＲＬＣのように、順序制御等の目的で、既に受信したデータユニットを遅延させてから上位層へ渡す場合、確認応答の通知も遅延することになり、その間、送信ノードはデータユニットの送信を中断することになる。こうしたフロー制御の遅れは、通信網に滞留するデータを減少させ、通信網の実質的な利用率の低下を招く要因になる。
【０００８】
［ストリーミング転送の場合］
ストリーミング転送では、一般に、データの遅延に制約がある。したがって、ＲＬＣ副層のように、上位層へ渡すことが可能なデータユニットを遅延させてから上位層へ渡すことがあり得る層がトランスポート層の下位に存在すると、トランスポート層にて、受信ノードが既に役に立たなくなっているデータユニットを受け取る可能性が高くなる。このようなデータユニットは破棄され、利用されないから、このようなデータユニットの転送に用いられた網資源は無駄に使用されたことになる。これが、通信網の実質的な利用率の低下を招く理由である。
【０００９】
このような不都合を避けるために、ＲＬＣ副層にてＳＤＵの順序制御を行わないようにすることが考えられる。このようにすれば、ＲＬＣ副層におけるＳＤＵの遅延に起因した通信網の実質的な利用率の低下は生じない。しかし、トランスポート層において、ＳＤＵの入れ替わりをＳＤＵのロスと誤認識してしまい、不適切な再送制御やフロー制御が行われる可能性がある。そもそも、ＲＬＣ副層にてＳＤＵの順序制御を行うようにした理由に立ち返れば明らかなように、このような順序制御は、ＳＤＵの遅延による悪影響を度外視すれば、通信網の実質的な利用率の向上に寄与している。したがって、ＲＬＣ副層にてＳＤＵの順序制御を行わないようにしても、通信網の実質的な利用率が低下する虞がある。
【非特許文献１】"3GPP specification: 25.322"、［online］、The 3rd Generation Partnership Project、［平成１５年８月２９日検索］、インターネット＜URL:http://www.3gpp.org/ftp/Specs/html-info/25322.html＞
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、上述した背景の下になされたものであり、上位層へ渡すデータユニットの順序制御をデータリンク層にて行う機能を有する受信装置を用いた通信において通信網の実質的な利用率を向上させる技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、記憶領域を有する記憶手段と、データリンク層にて、上位層からデータリンク層に引き渡された順序で前記記憶領域に書き込まれるべきデータユニットを受信する受信手段と、トランスポート層の通信プロトコルから定まる条件であって通信網の利用率の低下を招かない条件を示す情報を取得する取得手段と、前記受信されたデータユニットを前記記憶領域に書き込む書き込み手段と、前記受信されたデータユニットが前記書き込み手段により前記記憶領域へ即座に書き込まれた場合に前記記憶領域へのデータユニットの書き込み履歴が前記取得手段に取得された情報により示される条件を満たすか否かを判定する条件判定手段と、前記条件判定手段による判定結果が否定的な場合にのみ、前記受信されたデータユニットの前記記憶領域に書き込まれるタイミングが、前記受信されたデータユニットよりも先に前記記憶領域に書き込まれるべき未受信のデータユニットが前記記憶領域に書き込まれるタイミングよりも後になるように、前記書き込み手段を制御する制御手段と、前記上位層にて、前記記憶領域に書き込まれたデータユニットを書き込まれた順に読み出す読み出し手段とを有する受信装置を提供する。
【００１２】
また、本発明は、コンピュータに、トランスポート層の通信プロトコルから定まる条件であって通信網の利用率の低下を招かない条件を示す情報を取得する第１の手順と、データリンク層から上位層へのデータユニットの引き渡しに用いられる記憶領域であって書き込まれたデータユニットが書き込まれた順に上位層にて読み出される記憶領域に上位層からデータリンク層に引き渡された順序で書き込まれるべきデータユニットを受信し、前記受信したデータユニットが前記記憶領域へ即座に書き込まれた場合に前記記憶領域へのデータユニットの書き込み履歴が前記取得された情報により示される条件を満たすか否かを判定し、判定結果が肯定的な場合には前記受信したデータユニットを前記記憶領域に書き込み、否定的な場合にはデータユニットを退避する、という処理を繰り返す第２の手順と、を実行させるとともに、前記退避されたデータユニットよりも先に前記記憶領域に書き込まれるべき全てのデータユニットが前記記憶手段に書き込まれた後に、前記退避されたデータユニットを前記記憶領域に書き込む第３の手順を実行させるプログラムを提供する。
【００１３】
上記の受信装置または上記のプログラムを実行したコンピュータでは、データリンク層にて受信されたデータユニットは、通信網の利用率の低下を招かない場合には即座に、それ以外の場合にはデータユニットが記憶領域に書き込まれる順序が上位層からデータリンク層に引き渡された順序となるタイミングで、記憶領域に書き込まれる。記憶領域に書き込まれたデータユニットは、書き込まれた順序で、上位層にて読み出される。この結果、受信装置がデータリンク層にて受信したデータユニットは、通信網の利用率の低下を招かない範囲内であれば即座に、範囲外であれば並べ替えられた後に、上位層へ渡される。
【００１４】
また、本発明は、上記の受信装置において、前記受信されたデータユニットが前記書き込み手段により前記記憶領域に即座に書き込まれた場合に前記記憶領域へのデータユニットの書き込み順序が前記上位層からデータリンク層へ引き渡された順序に合致するか否かを判定する入れ替わり判定手段を設け、前記条件判定手段が、前記入れ替わり判定手段による判定結果が否定的な場合にのみ、前記受信された前記データユニットが前記書き込み手段により前記記憶領域へ即座に書き込まれた場合に前記記憶領域への前記データユニットの書き込み履歴が前記取得手段に取得された情報により示される条件を満たすか否かを判定し、前記制御手段が、前記条件判定手段による判定結果が否定的な場合にのみ、前記受信されたデータユニットの前記記憶領域に書き込まれるタイミングが、前記受信されたデータユニットよりも先に前記記憶領域に書き込まれるべき未受信の前記データユニットが前記記憶領域に書き込まれるタイミングよりも後になるように、前記書き込み手段を制御する、ようにした受信装置を提供する。
【００１５】
この受信装置では、通信網の利用率の低下を招かないか否かの判定は、データリンク層にて受信されたデータユニットが記憶領域に即座に書き込まれた場合に当該記憶領域へのデータユニットの書き込み順序が上位層からデータリンク層へ引き渡された順序に合致するか否かの判定の結果が否定的となった場合にのみ行われる。よって、前述の受信装置およびコンピュータに比較して、通信網の利用率の低下を招かないか否かの判定の回数が少なくなる。
【００１６】
また、本発明は、この受信装置と、トランスポート層にて、更新されるシーケンス番号が付されたデータセグメントをシーケンス番号の若い順に送信し、最も若いシーケンス番号が付された未受信のデータセグメントを通知する確認応答セグメントを受信し、既に受信した確認応答セグメントと同一のデータセグメントを通知する確認応答セグメントを一定数よりも多く受信すると該データセグメントを再送する送信装置とを有する通信システムであって、前記受信手段が、データリンク層にて、前記送信装置から送信されたデータセグメントを１つずつ内包するデータユニットであって上位層からデータリンク層に引き渡された順序で前記記憶領域に書き込まれるべきデータユニットを受信し、前記取得手段が、前記一定数を示す情報を取得し、前記条件判定手段が、前記入れ替わり判定手段による判定結果が否定的な場合にのみ、前記入れ替わり判定手段による判定結果が最後に肯定的となってから前記記憶領域に書き込まれたデータユニットの数が前記取得された情報で示される前記一定数未満であるか否かを判定する、ようにした通信システムを提供する。
【００１７】
この通信システムでは、受信装置は、データリンク層にてデータユニットを受信すると、当該データユニットを記憶領域に即座に書き込んだ場合に当該記憶領域へのデータユニットの書き込み順序が上位層からデータリンク層へ引き渡された順序に合致するか否かを判定し、当該判定の結果が最後に肯定的になってから当該記憶領域に書き込まれたデータユニットの数がトランスポート層でのデータセグメントの再送開始の基準となる一定数未満であれば、受信したデータユニットを即座に当該記憶領域に書き込み、一定数未満でなければ、受信したデータユニットを、当該データユニットが当該記憶領域に書き込まれる順序が上位層からデータリンク層に引き渡された順序となるタイミングで、当該記憶領域に書き込む。この結果、受信装置がデータリンク層にて受信したデータユニットは、トランスポート層での再送を引き起こさない範囲内であれば即座に、範囲外であれば並べ替えられた後に、上位層へ渡される。
【発明の効果】
【００１８】
本発明によれば、上位層へ渡すデータユニットの順序制御をデータリンク層にて行う機能を有する受信装置を用いた通信において通信網の実質的な利用率を向上させることができる。この効果は、トランスポート層での再送の発生を抑制することでも得られる。また、通信網の利用率の低下を招かないか否かの判定の回数が少なくなる態様では、実装上有利という効果も得られる。
【発明を実施するための最良の形態】
【００１９】
［通信システム１００の構成］
図１は本発明の一実施形態に係る通信システム１００の構成を示す図である。この図に示すように、通信システム１００は、使用者に携帯される移動機１０、管轄する無線エリア内の移動機１０と無線通信可能な基地局２０、及び基地局２０が接続されるコアネットワーク３０に接続されるサーバ装置４０を有する。移動機１０は、基地局２０及びコアネットワーク３０を介して、サーバ装置４０と通信可能である。なお、通信システム１００は、ＩＭＴ−２０００（International Mobile Telecommunications-2000）に準拠しており、移動機１０、基地局２０及びサーバ装置４０の数は、１以上の任意の数である。
【００２０】
図２は通信システム１００の通信プロトコル構成を示す図である。この図に示すように、トランスポート層以上の層での通信は移動機１０及びサーバ装置４０のみで終端され、データリンク層以下の層での通信は通信システム１００を構成する全ての装置で終端される。このことから明らかなように、トランスポート層にてデータを送受信可能なのは移動機１０及びサーバ装置４０のみである。移動機１０及びサーバ装置４０のトランスポート層では、様々なトランスポート層の通信プロトコルに従う通信処理が行われ得る。トランスポート層の通信プロトコルとしては、例えば、ＴＣＰが挙げられる。ＴＣＰに従う通信処理を行うサーバ装置４０は、一般的なＴＣＰに従う通信処理と付加的な通信処理を行う。後述の高速再送（Fast Retransmission）は、一般的なＴＣＰに従う通信処理に含まれる。また、後述の制限送信（Limited Transmission）は付加的な通信処理に含まれる。
【００２１】
［高速再送］
ＴＣＰでは、より上位の層から渡されたデータストリームの先頭から順にデータを切り出し、切り出したデータにヘッダを付してデータセグメントを作成する。データセグメントのヘッダには、該当するデータの切り出し位置を示すシーケンス番号が書き込まれる。なお、以降、特に断らない限り、「シーケンス番号」はＴＣＰにおけるシーケンス番号を意味する。送信ノードは、こうして作成されたデータセグメントを送信すると、当該データセグメントに対する再送タイマをスタートさせる。一方、受信ノードは、データセグメントを受信すると、その旨を示す確認応答セグメントを返信する。送信ノードは、確認応答セグメントを受信すると、該当するデータセグメントの送信時にスタートさせた再送タイマを停止し、再送タイムアウトによる当該データセグメントの再送を避ける。ところで、送信ノードは、基本的に、ヘッダに書き込まれたシーケンス番号の順にデータセグメントを送信する。このため、受信ノードは、未受信のデータセグメントのうち、最も若いシーケンス番号のデータセグメントを、次に受信が期待されるデータセグメントに定め、当該データセグメントのシーケンス番号を上記の確認応答セグメントを用いて送信ノードへ通知する。この通知にもかかわらず、期待していないデータセグメントを受信した場合、受信ノードは、直前に送信した確認応答セグメントにより通知したシーケンス番号と同じシーケンス番号を通知する確認応答セグメントを返信する。この確認応答セグメントは重複確認応答セグメントと呼ばれる。送信ノードは、重複確認応答セグメントを再送閾値の数だけ連続して受信すると、データセグメントが消失したとみなし、再送タイムアウトを待たずに、重複確認応答セグメントにより示されるデータセグメントを再送する。これが高速再送である。
【００２２】
［制限送信］
ＴＣＰでは、原則として、送信ノードは、輻輳ウィンドウの範囲外のデータセグメントを送信することはできない。重複確認応答セグメントを受信しても輻輳ウィンドウはスライドしないから、送信ノードは、輻輳ウィンドウ内のデータセグメントが全て送信済みであれば、新たに未送信のデータセグメントを送信することはできない。制限送信は上記の原則を部分的に破るものであり、制限送信を行うことができる送信ノードは、重複確認応答セグメントを受信した場合に輻輳ウィンドウを超えて２つまでの範囲内の未送信のデータセグメントを送信することができる。
【００２３】
なお、本実施形態において、ＴＣＰの高速再送の再送閾値は「３」である。また、図２に示すように、移動機１０及び基地局２０のデータリンク層は、それぞれ、ＲＬＣ副層およびＭＡＣ副層から構成されている。したがって、移動機１０と基地局２０との間では、ＲＬＣ副層にて、ＳＤＵ（実際にはＰＤＵ）が転送される。なお、このＳＤＵはトランスポート層において転送されるデータユニット（例えばセグメント）に１対１で対応しており、１つのＳＤＵは１つのデータユニットを内包する。移動機１０のＭＡＣ副層、基地局２０のＲＬＣ副層、及び基地局２０のＭＡＣ副層は周知のものであるが、移動機１０のＲＬＣ副層は新規のものである。つまり、データリンク層での通信に関して新規な構成を有するのは移動機１０のみである。以降、移動機１０の構成について説明する。
【００２４】
［移動機１０の構成］
図３は移動機１０の構成を示すブロック図である。この図から明らかなように、移動機１０は、一般的なコンピュータと同様に、ＣＰＵ１１が不揮発性メモリ１２に記憶されているプログラムを、ＲＡＭ１３をワークエリアとして実行し、これにより各種処理を行う構成となっている。また、不揮発性メモリ１２には、ユーザインタフェースの提供やプログラムの実行制御を行わせるための制御プログラムと、ＴＣＰに従う通信処理をトランスポート層にて行わせるためのプログラムと、ＵＤＰ（User Datagram Protocol）に従う通信処理をトランスポート層にて行わせるためのプログラムと、ネットワーク層にて通信処理を行わせるプログラムと、ＲＬＣ副層にて通信処理を行わせる下位層プログラム１２１が記憶されている。なお、下位層プログラム１２１以外のプログラムの図示は省略されている。
【００２５】
無線部１４は基地局２０との間で無線信号を送受信するものであり、ＣＰＵ１１から送信すべきデータが供給されると、この送信データにより変調された搬送波を無線区間へ送出し、無線区間を伝播してきた搬送波からデータを復調すると、この受信データをＣＰＵ１１に供給する。この無線部１４及びＣＰＵ１１により、各層での送受信が行われる。操作部１５は操作子を備え、操作子の操作内容を示す信号をＣＰＵ１１に供給する。ディスプレイ１６は、ＣＰＵ１１から供給された画像データで表される画像を表示する。
【００２６】
ＣＰＵ１１は、図示しない電源が投入されると不揮発性メモリ１２から上記の制御プログラムを読み出して実行する。これにより、ＣＰＵ１１は、操作部１５およびディスプレイ１６を用いて、使用者が移動機１０に指示を入力するためのユーザインタフェースを提供する。また、ＣＰＵ１１は、ユーザインタフェースを用いてプログラムの実行指示が入力されると、当該指示に応じたプログラムを不揮発性メモリ１２から読み出して実行する。また、ＣＰＵ１１は、実行しようとするプログラムを実行するために他のプログラムを実行する必要がある場合には、他のプログラムをも不揮発性メモリ１２から読み出して実行する。
【００２７】
下位層プログラム１２１を実行中のＣＰＵ１１は、受信ノードにおけるＳＤＵの順序制御の内容を除いて、一般的なＲＬＣプロトコルに従って通信処理を行う。以降では、一般的なＲＬＣプロトコルに従った通信処理についての説明を省略し、下位層プログラム１２１を実行中のＣＰＵ１１により行われる、ＳＤＵの新しい順序制御に着目して、ＣＰＵ１１の機能を説明する。
【００２８】
ＣＰＵ１１は、まず、ＲＡＭ１３の記憶領域に、ＳＤＵが書き込まれる退避領域１３１、トランスポート層での通信処理の内容から定まる条件であって通信網の利用率の低下を招かない条件を示す条件情報が書き込まれる条件領域１３２、ＲＬＣ副層から上位層への引き渡しのためにＳＤＵが書き込まれる引き渡し領域１３３、及び引き渡し領域１３３へのＳＤＵの書き込み履歴を示す履歴情報が書き込まれる履歴領域１３４を確保する。なお、ネットワーク層にて通信処理を行わせるプログラムを実行中のＣＰＵ１１は、引き渡し領域１３３に書き込まれたＳＤＵを書き込まれた順に読み出す。上記の条件領域１３２に書き込まれる条件情報で表される条件は、トランスポート層の通信プロトコルにより異なる。
【００２９】
［ＴＣＰに関する条件］
トランスポート層にてＴＣＰに従ってデータセグメントを送信するサーバ装置４０は、重複確認応答セグメントを３つ連続して受信すると、データセグメントが消失したとみなし、当該データセグメントを再送する。しかし、データセグメントが消失したのではなく、トランスポート層での受信順序（すなわち、データセグメントが下位層からトランスポート層へ渡される順序）が入れ替わっただけの場合、上記の高速再送は誤再送となってしまう。このような誤再送は通信網の利用率の低下を招くから、受信ノードである移動機１０にて受信が期待されていないデータセグメントを含むＳＤＵをＲＬＣ副層から上位層（具体的にはネットワーク層）へ渡す処理が３回以上連続して起こらないようにすべきである。つまり、ＲＬＣ副層から上位層へ渡されるＳＤＵの順序の入れ替わりが許容されるのは、連続して２回までである。
【００３０】
また、サーバ装置４０は制限送信を行うことができるが、送信できるデータセグメントの数は輻輳ウィンドウを超えて２つまでである。つまり、サーバ装置４０は、１つの目の重複確認応答セグメントを受信した場合には１つの未送信データセグメントを、これに続いて２つ目の重複確認応答セグメントを受信した場合には更に１つの未送信データセグメントを送信するが、これに続いて３つめ目の重複確認応答セグメントを受信した場合には未送信データセグメントを送信しない。このことから明らかなように、サーバ装置４０が３つ目の重複確認応答セグメントを早く受信することにより得られる効果は、１つ目や２つ目の重複確認応答セグメントを早く受信することにより得られる効果よりも小さい。よって、ＲＬＣ副層から上位層へ渡されるＳＤＵの順序の入れ替わりによる影響を完全に見通すことができない場合には、確実に効果が得られるように、移動機１０にて受信が期待されていないデータセグメントを含むＳＤＵをＲＬＣ副層から上位層へ渡す処理の上限を連続して２回までとすることも考えられる。
【００３１】
本実施形態では、高速再送から定まる絶対的な条件と制限送信から定まる効果的な条件のどちらも条件として捉え、より厳しい方の条件（より早く満たされる条件）を採用するようにしている。したがって、ＴＣＰに関する条件は、「連続して２回まで」となっている。
【００３２】
［ＵＤＰに関する条件］
ＵＤＰにはデータグラムの受信順序の入れ替わりに関する制約がない。したがって、いかなる場合であっても、ＲＬＣ副層にてＳＤＵの順序制御を行う必要はない。そこで、本実施形態では、ＵＤＰに関する条件として、「連続して∞回まで」を採用している。
【００３３】
また、ＣＰＵ１１は、一定時間間隔で、トランスポート層の通信プロトコルを特定し、特定した通信プロトコルに関する条件情報を取得し、取得した条件情報を条件領域１３２に書き込む。ただし、特定した通信プロトコルが複数であれば、複数の条件情報を取得し、これらの条件情報から１つの条件情報を選択し、選択した条件情報を条件領域１３２に書き込む。この選択では、最も早く満たされる条件を表す条件情報が選択される。
【００３４】
ＣＰＵ１１によるトランスポート層の通信プロトコルの特定は、例えば、ＣＰＵ１１がトランスポート層にて通信処理を行わせる各プログラムの実行状態を監視することにより実現される。また、ＣＰＵ１１による条件情報の取得は、例えば、ＣＰＵ１１が、特定した通信プロトコルに関する条件情報を、トランスポート層の様々な通信プロトコルについて予め定められた条件情報から選択することにより実現される。なお、本実施形態では、ＴＣＰについて予め定められた条件情報は「連続して２回まで」という条件を示す許容値「２」であり、ＵＤＰについて予め定められた条件情報は「連続して∞回まで」という条件を示す許容値「∞」である。なお、実装における∞の表現形式は様々であり、例えば、負数（例えば「−１」）で表し、負数についてだけ後述の各種判定の内容を変えるようにしてもよいし、ＣＰＵ１１が演算処理を迅速に行うことができる最大の正数で表してもよい。本実施形態では後者の立場をとっており、ＣＰＵ１１は、より小さい許容値の条件情報を選択する。また、ＣＰＵ１１による一定時間間隔での取得は、例えば、ＣＰＵ１１が図示しない発振器から供給されるクロック信号を用いて一定時間でタイムアウトし再スタートするタイマとして動作する一方、このタイマのタイムアウトをトリガとして条件情報の取得動作を行うことにより実現される。
【００３５】
また、ＣＰＵ１１は、無線部１４を用いてＰＤＵを受信し、１つのＳＤＵを組み立てるに足るＰＤＵの受信を完了すると、当該１つのＳＤＵを組み立てる。つまり、ＣＰＵ１１は、ＳＤＵを受信する。また、ＣＰＵ１１は、１つのＳＤＵを受信すると、このＳＤＵを上位層へ渡した場合に上位層へのＳＤＵの引き渡し順序が連続するか否か、具体的には、当該ＳＤＵよりも先に引き渡し領域１３３に書き込むべき他のＳＤＵを引き渡し領域１３３に書き込み済みか否かを判定する。以降、この判定を入れ替わり判定と呼ぶ。
【００３６】
入れ替わり判定の判定結果が肯定的な場合、ＣＰＵ１１は、入れ替わり判定の対象となったＳＤＵを引き渡し領域１３３に即座に書き込み、これに続けて、先に引き渡し領域１３３に書き込まれるべき他の全てのＳＤＵが引き渡し領域１３３に書き込み済みとなったＳＤＵが退避領域１３１に書き込まれていれば、当該ＳＤＵを、退避領域１３１から読み出して引き渡し領域１３３に書き込むとともに退避領域１３１から削除する。退避領域１３１からのＳＤＵの削除とは、例えば、退避領域１３１内の当該ＳＤＵが書き込まれている領域を開放して上書き可能としたり、当該ＳＤＵを退避領域１３１から消去したりして、退避領域１３１内の当該ＳＤＵを使用不能とすることを意味する。なお、退避領域１３１から読み出して引き渡し領域１３３に書き込むべきＳＤＵが複数の場合、ＣＰＵ１１は、これらを正しい順序で引き渡し領域１３３に書き込む。
【００３７】
逆に、入れ替わり判定の判定結果が否定的な場合、ＣＰＵ１１は、次に述べる条件判定を行う。条件判定では、ＣＰＵ１１は、入れ替わり判定の対象となったＳＤＵを引き渡し領域１３３に即座に書き込んだ場合に履歴領域１３４に書き込まれる履歴情報で表される履歴が条件領域１３２に書き込まれている条件情報で表される条件を満たすか否かを判定する。なお、本実施形態では、履歴情報は、順序が連続していないＳＤＵを上位層へ連続して引き渡した回数（以降、連続回数という）であるから、ＣＰＵ１１は、条件判定を、履歴領域１３４に書き込まれている連続回数が条件領域１３２に書き込まれている許容値未満であるか否かを判定することにより行う。なお、連続回数は、入れ替わり判定の判定結果が一度も肯定的になっていない期間にあっては最初のＳＤＵが受信されてから引き渡し領域１３３に書き込まれたデータユニットの数と一致し、以降の期間にあっては入れ替わり判定の判定結果が最後に肯定的となってから引き渡し領域１３３に書き込まれたデータユニットの数と一致する。
【００３８】
条件判定の判定結果が肯定的な場合、ＣＰＵ１１は、条件判定の対象となったＳＤＵを引き渡し領域１３３に即座に書き込む処理と履歴領域１３４に書き込まれている履歴情報を更新する処理とを行う。履歴情報の更新は、ＣＰＵ１１が、履歴領域１３４に書き込まれている連続回数に１を加算し、加算後の連続回数を履歴領域１３４に上書きすることにより行われる。逆に、条件判定の判定結果が否定的な場合、ＣＰＵ１１は、条件判定の対象となったＳＤＵを退避する。ＳＤＵの退避は、ＣＰＵ１１が、当該ＳＤＵを退避領域１３１に書き込むことにより行われる。こうして退避領域１３１に書き込まれたＳＤＵは、当該ＳＤＵの受信直後ではなく、より遅いタイミングで引き渡し領域１３３に書き込まれる。
【００３９】
［通信システム１００の動作説明］
次に、上述した構成の通信システム１００の動作について説明する。ただし、この動作説明では、移動機１０とサーバ装置４０との間でＴＣＰに従う通信が行われるものとする。また、発明の理解を容易とするために、以下では、通信システム１００の動作について、移動機がデータリンク層にて上位層へ渡すデータユニットの順序を全く制御しない一般的な通信システムにおいてＴＣＰに従う通信が行われた場合の動作や、移動機がデータリンク層にて上位層へ渡すデータユニットの順序を必ず制御する一般的な通信システムにおいてＴＣＰに従う通信が行われた場合の動作と対比して説明する。
【００４０】
［データリンク層にて順序制御を全く行わない一般的な通信システムの動作］
図４は、移動機がデータリンク層にて上位層へ渡すデータユニットの順序を全く制御しない一般的な通信システムがＴＣＰに従う通信を行った場合の通信シーケンスの一例を示す図である。この図に示す通信シーケンスの前提は、サーバ装置が輻輳ウィンドウ内の全てのデータセグメント（シーケンス番号が５００〜２５００のデータセグメント）を順に送信し、２番目に送信されたデータセグメント（シーケンス番号が１０００のデータセグメント）が基地局と移動機との間の無線区間で遅延し、５番目に送信されたデータセグメントよりも後に移動機により受信された、というものである。
【００４１】
この図に示すように、移動機は、１番目のデータセグメントを受信すると、そのシーケンス番号「５００」の直後のシーケンス番号「１０００」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを送信する。次に、移動機は、３番目のデータセグメントを受信する。このデータセグメントのシーケンス番号「１５００」が期待したシーケンス番号「１０００」でないことから、移動機は、期待したシーケンス番号「１０００」を次に受信を期待するデータセグメントのシーケンス番号として示す１番目の重複確認応答セグメントを送信する。次に、移動機は、４番目のデータセグメントを受信して２番目の重複確認応答セグメントを、５番目のデータセグメントを受信して３番目の重複確認応答セグメントを送信する。次に、移動機は、遅延した２番目のデータセグメントを受信する。このデータセグメントのシーケンス番号は１０００であり、シーケンス番号が２５００までの全てのデータセグメントを受信したことになるから、移動機は、シーケンス番号「３０００」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを送信する。
【００４２】
サーバ装置は、移動機が次に受信を期待するデータセグメントのシーケンス番号「１０００」を示す確認応答セグメントを受信し、これに応じて、輻輳ウィンドウをスライドさせ、最後に送信したデータセグメントのシーケンス番号「２５００」の次のシーケンス番号「３０００」のデータセグメントを送信する。次に、サーバ装置は、制限送信により、１番目の重複確認応答セグメントを受信してシーケンス番号「３５００」のデータセグメントを、２番目の重複確認応答セグメントを受信してシーケンス番号「４０００」のデータセグメントを送信する。次に、サーバ装置は、３番目の重複確認応答セグメントを受信する。この時点では、シーケンス番号「３０００」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントはサーバ装置に到着していないから、サーバ装置は、３番目の重複確認応答セグメントの受信をトリガとして高速再送を行う。つまり、シーケンス番号「１０００」のデータセグメントを再送する。
【００４３】
移動機は、シーケンス番号「３０００」のデータセグメントを受信し、これに応じて、シーケンス番号「３５００」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを送信する。次に、移動機は、シーケンス番号「３５００」のデータセグメントを受信し、これに応じて、シーケンス番号「４０００」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを送信する。次に、移動機は、シーケンス番号「４０００」のデータセグメントを受信し、これに応じて、シーケンス番号「４５００」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを送信する。
【００４４】
一方、サーバ装置は、シーケンス番号「３０００」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを受信してシーケンス番号「４５００」のデータセグメントを、シーケンス番号「３５００」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを受信してシーケンス番号「５０００」のデータセグメントを、シーケンス番号「４０００」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを受信してシーケンス番号「５５００」のデータセグメントを送信する。
【００４５】
一方、移動機は、シーケンス番号「４５００」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを送信した後に、シーケンス番号「１０００」のデータセグメントを受信する。このデータセグメントは前述した２番目のデータセグメントの再送セグメントであり、２番目のデータセグメントは既に受信済みであるから、移動機は当該データセグメントを破棄し、シーケンス番号「４５００」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを送信する。この確認応答セグメントは重複確認応答セグメントである。このように、この通信システムでは、無駄なセグメント（例えば、誤再送されたデータセグメント）が通信網に送出されることになる。
【００４６】
［データリンク層にて順序制御を必ず行う一般的な通信システムの動作］
図５は、移動機がデータリンク層にて上位層へ渡すデータユニットの順序を必ず制御する一般的な通信システムがＴＣＰに従う通信を行った場合の通信シーケンスの一例を示す図である。この図に示す通信シーケンスの前提は、図４に示す通信シーケンスの前提と同一である。
【００４７】
この図に示すように、移動機は、１番目のデータセグメントを受信すると、そのシーケンス番号「５００」の直後のシーケンス番号「１０００」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを送信する。次に、移動機は、ＲＬＣ副層にて３〜５番目のデータセグメントを受信した後に２番目のデータセグメントを受信する。ＲＬＣ副層にて順序制御が行われるため、ＲＬＣ副層から上位層（ネットワーク層以上の層）へ渡されるデータセグメントの順序は、２番目のデータセグメント、３番目のデータセグメント、…、そして５番目のデータセグメントとなる。つまり、移動機では、ＲＬＣ副層にて３〜５番目のデータセグメントが遅延される。この遅延により、３〜５番目のデータセグメントを上位層にて受信したときに送信される確認応答セグメントが移動機から送信されるタイミングが遅延し、サーバ装置がデータセグメントの送信を中断する期間が長くなる。それゆえ、スループットの低下に繋がる。
【００４８】
上述した順序制御により、移動機は、トランスポート層にて、期待通りの順序でデータセグメントを受信する。よって、移動機は、シーケンス番号「１５００」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメント、シーケンス番号「２０００」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメント、…、そしてシーケンス番号「３０００」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを順に送信する。
【００４９】
サーバ装置は、移動機が次に受信を期待するデータセグメントのシーケンス番号「１０００」を示す確認応答セグメントを受信し、これに応じて、輻輳ウィンドウをスライドさせ、最後に送信したデータセグメントのシーケンス番号「２５００」の次のシーケンス番号「３０００」のデータセグメントを送信する。移動機は、このデータセグメントを、５番目のデータセグメントを上位層にて受信する前にＲＬＣ副層にて受信し、トランスポート層にて５番目のデータセグメントに続けて受信し、シーケンス番号「３５００」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントを送信する。
【００５０】
サーバ装置は、シーケンス番号「１５００」を次に受信を期待するデータセグメントのシーケンス番号として示す確認応答セグメントから連続して５つの確認応答セグメントを受信し、これに応じて輻輳ウィンドウをスライドさせ、シーケンス番号が３５００〜５５００のデータセグメントを順に送信する。これらのデータセグメントは、送信された順序で、移動機により受信される。
【００５１】
［通信システム１００の動作］
次に、通信システム１００の動作について説明する。ただし、通信システム１００のトランスポート層では、まず、ＴＣＰに従う通信が行われるものとする。この場合の通信シーケンスの一例を図６に示す。この図に示す通信シーケンスの前提は、図４に示す通信シーケンスの前提と同一である。
【００５２】
移動機１０のＣＰＵ１１は、操作部１５およびディスプレイ１６を用いて提供したユーザインタフェースを用いて入力された指示に従い、下位層プログラム１２１とＴＣＰに従う通信処理をトランスポート層にて行わせるプログラムとを不揮発性メモリ１２から読み出して実行する。下位層プログラム１２１を実行することにより、ＣＰＵ１１は、図７及び図８に示す流れの処理を並列に実行する。図７に示すように、ＣＰＵ１１は、図７に示すように、トランスポート層の通信プロトコルがＴＣＰのみであることを特定し、ＴＣＰに関する条件情報を取得してＲＡＭ１３の条件領域１３２に書き込む（ステップＳＡ１及びＳＡ２）。この結果、条件領域１３２には、許容値「２」が書き込まれる。このような処理は一定時間間隔で繰り返されるため、トランスポート層の通信プロトコルがＴＣＰのみである間、条件領域１３２には許容値「２」が一定時間間隔で上書きされる（ステップＳＡ１〜ＳＡ３）。また、ＣＰＵ１１は、図８に示すように、履歴領域１３４に「０」を上書きすることにより連続回数をリセットする（ステップＳＢ１）。
【００５３】
一方、サーバ装置４０は、図６に示すように、トランスポート層にて、１〜５番目のデータセグメント（シーケンス番号が５００〜２５００のデータセグメント）を移動機１０へ送信する。これにより、基地局２０から移動機１０へ、１〜５番目のデータセグメントを内包した各ＳＤＵが、この順序で送信される。
【００５４】
ＣＰＵ１１は、ＲＬＣ副層にて、上記の１番目のＳＤＵを受信する（ステップＳＢ２）。次に、ＣＰＵ１１は、この１番目のＳＤＵを上位層へ渡した場合に上位層へのＳＤＵの引き渡し順序が連続するか否か判定する（ステップＳＢ３）。現時点では上位層へＳＤＵを渡した実績がないから、この入れ替わり判定の結果が肯定的となる。この結果、ＣＰＵ１１は、連続回数をリセットし（ステップＳＢ４）、１番目のＳＤＵを引き渡し領域１３３に書き込み、続いて、退避領域１３１に書き込まれているＳＤＵのうち、先に引き渡し領域１３３に書き込まれるべき他の全てのＳＤＵが引き渡し領域１３３に書き込み済みとなったＳＤＵが退避領域１３１に書き込まれていれば、当該ＳＤＵを、退避領域１３１から読み出して引き渡し領域１３３に書き込みむとともに退避領域１３１から削除する（ステップＳＢ５）。ただし、現時点では、退避領域１３１にＳＤＵが書き込まれていないから、引き渡し領域１３３に書き込まれるのは１番目のＳＤＵのみである。引き渡し領域１３３に書き込まれた１番目のＳＤＵは、上位層にて処理され、その結果、移動機１０からサーバ装置４０へ、トランスポート層にて、次に受信を期待するデータセグメントのシーケンス番号「１０００」を示す確認応答セグメントが送信される。
【００５５】
ＲＬＣ副層にて、ＣＰＵ１１は、次に、３番目のデータセグメントを内包した３番目のＳＤＵを受信する（ステップＳＢ２）。次に、ＣＰＵ１１は、この３番目のＳＤＵについて入れ替わり判定を行う（ステップＳＢ３）。現時点では上位層へ渡したＳＤＵは１番目のＳＤＵのみであるから、この入れ替わり判定の結果は否定的となる。この結果、ＣＰＵ１１は、履歴領域１３４に書き込まれている連続回数が許容値未満であるか否かを判定する（ステップＳＢ６）。現時点では、連続回数は「０」であり、許容値は「２」であるから、この条件判定の結果は肯定的となる。この結果、ＣＰＵ１１は、履歴領域１３４に書き込まれている連続回数に１を加算して履歴領域１３４に上書きする（ステップＳＢ７）。この結果、履歴領域１３４に記憶されている連続回数は「１」となる。次に、ＣＰＵ１１は、３番目のＳＤＵを引き渡し領域１３３に書き込む（ステップＳＢ８）。つまり、ＣＰＵ１１は、ＳＤＵを上位層へ渡す順序を制御しない。引き渡し領域１３３に書き込まれた３番目のＳＤＵは、上位層にて処理され、その結果、移動機１０からサーバ装置４０へ、トランスポート層にて、次に受信を期待するデータセグメントのシーケンス番号「１０００」を示す重複確認応答セグメントが送信される。
【００５６】
ＲＬＣ副層にて、ＣＰＵ１１は、次に、４番目のデータセグメントを内包した４番目のＳＤＵを受信する（ステップＳＢ２）。この４番目のＳＤＵについて、上述の３番目のＳＤＵについて行われた処理と同様の処理が行われ、その結果、履歴領域１３４には連続回数「２」が上書きされ、引き渡し領域１３３には４番目のＳＤＵが書き込まれる（ステップＳＢ３及びＳＢ６〜ＳＢ８）。つまり、ＣＰＵ１１は、ＳＤＵを上位層へ渡す順序を制御しない。引き渡し領域１３３に書き込まれた４番目のＳＤＵは、上位層にて処理され、その結果、移動機１０からサーバ装置４０へ、トランスポート層にて、次に受信を期待するデータセグメントのシーケンス番号「１０００」を示す重複確認応答セグメントが送信される。
【００５７】
ＲＬＣ副層にて、ＣＰＵ１１は、次に、５番目のデータセグメントを内包した５番目のＳＤＵを受信する（ステップＳＢ２）。次に、ＣＰＵ１１は、この５番目のＳＤＵについて入れ替わり判定を行う（ステップＳＢ３）。現時点では上位層へ渡したＳＤＵは１番目、３番目および４番目のＳＤＵのみであるから、つまり第２のＳＤＵを上位層へ渡していないから、この入れ替わり判定の結果は否定的となる。この結果、ＣＰＵ１１は、履歴領域１３４に書き込まれている連続回数が許容値未満であるか否かを判定する（ステップＳＢ６）。現時点では、連続回数は「２」であり、許容値は「２」であるから、この条件判定の結果は否定的となる。この結果、ＣＰＵ１１は、５番目のＳＤＵを、退避領域１３１に書き込むことにより退避する（ステップＳＢ９）。つまり、この時点では、５番目のＳＤＵはＲＬＣ副層にて遅延され、上位層に渡されない。
【００５８】
ＣＰＵ１１は、次に、２番目のデータセグメントを内包した２番目のＳＤＵを受信する（ステップＳＢ２）。次に、ＣＰＵ１１は、この２番目のＳＤＵについて入れ替わり判定を行う（ステップＳＢ３）。現時点では第１のＳＤＵが既に上位層へ渡されているから、この入れ替わり判定の結果は肯定的となる。この結果、ＣＰＵ１１は、連続回数をリセットし（ステップＳＢ４）、２番目のＳＤＵを引き渡し領域１３３に書き込み、続けて、先に引き渡し領域１３３に書き込まれるべき他の全てのＳＤＵが引き渡し領域１３３に書き込み済みとなったＳＤＵが退避領域１３１に書き込まれていれば、当該ＳＤＵを、退避領域１３１から読み出して引き渡し領域１３３に書き込むとともに退避領域１３１から削除する（ステップＳＢ５）。退避領域１３１には５番目のＳＤＵが書き込まれているから、引き渡し領域１３３には、２番目のＳＤＵに続いて５番目のＳＤＵが書き込まれる。つまり、５番目のＳＤＵを移動機１０内でＲＬＣ副層にて遅延させることにより、ＳＤＵを上位層へ渡す順序が制御される。引き渡し領域１３３に書き込まれた２番目のＳＤＵ及び５番目のＳＤＵは、上位層にて順に処理され、その結果、移動機１０からサーバ装置４０へ、トランスポート層にて、次に受信を期待するデータセグメントのシーケンス番号「２５００」を示す確認応答セグメントと次に受信を期待するデータセグメントのシーケンス番号「３０００」を示す確認応答セグメントが順に送信される。
【００５９】
上記の、シーケンス番号「２５００」を示す確認応答セグメントは重複確認応答セグメントではないから、サーバ装置４０がトランスポート層にて重複確認応答セグメントを連続して受信する回数は２回となる。これは、ＴＣＰにおける再送閾値「３」よりも少ないから、高速再送は引き起こされない。つまり、通信システム１００では、順序制御を全く行わない一般的な通信システムにおいて生じた誤再送が生じない。
【００６０】
また、３番目および４番目のＳＤＵはＲＬＣ副層にて遅延されることなく上位層に渡されるから、それらのデータセグメントに対して確認応答セグメントが遅滞なく送信され、制限送信により、サーバ装置４０からシーケンス番号が「３５００」のデータセグメントと「４０００」のデータセグメントが遅滞なく送信される。したがって、サーバ装置４０がデータセグメントの送信を中断する期間は、順序制御を必ず行う一般的な通信システムにおいてサーバ装置がデータセグメントの送信を中断する期間よりも短くなる。
【００６１】
以降の動作は図６に示す通りであり、図６と図４及び図５とを比較すれば明らかなように、通信システム１００のサーバ装置４０がシーケンス番号「５００」のデータセグメントを送信してからシーケンス番号「５５００」のデータセグメントを送信するまでの期間は、一般的な通信システムのサーバ装置がシーケンス番号「５００」のデータセグメントを送信してからシーケンス番号「５５００」のデータセグメントを送信するまでの期間よりも短くて済む。
【００６２】
このような、ＴＣＰに従う通信に並行してＵＤＰに従う通信を開始する旨の指示がユーザインタフェースを用いて移動機１０に入力されると、ＣＰＵ１１は、ＵＤＰに従う通信処理をトランスポート層にて行わせるプログラムを不揮発性メモリ１２から読み出して実行する。図７に示すように、ＣＰＵ１１は、一定時間間隔で、トランスポート層の通信プロトコルを特定しており、ＵＤＰに従う通信処理をトランスポート層にて行わせるプログラムを実行すると、程なく、ＴＣＰ及びＵＤＰに関する条件情報を取得する（ステップＳＡ３、ＳＡ１及びＳＡ２）。取得された条件情報は複数であるから、ＣＰＵ１１は、両条件情報から、最も早く満たされる条件を表す条件情報を選択し、選択した条件情報を条件領域１３２に書き込む。具体的には、ＴＣＰに関する許容値「２」とＵＤＰに関する許容値「∞」から、より早く満たされる許容値「２」を選択し、条件領域１３２に書き込む。
【００６３】
ＴＣＰを用いた通信とＵＤＰを用いた通信のうち、高速再送によるデータセグメントの誤再送が発生し得るのはＴＣＰを用いた通信のみであるから、許容値「２」が選択されることにより、高速再送によるデータセグメントの誤再送の発生を回避することができる。ところで、移動機１０には、ＲＬＣ副層において、ＴＣＰのデータセグメントを内包したＳＤＵとＵＤＰのデータグラムを内包したＳＤＵとが交互に到着することも考えられる。このような事態を考慮すると許容値「２」が小さすぎる、とも考えられる。しかし、ＲＬＣ副層では両ＳＤＵを区別していないから、つまりトランスポート層の通信プロトコル毎にＳＤＵを取り扱うことはできないから、許容値「２」を採用するのが最も安全である。
【００６４】
以上説明したように、本実施形態によれば、ＲＬＣ副層にてＳＤＵの受信順序が入れ替わっても、連続回数が許容値未満であれば、ＳＤＵはＲＬＣ副層にて遅延されずに上位層へ渡される。したがって、移動機１０において受信したＳＤＵが遅延することによってＴＣＰの再送制御やフロー制御の開始が遅れてしまうという事態を回避することができる。また、本実施形態によれば、ＲＬＣ副層におけるＳＤＵの入れ替わり制御に起因してＴＣＰのデータセグメントが誤再送されるという事態を回避することができる。これらのことから、通信網の実質的な利用率を向上させることができる。
【００６５】
また、本実施形態では、移動機１０から１番目および２番目の重複確認応答セグメントが遅滞なく送信される。一方、サーバ装置４０は、制限送信を可能としたＴＣＰを用いた場合に、１番目および２番目の重複確認応答セグメントを受信すると、これらに応じて未送信のデータセグメントを送信することができる。よって、本実施形態によれば、ＴＣＰを用いた場合に、通信網の実質的な利用率を大幅に向上させることができる。
【００６６】
また、本実施形態では、ＴＣＰについて、高速再送から定まる絶対的な条件と制限送信から定まる効果的な条件のうち、より厳しい方の条件を条件判定に用いるようにしている。換言すれば、ＲＬＣ副層から上位層へＳＤＵを渡す順序を、通信網の実質的な利用率の大幅な向上を見込める範囲内の入れ替わりであれば制御せず、範囲外の入れ替わりであれば制御する、という新しい順序制御を行うようにしている。よって、本実施形態によれば、効果的な条件を考慮せずに条件判定を行う態様に比較して、予期しない不都合が生じる可能性を低くすることができる。
【００６７】
また、本実施形態では、トランスポート層の通信プロトコルに関する条件や引き渡し領域１３３へのＳＤＵの書き込み履歴を数値化している。このため、数値を比較するという単純な処理により条件判定を行うことができる。また、トランスポート層での通信処理に用いられている通信プロトコルが複数の場合に、数値を比較するという単純な処理により、条件判定に用いる条件を定めることができる。
【００６８】
また、本実施形態では、ＴＣＰを用いた通信とＵＤＰを用いた通信とを並行する場合に、より早く満たされる、ＴＣＰに関する許容値を選択し、選択した許容値を用いて、ＲＬＣ副層から上位層へＳＤＵを渡す順序を制御するか否かを定めている。これにより、ＴＣＰを用いた通信において通信網の実質的な利用率を向上させつつ、その範囲内で、ＵＤＰを用いた通信において通信網の実質的な利用率を最大とすることができる。
【００６９】
また、本実施形態では、トランスポート層の通信プロトコルを改変することなく、上述の各種効果を得ることができる。このことは、実装上、有利である。また、ＳＤＵの入れ替わりが発生し易い無線リンクを制御するためのＲＬＣ副層にてＳＤＵの入れ替わり制御を行うようにしたから、上述した各種効果は極めて実効的な効果となる。
【００７０】
なお、本実施形態では、ＳＤＵの入れ替わりが生じた場合にのみ条件判定を行うようにしたが、入れ替わりが生じなくとも条件判定を行うようにしてもよい。また、入れ替わり判定において、判定対象のＳＤＵよりも先に引き渡し領域１３３に書き込むべき他のＳＤＵを引き渡し領域１３３に書き込み済みか否かを判定するようにしたが、判定対象のＳＤＵよりも先に引き渡し領域１３３に書き込むべき他のＳＤＵの組み立てに必要なＰＤＵの受信を既に完了しているか否かを判定するようにしてもよい。要は、判定対象のＳＤＵが引き渡し領域１３３に即座に書き込まれた場合に引き渡し領域１３３へのＳＤＵの書き込み順序が上位層からＲＬＣ副層へ引き渡された順序に合致するか否かを判定できればよい。なお、この判定では、例えば、６番目のＳＤＵを書き込んだ後に９番目のＳＤＵを書き込む際には「合致しない」となり、更に続けて１０番目のＳＤＵを書き込む際には「合致しない」となり、更に続けて７番目のＳＤＵを書き込む際には「合致する」となる。
【００７１】
［変形］
本発明は、特許請求の範囲に記載された発明特定事項により定まる範囲内で、上述した実施形態を変形して得られる任意の形態でも実施可能である。以下に各種の変形例を示す。
【００７２】
例えば、トランスポート層の通信プロトコルがストリーミング転送を行うための通信プロトコルであっても本発明を適用可能である。ストリーミング転送では、データの遅延に制約があり、トランスポート層において、ある程度以上遅延して受信したデータは使用されずに破棄される。したがって、基本的には、ＵＤＰに関してそうしたように、ストリーミング転送を行うための通信プロトコルに関する許容値を無限大に定めるのが望ましい。この場合、例えば、バルクデータ転送とストリーミング転送とが並列に行われると、許容値としては、必ず、バルクデータ転送に関する許容値が採用される。ただし、ストリーミング転送を行うための通信プロトコルの中には、ＴＦＲＣ（TCP Friendly Rate Control）プロトコルのように、受信ノードが、受信したデータに付されたシーケンス番号の飛びに基づいてデータのロスを検出し、ロス率が増加した場合に送信レートを下げるよう動作するものがある。このような通信プロトコルがトランスポート層にて用いられている場合に、ＲＬＣ副層にてＳＤＵの受信順序の入れ替わりを全く制御しないと、トランスポート層にてロスが誤検出され、送信レートが不必要に低下してしまう虞がある。このような通信プロトコルについては、ロスの誤検出が生じない範囲でＲＬＣ副層におけるＳＤＵの入れ替わりを許容するように条件を定めることで、通信網の実質的な利用率を向上させることができる。なお、「ロスの誤検出が生じない範囲」はロス率の算出式に依存する。
【００７３】
また、例えば、トランスポート層の通信プロトコルに従う通信処理が開始される時にトランスポート層からデータリンク層へ条件情報が通知され、当該通信処理が終了する時にトランスポート層からデータリンク層へその旨が通知されるようにしてもよい。これらの通知を用いれば、タイマを用いて定期的に条件情報を取得する処理を行わずに済む。もちろん、当該通信処理の開始時にトランスポート層からデータリンク層へ当該通信プロトコルの識別子が通知され、この識別子と予め記憶した条件情報テーブルとに基づいて条件情報を取得する形態としてもよい。
【００７４】
また、例えば、ＲＬＣ副層にて、ＳＤＵの内容を調べ、トランスポート層の通信プロトコルを推定するようにしてもよい。この場合には、トランスポート層での通信が移動機１０で終端されず移動機１０に接続されたコンピュータで終端される態様にも対応可能である。
【００７５】
また、例えば、上述した実施形態に係る処理をＲＬＣ副層とは異なるデータリンク層にて行うようにしてもよい。当然に、データリンク層にて有線リンクを用いてデータを受信する装置や当該装置を用いた通信システムに適用することも可能である。
【００７６】
また、例えば、ＰＤＵの送信元の装置がトランスポート層の通信をも終端するような通信システムとしてもよい。もちろん、基地局２０にＲＬＣ副層にて上記の新しい順序制御を行う機能を持たせた形態としてもよいし、移動機１０にトランスポート層にて制限送信を行う機能を持たせた形態としてもよい。
【００７７】
また、例えば、本発明は、ＰＤＵとＳＤＵが１対１で対応するようなデータリンク層にて通信処理を行う装置や当該装置を用いた通信システムにも適用可能である。
【００７８】
また、入れ替わり判定や条件判定の処理内容を変更してもよい。例えば、トランスポート層の通信プロトコルに関する条件によっては、入れ替わり判定が不要になったり、条件判定の処理を変更する必要が生じたりする。具体的には、トランスポート層の通信プロトコルが、下位層から連続して渡されたデータユニット間のデータ距離（例えばシーケンス番号の飛び具合）が所定のデータ距離よりも長い場合に抜けているデータユニットを再送するような通信プロトコルの場合が考えられる。この通信プロトコルに関する条件は、「判定対象のデータユニットと直前にデータリンク層から上位層へ引き渡したデータユニットとのデータ距離が所定のデータ距離以下」となる。この場合には、入れ替わり判定は不要であり、条件判定の処理を、この条件に合わせて変更することになる。
【００７９】
また、例えば、移動機１０にプログラムをサーバ装置からダウンロードする機能を持たせ、移動機１０が、旧来のＲＬＣプロトコルに従う通信処理を行わせる旧来のプログラムを用いて、下位層プログラム１２１を配信するサーバ装置にアクセスし、当該サーバから下位層プログラム１２１をダウンロードして不揮発性メモリ１２に書き込み、以降の通信においては、旧来のプログラムに代えて下位層プログラム１２１を用いる、という形態としてもよい。
【図面の簡単な説明】
【００８０】
【図１】本発明の一実施形態に係る通信システム１００の構成を示す図である。
【図２】通信システム１００の通信プロトコル構成を示す図である。
【図３】通信システム１００を構成する移動機１０の構成を示すブロック図である。
【図４】データリンク層にて順序制御を全く行わない通信システムがＴＣＰに従う通信を行った場合の通信シーケンスの一例を示す図である。
【図５】データリンク層にて順序制御を必ず行う通信システムがＴＣＰに従う通信を行った場合の通信シーケンスの一例を示す図である。
【図６】通信システム１００がＴＣＰに従う通信を行った場合の通信シーケンスの一例を示すシーケンス図である。
【図７】通信システム１００を構成する移動機１０のＣＰＵ１１が行う処理の流れを示すフローチャートである。
【図８】ＣＰＵ１１が行う別の処理の流れを示すフローチャートである。
【符号の説明】
【００８１】
１０…移動機、１１…ＣＰＵ、１２…不揮発性メモリ、１３…ＲＡＭ、１４…無線部、４０…サーバ装置。
【図１】
2005150951.tif 000003
【図２】
2005150951.tif 000004
【図３】
2005150951.tif 000005
【図４】
2005150951.tif 000006
【図５】
2005150951.tif 000007
【図６】
2005150951.tif 000008
【図７】
2005150951.tif 000009
【図８】
2005150951.tif 000010