(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-05
(45)【発行日】2024-08-14
(54)【発明の名称】通信装置、通信方法、及び通信プログラム
(51)【国際特許分類】
H04L 69/14 20220101AFI20240806BHJP
H04L 47/56 20220101ALI20240806BHJP
【FI】
H04L69/14
H04L47/56
(21)【出願番号】P 2021144318
(22)【出願日】2021-09-03
【審査請求日】2023-09-01
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】230120499
【氏名又は名称】藤江 和典
(74)【代理人】
【識別番号】100201385
【氏名又は名称】中安 桂子
(72)【発明者】
【氏名】岩田 直樹
(72)【発明者】
【氏名】中田 恒夫
【審査官】宮島 郁美
(56)【参考文献】
【文献】特開2016-174235(JP,A)
【文献】特開2006-080775(JP,A)
【文献】特開2009-055114(JP,A)
【文献】特開2017-011522(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00-12/66,13/00,41/00-49/9057,61/00-65/80,69/00-69/40
(57)【特許請求の範囲】
【請求項1】
N個(Nは2以上の正の整数)の通信回線を用いて固定長のデータパケットを送信先装置(11)に送信する通信装置(10)であって、
前記送信先装置での前記データパケットの受信処理が完了すべき順に前記データパケットを格納する送信バッファ(100)と、
各々の前記通信回線に対応して前記データパケットを送信するN個の通信部(110)と、
前記送信バッファから前記データパケットを読み出し、前記データパケットを各々の前記通信部に割り当てる通信制御部(120)と、を有し、
前記通信制御部は、
各々の前記通信回線において、前記データパケットが送信されてから前記送信先装置での受信処理が完了するまでに要する時間であるデータ伝送時間を取得するデータ伝送時間取得部(121)と、
各々の前記通信部の送信待ちが解消され送信が可能であるか否かを判断する送信可否判断部(122)と、
前記送信可否判断部が送信可能と判断した前記通信部である第k通信部(kは1~Nのいずれかの整数)に対応する前記通信回線の前記データ伝送時間内に、前記第k通信部以外の前記通信部である第m通信部(mは1~Nの整数であってk以外)が送信し前記送信先装置での受信処理が完了できる前記データパケットの総数から、バッファオフセット量を求めるバッファオフセット量計算部(1231)と、
前記送信バッファの先頭から前記バッファオフセット量だけオフセットさせた位置を先頭とする前記データパケットを、前記第k通信部に割り当てるデータパケット割当部(1232)と、を有する、
通信装置(10)。
【請求項2】
N個(Nは2以上の正の整数)の通信回線を用いて固定長のデータパケットを送信先装置(11)に送信する通信装置(20)であって、
前記送信先装置での前記データパケットの受信処理が完了すべき順に前記データパケットを格納する送信バッファ(100)と、
各々の前記通信回線に対応して前記データパケットを送信するN個の通信部(110)と、
前記送信バッファから前記データパケットを読み出し、前記データパケットを各々の前記通信部に割り当てる通信制御部(200)と、を有し、
前記通信制御部は、
各々の前記通信回線において、前記データパケットが送信されてから前記送信先装置での受信処理が完了するまでに要する時間であるデータ伝送時間を取得するデータ伝送時間取得部(121)と、
N個の前記通信部を、各々の前記通信部に対応する前記通信回線の前記データ伝送時間が短い順に並べ替えるソート部(201)と、
各々の前記通信部の送信待ちが解消され送信が可能であるか否かを判断する送信可否判断部(122)と、
前記送信可否判断部が送信可能と判断した前記通信部である第k通信部(kは1~Nのいずれかの整数)に対応する前記通信回線の前記データ伝送時間内に、前記第k通信部より前記データ伝送時間が短い第m通信部(mは1~k-1の正の整数)が送信し前記送信先装置での受信処理が完了できる前記データパケットの総数から、バッファオフセット量を求めるバッファオフセット量計算部(2021)と、
前記送信バッファの先頭から前記バッファオフセット量だけオフセットさせた位置を先頭とする前記データパケットを、前記第k通信部に割り当てるデータパケット割当部(2022)と、を有する、
通信装置(20)。
【請求項3】
前記データ伝送時間取得部は、
N個の前記通信部の各々に対応する前記通信回線について、
前記データパケットを送信した時刻と、前記送信先装置から前記データパケットを受信した後に送信される受信確認信号を前記通信部が受信した時刻との差分である差分時間を求め、
前記差分時間に基づいて、前記データ伝送時間を取得する、
請求項1又は請求項2に記載の通信装置。
【請求項4】
前記データ伝送時間取得部は、
最新の前記受信確認信号を前記通信部が受信した時刻に基づいて、前記データ伝送時間を取得する、
請求項3に記載の通信装置。
【請求項5】
N個の前記通信部は、各々ウインドウサイズ(ウインドウサイズは1以上のデータパケット数)を設定し、
前記送信先装置から前記データパケットを受信した後に送信される受信確認信号
の受信を待たずに前記ウインドウサイズのパケットを続けて送信するウインドウ制御を行い、
前記バッファオフセット量計算部は、前記第m通信部の前記ウインドウサイズに基づき、前記バッファオフセット量を求める、
請求項1又は請求項2に記載の通信装置。
【請求項6】
前記通信制御部は、
前記送信先装置において受信処理が完了する順である前記データパケットの受信順と、前記送信バッファに格納される前記データパケットの格納順とが異なる場合は、前記データ伝送時間取得部に対し、前記データ伝送時間を改めて取得するように指示する、
請求項1又は請求項2に記載の通信装置。
【請求項7】
当該通信装置は、移動体に搭載されている、
請求項1~6記載の通信装置。
【請求項8】
N個の通信回線(Nは2以上の整数)を用いて、固定長のデータパケットを送信先装置に送信する通信装置で実行する通信方法であって、
前記送信先装置での前記データパケットの受信処理が完了すべき順に前記データパケットを送信バッファに格納し(S101)、
各々の前記通信回線において、前記データパケットが送信されてから前記送信先装置での受信処理が完了するまでに要する時間であるデータ伝送時間を取得し(S102)、
各々の前記通信回線に対応して前記データパケットを送信す
る通信部の送信待ちが解消され送信が可能であるか否かを判断し(S104)、
送信可能と判断した前記通信部である第k通信部(kは1~Nのいずれかの整数)に対応する前記通信回線の前記データ伝送時間内に、前記第k通信部以外の第m通信部(mは1~Nの整数であってk以外)が送信し前記送信先装置での受信処理が完了できる前記データパケットの総数から、バッファオフセット量を求め(S105、S141、S142)、
前記送信バッファの先頭から前記バッファオフセット量だけオフセットさせた位置を先頭とする前記データパケットを、前記第k通信部に割り当て(S105、S143、S144)、
前記第k通信部により前記データパケットを送信する(S107)、
通信方法。
【請求項9】
N個の通信回線(Nは2以上の整数)を用いて、固定長のデータパケットを送信先装置に送信する通信装置で実行可能な通信プログラムであって、
前記送信先装置での前記データパケットの受信処理が完了すべき順に前記データパケットを送信バッファに格納し(S101)、
各々の前記通信回線において、前記データパケットが送信されてから前記送信先装置での受信処理が完了するまでに要する時間であるデータ伝送時間を取得し(S102)、
各々の前記通信回線に対応して前記データパケットを送信す
る通信部の送信待ちが解消され送信が可能であるか否かを判断し(S104)、
送信可能と判断した前記通信部である第k通信部(kは1~Nのいずれかの整数)に対応する前記通信回線の前記データ伝送時間内に、前記第k通信部以外の第m通信部(mは1~Nの整数であってk以外)が送信し前記送信先装置での受信処理が完了できる前記データパケットの総数から、バッファオフセット量を求め(S105、S141、S142)、
前記送信バッファの先頭から前記バッファオフセット量だけオフセットさせた位置を先頭とする前記データパケットを、前記第k通信部に割り当て(S105、S143、S144)、
前記第k通信部により前記データパケットを送信する(S107)、
通信プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の通信回線を並行して使用することにより通信を行う通信装置、通信方法、及び通信プログラムに関する。
【背景技術】
【0002】
近年、移動通信システム、無線LAN及び有線通信等、複数の通信回線を連携させ、並行して通信を行うことにより、大量のデータを高速に送ることが検討されている。
【0003】
特許文献1には、第1の無線通信及び第2の無線通信を同時に使用してユーザデータを送信することが記載されている。
【0004】
また、非特許文献1には、複数の経路を用いた経路集約通信において、各経路の通信速度差と遅延時間差を考慮し、パケットが順序どおりに到着するように各経路に分配することが記載されている。これにより、パケットの到着順の逆転が生じることを防ぐことができる。
【先行技術文献】
【特許文献】
【0005】
【非特許文献】
【0006】
【文献】川島 佑毅他、「利用経路を動的に制御する複数経路集約通信方式の評価」、情報処理学会論文誌 Vol.48, No.2, pp880-891, Feb.2007
【発明の概要】
【発明が解決しようとする課題】
【0007】
ここで、本発明者は、以下の課題を見出した。
特許文献1の技術では、利用する回線の遅延状況次第では複数の回線を束ねて利用すること(すなわちアグリゲーション)を実施しないようなフローとなっている。特に、車載用途では、通信環境が激しく変化することが想定される。この場合、アグリゲーション自体が実施されないケースが増加することにより、複数回線を利用するメリットが得られない可能性がある。
【0008】
また、非特許文献1の技術では、送信予定のパケットを通信経路に応じて設けられた複数の仮想送信キューにあらかじめ分配するため、分配後に通信環境が変化した場合は、その変化に対応できず、パケット到着順の逆転が生じてしまう。
【0009】
そこで、本発明は、送信先装置において、データパケットの到着順の逆転が生じる可能性がより少ない通信装置等を実現することを目的とする。
望ましくは、各通信部へのデータパケットの割り当てに要する演算がより少なくなる通信装置等を実現することを目的とする。
【課題を解決するための手段】
【0010】
本開示の通信装置(10)は、
N個(Nは2以上の正の整数)の通信回線を用いて固定長のデータパケットを送信先装置(11)に送信する通信装置(10)であって、
前記送信先装置での前記データパケットの受信処理が完了すべき順に前記データパケットを格納する送信バッファ(100)と、
各々の前記通信回線に対応して前記データパケットを送信するN個の通信部(110)と、
前記送信バッファから前記データパケットを読み出し、前記データパケットを各々の前記通信部に割り当てる通信制御部(120)と、を有し、
前記通信制御部は、
各々の前記通信回線において、前記データパケットが送信されてから前記送信先装置での受信処理が完了するまでに要する時間であるデータ伝送時間を取得するデータ伝送時間取得部(121)と、
各々の前記通信部の送信待ちが解消され送信が可能であるか否かを判断する送信可否判断部(122)と、
前記送信可否判断部が送信可能と判断した前記通信部である第k通信部(kは1~Nのいずれかの整数)に対応する前記通信回線の前記データ伝送時間内に、前記第k通信部以外の前記通信部である第m通信部(mは1~Nの整数であってk以外)が送信し前記送信先装置での受信処理が完了できる前記データパケットの総数から、バッファオフセット量を求めるバッファオフセット量計算部(1231)と、
前記送信バッファの先頭から前記バッファオフセット量だけオフセットさせた位置を先頭とする前記データパケットを、前記第k通信部に割り当てるデータパケット割当部(1232)と、を有する。
【0011】
なお、特許請求の範囲、及び本項に記載した発明の構成要件に付した括弧内の番号は、本発明と後述の実施形態との対応関係を示すものであり、本発明を限定する趣旨ではない。
【発明の効果】
【0012】
上述のような構成により、本開示の通信装置は、送信先装置において、データパケットの到着順の逆転が生じる可能性をより少なくすることができる。例えば、各通信回線の通信環境が時々刻々変化しても、データパケットの到着順の逆転が生じにくくすることができる。
【図面の簡単な説明】
【0013】
【
図1】各実施形態に共通の通信装置及び通信回線の説明図
【
図2】実施形態1の通信装置10の構成を示す構成図
【
図3】送信バッファ100に格納されたデータパケットを説明する説明図
【
図4】データ伝送時間取得部121で取得するデータ伝送時間を説明する説明図
【
図5】送信可否判断部122での判断の状況及びデータパケット選択部123で選択するデータパケットを説明する説明図
【
図6】バッファオフセット量計算部1231で求めるバッファオフセット量を説明する説明図
【
図10】実施形態1の通信装置10の具体的動作を説明する説明図
【
図11】実施形態1の通信装置10の具体的動作を説明する説明図
【
図12】実施形態1の通信装置10の具体的動作を説明する説明図
【
図13】実施形態1の通信装置10の具体的動作を説明する説明図
【
図14】実施形態1の通信装置10の具体的動作を説明する説明図
【
図15】実施形態1の通信装置10の具体的動作を説明する説明図
【
図16】実施形態2の通信装置20の構成を示す構成図
【
図17】ソート部201で実行する並べ替えを説明する説明図
【
図18】実施形態2の通信装置20の動作のフロー図
【
図20】実施形態2の通信装置20の具体的動作を説明する説明図
【
図21】実施形態2の通信装置20の具体的動作を説明する説明図
【
図22】実施形態2の通信装置20の具体的動作を説明する説明図
【
図23】実施形態2の通信装置20の具体的動作を説明する説明図
【
図24】実施形態2の通信装置20の具体的動作を説明する説明図
【
図25】その他の実施形態のウインドウ制御を説明する説明図
【発明を実施するための形態】
【0014】
以下、本発明の実施形態について、図面を参照して説明する。
【0015】
なお、本発明とは、特許請求の範囲又は課題を解決するための手段の項に記載された発明を意味するものであり、以下の実施形態に限定されるものではない。また、少なくともかぎ括弧内の語句は、特許請求の範囲又は課題を解決するための手段の項に記載された語句を意味し、同じく以下の実施形態に限定されるものではない。
【0016】
特許請求の範囲の従属項に記載の構成及び方法は、特許請求の範囲の独立項に記載の発明において任意の構成及び方法である。従属項に記載の構成及び方法に対応する実施形態の構成及び方法、並びに特許請求の範囲に記載がなく実施形態のみに記載の構成及び方法は、本発明において任意の構成及び方法である。特許請求の範囲の記載が実施形態の記載よりも広い場合における実施形態に記載の構成及び方法も、本発明の構成及び方法の例示であるという意味で、本発明において任意の構成及び方法である。いずれの場合も、特許請求の範囲の独立項に記載することで、本発明の必須の構成及び方法となる。
【0017】
実施形態に記載した効果は、本発明の例示としての実施形態の構成を有する場合の効果であり、必ずしも本発明が有する効果ではない。
【0018】
複数の実施形態がある場合、各実施形態に開示の構成は各実施形態のみで閉じるものではなく、実施形態をまたいで組み合わせることが可能である。例えば一の実施形態に開示の構成を、他の実施形態に組み合わせても良い。また、複数の実施形態それぞれに開示の構成を集めて組み合わせても良い。
【0019】
発明が解決しようとする課題に記載した課題は公知の課題ではなく、本発明者が独自に知見したものであり、本発明の構成及び方法と共に発明の進歩性を肯定する事実である。
【0020】
1.各実施形態に共通の構成
図1を用いて、各実施形態に共通の構成について説明する。
【0021】
通信装置10(20)は、N個の通信回線を並行して用い、データパケットを送信先装置11に送信する。
図1はN=3の例である。
【0022】
通信回線Aは、移動通信システムに基づく通信回線である。通信回線Aは、例えば、
W-CDMA(Wideband Code Division Multiple Access)、HSPA(High Speed Packet Access)、LTE(Long Term Evolution)、LTE-A(Long Term Evolution Advanced)、4G、又は5G等の無線通信方式からなる通信回線を用いることができる。
通信回線Aを用いる場合、通信装置10(20)は基地局12と接続している。
【0023】
通信回線Bは、通信回線Aに比して通信距離が短い通信回線である。通信回線Bは、例えば、IEEE802.11(Wi-Fi(登録商標))、又はIEEE802.16(WiMAX(登録商標))の無線通信方式からなる通信回線を用いることができる。あるいは、Bluetooth(登録商標)、UWB(Ultra Wide Band)、又はDSRC(Dedicated Short Range Communication)を用いることもできる。
通信回線Bを用いる場合、通信装置10(20)はアクセスポイント(AP)13と接続している。
【0024】
通信回線Cは、有線通信に基づく通信回線である。通信回線Cは、例えば、イーサネット(登録商標)等のLAN(Local Area Network)、光回線、又は固定電話回線を用いることができる。
通信回線Cを用いる場合、通信装置10(20)は図示しないルータ等と接続している。
【0025】
通信回線A~Cは一例であり、必ずしもこの組み合わせによるものではない。例えば、無線通信方式の通信回線のみを用いてもよい。無線通信方式の通信回線のみを用いる場合、長距離通信と短距離通信の組み合わせである必要はなく、たとえば複数の長距離通信の組み合わせでもよい。長距離通信の組合わせの場合、同じ無線通信方式で複数のキャリアが提供する回線の組み合わせであってもよい。通信回線の数も、複数であればその数は問わない。
【0026】
図1では、通信装置10(20)は「移動体」である自動車に「搭載」されている例を示しているが、必ずしも移動体に搭載されることを前提とするものではない。例えば、通信装置10(20)は、建物内に設置された装置であってもよい。
なお、通信装置10(20)が自動車に搭載されている場合、走行中は通常自動車の外部と有線通信を行うことはない。しかし、車両が自宅その他の駐車場に駐車されていたり、修理工場に収容されている場合には、通信回線Cを用いて有線通信を行うことができる。
ここで、
「移動体」とは、移動可能な物体をいい、移動速度は任意である。また移動体が停止している場合も当然含む。例えば、自動車、自動二輪車、自転車、歩行者、船舶、航空機、及びこれらに搭載される物を含み、またこれらに限らない。
「搭載」される、とは、移動体に直接固定されている場合の他、移動体に固定されていないが移動体と共に移動する場合も含む。例えば、移動体に乗った人が所持している場合、移動体に載置された積荷に搭載されている場合、が挙げられる。
【0027】
各実施形態においては、送信先装置11に送信するデータパケットは、「固定長のデータパケット」である。固定長のデータパケットとすることにより、送信先装置11での到達順を予想することが容易になるというメリットがある。例えば、データパケットがTCPのセグメントである場合、データパケットは、最大セグメントのサイズである1460byteにすることができる。
ここで、「固定長のデータパケット」とは、データパケット自体が固定長の場合はもちろん、データパケット自体は可変長であるが可変長のデータパケットのうち最大長のデータパケットを固定長のデータパケットとみなして各データパケットを送信する場合、複数のデータパケットが結合された全体を固定長のデータパケットとして送信する場合、を含む。
【0028】
可変長のデータパケットの場合は、固定長のサイズごとに分割して固定長のデータパケットを生成してもよい。あるいは、可変長のデータパケットの場合は、最大長のデータパケットを固定長のデータパケットと見なしてもよい。この場合、最大長未満の長さを有するデータパケットに、ヌル(0)を付加して固定長としてもよい。
データパケットには、複数のサブフレーム又はサブブロック等、データパケットの下位に属する集合を含めてもよい。
固定長のデータパケットの名称は任意である。例えば、パケットの他、フレーム、サブフレーム、サブブロック等の名称が挙げられる。
【0029】
2.実施形態1
(1)通信装置10の構成
図2乃至
図6を用いて、実施形態1の通信装置10の構成を説明する。通信装置10は、送信バッファ100、通信部110、及び通信制御部120を有する。
【0030】
通信装置10は、汎用のCPU(Central Processing Unit)、RAM等の揮発性メモリ、ROM、フラッシュメモリ、又はハードディスク等の不揮発性メモリ、各種インターフェース、及びこれらを接続する内部バスで構成することができる。そして、これらのハードウェア上でソフトウェアを実行することにより、
図2に記載の各機能ブロックの機能を発揮させるように構成することができる。
もちろん、通信装置10を、LSI等の専用のハードウェアで実現してもよい。
【0031】
通信装置10は、本実施形態では半完成品としての電子制御装置(ECU(Electric Control Unit)、以下ECUと略する。)の形態を想定しているが、これに限らない。例えば、部品の形態としては、半導体回路や半導体モジュール、半完成品の形態としては、電子制御装置、電子制御ユニット、システムボード、完成品の形態としては、サーバ、ワークステーション、パーソナルコンピュータ(PC)、タブレット、スマートフォン、携帯電話、ナビゲーションシステムが挙げられる。
なお、通信装置10は、単一のECUの他、複数のECUで構成されてもよい。
以上は、他の実施形態の通信装置においても同様である。
【0032】
(a)送信バッファ100及び送信バッファ100に格納されるデータパケット
送信バッファ100は、送信先装置11へ送信するデータパケットを格納する。本実施形態では、送信先装置11でのデータパケットの「受信処理が完了」すべき「順にデータパケットを格納」する。
ここで、
「受信処理が完了」するとは、送信先装置においてデータパケットの受信が完了する時点までの他、データパケットの受信後に送信先装置から受信確認信号が送信される時点まで、又は当該通信装置が受信確認信号を受信する時点まで、であってもよい。
「順にデータパケットを格納する」とは、送信バッファのアドレスの降順又は昇順に格納する場合はもちろん、送信バッファのアドレスとは関係なく当該順が識別できるように送信バッファに格納されている場合も含む。
【0033】
図3に、送信バッファ100に格納するパケットの例を示す。
データパケットP1~P8は動画データを構成するパケットであって、P1からP8の順に再生されることで一連の動画となる場合には、送信先装置11においては、データパケットは、P1からP8の順に受信処理が完了することが望ましい。
この場合、送信バッファ100には、データパケットが送信先装置11でのデータパケットの受信処理が完了すべき順に、すなわち、P1からP8の順に格納される。例えば、送信バッファのアドレスの降順にP1からP8が格納される。
【0034】
なお、送信先装置11でのデータパケットの受信処理が完了すべき順が認識できるのであれば、送信バッファ100のアドレスとは関係なく格納されても構わない。この場合、例えば、ヘッダ部分に再生順を示すシリアル番号を記録し、ヘッダ部分を読み出すことにより、通信装置10は当該データパケットの再生順を知ることができる。
【0035】
送信バッファ100は、読み書き可能な記録媒体であれば足り、例えば、RAMや各種半導体メモリ、ハードディスク等で実現することができる。
【0036】
(b)通信部110
通信部110は、各々の通信回線に対応して、データパケットを送信する複数(「N個」に対応)の通信部からなる。本実施形態の場合、3つの通信回線に対応して3つの通信部、すなわち第1通信部111、第2通信部112、及び第3通信部113を有する。これらの通信部を包括して示す場合は通信部110、各々の通信部を区別して示す場合は第1通信部111、第2通信部112、第3通信部113と表現する。
【0037】
本実施形態では、第1通信部111、第2通信部112、及び第3通信部113に接続されている通信回線は全て無線通信方式に基づくものとし、通信速度は、第2通信部112に接続されている通信回線が最も早く、第3通信部113に接続されている通信回線が最も遅いものとして説明する。
【0038】
通信部110は、通信モジュール、各種インターフェース、及び内部バスで実現することができる。
【0039】
(c)通信制御部120
通信制御部120は、送信バッファ100からデータパケットを読み出し、データパケットを第1通信部111、第2通信部112、及び第3通信部113に割り当てる。割り当ては、送信先装置11において望ましい順でデータパケットの受信処理を行うことができるように行われる。
【0040】
もっとも、本実施形態の特徴は、各々の通信部にデータパケットを割り当てるタイミングと、割り当ての方法にある。以下、通信制御部120の構成と共に具体的に説明する。
【0041】
通信制御部120は、データ伝送時間取得部121、送信可否判断部122、及びデータパケット選択部123を有する。データパケット選択部123は、バッファオフセット量計算部1231及びデータパケット割当部1232を有する。
通信制御部120の各ブロックは、汎用のCPU及びROM等から読み出したプログラムを実行することにより実現することができる。以下、通信制御部120の詳細を説明する。
【0042】
(c―1)データ伝送時間取得部121及びデータ伝送時間
各々の通信回線は通信速度が異なるため、同じサイズのデータパケットを送信しても、通信回線毎にデータ伝送時間は異なる。そこで、データ伝送時間取得部121は、固定長のデータパケットを送信するに際し、各々の通信回線で要する時間を取得する。本実施形態では、各々の通信回線において、データパケットが送信されてから送信先装置11での「受信処理が完了」するまでに要する時間であるデータ伝送時間を取得する。
ここで、「受信処理が完了」するとは、送信先装置においてデータパケットの受信が完了する時点までの他、データパケットの受信後に送信先装置から受信確認信号が送信される時点まで、又は当該通信装置が受信確認信号を受信する時点まで、であってもよい。
【0043】
図4は、通信装置10が通信回線を用いて固定長のデータパケットを送信先装置11に送信し、送信先装置11で受信処理が完了するまでの時間的推移を表した図である。
【0044】
通信装置10は、データパケットを時刻Tsに送信を開始する。送信先装置11は、時刻Trに当該データパケットの受信を開始し、時刻Teに当該データパケットの全てを受信する。送信先装置11はデータパケットを受信した後、直ちにACK信号(本発明の「受信確認信号」に相当)を送信し、通信装置10は時刻TaにACK信号を受信する。
【0045】
これらの時刻のうち、データパケットの送信時刻Ts及びACK信号の受信時刻Taは、通信装置10側で直接計測が可能である。
一方、データパケット受信開始時刻Tr及び受信完了時刻Teは、送信先装置11側でのみ計測可能である。ただし、送信先装置11から送信するACK信号に付加情報としてTrやTeを含めることによって、通信装置10はこれらの時刻を取得することができる。
【0046】
また、
図4において、
Dkは、TsからTrまでの時間であり、上り方向の伝送遅延時間である。
Ekは、TrからTeまでの時間であり、データパケットの受信を継続している受信継続時間である。
Fkは、TeからTaまでの時間であり、下り方向の伝送遅延時間である。
Rkは、ラウンドトリップタイム(Round Trip Time)で、TsからTaまでの時間である(「差分時間」に相当)。
【0047】
ここで、送信先装置11の受信処理が完了する時点をTe、すなわち送信先装置11でデータパケットの受信が完了する時点又は送信先装置11からACK信号を送信する時点とした場合、データ伝送時間Wkは、
Wk=Dk+Ek・・・・(式1)
と定義できる。通信装置10のデータ伝送時間取得部121は、通信装置10が計測したTs、及びACK信号に含まれるTeを用いて、
Wk=Dk+Ek
=(Tr-Ts)+(Te-Tr)
=Te-Ts・・・・(式2)
の演算をすることにより求め、取得することができる。
この場合、通信装置10で計測したTsと送信先装置11で計測したTeを用いているので、正確なWkを計算するためには、通信装置10と送信先装置11とで、時刻同期が取れている必要がある。例えば、GPSを用いて互いの時計誤差を補正することにより、互いの時刻同期を取ることが望ましい。
【0048】
通信装置10と送信先装置11で時刻同期がとれない場合は、上り方向の伝送遅延時間Dkと下り方向の伝送遅延時間Fkがほぼ等しいと仮定して、
Wk=Dk+Ek
=(Rk-Ek)/2+Ek
=(Rk+Ek)/2・・・・(式3)
の演算をすることにより、求めることができる。
Rkは通信装置10で測定したTsとTaから求めることができる。また、データパケット受信時間Ekは送信先装置11でTrとTeを測定し、この差分を送信先装置11で計算したものをACK信号を介して通信装置10で受信することにより取得することができる。あるいは、ACK信号でTrとTeを受信し、通信装置10で差分を計算することにより取得することができる。なお、データパケット受信時間EkはTeとTrの差分なので、通信装置10及び送信先装置11における時刻誤差の影響はない。また、Taは送信先装置11からの情報に基づかないので、通信装置10及び送信先装置11における時刻誤差の影響はない。
【0049】
あるいは、上り方向の伝送遅延時間Dkとデータパケット受信時間Ekとを比較すると、一般的にはDkがEkよりも圧倒的に大きい。そこでEkを無視して、
Wk=Dk+Ek
≒Rk/2・・・・(式4)
の演算をすることにより、近似値を求めることができる。
【0050】
以上は、受信処理が完了する時点をTeとしてデータ伝送時間Wkを求めたが、これに代えて、受信処理が完了する時点をTa、すなわち通信装置10がACK信号を受信した時点とした場合、データ伝送時間Wkは、
Wk=Rk・・・・(式5)
と定義できる。これによれば、通信装置10のデータ伝送時間取得部121は、送信先装置11からの情報に基づくことなく、データ伝送時間Wkを通信装置10での計測に基づき求めることができる。そして、Taは送信先装置11からの情報に基づかないので、通信装置10及び送信先装置11における時刻誤差の影響はない。
【0051】
データ伝送時間Wkは、通信装置10が自動車に搭載されている場合、各々の通信回線の通信環境が刻々と変化する。そこで、データ伝送時間取得部121は、通信部110がACK信号を受信するごとに、最新のACK信号を受信した時刻に基づいて、最新のデータ伝送時間Wkを取得するようにしてもよい。
これにより、より現時刻に近い通信環境を反映したデータ伝送時間Wkを求めることができる。
【0052】
(c―2)送信可否判断部122
送信可否判断部122は、各々の通信部でデータパケットが送信中であるかどうかに基づき、各々の通信部でのデータパケットの送信の可否を判断する。本実施形態では、各々の通信部の送信待ちが解消され、現在データパケットの送信が可能であるかどうかを判断する。送信待ちが解消されるとは、データパケットが送信中でなければよい。
【0053】
第1通信部111、第2通信部112、及び第3通信部113は、それぞれ独立に動作して並行してデータパケットを送信するため、それぞれ送信待ちの状態から送信可能となるタイミングは異なる。送信可否判断部122は、通信部110を常に監視して、各々の通信部が送信可能であるか否かを判断する。例えば、各々の通信部を順にスキャンして、データパケットの送信が可能であるかどうかを確認すればよい。
【0054】
例えば、
図5において、第1通信部111は時刻t1までは送信待ちだが、時刻t1でデータパケットが送信可能となる。送信可否判断部122は、時刻t1に第1通信部111が送信可能であると判断する。この結果、後述の通信制御部120のデータパケット割当部1232は、第1通信部111に新たなデータパケットを割り当てる。
次に、送信可否判断部122は、時刻t2に第2通信部112が送信可能であると判断する。この結果、データパケット割当部1232は、第2通信部112に新たなデータパケットを割り当てる。
そして、送信可否判断部122は、時刻t3に第3通信部113が送信可能であると判断する。この結果、データパケット割当部1232は、第3通信部113に新たなデータパケットを割り当てる。
その後、t4、t5、・・・t8と時間の経過とともに、送信可否判断部122は、各々の通信部の送信の可否を判断する。
なお、データパケットをどのように選択するかは、後述のバッファオフセット量計算部1231の説明で説明する。
【0055】
このように、送信可否判断部122の送信可否の判断を受けて、各々の通信部にデータパケットを割り当てるので、各々の通信部の現時点の通信状況を踏まえたデータパケットの割り当てを行うことができ、予めデータパケットを各々の通信部に割当てておく場合に比べ、送信先装置11でのデータパケットの到着順の逆転をより効果的に防止することができる。
【0056】
(c―3)データパケット選択部123
データパケット選択部123は、特定の通信部110、例えば第k通信部(kは1~Nのいずれかの整数)について送信可否判断部122が送信可能と判断すると、送信バッファ100から、第k通信部で送信すべきデータパケットを選択し、第k通信部に割り当てる。
【0057】
データパケット選択部123は、バッファオフセット量計算部1231及びデータパケット割当部1232を有する。
【0058】
バッファオフセット量計算部1231は、送信可否判断部122が送信可能と判断した第k通信部(kは1~Nのいずれかの整数)に対応する通信回線のデータ伝送時間内に、第k通信部以外の第m通信部(mは1~Nの整数であってk以外)が送信し送信先装置11での「受信処理が完了」できるデータパケットの総数から、バッファオフセット量を求める。第m通信部が送信し送信先装置11での受信処理が完了できるデータパケットの数は、データ伝送時間取得部121で取得したそれぞれの通信部におけるデータ伝送時間に基づいて求めることができる。
ここで、「受信処理が完了」するとは、送信先装置においてデータパケットの受信が完了する時点までの他、データパケットの受信後に送信先装置から受信確認信号が送信される時点まで、又は当該通信装置が受信確認信号を受信する時点まで、であってもよい。
【0059】
例えば、
図5の時刻t3において、送信可否判断部122は第3通信部113が送信可能であると判断する。バッファオフセット量計算部1231は、第3通信部113が送信可能との判断を受けて、以下の通りバッファオフセット量を求める。
【0060】
第3通信部113に対応する通信回線のデータ伝送時間W3はa7-t3である。バッファオフセット量計算部1231は、時刻t3からデータ伝送時間W3の時間内に、第3通信部113以外の通信部である第1通信部111及び第2通信部112で送信し送信先装置11での受信処理が完了できるデータパケットの総数を求める。
図5の場合、第1通信部111は既にP3の送信を開始しているので、P3の送信を終了した後にW3の時間内に送信可能なパケットは、P6の1つである。同じく、第2通信部112は既にP1の送信を開始しているので、P1の送信を終了した後にW3の時間内に送信可能なパケットは、P2、P4、P5の3つである。したがって、第3通信部113以外の第1通信部111及び第2通信部112が送信し送信先装置11での受信処理が完了できるデータパケットの総数は4個となり、バッファオフセット量は4となる。
【0061】
データパケット割当部1232は、送信バッファ100の先頭からバッファオフセット量だけオフセットさせた位置を先頭とするデータパケットを、第k通信部に割り当てる。
【0062】
図6は、時刻t3における送信バッファ100の様子を示している。時刻t3の時点で、送信バッファ100にはまだ送信を開始していないデータパケットが、P2、P4、P5、P6、P7、P8の順に格納されている。そこで、データパケット割当部1232は、送信バッファ100の先頭から4個分オフセットさせた位置を先頭とするP7を、第3通信部113に割り当てる。
【0063】
なお、本実施形態でのバッファオフセット量の単位はデータパケットの個数としたが、これに限らない。送信バッファ100の先頭から所望のデータパケットまでのオフセット量を示すものであればよく、例えば、送信バッファ100の先頭からのByte数でもよいし、格納しているメモリ(RAM)のアドレスを指し示すポインタの増分でもよい。
【0064】
(3)通信装置10の動作
図7から
図9までを用いて本実施形態の通信装置10の動作について説明する。
なお、以下の動作は、通信装置10における通信方法を示すだけでなく、通信装置10で実行される通信プログラムの処理手順を示すものである。そして、これらの処理は、
図7から
図9で示した順序には限定されない。すなわち、あるステップでその前段のステップの結果を利用する関係にある等の制約がない限り、順序を入れ替えてもよい。
以上、本実施形態だけでなく、他の実施形態や変形例においても同様である。
【0065】
(a)主要フロー
図7を用いて、通信装置10の動作の主要のフローを説明する。
通信装置10の送信バッファ100は、送信先装置11でのデータパケットの「受信処理が完了」すべき「順にデータパケットを格納」する(S101)。なお、データパケットの格納は、データパケットが通信装置10に送信されてくるタイミングで格納すればよく、以後のステップ中に送信されてくる場合は並行して格納すればよい。すなわち、
図7は、データバッファ100内に時々刻々格納されるデータパケットを送信する処理である。
【0066】
データ伝送時間取得部121は、各々の通信回線において、データパケットが送信されてから送信先装置11での「受信処理が完了」するまでに要する時間であるデータ伝送時間を取得する(S102)。データ伝送時間取得の動作の詳細は後述する。
【0067】
通信制御部120は、kを初期化し、k=1とする(S103)。
【0068】
送信可否判断部122は、各々の通信部の送信待ちが解消され、送信が可能であるか否かを判断する(S104)。送信が可能な場合はS105に進み、送信が可能でない場合はS109へ進む。
【0069】
データパケット選択部123は、送信可能と判断された第k通信部(kは1~Nのいずれかの整数)について、送信すべきデータパケットを送信バッファ100の中から選択し、第k通信部に割り当てる(S105)。データパケット選択の動作の詳細については後述する。
【0070】
通信制御部120は、第k通信部に送信すべきデータパケットが割り当てられたかを判断する(S106)。割り当てられた場合は、第k通信部からデータパケットを送信する(S107)。割り当てられていない場合は、S109へ進む。
【0071】
通信制御部120は、送信バッファ100を更新する(S108)。具体的には、S107で第k通信部により送信されたデータパケットの情報を送信バッファ100から除き、除いたデータパケットの領域分だけ送信バッファ100を詰める処理を行う。
【0072】
通信制御部120は、kをインクリメントする(S109)。
【0073】
通信制御部120は、kがN以下の場合は(S110:N)、インクリメントされたkで特定される第k通信部及び第k通信部に対応する通信回線に対して、S104からS108までの処理を繰り返す。
kがNより大きい場合は(S110:Y)、S102へ戻る。
【0074】
(b)データ伝送時間取得のフロー
図8を用いて、各通信回線のデータ伝送時間を取得する動作について説明する。
【0075】
データ伝送時間取得部121は、kを初期化し、k=1とする(S121)。
【0076】
データ伝送時間取得部121は、kに対応する通信回線のラウンドトリップタイムRkを取得する(S122)。Rkは、
図4に示すように、データパケットの送信時刻Ts及びACK信号の受信時刻Taを計測し、TaとTsとの差分時間として求めることができる。
【0077】
データ伝送時間取得部121は、kに対応する通信回線のデータパケット受信時間Ekを取得する(S123)。Ekは、
図4に示すように、データパケットの受信開始時刻Tr及び受信完了時刻Teの差分時間として求めることができる。
【0078】
データ伝送時間取得部121は、kに対応する通信回線のデータ伝送時間Wkを取得する(S124)。具体的には、(式3)により、Rk及びEkからWkを求める。なお、これに代えて、(式4)や(式5)により求めてもよい。その場合は、S123は不要となる。
【0079】
データ伝送時間取得部121は、kをインクリメントする(S125)。
【0080】
データ伝送時間取得部121は、kがN以下の場合は(S126:N)、インクリメントされたkで特定される第k通信部及び第k通信部に対応する通信回線に対して、S122からS124までの処理を繰り返す。
kがNより大きい場合は(S126:Y)、S103へ戻る。
【0081】
(c)データパケット選択のフロー
図9を用いて、データパケットを選択し第k通信部に割り当てる動作について説明する。
【0082】
バッファオフセット量計算部1231は、S104で送信可能と判断した第k通信部に対応する通信回線のデータ伝送時間内Wk内に、第k通信部以外の第m通信部(mは1~Nの整数であってk以外)が送信し送信先装置11での「受信処理が完了」できるデータパケットの総数Qを求める(S141)。
【0083】
バッファオフセット量計算部123は、データパケットの総数Qより、バッファオフセット量Okを求める(S142)。バッファオフセット量がパケット個数を表す場合は、バッファオフセット量Okはパケット個数Qに等しい。
【0084】
データパケット割当部1232は、送信バッファ100の先頭からバッファオフセット量Okだけオフセットさせた位置を先頭とするデータパケットが存在するか否かを判断する(S143)。データパケットが存在すれば(S143:Y)、データパケット割当部1232は、第k通信部にデータパケットを割り当てる。データパケットが存在しなければ(S143:N)、割り当てるデータパケットはないので、第k通信部にデータパケットを割り当てない。
【0085】
(d)通信装置10の動作の具体例
図10から
図15までを用いて、データパケットの割り当てと送信バッファの更新に注目した通信装置10の動作例を示す。
【0086】
動作例はN=3、すなわち使用する通信回線が3個の場合である。
図10に示すように、第1通信部111が時刻t1からデータパケットを送信可能であり、第2通信部112が時刻t2からデータパケットを送信可能であり、第3通信部113が時刻t3からデータパケットを送信可能であるとする。それまでの時刻では、それぞれの通信部は送信待ちの状態であり、送信可能ではないとする。
図10の各通信部のひし形の水平部の長さが異なるのは、データパケットのサイズは固定長なので同じであるが、各通信回線の回線速度、すなわちデータ伝送速度に差があるためである。
【0087】
図11は、時刻t1の時点における各通信回線の状況を示す。送信可否判断部122は、時刻t1において、第1通信部111が送信可能と判断する。
図11に示すように、時刻t1に第1通信部111からデータパケットが送信されるとすると、時刻a3に送信先装置11で受信処理が完了する。この時刻t1から時刻a3までの時間であるデータ伝送時間W1の間に、第1通信部111以外の通信部から送信し、送信先装置11で受信処理が完了可能なデータパケットの数は、第2通信部112が2個、第3通信部113が0個である。そこで、バッファオフセット量計算部1231は、バッファオフセット量を2とする。
そして、
図15(a)に示すように、t=t1において、送信バッファ100の先頭から2個オフセットさせて、第1通信部111で送信すべきデータパケットとしてP3が割り当てられる。その後送信バッファ100が更新され、送信バッファ100からP3が削除される。
【0088】
図12は、時刻t2の時点における各通信回線の状況を示す。送信可否判断部122は、時刻t2において、第2通信部112が送信可能と判断する。なお、時刻t2において、第1通信部111はまだP3を送信中であるので、送信可能ではない。
図12に示すように、時刻t2に第2通信部112からデータパケットが送信されるとすると、時刻a1に送信先装置11で受信処理が完了する。この時刻t2から時刻a1までの時間であるデータ伝送時間W2の間に、第2通信部112以外の通信部から送信し、送信先装置11で受信処理が完了可能なデータパケットの数は、第1通信部111で0個、第3通信部で0個、合計0個である。そこで、バッファオフセット量計算部1231は、バッファオフセット量を0とする。
そして、
図15(b)に示すように、t=t2において、送信バッファ100の先頭から0個オフセットさせて、第2通信部112で送信すべきデータパケットとしてP1が割り当てられる。その後送信バッファ100が更新され、送信バッファ100からP1が削除される。
【0089】
図13は、時刻t3の時点における各通信回線の状況を示す。送信可否判断部122は、時刻t3において、第3通信部113が送信可能と判断する。なお、時刻t3において、第1通信部111はまだP3を送信中であるので、送信可能ではない。また、時刻t3において、第2通信部112はまだP1を送信中であるので、送信可能ではない。
図13に示すように、時刻t3に第3通信部113からデータパケットが送信されるとすると、時刻a7に送信先装置11で受信処理が完了する。この時刻t3から時刻a7までの時間であるデータ伝送時間W3の間に、第3通信部113以外の通信部から送信し、送信先装置11で受信処理が完了可能なデータパケットの数は、第1通信部111で1個、第2通信部で3個、合計4個である。そこで、バッファオフセット量計算部1231は、バッファオフセット量を4とする。
そして、
図15(c)に示すように、t=t3において、送信バッファ100の先頭から4個オフセットさせて、第3通信部113で送信すべきデータパケットとしてP7が割り当てられる。その後送信バッファ100が更新され、送信バッファ100からP7が削除される。
【0090】
図14は、時刻t4の時点における各通信回線の状況を示す。送信可否判断部122は、時刻t4において、第2通信部112からP1の送信が終了することにより送信待ちが解消され、第2通信部112が送信可能と判断する。なお、時刻t4において、第1通信部111はまだP3を送信中であるので、送信可能ではない。また、時刻t4において、第3通信部113はまだP7を送信中であるので、送信可能ではない。
図14に示すように、時刻t4に第2通信部112からデータパケットが送信されるとすると、時刻a2に送信先装置11で受信処理が完了する。この時刻t4から時刻a2までの時間であるデータ伝送時間W2の間に、第2通信部112以外の通信部から送信し、送信先装置11で受信処理が完了可能なデータパケットの数は0個である。そこで、バッファオフセット量計算部1231は、バッファオフセット量を0とする。
そして、
図15(d)に示すように、t=t4において、送信バッファ100の先頭から0個オフセットさせて、第2通信部112で送信すべきデータパケットとしてP2が割り当てられる。その後送信バッファ100が更新され、送信バッファ100からP2が削除される。
【0091】
なお、この例ではデータ伝送時間Wkは、通信装置10のパケット送信時刻から送信先装置11のパケット受信完了時刻までとしたが、通信装置10のパケット送信時刻から通信装置10のACK信号の受信時刻まで、すなわちラウンドトリップタイムRkとしてもよい。この場合送信できるデータパケットの量は少なくなるが、ACK信号の受信を待って送信を開始するので、送信先装置11での受信を確認してから次のデータパケットを送信することにより、データパケットの到着順の逆転が生じる可能性が低くなるとともに、送信先装置11でのデータパケットの欠損を確実に防止することができる。特に無線通信方式を使う場合に有効である。
【0092】
以上、時刻t1からt4までの場合のデータパケットの割り当てにかかる動作について説明したが、残りのデータパケットについても、送信可否判断部122によって、第1通信部111、第2通信部112、第3通信部113のいずれかが送信可能と判断された時刻において、同様に割り当てればよい。
【0093】
(4)小括
本実施形態の通信装置10によれば、通信が可能であると判断した通信部に対し送信するデータパケットを割り当てているので、送信するデータパケットの選択を送信直前に行うこととなり、送信直前の通信環境を反映したデータパケットの選択を行うことができる。その結果、データパケットの到着順の逆転が生じる可能性がより少なくなる。
また、本実施形態の通信装置10によれば、通信が可能であると判断した通信部以外での送信可能なデータパケットの数に応じてバッファオフセット量を求めているので、送信バッファの先頭以外のデータパケットを選択することができるとともに、簡単な演算で送信するデータパケットの選択を行うことができる。
また、本実施形態の通信装置10において、ラウンドトリップタイムRkからデータ伝送時間を求める場合は、各通信部と送信先装置11との間で時刻同期が取れていなくても、データ伝送時間を求めることができる。
また、本実施形態の通信装置において、最新のラウンドトリップタイムRkを用いてデータ伝送時間を求める場合は、最新の情報に基づき通信環境を評価することができる。その結果、データパケットの到着順の逆転が生じる可能性がより少なくなる。
【0094】
3.実施形態2
(1)通信装置20の構成
図16を用いて、本実施形態の通信装置20の構成を説明する。
図16において、実施形態1の通信装置10と同様の構成については、実施形態1の
図2と同一の符号を付し、
図2の説明を引用する。
【0095】
実施形態1の通信装置10との相違点は、本実施形態の通信制御部200に、各通信部をデータ伝送時間が短い順に並べるソート部201を有すること、及びソート部201で通信部を並べ替えることを前提に、バッファオフセット量計算部2021でバッファオフセット量を計算すること、である。
【0096】
通信制御部200は、データ伝送時間取得部121、ソート部201、送信可否判断部122、及びデータパケット選択部202を有する。データパケット選択部202は、バッファオフセット量計算部2021及びデータパケット割当部1232を有する。
【0097】
ソート部201は、N個の通信部を、各々の通信部に対応する通信回線のデータ伝送時間が短い順に並べ替える。
【0098】
図5及び
図17を用いて並べ替えを説明する。
例えば、
図5のW1、W2、W3は、W2<W1<W3の関係にある。そこで、本実施形態のソート部201は、第2通信部112、第1通信部111、第3通信部113の順番に並べ替えた後、
図17に示す通り、改めて各通信部のインデックスを振りなおす。この例では、第2通信部112と第1通信部111の名称が入れ替わり、データ伝送時間の短い順に、第1通信部111、第2通信部112、第3通信部113との順番とする。この場合、データ伝送時間は、W1<W2<W3となる。
【0099】
なお、ソート部201での並べ替えの頻度は、通信回線の通信環境の変動量に応じて変更してもよい。
あるいは、送信先装置11において受信処理が完了する順であるデータパケットの受信順と、送信バッファ100に格納されるデータパケットの格納順とが異なる場合に、ソート部201で並べ替えを実行してもよい。
【0100】
バッファオフセット量計算部2021は、送信可否判断部122が送信可能と判断した第k通信部(kは1~Nのいずれかの整数)に対応する通信回線のデータ伝送時間Wk内に、第k通信部よりデータ伝送時間が短い第m通信部11m(mは1~k-1の正の整数)が送信し送信先装置11での受信処理が完了できるデータパケットの総数から、バッファオフセット量を求める。
【0101】
図17の例で、送信可否判断部122により第1通信部111が送信可能と判断された場合、第1通信部111よりデータ伝送時間が短い通信部はないので、バッファオフセット量は常に0となる。
送信可否判断部122により第2通信部112が送信可能と判断された場合、第2通信部よりデータ伝送時間が短いのは第1通信部111なので、W2の間に第1通信部111が送信し送信先装置11での受信処理が完了できるデータパケットの数から、バッファオフセット量を求める。
送信可否判断部122により第3通信部113が送信可能と判断された場合、第3通信部113よりデータ伝送時間が短いのは第1通信部111及び第2通信部112なので、W3の間に第1通信部111又は第2通信部112が送信し送信先装置11での受信処理 が完了できるデータパケットの数の総数から、バッファオフセット量を求める。
【0102】
すなわち、送信可否判断部122により送信可能と判断された通信部よりも通信速度の遅い通信部はバッファオフセット量を求める際には考慮しない。これは、送信可能であると判断した通信部よりも通信速度の遅い通信部は、たとえ送信可能な状態であったとしても送信可能であると判断した通信部よりも早くデータパケットの送信が完了することはないからである。
【0103】
(2)通信装置20の動作
図18及び
図19を用いて本実施形態の通信装置20の動作について説明する。
図18及び
図19は、本実施形態の通信装置20の動作を示すが、実施形態1の通信装置10と同様の動作のステップについては
図7から
図9までの符号と同一の符号を付し、
図7から
図9までの説明を引用する。
【0104】
ソート部201は、N個の通信部を、各々の通信部に対応する通信回線のデータ伝送時間が短い順に並べ替える(S201)。例えば、並べ替えに際し、各々の通信部に付したインデックスiが小さいほどデータ伝送時間が短くなるようにインデックスiを入れ替える。
【0105】
S201以降の処理は、
図7と同様である。ただし、S104で送信可能と判断された第k通信部に対し、送信すべきデータパケットを送信バッファ100の中から選択し、第k通信部に割り当てる(S202)。S202については動作の詳細が異なるので、以下
図19で説明する。
【0106】
図19において、バッファオフセット量計算部2021は、最もデータ伝送時間が短い通信部である第1通信部111(k=1)の処理であるか否かを判断する(S241)。第1通信部111の処理ならば(S241:Y)、処理をS242に進め、それ以外は(S241:N)、処理をS243に進める。
【0107】
第1通信部111(k=1)の処理である場合、第1通信部111でのバッファオフセット量は常に0となるので、送信バッファ100の先頭のデータパケットを選択し、第1通信部111に割り当てる(S242)。
【0108】
第1通信部111(k=1)以外の処理である場合、第k通信部に対応する通信回線CHkの伝送時間Wkの間に、第m通信部(mは1以上k未満)が送信するデータパケットの総数Qを求める(S243)。
【0109】
【0110】
なお、
図18に示す通信装置20の動作では、S102のデータ伝送時間の取得及びS201のソート処理は、S102からS110のループが終了する毎に行われるが、通信回線の通信環境に応じて頻度を調整してもよい。例えば、第k通信部がACK信号を受信したら直ちに、データ伝送時間の取得及びソート処理を行ってもよい。これにより、最新のデータ伝送時間がソート処理に反映される。
【0111】
(3)通信装置20の動作の具体例
図20から
図24及び
図15を用いて、データパケットの割り当てと送信バッファの更新に注目した通信装置20の動作例を示す。
【0112】
動作例はN=3、すなわち使用する通信回線が3個の場合である。
図20に示すように、第1通信部111が時刻t2からデータパケットを送信可能であり、第2通信部112が時刻t1からデータパケットを送信可能であり、第3通信部113が時刻t3からデータパケットを送信可能であるとする。それまでの時刻では、それぞれの通信部は送信待ちの状態であり、送信可能ではないとする。本実施形態では、ソート部201により予めデータ伝送時間が短い順に並べ替えられているので、W1<W2<W3となっている。
【0113】
図21は、時刻t1の時点における各通信回線の状況を示す。送信可否判断部122は、時刻t1において、第2通信部112が送信可能と判断する。
図21に示すように、時刻t1に第1通信部211からデータパケットが送信されるとすると、時刻a3に送信先装置11で受信処理が完了する。この時刻t1から時刻a3までの時間であるデータ伝送時間W2の間に、第2通信部112よりデータ伝送時間が短い第1通信部111から送信し、送信先装置11で受信処理が完了可能なデータパケットの数は2個である。そこで、バッファオフセット量計算部1231は、バッファオフセット量を2とする。
そして、
図15(a)に示すように、t=t1において、送信バッファ100の先頭から2個オフセットさせて、第2通信部112で送信すべきデータパケットとしてP3が割り当てられる。その後送信バッファ100が更新され、送信バッファ100からP3が削除される。
【0114】
図22は、時刻t2の時点における各通信回線の状況を示す。送信可否判断部122は、時刻t2において、第1通信部111が送信可能と判断する。
図22に示すように、第1通信部111は最もデータ伝送時間が短い通信回線に対応する通信部であるので、
図15(b)に示すように、送信バッファ100の先頭にあるP1が割り当てられる。その後送信バッファ100が更新され、送信バッファ100からP1が削除される。
【0115】
図23は、時刻t3の時点における各通信回線の状況を示す。送信可否判断部122は、時刻t3において、第3通信部113が送信可能と判断する。なお、時刻t3において、第1通信部111はまだP1を送信中であるので、送信可能ではない。また、時刻t3において、第2通信部112はまだP3を送信中であるので、送信可能ではない。
図23に示すように、時刻t3に第3通信部113からデータパケットが送信されるとすると、時刻a7に送信先装置11で受信処理が完了する。この時刻t3から時刻a7までの時間であるデータ伝送時間W3の間に、第3通信部113よりデータ伝送時間が短い第1通信部111及び第2通信部112から送信し、送信先装置11で受信処理が完了可能なデータパケットの数は、第1通信部111で3個、第2通信部で1個、合計4個である。そこで、バッファオフセット量計算部1231は、バッファオフセット量を4とする。
そして、
図15(c)に示すように、t=t3において、送信バッファ100の先頭から4個オフセットさせて、第3通信部113で送信すべきデータパケットとしてP7が割り当てられる。その後送信バッファ100が更新され、送信バッファ100からP7が削除される。
【0116】
図24は、時刻t4の時点における各通信回線の状況を示す。送信可否判断部122は、時刻t4において、第1通信部111からP1の送信が終了することにより送信待ちが解消され、第1通信部111が送信可能と判断する。
図24に示すように、第1通信部111は最もデータ伝送時間が短い通信回線に対応する通信部であるので、
図15(d)に示すように、送信バッファ100の先頭にあるP2が割り当てられる。その後送信バッファ100が更新され、送信バッファ100からP2が削除される。
【0117】
以上、時刻t1からt4までの場合のデータパケットの割り当てにかかる動作について説明したが、残りのデータパケットについても、送信可否判断部122によって、第1通信部111、第2通信部112、第3通信部113のいずれかが送信可能と判断された時刻において、同様に割り当てればよい。
【0118】
(4)小括
本実施形態の通信装置20によれば、ソート部201で予めデータ伝送時間が短い順に通信部を並べた上でバッファオフセット量を計算するので、バッファオフセット量計算部2021の処理が簡単になり、処理時間も短縮できる。
【0119】
4.その他変形例
(1)データ伝送時間を取得するタイミング
各データパケットにデータパケットの処理順序を表すシーケンス番号が付されている場合、送信先装置11はデータパケットの受信が完了したとき、ACK信号に受信が完了したデータパケットのシーケンス番号を含めて送信する。このため、通信装置10(20)では、送信バッファ100の格納順に送信先装置11での受信処理が完了しているかを確認することができる。
【0120】
そこで、通信装置10(20)の通信制御部120(200)は、送信先装置11において「受信処理が完了」する順であるデータパケットの受信順と、送信バッファ100に格納されるデータパケットの格納順とが異なる場合には、データ伝送時間取得部121に対し、データ伝送時間を改めて取得するように指示するようにしてもよい。
【0121】
この構成によれば、送信先装置11においてデータパケットの到着順が逆転した場合には通信環境が変動したと推認されるので、各通信回線の最新のデータ伝送時間をあらためて取得することにより、その後の各通信部へのデータパケットの割り当てを正しく行うことができる。その結果、送信先装置11において、受信するデータパケットの順序が逆転しないようにすることができる。
【0122】
(2)データ伝送時間の演算方法の変更
データ伝送時間取得部121は、上述の通り、(式2)~(式5)の演算方法でデータ伝送時間を演算・取得することができる。もっとも、それぞれの演算式は精度や時刻同期の要否が異なる。そこで、通信回線の通信環境の変動や、上記(1)のパケットの到達順の逆転の有無によって、演算式を変更するようにしてもよい。例えば、(式4)は概算であるので、パケットの到達順の逆転が頻繁に生じる場合は(式3)に変更してもよい。あるいは、データ伝送時間に最も余裕のある(式5)に変更してもよい。また、通信装置10(20)と送信先装置11との時刻同期をとることができる場合は、(式2)に変更してもよい。
【0123】
(3)ウインドウ制御
実施形態1及び実施形態2の説明では、送信先装置11はデータパケットの受信毎にACK信号を通信装置10(20)に返信していた。しかし、通信装置10(20)の通信部は、それぞれウインドウサイズ(ウインドウサイズは1以上のデータパケット数)を設定し、ACK信号を待たずにウインドウサイズのパケットを続けて送信するウインドウ制御を行うようにしてもよい。
図25は、第1通信部111はウインドウサイズ3、第2通信部112はウインドウサイズ2、第3通信部113はウインドウサイズ1とした例である。この場合、バッファオフセット量計算部1231(2021)は、第k通信部以外の第m通信部のウインドウサイズに基づき、バッファオフセット量を求めるとよい。
【0124】
(4)「受信処理が完了」について
「受信処理が完了」することが特定されている機能ブロックは、送信バッファ100、データ伝送時間取得部121、バッファオフセット量計算部1231(2021)、通信制御部100(200)である。「受信処理が完了」の意味は、全て同じでもよいし、機能ブロック毎に異なってもよい。異なる場合の例として、送信バッファ100における「受信処理が完了」とは、送信先装置11でのデータパケットの受信が完了した時点、データ伝送時間取得部121における「受信処理が完了」とは、ACK信号を通信装置10(20)が受信した時点、としてもよい。
【0125】
5.総括
以上、本発明の各実施形態における通信装置等の特徴について説明した。
各実施形態で使用した用語は例示であるので、同義の用語、あるいは同義の機能を含む用語に置き換えてもよい。
【0126】
実施形態の説明に用いたブロック図は、装置の構成を機能毎に分類及び整理したものである。それぞれの機能を示すブロックは、ハードウェア又はソフトウェアの任意の組み合わせで実現される。また、機能を示したものであることから、かかるブロック図は方法の発明、及び当該方法を実現するプログラムの発明の開示としても把握できるものである。
【0127】
各実施形態に記載した処理、フロー、及び方法として把握できるブロック、については、一のステップでその前段の他のステップの結果を利用する関係にある等の制約がない限り、順序を入れ替えても良い。
【0128】
本発明の通信装置は、特許請求の範囲で特に限定する場合を除き、車両用途でも良いし、車両用途以外の専用又は汎用の通信装置も含むものである。
【0129】
また、本発明の通信装置の形態の例として、半導体素子、電子回路、モジュール、マイクロコンピュータが挙げられる。
半完成品の形態として、電子制御装置(ECU(Electric Control Unit))、システムボードが挙げられる。
完成品の形態として、携帯電話、スマートフォン、タブレット、パーソナルコンピュータ(PC)、ワークステーション、サーバが挙げられる。
その他、通信機能を有するデバイス等を含み、例えば、カーナビゲーションシステムが挙げられる。
【0130】
本発明の通信装置は、各種サービスの提供を目的とするために用いられることが想定される。かかるサービスの提供に伴い、本発明の通信装置が使用され、本発明の方法が使用され、又は/及び本発明のプログラムが実行されることになる。
【0131】
加えて、本発明は、各実施形態で説明した構成及び機能を有する専用のハードウェアで実現できるだけでなく、メモリやハードディスク等の記録媒体に記録した本発明の通信制御部を実現するためのプログラム、及びこれを実行可能な専用又は汎用CPU及びメモリ等を有する汎用のハードウェアと複数の通信回線の通信ハードウェアの組み合わせとしても実現できる。
【0132】
本発明の通信装置のためのプログラムであって、専用や汎用のハードウェアの非遷移的実体的記録媒体(例えば、外部記憶装置(ハードディスク、USBメモリ、CD/BD等)、又は内部記憶装置(RAM、ROM等))に格納されるプログラムは、記録媒体を介して、あるいは記録媒体を介さずにサーバから通信回線を経由して、専用又は汎用のハードウェアに提供することもできる。これにより、プログラムのアップグレードを通じて常に最新の機能を提供することができる。
【産業上の利用可能性】
【0133】
本発明の通信装置は、複数の通信回線を使用して通信を行う通信装置として、車両の駐車中及び走行中の通信、船舶、航空機等での通信、又は固定設備で大量のデータを扱う通信等、幅広く適用可能である。
【符号の説明】
【0134】
10、20 通信装置、100 送信バッファ、110 通信部、120、200 通信制御部、121 データ伝送時間取得部、122 送信可否判断部、1231、2021 バッファオフセット量計算部、1232 データパケット割当部、201 ソート部