JP6452573B2 - データ送信装置及びデータ受信装置及びデータ送信方法及びデータ受信方法及びデータ送信プログラム及びデータ受信プログラム - Google Patents

データ送信装置及びデータ受信装置及びデータ送信方法及びデータ受信方法及びデータ送信プログラム及びデータ受信プログラム Download PDF

Info

Publication number
JP6452573B2
JP6452573B2 JP2015156973A JP2015156973A JP6452573B2 JP 6452573 B2 JP6452573 B2 JP 6452573B2 JP 2015156973 A JP2015156973 A JP 2015156973A JP 2015156973 A JP2015156973 A JP 2015156973A JP 6452573 B2 JP6452573 B2 JP 6452573B2
Authority
JP
Japan
Prior art keywords
data
transmission
message
transmission interval
encoded
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
JP2015156973A
Other languages
English (en)
Other versions
JP2017038132A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2015156973A priority Critical patent/JP6452573B2/ja
Publication of JP2017038132A publication Critical patent/JP2017038132A/ja
Application granted granted Critical
Publication of JP6452573B2 publication Critical patent/JP6452573B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、データ通信に関する。
従来のパケット通信方式では、パケットに連続番号としてのシーケンス番号を付与することによりパケットの欠落を検出できるようにしている。そして、従来のパケット通信方式では、受信側で連続受信した回数をカウントしておき、パケットの欠落を検出した場合には、カウントを停止する。そして、パケットの欠落が検出された時点でのカウント値に従って送信間隔を決定している。
Object Management Groupが定めるData Disturibution Service(DDS)仕様にある機能の一つであるDURABILITY SERVICEでは、送信アプリケーションが受信アプリケーションに送信したデータをデータベースなどに蓄積しておく。そして、受信アプリケーションが再起動などした場合に、データベースに蓄積されたデータを受信アプリケーションに対して送信することにより、受信アプリケーションが持つ内部状態(変数など)などを再起動前の状態に復元可能にする。
このDURABILITY SERVICE機能を用いて受信アプリケーションの復元を行う際に、復元を短時間で行うために、データベースから受信アプリケーションに対して連続的にデータ送信を行う場合がある。この場合に、受信アプリケーションにおいてデータの欠落を発生させてしまうことがある。
特許文献1には、一定時間内に受信したデータの数に基づいて送信間隔を決定することにより、データの連続送信を防ぐ技術が開示されている。
なお、上記のObject Management Groupは、様々な技術および広範囲の業種について企業統合標準を開発している、コンピュータ業界の非営利の標準化コンソーシアムである。
特開10−56479号公報
しかしながら、特許文献1に開示の技術では、受信側でのデータのデコード時間が考慮されていない。
例えば、DDSでは、データを特定のデータ形式に変換して(エンコードして)送信し、受信側で特定のデータ形式から元のデータに戻して(デコードして)受信アプリケーションに転送する。
DURABILITY SERVICEでは、エンコード済のデータをデータベースに格納しておくため、送信時にはエンコード処理が行われないが、受信側でエンコードされたデータのデコード処理が必要である。
このため、受信側でのデコード処理に要する時間を考慮せずにデータの送信間隔を設定すると、受信側でデータの欠落が起きる可能性がある。
本発明は、上記の課題を解決することを主な目的としており、受信側でのデータ欠落を回避するために、適切な送信間隔でデータを送信することを主な目的とする。
本発明に係るデータ送信装置は、
エンコード処理されたエンコードデータを、前記エンコードデータを受信し前記エンコードデータのデコード処理を行うデータ受信装置に送信するデータ送信装置であって、
前記データ受信装置でのデコード処理に要するデコード所要時間を記憶する記憶部と、
前記記憶部で記憶されている前記デコード所要時間を、エンコードデータの送信間隔に設定する送信間隔設定部と、
前記送信間隔設定部により設定された送信間隔で、エンコードデータを前記データ受信装置に送信するデータ送信部とを有する。
本発明では、データ受信装置でのデコード処理に要するデコード所要時間をエンコードデータの送信間隔に設定し、設定した送信間隔でエンコードデータをデータ受信装置に送信する。このため、本発明によれば、デコード所要時間に従って適切な送信間隔を設定することができ、適切な送信間隔でエンコードデータを送信することができる。
実施の形態1に係るデータ送信装置及びデータ受信装置の機能構成例を示す図。 実施の形態1に係る受信制御部の動作例を示すフローチャート図。 実施の形態1に係るメッセージ受信部の動作例を示すフローチャート図。 実施の形態1に係る送信制御部の動作例を示すフローチャート図。 実施の形態2に係る送信制御部の動作例を示すフローチャート図。 実施の形態2に係る送信制御部の動作例を示すフローチャート図。 実施の形態1及び2に係るデータ送信装置及びデータ受信装置のハードウェア構成例を示す図。 実施の形態1に係るACKNACKメッセージのフォーマット例を示す図。 実施の形態1に係るACKNACKメッセージのフォーマット例を示す図。
実施の形態1.
本実施の形態では、デコード処理に要する時間も考慮して送信間隔を適切に調整することにより、データの欠落なくデータの送受信を実現する構成を説明する。
本実施の形態では、例えば、再起動された受信アプリケーションに対して、データベースに蓄積されたデータを送信することにより、受信アプリケーションが持つ状態(内部変数の値など)を再起動前の状態と同一にする際に、受信側でのデコード処理に要する時間を考慮して送信間隔を調整する。
***構成の説明***
図1は、本実施の形態に係るデータ送信装置100とデータ受信装置200の機能構成例を示す。
図1に示すように、データ送信装置100は、データ生成部101と、データ蓄積部102と、メッセージ受信部103と、送信制御部104と、記憶部105とを有する。
送信制御部104は、送信間隔設定部1041とデータ送信部1042を含む。
また、データ受信装置200は、受信制御部201と、データ処理部202とを有する。
受信制御部201は、データ受信部2011、メッセージ生成部2102、メッセージ送信部2013を含む。
データ送信装置100には、図7に示すように、プロセッサ901、記憶装置902及び通信装置903というハードウェアが含まれる。
記憶装置902には、データ生成部101、メッセージ受信部103、送信制御部104の機能を実現するプログラムが記憶されており、プロセッサ901がこれらプログラムを実行して、後述するデータ生成部101と、メッセージ受信部103と、送信制御部104の動作を行う。
図7では、プロセッサ901がデータ生成部101、メッセージ受信部103、送信制御部104の機能を実現するプログラムを実行している状態を模式的に表している。
通信装置903は、データ受信装置100との間で通信を行う。
また、データ受信装置200にも、図7に示すように、プロセッサ904、記憶装置905及び通信装置906というハードウェアが含まれる。
記憶装置905には、受信制御部201、データ処理部202の機能を実現するプログラムが記憶されており、プロセッサ904がこれらプログラムを実行して、後述する受信制御部201、データ処理部202の動作を行う。
図7では、プロセッサ904が受信制御部201、データ処理部202の機能を実現するプログラムを実行している状態を模式的に表している。
通信装置906は、データ送信装置100との間で通信を行う。
***動作の説明***
データ送信装置100において、データ生成部101は、例えば、DDSの仕様に従って、データを特定のデータ形式に変換して(エンコード処理を行って)、データ受信装置200に送信するエンコードデータを生成する。データ生成部101は、生成したエンコードデータをデータ蓄積部102に格納する。また、データ生成部101は、データ受信装置200でのデコード処理に要する時間であるデコード所要時間を記憶部105に登録する。データ生成部101は、例えば、データ生成機能を持つオブジェクト(アプリケーション)である。ここでいうオブジェクトとは、オブジェクト指向プログラミングにおけるクラスのインスタンスを示す。
データ生成部101は、DDSの送信アプリケーションに相当する。
データ蓄積部102は、データ生成部101により生成されたエンコードデータを蓄積する。
データ蓄積部102は、DDSのデータベースに相当する。
メッセージ受信部103は、データ受信装置200から送信される、データ受信装置200におけるデータ受信状況を示すメッセージを受信する。
ここで、「データ受信状況」とは、具体的には、以下の1)〜3)の状況のいずれかである
1)データ受信装置2000がデータ受信待ち状態になった後にデータ受信期限までにエンコードデータを受信しなかった状況
2)データ受信装置2000がデータ受信待ち状態になった後にデータ受信期限までにエンコードデータを受信した場合であって、データ受信装置2000がデータ受信待ち状態になってからエンコードデータを受信するまでの時間が閾値時間よりも短い状況
3)データ受信装置2000がエンコードデータを受信しなかった状況、すなわち、エンコードデータの欠落があった状況
そして、メッセージ受信部103は、データ受信装置2000のデータ受信状況が上記の1)の状況では、エンコードデータの送信を要求する第1のメッセージを受信する。
また、メッセージ受信部103は、データ受信装置2000のデータ受信状況が上記の2)の状況では、データ受信装置200で受信済みのエンコードデータを通知する第2のメッセージを受信する。
また、メッセージ受信部103は、データ受信装置2000のデータ受信状況が上記の3)の状況では、エンコードデータの欠落を通知する第3のメッセージを受信する。
本実施の形態では、メッセージ受信部103は、第1〜第3のメッセージとして、DDSのACKNACKメッセージを受信する。
ACKNACKメッセージの形式はDDSの仕様にて定められている。ACKNACKメッセージでは、シーケンス番号から最大256個のデータについて、受信済/未受信を0または1で表現している。
図8は、ACKNACKメッセージのフォーマットを示す。
また、図9は、図8に示す「SequenceNumberSet readerSNState」の内訳を示す。
送信制御部104は、データ蓄積部102に蓄積されているエンコードデータをデータ受信装置200に送信する。送信制御部104は、送信間隔設定部1041とデータ送信部1042で構成される。
送信間隔設定部1041は、エンコードデータの送信間隔を設定する。より具体的には、送信間隔設定部1041は、最初の送信間隔は、記憶部105で記憶されているデコード所要時間とする。また、送信間隔設定部1041は、図7に示すプロセッサ901のレジスタ内の送信間隔を記憶する領域又は記憶装置902内の送信間隔を記憶する領域に、デコード所要時間を格納することにより、エンコードデータの送信間隔を設定する。また、送信間隔設定部1041は、デコード所要時間を送信間隔のデフォルト値にして、データ受信装置200でのエンコードデータの受信状況に基づき、エンコードデータの送信間隔を更新する。本実施の形態では、データ生成部101でのエンコード処理に要するエンコード所要時間と、データ受信装置200でのデコード処理に要するデコード所要時間が同じである。このため、送信間隔設定部1041は、デコード所要時間ではなく、エンコード所要時間を記憶部105に登録し、送信間隔設定部1041が、エンコード所要時間を最初の送信間隔に設定するようにしてもよい。
送信間隔設定部1041の動作は、送信間隔設定ステップの例に相当する。
データ送信部1042は、送信間隔設定部1041で設定又は更新された送信間隔でエンコードデータをデータ受信装置200に送信する。具体的には、データ送信部1042は、図7に示す通信装置903を制御して、通信装置903からエンコードデータをデータ受信装置200に送信する。データ送信部1042は、エンコードデータを送信する際に、エンコードデータにヘッダを付加する。ヘッダには、宛先アドレス、シーケンス番号、チェックサム等の情報が含まれる。
データ送信部1042の動作は、データ送信ステップの例に相当する。
記憶部105は、デコード所要時間を記憶する。
データ受信装置200において、受信制御部201は、データ送信装置100から送信されたエンコードデータを受信する。受信制御部201は、データ受信部2011、メッセージ生成部2012、メッセージ送信部2013で構成される。
データ受信部2011は、データ送信装置100から送信されたエンコードデータを受信する。より具体的には、データ受信部2011は、図7に示す通信装置906を制御し、通信装置906を介してエンコードデータを受信する。また、データ受信部2011は、エンコードデータの受信間隔を監視する。また、データ受信部2011は、受信したエンコードデータのデコード処理を行う。デコード処理は、データ生成部101によるエンコード処理の前のデータ状態に戻す処理である。
データ受信部2011の動作は、データ受信ステップの例に相当する。
メッセージ生成部2012は、ACKNACKメッセージを生成する。つまり、メッセージ生成部2012は、前述の第1〜第3のメッセージを生成する。具体的には、メッセージ生成部2012は、データ受信部2011がデータ受信待ち状態になった後にデータ受信期限までにエンコードデータを受信しなかったデータ受信状況である場合に、第1のメッセージを生成する。また、メッセージ生成部2012は、データ受信部2011がデータ受信待ち状態になった後にデータ受信期限までにエンコードデータを受信した場合であって、データ受信部2011がデータ受信待ち状態になってからエンコードデータを受信するまでの時間が閾値時間よりも短いデータ受信状況である場合に、第2のメッセージを生成する。また、メッセージ生成部2012は、データ受信部2011がエンコードデータを受信しなかったデータ受信状況、つまり、エンコードデータの欠落があった場合に、第3のメッセージを生成する。
メッセージ生成部2012の動作は、メッセージ生成ステップの例に相当する。
メッセージ送信部2013は、メッセージ生成部2012により生成された第1〜第3のメッセージをデータ送信装置100に送信する。
メッセージ送信部2013の動作は、メッセージ送信ステップの例に相当する。
データ処理部202は、データ受信部2011によりデコードされたデータを受け取り、データに対する処理を行う。
データ処理部202は、DDSの受信アプリケーションに相当する。
次に、本実施の形態に係る受信制御部201の動作例を図2を用いて説明する。
図2に示す動作手順は、データ受信方法及びデータ受信プログラムの例に相当する。
ステップS1において、データ受信部2011がデータ受信待ち状態になると、データ受信部2011は、データ受信期限を設定してデータの受信を待つ。データ受信期限までにデータを受信した場合(S2でYES)は、ステップS4に進む。なお、S2で受信するデータは、データ送信装置100からのエンコードデータに限らない。データ受信期限までにデータを受信しない場合(S2でNO、S3でYES)は、ステップS8に進む。
ステップS4では、データ受信部2011は、受信したエンコードデータのシーケンス番号を調べて、データの欠落の有無を判定する。つまり、新たに受信したエンコードデータのシーケンス番号が、前回受信したエンコードデータのシーケンス番号の次の番号でなければ、データ受信部2011は、データの欠落が発生したと判定する。
データの欠落があれば(S4でYES)、データ受信部2011は、データの欠落が発生したことをメッセージ生成部2012に通知する。そして、ステップS5にて、メッセージ生成部2012は、欠落したデータの再送を促すためのACKNACKメッセージを生成し、メッセージ送信部2013が当該ACKNACKメッセージを送信する。一方、ステップS4にてデータの欠落がなかった場合(S4でNO)には、ステップS6にて、データ受信部2011は、待ち時間が十分短いか否かを判定する。つまり、データ受信部2011は、ステップS1でデータ受信待ち状態になってからステップS2のデータ受信までの待ち時間が閾値時間よりも短いか否かを判定する。そして、待ち時間が閾値時間よりも短い場合(S6でYES)は、ステップS7に進む。
ステップ7では、データ受信部2011が待ち時間が十分短いことをメッセージ生成部2012に通知し、メッセージ生成部2012が、データ受信部2011が受信済のエンコードデータの一覧を示すACKNACKメッセージを生成し、メッセージ送信部2013が、当該ACKNACKメッセージを送信する。一方、ステップ6で待ち時間が閾値時間以上であれば(S6でNO)、ACKNACKメッセージは送信されない。なお、受信済のエンコードデータの一覧を示すACKNACKメッセージをデータ送信装置100に送信することで、データ送信装置100ではデータ受信装置200で受信済みのエンコードデータを確認することができる。
また、データ受信期限までにエンコードデータが受信されなかった場合(S3でYES)は、ステップS8で送信を促すACKNACKメッセージが送信される。つまり、データ受信部2011が、タイムアウトが発生したことをメッセージ生成部2012に通知し、メッセージ生成部2012が、次に受信すべきエンコードデータを送信するよう促すためのACKNACKメッセージを生成し、メッセージ送信部2013が当該ACKNACKメッセージを送信する。このACKNACKメッセージには、次に受信すべきエンコードデータのシーケンス番号が含まれる。そして、データ受信部2011は、ステップS9にてエンコードデータが届くのを待ち、エンコードデータが届いたらステップS10に移行する。
ステップS10では、データ受信部2011は、エンコードデータのデコード処理を行う。次に、ステップS11において、データ受信部2011は、デコード処理後のデータをデータ処理部202に転送し、ステップS1に戻る。
次に、本実施の形態に係るメッセージ受信部103の動作例を図3を用いて説明する。
ステップS12で、メッセージ受信部103は、ACKNACKメッセージを待ち、ACKNACKメッセージを受信すると、ステップS13でACKNACKメッセージの種別を調べる。
受信したACKNACKメッセージが、欠落データの再送を促すACKNACKメッセージである場合は、メッセージ受信部103は、ステップS14にて、エンコードデータの送信の停止と、欠落データの再送を送信制御部104に指示する。
また、受信したACKNACKメッセージが、データ受信装置200で受信済のエンコードデータの一覧を示すACKNACKメッセージである場合は、メッセージ受信部103は、ステップS15にて、送信間隔の延長を送信制御部104に指示する。
また、受信したACKNACKメッセージが、次のエンコードデータの送信を促すACKNACKメッセージである場合は、メッセージ受信部103は、ステップS16にて、次のエンコードデータの送信を送信制御部104に指示する。ステップS14、S15、S16の動作が終了したら、メッセージ受信部103は、S12に戻り、次のACKNACKメッセージを待つ。
次に、本実施の形態に係る送信制御部104の動作例を図4を用いて説明する。
図4に示す動作手順は、データ送信方法及びデータ送信プログラムの例に相当する。
ステップS111で、データ送信部1042が、ステップS121でインクリメントしたシーケンス番号のエンコードデータを送信する。次に、ステップS112で、送信間隔設定部1041は、メッセージ受信部103からの指示を受け取っているかどうか調べる。メッセージ受信部103から指示を受け取っている場合(S112でYES)は、送信間隔設定部1041は、ステップS113に進んで、指示の種別を調べる。
メッセージ受信部103からの指示が欠落データの再送である場合には、送信間隔設定部1041は、ステップS117に進み、データ送信部1042に欠落データの再送を指示し、データ送信部1042が欠落データを再送する。更に、ステップS118において、送信間隔設定部1041は、送信間隔を延長する。つまり、送信間隔設定部1041は、次のエンコードデータの送信間隔を、現在の送信間隔よりも長い送信間隔に更新する。送信間隔の延長方法は、例えば、現在の送信間隔の10%増しの間隔にすることが考えられる。
そして、ステップS119に移行する。
メッセージ受信部103から欠落データの再送が指示された場合、すなわち、データ受信装置200から欠落データの再送が指示された場合は、エンコードデータの送信間隔が短いためにデータ受信装置200でのデコード処理が間に合わずに、データ欠落が発生した可能性がある。このため、データ受信装置200から欠落データの再送が指示された場合は、送信間隔設定部1041は、エンコードデータの送信間隔を延長する。
メッセージ受信部103からの指示が送信間隔の延長である場合は、送信間隔設定部1041は、ステップS118に進み、前述のように、送信間隔を延長する。
その後、ステップS119に移行する。
メッセージ受信部103からの指示が次のエンコードデータの送信である場合は、送信間隔設定部1041は、ステップS114に進み、メッセージ受信部103から指示されたエンコードデータを送信済みであるかどうかを確認する。具体的には、送信間隔設定部1041は、データ受信装置200から送信されたACKNACKメッセージに示される、データ受信装置200で受信済のエンコードデータの一覧を参照する。そして、当該一覧に、メッセージ受信部103から指示されたエンコードデータが含まれていれば、メッセージ受信部103から指示されたエンコードデータを送信済みであると判断する。一方、当該一覧に、メッセージ受信部103から指示されたエンコードデータが含まれていなければ、メッセージ受信部103から指示されたエンコードデータは未送信であると判断する。メッセージ受信部103から指示されたエンコードデータが未送信であれば(S114でNO)、データ送信部1042が、ステップS115で当該エンコードデータを送信する。そして、ステップS116において、送信間隔設定部1041が、送信間隔を短縮する。つまり、送信間隔設定部1041は、次のエンコードデータの送信間隔を、現在の送信間隔よりも短い送信間隔に更新する。送信間隔の短縮方法は、例えば、現在の送信間隔よりも10%短い間隔にすることが考えられる。
そして、ステップS119に移行する。
ステップS112において、メッセージ受信部103からの指示がない場合は、処理はS119に移行する。
ステップS119では、データ送信部1042は、送信時刻まで待機する。そして、送信時刻になったら、ステップS120において、データ送信部1042は、次に送信するエンコードデータをデータ蓄積部102から取得する。次に、ステップS121において、データ送信部1042は、当該エンコードデータに付加するシーケンス番号を、現在のシーケンス番号のインクリメントにより取得する。そして、ステップS111において、データ送信部1042は、S121で得られたシーケンス番号を付加してエンコードデータをデータ受信装置200に送信する。
前述したように、最初の送信間隔は、記憶部105で記憶されているエンコード所要時間である。そして、データ受信装置200から次のデータの送信を要求された場合(図2のS8)は、送信間隔設定部1041は、送信間隔を短くする(図4のS116)。
また、データ受信装置200において待ち時間が短いと判断された場合(図2のS6でYES、S7)及びデータ受信装置200においてデータ欠落が発生している場合(図2のS4でYES、S5)は、送信間隔設定部1041は、送信間隔を長くする(図4のS118)。送信間隔の延長方法、短縮方法は、前述したように、現在の送信間隔よりも10%長い送信間隔、10%短い送信間隔とすることが考えられる。また、データ受信装置200におけるデータ受信状況によっては、送信間隔を延長した後に送信間隔を短縮する場合、送信間隔を短縮した後に送信間隔を延長する場合もある。このような場合には、送信間隔設定部1041は、メッセージ受信部103からの指示があった際の送信間隔とその1つ前の送信間隔の中間の間隔を設定することが考えられる。
***実施の形態の効果の説明****
このように、本実施の形態では、データ受信装置のデコード所要時間と同視できるエンコード所要時間をエンコードデータの送信間隔に設定し、設定した送信間隔でエンコードデータをデータ受信装置に送信する。このため、本実施の形態によれば、適切な送信間隔を設定することができ、適切な送信間隔でエンコードデータを送信することができる。
また、受信側において、1回の処理が終了したときに次のデータが届いていた場合に、送信間隔を延ばすよう指示することにより、データの欠落を防止することが可能となる。さらに、データ受信の待ち時間が発生した場合にはデータの送信を促すことにより、データ蓄積部に蓄積されているデータの送信完了までの時間を短縮することが可能となる。また、デフォルトの送信間隔をエンコード所要時間とすることにより、少なくともデータを受信してからデコードが終わるまでの時間だけ間隔が空いているため、連続的にデータを転送する場合と比べてデータの欠落を防ぐことが可能である。
なお、以上では、データ受信装置200におけるデコード所要時間とデータ送信装置100におけるエンコード所要時間が同じであることを前提として、エンコード所要時間を送信間隔のデフォルト値とする例を説明した。データ受信装置200におけるデコード所要時間とデータ送信装置100におけるエンコード所要時間とが異なる場合は、デコード所要時間を記憶部105に記憶しておき、送信間隔設定部1041は、エンコード所要時間ではなく、デコード所要時間を送信間隔のデフォルト値に設定する。
実施の形態2.
本実施の形態では、エンコードデータのデータサイズが十分に小さい場合には、複数のエンコードデータを1つにまとめることにより、連続的なデータ送信を防ぎ、データの欠落なくデータの送受信を実現する構成を説明する。
実施の形態1では、送信間隔が短い場合に送信間隔を延長するようにしたものであるが、本実施の形態では、エンコードデータを結合し、1回のエンコードデータの受信時のデコード処理の時間を延ばすことによりデータの欠落を防止する。
本実施の形態におけるデータ送信装置100及びデータ受信装置200の機能構成例は、図1に示すものと同一である。本実施の形態における受信制御部201の動作、メッセージ受信部103の動作は実施の形態1で示した図2及び図3と同一であり、説明を省略する。以下では、本実施の形態における送信制御部104の動作例を図5を用いて説明する。
図5では、図4と比較して、図4のステップS118がステップS21に変更され、図4のS121が不要となっている。次に、ステップS21の動作の詳細を図6を用いて説明する。
ステップS201において、送信間隔設定部1041は、データ結合数の初期値を1として、現在のデータ結合数を取得する。送信間隔設定部1041は、例えば、現在のデータ結合数をカウントしているカウンタから、現在のデータ結合数を取得する。次に、ステップS202において、送信間隔設定部1041は、ステップS201で取得したデータ結合数に1加えた値にデータサイズを乗算して得られる値(候補送信データサイズという)が65515バイトを超えるかどうかを判定する。65515バイトは、IP(Internet Protocol)パケットで扱える最大のバイト数である。
ステップS202で候補送信データサイズが65515バイトを超える場合(S202でYES)は、送信間隔設定部1041は、ステップS205に進み、ステップS201で取得したデータ結合数分のエンコードデータを結合する。
一方、ステップS202で候補送信データサイズが65515バイトを超えない場合(S202でNO)は、送信間隔設定部1041は、ステップS203に進み、候補送信データサイズが閾値以下であるか否かを判定する。ここでいう閾値とは、エンコードに要する時間がデータの送信時間を上回る場合のデータサイズであることが望ましく、例えば4キロバイトなどが考えられる。
ステップS203で候補送信データサイズが閾値以下である場合(S203でYES)は、送信間隔設定部1041は、ステップS204に進み、S206で求めたシーケンス番号+1のエンコードデータから前回結合分+1(S201で取得したデータ結合数+1)のエンコードデータを結合する。一方、ステップS203で候補送信データサイズが閾値よりも大きい場合(S203でNO)は、送信間隔設定部1041は、ステップS205に進み、ステップS201で取得したデータ結合数分のエンコードデータを結合する。
ステップS206では、データ送信部1042が、ステップS204又はステップS205で結合されたエンコードデータの個数分だけシーケンス番号をインクリメントする。次に、ステップS207において、送信間隔設定部1041が、ステップS204又はステップS205で結合されたエンコードデータの個数分だけ送信間隔を変更する。つまり、送信間隔設定部1041は、ステップS204又はステップS205で結合されたエンコードデータの個数とエンコード処理時間とを乗算して得られる時間に相当する送信間隔に更新する。
図5のS119において、データ送信部1042は、図6のS207で更新された送信間隔の間待機する。また、図5のS111において、データ送信部1042は、図6のS204又はS205で結合されたエンコードデータを送信する。
このように、本実施の形態では、送信間隔設定部1041は、データ受信装置200から、データ受信装置200で受信済みのエンコードデータを通知するメッセージを受信した場合、及び、エンコードデータの欠落が発生したことを通知するメッセージを受信した場合の少なくともいずれかにおいて、エンコードデータの個数を増やす。つまり、送信間隔設定部1041は、データ送信部1042が一度の送信タイミングに送信するエンコードデータの個数として、現在、データ送信部1042が一度の送信タイミングに送信しているエンコードデータの個数よりも多い個数を選択する(図6のS204)。そして、送信間隔設定部1041は、選択したエンコードデータの個数とエンコード処理時間とを乗算して得られる時間に相当する送信間隔に更新する(図6のS207)。また、本実施の形態では、データ送信部1042は、送信間隔設定部1041により更新された送信間隔で(図5のS119)、送信間隔設定部1041により選択された個数分のエンコードデータをデータ受信装置200に送信する(図5のS111)。
このように、本実施の形態では、エンコードデータを結合して送信するエンコードデータのサイズを大きくすることによって送信間隔を広げることができるため、特に送信するエンコードデータのサイズが小さい場合において、データ欠落の可能性を低減することが可能となる。
***付記***
以上の実施の形態1及び2では、データ送信装置100でデータをエンコードし、データ受信装置200でエンコードデータをデコードする例を説明している。
なお、実施の形態1及び2に記載の方式は、データ送信装置100でデータに圧縮処理を行い、データ受信装置200で圧縮処理後のデータを拡張する場合にも、適用可能である。
また、実施の形態1及び2に記載の方式は、データ送信装置100でデータに暗号等のセキュリティ処理を行い、データ受信装置200でセキュリティ処理を解除する場合にも、適用可能である。
***ハードウェア構成の説明***
最後に、データ送信装置100及びデータ受信装置200のハードウェア構成の補足説明を行う。
データ送信装置100及びデータ受信装置200はコンピュータである。
図7に示すプロセッサ901、904は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ901、904は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
図7に示す記憶装置902、905は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)等である。
図7に示す通信装置903、906は、データを受信するレシーバー及びデータを送信するトランスミッターを含む。通信装置903、906は、例えば、通信チップ又はNIC(Network Interface Card)である。通信装置903は、図1に示すメッセージ受信部103、データ送信部1042の物理層に対応する。通信装置906は、データ受信部2011、メッセージ送信部2013の物理層に対応する。
また、記憶装置902、905には、OS(Operating System)も記憶されている。そして、OSの少なくとも一部がプロセッサ901、904に実行される。プロセッサ901はOSの少なくとも一部を実行しながら、データ生成部101、メッセージ受信部103、送信制御部104の機能を実現するプログラムを実行する。また、プロセッサ904はOSの少なくとも一部を実行しながら、受信制御部201、データ処理部202の機能を実現するプログラムを実行する。
図7では、データ送信装置100及びデータ受信装置200のそれぞれで、1つのプロセッサが図示されているが、データ送信装置100及びデータ受信装置200が複数のプロセッサを備えていてもよい。
また、データ生成部101、メッセージ受信部103の処理の結果を示す情報やデータや信号値や変数値が、記憶装置902、又は、プロセッサ901内のレジスタ又はキャッシュメモリに記憶される。同様にして、受信制御部201、データ処理部202の処理の結果を示す情報やデータや信号値や変数値が、記憶装置905、又は、プロセッサ904内のレジスタ又はキャッシュメモリに記憶される。
また、データ生成部101、メッセージ受信部103、受信制御部201、データ処理部202の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の記憶媒体に記憶される。
また、データ生成部101、メッセージ受信部103、受信制御部201、データ処理部202を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。「回路」は、プロセッサ901、904だけでなく、ロジックIC又はGA(Gate Array)又はASIC(Application Specific Integrated Circuit)又はFPGA(Field−Programmable Gate Array)といった他の種類の処理回路をも包含する概念である。
100 データ送信装置、101 データ生成部、102 データ蓄積部、103 メッセージ受信部、104 送信制御部、1041 送信間隔設定部、1042 データ送信部、105 記憶部、200 データ受信装置、201 受信制御部、2011 データ受信部、2012 メッセージ生成部、2013 メッセージ送信部、202 データ処理部。

