JP4896931B2 - 検査符号生成方法 - Google Patents

検査符号生成方法 Download PDF

Info

Publication number
JP4896931B2
JP4896931B2 JP2008164544A JP2008164544A JP4896931B2 JP 4896931 B2 JP4896931 B2 JP 4896931B2 JP 2008164544 A JP2008164544 A JP 2008164544A JP 2008164544 A JP2008164544 A JP 2008164544A JP 4896931 B2 JP4896931 B2 JP 4896931B2
Authority
JP
Japan
Prior art keywords
check code
frame
crc
data
crc check
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.)
Expired - Fee Related
Application number
JP2008164544A
Other languages
English (en)
Other versions
JP2010010766A (ja
Inventor
智 鏑木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2008164544A priority Critical patent/JP4896931B2/ja
Priority to US12/481,238 priority patent/US20090319878A1/en
Publication of JP2010010766A publication Critical patent/JP2010010766A/ja
Application granted granted Critical
Publication of JP4896931B2 publication Critical patent/JP4896931B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2942Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes wherein a block of parity bits is computed only from combined information bits or only from parity bits, e.g. a second block of parity bits is computed from a first block of parity bits obtained by systematic encoding of a block of information bits, or a block of parity bits is obtained by an XOR combination of sub-blocks of information bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations

Description

本発明は、検査符号生成方法、特に、線形符号を利用した誤り検出訂正符号を生成するための検査符号生成方法に関する。
通信用のフレームやパケットの誤りを検出するための符号として、例えばCRC(Cyclic Redundancy Check;巡回冗長検査)符号がある。例えば、IEEE802.11無線フレームでは末尾にFCS(Frame Check Sequence)と呼ばれる32ビットのCRC検査符号を付加することが規定されている。フレームやパケットを送信する場合、先に送信したフレームやパケットの一部を書き換えて再送若しくは転送することがある。例えば、無線通信において、フレームを送信した後、フレームを受信した受信側から肯定的応答として送られるAck(Acknowledge)フレームを何らかの理由(送信したフレームが受信側に届かなかった、受信側から送信したAckフレームが送信側へ届かなかった等)により送信側が受信できなかったとする。この場合、送信側からフレームを再送することとなる。このとき、再送であることを示すリトライフラグを書き換えた再送フレームを送信する。従来の技術では、先に送信したフレームに対して、再送フレームは、リトライフラグ部分の1ビットが異なる以外は全く同じフレーム本体を持つにもかかわらず、CRC検査符号については全て計算をやり直すことになる。例えば特許文献1には、ATM(Asynchronous Transfer Mode)ヘッダを書き換える際に、書き換えた部分のCRC検査符号をハードウェアにより計算し、計算結果を用いて新たなCRC検査符号を求める技術が提案されている。
特開平11−68581号公報
本発明は、上述に鑑みてなされたものであり、線形符号からなる検査符号を持つフレーム、パケット等のデータの一部を変更する際に、通常の手法により検査符号を生成する場合に比較して、簡易な演算により、新たなデータについての検査符号を生成することを可能とする検査符号生成方法を提供することを目的とする。
本願発明の一態様によれば、線形符号からなる検査符号を生成する検査符号生成方法であって、第1のデータと、前記第1のデータの一部が書き換えられた第2のデータとの排他的論理和についての検査符号である第1検査符号を生成する第1の工程と、前記第1の工程において生成された前記第1検査符号と、前記第1のデータに付加された検査符号である第2検査符号との排他的論理和を計算する第2の工程と、を含み、前記第1の工程において生成された前記第1検査符号を含めて構成されたテーブルを保持し、前記第2のデータを生成する際に、前記第2の工程において前記テーブルを参照することを特徴とする検査符号生成方法が提供される。
また、本願発明の一態様によれば、線形符号からなる検査符号を生成する検査符号生成方法であって、第1のデータと、前記第1のデータの一部が書き換えられた第2のデータとの排他的論理和についての検査符号である第1検査符号を生成する第1の工程と、前記第1の工程において生成された前記第1検査符号と、前記第1のデータに付加された検査符号である第2検査符号との排他的論理和を計算する第2の工程と、を含み、前記第1のデータを送出する際に、前記第1の工程における演算により前記第1検査符号を生成し、前記第2のデータを送出する際に、前記第2の工程において前記第1検査符号と前記第2検査符号との排他的論理和を計算することを特徴とする検査符号生成方法が提供される。
本発明によれば、簡易な演算により、新たなデータについての検査符号を生成することができる。
以下に添付図面を参照して、本発明に係る検査符号生成方法の最良な実施の形態を詳細に説明する。
(第1の実施の形態)
図1は、本発明の第1の実施の形態に係る検査符号生成方法によりCRC検査符号を生成するための無線通信装置のブロック構成を示す。本実施の形態に係る検査符号生成方法は、第1の工程における演算により第1検査符号を予め生成しておき、第2のデータを生成する際に、第2の工程において第1検査符号と第2検査符号との排他的論理和を計算することにより検査符号を生成することを特徴とする。
第1フレーム送出手段11は、図2に示すフレーム101(第1のデータ)を送出する部分であって、MAC処理等を行う。フレーム101は、IEEE802.11無線フレームであって、末尾に32ビットのCRC検査符号102が付加されている。第1CRC演算手段13は、フレーム101に付加するCRC検査符号102を演算する。
送出データ選択手段15は、物理層16へ入力するデータを選択する。送出データ選択手段15は、第1フレーム送出手段11からのフレーム101本体が出力されている間は第1フレーム送出手段11からの出力を選択し、物理層16へ送出する。また、第1フレーム送出手段11が出力を終えたとき、送出データ選択手段15は、第1CRC演算手段13からの出力を選択し、物理層16へ送出する。
なお、フレーム101は、第1フレーム送出手段11から直接送出データ選択手段15へ送る他、第1フレーム送出手段11から第1CRC演算手段13を経て、送出データ選択手段15へ送ることとしても良い。この場合、第1CRC演算手段13は、第1フレーム送出手段11がフレーム101を出力する間はフレーム101を素通しさせ、第1フレーム送出手段11が出力を終えたとき、送出データ選択手段15へCRC検査符号102を送る。データは物理層16においてアナログ信号に変換され、電波に乗せてアンテナ17から不図示の受信側へ送信される。
リトライフラグ104は、無線LANフレーム内ではMACヘッダの先頭から12ビット目に存在するフラグであって、初回に送信するフレーム101では「0」とされる。フレーム101に対して、再送フレーム103は、リトライフラグ104が「0」から「1」へ書き換えられる以外は同じフレーム本体を持つ。フレーム101を第1のデータとすると、再送フレーム103は、第1のデータの一部が書き換えられた第2のデータである。フレーム101に付加されたCRC検査符号102、再送フレーム103に付加されたCRC検査符号105は、線形符号からなる検査符号である。
フレーム101を送信した後、何らかの理由により送信側がAckフレームを受信できなかった場合、第1フレーム送出手段11は、初回に送ったフレーム101からリトライフラグ104を「1」に変更した再送フレーム103を送出する。第1フレーム送出手段11から再送フレーム103の本体が出力されている間、送出データ選択手段15は、第1フレーム送出手段11からの出力を選択し、物理層16へ送出する。
第2フレーム送出手段12は、図3に示すフレーム201を送出する。フレーム201は、フレーム101と同じ長さで、かつ、リトライフラグ104に相当する部分203のみが「1」、当該部分203以外の部分が「0」であるフレーム本体を持つ。第2CRC演算手段14は、フレーム201に付加するCRC検査符号202を演算する検査符号演算手段として機能する。CRC検査符号202は、第1のデータであるフレーム101と、第2のデータである再送フレーム103との排他的論理和であるフレーム201についての検査符号(第1検査符号)である。
演算回路18は、第2CRC演算手段14が生成したCRC検査符号202と、第1CRC演算手段13が生成したCRC検査符号102(第2検査符号)との排他的論理和を計算する排他的論理和演算手段として機能する。第2CRC演算手段14及び演算回路18は、再送フレーム103に付加するCRC検査符号105を生成する検査符号生成装置として機能する。
図4は、再送フレーム103に付加されるCRC検査符号105を生成する手順を説明するものである。図3を用いて説明したCRC検査符号202は、第1の工程における演算により第2CRC演算手段14において予め生成され、保存される。再送フレーム103を生成する際に、第2の工程において、演算回路18は、CRC検査符号202と、フレーム101に付加されたCRC検査符号102との排他的論理和(図中、「EXOR」と表す)を計算する。CRC検査符号202及びCRC検査符号102の排他的論理和を計算することにより、再送フレーム103に付加するCRC検査符号105を生成する。
第1フレーム送出手段11による再送フレーム103本体の送出が完了することにより、送出データ選択手段15は、演算回路18による排他的論理和出力を選択する。このようにして、再送フレーム103に付加されるCRC検査符号105が物理層16へ入力される。本発明によると、線形符号からなる検査符号を持つフレームの一部を変更する際に、通常の手法により検査符号を生成する場合に比較して、簡易な演算により、新たなフレームについての検査符号を生成することが可能となる。
なお、本実施の形態において、フレーム201のCRC検査符号202のみを保存し、計算に用いる他、CRC検査符号202を含むフレーム201全体を保存することとしても良い。この場合、フレーム201全体と、初回に送信するフレーム101全体との排他的論理和を計算することにより、再送フレーム103を生成することとしても良い。
第2フレーム送出手段12は、第1フレーム送出手段11で生成されたフレーム101に基づいて比較的容易な計算によりフレーム201を生成可能であるため、第1フレーム送出手段11より簡易な構成にできる。なお、無線通信装置は、互いに独立した第1フレーム送出手段11及び第2フレーム送出手段12を有する構成とする他、一つの構成要素を第1フレーム送出手段11及び第2フレーム送出手段12として機能させる構成としても良い。無線通信装置は、物理層16についても線形符号を利用した誤り検出訂正符号を付加することとしても良い。本発明は、物理層16における誤り検出訂正符号の生成に適用することとしても良い。
本発明は、本実施の形態で説明したIEEE802.11無線フレームについて適用する場合に限られない。本発明は、線形符号からなる検査符号を持つフレーム、パケット等のデータについて広く適用可能である。また、本発明の適用は、フレーム、パケット等のデータを再送若しくは転送する場合に限られず、いずれの場合としても良い。本発明は、CRC符号の生成に限られず、CRC符号以外の線形符号、例えばリードソロモン(Reed Solomon;RS)符号等の生成に用いることとしても良い。
本発明に係る検査符号生成方法は、ハードウェア構成による処理を利用するもの、ソフトウェア構成による処理を利用するもののいずれとしても良い。ハードウェア構成による処理を利用する場合、送出データ選択手段15として、例えばマルチプレクサを用いることとしても良い。ソフトウェアによる処理の場合は計算量の増大が問題になる場合が多いため、本発明が有用である。
(第2の実施の形態)
図5は、本発明の第2の実施の形態に係る検査符号生成方法により生成された線形符号について説明するものであって、IP(Internet Protocol)ヘッダ401の構成を示す。IPヘッダ401のうち、Time to Live(TTL)フィールド402は、パケットの生存時間として、パケットが通過できるルータの数を示す。ルータが別ノードにパケットを転送するごとにTTLフィールド402の値は1ずつ減じられる。TTLフィールド402の値が「1」であるパケットはルータによる転送がなされず、ルータにて廃棄される。ヘッダチェックサム(Header Checksum)403は、パケット全体のチェックサムである。
この他、IPヘッダ401は、バージョン(Version)、ヘッド長さ(IHL;Internet Header Length)、サービスタイプ(Type of Service)、全長(Total Length)、識別子(Identification)、フラグ(Flags)、フラグメントオフセット(Fragment Offset)、プロトコル(Protocol)、送信元アドレス(Source Address)、宛先アドレス(Destination Address)の各フィールドを有する。ここでは、IPヘッダ401のうちTTLフィールド402、ヘッダチェックサム403以外の部分についての詳細な説明を省略する。
一般に用いられているIPヘッダ401のヘッダチェックサム403は線形符号ではないが、IETF(Internet Engineering Task Force)は、RFC791において、チェックサムの代わりとして線形符号であるCRC符号を利用することに言及している(例えば、http://tools.ietf.org/html/rfc791参照)。本実施の形態では、チェックサムに代えてCRC符号を用いるものとして説明する。
図6は、本実施の形態によりCRC検査符号523を生成する手順を説明するものである。受信パケット501を受信したルータは、TTLフィールド502の値を1減じて次のノードへ転送する。受信パケット501に付加されたCRC検査符号503、転送パケット521に付加されたCRC検査符号523は、線形符号からなる検査符号である。受信パケット501のうちIPヘッダ以外の部分504、転送パケット521のうちIPヘッダ以外の部分524は、例えば、TCPフレーム等である。
転送パケット521のTTLフィールド522は、受信パケット501のTTLフィールド502の値を1減じた値へ更新されている。転送パケット521に付加されるCRC検査符号523は、TTLフィールド522の値の更新に伴い新たに生成する必要がある。本実施の形態では、転送パケット521のCRC検査符号523を生成するに先立ち、予め図6に示すパケット511についてのCRC検査符号513を生成する。パケット511は、IPヘッダに相当する部分のみのパケットである。パケット511は、TTL差分512と、TTL差分512以外が全て「0」であるIPヘッダについての検査符号であるCRC検査符号513とからなる。TTL差分512は、受信パケット501のIPヘッダ(第1のデータ)及び転送パケット521のIPヘッダ(第2のデータ)のうち互いに異なる部分であるTTLフィールド502の値とTTLフィールド522の値との排他的論理和である。CRC検査符号513は、受信パケット501のIPヘッダと、転送パケット521のIPヘッダとの排他的論理和であるパケット511についての検査符号(第1検査符号)である。
図7は、受信パケット501のTTLフィールド502の値と、CRC検査符号513とを対応付けるテーブルの構成を説明するものである。TTLフィールド502の値は、例えば8ビットであるとする。上記第1の実施の形態の場合、フレーム101(図4参照)に対して、再送フレーム103に付加されるCRC検査符号105は一意に定まる。これに対して、本実施の形態では、TTLフィールド502の値に応じてTTL差分512が複数の値を採るため、TTL差分512を含むパケット511についてのCRC検査符号513が一意に定まらないこととなる。
テーブルを作成する際、TTLフィールド502が取り得る値のうち「1」及び「0」を除く各値について、TTLフィールド502の値と、その値から1減じた値との排他的論理和であるTTL差分512を求める。当該TTL差分512を用いて、TTL差分512以外の値が「0」であるIPヘッダについてCRC検査符号513を計算する。なお、TTLフィールド502の値が「1」、「0」である場合については転送パケット521を生成することが無いため、テーブルから除外しても良い。本実施の形態では、受信パケット501のうちTTLフィールド502の値と、第1の工程において生成されたCRC検査符号513とを対応付けるテーブルを保持し、テーブルを参照することにより得たCRC検査符号513を用いて、転送パケット521のCRC検査符号523を生成する。
テーブルは、TTLフィールド502が取り得る8ビットのうち0x01、0x00を除く254個の値0xFF〜0x02と、CRC検査符号513とを対応付けて保持する。TTLフィールド502が取り得る値のうち「1」及び「0」を除く各値についてCRC検査符号513を計算しておくことで、簡単にテーブルを作成することが可能である。テーブルは、通信装置が予め、例えば通信装置の製造時点から保持することとしても良く、通信装置の電源投入時の初期設定中において演算を行うことにより、通信装置の電源を投入するごとに作成することとしても良い。
図8は、図7で説明したテーブルを用いて、受信パケット501から転送パケット521のCRC検査符号523を生成する手順を説明するものである。本実施の形態に係る検査符号生成方法は、ソフトウェアによる処理を利用することによりCRC検査符号523を生成する。まず、受信パケット501のTTLフィールド502を参照し、参照したTTLフィールド502の値から1減じた値を求めて転送パケット521のTTLフィールド522に書き込む。このとき、TTLフィールド502の値が「1」であった場合、以下に説明する処理は行われず、受信パケット501はルータにて廃棄される。
また、図7で説明したテーブルを参照することにより、TTLフィールド502の値に対応するCRC検査符号513を求め、ルータに保存する。次に、保存したCRC検査符号513(第1検査符号)と、受信パケット501のCRC検査符号503(第2検査符号)との排他的論理和を計算することにより、転送パケット521のCRC検査符号523を生成する。転送パケット521のうちTTLフィールド522及びCRC検査符号523以外の部分には、受信パケット501と同様の値が書き込まれる。このようにして、転送パケット521が生成される。
なお、転送パケット521は、受信パケット501に対して別のメモリ領域に生成することとする他、受信パケット501のTTLフィールド502、CRC検査符号513をメモリ領域上で直接書き換えることにより生成することとしても良い。この場合、受信パケット501のうちTTLフィールド502及びCRC検査符号503以外の部分、即ち転送の際に書き換えが不要な部分についてのメモリ上でのコピーを省略できる。
このように、本実施の形態では、第2のデータを含む転送パケット521を生成する際に、第2の工程においてテーブルを参照する。これにより、線形符号からなる検査符号を持つパケットの一部を変更する際に、通常の手法により検査符号を生成する場合に比較して、簡易な演算により、新たなパケットについての検査符号を生成することが可能となる。
なお、TTLフィールド502の値を1減じた値を求める処理は、転送パケット521のCRC検査符号523を生成する処理より前である場合に限られず、これらの処理はいずれの順序としても良い。また、CRC検査符号523を生成する際に参照するテーブルは、受信パケット501のTTLフィールド502の値を含む構成である場合に限られない。テーブルは、例えば、受信パケット501のTTLフィールド502の値を1減じて得たTTLフィールド522の値を含む構成であっても良い。本実施の形態は、チェックサムに代えてCRC検査符号を用いるIPパケットについて適用する場合に限られず、線形符号からなる検査符号を持つフレーム、パケット等のデータについて広く適用可能である。
(第3の実施の形態)
図9は、本発明の第3の実施の形態に係る検査符号生成方法において参照するテーブルの構成を説明するものである。本実施の形態は、パケット511のTTL差分512(図6参照)の値と、CRC検査符号513とを対応付けて保持するテーブルを用いることを特徴とする。TTL差分512は、第1のデータ及び第2のデータのうち互いに異なる部分であるTTLフィールド502の値とTTLフィールド522の値との排他的論理和である。
TTLフィールド502の値が8ビットである場合、8ビットの値と、その値から1減じた値との排他的論理和であるTTL差分512は、図9に示すように0x7F〜0x01の7個の値のいずれかとなる。本実施の形態で使用するテーブルは7個のエントリのみで構成される。このため、本実施の形態は、テーブルの規模を小さく圧縮できる利点がある。本実施の形態も、上記第2の実施の形態と同様に、テーブルは、通信装置が予め保持することとしても良く、通信装置の電源投入時の初期設定中において演算を行うことにより、通信装置の電源を投入するごとに作成することとしても良い。
図10は、図9で説明したテーブルを用いて、受信パケット501から転送パケット521のCRC検査符号523を生成する手順を説明するものである。まず、受信パケット501のTTLフィールド502を参照し、参照した値から1減じた値を求めて転送パケット521のTTLフィールド522に書き込む。このとき、TTLフィールド502の値が「1」であった場合、以下に説明する処理は行われず、受信パケット501はルータにて廃棄される。
次に、受信パケット501のTTLフィールド502の値と、その値から1減じた値との排他的論理和を計算することにより、TTL差分512を生成する。TTL差分512を生成した後、図9で説明したテーブルを参照することにより、TTL差分512の値に対応するCRC検査符号513を求める。次に、テーブルを参照することにより求めたCRC検査符号513(第1検査符号)と、受信パケット501のCRC検査符号503(第2検査符号)との排他的論理和を計算することにより、転送パケット521のCRC検査符号523を生成する。
転送パケット521のうちTTLフィールド522及びCRC検査符号523以外の部分には、受信パケット501と同様の値が書き込まれる。このようにして、転送パケット521が生成される。本実施の形態においても、上記第2の実施の形態の場合と同様に、転送パケット521は、受信パケット501に対して別のメモリ領域に生成することとする他、受信パケット501のTTLフィールド502、CRC検査符号513をメモリ領域上で直接書き換えることにより生成することとしても良い。
なお、TTL差分512は、随時計算により生成する他、受信パケット501のTTLフィールド502の値、若しくは転送パケット521のTTLフィールド522の値と、TTL差分512とを対応付けて保持するテーブルを別途用意しておき、当該テーブルを参照することで求めることとしても良い。
(第4の実施の形態)
図11は、本発明の第4の実施の形態に係る検査符号生成方法によりCRC検査符号を生成するための無線通信装置のブロック構成を示す。本実施の形態は、上記の第1の実施の形態で説明したCRC検査符号105(図2参照)を生成するものとして説明する。上記の第1の実施の形態と同一の部分には同一の符号を付し、重複する説明を省略する。上記の第1の実施の形態では、フレーム201のCRC検査符号202(図3参照)を予め生成している。これに対して、本実施の形態では、第1のデータであるフレーム101を送出する際に、フレーム101のCRC検査符号102の生成に平行して、第1の工程における演算によりフレーム201のCRC検査符号202(第1検査符号)を生成する。
第2フレーム送出手段12によるフレーム201の送出、第2CRC演算手段14によるCRC検査符号202の演算は、第1フレーム送出手段11によるフレーム101の送出、第1CRC演算手段13によるCRC検査符号102の演算と平行して行われる。第2CRC演算手段14により演算されたCRC検査符号202は、初回のフレーム101を送信する際は利用されず、第2CRC演算手段14に保存される。受信側からのAckフレームを送信側が受信した場合、第2CRC演算手段14に保存されたCRC検査符号202は不要であるため、消去される。
フレーム101を送信した後、何らかの理由により送信側がAckフレームを受信できなかった場合、第1フレーム送出手段11は、初回に送ったフレーム101からリトライフラグ104を「1」に変更した再送フレーム103を送出する。第1フレーム送出手段11から再送フレーム103の本体が出力されている間、送出データ選択手段15は、第1フレーム送出手段11からの出力を選択し、物理層16へ送出する。送出データ選択手段15により第1フレーム送出手段11からの出力が選択されている間、第1CRC演算手段13、第2CRC演算手段14による演算は停止される。
本実施の形態では、第2のデータである再送フレーム103を送出する際に、第2の工程において、演算回路18は、CRC検査符号202(第1検査符号)とCRC検査符号102(第2検査符号)との排他的論理和を計算する。第1フレーム送出手段11による再送フレーム103本体の送出が完了することにより、送出データ選択手段15は、演算回路18による排他的論理和出力を選択する。このようにして、再送フレーム103に付加されるCRC検査符号105が物理層16へ入力される。
このように、第1フレーム送出手段11によるフレーム101の送出、第1CRC演算手段13によるCRC検査符号102の生成に平行して、CRC検査符号202を生成する。これにより、フレーム101の長さが一定でないような場合であっても、その都度、各フレーム101に対応するCRC検査符号202を生成することが可能となる。また、CRC検査符号102の生成に平行して、CRC検査符号202を生成することで、事前にCRC検査符号202を計算すること無く、再送フレーム103の送信時におけるCRC符号の演算を省略することが可能となる。
監視手段601は、再送回数をカウントし、再送回数から電波状況を監視する。例えば、一定期間、或いは一定の送信回数における再送回数の閾値を決定しておき、過去の統計から再送回数が閾値以下であるか否かにより、電波状況が良好であるか否かを判断する。再送回数が閾値以下である場合、監視手段601は、第2フレーム送出手段12及び第2CRC演算手段14の稼動を停止させる。再送フレーム103を送信する場合、再送時における第1CRC演算手段13による演算により、CRC検査符号202を生成する。また、送出データ選択手段15は、電波状況が良好である旨の監視手段601の判断により、第1フレーム送出手段11からの出力と第1CRC演算手段13からの出力とのいずれか一方を選択する。
また、再送回数が所定の閾値より大きく電波状況が悪いと判断した場合、監視手段601は、第2フレーム送出手段12及び第2CRC演算手段14を稼動させる。送出データ選択手段15は、電波状況が悪い旨の監視手段601の判断により、第1フレーム送出手段11からの出力と、第1CRC演算手段13からの出力と、演算回路18による排他的論理和出力と、のうちいずれか一つを選択する。これにより、再送の頻度が低い状況では第2フレーム送出手段12及び第2CRC演算手段14の演算を停止させ、再送フレーム103の送信がなされないことにより無駄となる演算やメモリ容量を低減させることが可能となる。監視手段601による通信状況の判断は、過去の統計から決定された再送回数の閾値を用いて判断する手法に限られず、いずれの判断手法を利用しても良い。
第1の実施の形態に係る検査符号生成方法によりCRC検査符号を生成するための無線通信装置のブロック構成を示す図。 フレーム及びCRC検査符号について説明する図。 第1検査符号であるCRC検査符号について説明する図。 再送フレームに付加されるCRC検査符号を生成する手順を説明する図。 第2の実施の形態に係る検査符号生成方法により生成された線形符号について説明する図。 第2の実施の形態によりCRC検査符号を生成する手順を説明する図。 受信パケットのTTLフィールドの値と、CRC検査符号とを対応付けるテーブルの構成を説明する図。 テーブルを用いて受信パケットから転送パケットのCRC検査符号を生成する手順を説明する図。 第3の実施の形態に係る検査符号生成方法において参照するテーブルの構成を説明する図。 テーブルを用いて受信パケットから転送パケットのCRC検査符号を生成する手順を説明する図。 第4の実施の形態に係る検査符号生成方法によりCRC検査符号を生成するための無線通信装置のブロック構成を示す図。
符号の説明
101、201 フレーム、102、105、202 CRC検査符号、103 再送フレーム、501 受信パケット、503、513、523 CRC検査符号、521 転送パケット。

Claims (3)

  1. 線形符号からなる検査符号を生成する検査符号生成方法であって、
    第1のデータと、前記第1のデータの一部が書き換えられた第2のデータとの排他的論理和についての検査符号である第1検査符号を生成する第1の工程と、
    前記第1の工程において生成された前記第1検査符号と、前記第1のデータに付加された検査符号である第2検査符号との排他的論理和を計算する第2の工程と、を含み、
    前記第1の工程において生成された前記第1検査符号を含めて構成されたテーブルを保持し、前記第2のデータを生成する際に、前記第2の工程において前記テーブルを参照することを特徴とする検査符号生成方法。
  2. 前記テーブルは、前記第1のデータ及び前記第2のデータのうち互いに異なる部分同士の排他的論理和と、前記第1検査符号とを対応付けて保持することを特徴とする請求項1に記載の検査符号生成方法。
  3. 線形符号からなる検査符号を生成する検査符号生成方法であって、
    第1のデータと、前記第1のデータの一部が書き換えられた第2のデータとの排他的論理和についての検査符号である第1検査符号を生成する第1の工程と、
    前記第1の工程において生成された前記第1検査符号と、前記第1のデータに付加された検査符号である第2検査符号との排他的論理和を計算する第2の工程と、を含み、
    前記第1のデータを送出する際に、前記第1の工程における演算により前記第1検査符号を生成し、前記第2のデータを送出する際に、前記第2の工程において前記第1検査符号と前記第2検査符号との排他的論理和を計算することを特徴とする検査符号生成方法。
JP2008164544A 2008-06-24 2008-06-24 検査符号生成方法 Expired - Fee Related JP4896931B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008164544A JP4896931B2 (ja) 2008-06-24 2008-06-24 検査符号生成方法
US12/481,238 US20090319878A1 (en) 2008-06-24 2009-06-09 Check code generating apparatus, method of generating check code, and communication apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008164544A JP4896931B2 (ja) 2008-06-24 2008-06-24 検査符号生成方法

Publications (2)

Publication Number Publication Date
JP2010010766A JP2010010766A (ja) 2010-01-14
JP4896931B2 true JP4896931B2 (ja) 2012-03-14

Family

ID=41432527

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008164544A Expired - Fee Related JP4896931B2 (ja) 2008-06-24 2008-06-24 検査符号生成方法

Country Status (2)

Country Link
US (1) US20090319878A1 (ja)
JP (1) JP4896931B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10771095B2 (en) 2016-06-07 2020-09-08 Mitsubishi Electric Corporation Data processing device, data processing method, and computer readable medium

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4703310B2 (ja) 2005-08-04 2011-06-15 株式会社東芝 通信方法および通信システム
JP5685848B2 (ja) * 2010-07-27 2015-03-18 富士通株式会社 計算機、プログラム、及び計算機の制御方法
CN104079387B (zh) * 2013-03-26 2017-10-17 华为技术有限公司 数据重传方法及装置
CN107046541B (zh) * 2017-04-18 2023-02-03 深圳市法马新智能设备有限公司 一种无线收发加密通信方法及其装置
WO2023035136A1 (zh) * 2021-09-08 2023-03-16 长江存储科技有限责任公司 用于存储器的数据保护方法及其存储装置
CN114173164B (zh) * 2021-12-18 2023-08-15 杭州视洞科技有限公司 一种基于国标gb28181协议的平滑推流方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4384353A (en) * 1981-02-19 1983-05-17 Fairchild Camera And Instrument Corp. Method and means for internal error check in a digital memory
US5251215A (en) * 1992-01-13 1993-10-05 At&T Bell Laboratories Modifying check codes in data packet transmission
JP3945602B2 (ja) * 1998-04-14 2007-07-18 富士通株式会社 訂正検査方法及び訂正検査装置
JP2000181807A (ja) * 1998-12-16 2000-06-30 Murata Mach Ltd 記録媒体のデータ検査方法及び装置
JP2000323996A (ja) * 1999-05-13 2000-11-24 Toshiba Corp 誤り訂正積符号ブロックのためのデータ処理方法及び装置及び記録媒体
WO2001039424A1 (en) * 1999-11-26 2001-05-31 Nokia Mobile Phones Limited Frame error identification
US6442747B1 (en) * 2000-05-10 2002-08-27 3Com Corporation Method of synthesizing a cycle redundancy code generator circuit using hardware description language
JP3880934B2 (ja) * 2003-01-28 2007-02-14 Necエレクトロニクス株式会社 Crc符号生成方法
US7191383B2 (en) * 2003-03-28 2007-03-13 International Business Machines Corporation System and method for optimizing iterative circuit for cyclic redundancy check (CRC) calculation
JP4703310B2 (ja) * 2005-08-04 2011-06-15 株式会社東芝 通信方法および通信システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10771095B2 (en) 2016-06-07 2020-09-08 Mitsubishi Electric Corporation Data processing device, data processing method, and computer readable medium

Also Published As

Publication number Publication date
US20090319878A1 (en) 2009-12-24
JP2010010766A (ja) 2010-01-14

Similar Documents

Publication Publication Date Title
JP4896931B2 (ja) 検査符号生成方法
JP5047472B2 (ja) フレーム集約と共に使用されるmacヘッダ圧縮
US8307266B2 (en) Chained checksum error correction mechanism to improve TCP performance over network with wireless links
TWI555365B (zh) 用於傳送或重傳資料到第二網路節點及其第一網路節點之第一網路節點的方法和用於接收從第一網路節點及其第二網路節點傳送或重傳的資料之第二網路節點的方法
US8850293B2 (en) Wireless transmission reliability
JP3512177B2 (ja) パケット受信装置及びパケット伝送方法
US20070109961A1 (en) Determining throughput between hosts
JP2011517162A (ja) Macベースのフィードバックを用いてwlanプロトコルにハイブリッドarqを追加すること
KR100732661B1 (ko) 수신기 제어 등시성 송신
JP5651191B2 (ja) 物理層のデータグラムの再送要求方法及びその装置
US20090262646A1 (en) Transport protocol for efficient aggregation of heterogeneous losssy paths
US8427951B2 (en) Method, system, and apparatus for reliable data packet recovery in a link layer of a data center ethernet network
US7924710B2 (en) Method for transmitting data including an error control mechanism designed for unreliable networks and error resilience applications
KR101116742B1 (ko) 무선통신시스템에서 패킷 데이터 재전송 장치 및 방법
JP2002094548A (ja) パケット送信装置およびパケット伝送方法
JP5817387B2 (ja) 通信装置及び通信方法
US8730810B2 (en) Medium access control forwarding protocol
Schmidt et al. Refector: Heuristic header error recovery for error-tolerant transmissions
JP2010118894A (ja) パケット生成装置、パケット生成方法及びパケット生成プログラム
US8010877B2 (en) Communication apparatus, communication control method, and computer product
JP2009060238A (ja) 送信方法、通信システムおよび通信装置
JP2010118893A (ja) パケット生成装置、パケット生成方法及びパケット生成プログラム
JP2007201927A (ja) エラーレート推定装置
US10205562B1 (en) Method and apparatus for error correction
JP2005136494A (ja) 通信システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100802

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110624

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111110

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111129

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111221

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150106

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees