(57)【要約】【課題】通信品質を向上させること。【解決手段】データの転送に関する通信品質に基づいて、通信経路の冗長化の要否と前記データの圧縮度とを判定する判定手順と、転送対象のデータを、前記判定手順において判定された圧縮度に応じて圧縮する圧縮手順と、前記判定手順において通信経路の冗長化が必要であると判定されると、前記通信経路を冗長化し、各通信経路に前記データを送信する送信手順と、をコンピュータが実行する。【選択図】図４
2019145878.tif 000002
【特許請求の範囲】
【請求項１】
データの転送に関する通信品質に基づいて、通信経路の冗長化の要否と前記データの圧縮度とを判定する判定手順と、
転送対象のデータを、前記判定手順において判定された圧縮度に応じて圧縮する圧縮手順と、
前記判定手順において通信経路の冗長化が必要であると判定されると、前記通信経路を冗長化し、各通信経路に前記データを送信する送信手順と、
をコンピュータが実行することを特徴とするデータ転送方法。
【請求項２】
前記圧縮手順は、データ間の差分に基づく圧縮を行い、
前記圧縮度は、差分の基準となるデータの間隔である、
ことを特徴とする請求項１記載のデータ転送方法。
【請求項３】
前記判定手順は、前記転送におけるスループットの変化量が閾値以下である場合に、圧縮度を増加させる、
ことを特徴とする請求項１又は２記載のデータ転送方法。
【請求項４】
前記判定手順は、前記転送におけるデータの損失率が閾値を超える場合に、通信経路の冗長化が必要であると判定する、
ことを特徴とする請求項１乃至３いずれか一項記載のデータ転送方法。
【請求項５】
前記判定手順は、通信経路が冗長化されている場合、通信品質に基づいて通信経路の削減の要否を判定し、
前記送信手順は、前記判定手順において通信経路の削減が必要であると判定されると、冗長化されている通信経路を削減してデータを送信する、
ことを特徴とする請求項１乃至４いずれか一項記載のデータ転送方法。
【請求項６】
データの転送に関する通信品質に基づいて、通信経路の冗長化の要否と前記データの圧縮度とを判定する判定部と、
転送対象のデータを、前記判定部によって判定された圧縮度に応じて圧縮する圧縮部と、
前記判定部によって通信経路の冗長化が必要であると判定されると、前記通信経路を冗長化し、各通信経路に前記データを送信する送信部と、
を有することを特徴とするデータ転送装置。
【請求項７】
請求項１乃至５いずれか一項記載のデータ転送方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送方法、データ転送装置及びプログラムに関する。
【背景技術】
【０００２】
ドローンやロボットアームを制御するために、関節の角度情報や移動の速度情報など制御情報データが数ミリ秒〜十数ミリ秒オーダーの短い時間間隔で双方向に転送されていることが確認されている。また、映像や音声などの解析結果（例えば、映像内にいる人の数）としての数値データを生成するカメラなどのデバイスが登場しており、短い時間間隔で、映像や音声が解析され、解析結果である数値データが転送されることが予想される。
【０００３】
上記のように転送される前後のデータを比較すると重複している部分が多く存在することが多い。一方で、デバイス毎にやり取りされるべき情報は異なるため、映像や音声のように共通的なフォーマットを想定してコーデックを構成することは困難であると予想され、各デバイス毎の情報圧縮方法を作るのは開発コストがかかることが懸念される。但し、ＩｏＴデバイスの制御という観点では、到達の信頼性および遅延の低減化が必要である。
【０００４】
単一のパスのみだと遅延が大きく到達性が悪いため、ＭＰＴＣＰ（MultiPath TCP）（非特許文献１）、又はＭＰＲＴＰ（Multipath RTP）（非特許文献２）やキャリアアグリゲーション等を利用することが考えられる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】ｒｆｃ６８２４
【非特許文献２】ｄｒａｆｔ−ｓｉｎｇｈ−ａｖｔｃｏｒｅ−ｍｐｒｔｐ−０８
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ＭＰＴＣＰは全ての通信路に対して複製データを送るため通信効率が悪い、また従来技術のＭＰＲＴＰやキャリアアグリゲーションは、経路は冗長化されているがデータを複製していないため遅延が大きく到達性が悪いという問題がある。
【０００７】
本発明は、上記の点に鑑みてなされたものであって、通信品質を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
そこで上記課題を解決するため、データの転送に関する通信品質に基づいて、通信経路の冗長化の要否と前記データの圧縮度とを判定する判定手順と、転送対象のデータを、前記判定手順において判定された圧縮度に応じて圧縮する圧縮手順と、前記判定手順において通信経路の冗長化が必要であると判定されると、前記通信経路を冗長化し、各通信経路に前記データを送信する送信手順と、をコンピュータが実行する。
【発明の効果】
【０００９】
通信品質を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態の概要を説明するための図である。
【図２】本発明の実施の形態における送信装置１０のハードウェア構成例を示す図である。
【図３】本発明の実施の形態における送信装置１０及び受信装置２０の機能構成例を示す図である。
【図４】送信制御部１１が実行する処理手順の一例を説明するための図である。
【図５】データの圧縮及び復号の一例を説明するための図である。
【図６】本発明の実施の形態における送信装置１０及び受信装置２０の第２の機能構成例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態の概要を説明するための図である。図１において、送信装置１０は、例えば、デバイスの制御情報等を含むデータを短い時間間隔で送信するデバイス又はサーバ等のコンピュータである。受信装置２０は、当該データを受信するデバイス又はサーバ等のコンピュータである。
【００１２】
図１において、（１）は、送信装置１０と受信装置２０との間のデータ転送が安定している場合のデータ転送を示す。この場合、１つの通信経路によって、本来のデータ量（データが圧縮されない状態）でデータの転送が行われる。なお、送信装置１０から受信装置２０への矢印上の矩形のサイズは、例えば、１つのパケットのペイロード部のデータ量を示す。
【００１３】
（２）は、送信装置１０と受信装置２０との間のデータ転送が不安定な場合のデータ転送を示す。データ転送が不安定とは、スループットが一定でなかったり、パケットロスが多かったり、ジッタが大きかったりする状態をいう。
【００１４】
この場合、図中の（ａ）〜（ｃ）に示される工夫が行われる。（ａ）〜（ｃ）の意味は、以下の通りである。
（ａ）キーデータからの差分のみを転送すること（以下、「データ間圧縮」という。）で通信量を削減する。なお、キーデータとは、データ間の差分を抽出する際に基準となるデータであり、圧縮されないデータをいう。すなわち、キーデータは、例えば、映像データにおけるキーフレーム（Ｈ．２６４ではＩフレーム）の位置付けに相当するデータである。
（ｂ）キーデータの送出間隔が長いとパケットを損失した際にデータが到達せず、受信装置２０の動作が不安定化するため、通信経路及びデータ（ストリーム）を冗長化することで到達性を向上させる。データの冗長化とは、各通信経路に対してデータの複製（すなわち、同じデータ）を送出することをいう。
（ｃ）冗長化したデータの中で最初に到着したデータを選択することで低遅延化を図る。
【００１５】
上記のように、本実施の形態では、データの転送が不安定な場合、パケットが溢れてしまうためにデータ間圧縮をすることで通信量を削減するとともに、データ間圧縮をするとパケット損失の影響を受けやすいため通信経路及びデータが冗長化される。このように、不安定なデータ転送についてデータ間圧縮、通信経路及びデータの冗長化を調整することで、効率的通信、高い到達の信頼性、低遅延化を実現する。
【００１６】
図２は、本発明の実施の形態における送信装置１０のハードウェア構成例を示す図である。図２の送信装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００１７】
送信装置１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１８】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って送信装置１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。なお、送信装置１０は、複数の通信経路と接続可能とするため、複数のインタフェース装置１０５を有する。
【００１９】
なお、受信装置２０も図２に示されるハードウェア構成を有する。
【００２０】
図３は、本発明の実施の形態における送信装置１０及び受信装置２０の機能構成例を示す図である。図３において、送信装置１０は、送信制御部１１、パケタイズ部１２、圧縮部１３及び経路分岐部１４等を有する。これら各部は、送信装置１０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。受信装置２０は、受信制御部２１、経路統合部２２、復号部２３及びデパケタイズ部２４等を有する。これら各部は、受信装置２０にインストールされた１以上のプログラムが、受信装置２０のＣＰＵに実行させる処理により実現される。
【００２１】
送信制御部１１は、受信制御部２１から、例えば、ＲＴＣＰ（Real-time Transport Control）等によって送信される、データの転送に関する通信品質のフィードバックに基づいて、通信経路の冗長化の要否又は通信経路の削減の要否と、キーデータの間隔（圧縮度）を調整（判定）する。送信制御部１１は、通信経路の冗長化又は削減が必要であると判定すると、通信経路の冗長化又は削減が必要であることを経路分岐部１４へ通知する。送信制御部１１は、また、圧縮度を圧縮部１３へ通知する。
【００２２】
パケタイズ部１２は、送信対象（転送対象）のデータ群について、例えば、ＲＴＰ（Real-time Transport Protocol）等のプロトコルに対応したパケットを生成する。
【００２３】
圧縮部１３は、各パケットのペイロード部について、キーデータとされるパケットのペイロード部との差分に基づいてデータ間圧縮する。圧縮部１３は、送信制御部１１から通知された圧縮度の間隔（パケット数）ごとのパケットを、キーデータとし、当該パケットのヘッド等に、キーデータであることを示す符号を付与する。例えば、ＲＴＰが利用される場合、キーデータに係るパケットのＲＴＰヘッダのｍａｒｋフィールドにフラグが立てられてもよい。
【００２４】
経路分岐部１４は、送信制御部１１からの通知に応じ、通信経路の冗長化又は削減を行い、各通信経路に対して各パケットを複製して送出する。すなわち、通信経路のみならず、データも冗長化される。
【００２５】
経路統合部２２は、送信装置１０から送信されるデータ（パケット）を受信する。通信経路が冗長化されている場合、経路統合部２２は、重複するパケットを間引く（破棄する）ことで、複数の通信経路からのパケットが重複しないように統合する。例えば、重複するパケットのうち、２番目以降に受信されたパケットが破棄されるようにしてもよい。経路統合部２２は、また、各通信経路の通信品質情報（ジッタ、データ損失率、スループット等）を受信制御部２１へ通知（レポート）する。
【００２６】
復号部２３は、パケットの順序の逆転等を解消し、データ間圧縮によって圧縮されたパケット（ペイロード部）を復号（解凍）する。
【００２７】
デパケタイズ部２４は、パケット群からデータを復元する。
【００２８】
受信制御部２１は、例えば、送信制御部１１からの通信経路の冗長化又は削減の通知に応じ、通信経路の冗長化又は削減を経路統合部２２へ通知する。受信制御部２１は、また、経路統合部２２からの通信品質情報（ジッタ、データ損失率、スループット等）を、例えば、ＲＴＣＰ等のプロトコルに基づいて送信制御部１１へ送信する。
【００２９】
以下、送信制御部１１が実行する処理手順について説明する。図４は、送信制御部１１が実行する処理手順の一例を説明するための図である。図４における各記号の意味は、以下の通りである。
ｌ：受信制御部２１より通知された全経路を総合したデータ損失率
ｊ：受信制御部２１より通知された全経路を総合したジッタ
ａ：受信制御部２１より通知された全経路を総合したスループット（ｂｐｓ）
Δａ：ａの変化量の絶対値
ｓ：状態（ｓ＝｛０，１，２｝）
ｌｔｈ＿ｍａｘ：データ損失率の上限閾値
ｌｔｈ＿ｍｉｎデータ損失率の下限閾値
Δａｔｈ：ａの変化量に対する閾値
Ｉ：圧縮度（キーデータインターバル）
Ｎ：通信経路数
送信制御部１１は、受信制御部２１から送信された通信品質情報（データ損失率ｌ、ジッタｊ、スループットａ等）を受信すると（Ｓ１０１でＹｅｓ）、状態ｓが０（通常状態）であるか否かを判定する（Ｓ１０２）。
【００３０】
状態ｓが０である場合（Ｓ１０２でＹｅｓ）、送信制御部１１は、データ損失率ｌが、上限閾値ｌｔｈ＿ｍａｘ以下であるか否かを判定する（Ｓ１０３）。データ損失率ｌが、上限閾値ｌｔｈ＿ｍａｘ以下である場合（Ｓ１０３でＹｅｓ）、送信制御部１１は、データ損失率ｌが、下限閾値ｌｔｈ＿ｍｉｎを超えるか、又は通信経路数Ｎが１であるかという条件（以下、「条件Ａ」という。）が満たされるか否かを判定する（Ｓ１０４）。条件Ａが満たされる場合（Ｓ１０４でＹｅｓ）、ステップＳ１０１へ戻る。条件Ａが満たされない場合（Ｓ１０４でＮｏ）、送信制御部１１は、状態ｓを２に変更し（Ｓ１０５）、ステップＳ１０１へ戻る。状態ｓが２である状態は、冗長経路を削減するフェーズを意味する。
【００３１】
一方、ステップＳ１０３において、データ損失率ｌが、上限閾値ｌｔｈ＿ｍａｘを超える場合（Ｓ１０３でＮｏ）、送信制御部１１は、通信経路及びデータの冗長化を経路分岐部１４へ指示する（Ｓ１０６）。その結果、経路分岐部１４は、通信経路（例えば、送信用のソケット）を１つ増加（冗長化）させ、増加した通信経路に対しても、データの複製を送出する。冗長化された通信経路は、送信装置１０において、既存の通信経路と異なるＩＰアドレス（すなわち、異なるインタフェース装置１０５）に割り当てられてもよい。また、通信経路の冗長化（増加）は、経路分岐部１４から経路統合部２２へ通知されてもよいし、送信制御部１１から受信制御部２１を経て、受信装置２０（経路統合部２２）へ通知されてもよい。通信経路の冗長化の通知を受けた経路統合部２２は、冗長化された通信経路に対応させて受信用のソケットを開設する。当該ソケットは、受信装置２０において、既存の通信経路と異なるＩＰアドレス（すなわち、異なるインタフェース装置）に割り当てられてもよい。
【００３２】
続いて、送信制御部１１は、状態ｓを１に変更する（Ｓ１０７）。状態ｓが１である状態は、通信経路数を変化させた際に圧縮度を上げるフェーズを意味する。続いて、送信制御部１１は、通信経路数Ｎに１を加算する。
【００３３】
また、ステップＳ１０２において、状態ｓが０でない場合（Ｓ１０２でＮｏ）、送信制御部１１は、状態ｓが１であるか否かを判定する（Ｓ１０９）。状態ｓが１である場合（ＳＳ１０９でＹｅｓ）、送信制御部１１は、スループットａの変化量の絶対値Δａが、閾値Δａｔｈより大きいか否かを判定する（Ｓ１１０）。なお、Δａは、前回の通信品質情報受信時からのスループットａの変化量であってもよいし、一定時間におけるスループットａの変化量であってもよい。変化量の絶対値Δａが、閾値Δａｔｈより大きい場合（Ｓ１１０でＹｅｓ）、送信制御部１１は、状態ｓを０に変更し（Ｓ１１１）、ステップＳ１０１へ戻る。変化量の絶対値Δａが、閾値Δａｔｈ以下である場合（Ｓ１１０でＹｅｓ）、送信制御部１１は、圧縮度Ｉに１を加算し、加算後の圧縮度Ｉを圧縮部１３へ通知して（Ｓ１１２）、ステップＳ１０１へ戻る。この場合、圧縮部１３は、新たに通知された圧縮度（キーデータインターバル）で圧縮を行う。すなわち、スループットが安定している場合に、圧縮度が上げられる。
【００３４】
一方、ステップＳ１０９において、状態ｓが２である場合（Ｓ１０９でＮｏ）、通信経路ごとのデータ損失率が最高である通信経路の削除（閉鎖）を経路分岐部１４へ指示する（Ｓ１１３）。なお、受信制御部２１から通知される通信品質情報には、全通信経路（すなわち、冗長化された通信経路も含む通信経路）を総合した値の他に、通信経路ごとの値も含まれる。したがって、送信制御部１１は、データ損失率が最高である通信経路を特定することができ、当該通信経路の削除を経路分岐部１４へ指示する。この場合、経路分岐部１４は、当該通信経路を削除（例えば、当該通信経路に対応するソケットをクローズ）して、当該通信経路へのデータの送出を停止する。なお、通信経路の削除は、経路分岐部１４から経路統合部２２へ通知されてもよいし、送信制御部１１から受信制御部２１を経て、経路統合部２２へ通知されてもよい。通信経路の削除を通知された経路統合部２２は、例えば、削除された通信経路に対応するソケットをクローズする。
【００３５】
続いて、送信制御部１１は、圧縮度Ｉを０にし（Ｓ１１４）、０に変更後の圧縮度Ｉを圧縮部１３へ通知する（Ｓ１１４）。この場合、圧縮部１３は、データの圧縮を行わなくなる。続いて、送信制御部１１は、状態ｓを０に変更し（Ｓ１１５）、通信経路数Ｎから１を減算して（Ｓ１１６）ステップＳ１０１へ戻る。
【００３６】
なお、データの圧縮及び復号は、例えば、図５に示されるように行われてもよい。図５は、データの圧縮及び復号の一例を説明するための図である。
【００３７】
図５において左側は、圧縮の手順を示す。圧縮においては、キーデータと圧縮対象データとをバイト毎に比較し、同一部分と異なる部分を評価した配列（評価配列）を生成する。図５における評価配列は、同じバイトを０で表現し、異なるバイトを１で表現する。圧縮対象データのうち、評価配列において１に対応する部分を、スイッチランレングス符号化により圧縮し、圧縮データ（コードデータ）を生成する。
【００３８】
復号時は、コードデータより前の最後のキーデータと、コードデータとに基づいて、コードデータを復号して、圧縮対象データを復元する。
【００３９】
なお、上記では、パケットのペイロード部が圧縮及び復号の対象とされる例について説明したが、パケタイズ前のデータが圧縮及び復号の対象とされてもよい。この場合、送信装置１０では、圧縮部１３による圧縮が行われた後で、パケタイズ部１２によるパケタイズが行われる。また、受信装置２０では、デパケタイズ部２４による復元が行われた後に、復号部２３による復号が行われる。
【００４０】
上述したように、本実施の形態によれば、不安定なデータ転送においてデータの圧縮度、データ及び通信経路の冗長化がバランス良く調整される。その結果、効率的通信、高い到達の信頼性、低遅延化を実現することができる。すなわち、通信品質を向上させることができる。
【００４１】
なお、図３において説明した送信装置１０及び受信装置２０の各部は、それぞれ一つの装置内に含まれていなくてもよい。また、図６に示されるように、送信制御部１１及び受信制御部２１は、同じ装置（図６における制御装置）に含まれてもよい。又は、送信制御部１１及び受信制御部２１のいずれか一方が他方を兼ねてもよい。
【００４２】
なお、本実施の形態において、送信制御部１１は、判定部の一例である。経路分岐部１４は、送信部の一例である。送信装置１０は、データ転送装置の一例である。
【００４３】
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００４４】
１０          送信装置
１１          送信制御部
１２          パケタイズ部
１３          圧縮部
１４          経路分岐部
２０          受信装置
２１          受信制御部
２２          経路統合部
２３          復号部
２４          デパケタイズ部
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
Ｂ            バス
【図１】
2019145878.tif 000003
【図２】
2019145878.tif 000004
【図３】
2019145878.tif 000005
【図４】
2019145878.tif 000006
【図５】
2019145878.tif 000007
【図６】
2019145878.tif 000008