Claims (13)

  1. エンコード処理されたエンコードデータを、前記エンコードデータを受信し前記エンコードデータのデコード処理を行うデータ受信装置に送信するデータ送信装置であって、
    エンコード処理を行ってエンコードデータを生成するデータ生成部と、
    前記データ受信装置でのデコード処理に要するデコード所要時間と同じ長さである、前記エンコード処理に要するエンコード所要時間を記憶する記憶部と、
    前記記憶部で記憶されている前記エンコード所要時間を、エンコードデータの送信間隔に設定する送信間隔設定部と、
    前記送信間隔設定部により設定された送信間隔で、エンコードデータを前記データ受信装置に送信するデータ送信部とを有するデータ送信装置。
  2. エンコード処理されたエンコードデータを、前記エンコードデータを受信し前記エンコードデータのデコード処理を行うデータ受信装置に送信するデータ送信装置であって、
    前記データ受信装置でのデコード処理に要するデコード所要時間を記憶する記憶部と、
    前記記憶部で記憶されている前記デコード所要時間をエンコードデータの送信間隔のデフォルト値にして、前記データ受信装置でのエンコードデータの受信状況に基づき、エンコードデータの送信間隔を更新する送信間隔設定部と、
    前記送信間隔設定部により更新された送信間隔で、エンコードデータを前記データ受信装置に送信するデータ送信部とを有するデータ送信装置。
  3. 前記送信間隔設定部は、
    前記データ受信装置から、前記データ受信装置で受信済みのエンコードデータを通知するメッセージを受信した場合、及び、エンコードデータの欠落が発生したことを通知するメッセージを受信した場合の少なくともいずれかにおいて、現在の送信間隔よりも長い送信間隔に更新する請求項に記載のデータ送信装置。
  4. 前記送信間隔設定部は、
    前記データ受信装置から、エンコードデータの送信を要求するメッセージを受信した場合に、現在の送信間隔よりも短い送信間隔に更新する請求項に記載のデータ送信装置。
  5. 前記送信間隔設定部は、
    前記データ受信装置から、前記データ受信装置で受信済みのエンコードデータを通知するメッセージを受信した場合、及び、エンコードデータの欠落が発生したことを通知するメッセージを受信した場合の少なくともいずれかにおいて、前記データ送信部が一度の送信タイミングに送信するエンコードデータの個数として、現在、前記データ送信部が一度の送信タイミングに送信しているエンコードデータの個数よりも多い個数を選択し、選択したエンコードデータの個数と前記デコード所要時間とを乗算して得られる時間に相当する送信間隔に更新し、
    前記データ送信部は、
    前記送信間隔設定部により更新された送信間隔で、前記送信間隔設定部により選択された個数分のエンコードデータを前記データ受信装置に送信する請求項に記載のデータ送信装置。
  6. データ送信装置から送信されたデータを受信するデータ受信部と、
    前記データ受信部がデータ受信待ち状態になった後にデータ受信期限までに前記データ送信装置からのデータを受信しなかった場合に、前記データ送信装置にデータの送信を要求する第1のメッセージを生成し、前記データ受信部が前記データ受信待ち状態になった後に前記データ受信期限までに前記データ送信装置からのデータを受信した場合であって、前記データ受信部が前記データ受信待ち状態になってから前記データ送信装置からのデータを受信するまでの時間が閾値時間よりも短い場合に、前記データ受信部が前記データ送信装置から受信済みのデータを通知する第2のメッセージを生成するメッセージ生成部と、
    前記メッセージ生成部により生成された前記第1のメッセージ及び前記第2のメッセージのいずれかを前記データ送信装置に送信するメッセージ送信部とを有するデータ受信装置。
  7. 前記メッセージ生成部は、
    データの欠落があった場合に、データの欠落を通知する第3のメッセージを生成し、
    前記メッセージ送信部は、
    前記メッセージ生成部により生成された前記第3のメッセージを前記データ送信装置に送信する請求項に記載のデータ受信装置。
  8. エンコード処理されたエンコードデータを、前記エンコードデータを受信し前記エンコードデータのデコード処理を行うデータ受信装置に送信するコンピュータが、エンコード処理を行ってエンコードデータを生成するデータ生成ステップと、
    前記コンピュータが、前記データ受信装置でのデコード処理に要するデコード所要時間と同じ長さである、前記エンコード処理に要するエンコード所要時間を、エンコードデータの送信間隔に設定する送信間隔設定ステップと、
    前記コンピュータが、前記送信間隔設定ステップにより設定された送信間隔で、エンコードデータを前記データ受信装置に送信するデータ送信ステップとを有するデータ送信方法。
  9. エンコード処理されたエンコードデータを、前記エンコードデータを受信し前記エンコードデータのデコード処理を行うデータ受信装置に送信するコンピュータが、前記データ受信装置でのデコード処理に要するデコード所要時間をエンコードデータの送信間隔のデフォルト値にして、前記データ受信装置でのエンコードデータの受信状況に基づき、エンコードデータの送信間隔を更新する送信間隔設定ステップと、
    前記コンピュータが、前記送信間隔設定ステップにより更新された送信間隔で、エンコードデータを前記データ受信装置に送信するデータ送信ステップとを有するデータ送信方法。
  10. コンピュータが、データ送信装置から送信されたデータを受信するデータ受信ステップと、
    前記データ受信ステップにてデータ受信待ち状態が生じた後にデータ受信期限までに前記データ送信装置からのデータが受信されなかった場合に、前記データ送信装置にデータの送信を要求する第1のメッセージを前記コンピュータが生成し、前記データ受信ステップにて前記データ受信待ち状態が生じた後に前記データ受信期限までに前記データ送信装置からのデータが受信された場合であって、前記データ受信ステップにて前記データ受信待ち状態が生じてから前記データ送信装置からのデータが受信されるまでの時間が閾値時間よりも短い場合に、前記データ送信装置から受信済みのデータを通知する第2のメッセージを前記コンピュータが生成するメッセージ生成ステップと、
    前記メッセージ生成ステップにより生成された前記第1のメッセージ及び前記第2のメッセージのいずれかを前記コンピュータが前記データ送信装置に送信するメッセージ送信ステップとを有するデータ受信方法。
  11. エンコード処理されたエンコードデータを、前記エンコードデータを受信し前記エンコードデータのデコード処理を行うデータ受信装置に送信するコンピュータに、
    エンコード処理を行ってエンコードデータを生成するデータ生成ステップと、
    前記データ受信装置でのデコード処理に要するデコード所要時間と同じ長さである、前記エンコード処理に要するエンコード所要時間を、エンコードデータの送信間隔に設定する送信間隔設定ステップと、
    前記送信間隔設定ステップにより設定された送信間隔で、エンコードデータを前記データ受信装置に送信するデータ送信ステップとを実行させるデータ送信プログラム。
  12. エンコード処理されたエンコードデータを、前記エンコードデータを受信し前記エンコードデータのデコード処理を行うデータ受信装置に送信するコンピュータに、
    前記データ受信装置でのデコード処理に要するデコード所要時間をエンコードデータの送信間隔のデフォルト値にして、前記データ受信装置でのエンコードデータの受信状況に基づき、エンコードデータの送信間隔を更新する送信間隔設定ステップと、
    前記送信間隔設定ステップにより更新された送信間隔で、エンコードデータを前記データ受信装置に送信するデータ送信ステップとを実行させるデータ送信プログラム。
  13. データ送信装置から送信されたデータを受信するデータ受信ステップと、
    前記データ受信ステップにてデータ受信待ち状態が生じた後にデータ受信期限までに前記データ送信装置からのデータが受信されなかった場合に、前記データ送信装置にデータの送信を要求する第1のメッセージを生成し、前記データ受信ステップにて前記データ受信待ち状態が生じた後に前記データ受信期限までに前記データ送信装置からのデータが受信された場合であって、前記データ受信ステップにて前記データ受信待ち状態が生じてから前記データ送信装置からのデータが受信されるまでの時間が閾値時間よりも短い場合に、前記データ送信装置から受信済みのデータを通知する第2のメッセージを生成するメッセージ生成ステップと、
    前記メッセージ生成ステップにより生成された前記第1のメッセージ及び前記第2のメッセージのいずれかを前記データ送信装置に送信するメッセージ送信ステップとをコンピュータに実行させるデータ受信プログラム。
