以下に、本発明にかかる無線通信システム、無線通信装置、受信装置および無線通信方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、本発明にかかる無線通信システムの実施の形態1の構成例を示す図である。図1に示すように、本実施の形態の無線通信システムは、基地局1,端末2,端末3,ストリーミングサーバ4で構成される。基地局1、端末2および端末3は、それぞれ無線信号の送受信を行う無線通信装置を搭載している。基地局1は端末2および端末3と無線接続しており通信可能な状態とする。本実施の形態では、本発明にかかる無線通信装置として基地局1を、受信装置として端末2および端末3を、例に説明する。
また、ストリーミングサーバ4は、基地局1と接続されており、基地局1を介して端末2および端末3にマルチキャストによるデータ送信を行っているとする。また、基地局1は端末2および端末3の固有の宛先アドレスを認識しており、また、ストリーミングサーバ4がデータ送信を行う際に用いるマルチキャストアドレスとそのマルチキャストアドレスに属する宛先アドレス(この場合は、端末2および端末2の宛先アドレスを含む)との関係を把握しているとする。
なお、端末2および端末3が、ストリーミングサーバ4がデータ送信を行う際に用いるマルチキャストアドレスに属するか否かについては、端末2,3が基地局1に接続する際に、基地局1が、そのマルチキャストアドレスに属しているかの情報を端末2,3から取得する方法でもよいし、基地局1が、接続後に、ユニキャストにより端末2,3からその情報を取得してもよいし、他の方法により把握してもよい。なお、基地局1と端末2,3との間のアクセス方式はCDMA(Carrier Sense Multiple Access)でも、TDMA(Time Division Multiple Access)でもよく、またその他の方式でも良く、アクセス方式に限定はない。
図2は、基地局1、端末2および端末3が搭載する無線通信装置の機能構成例を示す図である。図2に示すように、無線通信装置11は、送信部12,符号部13,受信部14,復号部15,確認応答処理部16で構成される。
図3は、MAC(Media Access Control)レイヤにおけるデータフレームの構成例を示す図である。図3に示すようにデータフレームは、MAC header,Coding header,Coding data,FCS(Frame Check Sequence)で構成される。
また、図3に示したように、データフレームのMAC headerは、データフレーム、確認応答要求フレーム、確認応答フレームなどのフレームの種別を区別するための識別子であるFrame Typeと、フレームの送信完了までの時間を示すDurationと、基地局固有の識別子であるBS(Base Station) ID(Identifier)と、送信元装置固有の識別子であるSA(Source Address)と、宛先のアドレス(宛先装置固有の識別子、全ての端末が受信可能な識別子または特定の端末の集合を示すグループの識別子(マルチキャストアドレスなど)である)DA(Destination Address)と、SAとDAに関連付けたフレームの識別番号であるSequence Numberと、で構成される。
また、Coding headerは、Coding headerを識別するための識別子であるCoding header Typeと、後述の排他的論理輪演算を行ったフレームの数であるCoding Counterと、排他的論理和演算を行ったフレームの識別番号であるCoding Sequence Numberと、直前のCoding Sequence Numberのフレームのデータ長であるCoding Lengthと、で構成される。また、Coding Counterの値をNとするとき、Coding Sequence NumberとCoding Lengthの組をN組(#1〜#N)設けることとした。なお、Coding header TypeによってCoding headerの構成を変更してもよい。
また、Coding dataは、排他的論理和演算を行ったデータ、または排他的論理和演算を行わないデータである。FCSは、受信時にフレームに誤りがないか判定するための誤り検出符号である。
図4は、MACレイヤにおける確認応答要求フレームまたは確認応答フレームの構成例を示す図である。確認応答要求フレームまたは確認応答フレームは、MAC header,Ack Information,FCSで構成される。
図4に示したように、確認応答要求フレームまたは確認応答フレームのMAC headerは、データフレーム、確認応答要求フレーム、確認応答フレームを区別するための識別子であるFrame Typeと、フレームの送信完了までの時間を示すDurationと、基地局から送信する場合は基地局固有の識別子であり、端末から送信する場合は端末固有の識別子または特定のグループの識別子であるTA(Transmitter Address)と、端末が送信する場合は基地局固有の識別子であり、基地局が送信する場合は端末固有の識別子または特定のグループの識別子であるRA(Receiver Address)と、で構成される。
また、Ack Informationは、端末固有の識別子であるCAと、であり、連続して送信したデータフレームの実際の最小値であるSequence Numberと、その後に続くフレームに対応した情報であるBitmapと、で構成される。Ack InformationのSequence NumberとBitmapの詳細ついては後述する。FCSは、データフレームの場合と同様に、受信時にフレームに誤りがないか判定するための誤り検出符号である。
つぎに、図3,4を用いて図2に示した通信装置11の各要素の動作を説明する。送信部12は符号部13から出力されるフレームに対してMAC headerとFCSを付与し、付与後のフレームを端末2,3へ送信する。また、送信部12は、確認応答処理部16からの指示に基づいて、確認応答要求フレームまたは確認応答フレームを生成し送信する。
符号部13は上位層から送信されるデータを保持し、確認応答処理部16からの指定に基づいて、符号化処理として、保持している複数のデータの排他的論理和演算を行い、または排他的論理和演算を行わずに、Coding dataを生成する。そして、確認応答処理部16は、生成したCoding dataにCoding headerを付与して、送信部12に受け渡すとともに、そのフレームのSequence Numberを通知する。符号部13は、確認応答処理部16から保持しているフレームが全ての端末で受信されたことを通知された場合、または一定時間を超えた場合に保持しているフレームを破棄し、その旨を確認応答処理部16に通知する。
受信部14は、無線によりフレームを受信し、受信フレームに付与されているFCSに基づいてその受信フレームに誤りがないか否かを判定し、誤りがあると判定した場合はその受信フレームを破棄する。また、受信部14は、誤りがないと判定した場合にはその受信フレームに付与されているFrame Typeに基づいて、フレームの種別を判定し、データフレームと判定した場合、その受信フレームを復号部15に送信するとともに、確認応答処理部16にデータフレームを受信したことを通知する。また、受信部14は、受信フレームに付与されているフレームタイプに基づいて確認応答要求フレームまたは確認応答フレームと判定した場合、確認応答処理部16にその受信フレームを受け渡す。
復号部15は、受信フレームのCoding headerに基づいて、受信フレームを復号し、Coding headerのCoding Sequence Numberに基づいて、その復号フレームとすでに保持している復号フレームとをCoding Sequence Numberが小さい順に並び替え、順番に空きがない(番号が連続する)Coding Sequence Numberまでの復号フレームは、復号フレームとCoding Sequence Numberとを関係付けて保持するとともに、復号フレームを複写して上位層に受け渡す。また、復号部15は、新たに復号したフレームを保持し、また、すでに上位層に受け渡した復号フレームは受け渡しから一定時間が経過した場合、または、確認応答処理部16から、保持している復号フレームを全ての端末が受信したことを通知された場合に、対応する復号フレームを破棄する。さらに、復号部15は、上位層に送信しないで保持している復号フレームは、受信から一定時間を超えた場合は上位層に送信し、破棄する。また、復号したフレームをすでに受信している場合は破棄する。さらに復号部15は、保持しているフレームの情報(たとえば、保持しているフレームのSequence Numberなど)を確認応答処理部16に通知する。
確認応答処理部16は、受信部14からのデータフレームの受信通知と、復号部15からの復号部15が保持しているフレームの情報と、に基づいて、送信部12に通知する確認応答フレームの内容を更新する。また、確認応答処理部16は、受信部14から受け取った確認応答要求フレームに基づいて、確認応答フレームの送信内容を求め、確認応答フレームの送信内容を送信部12に通知して確認応答フレームを送信するよう指示する。また、確認応答処理部16は、受信部14から受け取った確認応答フレームに基づいて符号部13と、保持しているフレームの情報(たとえば、保持しているフレームのSequence Numberなど)と、に基づいて符号部13に次回の送信で送信するデータまたはフレームを指示する。なお、確認応答処理部16は、次回の送信で符号化するフレームとして、再送すべきフレームがない場合には、新規データを送信するよう指示し、再送すべきフレームがある場合には、再送対象のフレームの情報(Sequence Numberなど)を指示することとする。
なお、基地局1の確認応答処理部16は、確認応答要求を生成する確認応答要求手段として機能し、端末2および端末2の確認応答処理部16は、確認応答を返送する確認応答手段として機能することになる。
図5は、基地局1と端末2および端末3の間の通信処理手順の一例を示すチャート図である。図5に基づいて、本実施の形態の通信処理について説明する。まず、基地局1は、ストリーミングサーバ4から端末2および端末3に送信するデータを受信したとする。この時点では、基地局1には保持しているデータはない。また、この時点では、再送すべきデータがないことから、確認応答処理部16は、符号部13に対して新規データを送信するよう指示していることとする。
基地局1の符号部13は、保持しているデータがないため後述の排他的論理和演算を行わず、ストリーミングサーバ4から受信したデータをCoding Dataとし、排他的論理和演算を行っていないこと示すCoding headerを付与し、Coding headerと、Coding Dataと、Sequence Numberと、を送信部12に出力するとともに、Sequence Numberに対応付けてそのデータを保持する。ここでは、たとえば、Sequence Number=15であったとする。なお、このとき、たとえば、Coding header Typeが“0”であった場合には、排他的論理和演算を行わないことを送受信間で定めておき、Coding headerの他の項目をフレームから削除した簡略化フレームを用いるようにもよい。なお、排他的論理和演算を行わないことを示すCoding header Typeの値は“0”に限らず、他の値であってもよい。
図6は、排他的論理和演算を行わない場合の簡略化フレームの構成例を示す図である。図6に示すように、簡略化フレームでは、Coding headerのCoding header Type以外の項目が削除されている。このような簡略化フレームを用いることで、必要のない情報要素を削除しCoding headerを短縮できる。
送信部12は、符号部13から受け取ったデータに対して、Frame Typeにデータフレームの識別子を入力し、Durationにフレームの送信完了までの時間を計算した値を入力し、BS IDに基地局1の固有の識別子を入力し、SAに送信元装置であるストリーミングサーバ4の固有の識別子を入力し、DAに端末2および端末3が受信可能な識別子(たとえば、端末2および端末3を含む特定のグループの識別子など)入力して、Sequence Numberには符号部13から通知されたSequence Numberを入力したMAC headerを付与し、さらにFCSを付与したフレームを生成し、生成したフレームを下位層に送信する。
基地局1の下位層では、送信部12から受け取ったフレームに対して誤り訂正符号化を行い、プリアンブル、PHY(Physical)ヘッダを付与し、さらに、基地局1は、下位層の処理後のフレームをDA(Digital−Analog)変換器、アップコンバータ、アンプ、アンテナ等を経て無線信号として送信する(ステップS11)。
端末2,端末3では、基地局1から無線信号として送信されたフレームをアンテナ、アンプ、ダウンコンバータ、AD(Analog−Digital)変換器等を経て受信し、下位層が、受信したフレームからプリアンブル、PHYヘッダをはずして、端末2,端末3の無線通信装置の受信部14に受け渡す。
同様にして、Sequence Numberが“16”のフレーム、Sequence Numberが“17”のフレームが基地局1から送信される(ステップS12,ステップS14)。なお、基地局1の符号部13が通知するSequence Numberは、送信するデータ毎にインクリメントされることする。
端末2の受信部14は、ステップS11で送信されたSequence Numberに“15”が付与されたフレームを受信するとそのフレームのFCSに基づいてパケットに誤りがないか否かを判定し、また、MAC headerのFrame Typeに基づいてデータフレームであることを判定する。さらに、端末2の受信部14は、受信したフレームのBS IDに基づいて端末2にそのフレームを中継した基地局が端末2の接続している基地局1であることを判定し、SAに基づいてストリーミングサーバ4からのデータであることを判定し、DAに基づいて端末2を宛先として含む識別子であることを判定し、Sequence Numberに基づいてそれ以前に受信したフレームでないか否かを判定する。
端末2の受信部14は、以上の処理により、受信したフレームが、フレームの誤りがなく、以前にも受信したことがないフレームで、また自分宛のフレームであると判定した場合、そのフレームを復号部15に渡すとともに、確認応答処理部16にSequence Numberに“15”が付与されたフレームを正常に受信したことを通知する。
復号部15は、受信部14から受け取ったSequence Numberに15が付与されたフレームのCoding headerに基づいてデータの符号化がどのように行われたかを判断し復号を行う。この場合は、受信したフレームのCoding header Typeの値は“0”であり、符号化処理(排他的論理輪演算)をしていないと判断し、復号部15は受信したフレームのCoding data部分をそのままデータとして保持する。
また、確認応答処理部16は、受信部14からの通知に基づいてSequence Numberに“15”が付与されたフレームを受信したことを、フレーム受信情報として記憶しておく。端末3でも、Sequence Numberに“15”が付与されたフレームを受信すると、端末2と同様の処理が行われる。
つぎに、端末2の受信部14は、ステップS12で送信されたSequence Numberに“16”が付与されたフレームを受信し、そのフレームのFCSに基づいて誤りがあると判定され、そのフレームを破棄する。すなわち、端末2は、Sequence Numberに“16”が付与されたフレームを受信不可であり、未受信となる(ステップS13)。一方、端末3では、Sequence Numberに“16”が付与されたフレームを受信すると、そのフレームのFCSに基づいて誤りがないと判定し、そのフレームをSequence Numberに“15”が付与されたフレームと同様に処理する。
また、端末2の受信部14は、ステップS13で送信されたSequence Numberに“17”が付与されたフレームを受信し、そのフレームのFCSに基づいて誤りがないと判定し、そのフレームをSequence Numberに“15”が付与されたフレームと同様に処理する。この際、確認応答処理部16は、Sequence Numberに“17”が付与されたフレームを受信したことをフレーム受信情報として記憶するが、Sequence Numberに“16”が付与されたフレームを受信しなかったこともフレーム受信情報として記憶する。一方、端末3では、Sequence Numberに“17”が付与されたフレームを受信すると、そのフレームのFCSに基づいて誤りがあると判定され、そのフレームを破棄する。すなわち、端末3は、Sequence Numberに“17”が付与されたフレームを受信不可であり、未受信となる(ステップS15)。
以上の処理により、端末2はSequence Numberに“15”,“17”が付与されたフレームを正常に受信し、Sequence Numberに“16”が付与されたフレームを受信していない状態となる。また、端末3はSequence Numberに“15”,“16”が付与されたフレームを正常に受信し、Sequence Numberに“17”が付与されたフレームを受信していない状態となる。
ここで、基地局1の符号部13には連続して送信するフレーム数の閾値、または連続して送信できるフレーム長の閾値、または連続して送信できる時間の閾値を設定しておくこととする。そして、符号部13は、閾値を設定した項目の値が閾値を超えた場合は、確認応答処理部16に、連続して送信したデータフレームの実際の最小値のSequence Number(たとえば、Sequence Number=15,16,17のフレームを連続して送信した場合、Sequence Numberの最小値の“15”)と、送信したフレーム数と、端末2および端末3が受信可能な識別子と、を通知する。
基地局1の確認応答処理部16は符号部13からの通知に基づいて、Ack InformationのSequence Numberに通知されたSequence Numberの値(この場合は“15”)を入力し、また、Sequence Numberに入力した値に対応するフレームからそのフレームを含めた3つのフレームの確認応答要求であることを判断できるような値をBitmapに入力する。ここでは、たとえば、Bitmapに“1110 0000”と入力することとする。すなわち、Bitmapの情報の最上位BitはSequence Numberに“15”が付与されたフレームの位置を示し、最上位から2番目のBitがSequence Numberに“16”が付与されたフレームを示し、最上位から3番目のBitがSequence Numberに“17”が付与されたフレームを示している。各フレームに対応するビットの値が“1”の場合に確認応答要求の対象であり、“0”の場合に確認応答要求の対象でないとする。なお、ここでは、Sequence Number18以降は送信していないため、最上位から4番目以降には“0”を入力する。
また、確認応答処理部16は、端末2,端末3のそれぞれの固有の識別子と端末2と端末3が受信可能な識別子との関係を把握していることとし、まず、端末2に対して確認応答要求を送信するように送信部12に通知するために、Sequence NumberとBitmapの値が入力されたAck Informationに対し、CAに端末2固有の識別子を入力して、入力後のAck Informationを送信部12に受け渡す。
基地局1の送信部12は、確認応答処理部16から受け取ったAck Informationに、Frame Typeに確認応答要求フレームの識別子を入力し、Durationは確認応答要求フレームの送信完了までの時間を計算した結果を入力し、TAに基地局1の固有の識別子を入力し、RAに端末2が受信可能な識別子を入力したMAC headerを付与し、さらに、FCSを付与して無線信号として送信する(ステップS16)。
端末2では、基地局1から確認応答要求フレームを受信すると、受信部14は、そのフレームのFCSに基づいて誤りがないか否かを判定し、MAC headerのFrame Typeに基づいてフレームの種別を判定し、また、RAが、端末2が受信可能な識別子である(自分宛のフレームである)か否かを判定する。以上の判定結果により、フレームの誤りがなく、自分宛の確認応答要求フレームであると判定した場合、確認応答処理部16にそのフレームを受け渡す。
端末2の確認応答処理部16は、受け取ったフレームのAck Information内のCAとSequence NumberとBitmapとに基づいて、自分宛のSequence Numberが“15”,“16”,“17”であるフレームの確認応答要求であることを認識できる。前述のように、確認応答処理部16は、フレーム受信情報として、Sequence Numberに“15”が付与されたフレームおよび“17”が付与されたフレームを受信したことと、Sequence Numberに“16”が付与されたフレームを受信できていないことと、を記憶している。これらのフレーム受信情報に基づいて、受け取ったフレームのAck InformationのBitmapのうち最上位から2番目のビットを0に変更する。そして、Bitmapを変更したAck Informationを送信部12に受け渡し、さらに送信部12にそのAck Informationを確認応答として送信するよう指示する。この際、確認応答処理部16は、MAC headerのTAに端末2および端末3を含む特定のグループの識別子を入力するよう送信部12に指示する。
送信部12は受け取ったAck Informationに、MAC headerとFCSを付与して確認応答フレームを作成し、生成した確認応答フレームを基地局1に送信する(ステップS17)。
基地局1は、端末2から確認応答フレームを受信すると、そのフレームのAck InformationのCAに基づいて端末2からの確認応答であることを認識し、また、Bitmapに基づいて、端末2がSequence Numberに“15”,“17”が付与されたフレームを受信できており、Sequence Numberに“16”が付与されたフレームを受信していない状態であることを認識し、その旨を符号部13に通知する。
つぎに、基地局1は、端末2に確認応答要求フレームを送信した処理と同様にして、端末3に確認応答要求フレームを送信する(ステップS18)。なお、その際、確認応答要求フレームのCAには端末3固有の識別子を入力する。
端末3は、基地局1から確認応答要求フレームを受信すると、端末2と同様の処理を行い、自身が記憶しているフレーム受信情報に基づいて確認応答フレームを生成して送信する(ステップS19)。この場合、端末3は、Sequence Numberに“17”が付与されたフレームを受信していないため、確認応答フレームのAck InformationのBitmapの最上位から3番目のBitを0とする。なお、端末3では、Sequence Numberに“17”の後に、データフレームを受信していないため、フレーム受信情報には、Sequence Numberに“17”が付与されたフレームを受信していないという情報がまだ含まれていないが、確認応答要求フレームに基づいてSequence Numberに“17”が付与されたフレームが既に送信されていることを認識できるため、Sequence Numberに“17”が付与されたフレームが未受信であることが認識できる。
基地局1は、端末3から確認応答フレームを受信すると、そのフレームのAck InformationのCAに基づいて端末3からの確認応答であることがわかり、また、Bitmapに基づいて端末3がSequence Numberに“15”,“16”が付与されたフレームを受信できており、Sequence Numberに“17”が付与されたフレームを受信していない状態であることを認識し、その旨を符号部13に通知する。
なお、端末2,端末3が、何らかの理由で確認応答要求フレームを受信できず、確認応答フレームが送信されない場合、または端末2,端末3が確認応答フレーム送信したにも関わらず、何らかの理由で基地局1が確認応答フレームを受信できない場合も考えられる。このような場合、基地局1は、端末2,端末3のそれぞれから確認応答フレームを受信するまで確認応答要求フレームの再送を行うか、または再送の回数の閾値をあらかじめ決めておき閾値未満の回数まで確認応答要求フレームの再送を行い、閾値以上になった場合は再送を停止するようにする。
基地局1の符号部13は、端末2および端末3からの確認応答フレームに基づいて、Sequence Numberに“15”が付与されたフレームは全ての端末が受信できたと判断し、保持していたSequence Numberに“15”のフレームに対応するデータを破棄する。また、基地局1の符号部13は、端末2が受信していないSequence Numberに“16”が付与されたフレームと端末3が受信していないSequence Numberに“17”が付与されたフレームとのデータ長が異なる場合、データ長の短い方のフレームに“0”を挿入してデータ長を同じにして、それらのフレームの排他的論理和演算を行い、その演算結果をCoding Dataとし、さらにCoding headerを付与する(ステップS20)。
たとえば、Coding headerのCoding header Typeが識別番号“1”の場合はマルチキャストの排他的論理和演算を行っていることを、あらかじめ送受信間で決めておく。そして、ステップS20では、Coding header Typeとして、“1”を入力し、Coding Counterには、2つのフレームの排他的論理輪演算を行ったため“2”を入力する。そして、Coding Sequence Number#1には排他的論理和演算を行った1番目のフレームのSequence Numberである“16”を入力し、Coding Length#1には1番目のフレームのSequence Numberである“16”のフレームのデータ長を合わせる前のデータ長を入力し、Coding Sequence Number#2には排他的論理和演算を行った2番目のフレームのSequence Numberである“17”を入力し、Coding Length#2には2番目のフレームのSequence Numberである“17”のフレームのデータ長(“0”を挿入する前のデータ長)を入力する。
基地局1の符号部13は、送信部12に、Coding headerを付与したCoding Dataを送信するとともに、そのCoding Dataを送信するためのフレームのSequence Numberを通知し、Sequence Numberに対応付けてフレームを保持する。ここでは、たとえば、Sequence Number=18を通知することとする。符号部13は、Sequence Numberに“18”が付与されたフレームは、Sequence Numberに“16”が付与されたフレームとSequence Numberに“17”が付与されたフレームに対応するフレームであることを記憶しておく。
基地局1の送信部12は、符号部13から受け取ったCoding headerを付与したCoding Dataに、Frame Typeにはデータフレームの識別子を入力し、Durationにはデータフレームの送信完了までの時間を計算した結果を入力し、BS IDには基地局1固有の識別子を入力し、SAには送信元装置であるストリーミングサーバ4固有の識別子を入力し、DAには端末2および端末3が受信可能な識別子を入力し、Sequence Numberには符号部13から通知されたSequence Numberを入力したMAC headerを付与し、さらにFCSを付与したフレームを生成して下位層に送信する。基地局1の下位層は、Sequence Numberに“15”が付与されたフレームの送信の場合と同様に、受け取ったフレームを無線信号として送信する(ステップS21)。
端末2の受信部14は、Sequence Numberに“18”が付与されたフレームを受信すると、そのフレームのFCSに基づいて誤りがないと判定し、かつデータフレームであると判定した場合は、復号部15にフレームを受渡し、確認応答処理部16にSequence Numberに“18”が付与されたフレームを受信したことを通知する。
端末2の復号部15は、受け取ったデータフレームのCoding headerに基づいてデータの符号化がどのように行われたかを判断し復号を行う。この場合、Coding header Typeには“1”が入力されているため排他的論理和演算を行っていることがわかる。また、Coding Counterには2が入力されており、2つのフレームの排他的論理和演算を行っていることがわかる。また、Coding Sequence Number#1,#2に基づいてSequence Numberに“16”が付与されたフレームとSequence Numberに“17”が付与されたフレームとの排他的論理和演算であることがわかり、また、Coding Length#1,#2に基づいて、それぞれのフレームのデータ長がわかる。
端末2の復号部15は、すでに受信しているSequence Numberに“17”が付与されたフレームとSequence Numberに“18”が付与されたフレームの排他的論理和演算を行うことで、Sequence Numberに“16”が付与されたフレームを求めることができる。復号部15は、この排他的論理和演算を行い、受信したSequence Numberに“18”が付与されたフレームと、排他的論理和演算を行って得られたSequence Numberに“16”が付与されたフレームと、を保持する。また、復号部15は、確認応答処理部16にSequence Numberに“16”が付与されたフレームを受信できたことを通知する。
端末3は端末2と同様の処理を行う。この際、端末3の復号部15は、保持しているSequence Numberに“16”が付与されたフレームと受信したSequence Numberに“18”が付与されたフレームとの排他的論理和演算を行うことによりSequence Numberに“17”が付与されたフレームを求める。
そして、基地局1は、端末2宛に確認応答要求フレームを送信する(ステップS22)。この確認応答要求フレームのAck InformationのCAには端末2固有の識別子を入力し、Sequence Numberには送信を行ったフレームの実際の最小値を入力する。この場合、Sequence Numberに“18”が付与されたフレームは実際にはSequence Numberに“16”が付与されたフレームとSequence Numberに“17”が付与されたフレームとの排他的論理和演算を行ったフレームであるので、送信を行ったフレームの実際の最小値は“16”になる。また、確認応答要求フレームのAck InformationのBitmapには、Sequence Number“16”からそれを含めた3つのフレームの確認応答要求であることを判断できるように、“1110 0000”と入力する。
また、ステップS21で送信する確認応答要求フレームのMAC headerは、ステップS16で送信した確認応答要求フレームのMAC headerと同様である。なお、ここで、端末2または端末3で未受信となったフレームについて、連続して送信できる閾値を設定した項目(連続して送信するフレーム数の閾値、または連続して送信できるフレーム長の閾値、または連続して送信できる時間の閾値など)が閾値を超えていなければ、閾値を満たすまで新たなデータを含むデータフレームを送信したのちに、端末2宛の確認応答要求フレームを送信するようにしてもよい。その場合、上記のBitmapは、その時点での送信済みのフレームに基づいて作成する。
端末2の受信部14は、基地局1から確認応答要求フレームを受信すると、ステップS16で受信した際と同様に、Frame Typeに基づいて確認応答要求フレームであることを認識し、確認応答処理部16に受信したフレームを受け渡す。確認応答処理部16は、ステップS16で送信された確認応答要求フレームに対する処理と同様に、Ack Informationに基づいて、Sequence Numberが“16”,“17”,“18”のフレームに対する確認応答要求であることを認識する。確認応答処理部16では、Sequence Numberに“16”,“17”,“18”が付与されたフレームを受信したことを記憶しており、受信したAck Informationをそのまま確認応答として送信するように送信部12に受け渡す。送信部12は、そのAck Informationを含む確認応答フレームをステップS17と同様に基地局1へ送信する(ステップS23)。
また、端末2の受信部14は、保持しているSequence Number“15”のフレームはすでに周囲の全端末が受信したため基地局1から送信されなかったことが認識し、復号部15に対してSequence Number“15”のフレームを上位層に受け渡すように指示し、また、復号部15が保持しているSequence Numberに“15”が付与されているフレームを破棄するように指示する。
端末2の復号部15は、確認応答処理部16の指示に基づいて、Sequence Numberが連続しているSequence Number“15”,“16”,“17”のフレームを複写して、上位層に受け渡し、Sequence Number“16”,“17”,“18”のフレームを保持する。また、Sequence Number“15”のフレームは、上位層に受け渡した後に破棄する。なお、Sequence Numberに“18”が付与されているフレームは符号化されたフレームであるため、上位層への受渡しは行わない。
基地局1は、端末2から確認応答フレームを受信すると、宛先等を端末3とした確認応答要求フレームを端末2の場合と同様に、端末3宛に送信する(ステップS24)。端末3は、基地局1から確認応答要求を受信すると、端末2と同様の処理を行い、確認応答フレームを返送する(ステップS25)。基地局1の確認応答処理部16は、端末2および端末3からの確認応答フレームを受信すると、そのフレームに基づいて確認応答の対象であった全てのフレームが受信されことを認識し、それらのフレームに対応するデータを削除するよう符号部13へ指示する。
なお、本実施の形態では、端末を2台としてが、端末の数はこれに限らず3台以上であってもよく、端末ごとに、上記と同様に確認応答の処理を実施すればよい。
以上のように、本実施の形態では、基地局1が、所定の間隔で、端末2および端末3に確認応答フレームを送信し、確認応答フレームを受信した端末2および端末3は、それぞれが保持しているデータフレームの受信情報に基づいて、確認応答要求の対象フレームのうち自信が受信していないデータフレームの識別子を基地局1に確認応答として返送するようにした。そして、基地局1は、確認応答に基づいて、未受信のデータフレームの排他的論理和演算結果を、端末2および端末3に送信し、端末2および端末3は、排他的論理和演算結果と自身が受信しているフレームと排他的論理和演算を行うことにより、未受信のフレームを得るようにした。そのため、複数の端末に対して、それぞれの未受信フレームを送信するかわりに、1つのデータフレームを送信すればよく、確認応答を実施しつつ、周波数利用効率の低下を防ぐことができる。
実施の形態2.
図7は、本発明にかかる無線通信システムの実施の形態2の構成例を示す図である。本実施の形態の無線通信システムは、実施の形態1のストリーミングサーバ4の替わりに、有線端末5,6を備える以外は、実施の形態1の無線通信システムと同様である。実施の形態1と同様の機能を有する構成要素は、同一の符号を付して説明を省略する。
基地局1、端末2および端末3はCSMA/CA方式で動作する無線通信装置をそれぞれ搭載しており、基地局1は端末2および端末3は無線接続されており通信可能な状態である。また、有線端末5は、基地局1を介して端末2と通信し、有線端末6は、基地局1を介して端末3と通信している。無線通信装置の構成は実施の形態1の無線通信装置と同様である。
実施の形態1では、基地局がマルチキャストによるデータフレームの中継を行う場合について説明した。本実施の形態では、基地局1が、1対1通信を行っているデータフレームを中継して送信する場合について説明する。
図8は、本実施の形態のMACレイヤにおけるデータフレームの構成例を示す図である。図8に示すように、本実施の形態のデータフレームはMAC header,Coding header,Coding Data,FCSで構成される。MAC headerは、実施の形態1の図3で示したMAC headerと同様である。
Coding headerは、実施の形態1のCoding headerに、送信元固有の識別子を示すTSAと、宛先装置固有のデータフレームの識別子、または全ての端末が受信可能な識別子(ブロードキャストアドレスなど)、または特定のグループの識別子(マルチキャストアドレスなど)であるTDAと、を追加している。Coding Data,FCSは、実施の形態1のCoding Data,FCSと同様である。
図9は、本実施の形態の基地局1と端末2および端末3との間の通信処理手順の一例を示すチャート図である。図9を用いて、本実施の形態の動作を説明する。基地局1は、有線端末5から端末2に送信するデータを受信し、また、有線端末6から端末3宛てに送信するデータを受信する。基地局1には、現時点では保持しているデータはないとする。
基地局1の符号部13は、保持しているデータがないため符号化処理、すなわちデータの排他的論理和演算を行わず、有線端末5から受信した端末2に送信するデータをそのままCoding DataとしCoding headerを付与して、送信部12に送信し、また、Sequence Numberを送信部12通知し、Sequence Numberに対応付けてデータを保持する。ここでは、Sequence Number=51と通知したとする。このとき、Coding header Typeには、実施の形態1と同様に、あらかじめ、たとえば、識別番号が“2”の場合は、排他的論理和演算を行わないことを送受信間で決めておく。そして、Coding header Typeが“2”の場合は、Coding header TypeとTDAとCoding Sequence Number以外のCoding headerの項目は削除した簡略化したフレームを送信する。図10は、簡略化したフレーム構成の一例を示す図である。
したがって、この場合、Coding header Typeは“2”とし、また、TDAには、端末2固有の識別子が入力される。また、この例では、たとえば、Coding Sequence Number=21とし、Coding Sequence Numberには、“21”が入力されるとする。なお、実施の形態1では、Coding Sequence NumberはSequence Numberと同一であったが、本実施の形態では、Coding Sequence Numberは、宛先端末ごと(または送信元の装置ごと)に、それぞれ“1”ずつインクリメントされていく番号とする。
基地局1の送信部12は、Coding headerが付与されたCoding Dataに対して、Frame Typeにはデータフレームの識別子を入力し、Durationにはデータフレームの送信完了までの時間を計算した結果を入力し、BS IDには基地局1固有の識別子を入力し、SAには送信元装置である有線端末5の固有の識別子を入力し、DAには端末2および端末3が受信可能な識別子を入力し、Sequence Numberには符号部13から通知された“51”を入力したMAC headerを付与し、さらにFCSを付与したフレームを生成し、生成したフレームを下位層に送信する。下位層以降の送信処理は、実施の形態1と同様であり、下位層に送信されたフレームは、無線信号として送信される(ステップS31)。
そして、基地局1の符号部13は、Sequence Numberをインクリメントして“52”とし、有線端末5から受信した端末2に送信する次のデータをCoding Dataとし、Coding headerを付与して、送信部12に渡す。このときCoding headerのCoding header Typeは“2”とし、TDAには、端末2固有の識別子が入力され、Coding Sequence Numberはインクリメントされて“22”が入力される。送信部12は、符号部13から受け取った、Coding headerが付与されたCoding DataにMAC headerを付与し、さらにFCSを付与して下位層に送信する。この際のMAC headerはSequence Number以外は、ステップS31で送信されたフレームと同様である。ここでは、Sequence Numberには、“52”が入力される。そして、このフレームがステップS31の場合と同様に無線信号として送信される(ステップS32)。
また、基地局1の符号部13は、Sequence Numberをインクリメントして“53”とし、有線端末6から受信した端末3に送信するデータをCoding Dataとし、Coding headerを付与して、送信部12に渡す。このときのCoding headerのTDAには端末3固有の識別子が入力され、Coding Sequence Numberには、たとえば、“31”を付与するとする。
基地局1の送信部12では、Coding headerが付与されたCoding Dataに対して、Frame Typeにはデータフレームの識別子を入力し、Durationにはデータフレームの送信完了までの時間を計算した結果を入力し、BS IDには基地局1固有の識別子を入力し、SAには送信元装置である有線端末6の固有の識別子を入力し、DAには端末2、端末3が受信可能な識別子を入力して、Sequence Numberには符号部13から通知された“53”を入力したMAC headerを付与し、さらにFCSを付与して、付与後のフレームを下位層に送信し、無線信号として送信する(ステップS34)。
一方、端末2の受信部14は、ステップS31で送信されたSequence Numberに“51”が付与されたフレームを受信すると、そのフレームのFCSに基づいて誤りがないか否かを判定し、また、Frame Typeに基づいてデータフレームの識別子であるか否かを判定し、BS IDに基づいて端末2が接続している基地局1であるか否かことを判定し、SAに基づいて有線端末5からのデータであることを判定し、DAに基づいて端末2が受信可能な識別子であるか否かことを判定し、Sequence Numberから以前受信したことがないフレームであるか否かを判定する。端末2の受信部14は、以上の処理により、フレームの誤りがなく、以前にも受信したことがないフレームで、自分宛のデータフレームであると判定した場合、そのフレームを復号部15に送信するとともに、確認応答処理部16にSequence Numberに“51”が付与されたフレームを正常に受信したことを通知する。
端末2の復号部15は、受信部14から受け取ったフレームのCoding headerに基づいて、データの符号化がどのように行われたかを判断し復号を行う。この場合は、符号化を行っていないことを示す識別子であるため、符号化されていないことを認識しCoding Dataをそのままデータとする。また、受信部14は、TDAに基づいて端末2宛であることを認識し、Coding Sequence Numberに基づいて以前に受信したことがないフレームであるか否かを判定し、受信したデータを保持する。また、端末2の確認応答処理部16は、Sequence Numberに“51”が付与されたフレームを受信したことを記憶しておく。
つぎに、端末2の受信部14は、ステップS32で送信されたSequence Numberに“52”が付与されたフレームを受信し、そのフレームのFCSに基づいて誤りがあると認識し、そのフレームを破棄する。すなわち、端末2は、Sequence Numberに“52”が付与されたフレームが受信不可であり、未受信の状態となる(ステップS33)。
そして、端末2の受信部14は、ステップS34で送信されたSequence Numberに“53”が付与されたフレームを正しく受信し、Sequence Numberに“51”が付与されたフレームと同様の処理を行う。このとき端末2の確認応答処理部16はSequence Numberに“53”が付与されたフレームを受信したことを記憶しておくとともに、Sequence Numberに“52”が付与されたフレームを受信しなかったことを記憶する。
端末2の復号部15はSequence Numberに“53”が付与されたフレームのCoding headerに基づいて、符号化されていないことを認識でき、また、TDAに基づいて端末3宛であり自分宛のデータでないことを認識し、Coding Sequence Numberに基づいて以前に受信したことがないフレームであると判定し、受信したデータを保持する。
一方、端末3の受信部14は、Sequence Numberに“51”が付与されたフレーム、Sequence Numberに“52”が付与されたフレームともに正しく受信され、端末2がSequence Numberに“51”が付与されたフレームに対して行った処理と同様に処理が行われる。また、端末3の受信部14は、Sequence Numberに“53”が付与されたフレームは、そのフレームのFCSに基づいて誤りがあると認識され、受信部14が破棄する(ステップS35)。
以上の処理により、端末2はSequence Numberに“51”,“53”が付与されたフレームを受信でき、Sequence Numberに“52”が付与されたフレームを受信していない状態となり、一方、端末3はSequence Numberに“51”,“52”が付与されたフレームを受信でき、Sequence Numberに“53”が付与されたフレームを受信していない状態となる。
ここで、基地局1の符号部13は、実施の形態1と同様に、連続して送信するフレーム数の閾値、あるいは連続して送信できるフレーム長の閾値、あるいは連続して送信できる時間の閾値を設定しておき、それを超えた場合は、確認応答処理部16に、連続して送信したデータフレームの最小値のSequence Number(この例では“51”)と、送信したフレーム数と端末2および端末3が受信可能な識別子とを通知する。
確認応答処理部16は、符号部13の通知に基づいて、Ack InformationのSequence Numberに“51”を入力し、また、Sequence Number=51のフレームからそれを含めた3つのフレームの確認応答要求であることを判断できるように、Bitmapに“1110 0000”と入力する。Bitmapでは、実施の形態1と同様に、最上位Bitは確認応答要求の対象の最小のSequence Numberが付与されたフレームを示し、最上位から2番目のBitが2番目のSequence Numberが付与されたフレームを示し、最上位から3番目のBitが3番目のSequence Numberが付与されたフレームを示すこととし、“1”としたフレームを確認応答の対象とすることを示している。また、確認応答処理部16は端末2、端末3の固有の識別子と端末2と端末3が受信可能な識別子の関係を把握しているとし、まず、端末2に対して確認応答要求を送信するように送信部12に通知するために、上記のAck InformationにさらにCAに端末2固有の識別子を入力して、送信部12に受け渡す。
基地局1の送信部12は、確認応答処理部16から受け取ったAck Informationに、Frame Typeには確認応答要求フレームの識別子を入力し、Durationには確認応答要求フレームの送信完了までの時間を計算した結果を入力し、TAには基地局1固有の識別子を入力し、RAには端末2および端末3が受信可能な識別子を入力したMAC headerを付与し、さらにFCSを付与して確認応答フレームとして生成し、確認応答フレームを端末2へ送信する(ステップS36)。
端末2は、基地局1から確認応答要求フレームを受信すると、そのフレームのFCSに基づいて誤りがことを判定し、Frame Typeに基づいて確認応答要求フレームの識別子であることを判定し、RAに基づいて端末2が受信可能な識別子であることを判定すると、そのフレームを確認応答処理部16に受け渡す。以降、端末2は、実施の形態1と同様に自信が保持しているフレームの受信情報に基づいて、確認応答フレームを返送する(ステップS37)。
基地局1は、端末2に確認応答要求フレームを送信した処理と同様にして、端末3に確認応答要求フレームを送信する(ステップS38)。なお、この際、CAには端末3固有の識別子を入力する。そして、端末3は、確認応答要求フレームを受信すると、実施の形態1と同様に、自信が保持しているフレームの受信情報に基づいて、確認応答フレームを返送する(ステップS39)。
基地局1の確認応答処理部16は、端末2および端末3からそれぞれ受信した確認応答フレームに基づいて、端末2および端末3でそれぞれ受信されたフレームと未受信のフレームとを把握し、その情報を符号部13に通知する。
なお、本実施の形態では、端末2が正常に受信できなかったSequence Numberに“52”が付与されたフレームには、端末2宛てのデータが含まれていたとしているが、仮に、端末2が正常に受信できなかったフレームが、端末2が本来の宛先でない場合(端末3が宛先の場合)、基地局1は、端末3に対して1つのフレーム(Sequence Numberに“53”が付与されたフレーム)を再送するだけでよいため、ステップS34と同様にフレームの送信を行えばよい。
基地局1の符号部13は、確認応答フレームに基づいてSequence Numberに“51”が付与されたフレームは全ての端末が受信できたものと判断し保持していたデータを破棄する。そして、符号部13は、端末2が受信していないSequence Numberに“52”が付与されたフレームが、端末2が本来の宛先のフレームであり、端末3が受信していないSequence Numberに“53”が付与されたフレームが、端末3が本来の宛先のフレームであることを認識し、この2つのフレームを再送する必要があると判断する。そして、Sequence Numberに“52”が付与されたフレームとSequence Numberに“53”が付与されたフレームとのデータ長が異なる場合、データ長の短いフレームに“0”を挿入してデータ長を同じにして、それらの排他的論理和演算を行い、演算結果をCoding Dataとし、Coding headerを付与する。
Coding headerのCoding header Typeについては、たとえば識別番号“3”の場合はユニキャストの排他的論理和演算を行っていることを送受信間で決めておく。この場合は、Coding header Typeに“3”を入力し、Coding Counterには2つのフレームの排他的論理輪演算を行ったため“2”を入力し、TSA#1には有線端末5固有の識別子を入力し、TDA#1には端末2固有の識別子を入力し、Coding Sequence Number#1には排他的論理和演算を行った1番目のフレームのCoding Sequence Numberである“22”を入力し、Coding Lengthは1番目のフレームのデータ長(“0”を挿入してデータ長を合わせる前のデータ長)を入力する。また、TSA#2には、有線端末6固有の識別子を入力し、TDA#2には端末3固有の識別子を入力し、Coding Sequence Number#2には排他的論理和演算を行った2番目のフレームのCoding Sequence Numberである“31”を入力し、Coding Length#2には2番目のフレームのデータ長を入力する。
そして、符号部13は、Coding headerを付与したCoding Dataを、送信部12に送信するとともに、Sequence Number=54を送信部12に通知し、Coding Sequence Numberに対応付けてフレームを保持する。また、符号部13は、Sequence Number=54のフレームが、Coding Sequence Numberに“22”が付与されたフレームとCoding Sequence Numberに“31”が付与されたフレームと排他的論理和演算結果のフレームであることを記憶しておく。
送信部12は、符号部13から受け取ったCoding headerを付与したCoding Dataに、Frame Typeにはデータフレームの識別子を入力し、Durationにはデータフレームの送信完了までの時間を計算した結果を入力し、BS IDには基地局1固有の識別子を入力し、SAには基地局1固有の識別子を入力して、DAには端末2および端末3が受信可能な識別子を入力し、Sequence Numberには符号部13から通知された“54”を入力したMAC headerを付与し、さらにFCSを付与して下位層等経由で付与後のフレームを端末2および端末3に送信する(ステップS40)。
端末2の受信部14は、基地局1からSequence Numberに“54”が付与されたフレームを受信すると、他のデータフレームの受信の場合と同様の処理により、フレームに誤りがなく、はじめて受信したフレームであると判定すると、復号部15にそのフレームを受渡し、また、確認応答処理部16にSequence Numberに“54”が付与されたフレームを受信したことを通知する。
復号部15は、受信したフレームのCoding headerに基づいてユニキャストの排他的論理和演算を行っていることを認識する。また、Coding Counterに基づいて2つのフレームの排他的論理和演算を行っていることを認識し、また、TSA#1,#2,TDA#1,#2に基づいて本来の送信元、宛先を認識し、また、Coding Sequence Number#1,#2,Coding Length#1,#2に基づいて、Coding Sequence Numberとそれぞれのフレームの長さを認識する。
そして、端末2の復号部15は、自身がすでに受信しているCoding Sequence Numberに“31”が付与されたフレームとSequence Numberに“54”が付与されたフレームとの排他的論理和演算を行うことで、Coding Sequence Numberに“22”が付与されたフレームを求めることができる。また、復号部15は、受信したSequence Numberに“54”が付与されたフレームと排他的論理和演算を行って得られたCoding Sequence Numberに“22”が付与されたフレームを保持する。また、確認応答処理部16にCoding Sequence Numberに“22”が付与されたフレームを受信できたことを通知する。
端末3は、端末2と同様の処理を行い、復号部15で保持しているCoding Sequence Numberに“22”が付与されたフレームと受信したSequence Numberに“54”が付与されたフレームの排他的論理和演算を行うことによりCoding Sequence Numberに“31”が付与されたフレームを求めることができる。
基地局1は、実施の形態1と同様に、端末2宛に確認応答要求フレームを送信する(ステップS41)。この際、Ack InformationのCAに端末2固有の識別子を入力し、Sequence Numberには送信を行ったフレームの最小値、すなわち“54”を入力する。また、Sequence Numberの“54”フレームのみの確認応答要求であることわかるようにBitmapは“1000 0000”と入力する。
端末2の受信部14は、基地局1から確認応答要求フレームを受信した場合、そのフレームのFrame Typeに基づいて確認応答要求であることを認識し、確認応答処理部16にそのフレームを受け渡す。
確認応答処理部16は、受け取ったフレームのAck Informationに入力されているSequence NumberとBitmapに基づいてSequence Numberの“54”のフレームの確認応答要求であることを認識できる。確認応答処理部16は、Sequence Numberに“54”が付与されたフレームを受信したことを記憶しているため、受信したAck Informationをそのまま確認応答として送信するように送信部12に受け渡す。送信部12は、指示に基づいて確認応答フレームを基地局1へ送信する(ステップS42)。また、確認応答処理部16は、保持しているSequence Numberが“54”より小さい数値が付与されたフレーム(Sequence Numberに“51”,“52”,“53”が付与されたフレーム)はすでに周囲の全員が受信したため基地局1から送信されなかったことがわかるため、復号部15に上位層に受け渡すように指示し、復号部15が保持しているSequence Numberが“54”より小さい数値が付与されたフレームを破棄するように指示する。
復号部15では確認応答処理部16の指示に基づいて、Sequence Numberが“54”より小さい数値が付与されたフレームを上位層に渡すが、この際、まず、Sequence Numberが“54”より小さい数値が付与されたフレームに対応するCoding Sequence Numberをそれぞれ求める。その結果、復号部15は、Sequence Numberが“54”より小さい数値が付与されたフレームは、Coding Sequence Numberが“21”,“22”,“31”のフレームであることを認識すると、自装置宛てのデータが含まれていたCoding Sequence Numberに“21”,“22”が付与されたフレームを複写して上位層に受け渡し、Coding Sequence Numberに“21”,“22”,“31”が付与されているフレームを保持する。
なお、Coding Sequence Numberに“31”が付与されているフレームは自装置宛のデータが含まれるフレームでないため、上位層への受渡しは行わない。また、Coding Sequence Numberに“22”が付与にされたフレームついては、Sequence Numberの“54”が付与されたフレームに基づいて求めたが、Sequence Numberの“54”は符号化されたデータを含む、すなわち再送のフレームであることがわかるため、Sequence Numberが“54”より小さい数値が付与されたフレームとして送信されたと判断することができる。
また、基地局1は、端末2から確認応答フレームを受信すると、端末2にステップS40で送信したフレームと同様のフレームを端末3宛に送信する(ステップS43)。端末3は、基地局1から確認応答要求を受信した端末3では端末2と同様の処理を行う(ステップS44)。以上述べた以外の本実施の形態の動作は実施の形態1と同様である。
なお、本実施の形態では、端末を2台としてが、端末の数はこれに限らず3台以上であってもよく、その場合、端末ごとに、Coding Sequence Numberが連続するようにし、上記と同様に確認応答の処理を実施すればよい。
また、実施の形態1で説明した場合と同様に、3つ以上の再送対象のデータ(フレーム)が存在するときに、各データの長さに基づいて送信時間が最も短くなる組合せで排他的論理和演算を行うように送信パターンを選択するようにしてもよい。
以上のように、本実施の形態では、基地局1は、端末2が未受信の端末2宛てのフレームと、端末3が未受信で端末3宛てのフレームと、の排他的論理和演算結果を1つのフレームで端末2と端末3へ送信するようにした。
なお、本実施の形態では、基地局1が端末2および端末3とユニキャストによる通信を行う場合について説明したが、実施の形態1で述べたマルチキャストによる通信と、本実施の形態のユニキャストによる通信の両方を実施するようにしてもよい。この場合、たとえば、上記で説明したように、ユニキャストの場合のCoding header Typeの値(“2”,“3”)と、マルチキャストの場合のCoding header Typeの値(“0”,“1”)と、異なる値として定めておき、両者の動作を使い分けるようにすればよい。
上記の例では、再送対象のデータ(フレーム)が2つの場合について説明したが、排他的論理和演算を行う際に、3つ以上の再送対象のデータ(フレーム)が存在するときに、各データの長さに基づいて送信時間が最も短くなる組合せで排他的論理和演算を行うように送信パターンを選択するようにしてもよい。以下、その選択方法について具体例を用いて説明する。
図11は、再送対象のデータが3以上の場合の通信処理動作例を示すチャート図である。図11に示すように、基地局1は、ステップS51,S52,S54,S55で、実施の形態1のステップS11,S12,S14または実施の形態2のステップS31,S32,S34と同様に、端末2および端末3に送信するグループ宛てのデータ、または、端末2,端末3に個別に送信するデータをデータフレームとして送信する。ステップS51,S52,S54,S55で送信するデータをそれぞれデータ#1,#2,#3,#4とする。
端末2では、ステップS52,S56で送信されたフレーム(データ#2,#4)を受信できず(ステップS53,ステップS55)、ステップS51,S54で送信されたフレーム(データ#1,#3)を正しく受信できたとする。また、端末3では、ステップS54で送信されたフレームを受信できず(ステップS55)、ステップS51,S52,S56で送信されたフレームを正しく受信できたとする。
基地局1は、実施の形態1または実施の形態2と同様に、端末2,端末3宛てにそれぞれ確認応答要求フレームを送信し(ステップS58、ステップS60)、端末2は、確認応答フレームによって、ステップS52,S56で送信されたフレームを受信できず、ステップS51,S54で送信されたフレームを正しく受信できたことを通知する(ステップS59,ステップS61)。
基地局1は、端末2および端末3から確認応答フレームを受信すると、端末2がデータ#2およびデータ#4を未受信で、端末3がデータ#3を未受信であることを認識する。すなわち、データ#2,#3,#4が再送の対象であることを認識する。基地局1の符号部13は、これらの再送対象のデータを送信する場合、つぎの3つのパターンがあると判断する。データ#2とデータ#3の排他的論理和演算結果を送信し、データ#4を単独で送信するパターン(パターンA)。データ#2を単独で送信し、データ#4とデータ#3の排他的論理和演算結果を送信するパターン(パターンB)。データ#2とデータ#3の排他的論理和演算結果を送信し、データ#3とデータ#4の排他的論理和演算を行い送信するパターン(パターンC)。
ここで、たとえば、データ#2のデータ長が1500Byteであり、データ#3のデータ長が1000Byteであり、データ#4のデータ長が500Byteであったとする。この場合、パターンAでは1500Byteと500Byteを送信することになり、パターンBでは1500Byteと1000Byteを送信することになり、パターンCでは1500Byteと1000Byteを送信することになる。このうち、トータルの送信時間が最も短くなる(トータルのデータ長が最も短くなる)のはパターンAの場合であるため、符号部13は、パターンAでデータを送信することを選択する。
基地局1は、以上のように送信時間が最も短くなるパターンを選択して、そのパターンで再送すべきデータを送信する(ステップS62)。このように、送信時間が最も短くなるパターンを選択して選択することにより、排他的論理和演算を行った場合の伝送効率を向上させることができる。
また、基地局1が、通信相手の端末ごとにその端末との間の通信品質(たとえば、RSSI(Received Signal Strength Indication,)、SNR(Signal to Noise Ratio)、再送回数など)の情報を用いて伝送速度を変更可能である場合、基地局1は、排他的論理和演算を行わずにデータを送信する場合には、排他的論理和演算結果を送信する場合と、排他的論理和演算を行わないデータを送信する場合で、それぞれ異なる伝送レートを選択するようにしてもよい。すなわち、本来受信すべき端末が受信可能な伝送レートを選択してその伝送レートで送信し、排他的論理和演算を行ったデータを送信する場合はデータを本来受信する端末らのうち最も伝送レートが低い端末の伝送レートを選択して、排他的論理和演算結果の送信をその伝送レートで行うようにしてもよい。具体的には、たとえば、以下のような方法で伝送レートを選択して送信する。
図12は、端末ごとに伝送レートが変更可能な場合の本実施の形態の基地局1と端末2および端末3との間の通信処理手順の一例を示すチャート図である。図12に示すように、基地局1は、ステップS71,S73で、上述のステップS32,S34と同様に、端末2,端末3にそれぞれ個別に送信するデータをデータフレームとして送信する。ステップS71,S73で送信するデータをそれぞれデータ#1(端末2宛てデータ),#2(端末3宛てデータ)とする。
端末2は、自装置宛てのデータ#1を含むフレームを受信できず(ステップS72)、端末3は、自装置宛てのデータ#2を含むフレームを受信できない(ステップS73)。基地局1は、端末2とは、たとえば伝送レート24Mbpsで通信しており、端末3とは、たとえば伝送レート36Mbpsで通信しているとする。
その後、基地局1が、上記の図9の例と同様に確認応答要求フレームを送信し(ステップS75,ステップS77)、端末2は、データ#1を受信できず、データ#2を受信できたことを確認応答フレームで基地局1に通知し(ステップS76)、また、端末2は、データ#2を受信できず、データ#1を受信できたことを確認応答フレームで基地局1に通知する(ステップS78)。
基地局1は、データ#1とデータ#2の排他的論理和演算を行い、演算結果をデータフレームとして送信するが、この際の伝送レートは、伝送レートの低い端末2に合わせて送信する(ステップS79)。一般的に伝送レートが低い場合のほうがデータの到達確率が高く、このように伝送レートが低い方を選択して送信することで端末2、端末3は双方とも本来の伝送レート以下の伝送レートになり、到達確率を向上させることができる。
以上のように、本実施の形態では、基地局1は、端末2が未受信の端末2宛てのフレームと、端末3が未受信で端末3宛てのフレームと、の排他的論理和演算結果を1つのフレームで端末2と端末3へ送信するようにした。そのため、端末2と端末3にそれぞれフレームを再送する場合に、1つ排他的論理和演算を行ったフレームを1つだけ送信すれば良いため、確認応答を実施しつつ、周波数利用効率の低下を防ぐことができる。