JP2020061690A - データ通信装置、データ通信システム及び方法 - Google Patents
データ通信装置、データ通信システム及び方法 Download PDFInfo
- Publication number
- JP2020061690A JP2020061690A JP2018192828A JP2018192828A JP2020061690A JP 2020061690 A JP2020061690 A JP 2020061690A JP 2018192828 A JP2018192828 A JP 2018192828A JP 2018192828 A JP2018192828 A JP 2018192828A JP 2020061690 A JP2020061690 A JP 2020061690A
- Authority
- JP
- Japan
- Prior art keywords
- data
- communication device
- data communication
- frame
- 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
- 230000006854 communication Effects 0.000 title claims abstract description 393
- 238000004891 communication Methods 0.000 title claims abstract description 392
- 238000000034 method Methods 0.000 title claims description 43
- 230000005540 biological transmission Effects 0.000 claims abstract description 145
- 230000004044 response Effects 0.000 claims description 42
- 238000011084 recovery Methods 0.000 claims 2
- 230000006837 decompression Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 33
- 238000003745 diagnosis Methods 0.000 description 11
- 230000002159 abnormal effect Effects 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000012790 confirmation Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 229940050561 matrix product Drugs 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Landscapes
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
【課題】送信効率の低下を抑制し、確実にデータ通信を行う。【解決手段】実施形態のデータ通信装置は、通信ネットワークを介して送信データを同一ビット長を有する複数のデータフレームに分割して、他のデータ通信装置と前記データフレームの送受信を行うデータ通信装置であって、複数のデータフレームのビット列中の同一ビット位置の複数のビット値の排他的論理和をとって、データフレームと同一ビット長を有するチェックサム符号列である生成用データフレームを生成し、受信側のデータ通信装置に送信する復元用データ生成送信部と、他のデータ通信装置から送信された複数のデータフレームのうち受信できなかったデータフレームが一つである場合に、生成用データフレームに基づいて、受信できなかったデータフレームを復元するデータ復元部と、を備える。【選択図】図2
Description
本発明の実施形態は、データ通信装置、データ通信システム及び方法に関する。
従来、複数の機器(データ通信装置)が通信ネットワークを介して接続され、データ通信を行うことが可能とされたデータ通信システムが知られている。
このようなデータ通信システムにおいては、通信ネットワークにおけるノイズ等の影響により、送信元のデータ通信装置から送信された複数のデータフレームで構成される送信データが送信先のデータ通信装置に正確に届かない送信失敗が生じる場合がある。
このようなデータ通信システムにおいては、通信ネットワークにおけるノイズ等の影響により、送信元のデータ通信装置から送信された複数のデータフレームで構成される送信データが送信先のデータ通信装置に正確に届かない送信失敗が生じる場合がある。
このような状況となった場合には、送信データ(あるいは、送信データを構成するデータフレーム)の再送を行うリトライが行われる。
リトライにおいては、送信元のデータ通信装置は、送信先のデータ通信装置に対し、送信データに対応する到着確認の要求フレームを送信する。
要求フレームを受信した送信先のデータ通信装置は、送信元のデータ通信装置に対し、受信状況について応答するための応答フレームを送信する。この応答フレームには、到着確認の要求フレームを正しく受信できたか否かの情報、複数のデータフレームで構成される送信データのうち受信できたデータフレームについての情報等が含まれる。
この結果、送信元のデータ通信装置は、応答フレームを受信し、送信先のデータ通信装置が送信データを正しく受信できていない場合には、送信済みであった送信データを再送する。
同様に送信元のデータ通信装置は、要求フレームを送信してから所定時間が経過した場合には、正常に受信がなされなかったものとして同様に送信済みであった送信データを再送する。
同様に送信元のデータ通信装置は、要求フレームを送信してから所定時間が経過した場合には、正常に受信がなされなかったものとして同様に送信済みであった送信データを再送する。
このため、X個の送信データの送信に失敗した場合には、X回のリトライを行う必要があり、送信効率が低下し、結果として送信遅延が増大するという虞があった。
本発明は、上記に鑑みてなされたものであって、送信効率の低下を抑制し、確実にデータ通信を行うことが可能なデータ通信装置、データ通信システム及び方法を提供することを目的としている。
実施形態のデータ通信装置は、通信ネットワークを介して送信データを同一ビット長を有する複数のデータフレームに分割して、他のデータ通信装置と前記データフレームの送受信を行うデータ通信装置であって、複数のデータフレームのビット列中の同一ビット位置の複数のビット値の排他的論理和をとって、データフレームと同一ビット長を有するチェックサム符号列である生成用データフレームを生成し、受信側のデータ通信装置に送信する復元用データ生成送信部と、他のデータ通信装置から送信された複数のデータフレームのうち受信できなかったデータフレームが一つである場合に、生成用データフレームに基づいて、受信できなかったデータフレームを復元するデータ復元部と、を備える。
以下図面を参照して、実施形態について詳細に説明する。
[1]第1実施形態
図1は、実施形態のデータ通信システムの概要構成ブロック図である。
データ通信システム10は、複数のデータ通信装置11−1、11−2、…、11−nと、データ通信装置11−1、11−2、…、11−n同士をデータ通信可能に接続する通信ネットワーク12と、を備えている。
上記構成において、データ通信装置11−1、11−2、…、11−nは、同様の構成を有しているので、データ通信装置11−を例として説明する。
[1]第1実施形態
図1は、実施形態のデータ通信システムの概要構成ブロック図である。
データ通信システム10は、複数のデータ通信装置11−1、11−2、…、11−nと、データ通信装置11−1、11−2、…、11−n同士をデータ通信可能に接続する通信ネットワーク12と、を備えている。
上記構成において、データ通信装置11−1、11−2、…、11−nは、同様の構成を有しているので、データ通信装置11−を例として説明する。
図2は、データ通信装置の概要構成ブロック図である。
データ通信装置11−1は、当該データ通信装置全体を制御するMPU21と、各種データの記憶を行うメモリ部22と、ディスプレイ、プリンタ、キーボード、マウス等の各種入出力装置との間のインタフェース動作を行うI/O部23と、通信ネットワーク12を介した通信インタフェース動作を行う通信部24と、各部へ電力を供給する電源25と、を備えている。
上記構成において、メモリ部22には、後に詳述する当該データ通信装置11−1が送信元データ通信装置として機能する場合のデータ受信フラグテーブルTB1と、Ack確認テーブルTB2と、当該データ通信装置11−1が送信先データ通信装置として機能する場合のデータ受信フラグテーブルTB3と、を格納している。
データ通信装置11−1は、当該データ通信装置全体を制御するMPU21と、各種データの記憶を行うメモリ部22と、ディスプレイ、プリンタ、キーボード、マウス等の各種入出力装置との間のインタフェース動作を行うI/O部23と、通信ネットワーク12を介した通信インタフェース動作を行う通信部24と、各部へ電力を供給する電源25と、を備えている。
上記構成において、メモリ部22には、後に詳述する当該データ通信装置11−1が送信元データ通信装置として機能する場合のデータ受信フラグテーブルTB1と、Ack確認テーブルTB2と、当該データ通信装置11−1が送信先データ通信装置として機能する場合のデータ受信フラグテーブルTB3と、を格納している。
次に、実施形態の詳細な動作説明に先立ち、従来の問題点を説明する。
以下の説明においては、理解の容易のため、通信ネットワーク12に接続されているデータ通信装置が、データ通信装置11−1、11−2、11−3、11−4の4台であり、このうちのデータ通信装置11−1が送信元データ通信装置であり、データ通信装置11−2〜11−4が送信先データ通信装置であるものとする。
以下の説明においては、理解の容易のため、通信ネットワーク12に接続されているデータ通信装置が、データ通信装置11−1、11−2、11−3、11−4の4台であり、このうちのデータ通信装置11−1が送信元データ通信装置であり、データ通信装置11−2〜11−4が送信先データ通信装置であるものとする。
まず、正常時の通信手順について説明する。
以下の説明においては、送信データは、データフレームA〜データフレームDの四つのデータに分割して送信されるものとする。
以下の説明においては、送信データは、データフレームA〜データフレームDの四つのデータに分割して送信されるものとする。
最初にデータフレームのデータフォーマットの一例について説明する。
図3は、データフレームのデータフォーマットの説明図である。
データフレームDFは、当該データフレームDFの制御を行うためのフレーム制御データを格納したフレーム制御データ部31と、宛先アドレスを格納した宛先アドレス部32と、データ種類(例えば、データフレームA〜D、P)を示すデータ種類部33と、応答を要求する際に立てられるAck要求フラグが格納されるAckフラグ部34と、データを格納したデータ部35と、フレームチェックシーケンス(FCS)を格納したフレームチェックシーケンス部36と、を備えている。
図3は、データフレームのデータフォーマットの説明図である。
データフレームDFは、当該データフレームDFの制御を行うためのフレーム制御データを格納したフレーム制御データ部31と、宛先アドレスを格納した宛先アドレス部32と、データ種類(例えば、データフレームA〜D、P)を示すデータ種類部33と、応答を要求する際に立てられるAck要求フラグが格納されるAckフラグ部34と、データを格納したデータ部35と、フレームチェックシーケンス(FCS)を格納したフレームチェックシーケンス部36と、を備えている。
図4は、従来の正常通信時の通信手順の説明図である。
送信元データ通信装置であるデータ通信装置11−1は、時刻t1において、送信先データ通信装置であるデータ通信装置11−2〜11−4に対し、送信データの一部を構成するデータフレームAを送信する。
送信元データ通信装置であるデータ通信装置11−1は、時刻t1において、送信先データ通信装置であるデータ通信装置11−2〜11−4に対し、送信データの一部を構成するデータフレームAを送信する。
続いて、データ通信装置11−1は、時刻t2において、データ通信装置11−2〜11−4に対し、送信データの一部を構成するデータフレームBを送信し、時刻t3において、データ通信装置11−2〜11−4に対し、送信データの一部を構成するデータフレームCを送信し、時刻t4において、データ通信装置11−2〜11−4に対し、送信データの一部を構成するデータフレームDを送信する。
これらの結果、送信先データ通信装置であるデータ通信装置11−2〜11−4は、時刻t5において、送信元データ通信装置であるデータ通信装置11−1に対し、データフレームA〜Dを受信したことを示す応答フレームAck(A&B&C&D)をそれぞれ送信することとなる。
次に、従来の(通信)異常時の通信手順について説明する。
図5は、従来の異常通信時の通信手順の説明図である。
送信元データ通信装置であるデータ通信装置11−1は、時刻t1において、送信先データ通信装置であるデータ通信装置11−2〜11−4に対し、送信データの一部を構成するデータフレームAを送信する。
図5は、従来の異常通信時の通信手順の説明図である。
送信元データ通信装置であるデータ通信装置11−1は、時刻t1において、送信先データ通信装置であるデータ通信装置11−2〜11−4に対し、送信データの一部を構成するデータフレームAを送信する。
この場合において、送信先データ通信装置であるデータ通信装置11−2は、データフレームAを受信できず、データ通信装置11−3及びデータ通信装置11−4は、データフレームを正常に受信できたものとする。
続いて、データ通信装置11−1は、時刻t2において、データ通信装置11−2〜11−4に対し、送信データの一部を構成するデータフレームBを送信し、データ通信装置11−2〜11−4は、データフレームBを正常に受信できたものとする。
さらに、データ通信装置11−1は、時刻t3において、データ通信装置11−2〜11−4に対し、送信データの一部を構成するデータフレームCを送信する。
この場合においては、データ通信装置11−3は、データフレームCを受信できず、データ通信装置11−2及びデータ通信装置11−4は、データフレームCを正常に受信できたものとする。
続いて、データ通信装置11−1は、時刻t4において、データ通信装置11−2〜11−4に対し、送信データの一部を構成するデータフレームDを送信し、データ通信装置11−2〜11−4は、データフレームDを正常に受信できたものとする。
以上の結果、時刻t5において、データ通信装置11−2は、送信元データ通信装置であるデータ通信装置11−1に対し、データフレームB〜Dを受信したことを示す応答フレームAck(B&C&D)を送信する。
同様に、データ通信装置11−3は、送信元データ通信装置であるデータ通信装置11−1に対し、データフレームA、B、Dを受信したことを示す応答フレームAck(A&B&D)を送信する。
一方、データ通信装置11−4は、時刻t5において、送信元データ通信装置であるデータ通信装置11−1に対し、データフレームA〜Dを受信したことを示す応答フレームAck(A&B&C&D)を送信することとなる。
これらの結果、送信元データ通信装置であるデータ通信装置11−1は、受信した応答フレームAck(B&C&D)、応答フレームAck(A&B&D)及び応答フレームAck(A&B&C&D)に基づいて、データフレームAを受信できなかったデータ通信装置及びデータフレームCを受信できなかったデータ通信装置が存在することを把握する。
続いて、データ通信装置11−1は、時刻t6において、データ通信装置11−2〜11−4に対し、再度データフレームAを送信し、時刻t7において、データ通信装置11−2〜11−4に対し、再度データフレームCを送信する。
この結果、送信先データ通信装置であるデータ通信装置11−2〜11−4は、時刻t8において、送信元データ通信装置であるデータ通信装置11−1に対し、データフレームA〜Dを受信したことを示す応答フレームAck(A&B&C&D)をそれぞれ送信することとなる。
以上の説明のように、いずれかの送信先データ通信装置において、受信できなかったデータフレームがあった場合には、再度同一のデータフレームを送信する必要があり、送信先データ通信装置の数が増加した場合には、再送するデータフレームの数が増加し、データ通信効率が低下する可能性が高かった。
そこで、本実施形態においては、送信先データ通信装置において、異常が発生した場合でも送信元データ通信装置が再度送信するデータ量を削減して、実効的なデータ通信効率を向上している。
このため、本第1実施形態においては、送信データを複数のデータフレームに分割して送信する場合に、送信先データ通信装置において受信した複数のデータフレームのうちいずれか一つのデータフレームが異常であった場合には、送信元データ通信装置は、新たに生成用データフレームPを送信し、各送信先データ通信装置は、この生成用データフレームP及び既に受信している正常に受信したフレームデータ(例えば、上述の例の場合、データフレームBが受信できなかった場合には、生成用データフレームP及びデータフレームA、C、D)を用いてデータフレームBを生成するのである。
次に生成用データフレームPの生成方法について説明する。
本説明においても、送信データは、データフレームA〜データフレームDの四つのデータフレームに分割して送信されるものとする。
また、データフレームA〜データフレームD及び生成用データフレームPは、同一バイト数であるものとする。
本説明においても、送信データは、データフレームA〜データフレームDの四つのデータフレームに分割して送信されるものとする。
また、データフレームA〜データフレームD及び生成用データフレームPは、同一バイト数であるものとする。
また、以下の説明において、A[X][Y]は、データフレームAのXバイト目のYビット目を表すものとする。
すなわち、データフレームAが1024バイトのデータである場合には、X=0〜1023の値をとり、Y=0〜7の値をとる。
すなわち、データフレームAが1024バイトのデータである場合には、X=0〜1023の値をとり、Y=0〜7の値をとる。
具体的には、A[5][3]は、データフレームAの5バイト目の3ビット目のデータを意味するものとする。データフレームB〜D及び生成用データフレームPも同様である。
以下の説明において、符号+は、排他的論理和(EXOR)を意味し、例えば、p+qは、pとqの排他的論理和を表すものとする。
そして生成用データフレームPを構成するビットは、次式により生成される。
P[X][Y]=A[X][Y]+B[X][Y]+C[X][Y]+D[X][Y]
そして生成用データフレームPを構成するビットは、次式により生成される。
P[X][Y]=A[X][Y]+B[X][Y]+C[X][Y]+D[X][Y]
以下の説明においては、理解の容易のため、上記式を、
P=A+B+C+D …(1)
と表すものとする。
P=A+B+C+D …(1)
と表すものとする。
排他的論理和の性質を用いると、(1)式より以下の(2)式〜(5)式が算出される。
A=P+B+C+D …(2)
B=P+A+C+D …(3)
C=P+A+B+D …(4)
D=P+A+B+C …(5)
A=P+B+C+D …(2)
B=P+A+C+D …(3)
C=P+A+B+D …(4)
D=P+A+B+C …(5)
したがって、送信先のデータ通信装置11−2〜11−4のいずれかにおいて、送信データを構成するデータフレームA〜Dのうち、いずれか一つを正しく受信できなかった場合でも、生成用データフレームPが受信できていれば、正しく受信できなかったデータフレームを復元できることが分かる。
次に具体的なデータ通信処理について説明する。
図6は、送信元データ通信装置の処理フローチャートである。
図7は、送信元データ通信装置におけるデータ受信フラグテーブルの説明図である。
図6は、送信元データ通信装置の処理フローチャートである。
図7は、送信元データ通信装置におけるデータ受信フラグテーブルの説明図である。
まず、送信元データ通信装置であるデータ通信装置11−1のMPU21は、システム初期化を行う(ステップS11)。
続いて、データ通信装置11−1のMPU21は、送信先データ通信装置であるデータ通信装置11−2〜11−4に対し、データフレーム送信の開始を通知する(ステップS12)。
次に、データ通信装置11−1のMPU21は、送信対象のデータフレームであるデータフレームA、B、C、Dに基づいてデータ生成用データフレームPを生成する(ステップS13)。
続いて、データ通信装置11−1のMPU21は、データ受信フラグテーブルTB1において、データ受信フラグをリセットする(ステップS14)。
続いて、データ通信装置11−1のMPU21は、送信先データ通信装置であるデータ通信装置11−2〜11−4に対し、データフレーム送信の開始を通知する(ステップS12)。
次に、データ通信装置11−1のMPU21は、送信対象のデータフレームであるデータフレームA、B、C、Dに基づいてデータ生成用データフレームPを生成する(ステップS13)。
続いて、データ通信装置11−1のMPU21は、データ受信フラグテーブルTB1において、データ受信フラグをリセットする(ステップS14)。
ここで、送信元データ通信装置におけるデータ受信フラグテーブルTB1について詳細に説明する。
データ受信フラグデータ受信フラグテーブルTB1は、送信先データ通信装置の数、及び、送信データをいくつのデータフレームに分割するかにより異なっており、{(分割数+1)×送信先データ通信装置の数}個のデータ受信フラグが格納される。
データ受信フラグデータ受信フラグテーブルTB1は、送信先データ通信装置の数、及び、送信データをいくつのデータフレームに分割するかにより異なっており、{(分割数+1)×送信先データ通信装置の数}個のデータ受信フラグが格納される。
すなわち、本実施形態では、送信データを四つのデータフレームA、B、C、Dに分割し、さらに生成用データフレームPが一つ必要であり、送信先データ通信装置の数=3個であるので、データ受信フラグテーブルTB1には、図7に示すように、(4+1)×3=15個のデータ受信フラグが格納される。
そして、データ受信フラグとしては、対応する送信先データ通信装置が対応するデータフレームを受信したことが確認された場合には、例えば、“1”が格納され、受信したことが未だ確認されていない場合には、例えば、“0”が格納される。すなわち、いずれの送信先データ通信装置もデータフレームを受信していない初期状態においては、全てのデータ受信フラグには、“0”が格納されていることとなる。
データ通信装置11−1のMPU21は、データ送信のリトライ処理を制御するためのリトライカウンタをクリアする(ステップS15)。
そして、データ通信装置11−1のMPU21は、送信先データ通信装置毎に正常に受信できていないデータフレーム数をカウントする(ステップS16)。この場合には、未だデータフレームを送信していないので、いずれの送信作データ通信装置もデータフレームA〜データフレームDの4個である。
そして、データ通信装置11−1のMPU21は、送信先データ通信装置毎に正常に受信できていないデータフレーム数をカウントする(ステップS16)。この場合には、未だデータフレームを送信していないので、いずれの送信作データ通信装置もデータフレームA〜データフレームDの4個である。
続いて、データ通信装置11−1のMPU21は、各送信先データ通信装置において正常に受信できていないデータフレームの数は1個以下であるか否かを判別する(ステップS17)。
ここで、送信先データ通信装置毎に受信できていないデータフレームは同じである必要はなく、異なるデータフレーム、例えば、データ通信装置11−2で受信できていないデータフレームはデータフレームA、データ通信装置11−3で受信できていないデータフレームはデータフレームDであってもよい。
この場合には、ステップS17の判別において、全ての送信先データ通信装置において正常に受信できていないデータフレームの数は1個を超えているので(ステップS17;No)、データ通信装置11−1のMPU21は、データ受信フラグのビットをデータフレームA、B、C、D毎に論理積演算を行い、論理積演算の結果のビット反転値を送信要求フラグとする(ステップS32)。
具体的には、いずれかの送信先データ通信装置のデータ受信フラグが“0”である場合には、論理積演算の結果は、“0”となるので、送信要求フラグは、そのビット反転値である“1”となる。したがって、初期状態においては、データフレームA、B、C、Dの全てについて、送信要求フラグは、“1”となり、データフレームA、B、C、Dの全てが送信対象のデータフレームとなる。
続いてデータ通信装置11−1のMPU21は、送信要求フラグの内容にしたがって、送信データを作成する(ステップS19)。
さらにデータ通信装置11−1のMPU21は、送信データを構成している最後に送信するデータフレームにおいて、Ack要求フラグをセットする(ステップS20)。
さらにデータ通信装置11−1のMPU21は、送信データを構成している最後に送信するデータフレームにおいて、Ack要求フラグをセットする(ステップS20)。
次にデータ通信装置11−1のMPU21は、Ack受信フラグをクリアする(ステップS21)。
そして、データ通信装置11−1のMPU21は、ステップS19で作成した送信データを送信先データ通信装置であるデータ通信装置11−2〜11-4に送信する(ステップS22)。
そして、データ通信装置11−1のMPU21は、ステップS19で作成した送信データを送信先データ通信装置であるデータ通信装置11−2〜11-4に送信する(ステップS22)。
さらにデータ通信装置11−1のMPU21は、受信診断タイマをスタートさせる(ステップS23)。
次にデータ通信装置11−1のMPU21は、送信先データ通信装置であるデータ通信装置11−2〜11-4のいずれかから応答データフレームAckを受信した場合には、対応するAck受信フラグをセットする(ステップS24)。
次にデータ通信装置11−1のMPU21は、送信先データ通信装置であるデータ通信装置11−2〜11-4のいずれかから応答データフレームAckを受信した場合には、対応するAck受信フラグをセットする(ステップS24)。
ここで、Ack受信フラグテーブルについて説明する。
図8は、Ack受信フラグテーブルの説明図である。
Ack受信フラグテーブルTB2において、送信先データ通信装置毎に設けられたAck受信フラグは、対応する送信先データ通信装置から応答データフレームAckを受信した場合にセット状態(本実施形態では、“1”)とされ、応答データフレームAckを未受信の場合にリセット状態(本実施形態では、“0”)とされる。
図8は、Ack受信フラグテーブルの説明図である。
Ack受信フラグテーブルTB2において、送信先データ通信装置毎に設けられたAck受信フラグは、対応する送信先データ通信装置から応答データフレームAckを受信した場合にセット状態(本実施形態では、“1”)とされ、応答データフレームAckを未受信の場合にリセット状態(本実施形態では、“0”)とされる。
続いて、データ通信装置11−1のMPU21は、受信した応答データフレームAckから正常に受信されているデータフレームを調べ、データ受信フラグテーブルTB1の対応するデータ受信フラグをセットする(ステップS25)。
次にデータ通信装置11−1のMPU21は、Ack受信フラグの全てがセット状態、あるいは、受信診断タイマがタイムアウトしたか否かを判別する(ステップS26)。
ステップS26の判別において、Ack受信フラグの全てがセット状態でもなく、かつ、受信診断タイマがタイムアウトしてもいない場合には(ステップS26;No)、処理を再びステップS24に移行し、上述した処理を繰り返す。
ステップS26の判別において、Ack受信フラグの全てがセット状態でもなく、かつ、受信診断タイマがタイムアウトしてもいない場合には(ステップS26;No)、処理を再びステップS24に移行し、上述した処理を繰り返す。
ステップS26の判別において、Ack受信フラグの全てがセット状態、あるいは、受信診断タイマがタイムアウトした場合には(ステップS26;Yes)、データ通信装置11−1のMPU21は、リトライカウンタをインクリメントする(ステップS27)。
次にデータ通信装置11−1のMPU21は、データ受信フラグの全てがセット状態、あるいは、リトライ制限回数に到達したか否かを判別する(ステップS28)。
ステップS28の判別において、データ受信フラグの全てがセット状態、あるいは、リトライ制限回数に到達した場合には(ステップS;Yes)、データ受信フラグが全てセットされているか否かを判別する(ステップS29)。
ステップS28の判別において、データ受信フラグの全てがセット状態、あるいは、リトライ制限回数に到達した場合には(ステップS;Yes)、データ受信フラグが全てセットされているか否かを判別する(ステップS29)。
ステップS29の判別において、データ受信フラグが全てセットされている場合には(ステップS29;Yes)、通信成功として処理を終了する。
ステップS29の判別において、データ受信フラグのうちいずれか一つでもセットされていない場合には(ステップS29;No)、通信失敗として処理を終了する。
ステップS29の判別において、データ受信フラグのうちいずれか一つでもセットされていない場合には(ステップS29;No)、通信失敗として処理を終了する。
一方、ステップS28の判別において、データ受信フラグの全てがセット状態でもなく、かつ、リトライ制限回数に到達してもいない場合には(ステップS28;No)、処理を再びステップS16に移行する。
ここで、送信先データ通信装置であるデータ通信装置11−2のデータフレームC及びデータ通信装置11−3のデータフレームBに対応するデータ受信フラグのみがリセット状態であった場合を例として説明する。
そして、データ通信装置11−1のMPU21は、送信先データ通信装置毎に正常に受信できていないデータフレーム数をカウントする(ステップS16)。この場合には、データ通信装置11−2のデータフレームC及びデータ通信装置11−3のデータフレームBに対応するデータ受信フラグがリセット状態であるので、各送信先データ通信装置において正常に受信できていないデータフレームの数は1個以下であるので(ステップS17;Yes)、データ通信装置11−1のMPU21は、データ生成用データフレームPに対応する送信要求フラグのみをセットする(ステップS18)。
ここで、送信先データ通信装置であるデータ通信装置11−2のデータフレームC及びデータ通信装置11−3のデータフレームBに対応するデータ受信フラグのみがリセット状態であった場合を例として説明する。
そして、データ通信装置11−1のMPU21は、送信先データ通信装置毎に正常に受信できていないデータフレーム数をカウントする(ステップS16)。この場合には、データ通信装置11−2のデータフレームC及びデータ通信装置11−3のデータフレームBに対応するデータ受信フラグがリセット状態であるので、各送信先データ通信装置において正常に受信できていないデータフレームの数は1個以下であるので(ステップS17;Yes)、データ通信装置11−1のMPU21は、データ生成用データフレームPに対応する送信要求フラグのみをセットする(ステップS18)。
続いてデータ通信装置11−1のMPU21は、送信要求フラグの内容にしたがって、送信データを作成する(ステップS19)。すなわち、データ生成用データフレームPに対応する送信データのみを作成する。
さらに送信データは、データ生成用データフレームPに対応するもののみであるので、データ通信装置11−1のMPU21は、データ生成用データフレームPにおいて、Ack要求フラグをセットする(ステップS20)。
さらに送信データは、データ生成用データフレームPに対応するもののみであるので、データ通信装置11−1のMPU21は、データ生成用データフレームPにおいて、Ack要求フラグをセットする(ステップS20)。
次にデータ通信装置11−1のMPU21は、データ生成用データフレームPに対応するAck受信フラグをクリアする(ステップS21)。
そして、データ通信装置11−1のMPU21は、ステップS19で作成した送信データを送信先データ通信装置であるデータ通信装置11−2〜11-4に送信し(ステップS22)、以下、同様の手順で処理を行う(ステップS23〜ステップS31)。
以上の説明のように、送信元データ通信装置であるデータ通信装置11−1においては、全てのデータフレームを確実に送信することができる。
そして、データ通信装置11−1のMPU21は、ステップS19で作成した送信データを送信先データ通信装置であるデータ通信装置11−2〜11-4に送信し(ステップS22)、以下、同様の手順で処理を行う(ステップS23〜ステップS31)。
以上の説明のように、送信元データ通信装置であるデータ通信装置11−1においては、全てのデータフレームを確実に送信することができる。
次に送信先データ通信装置の処理(受信時処理)について説明する。
以下の説明においては、データ通信装置11−2を例として、送信先データ通信装置の処理を説明する。
以下の説明においては、データ通信装置11−2を例として、送信先データ通信装置の処理を説明する。
図9は、送信先データ通信装置の処理フローチャートである。
図10は、送信先データ通信装置におけるデータ受信フラグテーブルの説明図である。
まず、送信先データ通信装置であるデータ通信装置11−2のMPU21は、システム初期化を行う(ステップS41)。
図10は、送信先データ通信装置におけるデータ受信フラグテーブルの説明図である。
まず、送信先データ通信装置であるデータ通信装置11−2のMPU21は、システム初期化を行う(ステップS41)。
データ通信装置11−2のMPU21は、データ受信フラグをクリアする(ステップS42)。
続いてデータ通信装置11−2のMPU21は、送信元データ通信装置からのデータフレーム送信開始通知待ち状態に移行する(ステップS43)。
次にデータ通信装置11−2のMPU21は、受信診断タイマをスタートし(ステップS44)、Ack診断タイマをストップする(ステップS45)。
続いてデータ通信装置11−2のMPU21は、送信元データ通信装置からのデータフレーム送信開始通知待ち状態に移行する(ステップS43)。
次にデータ通信装置11−2のMPU21は、受信診断タイマをスタートし(ステップS44)、Ack診断タイマをストップする(ステップS45)。
次にデータ通信装置11−2のMPU21は、通信元データ通信装置からの受信、受信診断タイマのタイムアップあるいはAck診断タイマのタイムアップまで待機状態となる(ステップS46)。
続いて、データ通信装置11−2のMPU21は、送信元データ通信装置から受信したか否かを判別する(ステップS47)。
ステップS47の判別において、送信元データ通信装置から受信をした場合には(ステップS47;Yes)、データ通信装置11−2のMPU21は、受信診断タイマをリスタートする(ステップS48)。
次にデータ通信装置11−2のMPU21は、メモリ部22に受信データを保存し、データ受信フラグテーブルTB3の受信したデータフレームに対応するデータ受信フラグをセットする(ステップS49)。
続いて、データ通信装置11−2のMPU21は、送信元データ通信装置から受信したか否かを判別する(ステップS47)。
ステップS47の判別において、送信元データ通信装置から受信をした場合には(ステップS47;Yes)、データ通信装置11−2のMPU21は、受信診断タイマをリスタートする(ステップS48)。
次にデータ通信装置11−2のMPU21は、メモリ部22に受信データを保存し、データ受信フラグテーブルTB3の受信したデータフレームに対応するデータ受信フラグをセットする(ステップS49)。
ここで、送信先データ通信装置におけるデータ受信フラグテーブルTB3について詳細に説明する。
データ受信フラグテーブルTB3は、送信データをいくつのデータフレームに分割するかにより異なっており、(分割数+1)個のデータ受信フラグが格納される。
データ受信フラグテーブルTB3は、送信データをいくつのデータフレームに分割するかにより異なっており、(分割数+1)個のデータ受信フラグが格納される。
すなわち、本実施形態では、送信データを四つのデータフレームA、B、C、Dに分割し、さらに生成用データフレームPが一つ必要であるので、データ受信フラグテーブルTB1には、図10に示すように、(4+1)=5個のデータ受信フラグが格納される。
そして、データ受信フラグとしては、当該送信先データ通信装置が対応するデータフレームを受信した場合には、例えば、“1”が格納され、いまだ対応するデータフレームを受信していない場合には、例えば、“0”が格納される。すなわち、当該送信先データ通信装置がデータフレームを受信していない初期状態においては、全てのデータ受信フラグには、“0”が格納されており、この状態がデータ未受信状態を表すこととなる。
続いてデータ通信装置11−2のMPU21は、データ生成用データフレームPを受信しており、かつ、データフレームA、B、C、Dのうちいずれか一つのみが未受信か否かを判別する(ステップS50)。これは、データ生成用データフレームPを用いれば、データフレームA、B、C、Dのうちいずれか一つのみが未受信で他の3つのデータが受信されていれば、これらをもちいて未受信のデータフレームを得ることができるからである。
ステップS50の判別において、データ生成用データフレームPを受信していないか、あるいは、データフレームA、B、C、Dのうち二つ以上のデータフレームが未受信である場合には(ステップS50;No)、データ通信装置11−2のMPU21は、処理をステップS53に移行する。
ステップS50の判別において、データ生成用データフレームPを受信しており、かつ、データフレームA、B、C、Dのうちいずれか一つのみが未受信である場合には(ステップS49;Yes)、データ通信装置11−2のMPU21は、受信済みデータフレームから一つの未受信データフレームを算出する(ステップS51)。
具体的には、未受信データフレームがデータフレームCであった場合には、受信済みのデータフレームであるデータフレームA、B、D、PからデータフレームCを算出することとなる。
これにより、データ通信装置11−2のMPU21は、全てのデータフレームを受信したことと等価となるため、データ受信フラグを全データフレームに対してセットする(ステップS52)。
続いて、データ通信装置11−2のMPU21は、Ack要求フラグがあるか否かを判別する(ステップS53)。
ステップS53の判別において、Ack要求フラグがある場合には(ステップS53;Yes)、データ通信装置11−2のMPU21は、Ack診断タイマをストップし(ステップS54)、データ受信フラグの状態(=既に受信しているデータフレームの情報)を付加した応答データフレームAckを送信し(ステップS55)、処理を再びステップS46に移行して、以下、上述した処理を繰り返す。
ステップS50の判別において、データ生成用データフレームPを受信していないか、あるいは、データフレームA、B、C、Dのうち二つ以上のデータフレームが未受信である場合には(ステップS50;No)、データ通信装置11−2のMPU21は、処理をステップS53に移行する。
ステップS50の判別において、データ生成用データフレームPを受信しており、かつ、データフレームA、B、C、Dのうちいずれか一つのみが未受信である場合には(ステップS49;Yes)、データ通信装置11−2のMPU21は、受信済みデータフレームから一つの未受信データフレームを算出する(ステップS51)。
具体的には、未受信データフレームがデータフレームCであった場合には、受信済みのデータフレームであるデータフレームA、B、D、PからデータフレームCを算出することとなる。
これにより、データ通信装置11−2のMPU21は、全てのデータフレームを受信したことと等価となるため、データ受信フラグを全データフレームに対してセットする(ステップS52)。
続いて、データ通信装置11−2のMPU21は、Ack要求フラグがあるか否かを判別する(ステップS53)。
ステップS53の判別において、Ack要求フラグがある場合には(ステップS53;Yes)、データ通信装置11−2のMPU21は、Ack診断タイマをストップし(ステップS54)、データ受信フラグの状態(=既に受信しているデータフレームの情報)を付加した応答データフレームAckを送信し(ステップS55)、処理を再びステップS46に移行して、以下、上述した処理を繰り返す。
ステップS53の判別において、Ack要求フラグがない場合には(ステップS53;No)、Ack診断タイマをリスタートし(ステップS56)、処理を再びステップS46に移行して、以下、上述した処理を繰り返す。
一方、ステップS47の判別において、送信元データ通信装置から受信をしていない場合には(ステップS47;No)、データ通信装置11−2のMPU21は、Ack診断タイマがタイムアップしたか否かを判別する(ステップS57)。
ステップS57の判別においてAck診断タイマがタイムアップした場合には(ステップS57;Yes)、送信元データ通信装置であるデータ通信装置11−1に応答データフレームAckを送信するのが必要なタイミングであるので、データ受信フラグの状態(=既に受信しているデータフレームの情報)を付加した応答データフレームAckを送信し(ステップS58)、処理を再びステップS46に移行し、以下、上述した処理と同様な処理を行う。
ステップS57の判別においてAck診断タイマがタイムアップしていない場合には、(ステップS57;No)、受信診断タイマがタイムアップしたか否かを判別する(ステップS59)。
ステップS59の判別において、未だ受信診断タイマがタイムアップしていない場合には(ステップS59;No)、処理を再びステップS46に移行し、以下、上述した処理と同様な処理を行う。
ステップS59の判別において、受信診断タイマがタイムアップした場合には(ステップS59;Yes)、データ受信フラグが全てセットされているか否かを判別する(ステップS60)。
ステップS57の判別においてAck診断タイマがタイムアップした場合には(ステップS57;Yes)、送信元データ通信装置であるデータ通信装置11−1に応答データフレームAckを送信するのが必要なタイミングであるので、データ受信フラグの状態(=既に受信しているデータフレームの情報)を付加した応答データフレームAckを送信し(ステップS58)、処理を再びステップS46に移行し、以下、上述した処理と同様な処理を行う。
ステップS57の判別においてAck診断タイマがタイムアップしていない場合には、(ステップS57;No)、受信診断タイマがタイムアップしたか否かを判別する(ステップS59)。
ステップS59の判別において、未だ受信診断タイマがタイムアップしていない場合には(ステップS59;No)、処理を再びステップS46に移行し、以下、上述した処理と同様な処理を行う。
ステップS59の判別において、受信診断タイマがタイムアップした場合には(ステップS59;Yes)、データ受信フラグが全てセットされているか否かを判別する(ステップS60)。
ステップS60の判別において、データ受信フラグのうちいずれか一つでもセットされていない場合には(ステップS60;No)、通信失敗として処理を終了する(ステップS61)。
ステップS60の判別において、データ受信フラグが全てセットされている場合には(ステップS60;Yes)、通信成功として処理を終了する(ステップS62)。
ステップS60の判別において、データ受信フラグが全てセットされている場合には(ステップS60;Yes)、通信成功として処理を終了する(ステップS62)。
次に第1実施形態の異常通信時の具体的通信手順について説明する。
図12は、第1実施形態の異常通信時の通信手順の説明図である。
送信元データ通信装置であるデータ通信装置11−1は、時刻t1において、送信先データ通信装置であるデータ通信装置11−2〜11−4に対し、送信データの一部を構成するデータフレームAを送信する。
図12は、第1実施形態の異常通信時の通信手順の説明図である。
送信元データ通信装置であるデータ通信装置11−1は、時刻t1において、送信先データ通信装置であるデータ通信装置11−2〜11−4に対し、送信データの一部を構成するデータフレームAを送信する。
この場合において、送信先データ通信装置であるデータ通信装置11−2は、データフレームAを受信できず、データ通信装置11−3及びデータ通信装置11−4は、データフレームを正常に受信できたものとする。
続いて、データ通信装置11−1は、時刻t2において、データ通信装置11−2〜11−4に対し、送信データの一部を構成するデータフレームBを送信し、データ通信装置11−2〜11−4は、データフレームBを正常に受信できたものとする。
さらに、データ通信装置11−1は、時刻t3において、データ通信装置11−2〜11−4に対し、送信データの一部を構成するデータフレームCを送信する。
この場合においては、データ通信装置11−3は、データフレームCを受信できず、データ通信装置11−2及びデータ通信装置11−4は、データフレームCを正常に受信できたものとする。
続いて、データ通信装置11−1は、時刻t4において、データ通信装置11−2〜11−4に対し、送信データの一部を構成するデータフレームDを送信し、データ通信装置11−2〜11−4は、データフレームDを正常に受信できたものとする。
以上の結果、時刻t5において、データ通信装置11−2は、送信元データ通信装置であるデータ通信装置11−1に対し、データフレームB〜Dを受信したことを示す応答フレームAck(B&C&D)を送信する。
同様に、データ通信装置11−3は、送信元データ通信装置であるデータ通信装置11−1に対し、データフレームA、B、Dを受信したことを示す応答フレームAck(A&B&D)を送信する。
一方、データ通信装置11−4は、時刻t5において、送信元データ通信装置であるデータ通信装置11−1に対し、データフレームA〜Dを受信したことを示す応答フレームAck(A&B&C&D)を送信することとなる。
これらの結果、送信元データ通信装置であるデータ通信装置11−1は、受信した応答フレームAck(B&C&D)、応答フレームAck(A&B&D)及び応答フレームAck(A&B&C&D)に基づいて、データフレームAを受信できなかったデータ通信装置及びデータフレームCを受信できなかったデータ通信装置が存在することを把握する。
続いて、データ通信装置11−1は、時刻t6において、データ通信装置11−2〜11−4に対し、生成用データフレームPを送信する。
この結果、送信先データ通信装置であるデータ通信装置11−2は、生成用データフレームPを用いて受信できなかったデータフレームAを生成し、送信先データ通信装置11−3は、成用データフレームPを用いて受信できなかったデータフレームCを生成する。
そして、送信先データ通信装置であるデータ通信装置11−2〜11−4は、時刻t7において、送信元データ通信装置であるデータ通信装置11−1に対し、データフレームA〜Dを受信したことを示す応答フレームAck(A&B&C&D)をそれぞれ送信することとなる。
以上の説明のように、上記構成によれば、送信先データ通信装置11−2〜11−4は、受信すべき送信データを構成しているデータフレームA〜Dあるいは生成用データフレームPを受信するまでは、データ受信フラグテーブルTB3を参照して未だ受信していないデータフレームA〜Dあるいは生成用データフレームPを把握して、処理を継続するので、確実に所望のデータフレームを受信することが可能となる。
従って、送信元データ通信装置11−1及び送信先データ通信装置11−2〜11−4間のデータ通信効率を必要以上に低下させることなく、確実にデータ通信を行うことができる。
[2]第2実施形態
次に第2実施形態について説明する。
上記第1実施形態においては、送信先データ通信装置において、送信データを構成している複数のデータフレームのうち、いずれか一つのデータフレームの受信が正しく行えなかった場合については、データ通信効率を必要以上に低下させることなくデータ通信を行うことができたが、二つのデータフレームの受信が行えなかった場合には、データフレームを生成することはできず、受信できなかった二つのデータフレームを再送する必要があった。より具体的には、送信データを四つのデータフレームに分割して送信する場合に、異なる送信先データ通信装置において、互いに異なる二つのデータフレームが受信できなかった場合、結局全てのデータフレームを再送する必要があった。
次に第2実施形態について説明する。
上記第1実施形態においては、送信先データ通信装置において、送信データを構成している複数のデータフレームのうち、いずれか一つのデータフレームの受信が正しく行えなかった場合については、データ通信効率を必要以上に低下させることなくデータ通信を行うことができたが、二つのデータフレームの受信が行えなかった場合には、データフレームを生成することはできず、受信できなかった二つのデータフレームを再送する必要があった。より具体的には、送信データを四つのデータフレームに分割して送信する場合に、異なる送信先データ通信装置において、互いに異なる二つのデータフレームが受信できなかった場合、結局全てのデータフレームを再送する必要があった。
そこで、本第2実施形態は、送信先データ通信装置において、二つのデータフレームが受信できなかった場合でも、受信できなかったデータフレームをデータ通信効率を必要以上に低下させることなく、生成することが可能とする実施形態である。
このため、本第2実施形態においては、第1実施形態における生成用データフレームPに加えて、第2の生成用データフレームQを送信先データ通信装置に送信して送信先データ通信装置において、受信できなかったデータフレームを生成するようにして、リトライ時の送信データ容量を削減している。
以下、送信データを第1実施形態と同様に四つのデータフレームA〜Dに分割して送信する場合を例として具体的に説明する。
生成用データフレームP及び生成用データフレームQを求める一般式は、データフレームA〜Dを用いて以下の様に表される。
生成用データフレームP及び生成用データフレームQを求める一般式は、データフレームA〜Dを用いて以下の様に表される。
P=Kpa×A+Kpb×B+Kpc×C+Kpd×D
Q=Kqa×A+Kqb×B+Kqc×C+Kqd×D
Q=Kqa×A+Kqb×B+Kqc×C+Kqd×D
上記式において、Kpa、Kpb、Kpc、Kpd、Kqa、Kqb、Kqc、Kqdは、要素が“1”及び“0”で構成される8×8の行列で表される係数である。すなわち、Kpa、Kpb、Kpc、Kpd、Kqa、Kqb、Kqc、Kqdは、要素が全て0である零行列ではない。ここで、8×8の行列を用いている理由は、送信しようとするデータフレームA〜Dを構成している実効的なデータ長が8ビットだからである。すなわち、一般的には、データ長がnビットである場合には、係数として用いる行列は、n×nの行列となる。
ここでは、式の簡略化を図るため、係数Kpa、Kpb、Kpc、Kpd、Kqaとして、8×8の単位行列を用いた場合を説明する。
図13は、係数Kpa、Kpb、Kpc、Kpd、Kqa、Kqb、Kqc、Kqdの一例の説明図である。
図14は、逆行列Kqb−1、Kqc−1、Kqd−1の一例の説明図である。
図15は、(E+Kqb)−1、(E+Kqc)−1、(E+Kqd)−1、(Kqb+Kqc)−1、(Kqb+Kqd)−1、(Kqc+Kqd)−1の一例の説明図である。
図14は、逆行列Kqb−1、Kqc−1、Kqd−1の一例の説明図である。
図15は、(E+Kqb)−1、(E+Kqc)−1、(E+Kqd)−1、(Kqb+Kqc)−1、(Kqb+Kqd)−1、(Kqc+Kqd)−1の一例の説明図である。
図13に示すように、係数Kpa、Kpb、Kpc、Kpd、Kqaは、8次の正方行列であって、主対角線上の要素のみが“1”であり、他の要素が全て“0”である単位行列である。以下の説明においては、単位行列をEで表す。
また、係数Kqb、Kqc、Kqdは、図14及び図15に一例を示すように、以下の逆行列、
Kqb−1
Kqc−1
Kqd−1
(E+Kqb)−1
(E+Kqc)−1
(E+Kqd)−1
(Kqb+Kqc)−1
(Kqb+Kqd)−1
(Kqc+Kqd)−1
が存在する8次の正方行列であって、
Kqb≠Kqc≠Kqd
である。
Kqb−1
Kqc−1
Kqd−1
(E+Kqb)−1
(E+Kqc)−1
(E+Kqd)−1
(Kqb+Kqc)−1
(Kqb+Kqd)−1
(Kqc+Kqd)−1
が存在する8次の正方行列であって、
Kqb≠Kqc≠Kqd
である。
この結果、上記二式は、以下の様に書き換えられる。以下の説明において、記号*は、行列の積を表す。
P=A+B+C+D
Q=A+Kqb*B+Kqc*C+Kqd*D
P=A+B+C+D
Q=A+Kqb*B+Kqc*C+Kqd*D
したがって、これら二つの式を連立方程式として用いることにより、未受信のデータフレームが二つの場合に、連立方程式を解くことにより未受信のデータフレームを算出(生成)することができるのである。
以下、具体的な未受信のデータフレームの生成方法について説明する。
図16は、送信データに対応する複数のデータフレーム及び生成用データフレームP及び生成用データフレームQの受信状態に対応する未受信のデータフレーム生成方法の説明図である。
図16は、送信データに対応する複数のデータフレーム及び生成用データフレームP及び生成用データフレームQの受信状態に対応する未受信のデータフレーム生成方法の説明図である。
図16において、記号○は、対応するフレームデータを受信できた場合、記号?は、受信の可否が問題とならない場合、記号×は、対応するフレームデータを受信できなかった場合を表している。
実際の受信状態としては、図16に示すように16通りの状態が考えられる。
具体的には、以下の通りである。
状態1:データフレームA〜Dを全て受信できた場合。
状態2〜5:データフレームA〜Dのいずれか一つを受信できず、生成用データフレームPを受信できた場合。
具体的には、以下の通りである。
状態1:データフレームA〜Dを全て受信できた場合。
状態2〜5:データフレームA〜Dのいずれか一つを受信できず、生成用データフレームPを受信できた場合。
状態6〜9:データフレームA〜Dのいずれか一つ及び生成用データフレームPを受信できず、生成用データフレームQを受信できた場合。
状態10〜15:データフレームA〜Dのいずれか二つを受信できず、生成用データフレームP及び生成用データフレームQを受信できた場合。
状態16:データフレームA〜D、生成用データフレームP及び生成用データフレームQのうち、いずれか三つ以上を受信できなかった場合。
状態10〜15:データフレームA〜Dのいずれか二つを受信できず、生成用データフレームP及び生成用データフレームQを受信できた場合。
状態16:データフレームA〜D、生成用データフレームP及び生成用データフレームQのうち、いずれか三つ以上を受信できなかった場合。
これらのうち、状態1は、正しく受信できた場合であり、データフレームの生成のための計算は不要である。
また、状態2〜5は、生成用データフレームPを用いて第1実施形態と同様の計算で受信できなかったデータフレームを計算できる。
また、状態2〜5は、生成用データフレームPを用いて第1実施形態と同様の計算で受信できなかったデータフレームを計算できる。
また、状態6〜9の場合は、生成用データフレームQを用いて第1実施形態に準じた計算で受信できなかったデータフレームを計算できる。
より具体的には、データフレームBを受信できなかった場合には(状態8)、次式によりデータフレームBを生成できる。
B=Kqb−1*(Q+A+Kqc*C+Kqd*D)
より具体的には、データフレームBを受信できなかった場合には(状態8)、次式によりデータフレームBを生成できる。
B=Kqb−1*(Q+A+Kqc*C+Kqd*D)
データフレームCを受信できなかった場合(状態7)及びデータフレームDを受信できなかった場合(状態6)も同様である。
データフレームAを受信できなかった場合には(状態9)、次式によりデータフレームBを生成できる。
A=Q+Kqb*B+Kqc*C+Kqd*D
データフレームAを受信できなかった場合には(状態9)、次式によりデータフレームBを生成できる。
A=Q+Kqb*B+Kqc*C+Kqd*D
また状態10〜15の場合は、生成用データフレームP及び生成用データフレームQを用いた計算で受信できなかった二つのデータフレームを生成できる。
データフレームAを受信でき、データフレームC及びデータフレームDを受信できなかった場合には(状態10)、次式によりデータフレームDを生成し、さらに生成したデータフレームDを用いてデータフレームCを生成できる。
D=(Kqc+Kqd)−1*{Q+A+Kqb*B+Kqc*(P+A+B)}
C=P+A+B+D
データフレームAを受信でき、データフレームC及びデータフレームDを受信できなかった場合には(状態10)、次式によりデータフレームDを生成し、さらに生成したデータフレームDを用いてデータフレームCを生成できる。
D=(Kqc+Kqd)−1*{Q+A+Kqb*B+Kqc*(P+A+B)}
C=P+A+B+D
同様にデータフレームAを受信でき、データフレームB及びデータフレームDを受信できなかった場合(状態11)、あるいは、データフレームAを受信でき、データフレームB及びデータフレームCを受信できなかった場合(状態12)も、生成用データフレームP及び生成用データフレームQを用いた計算で受信できなかった二つのデータフレームを生成(復元)できる。
また、データフレームA及びデータフレームDを受信できなかった場合には(状態13)、次式によりデータフレームDを生成し、さらに生成したデータフレームDを用いてデータフレームAを生成できる。
D=(E+Kqd)−1*(Q+Kqb*B+Kqc*C+P+B+C)
A=P+B+C+D
D=(E+Kqd)−1*(Q+Kqb*B+Kqc*C+P+B+C)
A=P+B+C+D
同様にデータフレームA及びデータフレームCを受信できなかった場合(状態14)、あるいは、データフレームA及びデータフレームBを受信できなかった場合(状態15)も、生成用データフレームP及び生成用データフレームQを用いた計算で受信できなかった二つのデータフレームを生成できる。
次に、第2実施形態の(通信)異常時の通信手順について説明する。
図17は、第2実施形態の異常通信時の通信手順の説明図である。
送信元データ通信装置であるデータ通信装置11−1は、時刻t1において、送信先データ通信装置であるデータ通信装置11−2〜11−4に対し、送信データの一部を構成するデータフレームAを送信する。
図17は、第2実施形態の異常通信時の通信手順の説明図である。
送信元データ通信装置であるデータ通信装置11−1は、時刻t1において、送信先データ通信装置であるデータ通信装置11−2〜11−4に対し、送信データの一部を構成するデータフレームAを送信する。
この場合において、送信先データ通信装置であるデータ通信装置11−2は、データフレームAを受信できず、データ通信装置11−3及びデータ通信装置11−4は、データフレームを正常に受信できたものとする。
続いて、データ通信装置11−1は、時刻t2において、データ通信装置11−2〜11−4に対し、送信データの一部を構成するデータフレームBを送信する。
続いて、データ通信装置11−1は、時刻t2において、データ通信装置11−2〜11−4に対し、送信データの一部を構成するデータフレームBを送信する。
この場合において、送信先データ通信装置であるデータ通信装置11−2は、データフレームBを受信できず、データ通信装置11−3及びデータ通信装置11−4は、データフレームを正常に受信できたものとする。
さらに、データ通信装置11−1は、時刻t3において、データ通信装置11−2〜11−4に対し、送信データの一部を構成するデータフレームCを送信する。
この場合においては、データ通信装置11−3は、データフレームCを受信できず、データ通信装置11−2及びデータ通信装置11−4は、データフレームCを正常に受信できたものとする。
この場合においては、データ通信装置11−3は、データフレームCを受信できず、データ通信装置11−2及びデータ通信装置11−4は、データフレームCを正常に受信できたものとする。
続いて、データ通信装置11−1は、時刻t4において、データ通信装置11−2〜11−4に対し、送信データの一部を構成するデータフレームDを送信する。
この場合においては、データ通信装置11−3は、データフレームDを受信できず、データ通信装置11−2及びデータ通信装置11−4は、データフレームDを正常に受信できたものとする。
この場合においては、データ通信装置11−3は、データフレームDを受信できず、データ通信装置11−2及びデータ通信装置11−4は、データフレームDを正常に受信できたものとする。
以上の結果、時刻t5において、データ通信装置11−2は、送信元データ通信装置であるデータ通信装置11−1に対し、データフレームC、Dを受信したことを示す応答フレームAck(C&D)を送信する。
同様に、データ通信装置11−3は、送信元データ通信装置であるデータ通信装置11−1に対し、データフレームA、Bを受信したことを示す応答フレームAck(A&B)を送信する。
同様に、データ通信装置11−3は、送信元データ通信装置であるデータ通信装置11−1に対し、データフレームA、Bを受信したことを示す応答フレームAck(A&B)を送信する。
一方、データ通信装置11−4は、時刻t5において、送信元データ通信装置であるデータ通信装置11−1に対し、データフレームA〜Dを受信したことを示す応答フレームAck(A&B&C&D)を送信することとなる。
これらの結果、送信元データ通信装置であるデータ通信装置11−1は、受信した応答フレームAck(C&D)、応答フレームAck(A&B)及び応答フレームAck(A&B&C&D)に基づいて、データフレームA、Bを受信できなかったデータ通信装置及びデータフレームC、Dを受信できなかったデータ通信装置が存在することを把握する。
続いて、データ通信装置11−1は、時刻t6において、データ通信装置11−2〜11−4に対し、生成用データフレームPを送信し、時刻t7において、データ通信装置11−2〜11−4に対し、生成用データフレームQを送信する。
この結果、送信先データ通信装置であるデータ通信装置11−2は、生成用データフレームP及び生成用データフレームQを用いて受信できなかったデータフレームA、Bを生成し、送信先データ通信装置11−3は、成用データフレームP及び生成用データフレームQを用いて受信できなかったデータフレームC、Dを生成する。
さらに、送信先データ通信装置であるデータ通信装置11−2〜11−4は、時刻t8において、送信元データ通信装置であるデータ通信装置11−1に対し、データフレームA〜Dを受信したことを示す応答フレームAck(A&B&C&D)をそれぞれ送信することとなる。
以上の説明のように、本第2実施形態によれば、第1実施形態の効果に加えて、送信データをデータフレームA〜Dの四つに分割して送信する場合に、生成用データフレームP及び生成用データフレームQを用いてデータフレームA〜Dのうち、いずれか二つのデータフレームが正常に受信できなかった場合でもデータ通信効率を大きく低下させることなく当該正常に受信できなかった二つのデータフレームを生成して、データ通信を継続することができる。
[3]第3実施形態
上記第1実施形態及び第2実施形態においては、送信元データ通信装置11−1は、いずれかのデータフレームが送信先データ通信装置11−2〜11−4において、受信できなかった場合に、生成用データフレームPを送信していたが、本第3実施形態は、送信データを分割してデータフレームA〜Dの送信後であって、送信先データ通信装置11−2〜11−4から応答フレームAckを受信する前に生成用データフレームPを送信するものである。
上記第1実施形態及び第2実施形態においては、送信元データ通信装置11−1は、いずれかのデータフレームが送信先データ通信装置11−2〜11−4において、受信できなかった場合に、生成用データフレームPを送信していたが、本第3実施形態は、送信データを分割してデータフレームA〜Dの送信後であって、送信先データ通信装置11−2〜11−4から応答フレームAckを受信する前に生成用データフレームPを送信するものである。
図18は、第3実施形態の動作説明図である。
図18に示すように、送信先データ通信装置11−2〜11−4は、送信元データ通信装置11−1の最初の送信(時刻t1〜t5の期間)でデータフレームA〜Dを全て正常に受信できた場合には、時刻t6において応答フレームAckを送信するので、例えば、第1実施形態の場合と比較して早期に応答フレームAckを送信して、通信を完了することが可能となる。
図18に示すように、送信先データ通信装置11−2〜11−4は、送信元データ通信装置11−1の最初の送信(時刻t1〜t5の期間)でデータフレームA〜Dを全て正常に受信できた場合には、時刻t6において応答フレームAckを送信するので、例えば、第1実施形態の場合と比較して早期に応答フレームAckを送信して、通信を完了することが可能となる。
また、送信元データ通信装置11−1の最初の送信でデータフレームA〜Dのうち、いずれか一つを除き、正常に受信できた場合には、生成用データフレームPを用いて受信できなかったいずれか一つのデータフレームを生成した後の時刻t6‘において応答フレームAckを送信するので、この場合においても、第1実施形態の場合と比較して早期に応答フレームAckを送信して、通信を完了することが可能となる。
[4]第4実施形態
次に第4実施形態について説明する。
生成用データフレームPの送信は、伝送エラーが少ない場合には、データ通信システム10においては負荷となる。
次に第4実施形態について説明する。
生成用データフレームPの送信は、伝送エラーが少ない場合には、データ通信システム10においては負荷となる。
一方、伝送エラーが多い場合には、例えば、上述したように送信データの送信において、データフレームA〜Dのうち二つ以上の欠落が発生する確率が高くなり、生成用データフレームPの送信だけでは足りずに、リトライが頻発するようになる。
図19は、第4実施形態の送信例の説明図である。
そこで、通常時は、第3実施形態で図16に示した場合のように、データフレームA〜D及び生成用データフレームPを連続して送信する。
そこで、通常時は、第3実施形態で図16に示した場合のように、データフレームA〜D及び生成用データフレームPを連続して送信する。
そして、伝送エラーが多いと検出した場合には、図19に示すように、一度に送信するデータフレーム数を減らす(図19では、データフレームA及びデータフレームBを送信)する。これによりリトライ発生回数が減少することとなる。
より詳細には、一つのフレームデータを送信する場合のエラー(発生)率をXとし、同時送信データフレーム数をSとし、リトライ時に送信を失敗する確率は低いものとして無視するものとすると、1回のリトライが発生する確率RRSは、次式で表される。
RRS=1−(1−X)(S−1)*(1+(S−1)*X)
RRS=1−(1−X)(S−1)*(1+(S−1)*X)
また、同時送信データフレーム数Sの場合の、正常時の伝送時間をTNS、リトライの時間をTRSとすると、データ1個分に換算した伝送時間TTSは、次式で表される。
TTS=(TNS+TRS*RRS)/s
TTS=(TNS+TRS*RRS)/s
この式の中で変動する数値はエラー率Xのみである。
すなわち、1回に送信する同時送信データフレーム数Sが大きいほど、1回のリトライが発生する確率RRSは増えるが、効率が良くなり、正常時の伝送時間は減ることとなる。
すなわち、1回に送信する同時送信データフレーム数Sが大きいほど、1回のリトライが発生する確率RRSは増えるが、効率が良くなり、正常時の伝送時間は減ることとなる。
したがって、例えば、選択し得る同時送信データフレーム数Sが、S1及びS2の二つあった場合には、対応する伝送時間TTS1とTTS2を比較し、最適な同時送信データフレーム数Sを選択することにより、効率の良い伝送ができる。
選択し得る同時送信データフレーム数Sが三つ以上の場合も同様である。
選択し得る同時送信データフレーム数Sが三つ以上の場合も同様である。
[5]実施形態の変形例
以上の説明においては、データ通信装置11−1〜11−4は、MPU等を有するコンピュータとして構成し、これらの機能をプログラム及び各種インタフェースを介して実行するように構成していたが、コンピュータで実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、DVD(Digital Versatile Disk)、USBメモリなどの半導体記録装置等のコンピュータで読み取り可能な記録媒体に記録されて提供されるようにしてもよい。
以上の説明においては、データ通信装置11−1〜11−4は、MPU等を有するコンピュータとして構成し、これらの機能をプログラム及び各種インタフェースを介して実行するように構成していたが、コンピュータで実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、DVD(Digital Versatile Disk)、USBメモリなどの半導体記録装置等のコンピュータで読み取り可能な記録媒体に記録されて提供されるようにしてもよい。
また、コンピュータで実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、制御部52で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
また、コンピュータで実行されるプログラムをROM等に予め組み込んで提供するように構成してもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
10 データ通信システム
11−1 データ通信装置(送信元データ通信装置)
11−2〜11−4 データ通信装置(送信先データ通信装置)
21 MPU(復元用データ生成送信部、データ復元部)
22 メモリ部
23 I/O部
24 通信部(復元用データ生成送信部)
25 電源
A〜D データフレーム
Kpa、Kpb、Kpc、Kpd、Kqa、Kqb、Kqc、Kqd 係数
P 生成用データフレーム
Q (第2の)生成用データフレーム
11−1 データ通信装置(送信元データ通信装置)
11−2〜11−4 データ通信装置(送信先データ通信装置)
21 MPU(復元用データ生成送信部、データ復元部)
22 メモリ部
23 I/O部
24 通信部(復元用データ生成送信部)
25 電源
A〜D データフレーム
Kpa、Kpb、Kpc、Kpd、Kqa、Kqb、Kqc、Kqd 係数
P 生成用データフレーム
Q (第2の)生成用データフレーム
Claims (7)
- 通信ネットワークを介して送信データを同一ビット長を有する複数のデータフレームに分割して、他のデータ通信装置と前記データフレームの送受信を行うデータ通信装置であって、
前記複数のデータフレームのビット列中の同一ビット位置の複数のビット値の排他的論理和をとって、前記データフレームと同一ビット長を有するチェックサム符号列である生成用データフレームを生成し、受信側の前記データ通信装置に送信する復元用データ生成送信部と、
前記他のデータ通信装置から送信された前記複数のデータフレームのうち受信できなかった前記データフレームが一つである場合に、前記生成用データフレームに基づいて、前記受信できなかったデータフレームを復元するデータ復元部と、
を備えたデータ通信装置。 - 前記復元用データ生成送信部は、前記データフレームのそれぞれに対し、行列で表される係数を乗じた値の排他的論理和をとって、前記データフレームと同一ビット長を有するチェックサム符号列である第2の生成用データフレームを生成し、受信側の前記データ通信装置に送信し、
前記データ復元部は、前記複数のデータフレームのうち受信できなかった前記データフレームが二つ以下である場合に、前記第2の生成用データフレームに基づいて、前記受信できなかったデータフレームを復元する、
請求項1記載のデータ通信装置。 - 前記復元用データ生成送信部は、前記複数のデータフレームの送信後であって、前記複数のデータフレームに対応する前記受信側のデータ通信装置からの応答フレームの受信前に前記生成用データフレームを前記受信側のデータ通信装置に送信する、
請求項1または請求項2記載のデータ通信装置。 - 前記送信側のデータ通信装置は、前記受信側のデータ装置からの応答フレームの受信前に同時に送信する前記データフレームの数に対応する正常時伝送時間及びリトライ発生による遅延時間を計算し、想定される実際の伝送時間に基づいて前記同時に送信する前記データフレームの数を設定する同時伝送数設定部を備える、
請求個1乃至請求項3のいずれかに記載のデータ通信装置。 - 複数のデータ通信装置を備え、通信ネットワークを介して送信データを同一ビット長を有する複数のデータフレームに分割して、前記複数のデータ通信装置間で前記データフレームの送受信を行うデータ通信システムであって、
送信側の前記データ通信装置は、前記複数のデータフレームのビット列中の同一ビット位置の複数のビット値の排他的論理和をとって、前記データフレームと同一ビット長を有するチェックサム符号列である生成用データフレームを生成し、受信側の前記データ通信装置に送信する復元用データ生成送信部を備え、
受信側の前記データ通信装置は、前記複数のデータフレームのうち受信できなかった前記データフレームが一つである場合に、前記生成用データフレームに基づいて、前記受信できなかったデータフレームを復元するデータ復元部を備える、
データ通信システム。 - 通信ネットワークを介して送信データを同一ビット長を有する複数のデータフレームに分割して、他のデータ通信装置と前記データフレームの送受信を行うデータ通信装置で実行される方法であって、
前記複数のデータフレームのビット列中の同一ビット位置の複数のビット値の排他的論理和をとって、前記データフレームと同一ビット長を有するチェックサム符号列である生成用データフレームを生成する過程と、
前記生成用データフレームを前記受信側の前記データ通信装置に送信する過程と、
を備えた方法。 - 通信ネットワークを介して送信データを同一ビット長を有する複数のデータフレームに分割して、他のデータ通信装置と前記データフレームの送受信を行うデータ通信装置で実行される方法であって、
前記他のデータ通信装置から送信された前記複数のデータフレームを受信する過程と、
前記他のデータ通信装置から送信された前記複数のデータフレームのうち受信できなかった前記データフレームが一つである場合に、前記他のデータ通信装置が送信した前記データフレームと同一ビット長を有するチェックサム符号列である生成用データフレームに基づいて、前記受信できなかったデータフレームを復元する過程と、
を備えた方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018192828A JP2020061690A (ja) | 2018-10-11 | 2018-10-11 | データ通信装置、データ通信システム及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018192828A JP2020061690A (ja) | 2018-10-11 | 2018-10-11 | データ通信装置、データ通信システム及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020061690A true JP2020061690A (ja) | 2020-04-16 |
Family
ID=70219096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018192828A Pending JP2020061690A (ja) | 2018-10-11 | 2018-10-11 | データ通信装置、データ通信システム及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020061690A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023209769A1 (ja) * | 2022-04-25 | 2023-11-02 | 日本電信電話株式会社 | サーバ及び遠隔品質測定方法 |
-
2018
- 2018-10-11 JP JP2018192828A patent/JP2020061690A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023209769A1 (ja) * | 2022-04-25 | 2023-11-02 | 日本電信電話株式会社 | サーバ及び遠隔品質測定方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3840265B1 (en) | Method and apparatus for feeding back hybrid automatic repeat request of downlink data | |
CN107257270B (zh) | 基于混合自动重传请求的数据传输方法及系统 | |
US10034200B2 (en) | Iteratively transmitting random linear network encoded packets from multiple transmission nodes | |
US20110041024A1 (en) | Evolved Universal Terrestrial Radio Access Acknowledged Mode Radio Link Control Status Report for Segmented Protocol Data Units | |
JP4648255B2 (ja) | 情報処理装置および情報処理方法 | |
JP2005175837A (ja) | 送信装置および方法、受信装置および方法、記録媒体、並びにプログラム | |
US20080294966A1 (en) | Data transmission apparatus, data transmission device, data reception device and data transmission system | |
US8621311B2 (en) | Data transfer device, method, and program | |
CN107409023B (zh) | 一种合并层域中的数据和重传数据的方法 | |
CN111478826A (zh) | 丢包率确定方法、数据传输控制方法和数据传输系统 | |
US9401775B2 (en) | Communication method, information processing apparatus, and recording medium | |
JP2020061690A (ja) | データ通信装置、データ通信システム及び方法 | |
JP2013141184A (ja) | 送受信システム及びプログラム | |
JP2019004467A (ja) | 量子通信装置、量子通信システム、量子通信方法及びプログラム | |
JP2007135128A (ja) | パケット損失率に基づく複数のコピーパケットの送受信方法、通信装置及びプログラム | |
CN111294161B (zh) | Harq反馈方法及装置、存储介质、终端 | |
CN112804028A (zh) | 一种数据包的传输方法、设备及存储介质 | |
US8472310B2 (en) | Packet distribution band controlling method, distributing apparatus, and video distributing system | |
JP6172355B2 (ja) | 送受信システム及びプログラム | |
US11329763B2 (en) | Decoding method and associated circuit | |
US10003470B2 (en) | Method and terminal for transmitting and receiving data | |
US11956151B2 (en) | Transmission control protocol flow control method and device for performing the method | |
CN112953686B (zh) | 数据重传方法、装置、设备和存储介质 | |
US11197190B2 (en) | Communication device, communication method, communication computer program product, and communication system | |
JP2001007858A (ja) | 送信装置および送信方法、並びに媒体 |