JP2015156973A 2015-08-07 2015-08-07 データ送信装置及びデータ受信装置及びデータ送信方法及びデータ受信方法及びデータ送信プログラム及びデータ受信プログラム Expired - Fee Related JP6452573B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015156973A JP6452573B2 (ja) 2015-08-07 2015-08-07 データ送信装置及びデータ受信装置及びデータ送信方法及びデータ受信方法及びデータ送信プログラム及びデータ受信プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015156973A JP6452573B2 (ja) 2015-08-07 2015-08-07 データ送信装置及びデータ受信装置及びデータ送信方法及びデータ受信方法及びデータ送信プログラム及びデータ受信プログラム

Publications (2)

Publication Number Publication Date
JP2017038132A JP2017038132A (ja) 2017-02-16
JP6452573B2 true JP6452573B2 (ja) 2019-01-16

Family

ID=58048766

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015156973A Expired - Fee Related JP6452573B2 (ja) 2015-08-07 2015-08-07 データ送信装置及びデータ受信装置及びデータ送信方法及びデータ受信方法及びデータ送信プログラム及びデータ受信プログラム

Country Status (1)

Country Link
JP (1) JP6452573B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7067956B2 (ja) * 2017-03-08 2022-05-16 株式会社東芝 中継装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0810933B2 (ja) * 1987-12-28 1996-01-31 三菱電機株式会社 画像符号化伝送方式

