(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022178213
(43)【公開日】2022-12-02
(54)【発明の名称】通信制御装置、通信制御方法、及び通信制御プログラム
(51)【国際特許分類】
H04L 13/00 20060101AFI20221125BHJP
G06F 13/00 20060101ALI20221125BHJP
【FI】
H04L13/00 305D
H04L13/00 307Z
G06F13/00 520B
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2021084837
(22)【出願日】2021-05-19
(71)【出願人】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】230120499
【弁護士】
【氏名又は名称】藤江 和典
(74)【代理人】
【識別番号】100201385
【弁理士】
【氏名又は名称】中安 桂子
(72)【発明者】
【氏名】古山 卓宏
【テーマコード(参考)】
5B084
5K034
【Fターム(参考)】
5B084AA02
5B084BB11
5B084DB01
5B084DC19
5K034AA17
5K034DD02
5K034FF02
5K034HH21
5K034MM21
5K034MM25
(57)【要約】 (修正有)
【課題】オーバーヘッドを抑制した装置を提供する。
【解決手段】通信制御装置10は、第1のデータを保存している保存部102と、新たなデータ要素を第2のデータとして取得する取得部101と、第2のデータを送信する優先度が所定の基準値よりも高い場合は、複数の第1のデータのうち、第1のデータの第1のデータサイズと第2のデータの第2のデータサイズとの和が第1の閾値よりも小さい第1のデータを結合先データとして選択し、優先度が所定の基準値よりも低い場合は、複数の第1のデータのうち、データサイズの和が第2の閾値よりも小さい第1のデータを結合先データとして選択する、選択部1031と、結合先データと第2のデータとを結合して結合データを生成し、結合データを第1のデータとして保存部に保存する結合データ生成部1032と、複数の第1のデータのうち少なくとも一の第1のデータを送信データとして送信する送信部104とを備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
一又は複数のデータ要素を含む複数の第1のデータを保存している保存部(102)と、
新たなデータ要素を第2のデータとして取得する取得部(101)と、
前記第2のデータを送信する優先度が所定の基準値よりも高い場合は、前記複数の第1のデータのうち、第1のデータの第1のデータサイズと前記第2のデータの第2のデータサイズとの和が第1の閾値よりも小さい第1のデータを結合先データとして選択し、
前記優先度が前記所定の基準値よりも低い場合は、前記複数の第1のデータのうち、前記第1のデータサイズと前記第2のデータサイズとの和が前記第1の閾値よりも大きい閾値である第2の閾値よりも小さい第1のデータを結合先データとして選択する、
選択部(1031)と、
前記結合先データと前記第2のデータとを結合して結合データを生成し、前記結合データを第1のデータとして前記保存部に保存する結合データ生成部(1032)と、
複数の第1のデータのうち少なくとも一の第1のデータを送信データとして送信する送信部(104)と、
を備える、通信制御装置(10)。
【請求項2】
前記優先度が前記所定の基準値よりも低く、且つ、前記結合先データが前記所定の基準値よりも高い優先度を有する前記データ要素を含む場合、前記選択部はさらに、前記結合先データの前記第1のデータサイズと前記第2のデータサイズとの和が前記第1の閾値よりも小さいかどうかを判定し、
前記和が前記第1の閾値よりも小さい場合、前記結合データ生成部は、前記結合先データと前記第2のデータとを結合して前記結合データを生成し、
前記和が前記第1の閾値よりも大きい場合、前記送信部は、前記結合先データを前記送信データとして送信する、
請求項1記載の通信制御装置。
【請求項3】
前記優先度が前記所定の基準値よりも高く、且つ、前記和が前記第1の閾値よりも小さい第1のデータがない場合、
前記送信部は、前記複数の第1のデータのうち一の第1のデータを前記送信データとして送信し、
前記結合データ生成部は、前記第2のデータを第1のデータとして前記保存部に保存する、
請求項1記載の通信制御装置。
【請求項4】
前記優先度が前記所定の基準値よりも低く、且つ、前記和が前記第2の閾値よりも小さい第1のデータがない場合、
前記送信部は、前記複数の第1のデータのうち一の第1のデータを前記送信データとして送信し、
前記結合データ生成部は、前記第2のデータを第1のデータとして前記保存部に保存する、
請求項1記載の通信制御装置。
【請求項5】
前記送信部は、前記複数の第1のデータのうち、前記第1のデータサイズが最も大きい第1のデータを前記送信データとして送信する、
請求項3又は4記載の通信制御装置。
【請求項6】
前記送信部は、前記複数の第1のデータのうち、前記所定の基準値よりも高い優先度を有するデータ要素をさらに含む前記第1のデータを前記送信データとして送信する、
請求項5記載の通信制御装置。
【請求項7】
前記優先度が前記所定の基準値よりも高く、且つ、前記和が前記第1の閾値よりも小さい第1のデータがない場合、
前記結合データ生成部は、前記第1のデータの一部のデータサイズと前記第2のデータサイズとの和が前記第1の閾値よりも小さい前記一部である部分データを抜き出すとともに、前記部分データと前記第2のデータとを結合して結合データを生成し、
前記送信部は、前記結合データが生成されると直ちに前記結合データを前記送信データとして送信する、
請求項1記載の通信制御装置。
【請求項8】
前記優先度が前記所定の基準値よりも高く、且つ、前記和が前記第1の閾値よりも小さい第1のデータがない場合、
前記結合データ生成部は、前記第1のデータに含まれる前記データ要素のうち前記所定の基準値よりも高い優先度を有する前記データ要素である高優先データのデータサイズと前記第2のデータサイズとの和が前記第1の閾値よりも小さい前記高優先度データを抜き出すとともに、前記高優先度データと前記第2のデータとを結合して結合データを生成し、
前記送信部は、前記結合データが生成されると直ちに前記結合データを前記送信データとして送信する、
請求項1記載の通信制御装置。
【請求項9】
前記第1の閾値はMTU(Maximum Transmission Unit)である、
請求項1記載の通信制御装置。
【請求項10】
一又は複数のデータ要素を含む複数の第1のデータを保存している保存部を備える通信制御装置で実行する通信制御方法であって、
新たなデータ要素を第2のデータを取得し(S101)、
前記第2のデータを送信する優先度が所定の基準値よりも高い場合は、前記複数の第1のデータのうち、第1のデータの第1のデータサイズと前記第2のデータの第2のデータサイズとの和が第1の閾値よりも小さい第1のデータを結合先データとして選択し(S102、S103、S104)、
前記優先度が前記所定の基準値よりも低い場合は、前記複数の第1のデータのうち、前記第1のデータサイズと前記第2のデータサイズとの和が前記第1の閾値よりも大きい閾値である第2の閾値よりも小さい第1のデータを結合先データとして選択し(S102、S109、S110)、
前記結合先データと前記第2のデータとを結合して結合データを生成し、前記結合データを第1のデータとして前記保存部に保存し(S105、S112)、
複数の第1のデータのうち少なくとも一の第1のデータを送信データとして送信する(S107)、
通信制御方法。
【請求項11】
一又は複数のデータ要素を含む複数の第1のデータを保存している保存部を備える通信制御装置で実行可能な通信制御プログラムであって、
新たなデータ要素を第2のデータを取得し(S101)、
前記第2のデータを送信する優先度が所定の基準値よりも高い場合は、前記複数の第1のデータのうち、第1のデータの第1のデータサイズと前記第2のデータの第2のデータサイズとの和が第1の閾値よりも小さい第1のデータを結合先データとして選択し(S102、S103、S104)、
前記優先度が前記所定の基準値よりも低い場合は、前記複数の第1のデータのうち、前記第1のデータサイズと前記第2のデータサイズとの和が前記第1の閾値よりも大きい閾値である第2の閾値よりも小さい第1のデータを結合先データとして選択し(S102、S109、S110)、
前記結合先データと前記第2のデータとを結合して結合データを生成し、前記結合データを第1のデータとして前記保存部に保存し(S105、S112)、
複数の第1のデータのうち少なくとも一の第1のデータを送信データとして送信する(S107)、
通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信装置におけるデータの送信を制御する通信制御装置、通信制御方法、及び通信制御プログラムに関する。
【背景技術】
【0002】
通信機能を有する電子制御装置では一般に、アプリケーション等のユーザ空間上においてデータが生成されると、通信路を用いて当該データを送信するためにカーネルを介したデータの送信処理が行われる。カーネルでは、データの送信処理を行うために、実行中のプロセスから送信プロセスへの切り替えが行われることになるが、ユーザ空間上で生成された小さいサイズのデータが高い頻度でカーネルに送信されると、プロセスの切り替えに伴うオーバーヘッドによって通信性能が低下するおそれがある。
【0003】
そこで、従来、ユーザ空間上で生成されたデータサイズの小さいデータを複数結合するとともに、結合したデータをカーネルに送信することにより、オーバーヘッドを削減して通信機能の低下を防止することが知られている。さらに、このような手法と併せて、緊急の処理を有するデータが到着した場合には、強制的にデータの送信処理を行うことが知られている。
【0004】
例えば、特許文献1には、複数のデータを結合して1つの大きなデータブロックにまとめ、データブロックの大きさが閾値を超えた場合、あるいは、結合中のデータブロックに緊急性の高いデータが含まれる場合に、メモリ容量が異なるパケットメモリの中から結合中のデータブロックの大きさに適したメモリを選択して、選択したパケットメモリに結合中のデータブロックを転送することが記載されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
ここで、本発明者は、以下の課題を見出した。
特許文献1に記載の方法によれば、メモリ容量が異なるパケットメモリを使用することにより、メモリ中の未使用領域のサーチが不要となり、処理量を低減することができる。しかしながら、緊急性が高いデータを連続して受信した場合、当該データはその度に転送処理が行われることになるため、データを連続してカーネルに送信することによって生じるオーバーヘッドを十分に削減することができない。そのため、緊急性が高いデータを連続して受信した場合であってもオーバーヘッドの削減効果がある通信制御を行うことが望ましい。
【0007】
そこで、本発明は、緊急性が高いデータを遅滞なく送信しながら、オーバーヘッドの増加を抑制することができる通信制御装置等を実現することを目的とする。
【課題を解決するための手段】
【0008】
本開示の送信制御装置は、
一又は複数のデータ要素を含む複数の第1のデータを保存している保存部(102)と、
新たなデータ要素を第2のデータとして取得する取得部(101)と、
前記第2のデータを送信する優先度が所定の基準値よりも高い場合は、前記複数の第1のデータのうち、第1のデータの第1のデータサイズと前記第2のデータの第2のデータサイズとの和が第1の閾値よりも小さい第1のデータを結合先データとして選択し、
前記優先度が前記所定の基準値よりも低い場合は、前記複数の第1のデータのうち、前記第1のデータサイズと前記第2のデータサイズとの和が前記第1の閾値よりも大きい閾値である第2の閾値よりも小さい第1のデータを結合先データとして選択する、
選択部(1031)と、
前記結合先データと前記第2のデータとを結合して結合データを生成し、前記結合データを第1のデータとして前記保存部に保存する結合データ生成部(1032)と、
複数の第1のデータのうち少なくとも一の第1のデータを送信データとして送信する送信部(104)と、を備える。
【0009】
なお、特許請求の範囲、及び本項に記載した発明の構成要件に付した括弧内の番号は、本発明と後述の実施形態との対応関係を示すものであり、本発明を限定する趣旨ではない。
【発明の効果】
【0010】
上述のような構成により、本開示の通信制御装置は、優先度が低いデータは大きなデータサイズになるまで他のデータと結合して送信し、さらに、優先度が高いデータについても他のデータと結合して遅滞なく送信することで、オーバーヘッドの増加を抑制することができる。
【図面の簡単な説明】
【0011】
【
図1】実施形態1、2の通信制御装置の構成例を示すブロック図
【
図2】実施形態1、2の通信制御装置の保存部に保存されるデータを説明する図
【
図3】実施形態1、2の通信制御装置の保存部に保存されるデータを説明する図
【
図4】実施形態1、2の通信制御装置の動作を説明する図
【
図5】実施形態2の通信制御装置で生成される結合データを説明する図
【
図6】実施形態2の通信制御装置で生成される結合データを説明する図
【発明を実施するための形態】
【0012】
以下、本発明の実施形態について、図面を参照して説明する。
【0013】
なお、本発明とは、特許請求の範囲又は課題を解決するための手段の項に記載された発明を意味するものであり、以下の実施形態に限定されるものではない。また、少なくともかぎ括弧内の語句は、特許請求の範囲又は課題を解決するための手段の項に記載された語句を意味し、同じく以下の実施形態に限定されるものではない。
【0014】
特許請求の範囲の従属項に記載の構成及び方法は、特許請求の範囲の独立項に記載の発明において任意の構成及び方法である。従属項に記載の構成及び方法に対応する実施形態の構成及び方法、並びに特許請求の範囲に記載がなく実施形態のみに記載の構成及び方法は、本発明において任意の構成及び方法である。特許請求の範囲の記載が実施形態の記載よりも広い場合における実施形態に記載の構成及び方法も、本発明の構成及び方法の例示であるという意味で、本発明において任意の構成及び方法である。いずれの場合も、特許請求の範囲の独立項に記載することで、本発明の必須の構成及び方法となる。
【0015】
実施形態に記載した効果は、本発明の例示としての実施形態の構成を有する場合の効果であり、必ずしも本発明が有する効果ではない。
【0016】
複数の実施形態がある場合、各実施形態に開示の構成は各実施形態のみで閉じるものではなく、実施形態をまたいで組み合わせることが可能である。例えば一の実施形態に開示の構成を、他の実施形態に組み合わせてもよい。また、複数の実施形態それぞれに開示の構成を集めて組み合わせてもよい。
【0017】
発明が解決しようとする課題に記載した課題は公知の課題ではなく、本発明者が独自に知見したものであり、本発明の構成及び方法と共に発明の進歩性を肯定する事実である。
【0018】
1.実施形態1
(1)通信制御装置10の構成
図1を参照して、実施形態1の通信制御装置10の構成を説明する。通信制御装置10は、取得部101、保存部102、制御部103、及び送信部104を備える。
【0019】
取得部101は、新たなデータ要素(「第2のデータ」に相当)を取得するデータ取得部である。取得部101は例えば、通信制御装置10を備える通信端末装置(図示せず)に搭載されたアプリケーションが新たなデータ要素を生成する度に、アプリケーションから新たなデータ要素を取得する。あるいは、取得部101は、通信制御装置10とは異なる装置からネットワークを介してデータ要素を取得してもよい。以下の実施形態では、取得部101が新たに取得したデータ要素を、取得データと称する。
【0020】
なお、
図1では図示していないが、取得部101が新たに取得したデータ要素は、制御部103による制御に基づいて保存部102に保存されるまで、一旦FIFO(First In First Out)メモリに格納されてもよい。
【0021】
保存部102は、一又は複数のデータ要素を含む複数のデータ(「第1のデータ」に相当)を保存するメモリである。保存部102は例えば、DRAMやSRAM等の揮発性メモリを想定しているが、フラッシュメモリやハードディスク(HDD)等の不揮発性メモリであってもよい。以下の実施形態では、保存部102に保存されている複数のデータをそれぞれ保存データと称する。
【0022】
図2、
図3は、保存部102に保存されている保存データを説明する図である。
図2、
図3に示す例では、保存部102はバッファ#1~#nを有しており、それぞれのバッファが保存データを保存している。したがって、保存部102は最大n個の保存データを保存することができる。保存データに含まれるデータ要素は、取得部101が過去に取得したデータ要素である。保存データを構成するデータ要素の数は任意であり、バッファ#1の保存データのように複数のデータ要素を含む場合はもちろん、バッファ#3の保存データのように1つのデータ要素のみを含む場合もある。保存データを構成するデータ要素はそれぞれ、自身のデータ要素を送信する優先度を示す情報を有している。
【0023】
なお、
図2、
図3の例では、1つの保存部102が複数のバッファ(#1~#n)を有し、複数のバッファがそれぞれ保存データを保存している状態を例示して説明している。しかしながら、通信制御装置10が複数の保存部を備え、複数の保存部がそれぞれ保存データを保存する構成であってもよい。
【0024】
制御部103は、取得部101、保存部102、及び送信部104の動作を制御する。また、制御部103は、それ自身で、結合先データ選択部1031、結合データ生成部1032、及び送信データ選択部1033を実現する。
【0025】
結合先データ選択部1031(「選択部」に相当)は、保存部102に保存されている複数の保存データそれぞれのデータサイズ(「第1のデータサイズ」に相当)、取得データの「優先度」、及び取得データのデータサイズ(「第2のデータサイズ」に相当)に基づいて、保存部102に保存されている複数の保存データの中から1つの保存データを選択する。結合先データ選択部1031が選択した保存データは、後述する結合データ生成部1032によって取得データと結合されるデータの候補である。そのため、結合先データ選択部1031が選択するデータは、取得データの結合先データといえる。
【0026】
ここで、「優先度」とは、データを送信する優先順位を示す指標である。この指標は、例えば、データの遅延許容時間やデータの種別といった所定の評価基準に基づいて設定される。
【0027】
具体的には、結合先データ選択部1031は、取得データを送信する優先度が「所定の」「基準値」「よりも」高いか否かを判定する。ここで、取得データの優先度が所定の基準値よりも高いと判定した場合、結合先データ選択部1031は、保存部102のバッファに保存されている複数の保存データのうち、保存データのデータサイズと取得データのデータサイズとの和が予め設定された閾値データサイズ(以下、第1の閾値)よりも小さい保存データを、結合先データとして選択する。
【0028】
ここで、「所定の」とは、常に一定の場合の他、条件に応じて一意に定まる場合も含む。
「基準値」とは、数字に限定されるものではなく、例えば、a、b、cのように複数のレベルで示されるものであってもよい。
「よりも」とは、比較対象と同じ値を含む場合及び含まない場合の両方が含まれる。
【0029】
一方、取得データの優先度が所定の基準値よりも低いと判定した場合、結合先データ選択部1031は、保存部102のバッファに保存されている複数の保存データのうち、保存データのデータサイズと取得データのデータサイズとの和が、予め設定された閾値データサイズであって、上述した第1の閾値よりも大きい閾値(以下、第2の閾値)よりも小さい保存データを、結合先データとして選択する。
【0030】
結合先データ選択部1031はさらに、選択した結合先データが、所定の基準値よりも高い優先度を有するデータ要素を含んでいるかどうかを判定する。選択した結合先データが高い優先度を有するデータ要素を含んでいる場合、結合先データ選択部1031はさらに、選択した結合先データのデータサイズと取得データのデータサイズとの和が、第1の閾値よりも小さいかどうかを判定する。ここで、データサイズの和が第1の閾値よりも小さいと判定した場合には、結合先データ選択部1031は、選択した結合先データを、取得データの結合先となる結合先データとして最終的に決定する。これに対し、選択した結合データのデータサイズと、取得データのデータサイズとの和が第1の閾値よりも大きいと判定した場合には、結合先データ選択部1031は、取得データの結合先となる保存データはないと判定する。
【0031】
結合先データ選択部1031が、取得データの優先度が所定の基準値よりも高いと判定した場合であって、データサイズの和が第1の閾値よりも小さい保存データが保存部102に保存されていない場合、及び、取得データの優先度が所定の基準値よりも低いと判定した場合であって、データサイズの和が第2の閾値よりも小さい保存データが保存されていない場合、には、結合先データ選択部1031は、取得データの結合先となる保存データはないと判定する。
【0032】
第1の閾値は、例えば、MTU(Maximum Transmission Unit)の値に設定される。優先度が高いデータ要素を含む保存データは、第1の閾値よりも小さいデータサイズになるまで他のデータ要素と結合され、送信される。MTU以上のデータサイズのデータは送信する際にフラグメント化されるため、送信路においてパケットロスが発生する可能性がある。パケットロスが発生した場合、全てのデータが再送されることになるため送信遅延につながるおそれがある。そこで、優先度が高いデータ要素を含む保存データのデータサイズをMTUよりも小さくすることで、優先度が高いデータ要素において送信遅延が発生するのを防ぐことができる。
【0033】
一方、第2の閾値は任意の値に設定される。第2の閾値に設定される値が大きいほど、多くのデータをまとめて送信することが可能となるため、オーバーヘッドの増加、ひいては、通信性能の低下を抑制することができる。しかしながら、第2の閾値の値が大きくなるほど、フラグメント化したデータのパケットロスが発生する可能性が高くなり、ひいては、送信遅延が発生する可能性が高くなる。そのため、第2の閾値は、通信性能とパケットロスによる影響とを考慮して設定されることが望ましい。
【0034】
なお、第1の閾値及び第2の閾値は、固定の値に限定されるものではない。例えば、これらの閾値は、カーネルの処理負荷や送信路の負荷に応じて動的に変化する値であってもよい。
【0035】
結合データ生成部1032は、結合先データ選択部1031が選択した結合先データと、取得データとを結合して結合データを生成する。生成された結合データは、結合先データとして選択された保存データが保存されていたバッファに、新たな保存データとして保存される。
【0036】
結合データ生成部1032はさらに、結合先データ選択部1031が取得データの結合先となる保存データがないと判定した場合、取得部101が取得した取得データを保存データとしてバッファに保存する。なお、取得データの結合先となる保存データがないと判定された場合、保存部102に保存されている複数の保存データのうち1の保存データが送信部104から送信される。そのため、取得データの保存先となるバッファは、送信部104から送信された保存データが保存されていたバッファである。
【0037】
送信データ選択部1033は、保存部102のバッファに保存されている複数の保存データのうち少なくとも一の保存データを、後述する送信部104が送信する送信データとして選択する。送信データ選択部1033による保存データの選択については後述する。
【0038】
送信部104は、送信データ選択部1033が選択した保存データを、送信データとして「送信する」。本実施形態では、送信部104は、通信制御装置10のカーネルに送信データを送信する機能、すなわち、通信制御装置10の内部で送信データを転送する機能を有するものを想定している。しかしながら、送信部104は、自身が通信制御装置10の通信インターフェースとしての機能を有し、送信データをIPパケットとしてネットワークを介して他の通信装置に送信するものであってもよい。
【0039】
ここで、「送信する」とは、ネットワークを介して他の通信装置に送信データを送信する場合はもちろん、他の通信装置に送信データを送信する機能を有する通信機にデータを送信することを含む。
【0040】
(2)結合先データ選択部1031による結合先データの選択
結合先データ選択部1031による、取得データの結合先となる保存データの選択についてさらに説明する。
【0041】
まずは、保存部102が
図2に示す各保存データを保存している状態で、取得部101が所定の基準値よりも高い優先度のデータ要素を取得した場合を説明する。この場合、バッファ#1の保存データのデータサイズは第1の閾値を超えているため、当然のことながら、保存データのデータサイズと取得データのデータサイズとの和は第1の閾値を超える。また、バッファ#2の保存データのデータサイズと、取得データのデータサイズとの和も、第1の閾値を超える。一方、バッファ#3又はバッファ#nの保存データのデータサイズと、取得データのデータサイズとの和は第1の閾値を超えない。そこで、結合先データ選択部1032は、バッファ#3又はバッファ#nの保存データを、取得データの結合先として選択する。
【0042】
図2に示すように、データサイズの和が第1の閾値を超えない保存データが複数ある場合、それらの保存データの中から1つの保存データを結合先データとして選択する方法は任意である。
【0043】
例えば、結合先データ選択部1031は、データサイズの和が第1の閾値を超えない複数の保存データのうち、データサイズが最も大きい保存データを結合先データとして選択する。この場合、
図2の例では、結合先データ選択部1031は、バッファ#nの保存データを選択する。データサイズが大きい保存データを取得データの結合先として選択することで、データサイズが大きい保存データから順に、そのデータサイズが第1の閾値又は第2の閾値に近くなり、ひいては、送信データとして早くに送信される可能性が高くなる。
【0044】
別の例では、結合先データ選択部1031は、データサイズの和が第1の閾値を超えない複数の保存データのうち、最も高い優先度を有するデータ要素を含む保存データを、取得データの結合先として選択してもよい。例えば、優先度が許容遅延時間に基づいて設定される場合、データの許容遅延時間に達するまでの時間が短いほど、そのデータを送信する優先度は高いと言える。そこで、そのような優先度のデータを含む保存データを取得データの結合先と選択することで、優先度が高いデータ要素を含む保存データから順に、そのデータサイズが第1の閾値又は第2の閾値に近いものとなり、ひいては、送信データとして早くに送信される可能性が高くなる。
【0045】
次に、保存部102が
図2に示す各保存データを保存している状態で、取得部101が、所定の基準値よりも低い優先度のデータ要素を取得した場合を説明する。この場合、バッファ#1の保存データのデータサイズと取得データのデータサイズとの和は、第2の閾値を超える。一方、バッファ#2、#3又は#nの保存データのデータサイズと、取得データのデータサイズとの和は第2の閾値を超えない。そこで、結合先データ選択部1032は、バッファ#2、#3又は#nの保存データを、取得データの結合先として選択する。データサイズの和が第2の閾値を超えない保存データが複数ある場合に、それらの保存データの中から1つの保存データを選択する方法は、第1の閾値の場合と同じである。ここでは、データサイズが最も大きいバッファ#2の保存データを、取得データの結合先として選択する。
【0046】
次に、結合先データ選択部1031は、選択した結合先データが、所定の基準値よりも高い優先度を有するデータ要素を含むかどうかを判定する。
図2の例では、バッファ#2の保存データは、所定の基準値よりも高い優先度のデータ要素を含んでいない。そこで、結合先データ選択部1031は、バッファ#2の保存データを、取得データの結合先データとして最終的に選択する。
【0047】
図3は、バッファ#2に保存されている保存データが
図2とは異なる例を示している。
図3では、バッファ#2の保存データは、所定の基準値よりも高い優先度を有するデータ要素を含んでいる。
図3の保存データの場合、結合先データ選択部1031は、バッファ#2の保存データのデータサイズと、取得データのデータサイズとの和が、第1の閾値よりも低いかどうかを判定する。
図3の例では、データサイズの和は第1の閾値よりも大きくなるため、結合先データ選択部1031は、取得データの結合先となる保存データはないものと判定する。
図3の例において、仮にデータサイズの和が第1の閾値よりも小さい場合には、結合先データ選択部1031は、選択したバッファ#2の保存データを、取得データの結合先として最終的に決定する。
【0048】
(3)送信データ選択部1033による送信データの選択
次に、送信データ選択部1033による、送信部104から送信する送信データの選択についてさらに説明する。
【0049】
送信データ選択部1033は、例えば、以下に例示する方法で、保存部102に保存されている複数の保存データのうち1つの保存データを送信データとして選択する。
例えば、送信データ選択部1033は、保存データのデータサイズが最も大きい保存データを送信データとして選択する。これにより、カーネルに送信するデータサイズを大きくすることができ、オーバーヘッドを抑制することができる。あるいは、所定の基準値よりも高い優先度を有するデータ要素を含む保存データの中で、データサイズが最も大きい保存データを送信データとして選択してもよい。別の例では、最も高い優先度を有するデータ要素を含む保存データを、送信データとして選択してもよい。
ただし、特定の条件を満たした場合に選択される保存データは上述した方法では選択されず、特定の保存データが送信データとして選択される。
【0050】
送信データ選択部1033は、結合先データ選択部1031が、取得データの結合先となる保存データがないと判定した場合に送信データを選択する。具体的には、送信データ選択部1033が送信データを選択するタイミングは、以下のタイミングである。
(a)取得データの優先度が所定の基準値よりも高く、且つ、データサイズの和が第1の閾値よりも小さい保存データがない場合
(b)取得データの優先度が所定の基準値よりも低く、且つ、データサイズの和が第2の閾値よりも小さい保存データがない場合
(c)取得データの優先度が所定の基準値よりも低く、且つ、データサイズの和が第2の閾値よりも小さい保存データが所定の基準値よりも高い優先度のデータ要素を含んでおり、更に、データサイズの和が第1の閾値よりも大きい場合
なお、(c)の場合、送信データ選択部1033は、結合先データ選択部1031が選択した保存データを、送信データとして選択する。ただし、結合先データ選択部1031がデータサイズのみを考慮して保存データを選択している場合には、送信データ選択部1033は、優先度をさらに考慮して保存データを選択しなおしてもよい。
【0051】
送信データ選択部1033はさらに、上記(a)~(c)のタイミングに加えて、以下のタイミングで送信データを選択してもよい。
(d)取得部101が新たなデータ要素を取得しない場合
(e)保存部102に、許容遅延時間に達したデータを含む保存データが保存されている場合
(f)直前に送信部104が送信データを送信してから所定の時間が経過した場合
なお、(e)は、許容遅延時間に達したデータに限定されるものではなく、許容遅延時間に達するまでの時刻が所定の時間未満となり、許容遅延時間が近づいているデータ要素を含む保存データが保存されている場合であってもよい。(e)の場合、送信データ選択部1033は、許容遅延時間に近づいているデータ要素を含む保存データを、送信データとして選択する。
【0052】
(4)通信制御装置10の動作
次に、
図4を参照して、本実施形態の通信制御装置10の動作を説明する。なお、以下の動作は、通信制御装置10におけるデータの送信制御方法を示すだけでなく、通信制御装置10で実行されるデータの送信制御プログラムの処理手順を示すものである。そして、これらの処理は、
図4で示した順序には限定されない。すなわち、あるステップでその前段のステップの結果を利用する関係にある等の制約がない限り、順序を入れ替えてもよい。
以上、本実施形態だけでなく、本実施形態の変形例や他の実施形態においても同様である。
【0053】
取得部101は、アプリケーション又は他の通信装置から送信された新たなデータ要素を取得データとして取得する(S101)。
結合先データ選択部1031は、S101で取得した取得データを送信する優先度が、所定の基準値よりも高いか否かを判定する(S102)。
取得データの優先度が所定の基準値よりも高い場合(S102:Yes)、結合先データ選択部1031はさらに、取得データのデータサイズと、保存部102に保存されている保存データのデータサイズとの和が第1の閾値よりも小さい保存データがあるかどうかを判定する(S103)。
【0054】
データサイズの和が第1の閾値よりも小さい保存データがある場合(S103:Yes)、結合先データ選択部1031は、データサイズの和が第1の閾値よりも小さい保存データを、取得データの結合先となる保存データとして選択する(S104)。
そして、結合データ生成部1032は、取得データと、結合先データ選択部1031が選択した保存データとを結合して結合データを生成し、生成した結合データを保存部102に保存データとして保存する(S105)。
【0055】
一方、データサイズの和が第1の閾値よりも小さい保存データがない場合(S103:No)、結合先データ選択部1031は、取得データの結合先となる保存データはないと判定する。そして、送信データ選択部1033は、保存部102に保存されている保存データのうち一の保存データを、送信データとして選択する(S106)。
送信部104は、S106で選択された送信データを送信する(S107)。
そして、結合データ生成部1032は、送信データが保存されていたバッファに、取得データを保存データとして保存する(S108)。
【0056】
S102において、データの優先度が所定の基準値よりも低い場合(S102:No)、結合先データ選択部1031は、取得データのデータサイズと、保存部102に保存されている保存データのデータサイズとの和が第2の閾値よりも小さい保存データがあるかどうかを判定する(S109)。
データサイズの和が第2の閾値よりも小さい保存データがある場合(S109:Yes)、結合先データ選択部1031は、第2の閾値よりも小さい保存データを、取得データの結合先となる保存データとして選択する(S110)。
次いで、結合先データ選択部1031は、S110で選択した保存データに、所定の基準値よりも高い優先度を有するデータ要素が含まれているかどうかを判定する(S111)。
S111で判定した結果、優先度が高いデータ要素が含まれていない場合、結合データ生成部1032は、取得データと、結合先データ選択部1031が選択した保存データとを結合して結合データを生成し、生成した結合データを保存部102に保存データとして保存する(S112)。
【0057】
データサイズの和が第2の閾値よりも小さい保存データがない場合(S109:No)、結合先データ選択部1031は、取得データの結合先となる保存データはないと判定する。この場合、上述したS106~S108と同じ処理を行う。
【0058】
一方、S111で判定した結果、優先度が高いデータ要素が含まれている場合、結合先データ選択部1031はさらに、S110で選択した保存データのデータサイズと、取得データのデータサイズとの和が第1の閾値よりも小さいかどうかを判定する(S113)。
ここで、データサイズと和が第1の閾値よりも小さい場合には、S112の処理、すなわち、取得データと、選択した保存データとを結合して結合データを生成し、生成した結合データを保存部102に保存する(S112)。
また、データサイズの和が第1の閾値よりも大きい場合には、上述したS106~S108の処理を行う。この場合、S106で選択される送信データは、S110で選択された保存データである。
【0059】
(5)小括
以上、本実施形態によれば、優先度が高いデータ要素は、第1の閾値よりも小さいデータサイズのデータとなるように他のデータ要素と結合されて送信される。これにより、優先度が高いデータ要素を高い頻度で取得した場合でも、オーバーヘッドを抑制することができ、通信性能の低下を抑制することができる。さらに、第1の閾値をMTUに設定することにより、優先度が高いデータ要素を含むデータの送信時にパケットロスが発生するのを防ぎ、パケットロスに伴う送信遅延を防ぐことができる。
【0060】
さらに、本実施形態によれば、優先度が低いデータ要素は、第1の閾値よりも大きいデータサイズまで他のデータ要素と結合することができるため、データの送信処理に伴うオーバーヘッドを抑制することが可能となる。
【0061】
2.実施形態2
実施形態1では、送信部104は、保存部102の各バッファに保存されている保存データを送信データとして送信した。本実施形態では、保存部102に保存されている保存データに基づいて新たなデータを生成し、送信部104が新たに生成されたデータを送信データとして送信する構成を説明する。本実施形態は、取得データの優先度が所定の基準値よりも高いデータである場合に適用される。
【0062】
本実施形態の通信制御装置10の構成は、以下に説明する場合を除き、実施形態1と同じであるため、
図1を参照して本実施形態の通信制御装置10を説明する。
【0063】
本実施形態の結合データ生成部1032は、後述する方法を用いて保存データを新たに生成する。本実施形態では、結合データ生成部1032が新たに生成する保存データを保存するために、保存部102は空の予備バッファを有していることが望ましい。
【0064】
(1)方法1
図5を参照して、結合データ生成部1032が新たな結合データを生成する方法1を説明する。
【0065】
方法1では、実施形態1と同様、送信データ選択部1033は、複数の保存データのうち1つの保存データを選択する。
図5aは、送信データ選択部1033が、バッファ#1に保存されている保存データを選択した状態を示している。送信データ選択部1033がバッファ#1に保存されている保存データを選択すると、結合データ生成部1032は、バッファ#1に保存されている保存データの一部のデータサイズと取得データのデータサイズとの和が第1の閾値よりも小さくなるように、保存データの一部のデータ(「部分データ」に相当)を抜き出す。そして、結合データ生成部1032は、抜き出した保存データの一部のデータと取得データとを結合して、新たな結合データを生成する。
図5aは、保存データの一部のデータと取得データとを結合して生成された結合データを示している。なお、保存データの一部のデータは、保存データのうち古いデータ要素から順に抜き出されることが望ましい。
【0066】
図5bは、新たに生成された結合データが予備バッファに保存され、バッファ#1には、バッファ#1に元々保存されていた保存データから一部のデータが抜き出された状態の保存データが保存されている状態を示している。
結合データ生成部1032が結合データを生成して、予備バッファに保存すると「直ちに」、送信部104は予備バッファに保存されている結合データを送信データとして送信する。
【0067】
ここで、「直ちに」とは、結合データが生成されてから必要な準備を行った後である場合も含む。
【0068】
実施形態1の例では、優先度が高いデータ要素を取得した場合であって、当該データ要素の結合先となる保存データがない場合、複数の保存データのうち一の保存データを送信して、空いたバッファに取得データを保存した。しかしながら、この場合、優先度が高いデータ要素が保存データの先頭に位置することになるため、当該データ要素を含む保存データが他のデータ要素と結合されて送信されるまでに時間が掛かる可能性がある。
【0069】
そこで、本実施形態の方法1によれば、優先度が高いデータ要素を取得した場合、既に保存部102に保存されている保存データの一部を抜き出すとともに、抜き出した保存データの一部と、新たに取得したデータとを結合して新たな結合データを生成し、その結合データを直ちに送信することで、新たに取得した優先度の高いデータを遅滞なく送信することが可能となる。
【0070】
(2)方法2
次に、
図6を参照して、結合データ生成部1032が新たな結合データを生成する方法2を説明する。
方法2では、方法1と同様、送信データ選択部1033は、複数の保存データのうち1つの保存データを選択する。
図6aは、送信データ選択部1033が、バッファ#1に保存されている保存データを選択した状態を示している。送信データ選択部1033がバッファ#1に保存されている保存データを選択すると、結合データ生成部1032は、バッファ#1に保存されている保存データの中から、優先度が所定の基準値よりも高いデータ要素(「高優先度データ」に相当)のみを抜き出す。そして、結合データ生成部1032は、抜き出した高い優先度のデータ要素のデータサイズと、取得データとを結合して結合データを生成する。なお、バッファ#1に保存されている保存データが高い優先度のデータ要素を多く含む場合には、結合データ生成部1032は、データ要素のデータサイズと取得データのデータサイズとの和が第1の閾値よりも小さくなるように、高い優先度のデータ要素を抜き出す。
【0071】
図6bは、新たに生成された結合データが予備バッファに保存され、バッファ#1には、バッファ#1に元々保存されていた保存データから、優先度が高いデータ要素が抜き出された状態の保存データが保存されている状態を示している。
結合データ生成部1032が結合データを生成して、予備バッファに保存すると「直ちに」、生成部104は予備バッファに保存されている結合データを送信データとして送信する。
【0072】
なお、
図6では、結合データ生成部1032は、1つのバッファ(バッファ#1)に含まれる高い優先度のデータ要素のみを抜き出して新たな結合データを生成している。しかしながら、結合データ生成部1032は、複数の保存データから優先度の高いデータ要素をそれぞれ抜き出して、新たな結合データを生成してもよい。
【0073】
方法1と同様、方法2では、高い優先度を有するデータを取得した場合に、当該データを含む新たな結合データを生成して、その結合データを直ちに送信することで、新たに取得した優先度の高いデータを遅滞なく送信することが可能となる。
【0074】
3.総括
以上、本発明の各実施形態における通信制御装置等の特徴について説明した。
【0075】
各実施形態で使用した用語は例示であるので、同義の用語、あるいは同義の機能を含む用語に置き換えてもよい。
【0076】
実施形態の説明に用いたブロック図は、装置の構成を機能毎に分類及び整理したものである。それぞれの機能を示すブロックは、ハードウェア又はソフトウェアの任意の組み合わせで実現される。また、機能を示したものであることから、かかるブロック図は方法の発明、及び当該方法を実現するプログラムの発明の開示としても把握できるものである。
【0077】
各実施形態に記載した処理、フロー、及び方法として把握できる機能ブロック、については、一のステップでその前段の他のステップの結果を利用する関係にある等の制約がない限り、順序を入れ替えてもよい。
【0078】
各実施形態、及び特許請求の範囲で使用する、第1、第2、乃至、第N(Nは整数)、の用語は、同種の2以上の構成や方法を区別するために使用しており、順序や優劣を限定するものではない。
【0079】
また、本発明の通信制御装置の形態の例として、以下のものが挙げられる。
部品の形態として、半導体素子、電子回路、モジュール、マイクロコンピュータが挙げられる。
半完成品の形態として、電子制御装置(ECU(Electric Control Unit))、システムボードが挙げられる。
完成品の形態として、携帯電話、スマートフォン、タブレット、パーソナルコンピュータ(PC)、ワークステーション、サーバが挙げられる。
その他、通信機能を有するデバイス等を含み、例えばビデオカメラ、スチルカメラ、カーナビゲーションシステムが挙げられる。
【0080】
また、通信制御装置に、アンテナや通信用インターフェースなど、必要な機能を追加してもよい。
【0081】
加えて、本発明は、各実施形態で説明した構成及び機能を有する専用のハードウェアで実現できるだけでなく、保存部やハードディスク等の記録媒体に記録した本発明を実現するためのプログラム、及びこれを実行可能な専用又は汎用CPU及び保存部等を有する汎用のハードウェアとの組み合わせとしても実現できる。
【0082】
専用や汎用のハードウェアの非遷移的実体的記録媒体(例えば、外部記憶装置(ハードディスク、USB保存部、CD/BD等)、又は内部記憶装置(RAM、ROM等))に格納されるプログラムは、記録媒体を介して、あるいは記録媒体を介さずにサーバから通信回線を経由して、専用又は汎用のハードウェアに提供することもできる。これにより、プログラムのアップグレードを通じて常に最新の機能を提供することができる。
【産業上の利用可能性】
【0083】
本発明は、汎用の通信装置の通信制御を行うための通信制御装置を対象としている。
【符号の説明】
【0084】
10 通信制御装置、101 データ取得部、102 保存部、1031 結合先データ選択部、1032 結合データ生成部、送信部104