JP2010118894A - パケット生成装置、パケット生成方法及びパケット生成プログラム - Google Patents
パケット生成装置、パケット生成方法及びパケット生成プログラム Download PDFInfo
- Publication number
- JP2010118894A JP2010118894A JP2008290688A JP2008290688A JP2010118894A JP 2010118894 A JP2010118894 A JP 2010118894A JP 2008290688 A JP2008290688 A JP 2008290688A JP 2008290688 A JP2008290688 A JP 2008290688A JP 2010118894 A JP2010118894 A JP 2010118894A
- Authority
- JP
- Japan
- Prior art keywords
- data
- packet
- unit
- error occurrence
- transmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
【課題】少なくとも一つのデータユニットから構成されるパケットを用いたデータ伝送において、オーバーヘッドを削減する。
【解決手段】伝送データとエラー検出用情報とを含むデータユニットから構成されるパケットを生成するパケット生成装置100であって、送信したパケットに関して受信側から返信される伝送結果(ハンドシェーク41)を用いて、エラー発生状況をデータユニット単位で監視するエラー発生状況監視部1と、エラー発生状況を用いてエラー発生確率を算出し、パケット長が同じ範囲における、エラー発生確率、データユニット数、及びオーバーヘッドの相関関係に基づいて、パケットに含める伝送データを分割する分割数を補正データユニット数として算出するユニットサイズ算出部2と、送出対象データ42と補正データユニット数とを用いて、パケット43を生成するパケット生成部3と、を備える。
【選択図】図2
【解決手段】伝送データとエラー検出用情報とを含むデータユニットから構成されるパケットを生成するパケット生成装置100であって、送信したパケットに関して受信側から返信される伝送結果(ハンドシェーク41)を用いて、エラー発生状況をデータユニット単位で監視するエラー発生状況監視部1と、エラー発生状況を用いてエラー発生確率を算出し、パケット長が同じ範囲における、エラー発生確率、データユニット数、及びオーバーヘッドの相関関係に基づいて、パケットに含める伝送データを分割する分割数を補正データユニット数として算出するユニットサイズ算出部2と、送出対象データ42と補正データユニット数とを用いて、パケット43を生成するパケット生成部3と、を備える。
【選択図】図2
Description
本発明は、伝送データとエラー検出用情報とを含むデータユニットから構成されるパケットを生成するパケット生成装置及び方法に関し、特に、パケットのオーバーヘッドを削減するパケット生成装置及び方法に関する。
近年、大量のデータをパケットに分割してデータ転送する方式が用いられている。この場合、データをパケットのサイズに応じて分割し、複数のパケットを生成してデータを伝送する。
図23は一般的に行われているバースト方式でのデータ伝送の様子とパケット構成を示している。図23では、送信側は、複数のパケット(N個、Nは自然数)を順次送信する。受信側は、N個のパケットを順次受信し、伝送結果を示すAckCodeを生成し、ハンドシェーク(Handshake)として送信側へ返信する。パケットのデータ形式は、上段に示す構成になっている。具体的には、パケットは、先頭にプリアンブル(Preamble)、ヘッダ(header)があり、その後にデータペイロード(Data Payload)部分、そして最後にデータ伝送エラー検出用のエラー検出用情報(CRC:Cyclic Redundancy Check)が付加されている。このパケットを用いてバースト方式によるデータ伝送を行う場合、送信側では各パケットをある間隔以上空けて送信し、受信側では各パケットのCRCをチェックして各パケットにエラーが無いかどうかを判断する。予め設定した数(ここではN個)のデータ伝送が完了したところで、受信側から送信側に対して、各パケットにエラーがあったかどうかをコードで示したハンドシェークパケットを返送する。
図24はこのデータ伝送においてパケットの一部にエラーが発生した場合に、その情報をハンドシェーク中のコードを用いて送信側に返す様子を示している。エラーがあるパケットがあった場合、例えば図24に示すようにパケットの順番に対応するコードのビットを'0'にしたハンドシェークを返すことでエラーパケットの再送を要求する。具体的には、受信側は、各パケット内に付加されたCRCにより、各パケットの伝送OK/NGを判断し、伝送結果を示すAckCodeを生成する。図24では、2、4、及び7番目のパケットにエラーが発生した場合を示しており、AckCode[7:0]=01101011となっている。受信側は、AckCodeをハンドシェークとして送信側へ返す。
図1はデータを伝送する場合のパケット構成の他の例であり、一つのパケットのデータ形式を示している。図1に示すパケットは、データが複数のデータペイロードに分割され、それぞれにデータ伝送エラー検出用情報が付加されている。ここでは、データペイロードとCRCとの組み合わせをデータユニットと呼ぶ。図25はこのデータ形式のデータの伝送において、伝送データにエラーが生じた場合に、エラーが発生したデータユニットを示す情報をハンドシェーク中のコードを用いて送信側に返す様子を示している。図25では、受信側は、8個のデータユニットから構成されるパケットを受信し、2、4、及び7番目のデータユニットでエラーが発生した例を示している。なお、図中スペースの関係上「CRC」を「C」と省略して示している。
送信側は、ハンドシェークを受け取ると、AckCodeに従ってエラーが発生した伝送データを再度送信することになる。図23に示すデータ転送ではエラーが発生したパケットを再送する。これに対し、図1に示すデータ伝送ではエラーが発生したデータユニットを再送する。このように、図23のデータ構成と図1のデータ構成では、再送する伝送データの単位が異なり、再送するデータ量も相違する。
図1のデータ構成のパケットにおいてエラーが発生した伝送データを再送する手順について、図26を用いて具体的に説明する。図26は伝送データにエラーが生じた場合に、分割されたデータのみが再送されている様子を示している。伝送データにエラーが発生した場合、図23の例では、パケット毎に再送する必要があるが、図1の例では、図26に示すようにデータユニット毎に再送する伝送データを選択することになる。エラーが発生した伝送データを再送するパケットは、プリアンブル、ヘッダ、及びエラーが発生したデータユニットから構成される。このため、パケット毎に再送する場合に比べ、再送する伝送データ量を削減することができる。伝送データの再送は、伝送効率を低下させる要因の一つであり、再送する伝送データ量を削減することが好ましい。
一つのデータの伝送において、伝送エラー発生時の損失を抑える方法として、例えば、特許文献1に開示されている。特許文献1では、図1に示すように、データペイロード部分を複数のデータユニットに分割し、それぞれにデータ伝送エラー検出用の情報(CRC)を付加するパケットを用いる。これにより、パケットに伝送エラーが発生した場合であっても、データにエラーがあるかどうかをデータユニット単位で判断する。そのため、エラーがあるデータをデータユニット単位で再送すれば良く、パケット単位で再送する場合に比べて伝送時の損失が小さい。送信パケットのどのユニットにエラーが発生したかは、図25に示すように、データユニットの順番をビットの位置に対応させたAckCodeを用い、エラーとなったデータユニットに対応するビットの値を'0'にしたハンドシェークを返すことで、エラーユニットの再送を要求する。
特許文献1の方法では、エラーユニットの再送が要求された場合、送信側からは、図26に示すように該当するデータユニットを次のパケットにまとめて再送している。あるいは、送信側は単純にパケットを再送し、受信側で前回エラーが発生したブロックまでは受信データを無視し、エラーが発生したブロックから正規の受信処理を再開している。
また、特許文献1または特許文献2に開示された技術では、データユニット(特許文献1の図3、特許文献2の図1)を用いることにより、伝送エラーが発生した場合に、再送するデータ量を分割データ部分だけに絞ることが出来るため、伝送の効率化を図ることができるとしている。しかしながら単に、エラーとなった分割データについて再送する、としているだけであって、そこではエラーの発生状況を把握してそれを以後のデータ伝送に反映するようなことは行われてはいない。
データを複数パケットで伝送する場合、パケット間の最小間隔の制約、各パケットに付加されるプリアンブル、ヘッダなどによるオーバーヘッドが伝送効率に大きく影響する。一般に無線通信の場合は、有線通信の場合に比べエラーの発生確率が高くなる傾向になり、このオーバーヘッドが大きい。そのため伝送効率を上げるには1パケットで伝送するデータのサイズをなるべく大きくしてオーバーヘッド(プリアンブル、ヘッダやパケット間の間隔)の割合を下げる必要がある。しかしながら、データサイズを大きくしてパケット長を長くすればそれだけ伝送中にデータエラーが発生する確率が高くなり、エラー発生に伴う再送データのオーバーヘッドが大きくなる。
プリアンブルやヘッダなどのオーバーヘッドについて具体的に検討する。例えば、図27はバースト転送における時間的なパラメータとして、無線伝送方式の規格の一つであるWiMedia規格を例に、パケット間ギャップ、パケット内のPreamble/Headerとペイロードの長さについて示している。WiMedia規格は、UWB(Ultra Wide Band)を用いた伝送方式であり、Wireless USBで採用されている方式である。図27に基づいて、パケットの構成・パケット間ギャップが伝送効率に寄与する度合を算出すると、データペイロード部分が約60us(データ長3584Byte、伝送速度480Mbpsの場合)であるのに対し、パケット間ギャップが最低約1.9us、Preamble及びHeaderが約9.4usであり、約15%がオーバーヘッドとなっている。
次に、データ再送に伴うオーバーヘッドについて検討する。図23に示したデータ伝送方式では、パケット長は通常最大値が設定されていて、基本的にはその最大値でデータ伝送が実施されるが、エラー発生が多い場合には適宜パケット長を短くする。一旦短くしたパケット長を長くすることができるかどうかは、パケット長を長くしたパケットを送信しその結果で判断することになる。また、図23に示した伝送方式では、受信側で伝送したデータにエラーが検出された場合、そのデータは全て破棄する必要があるため、エラーが発生した場合の損失が大きい。そのため、エラーが発生しやすい条件下ではデータサイズを大きくした状態を維持して伝送を継続することは困難で、適宜データサイズを小さくする必要がある。
しかしながら、一体どれくらい小さくすれば良いかは不明であるため、適当にサイズを変更し、変更後のサイズを用いてデータ伝送を行って結果を見るというトライアンドエラーの方法とならざるを得ない。このデータ伝送方式ではエラーとなったデータを破棄するため、エラーとなった場合の損失が大きくなっていた。また、一旦データサイズを小さくした後データサイズを大きくできるかどうかを判断することになるが、データサイズを大きくしてデータ伝送を行ってその結果を見るというトライアンドエラーが必要となる。このため、エラーとなった場合の損失が大きくなっていた。このように伝送条件に合わせて適切なデータサイズを選択するには損失リスクが大きく、伝送環境条件の変化に迅速に追従することが困難で伝送効率を向上し難いという問題があった。
ここで、上述の、パケットがエラーになった場合にそのパケット内のデータを全て破棄する必要がある、という点に関しては、パケット内のデータを図1に示したデータ形式とし分割後のデータユニット単位で再送を行うことで改善することはできる。しかし、図26に示すように、データ再送時にそのデータ量を削減しているだけという点でその効果の範囲は対象となる1パケットのみであり、複数パケットを使って行われるデータ伝送全体から見れば伝送効率改善の効果は限定的であった。
特開昭59−167144号公報
特開平5−6629号公報
データ伝送においてエラーが発生した場合、データユニットのサイズを変更することによって、エラー発生確率を改善することが可能である。しかしながら、設定するデータユニットのサイズとして適切な値を伝送環境に応じて迅速に導き出す方法がなかった。このため、データ伝送において、オーバーヘッドが大きくなっているという問題があった。
本発明に係るパケット生成装置の一態様は、伝送データとエラー検出用情報とを含むデータユニットから構成されるパケットを生成するパケット生成装置であって、送信したパケットに関して受信側から返信される伝送結果を用いて、エラー発生状況を前記データユニット単位で監視するエラー発生状況監視部と、前記エラー発生状況を用いてエラー発生確率を算出し、パケット長が同じ範囲における、前記エラー発生確率、データユニット数、及びオーバーヘッドの相関関係に基づいて、前記パケットに含める伝送データを分割する分割数を補正データユニット数として算出するユニットサイズ算出部と、伝送対象となるデータと前記補正データユニット数とを用いて、パケットを生成するパケット生成部と、を備える。データユニット数算出部は、エラー発生状況を用いて統計処理を実施することによって、伝送環境に応じた補正データユニット数を算出する。これにより、オーバーヘッドを削減することができる。
また、本発明に係るパケット生成方法に置いて、伝送データとエラー検出用情報とを含むデータユニットから構成されるパケットを生成するパケット生成方法であって、送信したパケットに関して受信側から返信される伝送結果を用いて、エラー発生状況を前記データユニット単位で監視し、前記エラー発生状況を用いてエラー発生確率を算出し、パケット長が同じ範囲における、前記エラー発生確率、データユニット数、及びオーバーヘッドの相関関係に基づいて、前記パケットに含める伝送データを分割する分割数を補正データユニット数として算出し、伝送対象となるデータと前記補正データユニット数とを用いて、パケットを生成する。
さらに、本発明にかかるパケット生成プログラムの一態様は、伝送データとエラー検出用情報とを含むデータユニットから構成されるパケットを生成するパケット生成プログラムであって、送信したパケットに関して受信側から返信される伝送結果を用いて、エラー発生状況を前記データユニット単位で監視する手順と、前記エラー発生状況を用いてエラー発生確率を算出する手順と、パケット長が同じ範囲における、前記エラー発生確率、データユニット数、及びオーバーヘッドの相関関係に基づいて、前記パケットに含める伝送データを分割する分割数を補正データユニット数として算出する手順と、伝送対象となるデータと前記補正データユニット数とを用いて、パケットを生成する手順と、をコンピュータに実行させる。
本発明によれば、少なくとも一つのデータユニットから構成されるパケットを用いたデータ伝送において、オーバーヘッドを削減することができる。
以下、本発明の実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において同一の構成または機能を有する構成要素および相当部分には、同一の符号を付し、その説明は省略する。
本発明は、データペイロードが複数のデータユニットに分割され、各データユニットにエラー検出用情報が付加された構成のパケットを用いるデータ転送方式に適用される。図1に複数のデータユニットを含むパケットの構成例を示す。パケットは、プリアンブル、ヘッダ、及びN個のデータユニットを含む。Nは、1以上の整数である。データユニットは、データペイロードとデータ検出用情報(以下、適宜「CRC」と記す)を含む。大量のデータを伝送する場合、データは複数のデータペイロードに分割されて各データユニットに配置される。なお、図1では、複数のデータユニットを含む構成例を示しているが、パケットは少なくとも一つのデータユニットを含んでいればよい。プリアンブルは、送受信の同期をとるためのフィールド(ビット列)であり、ヘッダは、パケット及びデータユニットなどに関する情報を示すフィールドである。ここでは詳細な説明を省略する。
パケット長は、プリアンブル、ヘッダ及びN個のデータユニットを含む長さを指す。パケットのデータ長(「総データ長」ともいう)は、N個のデータユニットの長さを指し、データユニット長×データユニット数によって算出できる。データユニット長は、一つのデータユニットの長さであり、具体的にはデータペイロードとCRCとを合わせた長さになる。データユニット数は、データユニットの数(N)である。
以下に説明する実施形態の一態様では、パケットを構成するデータユニットの分割数を適切な値に設定することによって、データ伝送におけるオーバーヘッドの削減を図る。なお、以下の説明では、パケットのデータ長が算出されることによって、パケット長が決定されることになるため、パケットのデータ長とパケット長と厳密に区別しない場合もある。
(実施形態1)
図2は、本発明の実施形態に係るパケット生成装置の構成例を示すブロック図である。パケット生成装置100は、エラー発生状況監視部1と、ユニットサイズ算出部2及びパケット生成部3を備える。パケット生成装置100は、ハンドシェーク41を用いて、送出対象データ42を含むパケット43を生成し、送出する。
図2は、本発明の実施形態に係るパケット生成装置の構成例を示すブロック図である。パケット生成装置100は、エラー発生状況監視部1と、ユニットサイズ算出部2及びパケット生成部3を備える。パケット生成装置100は、ハンドシェーク41を用いて、送出対象データ42を含むパケット43を生成し、送出する。
エラー発生状況監視部1は、受信側から通知されるハンドシェーク41を用いて、エラー発生状況をデータユニット単位で監視する。ハンドシェーク41は、伝送したパケットに関する伝送結果であり、データユニット単位のエラー発生状況を含む。監視に用いるハンドシェーク41は、例えばAckCodeが用いられる。エラー発生状況監視部1は、伝送結果から検出したエラー発生状況をエラー発生状況保持部11に保持する。このように、エラー発生状況監視部1は、当該送出データに対するハンドシェーク41から、その送出データのデータユニット単位でのエラー発生状況を把握することができる。
エラー発生状況保持部11は、エラー発生状況を記録するメモリである。図2は、エラー発生状況監視部1内に配置しているが、これに限られるわけではなく、エラー発生状況監視部1とユニットサイズ算出部2がアクセスできる領域に配置されていればよい。図3にエラー発生状況保持部11が保持する情報の一例を示す。図3では、送信したパケット中について、パケット内データユニット数、データユニット長、それらを掛けたパケットのデータ長(総データ長)、AcSKCodeから判断されるデータ伝送に成功・失敗したデータユニットの数(伝送成功データユニット数、伝送失敗データユニット数)、及びデータユニット単位でのエラー発生確率を、パケットIDに対応づけて記録する。
図3には示していないが、パケット毎(パケットID毎)にエラー発生状況を記録したタイムスタンプを記録してもよい。タイムスタンプにより、エラー発生状況を記録してから経過した時間が測れるため、情報の有効性を判断するときに一つの判断項目として用いることができる。
なお、図3は、以降の説明を容易にするため、多くの情報を保持する例を示しているが、少なくとも、パケット内データユニット数、データユニット長、及び伝送エラーデータユニット数を保持していればよい。その他の情報は、これらの情報から算出することが可能である。また、保持する情報を削減することによって、メモリ容量を削減することができる。保持するパケットIDの数は、パケット生成装置100によって適宜決定される。エラー発生状況保持部11が保持する情報のうち、一部は後述するユニットサイズ算出部2によって算出される。
ユニットサイズ算出部2は、エラー発生状況を用いてエラー発生確率を算出し、パケット長が同じ範囲における、エラー発生確率、データユニット数、及びオーバーヘッドの相関関係に基づいて、伝送状況に応じたデータユニット数を算出する。算出したデータユニット数を、前回用いたデータユニット数と明確に区別するため、適宜「補正データユニット数」という。また、ユニットサイズ算出部2は、補正データユニット数に応じて、データユニット長を算出する。具体的には、ユニットサイズ算出部2は、前回送信したパケットと同量の伝送データを分割する分割数を補正データユニット数として算出する。すなわち、パケット長が同じ範囲で、データユニット数を変更することによって、エラー発生確率の低下とオーバーヘッドの削減を図る。
ここで、本発明の明細書において「パケット長が同じ範囲」とは、パケットに含まれる伝送データの長さ、具体的には、各データユニットに含まれるデータペイロードの長さの合計が同じであるということを意味する。厳密には、データユニット数に応じてCRCの量(数)が変化するため、パケット長(あるいはパケットのデータ長)も同様に変化する。しかしながら、CRCの長さは、伝送データの長さに比べると小さいため、パケット長全体としては、CRCの長さの変化を無視して考えることができる。従って、本明細書では、「パケット長が同じ範囲」という場合、CRCの長さの変化を無視して考えるものとする。
ユニットサイズ算出部2は、相関関係算出部21、データユニット数算出ルール保持部22、及びデータユニット数算出部23を含む。
相関関係算出部21は、データ発生状況を用いてエラー発生確率を算出し、パケット長が同じ範囲における、エラー発生確率を監視・収集する。例えば、相関関係算出部21は、エラー発生状況保持部11に記録されたエラー発生状況のパケット内データユニット数と伝送エラーデータユニット数とを用いてエラー発生確率を算出し、エラー発生状況保持部11に記録する。そして、複数のパケットIDについて、算出したエラー発生確率とデータユニット数とを対応づけてエラー発生確率を収集する。すなわち、各パケットでのエラー状況の統計を取り、データユニット単位でパケット長が同じ範囲における、データユニット数とエラー発生確率との相関関係を求める。なお、エラー発生確率は、エラー発生状況監視部1が算出し、エラー発生状況保持部11へ記録する手順を取ってもよい。
データユニット数算出ルール保持部22は、データユニット数とオーバーヘッドの相関関係を算出ルールとして保持する。算出ルールについては後述する。また、算出ルールはこれらに限られることはなく、補正データ長を算出するための情報であればその他の情報であってもよい。
データユニット数算出部23は、相関関係算出部21が算出した、データユニット単位でパケット長が同じ範囲における、データユニット数とエラー発生確率との相関関係、及び、データユニット数算出ルールを用いて、次に送信するパケットに含める伝送データを分割する分割数を補正データユニット数として算出する。具体的には、データユニット数算出部23は、エラー発生確率に応じて、パケット長が同じ範囲における、データユニット数とオーバーヘッドとの相関関係を算出して補正データユニット数を算出する
パケット生成部3は、補正データユニット数を用いて伝送するデータを分割してデータユニットを生成し、パケットを生成する。パケット生成部3は、データ分割部31、CRC算出部32、及びパケット送出部33を含む。
データ分割部31は、送出対象データ(再送データを含む)を、データユニット長毎にデータユニットの数だけデータを分割する。
CRC算出部32は、各データユニットのCRCを算出する。
パケット送出部33は、各データユニットとそれぞれのCRCをまとめて1つのパケットを形成して送出する。
次にパケット生成装置の動作について説明する。図4は、パケット生成装置の動作例を示すフローチャートである。図4では、送信側の動作を示している。また、図5はデータユニット数を変化させる例を示す図であり、図1に示すデータ形式のパケット構成例を用いて、データ伝送を行い、伝送エラーが発生した場合のパケット構成例を示す図である。図5では、左側に送信側から伝送するパケット構成を示し、右側に受信側から返信されるハンドシェークを示している。P1からP2はパケットIDであり、P1は、第1のパケット、P2は第2のパケットである。Pはプリアンブル、Hはヘッダ、D及びQはデータペイロード、CはCRC、HSはハンドシェークを示す。また、Lはデータユニットの単位長を示す。D及びQに付加している番号は、全データユニット数のうち何番目かを示す値である。また、C(CRC)の番号は第1のパケットから付与した通し番号を示している。なお、図面のスペースの関係上、データペイロードの次に付加されるCについては、付加される位置を示す枠のみ示し、内容の表示を省略している部分もある。
まず、受信側は、送信側から受信したパケットについて、エラー発生状況を示すAckCodeを生成し、ハンドシェークとして返信する。送信側は、受信側から返信されたハンドシェークを受信する(S11)。
図5の例では、最初にデータユニット数が5個のパケットP1を送信し、そこでデータユニットD2、D4それぞれのCRCがエラーとなっている。このとき、受信側はエラーとなったデータユニットに対応するビットを'0'としたAckCodeをハンドシェークとして返すことによって送信側にエラーとなったデータユニットの情報を伝える。
送信側では、エラー発生状況監視部1がAckCodeを用いて図3に示すような送信したパケット中のデータユニット数、データユニット長、それらを掛けた総データ長、AckCodeから判断されるデータ伝送に成功・失敗したデータユニットの数、及びデータユニット単位でのエラー発生確率をエラー発生状況保持部11に記録する(S12)。
ユニットサイズ算出部2の相関関係算出部21は、エラー発生状況保持部11に記録されているエラー発生状況を用いて、エラー発生確率を算出する(S13)。また、相関関係算出部21は、エラー発生状況保持部11が保持するエラー発生状況を用いて、各パケットについて統計処理を行う。具体的には、相関関係算出部21は、パケット長が同じ範囲における、エラー発生確率を監視(観測)する。具体的には、所定期間のエラー発生確率を収集し、エラー発生確率とデータユニット数との相関関係をデータユニット数算出部23へ通知する。所定期間は、伝送状況によって変えてもよいし、あらかじめ決められた期間であってもよい。また、エラー発生確率の変化に基づいて、監視する期間を変化させてもよい。
ここで、データユニットとオーバーヘッドの関係について考えてみる。図6に、データユニット数とパケット構成上のオーバーヘッドとの相関関係の例を示す。パケット構成上のオーバーヘッドは、パケットのプリアンブル、ヘッダ及びCRC、あるいはパケット間最小間隔(パケット間隔)などがある。パケット長が同じ範囲である場合、データユニット数を大きくする(すなわち、データユニット長を小さくする)と、データユニット長に対するCRCの割合が大きくなるため、パケット構成上のオーバーヘッドが大きくなる。また、パケット長が同じ範囲の場合、パケット長とパケット間隔の比(パケット長/パケット間隔)は、変化しないため、オーバーヘッドに影響しない。
図7に、データユニット数とエラー発生・再送によるオーバーヘッドとの相関関係の例を示す。エラー発生・再送によるオーバーヘッドは、エラー発生で生じるデータ再送による損失である。データ伝送エラー発生時の動作を考えた場合、データユニット長の長さに応じて再送する時間が長くなる。このため、データユニット長が長い(データユニット数が小さい)ほどオーバーヘッドが大きくなる。またこのオーバーヘッドは、図7に示すように、エラー発生状況に応じて変わる。すなわち、エラー発生確率が大きい場合は、エラー発生確率が小さい場合に比べてオーバーヘッドが大きくなる。
図6及び図7に示すデータユニット数とオーバーヘッドとの関係は、所定の計算式等によって算出できる関係である。すなわち、一定の関係が予め予測できる関係になる。このため、データユニット数とオーバーヘッドとの関係は、データユニット数算出ルール保持部22に、データユニット数算出ルールとして保持される。
エラー発生確率とデータユニット数算出ルール(ここではデータユニット数とオーバーヘッドとの関係)に基づき、エラーを考慮した場合のオーバーヘッドとデータユニット数との関係について考えてみると、エラー発生確率が低い場合には図8、エラー発生確率が高い場合には図9に示すような関係が得られる。ここでのオーバーヘッドは、エラー発生・再送によるオーバーヘッドとパケット構成上のオーバーヘッドとを合わせたものである。何れのケースでもオーバーヘッドが極小となる最適データユニット数が存在し、エラー発生確率が低い場合には相対的に大きく、エラー発生確率が高い場合には相対的に長くなる。図8または図9は、一例を示したものでありエラー発生確率によって相関関係が異なってくるものである。これらの相関関係を用いて補正データユニット数が算出される。
データユニット数算出部23は、相関関係算出部21が収集したエラー発生確率とデータユニット数との間の相関関係を解析し、データユニット数の変更が必要であるか否かを判断する(S14)。
データユニット数の変更が必要であるかを判断する手順として、例えば次のようなルールを用いることができる。(1)エラー発生確率が所定の範囲を超えて上昇した場合、データユニット数を増やす。(2)エラー発生確率が所定の閾値(第一閾値)より大きくなった場合、データユニット数を増やす。(3)エラー発生確率が所定の閾値(第二閾値)より小さい場合、データユニット数を減らす。また、上記(1)から(3)の状況が所定期間続いた場合にデータユニット数を変更するようにしてもよい。
エラー発生確率の解析結果に基づいて、データユニット数を変更しない場合(S15でNo)、パケット生成部3は、前回と同じデータユニット数を用いてパケットを生成し(S17)、送出させる(S18)。
データユニット数を変更する場合(S15でYes)、データユニット数算出部23は、データユニット数を算出する(S16)。具体的な算出手順は上述した通りである。
続いて、パケット生成部3は、データユニット数算出部23が算出したデータユニット数(補正データユニット数)を用いてパケットの生成を行う。このとき、パケット長を変更している場合には、変更後のパケット長を用いてパケットの生成を行う(S17)。パケット生成部3は、生成したパケットを送出させる(S18)。
上述した通り、データ伝送を行った際のデータユニット毎の伝送成功・失敗の記録の統計を取ることで、送信におけるオーバーヘッドを極小化する最適データユニット数(補正データユニット数)を算出することができる。従って、次パケットの送信ではこの最適データユニット数に変更する。なお、統計対象のパケットは、伝送環境の変化に迅速に追従できるように、当該パケットとその直前の少数のパケットに絞り、より直前のパケットの状況がより統計に反映されるように重み付けをすることが望ましい。また、エラー発生状況保持部11に記録(蓄積)されたエラー発生状況は、所定期間蓄積された後、削除される。
また、環境への追従性を制御するために、例えば以下に示すようなルールをデータパケット数算出ルールに加える方法もある。
(I)直前のパケットの伝送において、全てのデータユニットでエラーが発生しなかった場合は、当該パケットではデータユニット数を所定数減らした値に変更する、あるいはエラーが発生しなかったときのデータユニット数のうち、最近のデータユニット数と同じ値に変更するなど、パケット構成上のオーバーヘッドを減らすデータユニット数に変更する。
(II)直前のパケットの伝送において、伝送に成功したデータユニット数がそれまでの統計による同じデータユニット数に対して著しく悪化した場合は、一時的な現象である可能性を考慮して、データユニット数の変更をスキップする。
(I)直前のパケットの伝送において、全てのデータユニットでエラーが発生しなかった場合は、当該パケットではデータユニット数を所定数減らした値に変更する、あるいはエラーが発生しなかったときのデータユニット数のうち、最近のデータユニット数と同じ値に変更するなど、パケット構成上のオーバーヘッドを減らすデータユニット数に変更する。
(II)直前のパケットの伝送において、伝送に成功したデータユニット数がそれまでの統計による同じデータユニット数に対して著しく悪化した場合は、一時的な現象である可能性を考慮して、データユニット数の変更をスキップする。
さて、図5の例では、第1のパケット(P1)で、5データユニットの中、2データユニットにエラーが発生している状況である。データユニット数算出部23は、この結果に基づいて最適データユニット数を算出し、例えば10という結果になったとする。そこで、パケット生成部3は、次のパケットではデータユニット数を10に変更し、データユニット長を算出する。そして、パケット生成部3(データ分割部31)は、パケットに割り当てるデータとして、第1のパケットでエラーとなったデータユニットを先頭から順に割り当て、その後未送信のデータユニットを割り当て、その合計のデータユニット数が変更後のデータユニット数となるように数を調整しパケットを構成する。この例ではD2、D4を先頭から4データユニットとなるQ0からQ3へ順に割り当て、その後残り6データユニット分にQ4からQ9を新規に追加している。
送信側・受信側双方においてはエラーとなったデータユニットのデータとAckCodeのビットの対応を管理しており、この例では第1のパケットでエラーとなったD2のうちの前半は第2のパケットの先頭になるため、ACKコードのbit0、D2のうちの後半は第2のパケットの2番目になるため、ACKコードのbit1、D4の前半は第2のパケットでは先頭から3番目になるのでbit2、D4のうちの後半は第2のパケットの4番目になるため、ACKコードのbit3、といった具合である。従って、再送時にデータユニット長が異なる場合にも、受信側は再送されたデータユニットと前回エラーが発生したデータユニットとを対応づけることができる。
第2のパケット(P2)ではエラーとなったデータユニットが無い。このため、データユニット数算出部23は、データユニット数算出ルールのうち、上述した(I)を適用して第3のパケット(P3)のパケット長を16に変更する。あるいは、データユニット数算出部23は、エラーが発生しなかったときに用いるデータユニット数を予め設定しておき、その値を用いてもよい。
図5では、第1のパケット(P1)は、長さが4L(L:単位長)のデータユニットを5個使用してデータ送信を行っている。D2、D4のそれぞれのCRCでエラーが発生しているため、データユニット数算出部23は、この結果に基づいて、データユニット数を算出する。このとき、再送するデータユニットが存在するため、データユニット数算出部23は、データユニットに含める伝送データの長さが、前回送信したデータユニットに含めた伝送データの長さの約数または倍数となるように前記補正データユニット数を算出する。図5では、4Lから2Lになるようにデータユニット数を算出している。このとき、データユニット数を変更しているが、パケット長は前回のパケット長と同じ範囲、すなわち、CRCの長さによる変化が生じるだけであり、パケットに含まれる伝送データの総量(各データユニットに含まれるデータペイロードの合計)は同じとなっている。
図5の説明では、データ長とエラー発生確率の相関関係を求める方法において、送信パケット中でエラーとなったデータユニットの数だけを考慮したが、エラーの発生位置に偏りや傾向があるかどうかを分析し、それらの情報も含めて最適データ長を算出することもできる。例えば送信パケットの後半にエラー発生位置が偏っていれば、データ長をエラー発生が発生しない長さにまで小さくすることでエラーが非常に少ない伝送を行うことができるようになる。ここでは詳細な方法については省略する。
以上説明したように、パケットによるデータ伝送において、伝送環境に応じてオーバーヘッドが極小となるようにデータユニット数を調整しながら伝送を行うことで、データ伝送効率の向上を図ることができる。具体的には、データペイロードが適切な長さのデータユニットに分割され、それぞれにCRCが付加されている形式のパケットを用いるデータ伝送方式において、パケット送信時の各データユニットのエラー発生状況に基づいてデータユニット数、オーバーヘッド及びエラー発生確率の相関関係を導き出し、そこから送信時のオーバーヘッドが極小となる最適データユニット数を算出し、パケット長が同じ範囲において、次に送信するパケットにおけるデータユニット数を、算出した最適データユニット数に変更することにより実現する。
より具体的には、データペイロードが複数のユニットに分割され、各ユニットに転送エラー検出用の情報(CRC)が付加された構成のパケットによるデータ伝送処理において、伝送時にエラーが発生したユニット数の状況を監視し、その情報に基づいて伝送時のオーバーヘッドが極小となる最適データユニット数を算出し、それに合わせて次パケットのデータユニット数を調整することで伝送効率の向上を図る。
また、上述のパケット構成によるデータ伝送では、伝送エラー発生時にエラーとなったユニットのみ再送することで伝送損失を少なく抑えることができるという特徴があり、これを活かし、エラー発生状況に応じたデータユニット数の調整を加えることで、伝送損失を抑えつつパケット長をなるべく長くしてパケット間ギャップやPreamble、Headerを少なくすることによる伝送効率の更なる向上を図る。特に、再送する伝送データを含むデータユニットと新規の伝送データを含むデータユニットとから構成されるパケットを生成することによって、パケット間ギャップやPreamble、Headerなどのオーバーヘッドを削減し、伝送効率の更なる向上を図ることができる。
(実施形態2)
実施形態1では、データユニット数の変更を実施する場合を説明した。本実施形態では、データユニット数に加え、エラー発生確率に応じて、パケット長を変更する態様を説明する。図10は、実施形態2のパケット生成装置の構成例を示すブロック図である。パケット生成装置100bは、パケット長算出ルール保持部24とパケット長算出部25を追加し、相関関係算出部21bとデータユニット数算出部23bの機能を追加・変更している。
実施形態1では、データユニット数の変更を実施する場合を説明した。本実施形態では、データユニット数に加え、エラー発生確率に応じて、パケット長を変更する態様を説明する。図10は、実施形態2のパケット生成装置の構成例を示すブロック図である。パケット生成装置100bは、パケット長算出ルール保持部24とパケット長算出部25を追加し、相関関係算出部21bとデータユニット数算出部23bの機能を追加・変更している。
パケット長算出ルール保持部24は、データ長とオーバーヘッド、及び、エラー発生確率とオーバーヘッドとの相関関係を算出ルールとして保持する。パケット長算出ルールは、これらに限られることはなく、エラー発生確率に応じて、データ長を変更するルールを保持していてもよい。
パケット長算出部25は、エラー発生確率とデータ長との相関関係に、算出ルールを適用して補正データ長を算出する。
相関関係算出部21bは、実施形態1の機能に加え、データ長とエラー発生確率の相関関係を算出する機能を備える。
データパケット数算出部23bは、データ長の変更の有無を判断し、データ長を変更する場合、変更後のデータ長(補正データ長)を用いてデータユニット数を決定する。
続いて本実施形態の動作を説明する。図11は、実施形態2のパケット生成装置の動作例を示すフローチャートである。図4のフローチャートへステップS22、S23を追加し、ステップS21、S24の動作を変更している。以下、実施形態1と異なる点を中心に説明する。
データユニット数算出部23bは、相関関係算出部21bが収集したエラー発生確率とデータユニット数との間の相関関係を解析し、データユニット数の変更が必要であるか否かを判断し、データユニット数を変更する場合、さらにパケット長の変更が必要であるかを判断する(S21)。
データユニット数の変更が必要であるかを判断する手順は、実施形態1と同様に、(1)から(3)を用いることができる。
また、パケット長を変更するか否かを判断する手順として、例えば次のようなルールを用いることができる。(4)エラー発生確率が所定の範囲を超えて上昇した場合、パケット長を短くする。(5)エラー発生確率が所定の閾値(第三閾値)より大きくなった場合、パケット長を短くする。(6)エラー発生確率が所定の閾値(第四閾値)より小さい場合、パケット長を長くする。また、上記(4)から(6)の状況が所定期間続いた場合にパケット長を変更するようにしてもよい。
エラー発生確率の解析結果に基づいて、データユニット数を変更しない場合(S15でNo)、パケット生成部3は、前回と同じデータユニット数及びパケット長を用いてパケットを生成し(S25)、送出させる(S18)。
データユニット数とパケットのデータ長を変更する場合(S15及びS22でYes)、データユニット数算出部23bは、パケット長算出部25へパケットのデータ長の算出を指示し、パケット長算出部25は、指示に基づいてパケットのデータ長を算出する(S23)。パケット長算出部25は、相関関係算出部21bに対して、パケットのデータ長を算出するために相関関係の算出を要求し、取得した相関関係とパケット長算出ルール保持部24に保持するパケット長算出ルールとを用いてパケットのデータ長を算出する。パケットのデータ長の算出手順については後述する。
続いて、データユニット数算出部23bは、データユニット数を変更する場合(S15でYesかつS22でNo、または、S15及びS22でYes)、データユニット数を算出する(S24)。このとき、パケット長が変更されている場合、データユニット数は、前回のパケットと同じデータユニット長になるようにデータユニット数を算出してもよいし、デフォルト値を用いてもよい。さらに、エラー発生状況を用いて新たなパケットデータ長における、エラー発生確率の統計処理を実施し、データパケット数を算出してもよい。
パケット生成部3は、データユニット数算出部23bが算出したデータユニット数(補正データユニット数)を用いてパケットの生成を行う。このとき、パケットのデータ長を変更している場合には、変更後のパケットのデータ長を用いてパケットの生成を行う(S25)。パケット生成部3は、生成したパケットを送出させる(S18)。
ここで、データ長の算出手順について説明する。データユニット数算出部23bからの指示に基づいて、パケット長算出部25は、相関関係算出部21bへデータ長とエラー発生確率との間の相関関係を算出するように指示する。相関関係算出部21bは、エラー発生状況保持部11に保持するエラー発生状況を用いて、各パケットについて統計処理を行う。このとき、相関関係算出部21bは、パケット長が異なるパケットのエラー発生確率とデータ長との統計処理を行う。これにより、相関関係算出部21bは、データ長とエラー発生確率との間の相関関係を求めることができる。例えば図12に示すような関係となる。
ここで、エラー発生確率とオーバーヘッドの関係について考えてみると、オーバーヘッドとしてはエラー発生で生じるデータ再送による損失がある。すなわち、エラー発生・再送によるオーバーヘッドである。エラー発生確率とオーバーヘッドの関係は、例えば図13のような関係になる。また、データ長とオーバーヘッドの関係について考えてみると、オーバーヘッドとしてはパケットのプリアンブル、ヘッダ及びCRC、あるいはパケット間最小間隔(パケット間隔)などがある。すなわち、パケット構成上のオーバーヘッドである。例えば、パケット長が異なると、パケット間隔とパケット長の比(パケット間隔/パケット長)が異なってくるため、パケット長が小さくなるとパケット間隔がオーバーヘッドに与える影響も大きくなる。データ長とオーバーヘッドの関係は、エラーが全く無い場合には例えば図14のような関係になる。
エラー発生確率とオーバーヘッドの関係及びデータ長とオーバーヘッドの関係は、所定の計算式等によって算出できる関係である。すなわち、一定の関係が予め予測できる関係になる。このため、エラー発生確率とオーバーヘッドの関係及びデータ長とオーバーヘッドの関係は、パケット長算出ルール保持部24に、パケット長算出ルールとして保持することができる。
一方、エラー発生確率とオーバーヘッドの関係は、伝搬状況等の通信環境により変動する関係にある。そのため、相関関係算出部21bは、エラー発生状況保持部11に所定期間記録されたエラー発生状況を統計処理することによってエラー発生確率とオーバーヘッドの関係を算出する。
そしてこれらの関係に基づき、エラーを考慮した場合のデータ長とオーバーヘッドの関係について考えてみると、エラー発生確率が高い場合には図15、エラー発生確率が低い場合には図16に示すような関係が得られる。ここでのオーバーヘッドは、エラー発生・再送によるオーバーヘッドとパケット構成上のオーバーヘッドとを合わせたものである。何れのケースでもオーバーヘッドが極小となる最適データ長が存在し、エラー発生確率が高い場合には相対的に短く、エラー発生確率が低い場合には相対的に長くなる。図15または図16は、一例を示したものでありエラー発生確率によって相関関係が異なってくるものである。
パケット長算出部25は、相関関係算出部21bが算出したデータ長とエラー発生確率との間の相関関係と、パケット長算出ルールとを用いて、パケットのデータ長を算出する。具体的には、パケット長算出部25は、エラー発生確率に応じて、図15または図16に一例を示した相関関係を算出し、パケットのデータ長を算出する。
図17にデータユニット数とパケットのデータ長とを変化させる一例を示す。図17は、図5と同様の記号等を用いて表している。第1のパケット(P1)では長さが4L(L:単位長)のデータユニットを6個使用してデータ送信を行っている。D2、D4のそれぞれのCRCでエラーが発生している。図17は、データユニット数算出部23bが、パケットのデータ長の変更を決定した場合である。パケット長算出部25が、エラー発生状況に基づいて最適データ長を算出すると、例えば18.3L(L:単位長)になったとする。ここで、データユニット長が長いとそのデータユニットが伝送エラーとなった時の損失が大きいため、データユニット数算出部23bは、データユニット長を小さくし、データユニット長を2L、データユニット数を9とし総データ長18として最適データ長に合わせるようにデータユニット長とデータユニット数とを変更する。データユニット数算出部23bは、エラーとなったデータユニットの再送を考慮して、変更後のデータユニット長を変更前のデータユニット長の約数になるようにすると都合が良い。この例では第1のパケットのデータユニット長は4Lであるため、パケット長算出部25は、変更後のデータユニット長は1Lあるいは2Lと都合が良く、ここでは2Lとしている。
ここで、上記ではデータユニット長の約数として説明したが、CRCの長さは所定の長さに固定されているため、厳密には、変更後のデータユニットに含まれるデータペイロードの長さが、変更前のデータユニットに含まれていたデータペイロードの長さの約数、あるいは倍数になる必要がある。説明をわかりやすくするため、ここではデータユニット長を用いて説明している。
第2のパケット(P2)では、パケット生成部3は、第1のパケットの送信でエラーとなったD2、D4に対応するデータを先頭から順に割り当てている。なお、データユニット長を変更しているため、第1のデータユニット中のデータを、D2はQ0とQ1、D4はQ2とQ3にそれぞれ分割している。D2の長さは(Q0+Q1)、D4の長さは(Q2+Q3)である。パケット生成部3は、この再送データQ0〜Q3に引き続いて新規データとしてQ4〜Q8を割り当てて第2のパケットを構成している。
第2のパケットの送信ではQ2、Q6、Q7にエラーが発生している。その結果、データユニット数算出部23bは、パケットのデータ長の変更を決定し、パケット長算出部25は、最適データ長を9.8と算出する。また、データユニット数算出部23bは、今度は更にデータユニット長を小さくし、第3のパケットのデータユニット長を1L、データユニット数を10に変更する。パケット長算出部25は、第3のパケットの送信結果に基づいた第4のパケットの最適データ長を8.5と算出する。ここでは、データユニット数算出部23bは、データユニット長を1Lのまま変更せず、データユニット数を9に変更する。
なお、上記説明では、図10の構成を用いて図11の動作を行う場合を説明したが、この構成に限られることはなく、実施形態1に示した各構成要素が実現する場合であってもかまわない。また、データユニット数算出部23bがパケットのデータ長を変更するか否かを判断する場合を説明したが、相関関係算出部21bがエラー発生状況に基づいて判断するような構成であってもよい。
このように、本実施形態によれば、実施形態1の効果に加え、エラー発生確率に応じて、データユニット数とパケットのデータ長とを変更するため、より適切に伝搬状況に対応したパケットを生成することが可能になる。これにより、オーバーヘッドを削減し、伝送効率を向上させることが可能になる。
(その他の実施形態)
上記各実施形態において、データユニット数算出ルール保持部22に保持するデータユニット数算出ルールの一例を説明したが、さらに次のルールをデータユニット数算出ルールとして追加してもよい。また、パケット長算出ルール保持部24に保持するパケット長算出ルールに追加してもよい。
・統計を取るパケット数がある所定の数(例えば10)に達するまではデータユニット数またはデータ長の変更は行わない。
・データユニット数またはデータ長の変更を行う頻度をある所定の数(例えば2)のパケット毎に行う。
・データ長、データユニット数、データユニット長に関する統計データの収集のため、時折、最適では無くても、それらのパラメータを振ったパケットを生成して転送する。
・算出される最適データユニット数または最適データ長が大きく変化しなくなった場合、(それが実際の最適値では無い極値に陥っている可能性を考えて)時折データユニット数またはデータ長をランダムに変更して転送する。
・直前に行われたデータ転送から時間が大きく経過している場合は、統計データを一旦破棄し、当該パケットのデータユニット数またはデータ長を所定の(大きな)値に設定し転送する。
上記各実施形態において、データユニット数算出ルール保持部22に保持するデータユニット数算出ルールの一例を説明したが、さらに次のルールをデータユニット数算出ルールとして追加してもよい。また、パケット長算出ルール保持部24に保持するパケット長算出ルールに追加してもよい。
・統計を取るパケット数がある所定の数(例えば10)に達するまではデータユニット数またはデータ長の変更は行わない。
・データユニット数またはデータ長の変更を行う頻度をある所定の数(例えば2)のパケット毎に行う。
・データ長、データユニット数、データユニット長に関する統計データの収集のため、時折、最適では無くても、それらのパラメータを振ったパケットを生成して転送する。
・算出される最適データユニット数または最適データ長が大きく変化しなくなった場合、(それが実際の最適値では無い極値に陥っている可能性を考えて)時折データユニット数またはデータ長をランダムに変更して転送する。
・直前に行われたデータ転送から時間が大きく経過している場合は、統計データを一旦破棄し、当該パケットのデータユニット数またはデータ長を所定の(大きな)値に設定し転送する。
ここで、上記各実施形態のいずれかの態様で生じる効果について特許文献1に開示された技術と比較して説明する。本実施形態と同様のパケット構成を用い、特許文献1に開示された技術を用いて、受信側からエラーが通知されたデータユニットを再送する場合、データ長を変化させる動作例を図18、図19に示した。図18はデータ伝送中にデータユニット数を変更する動作例を示し、図19はデータ伝送中にデータユニット長を変更する動作例を示す。図18、20では、図5と同様の記号等を用いている。また、Uは1つのデータユニットの単位を示す。データ伝送中にパケット長の変更を行う際にもし伝送エラーが発生した場合、特許文献1に開示された技術では、まずエラーが発生したデータユニットを再送する手順である。従って、図18に示すように、まずエラーとなったユニットの再送を完了させる。その後データユニット数を変更してパケット長を変更することになる。同様に、データ伝送中にデータユニット長(ユニットのサイズ)を変更するときに、その前に伝送したパケットについて伝送エラーが発生した場合、図19に示すように、まずエラーとなったデータユニットの再送を完了させる。その後データユニット長を変更することになる。
これに対し、上記各実施形態のうちのいずれかのパケット生成装置及び方法では、エラーの発生状況について統計を取り、その結果に基づいて以後のデータ伝送の効率化を図ることができる。エラー発生状況を監視し、適切なデータユニット数またはデータ長を算出する。具体的には、伝送エラーの状況から現在の伝送環境においてオーバーヘッドが極小となるデータユニット数を算出し、次のデータ伝送にそれを反映させている。あるいは、適切なデータ長を算出し、算出したデータ長における適切なデータユニット数を算出し、次のデータ伝送に反映させている。具体的な動作としては、図5に示すように、エラー発生確率に応じてデータユニット数を調整している。あるいは、図17に示すように、エラー発生確率が高い状態が続く場合、データ長を短くし、データユニット数を増やしている。また図面には示していないが、エラー発生確率が低い場合、データユニット数を減らす、あるいは、データ長を長くするなどの調整を実施する。
また、図5または図17では、再送する伝送データと新規に伝送するデータとを用いて一つのパケットを生成しているため、パケット長に対するオーバーヘッドの割合が小さくなる。具体的にはプリアンブルとヘッダの割合を小さくすることが可能である。これにより、パケットを伝送する際のオーバーヘッドを削減し、伝送効率を向上させることができる。
さらに、上記各実施形態では、データ伝送においてエラーが発生した場合のデータ再送において、エラーが発生したパケットのみに着目するのではなく、データ伝送全体からオーバーヘッドを削減することが可能となる。図20は、送信側から伝送されるパケットと受信側の伝送データ処理との動作例を示した図である。エラー発生確率によってデータ長を変更することがオーバーヘッドにどう影響してくるかについて、図20を用いて検討する。定性的には以下のように考えれば良い。すなわち、エラー発生確率が低い場合は、一つのパケットにデータペイロード分割した伝送データをなるべく多く入れた方がパケット間最小間隔やパケットのプリアンブル、ヘッダなどの影響が小さくなるので全体としてオーバーヘッドが小さくなるのは明らかである。他方、エラー発生確率が高い場合については図20を使って具体的に説明する。
図20において、(a)は1パケットに12個の分割データ、(b)は1パケットに4個の分割データで構成されている場合を示している。また、図20では、4分割データ毎に1回の割合、ほぼ均等にエラーが発生している状況を想定している。図20の例では1パケットに入れる分割データの数は小さい方が有利となっている。これは、受信側処理では、分割データにエラーがあった場合、それを次のパケットで送られてくるまで処理を待つ必要があるためであり、パケット長が長ければそれだけ待ち時間が長くなることによる。このように、エラー発生により再送する場合のオーバーヘッドは伝送路上だけでは無く、データ受信側の処理も含めて考える必要がある。
図20で示したように、伝送エラー発生確率によってデータユニット数またはデータ長を調整するようにすれば伝送効率の向上を図ることが可能になる。伝送エラー発生確率を迅速に算出するには、上記各実施形態で説明した手段・手順の一態様を備える必要がある。上記各実施形態の一態様では、伝送エラーの発生確率を1パケットの送出と、それ以前の少数のパケット送出の結果の統計に基づいて補正データユニット数または補正データ長を算出している。このため、伝送環境の変化への追従性が高い。多数のパケットの送出結果の統計を取らないとエラー発生確率を求めることが出来ない方法に比べ、伝送環境への追従性が高くなるため、伝送効率の向上がより期待できる。従って、上記各実施形態は、エラー発生確率が高く、伝送環境が変化しやすい無線環境に適用することが好ましい。
また、上記各実施形態で説明したパケット生成装置及び方法は、プログラムによって実現することも可能である。プログラムは、コンピュータに読み取り可能な記録媒体に記録される。コンピュータは、記録媒体に記録されたプログラムを読み出し、メモリにロードし、CPU(Central Processing Unit)の制御のもとで実行される。プログラムは、例えば少なくとも次の手順をコンピュータに実行させる。
送信したパケットに関して受信側から返信される伝送結果を用いて、エラー発生状況をデータユニット単位で監視する手順。エラー発生状況を用いてエラー発生確率を算出する手順。パケット長が同じ範囲における、エラー発生確率、データユニット数、及びオーバーヘッドの相関関係に基づいて、パケットに含める伝送データを分割する分割数を補正データユニット数として算出する手順。伝送対象となるデータと前記補正データユニット数とを用いて、パケットを生成する手順。
(実施例)
本発明の一態様を適用したコントローラチップの一例を図21に示す。コントローラチップ200は、PCIバス300を介して、ホストシステム400と接続する。図21では、コントローラチップ200は、外部バス制御201、データ保持用RAM202、ROM/RAM203、演算回路204、転送制御部205、伝送情報保持用RAM206、Serial Interface Engine207、CRC generator /checker208、Serializer /Deserializer209、及び送受信回路210を備える。
本発明の一態様を適用したコントローラチップの一例を図21に示す。コントローラチップ200は、PCIバス300を介して、ホストシステム400と接続する。図21では、コントローラチップ200は、外部バス制御201、データ保持用RAM202、ROM/RAM203、演算回路204、転送制御部205、伝送情報保持用RAM206、Serial Interface Engine207、CRC generator /checker208、Serializer /Deserializer209、及び送受信回路210を備える。
外部バス制御201は、PCIバス300を介してホストコンピュータと情報を送受信する。データ保持用RAM202は、コントローラチップ200内の処理中に必要な情報を一時的に保持する。ROM/RAM203は、演算回路204が実行する命令群(プログラム)やデータユニット数算出ルールまたはパケット長算出ルールを記録する。演算回路204は、ROM/RAM203に記録する命令群を実行する。転送制御部205は、パケットの転送を制御する。また、受信したハンドシェークを解析する。伝送情報保持用RAM206は、エラー発生状況情報を保持する。Serial Interface Engine207は、パケット転送の送受信制御、プロトコル制御を行う。CRC generator /checker208は、CRCを生成・チェックを行う。Serializer /Deserializer209は、パケットのパラレル・シリアル変換とコード変換、Deserializerは更に受信エラー検出を行う。送受信回路210は、受信側との送受信のインターフェースである。
図2に示す構成と対応づけると、エラー発生状況監視部1は、転送制御部205によって実現される。ユニットサイズ算出部2の各構成要素は、ROM/RAM203と演算回路204によって実現される。パケット生成部3において、データ分割部31は、ROM/RAM203と演算回路204、CRC算出部32はCRC generator /checker208、パケット送出部33は、送受信回路210によってそれぞれ実現される。また、例えば、パケット長算出ルールは、ROM/RAM203に記憶するファームウェアで実現すると、プログラム次第でルールの変更が容易になる。これに対し、パケット長算出ルールが固定されている場合、ファームウェアで実現することもできるし、ハードウェアで実現することも可能になる。
また、図21に示したコントローラチップの利用した通信システムの一例を図22に示す。図22において、(a)は、有線通信の構成例、(b)は、無線通信の構成例を示している。図22では、図21に示したコントローラチップ200は、コンピュータ500内部に搭載されている。コンピュータ500と周辺機器700とはハブ600を介して伝送路でデータを伝送する構成となっている。周辺機器としては、例えばプリンタなどである。
なお、本発明は上記に示す実施形態に限定されるものではない。本発明の範囲において、上記実施形態の各要素を、当業者であれば容易に考えうる内容に変更、追加、変換することが可能である。
1 エラー発生状況監視部
2、2b ユニットサイズ算出部
3 パケット生成部
21、21b 相関関係算出部
22 データユニット数算出ルール保持部
23、23b データユニット数算出部
24 パケット長算出ルール保持部
25 パケット長算出部
31 データ分割部
32 CRC算出部
33 パケット送出部
100、100b パケット生成装置
200 コントローラチップ
201 外部バス制御
202 データ保持用RAM
203 ROM/RAM
204 演算回路
205 転送制御部
206 伝送情報保持用RAM
207 Serial Interface Engine
208 CRC generator /checker
209 Serializer /Deserializer
210 送受信回路
300 PCIバス
400 ホストシステム
500 コンピュータ
600 ハブ
700 周辺機器
2、2b ユニットサイズ算出部
3 パケット生成部
21、21b 相関関係算出部
22 データユニット数算出ルール保持部
23、23b データユニット数算出部
24 パケット長算出ルール保持部
25 パケット長算出部
31 データ分割部
32 CRC算出部
33 パケット送出部
100、100b パケット生成装置
200 コントローラチップ
201 外部バス制御
202 データ保持用RAM
203 ROM/RAM
204 演算回路
205 転送制御部
206 伝送情報保持用RAM
207 Serial Interface Engine
208 CRC generator /checker
209 Serializer /Deserializer
210 送受信回路
300 PCIバス
400 ホストシステム
500 コンピュータ
600 ハブ
700 周辺機器
Claims (16)
- 伝送データとエラー検出用情報とを含むデータユニットから構成されるパケットを生成するパケット生成装置であって、
送信したパケットに関して受信側から返信される伝送結果を用いて、エラー発生状況を前記データユニット単位で監視するエラー発生状況監視部と、
前記エラー発生状況を用いてエラー発生確率を算出し、パケット長が同じ範囲における、前記エラー発生確率、データユニット数、及びオーバーヘッドの相関関係に基づいて、前記パケットに含める伝送データを分割する分割数を補正データユニット数として算出するユニットサイズ算出部と、
伝送対象となるデータと前記補正データユニット数とを用いて、パケットを生成するパケット生成部と、を備えるパケット生成装置。 - 前記伝送結果から検出したエラー発生状況を保持するエラー発生状況保持部をさらに備え、
前記エラー発生状況監視部は、前記伝送結果に基づいて、少なくとも、パケット中のデータユニット数、データユニット長、及びエラーが発生したデータユニット数を一組のエラー発生状況として前記エラー発生状況保持部へ格納することを特徴とする請求項1記載パケット生成装置。 - 前記ユニットサイズ算出部は、前記データユニット数と前記エラーが発生したデータユニット数に基づいて、前記エラー発生確率を算出し、エラー発生確率に応じて、パケット長が同じ範囲における、データユニット数とオーバーヘッドとの相関関係を算出して前記補正データユニット数を算出することを特徴とする請求項2記載のパケット生成装置。
- 前記ユニットサイズ算出部は、前回送信したパケットと同量の伝送データを分割する分割数を前記補正データユニット数として算出することを特徴とする請求項1乃至3のいずれか一項に記載パケット生成装置。
- 前記ユニットサイズ算出部は、再送するデータユニットがある場合、データユニットに含める伝送データの長さが、前回送信したデータユニットに含めた伝送データの長さの約数または倍数となるように前記補正データユニット数を算出することを特徴とする請求項4項に記載のパケット生成装置。
- 前記エラー発生状況保持部は、複数の伝送結果から検出した複数組のエラー発生状況を保持し、
前記ユニットサイズ算出部は、前記複数組のエラー発生状況のうち、伝送結果が新しいものに重みづけをして前記エラー発生確率を算出することを特徴とする請求項2乃至5のいずれか一項に記載のパケット生成装置。 - 前記パケット生成部は、再送する伝送データを含むデータユニットと、新規の伝送データを含むデータユニットとを含むパケットを生成することを特徴とする請求項1乃至6のいずれか一項に記載のパケット生成装置。
- 前記ユニットサイズ算出部は、前記エラー発生確率に応じて、前回の送信よりオーバーヘッドを削減するデータユニット数を算出することを特徴とする請求項1乃至7いずれか一項に記載のパケット生成装置。
- 前記ユニットサイズ算出部は、パケットの構成に起因する要素と、エラー発生による再送に起因する要素との少なくとのいずれかのオーバーヘッドを削減するデータユニット数を算出することを特徴とする請求項1乃至8いずれか一項に記載のパケット生成装置。
- 前記ユニットサイズ算出部は、前記エラー発生確率が閾値より大きい場合、前回のパケットのデータ長を補正した補正データ長を変更することを特徴とする請求項1乃至9のいずれか一項に記載のパケット生成装置。
- 前記ユニットサイズ算出部は、前記エラー発生確率、パケットのデータ長、及びオーバーヘッドの相関関係に基づいて、パケットのデータ長を算出することを特徴とする請求項10記載のパケット生成装置。
- 前記ユニットサイズ算出部は、
前記データ発生状況を用いて前記エラー発生確率を算出し、パケット長が同じ範囲における、エラー発生確率を収集する相関関係算出部と、
データユニット数とオーバーヘッドの相関関係を算出ルールとして保持するデータユニット数算出ルール保持部と、
データユニット単位でパケット長が同じ範囲における、データユニット数とエラー発生確率との相関関係、及び、前記データユニット数算出ルールを用いて、次に送信するパケットに含める伝送データを分割する分割数を補正データユニット数として算出するデータユニット数算出部と、を備えることを特徴とする請求項1乃至11いずれか一項に記載のパケット生成装置。 - 前記パケット長算出ルール保持部は、前記パケット長算出ルールとして、さらに、エラーが発生しなかった場合にデータユニット数を減らすこと、直前直後の伝送結果と比べてエラー検出数が所定の閾値を超えて増加した場合、当該エラー発生状況のデータを無視すること、を保持することを特徴とする請求項12記載のパケット生成装置。
- 前記エラー発生状況監視部は、前記伝送結果を用いて、伝送エラーとなったデータユニットの位置を検出してエラー発生位置情報を取得し、
前記パケット長算出部は、前記エラー発生確率、前記データパケット数、及びオーバーヘッドの相関関係に加え、前記エラー発生位置情報に基づいて、前記データ長を算出することを特徴とする請求項1乃至13のいずれか一項に記載のパケット生成装置。 - 伝送データとエラー検出用情報とを含むデータユニットから構成されるパケットを生成するパケット生成方法であって、
送信したパケットに関して受信側から返信される伝送結果を用いて、エラー発生状況を前記データユニット単位で監視し、
前記エラー発生状況を用いてエラー発生確率を算出し、
パケット長が同じ範囲における、前記エラー発生確率、データユニット数、及びオーバーヘッドの相関関係に基づいて、前記パケットに含める伝送データを分割する分割数を補正データユニット数として算出し、
伝送対象となるデータと前記補正データユニット数とを用いて、パケットを生成するパケット生成方法。 - 伝送データとエラー検出用情報とを含むデータユニットから構成されるパケットを生成するパケット生成プログラムであって、
送信したパケットに関して受信側から返信される伝送結果を用いて、エラー発生状況を前記データユニット単位で監視する手順と、
前記エラー発生状況を用いてエラー発生確率を算出する手順と、
パケット長が同じ範囲における、前記エラー発生確率、データユニット数、及びオーバーヘッドの相関関係に基づいて、前記パケットに含める伝送データを分割する分割数を補正データユニット数として算出する手順と、
伝送対象となるデータと前記補正データユニット数とを用いて、パケットを生成する手順と、をコンピュータに実行させるパケット生成プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008290688A JP2010118894A (ja) | 2008-11-13 | 2008-11-13 | パケット生成装置、パケット生成方法及びパケット生成プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008290688A JP2010118894A (ja) | 2008-11-13 | 2008-11-13 | パケット生成装置、パケット生成方法及びパケット生成プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010118894A true JP2010118894A (ja) | 2010-05-27 |
Family
ID=42306256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008290688A Pending JP2010118894A (ja) | 2008-11-13 | 2008-11-13 | パケット生成装置、パケット生成方法及びパケット生成プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010118894A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101199781B1 (ko) * | 2010-08-03 | 2012-11-12 | (주)에프씨아이 | 주기적 패턴 데이터를 이용한 데이터 전송 에러 감지 방법 |
JP2015502121A (ja) * | 2011-12-15 | 2015-01-19 | クアルコム,インコーポレイテッド | Fec前のメトリックおよび受信の報告のためのシステムおよび方法 |
US10749634B2 (en) | 2017-08-28 | 2020-08-18 | Fujitsu Limited | Transmission device, transmission reception system and control method for transmission reception system |
-
2008
- 2008-11-13 JP JP2008290688A patent/JP2010118894A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101199781B1 (ko) * | 2010-08-03 | 2012-11-12 | (주)에프씨아이 | 주기적 패턴 데이터를 이용한 데이터 전송 에러 감지 방법 |
JP2015502121A (ja) * | 2011-12-15 | 2015-01-19 | クアルコム,インコーポレイテッド | Fec前のメトリックおよび受信の報告のためのシステムおよび方法 |
US10009144B2 (en) | 2011-12-15 | 2018-06-26 | Qualcomm Incorporated | Systems and methods for pre-FEC metrics and reception reports |
US10749634B2 (en) | 2017-08-28 | 2020-08-18 | Fujitsu Limited | Transmission device, transmission reception system and control method for transmission reception system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4271200B2 (ja) | 無線通信システムの状態報告ユニットにおける誤ったシーケンス番号の有無を検出する方法及び装置 | |
JP5047472B2 (ja) | フレーム集約と共に使用されるmacヘッダ圧縮 | |
EP2638650B1 (en) | Packet-level erasure protection coding in aggregated packet transmissions | |
US8312352B2 (en) | Communication apparatus and communication method | |
US8089868B2 (en) | Wireless communication apparatus and wireless communication method using variable transmission rate | |
US9866351B2 (en) | Communication method and communication apparatus | |
US9876727B2 (en) | Physical-layer signaling of flow control updates | |
JP5527209B2 (ja) | 通信装置およびヘッダ制御方法 | |
JP2007259454A (ja) | 無線通信システムにおいてパケット再送を処理する方法及び装置 | |
US8171365B2 (en) | Communication apparatus and method thereof | |
US11290214B2 (en) | Data processing method and device | |
JP2006211632A (ja) | Crc検査範囲外エラーを検出する方法 | |
US20090303871A1 (en) | Method and apparatus for packet aggregation according to traffic characteristics | |
EP2269401A1 (en) | Wireless communications system and channel-switching method | |
JP5651191B2 (ja) | 物理層のデータグラムの再送要求方法及びその装置 | |
JP2005045642A (ja) | パケット通信装置およびパケット通信方法 | |
US20120328038A1 (en) | Transmission system, transmission device and method for controlling transmission device | |
EP2784965B1 (en) | Data communication method and apparatus using forward error correction | |
JP2010010766A (ja) | 検査符号生成装置及び検査符号生成方法 | |
JP2010118894A (ja) | パケット生成装置、パケット生成方法及びパケット生成プログラム | |
JP2010118893A (ja) | パケット生成装置、パケット生成方法及びパケット生成プログラム | |
JP5817387B2 (ja) | 通信装置及び通信方法 | |
JP4033860B2 (ja) | データ通信方法及びデータ送信装置 | |
JP2006129341A (ja) | 透過データ伝送方法 | |
US8730810B2 (en) | Medium access control forwarding protocol |