(57)【要約】  少なくとも２つのレイヤを含む通信プロトコルを備えた通信装置が他の通信装置からデータを受信する際に、上位のレイヤが下位のレイヤを介して受信したデータの受信順番制御を行う際の処理負荷を低減する。少なくとも２つのレイヤを含む通信プロトコルを備えた通信装置における下位のレイヤは、他の通信装置から送信されたシーケンス番号を含むデータを受信するデータ受信部と、受信したデータを記憶するバッファと、データの受信に成功したか否かを返信するデータ送信部と、受信に失敗したデータが他の通信装置により再送され、該再送された再送データの受信に成功した場合に、再送データの記憶順番がシーケンス番号の順番となるように、バッファにおけるデータの記憶順番を並べ替えるバッファ制御部と、バッファに記憶したデータを上位のレイヤへ転送するデータ転送部とを有する。
2010032315.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つのレイヤを含む通信プロトコルを備えた通信装置であって、
下位のレイヤは、
他の通信装置から送信されたシーケンス番号を含むデータを受信するデータ受信部と、
前記データ受信部により受信したデータを記憶するバッファと、
前記データ受信部によりデータの受信に成功したか、失敗したかを前記他の通信装置へ返信するデータ送信部と、
前記データ受信部により受信に失敗したデータが前記他の通信装置により再送され、前記データ受信部が前記再送された再送データの受信に成功した場合に、前記再送データの記憶順番が前記シーケンス番号の順番となるように、前記バッファにおける前記再送データの記憶順番を並べ替えるバッファ制御部と、
前記バッファに記憶したデータを上位のレイヤへ転送するデータ転送部と、
を有することを特徴とする通信装置。
【請求項２】
前記バッファ制御部は、
前記再送データの再送回数と再送間隔とに基づいて、前記バッファにおけるデータの記憶順番を前記シーケンス番号の順番となるように並べ替えることを特徴とする請求項１に記載の通信装置。
【請求項３】
前記バッファ制御部は、
前記データ受信部がデータの受信に失敗した場合、受信に失敗したタイミングに基づいて判定した前記受信に失敗したデータの前記シーケンス番号を示すプロセス情報を記憶しておき、前記受信に失敗したデータが前記他の通信装置により再送され、前記データ受信部が前記再送された再送データの受信に成功した場合に、受信に成功したタイミングに基づいて判定した前記再送データのプロセス情報と先に記憶しておいたプロセス情報とに基づいて、前記バッファにおけるデータの記憶順番を前記プロセス番号の順番となるように並べ替えることを特徴とする請求項１に記載の通信装置。
【請求項４】
通信装置間でデータの中継を行う通信装置であって、
第１の通信装置から送信されたシーケンス番号を含むデータを受信するデータ受信部と、
前記データ受信部によりデータの受信に成功したか、失敗したかを前記第１の通信装置へ返信するデータ送信部と、
前記データ受信部により受信したデータを所定の中継バッファに記憶させると共に、前記データ受信部により受信に失敗したデータが前記第１の通信装置により再送され、前記データ受信部が前記再送された再送データの受信に成功した場合に、前記再送データを前記シーケンス番号の順番で受信されたデータとして前記中継バッファに記憶させて、前記中継バッファにおけるデータの記憶順番を前記シーケンス番号の順番となるように並べ替える中継バッファ制御部と、
前記中継バッファに記憶されているデータを第２の通信装置へ転送するデータ転送部と、
を有することを特徴とする通信装置。
【請求項５】
前記中継バッファ制御部は、
前記再送データの再送回数と再送間隔とに基づいて、前記中継バッファにおけるデータの記憶順番を前記シーケンス番号の順番となるように並べ替えることを特徴とする請求項４に記載の通信装置。
【請求項６】
前記中継バッファ制御部は、
前記データ受信部がデータの受信に失敗した場合、受信に失敗したタイミングに基づいて判定した前記受信に失敗したデータの前記シーケンス番号を示すプロセス情報を記憶しておき、前記受信に失敗したデータが前記第１の通信装置により再送され、前記データ受信部が前記再送された再送データの受信に成功した場合に、受信に成功したタイミングに基づいて判定した前記再送データのプロセス情報と先に記憶しておいたプロセス情報とに基づいて、前記中継バッファにおけるデータの記憶順番を前記シーケンス番号の順番となるように並べ替えることを特徴とする請求項４に記載の通信装置。
【請求項７】
前記データ転送部は、
前記データ受信部がデータを受信してから所定時間が経過したときに、前記データを転送することを特徴とする請求項１〜６のいずれか１項に記載の通信装置。
【請求項８】
少なくとも２つのレイヤを含む通信プロトコルを備えた通信装置による通信方法であって、
下位のレイヤであるコンピュータが、
他の通信装置から送信されたシーケンス番号を含むデータを受信するステップと、
受信したデータをバッファへ記憶させるステップと、
データの受信に成功したか、失敗したかを前記他の通信装置へ返信するステップと、
受信に失敗したデータが前記他の通信装置により再送され、前記再送された再送データの受信に成功した場合に、前記再送データを前記シーケンス番号の順番で受信されたデータとして前記バッファに記憶させて、前記バッファにおけるデータの記憶順番を前記シーケンス番号の順番となるように並べ替えるステップと、
前記バッファに記憶したデータを上位のレイヤへ転送するステップと、
を有することを特徴とする通信方法。
【請求項９】
通信装置間でデータの中継を行う通信装置による通信方法であって、
前記データの中継を行う通信装置であるコンピュータが、
第１の通信装置から送信されたシーケンス番号を含むデータを受信するステップと、
受信したデータを所定の中継バッファに記憶させるステップと、
データの受信に成功したか、失敗したかを前記第１の通信装置へ返信するステップと、
受信に失敗したデータが前記第１の通信装置により再送された再送データの受信に成功した場合に、前記再送データを前記シーケンス番号の順番で受信されたデータとして前記中継バッファに記憶させて、前記中継バッファにおけるデータの記憶順番を前記シーケンス番号の順番となるように並べ替えるステップと、
前記中継バッファに記憶されているデータを第２の通信装置へ転送するステップと、
を有することを特徴とする通信方法。
【請求項１０】
少なくとも２つのレイヤを含む通信プロトコルを備えた通信装置による通信プログラムであって、
下位のレイヤが、
他の通信装置から送信されたシーケンス番号を含むデータを受信する手順と、
受信したデータをバッファへ記憶させる手順と、
データの受信に成功したか、失敗したかを前記他の通信装置へ返信する手順と、
受信に失敗したデータが前記他の通信装置により再送され、前記再送された再送データの受信に成功した場合に、前記再送データを前記シーケンス番号の順番で受信されたデータとして前記バッファに記憶させて、前記バッファにおけるデータの記憶順番を前記シーケンス番号の順番となるように並べ替える手順と、
前記バッファに記憶したデータを上位のレイヤへ転送する手順と、
をコンピュータに実行させることを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信方法、および通信プログラムに関するものである。
【背景技術】
【０００２】
近年、無線通信システムにおける新たな規格として、ＬＴＥ（Long  Term  Evolution）と呼ばれる通信仕様が盛んに検討されている。ＬＴＥは、通信標準化プロジェクトの１つである３ＧＰＰ（3rd  Generation  Partnership  Project）において注目されており、例えばデータリンク層に相当するレイヤ２の改良などが進められている。【０００３】
このレイヤ２は、ＬＴＥに基づいて無線通信を行う携帯電話等の各ユーザ端末（ＵＥ）に設けられるものであり、具体的には、図１に示すように、ＰＤＣＰ（Packet  Data  Convergence  Protocol）、ＲＬＣ（Radio  Link  Control）、およびＭＡＣ（Medium  Access  Control）の３つのサブレイヤを有している。【０００４】
ＰＤＣＰおよびＲＬＣに属するＰＤＣＰエンティティおよびＲＬＣエンティティは、無線通信に使用される論理チャネル（ＬＣＨ：Logical  Channel）の数（図８においてはｎ）ずつ存在し、互いに１対１に対応している。【０００５】
そして、ｎ個の各ＰＤＣＰエンティティでは、送信データに対してＰＤＣＰのヘッダが付加され、得られたＰＤＣＰのＰＤＵ（Protocol  Data  Unit）が対応するＲＬＣエンティティへ出力される。【０００６】
このＰＤＵは、ＲＬＣにおいてはＳＤＵ（Service  Data  Unit）となり、各ＲＬＣエンティティによって、ＲＬＣのヘッダが付加されることにより、ＲＬＣのＰＤＵが得られることになる。すなわち、上位のサブレイヤのＰＤＵは、下位のサブレイヤへ出力されると、下位のサブレイヤのＳＤＵとして扱われる。【０００７】
そして、下位のサブレイヤにおいてＳＤＵにサブレイヤごとのヘッダが付加されると、下位のサブレイヤのＰＤＵが得られる。【０００８】
たとえば、図９に示すように、各ＲＬＣエンティティからＲＬＣのＰＤＵ（以下「ＲＬＣ−ＰＤＵ」という）がＭＡＣへ出力されると、これらのＲＬＣ−ＰＤＵは多重化され、ＭＡＣのヘッダ（Ｈ）とＭＡＣ制御とが付加されることによりＭＡＣのＰＤＵ（以下「ＭＡＣ−ＰＤＵ」という）となって、物理層に相当するレイヤ１の処理が施されて送信される。【０００９】
このとき、ＭＡＣ−ＰＤＵを送信する送信側ＭＡＣに属するＭＡＣエンティティは、データの送信に利用することができる帯域幅や電力などの無線リソースからＭＡＣ−ＰＤＵの空き領域サイズを決定し、ｎ個の各ＲＬＣエンティティから出力されるＲＬＣ−ＰＤＵを適宜ＭＡＣ−ＰＤＵの空き領域に割り当てて多重化する。【００１０】
そして、得られたＭＡＣ−ＰＤＵは、ＨＡＲＱ（Hybrid  Automatic  Repeat  reQuest）による再送制御によって送信される。送信されたＭＡＣ−ＰＤＵを受信する側の受信側ＭＡＣに属するＭＡＣエンティティは、送信側ＭＡＣから受信したＭＡＣ−ＰＤＵを解析し、１つ又は複数のＲＬＣ−ＰＤＵに分割して、各ＲＬＣエンティティへ転送する。【００１１】
ＲＬＣエンティティは、受信したＲＬＣ−ＰＤＵを解析してＲＬＣ−ＳＤＵを作成してＰＤＣＰへ転送する。【００１２】
ここで、送信側と受信側のＨＡＲＱで行われるデータ転送について図１０を参照して説明する。なお、図１０では、便宜上、各ＭＡＣ−ＣＰＵに番号（＃１、＃２等）を付している。ＨＡＲＱにおいては、ｎチャネルからなるストップアンドウェイト（Stop  &  Wait）を用いた再送制御が実行される。【００１３】
このＨＡＲＱにおいては、図１０に示すように、送信時にＭＡＣ−ＰＤＵが保持されるとともに、ＭＡＣ−ＰＤＵに対する誤り訂正処理、ＣＲＣ（Cyclic  Redundancy  Check）符号化が行われる。【００１４】
そして、受信側は、ＭＡＣ−ＰＤＵ＃１の受信結果が受信ＮＧ（すなわち、ＣＲＣ符号による誤り検出結果がＮＧ）となった場合、その旨を示すＮＡＣＫを送信側へ返信する。一方、その後送信側から送信されたＭＡＣ−ＰＤＵ＃２、＃３の受信結果が受信ＯＫ(すなわち、ＣＲＣ符号による誤り検出結果がＯＫ)となった場合、受信側は、その旨を示すＡＣＫを送信側へ返信する。【００１５】
その後、送信側においては、ＮＡＣＫが受信された場合には初回送信時に保持されたＭＡＣ−ＰＤＵ＃１が再送され、ＡＣＫが受信された場合には初回送信時に保持されたＭＡＣ−ＰＤＵが破棄される。【００１６】
そして、受信側では、受信したＭＡＣ−ＰＤＵを受信した順に分割してＲＬＣ−ＰＤＵを作成し、上位のＲＬＣへ転送する。【００１７】
また、１つのＭＡＣ−ＰＤＵについて所定の最大再送回数だけ繰り返し再送してもＡＣＫが返ってこなかった場合にも、該当するＭＡＣ−ＰＤＵが破棄される。このような場合に備えて、ＲＬＣにおいては、Poll/Status情報を用いた自動再送要求（ＡＲＱ）による再送制御が実行されている。【００１８】
たとえば、図１１に示すように、送信側のＲＬＣからシーケンス番号（以下、「ＳＮ」という。）１〜４に対応するデータを受信側のＲＬＣへ送信する場合、送信側のＲＬＣは、ＳＮ＝１〜ＳＮ＝４の各データを受信側のＲＬＣへ順次送信する。このとき、送信側のＲＬＣは、最後に送信するＳＮ＝４のデータにStatus情報を要求するPoll情報を付加して受信側のＲＬＣへ送信する。【００１９】
ここで、受信側のＲＬＣは、ＳＮ＝１を受信した時点でまずＳＮ＝１を上位のＰＤＣＰへ転送する。その後Poll情報を検出した時点で、ＳＮ＝４のデータは受信しているが、ＳＮ＝２、３のデータは受信していないので、データの転送中にＳＮ＝２、３のデータが欠落したことを認識する。受信側のＲＬＣは、ＳＮの順にデータを上位のＰＤＣＰへ転送する必要があるため、ここでは、データの上位のＰＤＣＰへ転送を行わない。【００２０】
その後、受信側のＲＬＣは、送信側のＲＬＣに対して、ＳＮ＝２、３のデータが受信できなかったことを示すStatus情報として、Status-NACK  SN=2.3を送信する。送信側のＲＬＣは、このStatus情報を受信すると、受信側のＲＬＣに受信されなかったＳＮ＝２、３のデータを再送する。このとき、送信側のＲＬＣは、ＳＮ＝３に対応するデータにPoll情報を付加して送信する。【００２１】
ここで、受信側のＲＬＣがＳＮ＝３のデータは受信し、ＳＮ＝２のデータを受信しなかった場合、受信側のＲＬＣは、Poll情報を受信した時点で、ＳＮ＝２のデータを受信していないので、送信側のＲＬＣへ、その旨を示すStatus情報（Status-NACK  SN=2）を送信する。【００２２】
また、このとき受信側のＲＬＣでは、ＳＮ＝４のデータよりも後に、ＳＮ＝３のデータを受信しているため、ＳＮ＝３のデータとＳＮ＝４のデータとの並べ替えが行われる。【００２３】
送信側のＲＬＣは、このStatus-NACK  NS=2を受信すると、ＳＮ＝２のデータにPoll情報を付加して再送する。そして、受信側のＲＬＣは、ＳＮ＝２のデータを受信すると、その旨を示すStatus情報（Status-ACK  SN=4）を送信側のＲＬＣへ送信する。【００２４】
そして、受信側のＲＬＣは、最後に受信したＳＮ＝２のデータが先頭になるように各データの並べ替えを行った後、ＳＮ＝２〜４のデータを上位のＰＤＣＰへ転送する。【００２５】
また、特開２００７−２８１８０８号公報は、到着パケットをパケットデータ並べ替え用バッファに滞留して、順序通りに並べる並べ替え、一定時間内にパケットが到着しない場合には、並べ替えによる正常受信を諦め、上位レイヤでの再送に任せるタイマー制御を行い、不連続受信待ち状態発生時に起動される未受信パケットの再送回数をカウントし、再送カウンタによりカウントした再送回数が所定の再送回数に達したとき、受信待ち状態を諦め、既に受信済みのパケットを上位レイヤに送出するパケット通信装置を開示している。【００２６】
また、特表２００８−５２７９４３号公報は、ＨＡＲＱ方式を用いてパケットの再伝送が可能な移動通信システムにおいて、基地局が、端末からＰＤＵを受信し、再伝送回数を示す再伝送番号を計算できるか否かを判定し、基地局が、前記ＰＤＵのＲＳＮを計算できない場合に、前記ＰＤＵの再伝送回数を知らないことを示す特定値をＲＳＮに設定し、基地局が、前記設定されたＲＳＮを前記ＰＤＵと共にサービング無線網制御器(ＳＲＮＣ)に伝送するパケットデータ伝送方法を開示している。
【特許文献１】特開２００７−２８１８０８号公報
【特許文献２】特表２００８−５２７９４３号公報
【非特許文献１】3GPP,  TS36.300  “Evolved  Universal  Terrestrial  Radio  Access(E-UTRA)  and  Evolved  Universal  Terrestrial  Radio  Access(E-UTRAN);  Overall  description;  Stage  2”http://www.3gpp.org/ftp/Specs/archive/36_series/36.300/36300-850.zip
【発明の開示】
【発明が解決しようとする課題】
【００２７】
しかしながら、上記従来のレイヤ２を備える通信装置では、送信側のＨＡＲＱによる再送処理により、受信側のＭＡＣは送信側のＭＡＣが送信した順番と異なる順番でデータを受信する場合があり、この場合、受信側のＲＬＣの処理負荷が増大する恐れがあった。【００２８】
ここで、図１２を参照して、受信側のＭＡＣは送信側のＭＡＣが送信した順番と異なる順番でデータを受信する場合について説明する。なお、図１２では、便宜上、送信側のＨＡＲＱが送信するデータ（ＭＡＣ−ＰＤＵ）に対して番号（＃１、＃２等）を付している。また、図１２を用いた説明では、送信側のＨＡＲＱを送信側、受信側のＨＡＲＱを受信側と称する。【００２９】
図１２に示すように、送信側が＃１〜＃ｎの順番でデータを送信した際に、受信側において＃１のデータに関するＣＲＣ符号による誤り検出結果がＮＧであった場合、受信側は、送信側へＮＡＣＫを返信する。【００３０】
続いて、受信側は、＃２のデータと＃３のデータとを順次受信し、受信したデータに関するＣＲＣ符号による誤り検出結果がＯＫであった場合、受信した＃２のデータと＃３のデータとを上位のＲＬＣへ順次転送する。【００３１】
その後、受信側からＮＡＣＫを受信した送信側は、受信側へ＃１のデータを再送する。受信側は、再送された＃１のデータに関するＣＲＣ符号による誤り検出結果がＯＫであった場合、受信した＃１のデータを上位のＲＬＣへ転送する。このような場合、送信側から後に送信された＃２及び＃３のデータが、先に送信された＃１のデータよりも先に上位のＲＬＣへ転送されてしまう。【００３２】
受信側が送信側の送信順番と極端に異なる順番でデータを受信した場合、受信側の上位のＲＬＣでは、データの順番を送信側が送信した順番に並べ替えるための処理が増大する。【００３３】
また、前述のようにＲＬＣは、Poll/Status情報を用いたＡＲＱにより、受信すべきデータを受信しない場合、そのデータの再送要求を送信側のＲＬＣに送信し、その結果再送されたデータを受信して、送信側のＲＬＣが送信した順番にデータを並べ替えてから上記のＰＤＣＰへ転送するように構成されているが、各データについてＨＡＲＱによる再送が行われているか否かを検知することができないため、ＨＡＲＱがＮＡＣＫを送信しているデータについて、重複してStatus-NACKを送信する場合もある。【００３４】
この場合、ＲＬＣは、不必要なStatus-NACKを送信したことになるだけでなく、後に、同じデータを重複して受信することになり、これによっても処理付加が増大する。【００３５】
かかる受信側のＲＬＣにおける処理付加の増大は、従来の通信装置間のデータ転送に限るものではなく、近年検討されているＬＴＥの拡張版であるLTE-advancedにおいても問題となるおそれがある。【００３６】
このLTE-advancedでは、図１３に示すように、基地局（ｅＮＢ）100aと各ユーザ端末（ＵＥ）200a間のデータ転送を中継する中継局（ＲＳ：Relay  Station）300ａの導入が予想される。図１３において、破線（２）の領域がＲＳを導入した領域であり、破線（１）の領域がＲＳを導入していない従来の領域である。【００３７】
ＲＳ300ａを導入した場合、図１４に示すように、プロトコルとして、ｅＮＢ100a、ＵＥ200aには、従来のレイヤ２が備える３つのサブレイヤ（ＭＡＣ、ＲＬＣ、ＰＤＣＰ）が実装され、ＲＳ300aには、送信側と受信側とにそれぞれＭＡＣが実装されることが検討されている。また、ＲＳ300aの両ＭＡＣ間にＨＡＲＱによる再送のためのデータを一時記憶する中継バッファが実装されることが検討されている。なお、図１４では、ｅＮＢ100a、ＵＥ200aのＰＤＣＰを省略している。【００３８】
かかる通信システムを構築した場合、ｅＮＢ100aからＵＥ200ａへデータ転送を行う場合、ｅＮＢ100ａ−ＲＳ300ａ間と、ＲＳ300ａ−ＵＥ200ａ間との２箇所においてＨＡＲＱによる再送処理が行われることとなる。【００３９】
そのため、ｅＮＢ100ａからＲＳ300ａへのデータ転送時におけるＨＡＲＱの再送処理により、ＲＳ300ａは、ｅＮＢ100ａから送信された順番と異なる順番でデータを受信する。ＲＳ300ａには、データの順番制御を行うＲＬＣがないため、データが受信した順番でＲＳバッファに保存される。【００４０】
その後、ＲＳ300ａからｅＮＢ100ａへのデータ転送時におけるＨＡＲＱの再送処理により、ＵＥ200ａがデータを受信する際には、さらにデータの順番が入れ替わることとなり、ＵＥ200ａのＲＬＣでは、データの順番を入れ替えるための処理付加が増大し、データ転送が遅れたり、無駄な再送要求が発生するおそれがある。【００４１】
そこで、本発明は、上述した従来技術による課題を解消するためになされたものであり、複数のレイヤを含む通信プロトコルを備えた通信装置が他の通信装置からデータを受信する際に、上位のレイヤが下位のレイヤを介して受信したデータの受信順番制御を行う際の処理負荷を低減することのできる通信装置、及び同装置による通信方法を提供することを目的とする。
【課題を解決するための手段】
【００４２】
上述した課題を解決し、目的を達成するために、この通信装置は、少なくとも２つのレイヤを含む通信プロトコルを備えた通信装置であって、下位のレイヤは、他の通信装置から送信されたシーケンス番号を含むデータを受信するデータ受信部と、前記データ受信部により受信したデータを記憶するバッファと、前記データ受信部によりデータの受信に成功したか、失敗したかを前記他の通信装置へ返信するデータ送信部と、前記データ受信部により受信に失敗したデータが前記他の通信装置により再送され、前記データ受信部が前記再送された再送データの受信に成功した場合に、前記再送データの記憶順番が前記シーケンス番号の順番となるように、前記バッファにおける前記再送データの記憶順番を並べ替えるバッファ制御部と、前記バッファに記憶したデータを上位のレイヤへ転送するデータ転送部とを有することを要件とする。
【発明の効果】
【００４３】
本発明によれば、下位のレイヤが受信したデータの受信順番を予め並べ替えを行ってから、そのデータを上位のレイヤへ転送するので、複数のレイヤを含む通信プロトコルを備えた通信装置が他の通信装置からデータを受信する際に、上位のレイヤが下位のレイヤを介して受信したデータの受信順番制御を行う際の処理負荷を低減することができると共に、無駄な再送要求の発生を抑制することができる。
【図面の簡単な説明】
【００４４】
【図１】図１は、第１実施形態に係るＵＥの構成を示す説明図である。
【図２】図２は、第１実施形態に係るＭＡＣバッファ制御部によるデータの記憶順番制御を示す説明図である。
【図３】図３は、第１実施形態に係るＭＡＣバッファ制御部によるデータの記憶順番制御を示す説明図である。
【図４】図４は、第１実施形態に係るＭＡＣで実行される処理を示すフローチャートである。
【図５】図５は、第２実施形態に係るＲＳの構成を示す説明図である。
【図６】図６は、第２実施形態に係るＲＳを介してＵＥがｅＮＢからデータを受信する場合のデータの流れを示す説明図である。
【図７】図７は、第２実施形態に係るＲＳＭＡＣで実行される処理を示すフローチャートである。
【図８】図８は、従来のレイヤ２の構成を示す説明図である。
【図９】図９は、従来のレイヤ２によるデータ作成及びデータの送受信の一例を示す説明図である。
【図１０】図１０は、従来のＨＡＲＱによるデータ再送制御の一例を示す説明図である。
【図１１】図１１は、従来のＲＬＣによるデータ再送制御の一例を示す説明図である。
【図１２】図１２は、従来のＭＡＣによるＲＬＣへのデータ転送の一例を示す説明図である。
【図１３】図１３は、ＲＳが導入された通信システムを示す説明図である。
【図１４】図１４は、従来のＲＳを介してＵＥがｅＮＢからデータを受信する場合のデータの流れを示す説明図である。
【符号の説明】
【００４５】
100  ｅＮＢ
200  ＵＥ
210  ＭＡＣ
211  ＨＡＲＱ処理部
212  ＡＣＫ/ＮＡＣＫ生成部
213  ＭＡＣバッファ
214  ＭＡＣ−ＰＤＵ解析部
215  ＭＡＣバッファ制御部
220  ＲＬＣ
221  ＡＲＱ
230  ＰＤＣＰ
300  ＲＳ
310  受信側のＲＳＭＡＣ
311  ＨＡＲＱ処理部
312  ＡＣＫ/ＮＡＣＫ生成部
313  ＲＳバッファ制御部
320  ＲＳバッファ
330  送信側のＲＳＭＡＣ
【発明を実施するための最良の形態】
【００４６】
以下、本発明の第１実施形態および第２実施形態について、図面を参照して説明する。なお、第１実施形態では、基地局（以下、「ｅＮＢ100」という。）を介して互いにデータの送受信を行う携帯電話等のユーザ端末（以下、「ＵＥ200」という。）に対して、本発明を適用した場合を例に挙げて説明し、第２実施形態では、ＵＥ200とｅＮＢ100との間でデータの中継を行う中継局（以下、「ＲＳ300」という。）に対して、本発明を適用した場合を例に挙げて説明する。【００４７】
（第１実施形態）
図１に示すように、第１実施形態に係るＵＥ200は、ＬＴＥ（Long  Term  Evolution）と呼ばれる通信仕様において、データリンク層に相当するレイヤ２を備えている。このレイヤ２は、ＭＡＣ（Medium  Access  Control）210、ＲＬＣ（Radio  Link  Control）220、ＰＤＣＰ（Packet  Data  Convergence  Protocol）230という３つのサブレイヤを有している。【００４８】
ＰＤＣＰ230及びＲＬＣ220の構成と動作は、図８に示した従来のＰＤＣＰ及びＲＬＣと同様であるため、ここでは、簡単に説明する。ＰＤＣＰ230は、ＲＬＣ220から受信したデータ（ＰＤＣＰ−ＰＤＵ（Protocol  Data  Unit））からＰＤＣＰ−ＳＤＵ(Service  Data  Unit）を抽出した後、レイヤ３へ送信する。【００４９】
また、ＲＬＣ220は、ＭＡＣ210から受信したデータ（ＲＬＣ−ＰＤＵ）を複数のＲＬＣ−ＳＤＵに分割してＰＤＣＰ230へ送信する。また、このＲＬＣ220は、ＡＲＱ（Automatic  Repeat  reQuest）221を備えており、ＭＡＣ210を介してｅＮＢ100からデータを受信する際に、ｅＮＢ100との間でPoll/Status情報の送受信を行うことによって、受信に失敗したデータをｅＮＢ100から再送してもらい、受信したデータをｅＮＢ100から送信された順番（ｅＮＢ100がデータを送信する際のシーケンス番号の順番：以下、所定の順番という）に並べ替える処理を行った後に、ＰＤＣＰ230へ送信する。【００５０】
特に、第１実施形態のＵＥ200が備えるレイヤ２では、このＲＬＣ220がデータの並べ替えを行う際の処理負荷を低減することができるようにＭＡＣ210を構成している。【００５１】
図１に示すように、ＭＡＣ210は、ＨＡＲＱ（Hybrid  Automatic  Repeat  reQuest）処理部211と、ＡＣＫ/ＮＡＣＫ生成部212と、ＭＡＣバッファ213と、ＭＡＣ−ＰＤＵ解析部214と、ＭＡＣバッファ制御部215とを備えている。【００５２】
ＨＡＲＱ処理部211は、ｅＮＢ100から所定の順番で送信されたデータ（ＭＡＣ−ＰＤＵ）を受信するデータ受信部として機能するものであり、受信したデータからそのデータに付加されているＣＲＣ（Cyclic  Redundancy  Check）符号を取得し、ＣＲＣ符号による誤り検出結果がＯＫかＮＧかを、受信結果としてＡＣＫ/ＮＡＣＫ生成部212へ出力する。なお、このときＨＡＲＱ処理部211が受信するデータには、ｅＮＢ100がデータを送信した際のシーケンス番号が含まれている。【００５３】
また、ＨＡＲＱ処理部211は、受信したデータのＣＲＣ符号による誤り検出結果がＯＫであった場合（データの受信に成功した場合）、その正常受信したデータ（ＭＡＣ−ＰＤＵ）をＭＡＣバッファへ記憶させる。さらに、このＨＡＲＱ処理部211は、正常受信したデータのｅＮＢ100による再送回数をＭＡＣバッファ制御部215へ出力する。【００５４】
ＨＡＲＱ処理部211が受信したデータのｅＮＢ100による再送回数を取得する方法としては、たとえば、ｅＮＢ100がデータを送信する際に、そのデータのヘッダ部に再送回数を格納させておき、ＨＡＲＱ処理部211がそのデータを受信したときに、ヘッダ部からデータの再送回数を取得する方法を用いることができる。また、ＨＡＲＱ処理部211がＣＲＣ符号の検出結果に関わらず、データを受信したときの時刻やタイミングを記憶しておき、その時刻やタイミングに基づいて、受信したデータの再送回数を算出する等、任意の方法を用いることができる。【００５５】
ＡＣＫ/ＮＡＣＫ生成部212は、ＨＡＲＱ処理部211から入力される受信結果がＯＫであった場合、その旨を示すＡＣＫを生成して、データの送信元のｅＮＢ100へ送信する一方、ＨＡＲＱ処理部211から入力される受信結果がＮＧであった場合（データの受信に失敗した場合）には、その旨を示すＮＡＣＫを生成してデータの送信元のＵＥへ送信することにより、そのデータの再送を要求する。【００５６】
ＭＡＣバッファ213は、ＨＡＲＱ処理部211及びＭＡＣバッファ制御部215の制御に基づいて、ｅＮＢ100から受信したデータを一時記憶する記憶装置である。このＭＡＣバッファ213に記憶されたデータは、ＭＡＣバッファ制御部215の制御に従って、後段のＭＡＣ−ＰＤＵ解析部214へ出力される。【００５７】
ＭＡＣ−ＰＤＵ解析部214は、ＭＡＣバッファ213から入力されるデータ（ＭＡＣ−ＰＤＵ）を解析して、複数のＭＡＣ―ＳＤＵに分割した後、ＲＬＣへ送信する。【００５８】
ＭＡＣバッファ制御部215は、ＨＡＲＱ処理部211により受信に失敗した（ＣＲＣ符号による誤り検出結果がＮＧであった）データがｅＮＢ100により再送され、ＨＡＲＱ処理部211がその再送された再送データの受信に成功した（ＣＲＣ符号による誤り検出結果がＯＫであった）場合に、その受信に成功した再送データの再送回数と、再送間隔とに基づいて、再送データをｅＮＢ100がはじめに送信した所定の順番で受信されたデータとしてＭＡＣバッファ213に記憶させることにより、ＭＡＣバッファ213におけるデータの記憶順番を、ｅＮＢ100がはじめに送信した所定の順番、すなわちｅＮＢ100がデータを送信する際のシーケンス番号の順番となるように並べ替える順番制御を行う。【００５９】
ここで、第１実施形態のＵＥ200が備える受信側のＨＡＲＱ処理部211と、ｅＮＢ100の送信側のＨＡＲＱ処理部との間で行われるデータの送受信、および、ＭＡＣバッファ制御部215によるデータの記憶順番制御について、図２を参照して具体的に説明する。【００６０】
ここでは、送信側のＨＡＲＱ処理部を送信側ＨＡＲＱ、受信側のＨＡＲＱ処理部211を受信側ＨＡＲＱ211と称して説明する。また、送信側ＨＡＲＱと受信側ＨＡＲＱ211とで送受信されるＡＣＫ/ＮＡＣＫのラウンドトリップタイムを３つのＭＡＣ−ＰＤＵを送信する時間間隔（３フレームのデータを送信する時間間隔）に設定している場合について説明する。【００６１】
かかる設定とした場合、送信側ＨＡＲＱは、データを送信してからそのデータが正常に受信されなかった場合、最初の送信を含めてデータを３つ送信する処理（プロセス）を行った後に、受信されなったデータを再送する。つまり、ここでは、データを送信してからそのデータを再送するまでのプロセス数が常に３プロセスとなり、その３プロセスの処理が実行される時間間隔が再送データの再送間隔となる。【００６２】
なお、図２では、各データ（ＭＡＣ−ＰＤＵ）をそれぞれ区別するために、便宜上、各データに番号（＃１、＃２等）を付している。また、図２を用いた説明では、＃１を付したＭＡＣ−ＰＤＵを＃１のデータと称し、＃２、３、ｎについても、同様に称する。【００６３】
図２に示すように、送信側ＨＡＲＱが＃１、＃２、＃３〜＃ｎという所定の送信順番で各データの送信を行ったとする。このとき、受信側ＨＡＲＱ211が＃１のデータの受信に失敗した場合、受信側のＡＣＫ/ＮＡＣＫ生成部212が送信側ＨＡＲＱへＮＡＣＫを送信する。【００６４】
その後、受信側ＨＡＲＱ211が＃２のデータの受信に成功した場合、受信側のＡＣＫ/ＮＡＣＫ生成部212が送信側ＨＡＲＱへＡＣＫを送信する。ここで、ＭＡＣバッファ制御部215は、受信した＃２のデータをＭＡＣバッファ213の先頭（１番目）の記憶領域に記憶させる。【００６５】
次に、受信側ＨＡＲＱが＃３のデータの受信に成功した場合、受信側のＡＣＫ/ＮＡＣＫ生成部212が送信側ＨＡＲＱへＡＣＫを送信する。ここで、ＭＡＣバッファ制御部215は、受信した＃３のデータをＭＡＣバッファ213の２番目の記憶領域に記憶させる。すなわち、ＭＡＣバッファ制御部215は、受信側ＨＡＲＱ211が再送されていないデータの受信に連続して成功した場合、それらのデータを送信側ＨＡＲＱが送信した順番でＭＡＣバッファ213に記憶させる制御を行う。【００６６】
次に、送信側ＨＡＲＱは、＃１のデータの送信を含めて、＃１、＃２、＃３という３フレーム分のデータを送信した（３プロセス分のデータ送信処理を実行した）ので、受信側のＡＣＫ/ＮＡＣＫ生成部212から＃１のデータに関するＮＡＣＫを受信する。【００６７】
このＮＡＣＫを受信すると、送信側ＨＡＲＱは、＃１のデータを再送する。ここで、受信側ＨＡＲＱ211が＃１のデータの受信に成功した場合、ＭＡＣバッファ制御部215による順番制御がなければ、図２中段に示すように、＃１のデータが＃３のデータの次の記憶領域に記憶されてしまうが、本実施形態のＵＥ200では、ＭＡＣバッファ制御部215の順番制御によりデータが並べ替えられるため、図２下段に示すように、＃１のデータはＭＡＣバッファ213の先頭（１番目）の記憶領域に記憶される。【００６８】
この順番制御を行うために、本実施形態のＭＡＣバッファ制御部215は、受信側ＨＡＲＱ211が受信に成功しデータのｅＮＢ100による再送回数を受信側ＨＡＲＱ211から取得するように構成している。【００６９】
そして、ＭＡＣバッファ制御部215は、受信側ＨＡＲＱ211が再送されたデータの受信に成功した場合、そのデータの再送回数と上記のように予め設定されたプロセス数とに基づいて、そのデータがｅＮＢ100からはじめに送信された順番を判定して、ＭＡＣバッファ213におけるデータの並べ替えを行う。【００７０】
ここでは、＃１のデータの再送回数が１回であるため、ＭＡＣバッファ制御部215は、そのデータが、再送回数（１回）×プロセス数（３）＝３プロセス前に受信すべきであったデータであると判定する。そして、ＭＡＣバッファ制御部215は、今回受信した＃１のデータを３フレーム前である＃２のデータの前の順番（１番目）にあたる記憶領域に記憶させることにより、ＭＡＣバッファ213におけるデータの記憶順番を、ｅＮＢ100がデータをはじめに送信した所定の順番に並べ替える。【００７１】
これにより、ＭＡＣバッファ213では、ｅＮＢ100から受信したデータが、ｅＮＢ100が送信した所定の順番どおりに並べ替えられる。そして、このように順番が並べ替えられてＭＡＣバッファ213に記憶された各データは、その後、上位のＲＬＣ220へ送信される。【００７２】
このように、第１実施形態のＵＥ200では、ＭＡＣ210において、受信側ＨＡＲＱ211によりｅＮＢ100から受信したデータを、上位のＲＬＣ220へ送信する前の段階で、ｅＮＢ100がはじめに送信したときの所定の順番に並べ替えるため、ＲＬＣ220では、データの並べ替えを行う際の処理負荷が低減される。また、このＵＥ200によれば、ＲＬＣ220の処理負荷を低減することによって、データ転送の効率向上を図ることもできる。【００７３】
図２に示した例では、ＭＡＣバッファ制御部215が、データの再送回数と予め設定されたプロセス数とに基づいて、ＭＡＣバッファ213におけるデータの順番制御を行う場合について説明したが、送信側ＨＡＲＱから送信されるデータのプロセス情報に基づいて、ＭＡＣバッファ213におけるデータの順番制御を行うようにＭＡＣバッファ制御部215を構成してもよい。ここでプロセス情報とは、ＵＥ200が、ｅＮＢ100からのデータの受信に成功したタイミング（例えば時刻）、データの受信に失敗したタイミング（たとえば時刻）等に基づいて、ｅＮＢ100によるデータの送信順序を判定する指標となる情報であり、前述のシーケンス番号とは異なる情報である。すなわち、ｅＮＢ100のＨＡＲＱ処理部は、データを送信する際、前述のシーケンス番号とは異なる予め定めたプロセス情報に基づいて、各データを送信し、受信したＮＡＣＫに対応するデータを再送する際には、同じプロセス情報のデータとして所定時間間隔おきに再送を行う。そのため、再送データを受信したＵＥ200は、再送されたデータの受信に成功した場合、そのときのデータの受信タイミング（例えば、時刻や再送間隔中にカウントしたクロック数等）に基づいて、再送されたデータのプロセス情報を判定してｅＮＢ100による送信順序を判定することができる。【００７４】
ここで、図３を参照して、ＭＡＣバッファ制御部215が送信側ＨＡＲＱから送信されるデータのプロセス情報に基づいて、ＭＡＣバッファ213におけるデータの順番制御を行う場合について説明する。【００７５】
図３に示す例においても、図２に示した例と同様に、送信側ＨＡＲＱと受信側ＨＡＲＱ211とで送受信されるＡＣＫ/ＮＡＣＫのラウンドトリップタイムが３つのＭＡＣ−ＰＤＵを送信する時間間隔に設定されているものとする。なお、図３においても、各データ（ＭＡＣ−ＰＤＵ）をそれぞれ区別するために、便宜上、各データに番号（＃１、＃２等）を付している。【００７６】
送信側ＨＡＲＱは、図３に示すように、＃１〜＃ｎのデータを所定の順番で送信する。このとき、送信側ＨＡＲＱは、データを送信する順番を示すプロセス情報に基づいて、各データの送信を行う。【００７７】
ここでは、送信側のＨＡＲＱが＃１のデータをプロセス番号（Ａ）というプロセス情報に基づいて送信し、＃２のデータをプロセス番号（Ｂ）というプロセス情報に基づいて送信し、＃３のデータをプロセス番号（Ｃ）というプロセス情報に基づいて送信する場合について説明する。【００７８】
まず、送信側ＨＡＲＱは、プロセス番号（Ａ）のデータ送信処理により、＃１のデータを送信する。このとき、受信側ＨＡＲＱ211が＃１のデータの受信に失敗した場合、受信側のＡＣＫ/ＮＡＣＫ生成部212が送信側ＨＡＲＱへＮＡＣＫを送信する。【００７９】
受信側のＨＡＲＱ211は、受信に失敗した＃１データの受信タイミング（時刻）から、その受信に失敗した＃１のデータのプロセス番号が（Ａ）であることを判別し、そのプロセス番号（Ａ）をＭＡＣバッファ制御部215へ出力する。ＭＡＣバッファ制御部215は、受信側ＨＡＲＱ211から＃１のデータのプロセス番号（Ａ）を取得して、受信に失敗したデータのプロセス番号として記憶しておく。【００８０】
次に、送信側ＨＡＲＱは、プロセス番号（Ｂ）のデータ送信処理により、＃２のデータを送信する。ここで、受信側ＨＡＲＱ211が＃２のデータの受信に成功した場合、受信側のＡＣＫ/ＮＡＣＫ生成部212が送信側ＨＡＲＱへＡＣＫを送信する。【００８１】
このとき、受信側ＨＡＲＱ211は、＃２のデータの受信タイミング（時刻）から、受信に成功した＃２のデータのプロセス番号が（Ｂ）であることを判別し、そのプロセス番号（Ｂ）をＭＡＣバッファ制御部215へ出力する。ここで、ＭＡＣバッファ制御部215は、受信側ＨＡＲＱ211から＃２のデータのプロセス番号（Ｂ）を取得して記憶し、そのプロセス番号（Ｂ）に対応付けて＃２のデータをＭＡＣバッファ213における先頭（１番目）の記憶領域へ記憶させる。【００８２】
次に、送信側ＨＡＲＱは、プロセス番号（Ｃ）のデータ送信処理により、＃３のデータを送信する。ここで、受信側ＨＡＲＱ211が＃３のデータの受信に成功した場合、受信側のＡＣＫ/ＮＡＣＫ生成部212が送信側ＨＡＲＱへＡＣＫを送信する。【００８３】
このとき、受信側ＨＡＲＱ211は、＃３のデータの受信タイミング（時刻）から、受信に成功した＃３のデータのプロセス番号が（Ｃ）であることを判別し、そのプロセス番号（Ｃ）をＭＡＣバッファ制御部215へ出力する。ここで、ＭＡＣバッファ制御部215は、受信側ＨＡＲＱ211から＃３のデータのプロセス番号（Ｃ）を取得して記憶し、そのプロセス番号（Ｃ）に対応付けて＃３のデータをＭＡＣバッファ213における＃２のデータの次（２番目）の記憶領域へ記憶させる。【００８４】
次に、送信側ＨＡＲＱは、ラウンドトリップタイムに従って、受信側ＨＡＲＱ211からＮＡＣＫを受信するので、プロセス番号（Ａ）のデータ送信処理により、＃１のデータを再送する。ここで、受信側ＨＡＲＱ211が＃１のデータの受信に成功した場合、受信側のＡＣＫ/ＮＡＣＫ生成部212が送信側ＨＡＲＱへＡＣＫを送信する。【００８５】
このとき、受信側ＨＡＲＱ211は、再送された＃１のデータの受信タイミング（時刻）から、受信に成功した＃１のデータのプロセス番号が（Ａ）であることを判別し、そのプロセス番号（Ａ）をＭＡＣバッファ制御部215へ出力する。【００８６】
ＭＡＣバッファ制御部215は、受信側ＨＡＲＱ211から＃１のデータのプロセス番号（Ａ）を取得する。ここで、ＭＡＣバッファ制御部215は、先に記憶したプロセス番号（Ａ）、（Ｂ）、（Ｃ）と、今回取得したプロセス番号（Ａ）とに基づいて、＃１のデータの記憶順番を判定し、プロセス番号（Ｂ）に対応するデータの記憶領域よりも前の一番目の記憶領域に＃１のデータを記憶させることにより、ＭＡＣバッファ213におけるデータの記憶順番を、ｅＮＢ100がデータをはじめに送信した所定の順番に並べ替える。【００８７】
これにより、ＭＡＣバッファ213では、ｅＮＢ100から受信したデータが、ｅＮＢ100が送信した所定の順番どおりに並べ替えられる。そして、このように順番が並べ替えられてＭＡＣバッファ213に記憶された各データは、その後、上位のＲＬＣ220へ送信される。【００８８】
このように、第１実施形態のＵＥ200では、ＭＡＣ210において、受信側ＨＡＲＱ211によりｅＮＢ100から受信したデータを、上位のＲＬＣ220へ送信する前の段階で、ｅＮＢ100がはじめに送信したときの所定の順番に並べ替えるため、ＲＬＣ220では、データの並べ替えを行う際の処理負荷を低減することができる。また、このＵＥ200によれば、ＲＬＣ220の処理負荷を低減することによって、データ転送の効率向上を図ることもできる。【００８９】
また、第１実施形態のＵＥ200では、受信側ＨＡＲＱ211がデータを受信してから、所定時間が経過した場合、ＭＡＣバッファ制御部215は、ＭＡＣバッファ213におけるデータの記憶順番が、ｅＮＢ100による所定の送信順番となるように順番制御されているか否かに関わらず、ＭＡＣバッファ213に記憶している各データをＭＡＣ解析部214を介して、ＲＬＣ220へ送信するように構成している。【００９０】
ただし、このＭＡＣバッファ制御部215では、送信側ＨＡＲＱに予め設定されたデータの最大再送回数を考慮して、少なくとも、受信に失敗したデータが最大再送回数で送信されるまでの時間を所定時間とし、その所定時間を越えた場合に、ＭＡＣバッファ213に記憶している各データをＲＬＣ220へ送信するように構成している。【００９１】
これにより、ＭＡＣバッファ制御部215によるデータの記憶順番制御に要する時間が無駄に長時間化することがないので、データの転送効率が低下することを防止することができる。【００９２】
ここで、ＭＡＣバッファ制御部215が、受信側ＨＡＲＱ211により受信に成功したデータの再送回数と、予め設定されたプロセス数とに基づいて、ＭＡＣバッファ213におけるデータの記憶順番に関する順番制御を行う際に、ＵＥ200のＭＡＣ210で実行される処理について、図４を参照して説明する。以下に説明する各処理は、ＵＥ200が備えるコンピュータのＣＰＵ（Central  Processing  Unit）がＲＯＭ（Read-Only  Memory）から本実施形態に係る通信プログラムを読み出し、ＲＡＭ（Random  Access  Memory）を作業領域として実行することにより実現される処理である。【００９３】
ｅＮＢ100からデータが送信されると、ＭＡＣ210では、図４に示すように、ＨＡＲＱ処理部211がデータの受信に成功したか否かを判断し（ステップＳ１０１）、受信に失敗したと判断した場合（ステップＳ１０１：Ｎｏ）、ＡＣＫ/ＮＡＣＫ生成部212が送信側ｅＮＢ100へＮＡＣＫを送信して（ステップＳ１０９）処理が終了される。【００９４】
一方、ＨＡＲＱ処理部211がデータの受信に成功したと判断した場合（ステップＳ１０１：Ｙｅｓ）、ＡＣＫ/ＮＡＣＫ生成部212が送信側ｅＮＢ100へＡＣＫを送信し（ステップＳ１０２）、その後、ＭＡＣバッファ制御部215がＨＡＲＱ処理部211から、受信に成功したデータの再送回数を取得する（ステップＳ１０３）。【００９５】
次に、ＭＡＣバッファ制御部215は、取得したデータの再送回数が０回か否かの判断を行い（ステップＳ１０４）、再送回数が０回であると判断した場合（ステップＳ１０４：Ｙｅｓ）、処理がステップＳ１０６へ移行する。【００９６】
一方、ＭＡＣバッファ制御部215は、再送回数が０回でないと判断した場合（ステップＳ１０４：Ｎｏ）、今回受信に成功したデータに関して、ＭＡＣバッファ213におけるデータの記憶順番を並べ替えを行う順番制御を行う（ステップＳ１０５）。ここで、ＭＡＣバッファ制御部215は、前述のようにデータの再送回数とプロセス数とを乗算して、今回受信に成功したデータの記憶順番を決定する。【００９７】
その後、ＭＡＣバッファ制御部215は、今回受信したデータをＭＡＣバッファ213へ記憶させる（ステップＳ１０６）。【００９８】
ここで、ＭＡＣバッファ制御部215は、順番制御が完了したか否かの判断を行う（ステップＳ１０７）。このときＭＡＣバッファ制御部215は、ＭＡＣバッファ213内に記憶したデータの記憶順番が送信ｅＮＢ100により始めに送信された所定の送信順番となった場合に、順番制御が完了したと判断する。【００９９】
そして、ＭＡＣバッファ制御部215により順番制御が完了したと判断された場合、（ステップＳ１０７：Ｙｅｓ）、ＭＡＣ−ＰＤＵ解析部214がＭＡＣバッファ213に記憶されているデータをＲＬＣ220へ転送し（ステップＳ１０８）、処理が終了される。【０１００】
一方、ステップＳ１０７において、ＭＡＣバッファ制御部215は、順番制御が完了していないと判断した場合（ステップＳ１０７：Ｎｏ）、所定時間が経過したか否かを判断する（ステップＳ１１０）。ここで、ＭＡＣバッファ制御部215は、今回受信に成功したデータが再送データであった場合、そのデータの受信に最初に失敗してから所定時間が経過したか否かを判断し、今回受信に成功したデータが再送データでなかった場合、そのデータを受信してから所定時間が経過したか否かを判断する。【０１０１】
そして、ＭＡＣバッファ制御部215により所定時間が経過したと判断された場合（ステップＳ１１０：Ｙｅｓ）、ＭＡＣ−ＰＤＵ解析部214がＭＡＣバッファ213に記憶されているデータをＲＬＣ220へ転送し（ステップＳ１０８）、処理が終了される。一方、ＭＡＣバッファ制御部215により所定時間が経過していないと判断された場合には（ステップＳ１１０：Ｎｏ）、そのまま処理が終了される。【０１０２】
なお、ＭＡＣバッファ制御部215が、受信側ＨＡＲＱ211により受信に成功したデータのプロセス情報に基づいて、ＭＡＣバッファ213におけるデータの記憶順番に関する順番制御を行う場合、ＭＡＣバッファ制御部215は、図４におけるステップＳ１０３（再送回数取得）の処理に代えて、プロセス情報を取得する処理を実行する。この場合、図４に示すステップＳ１０４の処理は省略され、ステップＳ１０５における順番制御の処理では、プロセス情報に基づいた順番制御が実行される。【０１０３】
（第２実施形態）
次に、本発明の第２実施形態について説明する。ここでは、ＵＥ200とｅＮＢ100との間でデータの中継を行う中継局（ＲＳ）300に対して、本発明を適用した場合を例に挙げて説明する。【０１０４】
図５に示すように、第２実施形態に係るＲＳ300は、第１の通信装置であるｅＮＢ100からレイヤ１を介してデータを受信する受信側のＲＳＭＡＣ310と、第２の通信装置であるＵＥ200へｅＮＢ100から受信したデータを送信する送信側のＲＳＭＡＣ330と、送信側のＲＳＭＡＣ330によるＵＥ200へのデータの再送に備えて、ｅＮＢ100から受信したデータを一時記憶するＲＳバッファ320とを備えている。【０１０５】
図５に示すように、受信側のＲＳＭＡＣ310は、第１実施形態のＭＡＣ210と同様に、ＨＡＲＱ処理部311と、ＡＣＫ/ＮＡＣＫ生成部312とを備えている。ＨＡＲＱ処理部311は、ｅＮＢ100から所定の順番で送信されたデータを、レイヤ１を介して受信するデータ受信部として機能するものである。【０１０６】
また、ＡＣＫ/ＮＡＣＫ生成部312は、ＨＡＲＱ処理部311がデータの受信に成功した場合に、ｅＮＢ100へＡＣＫを送信し、ＨＡＲＱ処理部311がデータの受信に失敗した場合には、ｅＮＢ100へＮＡＣＫを送信する。【０１０７】
さらに、このＲＳＭＡＣ310は、ＨＡＲＱ処理部311により受信したデータを受信した順番でＲＳバッファ320に記憶させると共に、ＨＡＲＱ処理部311により受信に失敗した（ＣＲＣ符号による誤り検出結果がＮＧであった）データがｅＮＢ100により再送され、ＨＡＲＱ311がその再送された再送データの受信に成功した（ＣＲＣ符号による誤り検出結果がＯＫであった）場合に、その受信に成功した再送データのプロセス情報に基づいて、再送データをｅＮＢ100がはじめに送信した所定の順番で受信されたデータとしてＲＳバッファ320に記憶させることにより、ＲＳバッファ320におけるデータの記憶順番を、ｅＮＢ100がはじめに送信した所定の順番となるように並べ替える順番制御を行うＲＳバッファ制御部313を備えている。【０１０８】
このＲＳバッファ制御部313は、第１実施形態のＭＡＣ210がデータのプロセス情報に基づいて、ＭＡＣバッファ213におけるデータの記憶順番の順番制御を行う場合と同様に、ＨＡＲＱ処理部311がデータを受信する度に、ＨＡＲＱ処理部311からそのデータに対応するプロセス情報を取得して記憶する。【０１０９】
また、このＲＳバッファ制御部313は、ｅＮＢ100から再送されたデータを受信した場合、第１実施形態のＭＡＣ210と同様に、その再送データのプロセス情報と、予め記憶していたプロセス情報とに基づいて、ＲＳバッファ320内のデータの記憶順番をｅＮＢ100がはじめに送信した所定の順番となるように並べ替える。【０１１０】
そして、このＲＳバッファ制御部311は、送信側のＲＳＭＡＣ330から送信されるＭＡＣ−ＰＤＵ要求を受信した場合に、記憶順番が並べ替えられてＲＳバッファ320に記憶されているデータを、送信側のＲＳＭＡＣ330およびレイヤ１を介してＵＥ200へ送信させる。【０１１１】
このようにＲＳ300を構成することによって、このＲＳ300を介してｅＮＢ100からデータを受信するＵＥ200では、ＲＬＣ220においてデータの並べ替えを行う際の処理負荷が低減され、ｅＮＢ100からＵＥ200へのデータ時間を短縮することができる。【０１１２】
また、このＲＳ300においても、プロセス情報ではなく、第１実施形態のＭＡＣ210と同様に、受信した再送データの再送回数とプロセス数とに基づいて、ＲＳバッファ320におけるデータの記憶順番をｅＮＢ100によるデータの送信順番どおりに並べ替えるように構成することができる。【０１１３】
図６は、第２実施形態に係るＲＳ300を介してＵＥ200がｅＮＢ100からデータを受信する場合のデータの流れを示す説明図である。図６において、データを受信するＵＥ200は、第１実施形態のＵＥ200と同一構成のものであるが、ここでは、ＰＤＣＰ230の図示を省略している。また、図６においても、各データ（ＭＡＣ−ＰＤＵ）をそれぞれ区別するために、便宜上、各データに番号（＃１、＃２等）を付している。【０１１４】
図６に示すように、ｅＮＢ100から＃１、＃２、＃３、＃４の順番でデータが送信された場合、ｅＮＢ100−ＲＳ300間の各ＨＡＲＱによる自動再送制御に起因して、ＲＳ300のＨＡＲＱ処理部311では、ｅＮＢ100によるデータの送信順番と異なる受信順番（ここでは、＃２、＃３、＃１、＃４の順番）でデータを受信することになる。【０１１５】
しかし、上記のように、第２実施形態のＲＳ300では、受信側のＲＳＭＡＣ310において、ＲＳバッファ制御部313がＨＡＲＱ処理部311により受信したデータの順番を並べ替えて、ＲＳバッファ320に記憶させるため、ＲＳバッファ320では、ｅＮＢ100によるデータの送信順番どおりに、＃１、＃２、＃３、＃４の順番で各データが記憶される。なお、ここで、ＲＳバッファ制御部313は、再送データの再送回数とプロセス数とに基づいて順番制御を行っている。【０１１６】
その後、ＲＳバッファ320に記憶されたデータは、ＵＥ200へ送信される。ここでも、ＲＳ300−ＵＥ200間の各ＨＡＲＱによる自動再送制御に起因して、ＵＥ200のＨＡＲＱ処理部211では、ｅＮＢ100によるデータの送信順番と異なる受信順番（ここでは、＃３、＃１、＃２、＃４の順番）でデータを受信することになる。【０１１７】
しかし、ここにおいても、ＵＥ200のＭＡＣバッファ制御部215がＨＡＲＱ処理部211により受信したデータの記憶順番を並べ替えて、ＭＡＣバッファ213に記憶させるため、ＭＡＣバッファ213から上位のレイヤであるＲＬＣ220へデータを送信する際には、ｅＮＢ100によるデータの送信順番どおりに、＃１、＃２、＃３、＃４の順番で各データが送信される。【０１１８】
このように、ｅＮＢ100とＵＥ200との間に、ＲＳ300を設ける場合には、ｅＮＢ100−ＲＳ300間と、ＲＳ300−ＵＥ200間とにおいて、２回のＨＡＲＱによる自動再送制御が行われることとなるが、第２実施形態のＲＳ300のように、ＲＳＭＡＣ310にＲＳバッファ制御部214を設けることにより、ＵＥ200のバッファ制御部215では、ＲＳ300−ＵＥ200間での自動再送制御により変わったデータの受信順番だけを順番制御するだけで、順番制御を完了することができる。【０１１９】
このＲＳ300を介してｅＮＢ100からデータを受信するＵＥ200では、ＲＬＣ220においてデータの並べ替えを行う際の処理負荷が、ＨＡＲＱによる自動再送制御１回分低減されるので、ｅＮＢ100からＵＥ200へのデータ時間を短縮することができる。【０１２０】
また、このＲＳ300において、ＲＳバッファ制御部313は、受信側ＨＡＲＱ311がデータを受信してから、所定時間が経過した場合、ＲＳバッファ320におけるデータの記憶順番が、ｅＮＢ100による所定の送信順番となるように順番制御されているか否かに関わらず、ＲＳバッファ320に記憶している各データを送信側のＲＳＭＡＣ330へ送信するように構成している。【０１２１】
ただし、このＲＳバッファ制御部313では、ｅＮＢ100によるデータの最大再送回数を考慮して、少なくとも、受信に失敗したデータが最大再送回数で送信されるまでの時間を所定時間とし、その所定時間を超えた場合に、ＲＳバッファ320に記憶している各データを送信側のＲＳＭＡＣ330へ送信するように構成している。【０１２２】
これにより、ＲＳバッファ制御部313によるデータの記憶順番制御に要する時間が無駄に長時間化することがないので、データの転送効率が低下することを防止することができる。【０１２３】
ここで、ＲＳバッファ制御部313が、ＨＡＲＱ処理部311により受信に成功したデータのプロセス情報に基づいて、ＲＳバッファ320におけるデータの記憶順番に関する順番制御を行う際に、受信側のＲＳＭＡＣ320で実行される処理について、図７を参照して説明する。以下に説明する各処理は、ＲＳ300が備えるコンピュータのＣＰＵ（Central  Processing  Unit）がＲＯＭ（Read-Only  Memory）から本実施形態に係る通信プログラムを読み出し、ＲＡＭ（Random  Access  Memory）を作業領域として実行することにより実現される処理である。【０１２４】
ｅＮＢ100からデータが送信されると、ＲＳＭＡＣ310では、図７に示すように、ＨＡＲＱ処理部311がデータの受信に成功したか否かを判断し（ステップＳ２０１）、受信に失敗したと判断した場合（Ｓ２０１：Ｎｏ）、ＡＣＫ/ＮＡＣＫ生成部312がｅＮＢ100へＮＡＣＫを送信して（ステップ２０８）処理が終了される。【０１２５】
一方、ＨＡＲＱ処理部311がデータの受信に成功したと判断した場合（ステップＳ２０１：Ｙｅｓ）、ＡＣＫ/ＮＡＣＫ生成部312がｅＮＢ100へＡＣＫを送信し（ステップＳ２０２）、その後、ＲＳバッファ制御部313がＨＡＲＱ処理部311から、受信に成功したデータのプロセス情報を取得して記憶する（ステップＳ２０３）。【０１２６】
次に、ＲＳバッファ制御部313は、既に記憶しているプロセス情報と今回取得したプロセス情報に基づいて、今回受信に成功したデータのｅＮＢ100によるはじめの送信順番を判別して、ＲＳバッファ320におけるデータの記憶順番をｅＮＢ100がはじめに送信した送信順番となるように並べ替える順番制御を行い（ステップＳ２０４）、その後、データをＲＳバッファ320へ転送する（ステップＳ２０５）。【０１２７】
ここで、ＲＳバッファ制御部313は、順番制御が完了したか否かの判断を行う（ステップＳ２０６）。このときＲＳバッファ制御部313は、ＲＳバッファ320内に記憶したデータの記憶順番がｅＮＢ100が始めに送信した所定の送信順番となった場合に、順番制御が完了したと判断する。【０１２８】
そして、ＲＳバッファ制御部313は、順番制御が完了したと判断した場合（ステップＳ２０６：Ｙｅｓ）、送信側のＲＳＭＡＣ330からのＭＡＣ−ＰＤＵ要求を受信すると、ＲＳバッファ320に記憶しているデータを送信側のＲＳＭＡＣ330へ転送して（ステップＳ２０７）、処理を終了する。その後、送信側ＲＳＭＡＣ330へ転送されたデータは、ＵＥ200へ送信される。【０１２９】
一方、ステップＳ２０６において、ＲＳバッファ制御部313は、順番制御が完了していないと判断した場合（ステップＳ２０６：Ｎｏ）、所定時間が経過したか否かを判断する（ステップＳ２０９）。ここで、ＲＳバッファ制御部313は、今回受信に成功したデータが再送データであった場合、そのデータの受信に最初に失敗してから所定時間が経過したか否かを判断し、今回受信に成功したデータが再送データでなかった場合、そのデータを受信してから所定時間が経過したか否かを判断する。【０１３０】
そして、ＲＳバッファ制御部313は、所定時間が経過したと判断した場合（ステップＳ２０９：Ｙｅｓ）、送信側のＲＳＭＡＣ330からのＭＡＣ−ＰＤＵ要求を受信すると、ＲＳバッファ320に記憶しているデータを送信側のＲＳＭＡＣ330へ転送して（ステップＳ２０７）、処理を終了する。その後、送信側ＲＳＭＡＣ330へ転送されたデータは、ＵＥ200へ送信される。一方、ＲＳバッファ制御部313は、所定時間が経過していないと判断した場合に（ステップＳ２０９：Ｎｏ）、そのまま処理を終了する。【０１３１】
なお、ＲＳバッファ制御部313が、受信側ＨＡＲＱ211により受信に成功したデータの再送回数とプロセス数とに基づいて、ＲＳバッファ320におけるデータの記憶順番に関する順番制御を行う場合、ＲＳバッファ制御部313は、図７におけるステップＳ２０３（プロセス情報取得）の処理に代えて、今回受信に成功したデータの再送回数を取得する処理を実行する。【０１３２】
この場合、ＲＳバッファ制御部313は、再送回数を取得した後に、図４に示したステップＳ１０４と同様に、再送回数が０回か否かの判断を行い、再送回数が０回であれば、処理をステップＳ２０５へ移して、今回受信したデータをＲＳバッファ320へ転送する。【０１３３】
一方、再送回数が０回でなかった場合、ＲＳバッファ制御部313は、処理をステップＳ２０４へ移して、ＲＳバッファ320におけるデータの順番制御を行う。ここでＲＳバッファ制御部313は、再送回数とプロセス数とを乗算して、今回受信に成功したデータの記憶順番を決定する。その後、ＲＳバッファ制御部313は、ステップＳ２０５以降の処理を実行する。【０１３４】
このように、第２実施形態のＲＳ300では、ｅＮＢ100から再送されたデータの受信に成功した場合に、ＲＳバッファ制御部313が、そのデータのプロセス情報、又は、そのデータの再送回数とプロセス数に基づいて、ＲＳバッファ320におけるデータの記憶順番をｅＮＢ100が始めに送信した所定の順番となるように並べ替えるので、このＲＳ300により中継されたデータを受信するＵＥ200では、ＲＬＣ220がデータの並べ替えを行う際の処理負荷が低減される。
【図１】
2010032315.tif 000003
【図２】
2010032315.tif 000004
【図３】
2010032315.tif 000005
【図４】
2010032315.tif 000006
【図５】
2010032315.tif 000007
【図６】
2010032315.tif 000008
【図７】
2010032315.tif 000009
【図８】
2010032315.tif 000010
【図９】
2010032315.tif 000011
【図１０】
2010032315.tif 000012
【図１１】
2010032315.tif 000013
【図１２】
2010032315.tif 000014
【図１３】
2010032315.tif 000015
【図１４】
2010032315.tif 000016
【国際調査報告】
2010032315.tif 000017
2010032315.tif 000018
2010032315.tif 000019