Also Published As

Publication number Publication date
JP2017038132A (ja) 2017-02-16

Similar Documents

Publication Publication Date Title
CN110582760B (zh) 用于提供消息编码/解码作为服务的方法、系统和计算机可读介质
WO2018196491A1 (zh) 上行数据解压缩、压缩的方法和装置
US10341469B2 (en) Data transmission method and apparatus and data receiving method and apparatus
US20090316581A1 (en) Methods, Systems and Computer Program Products for Dynamic Selection and Switching of TCP Congestion Control Algorithms Over a TCP Connection
CN108432194B (zh) 一种拥塞处理的方法、主机及系统
US20060268710A1 (en) Detecting change in a transport protocol window size without data transmission
US9356780B2 (en) Device, method, and system for encrypted communication by using encryption key
US10348680B2 (en) UDP-based control command transmission method, sender and receiver
WO2015154475A1 (zh) 一种数据处理方法、装置及具备相应装置的计算机
KR101607773B1 (ko) 데이터 송신 장치 및 이를 이용하는 데이터 통신 방법
US9692560B1 (en) Methods and systems for reliable network communication
US11677515B2 (en) Retransmission control device, method, and computer readable medium for time sensitive network communications
US10917446B2 (en) Communication apparatus, communication method, and storage medium
JP6452573B2 (ja) データ送信装置及びデータ受信装置及びデータ送信方法及びデータ受信方法及びデータ送信プログラム及びデータ受信プログラム
US11444882B2 (en) Methods for dynamically controlling transmission control protocol push functionality and devices thereof
FI3596602T3 (fi) Häiritsemätön tuki kolmannen osapuolen liikenneseurannalle
WO2017071430A1 (zh) 处理报文的方法、网卡及系统、更新信息的方法及主机
WO2015107653A1 (ja) 通信装置、通信方法、および、通信プログラム
CN111385278B (zh) 一种报文转发方法及装置
US10334055B2 (en) Communication layer with dynamic multi-session management
US11005767B2 (en) Method, device and computer program product for data processing
WO2016056210A1 (ja) サーバ、フロー制御方法および仮想スイッチ用プログラム
US10911983B2 (en) Packet load generation device and packet load generation method
JP2015165349A (ja) 一次応答装置、制御方法及びコンピュータプログラム
WO2019114586A1 (zh) 信息传输的方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170822

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180727

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: 20181113

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181211

R150 Certificate of patent or registration of utility model

Ref document number: 6452573

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees