(57)【要約】【課題】中継装置のバッファに溜まっているデータを適切にアグリゲートする。【解決手段】中継装置は、複数の送信装置のうちの一の送信装置が、複数の受信装置のうちの一の受信装置に向けて対象データを送信したことに対し、受信装置が対象データを受信したことを示す受信通知が送信されないことを検知する場合、対象データを中継データ１１に格納するオーバーヒア処理部２１と、前回、所定の受信装置宛にアグリゲートした対象データの設定アグリゲート数を、乱数と閾値との比較に基づいて増減して、今回の設定アグリゲート数を算出する設定アグリゲート数算出部２３と、所定の受信装置宛の各対象データの数が、今回の設定アグリゲート数になった場合、所定の受信装置宛の各対象データをアグリゲートしたデータを、所定の受信装置に向けて送信する中継部２２を備える。【選択図】図４
2020145608.tif 000002
【特許請求の範囲】
【請求項１】
対象データの送信先となる複数の受信装置と、
前記複数の送信装置のそれぞれと通信可能な中継装置を備え、
前記中継装置は、
前記複数の送信装置のうちの一の送信装置が、前記複数の受信装置のうちの一の受信装置に向けて対象データを送信したことに対し、前記受信装置が前記対象データを受信したことを示す受信通知が送信されないことを検知する場合、前記対象データを中継データに格納するオーバーヒア処理部と、
前回、所定の受信装置宛にアグリゲートした対象データの設定アグリゲート数を、乱数と閾値との比較に基づいて増減して、今回の設定アグリゲート数を算出する設定アグリゲート数算出部と、
所定の受信装置宛の各対象データの数が、前記今回の設定アグリゲート数になった場合、前記所定の受信装置宛の各対象データをアグリゲートしたデータを、前記所定の受信装置に向けて送信する中継部
を備えることを特徴とする通信システム。
【請求項２】
前記設定アグリゲート数算出部は、
乱数が、閾値に所定値を加算した値よりも大きい場合、前回の設定アグリゲート数を増やして今回の設定アグリゲート数を算出し、
乱数が、閾値に所定値を減算した値よりも小さい場合、前回の設定アグリゲート数を減らして今回の設定アグリゲート数を算出し、
乱数と閾値との差異が所定値以内の場合、前回の設定アグリゲート数を今回の設定アグリゲート数を算出する
ことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記設定アグリゲート数算出部は、式（１）により、対象データの今回の設定アグリゲート数を算出する
ことを特徴とする請求項１に記載の通信システム。
【数１】
2020145608.tif 000005
【請求項４】
対象データの送信先となる複数の受信装置と、前記複数の送信装置のそれぞれと通信可能な中継装置を備える通信システムに用いられる中継装置であって、
前記複数の送信装置のうちの一の送信装置が、前記複数の受信装置のうちの一の受信装置に向けて対象データを送信したことに対し、前記受信装置が前記対象データを受信したことを示す受信通知が送信されないことを検知する場合、前記対象データを中継データに格納するオーバーヒア処理部と、
前回、所定の受信装置宛にアグリゲートした対象データの設定アグリゲート数を、乱数と閾値との比較に基づいて増減して、今回の設定アグリゲート数を算出する設定アグリゲート数算出部と、
所定の受信装置宛の各対象データの数が、前記今回の設定アグリゲート数になった場合、前記所定の受信装置宛の各対象データをアグリゲートしたデータを、前記所定の受信装置に向けて送信する中継部
を備えることを特徴とする中継装置。
【請求項５】
対象データの送信先となる複数の受信装置と、前記複数の送信装置のそれぞれと通信可能な中継装置を備える中継装置に用いられる中継方法であって、
前記中継装置が、複数の送信装置のうちの一の送信装置が、前記複数の受信装置のうちの一の受信装置に向けて対象データを送信したことに対し、前記受信装置が前記対象データを受信したことを示す受信通知が送信されないことを検知する場合、前記対象データを中継データに格納するステップと、
前記中継装置が、前回、所定の受信装置宛にアグリゲートした対象データの設定アグリゲート数を、乱数と閾値との比較に基づいて増減して、今回の設定アグリゲート数を算出するステップと、
前記中継装置が、所定の受信装置宛の各対象データの数が、前記今回の設定アグリゲート数になった場合、前記所定の受信装置宛の各対象データをアグリゲートしたデータを、前記所定の受信装置に向けて送信するステップ
を備えることを特徴とする中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の装置を備える通信システム、通信システムに用いられる中継装置および中継方法に関する。
【背景技術】
【０００２】
無線を使用するアドホックネットワークにおける複数の装置間の通信プロトコルとして、AODV(Ad hoc On-Demand Distance Vector)、DSR(Dynamic Source Routing)等が知られている。これらのプロトコルは、動的に転送経路を選択するので、自動車の車内など、通信環境、乗車人数、乗車位置などの様々な条件で通信品質が変化する環境に好適である。
【０００３】
また無線を使用するアドホックネットワークにおいて、送信装置が受信装置に直接通信できない場合、ネットワークに属するその他の装置が中継装置となって、送信装置の代わりに、受信装置に向けて送信する。これを短時間に行う方式として、代理通信の方法がある（特許文献１参照）。
【０００４】
また中継装置は、バッファに溜まっているデータが複数ある場合に、その複数のデータをアグリゲートして他の中継装置に一括送信することが知られている（特許文献２参照）。特許文献２において中継装置は、所定時間毎にバッファに溜められているデータをアグリゲートする。
【０００５】
また送信装置が、中継装置における中継送信待ち時間として、乱数と閾値を比較して得られた値を送信データに設定する方法がある（非特許文献１参照）。非特許文献１において、中継装置は、送信装置が設定した中継送信待ち時間に従って、データを処理する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−２２５８５９号公報
【特許文献２】特開２０１４−２７４０６号公報
【非特許文献】
【０００７】
【非特許文献１】山崎  託、山本  嶺、國立  忠秀、田中  良明、"待機時間に基づくOpportunistic Routingにおける乱数情報を用いたパラメータ制御"、信学技報、電子情報通信学会、平成３０年１月１８日、vol.117, no.385, NS2017-149, pp.29-34
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１は、代理通信について開示し、特許文献２は、バッファに複数のデータが溜まっている場合にこれらのデータを定期的にアグリゲートすることを開示する。しかしながら、通信が生じるタイミングは一定ではないことから、中継装置がデータを定期的にアグリゲートする場合、中継装置において、データが滞留したり、データの無駄な待機が生じたりする場合がある。また非特許文献１は、送信装置がデータに設定する中継送信待ち時間への言及に留まる。
【０００９】
従って本発明の目的は、中継装置のバッファに溜まっているデータを適切にアグリゲートする通信システム、通信システムに用いられる中継装置および中継方法を提供することである。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明の第１の特徴は、対象データの送信先となる複数の受信装置と、複数の送信装置のそれぞれと通信可能な中継装置を備える通信システムに関する。第１の特徴に係る通信システムにおいて中継装置は、複数の送信装置のうちの一の送信装置が、複数の受信装置のうちの一の受信装置に向けて対象データを送信したことに対し、受信装置が対象データを受信したことを示す受信通知が送信されないことを検知する場合、対象データを中継データに格納するオーバーヒア処理部と、前回、所定の受信装置宛にアグリゲートした対象データの設定アグリゲート数を、乱数と閾値との比較に基づいて増減して、今回の設定アグリゲート数を算出する設定アグリゲート数算出部と、所定の受信装置宛の各対象データの数が、今回の設定アグリゲート数になった場合、所定の受信装置宛の各対象データをアグリゲートしたデータを、所定の受信装置に向けて送信する中継部を備える。
【００１１】
設定アグリゲート数算出部は、乱数が、閾値に所定値を加算した値よりも大きい場合、前回の設定アグリゲート数を増やして今回の設定アグリゲート数を算出し、乱数が、閾値に所定値を減算した値よりも小さい場合、前回の設定アグリゲート数を減らして今回の設定アグリゲート数を算出し、乱数と閾値との差異が所定値以内の場合、前回の設定アグリゲート数を今回の設定アグリゲート数を算出しても良い。
【００１２】
設定アグリゲート数算出部は、式（１）により、対象データの今回の設定アグリゲート数を算出しても良い。
【００１３】
【数１】
2020145608.tif 000003
【００１４】
本発明の第２の特徴は、対象データの送信先となる複数の受信装置と、複数の送信装置のそれぞれと通信可能な中継装置を備える通信システムに用いられる中継装置に関する。本発明の第２の特徴に係る中継装置は、複数の送信装置のうちの一の送信装置が、複数の受信装置のうちの一の受信装置に向けて対象データを送信したことに対し、受信装置が対象データを受信したことを示す受信通知が送信されないことを検知する場合、対象データを中継データに格納するオーバーヒア処理部と、前回、所定の受信装置宛にアグリゲートした対象データの設定アグリゲート数を、乱数と閾値との比較に基づいて増減して、今回の設定アグリゲート数を算出する設定アグリゲート数算出部と、所定の受信装置宛の各対象データの数が、今回の設定アグリゲート数になった場合、所定の受信装置宛の各対象データをアグリゲートしたデータを、所定の受信装置に向けて送信する中継部を備える。
【００１５】
本発明の第３の特徴は、対象データの送信先となる複数の受信装置と、複数の送信装置のそれぞれと通信可能な中継装置を備える中継装置に用いられる中継方法に関する。本発明の第２の特徴に係る中継方法は、中継装置が、複数の送信装置のうちの一の送信装置が、複数の受信装置のうちの一の受信装置に向けて対象データを送信したことに対し、受信装置が対象データを受信したことを示す受信通知が送信されないことを検知する場合、対象データを中継データに格納するステップと、中継装置が、前回、所定の受信装置宛にアグリゲートした対象データの設定アグリゲート数を、乱数と閾値との比較に基づいて増減して、今回の設定アグリゲート数を算出するステップと、中継装置が、所定の受信装置宛の各対象データの数が、今回の設定アグリゲート数になった場合、所定の受信装置宛の各対象データをアグリゲートしたデータを、所定の受信装置に向けて送信するステップを備える。
【発明の効果】
【００１６】
本発明によれば、中継装置のバッファに溜まっているデータを適切にアグリゲートする通信システム、通信システムに用いられる中継装置および中継方法を提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施の形態に係る通信システムのシステム構成図である。
【図２】本発明の実施の形態に係る中継装置が送信するデータ構造の一例である。
【図３】本発明の実施の形態に係る通信方法のシーケンス図である。
【図４】本発明の実施の形態に係る中継装置のハードウエア構成と機能ブロックを説明する図である。
【図５】本発明の実施の形態に係る中継データの構造とデータの一例を説明する図である。
【図６】本発明の実施の形態に係るオーバーヒア処理部の処理を説明するフローチャートである。
【図７】本発明の実施の形態に係る中継部の処理を説明するフローチャートである。
【図８】本発明の実施の形態に係るアグリゲート数算出部の処理を説明するフローチャートである。
【図９】本発明の実施例に係る通信システムのシステム構成図である。
【図１０】本発明の実施例に係る乱数および設定アグリゲート数等の経緯を説明する図である。
【発明を実施するための形態】
【００１８】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一または類似の部分には同一または類似の符号を付している。
【００１９】
（通信システム）
図１を参照して、本発明の実施の形態に係る通信システム５を説明する。通信システム５は、複数の通信装置１を備え、各通信装置が網状に接続され、無線メッシュネットワークを構成する。
【００２０】
図１に示す通信システム５は、第１の通信装置１ａ、第２の通信装置１ｂ、第３の通信装置１ｃおよび第４の通信装置１ｄを備える。本発明の実施の形態において第１の通信装置１ａ、第２の通信装置１ｂ、第３の通信装置１ｃおよび第４の通信装置１ｄを特に区別しない場合、単に通信装置１と記載する場合がある。また図１は、４つの通信装置を備えるが、通信装置の数はこれに限るものではない。
【００２１】
本発明の実施の形態において、各通信装置１は、各通信における役割に応じて、送信装置、受信装置または中継装置として機能する。各通信装置１は、対象データを送信する際は送信装置として機能する場合がある。また各通信装置１は、対象データの送信先となる際は受信装置として機能する場合がある。また各通信装置１は、送信装置および受信装置間の通信を中継する中継装置として機能する場合がある。ここで対象データは、送信装置が受信装置に向けて送信するリクエストまたは応答に係るデータであって、後述の代理通信の対象となるデータである。
【００２２】
本発明の実施の形態に係る通信システム５は、例えば乗用車の内部などの限られた空間に設けられる。各通信装置１は、コントローラに設置されるとともに、例えば車のドア、ルームランプ、窓などの各設備に対応して設置され、各設備の状態をコントローラに送信したり、コントローラから各設備の状態を変更する指示を受信したりする。
【００２３】
通信システム５は、アドホック方式で、各通信装置１間の無線通信を実現する。各通信装置１の位置、電波環境等により、各通信装置１は直接通信できない場合がある。本発明の実施の形態において第１の通信装置１ａは、第２の通信装置１ｂおよび第３の通信装置１ｃと通信可能であるが、第４の通信装置１ｄと通信できない。第２の通信装置１ｂは、第１の通信装置１ａ、第３の通信装置１ｃおよび第４の通信装置１ｄと通信可能である。第３の通信装置１ｃは、第１の通信装置１ａ、第２の通信装置１ｂおよび第４の通信装置１ｄとは通信可能である。第４の通信装置１ｄは、第２の通信装置１ｂおよび第３の通信装置１ｃとは通信可能であるが、第１の通信装置１ａと通信できない。
【００２４】
このような状況において、第１の通信装置１ａが、第４の通信装置１ｄに対象データの送信を試みる場合、第１の通信装置１ａと第４の通信装置１ｄは直接に通信できない。従って第２の通信装置１ｂ（または第３の通信装置１ｃ）が、第１の通信装置１ａに代わって通信する（代理通信）。具体的には、第１の通信装置１ａが対象データを第４の通信装置１ｄに送信する際、下記の手順で通信が行われる。
【００２５】
（１）オーバーヒア
第１の通信装置１ａが対象データを第４の通信装置１ｄに向けて送信すると、第２の通信装置１ｂは、オーバーヒアを行う。オーバーヒアにおいて第２の通信装置１ｂは、第１の通信装置１ａから第４の通信装置１ｄ宛に対象データが送信されたことを検知する。さらに第２の通信装置１ｂは、対象データが送信された後、対象データに対する受信通知（Ack）が送信されなかったことを検知する。
【００２６】
（２）代理通信
第２の通信装置１ｂは、オーバーヒアした後、代理通信を行う。代理通信において第２の通信装置１ｂは、その対象データを含む代理通信データを、第１の通信装置１ａに代わって第４の通信装置１ｄに向けて送信する。代理通信した後、第２の通信装置１ｂは、第４の通信装置１ｄから代理通信データについての受信通知を待機する。第４の通信装置１ｄから受信通知を受信しない場合、第２の通信装置１ｂは、所定の時間間隔かつ所定回数、代理通信データの送信を繰り返しても良い。
【００２７】
（３）代理通信の完了通知
第２の通信装置１ｂは、第４の通信装置１ｄに対象データを代理通信したことに対し、第４の通信装置１ｄから受信通知を受信すると、第１の通信装置１ａに代理通信の完了通知を通知する。第１の通信装置１ａは、代理通信の完了通知を受信すると、対象データが第４の通信装置１ｄに受信されたと認識する。これにより、送信元から送信先に対象データを送信する一連の通信が完了する。
【００２８】
このような代理通信において第２の通信装置１ｂが送受信する代理通信に関するデータは、例えば図２に示すように、リンクアドレスとして送信元アドレスＰ１および宛先アドレスＰ２、エンドアドレスとして送信元アドレスＰ３および宛先アドレスＰ４、種別Ｐ５およびデータＰ６を備える。代理通信に関するデータは、図２に示す項目以外の項目を含んでも良い。
【００２９】
リンクアドレスは、第２の通信装置１ｂが行う代理通信のデータについて、Link to Linkで直接接続する通信装置１のアドレスを特定する。エンドアドレスは、第２の通信装置１ｂが送信する代理通信データに対する対象データを送受信する、End to Endの通信装置１のアドレスが設定される。第２の通信装置１ｂが、第１の通信装置１ａから第４の通信装置１ｄへの通信を代理通信する場合、リンクアドレスの送信元アドレスＰ１に第２の通信装置１ｂのアドレスが設定され、宛先アドレスＰ２に第４の通信装置１ｄのアドレスが設定される。エンドアドレスの送信元アドレスＰ３に第１の通信装置１ａのアドレスが設定され、宛先アドレスＰ４に第４の通信装置１ｄのアドレスが設定される。種別Ｐ５には、代理通信または代理通信の完了通知等の、代理通信に関するデータ種別を設定する。データＰ６は、送信対象のデータ（ペイロード）であって、対象データが設定されたり、完了通知の旨が設定されたりする。データＰ６は固定長であっても良いし可変長であっても良い。可変長である場合、データ長を示す項目が設けられても良い。
【００３０】
（通信方法）
図３を参照して、本発明の実施の形態に係る通信方法を説明する。図３に示す例において、実線は通信可能であることを示し、破線は通信できないことを示す。図３において、第２の通信装置１ｂが中継装置として機能する場合を説明する。
【００３１】
ステップＳ１において第２の通信装置１ｂは、設定アグリゲート数を算出する。第２の通信装置１ｂは、例えば、所定の受信装置宛の対象データをアグリゲートした後、その所定の受信装置宛の対象データをアグリゲートするために中継データ（バッファ）に格納する際、設定アグリゲート数を算出する。第２の通信装置１ｂは、その所定の受信装置宛の対象データが、ステップＳ１で算出した設定アグリゲート数になると、対象データをアグリゲートして、受信装置に向けて送信する。図３に示す例において第２の通信装置１ｂは、第４の通信装置１ｄ宛の対象データに関する設定アグリゲート数を算出する。
【００３２】
まず直接通信が成功する場合を説明する。ここでは、送信装置は、第１の通信装置１ａであり、受信装置は、第３の通信装置１ｃである。
【００３３】
ステップＳ２において、第１の通信装置１ａが第３の通信装置１ｃへの第１の対象データの直接通信を試みる。このとき第２の通信装置１ｂは、ステップＳ２の通信を傍受し、ステップＳ３において第１の対象データを一時保存し、第１の対象データに関する受信通知（Ack）を、所定時間監視する。ステップＳ４において、所定時間内に第３の通信装置１ｃから第１の通信装置１ａに第１の対象データに対する受信通知が送信されると、第２の通信装置１ｂは、その受信通知を検知し、ステップＳ５において、ステップＳ３で一時保存した第１の対象データを削除する。
【００３４】
一方、直接通信が失敗し、代理通信を行う場合を説明する。ここでは、送信装置は、第１の通信装置１ａであり、受信装置は、第４の通信装置１ｄである。第１の通信装置１ａと第４の通信装置１ｄは直接通信できないので、第２の通信装置１ｂが、代理通信を行う中継装置となる。
【００３５】
ステップＳ６において第１の通信装置１ａは、第４の通信装置１ｄへの第２の対象データの直接通信を試みる。このとき第２の通信装置１ｂは、ステップＳ６の通信を傍受し、ステップＳ７において第２の対象データを一時保存し、第２の対象データに関する受信通知を所定時間監視する。ステップＳ６で試みた第２の対象データの直接通信は、第４の通信装置１ｄに送信されないので、ステップＳ８において、所定時間内に第４の通信装置１ｄから第１の通信装置１ａに第２の対象データに対する受信通知が、送信されない。従って、第２の通信装置１ｂは、ステップＳ９において、ステップＳ７で一時保存した第２の対象データを中継データに格納し、第２の対象データの代理通信を待機する。
【００３６】
第２の対象データは、送信条件を満たすまで中継データ内で待機する。この間、通信システム５において、複数の対象データの直接送信が試みられる。第２の通信装置１ｂは、オーバーヒアした際には、中継データに逐次、オーバーヒアした対象データを格納する。その結果、中継データに複数の対象データが格納される。中継データに格納された対象データの宛先は、複数存在しても良いし、ある宛先に送信される対象データが複数あっても良い。
【００３７】
ステップＳ１０において第２の通信装置１ｂは、中継データに格納した対象データについて所定の送信条件を満たすか否かを判定する。例えば第２の通信装置１ｂは、中継データに格納された対象データのうち、第４の通信装置１ｄ宛の対象データの数が、ステップＳ１で算出した設定アグリゲート数に達するか否かを判定する。ステップＳ１０の処理は、第２の通信装置１ｂが送信可能なタイミングで実行されても良い。
【００３８】
第４の通信装置１ｄ宛の対象データの数が、ステップＳ１で算出した設定アグリゲート数に達すると判定した場合、ステップＳ１１において第２の通信装置１ｂは、第４の通信装置１ｄ宛の対象データをアグリゲートして、代理通信する。その場合、第２の通信装置１ｂは、例えばリンクアドレスの送信元アドレスＰ１に、第２の通信装置１ｂのアドレスを設定し、宛先アドレスＰ２に、第４の通信装置１ｄのアドレスを設定する。第２の通信装置１ｂは、エンドアドレス、種別およびデータに、中継データに格納された各対象データに対応する値を設定する。各対象データのエンドアドレスが共通する場合、エンドアドレスを繰り返し設定しないなど、データの項目は適宜設定されても良い。
【００３９】
ステップＳ１２において、ステップＳ１１に対する受信通知を受信すると、ステップＳ１３において第２の通信装置１ｂは、代理通信した通信装置１に、代理通信が完了した旨の完了通知を送信する。ステップＳ１１で代理通信した複数の対象データのエンドアドレスの送信元が複数ある場合、第２の通信装置１ｂは、それぞれの送信元の通信装置１に、代理通信の完了通知を送信する。
【００４０】
（通信装置）
図４を参照して、本発明の実施の形態に係る通信装置１を説明する。図４は、通信装置１が中継装置として機能する場合の構成を示し、通信装置１が送信装置または受信装置として機能する場合の構成は割愛する。通信装置１は、送信装置および受信装置と直接接続しても良いし、他の通信装置１を介して接続しても良い。
【００４１】
通信装置１は、記憶装置１０、処理装置２０、通信制御装置３０を備える一般的なコンピュータである。一般的な通信プログラム（中継プログラム）を実行することにより、図４に示す機能を実現する。
【００４２】
記憶装置１０は、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random access memory）、ハードディスク等であって、処理装置２０が処理を実行するための入力データ、出力データおよび中間データなどの各種データを記憶する。処理装置２０は、ＣＰＵ（Central Processing Unit）であって、記憶装置１０に記憶されたデータを読み書きしたり、通信制御装置３０とデータを入出力したりして、通信装置１における処理を実行する。通信制御装置３０は、通信装置１が、他の通信装置１と通信可能に接続するためのインタフェースである。
【００４３】
記憶装置１０は、通信プログラムを記憶するとともに、中継データ１１および設定アグリゲート数データ１２を記憶する。また記憶装置１０は、通信装置１がオーバーヒアする際に傍受したデータも一時的に保存する。
【００４４】
中継データ１１は、通信装置１の代理通信の対象となる対象データ群であって、対象データのバッファである。中継データ１１は、図５に示すように、代理通信の対象となる対象データを順にスタックする。図５は、対象データＡ、対象データＢ、対象データＣの順で、通信装置１がオーバーヒアしたことを示す。
【００４５】
中継データ１１は、同じ受信装置に送信される各対象データが送信条件を満たすまで、代理通信の対象となる対象データを保持する。本発明の実施の形態において、送信条件は、設定アグリゲート数を満たす対象データが集まったか否か、および、中継データ１１に対象データが格納されてから最大の待ち時間を経過したか否かのうち、いずれか早い方である。中継データ１１は、各対象データの保持を開始してからの経過時間を保持する。この経過時間は、送信時間として設定された最大の待ち時間との比較に用いられる。また同時に複数の受信装置宛の対象データが送信条件と満たした場合、より経過時間の長い対象データを含む受信装置宛の対象データを送信するために、経過時間が用いられても良い。また、ある受信装置宛の対象データが、設定アグリゲート数を越えている場合に、設定アグリゲート数以内の対象データを選択する際に用いられても良い。
【００４６】
設定アグリゲート数データ１２は、中継部２２が、複数の対象データをアグリゲートして送信する際に、アグリゲートされる対象データの数である。設定アグリゲート数は、宛先となる受信端末毎に設定される。
【００４７】
処理装置２０は、オーバーヒア処理部２１、中継部２２および設定アグリゲート数算出部２３を備える。
【００４８】
オーバーヒア処理部２１は、複数の送信装置のうちの一の送信装置が、複数の受信装置のうちの一の受信装置に向けて対象データを送信したことに対し、受信装置がこの対象データを受信したことを示す受信通知が送信されないことを検知する場合、この対象データを中継データ１１に格納する。オーバーヒア処理部２１は、定期的または所定のタイミングで、通信が行われているか否かを問い合わせても良い。
【００４９】
オーバーヒア処理部２１は、複数の送信装置のうちの一の送信装置が、複数の受信装置のうちの一の受信装置に向けて対象データを送信した際に、その対象データを記憶装置１０に一時保存する。オーバーヒア処理部２１は、所定時間内に受信装置がこの対象データを受信したことを示す受信通知が送信されないことを検知すると、一時保存した対象データを中継データ１１に格納し、代理通信に備える。
【００５０】
図６を参照して、オーバーヒア処理部２１の処理を説明する。
【００５１】
まずステップＳ１０１において、オーバーヒア処理部２１が通信システム５において対象データが送信されたことを検知すると、ステップＳ１０２において、その対象データに関する受信通知を、所定時間待機する。所定時間内に受信通知が送信されなかった場合、ステップＳ１０３において、ステップＳ１０１で検知した対象データを、中継データ１１に格納して、処理を終了する。
【００５２】
中継部２２は、所定の受信装置宛の各対象データの数が、今回の設定アグリゲート数になった場合、所定の受信装置宛の各対象データをアグリゲートしたデータを、所定の受信装置に向けて送信する。設定アグリゲート数は、後述の設定アグリゲート数算出部２３によって予め算出される。
【００５３】
また中継部２２は、中継データ１１において、各対象データの保持を開始してからの経過時間が、最大の待ち時間を超えた場合、対象データの数が設定アグリゲート数を越えなくても、対象データを送信しても良い。このとき中継部２２は、経過時間が最大の待ち時間を超えた対象データの宛先と同一の宛先を有する対象データを、アグリゲートして送信しても良い。
【００５４】
図７を参照して、中継部２２の処理を説明する。中継部２２は、通信装置１が送信可能なタイミングで実行する。
【００５５】
まずステップＳ２０１において中継部２２は、中継データ１１が有する対象データのうち、最大待ち時間を経過した対象データがあるか否かを判定する。最大待ち時間を経過した対象データがある場合、ステップＳ２０３において中継部２２は、その対象データを送信する。このとき、その対象データと同じ受信装置宛のデータをアグリゲートして送信する。
【００５６】
最大待ち時間を経過した対象データがない場合、ステップＳ２０２に進む。ステップＳ２０２において中継部２２は、中継データ１１が有する各対象データの宛先となる受信装置ごとの対象データの数が、設定アグリゲート数に達するか否かを判定する。設定アグリゲート数に達する受信装置がない場合、中継部２２はステップＳ２０１に戻る。
【００５７】
設定アグリゲート数に達する受信装置がある場合、ステップＳ２０３において中継部２２は、設定アグリゲート数に達した受信装置宛の対象データをアグリゲートして、代理通信を行う。
【００５８】
設定アグリゲート数算出部２３は、前回、所定の受信装置宛にアグリゲートした対象データの設定アグリゲート数を、乱数と閾値との比較に基づいて増減して、今回の設定アグリゲート数を算出する。乱数は、所定の範囲内で算出した乱数であっても良いし、前回の設定アグリゲート数の算出に用いた乱数と、今回の設定アグリゲート数の算出に用いた乱数の加重移動平均であっても良い。閾値は、通信システム５における通信装置１の数、許容遅延時間などから予め設定される。これにより中継装置１は、中継装置のバッファに溜まっているデータを適切にアグリゲートすることができる。
【００５９】
設定アグリゲート数算出部２３は、乱数が、閾値に所定値を加算した値よりも大きい場合、前回の設定アグリゲート数を増やして今回の設定アグリゲート数を算出し、乱数が、閾値に所定値を減算した値よりも小さい場合、前回の設定アグリゲート数を減らして今回の設定アグリゲート数を算出し、乱数と閾値との差異が所定値以内の場合、前回の設定アグリゲート数を今回の設定アグリゲート数を算出する。この閾値に所定値を増減した範囲は、設定アグリゲート数を変更する必要がない、安定した状態とみなすことが可能な範囲である。算出した設定アグリゲート数は、宛先となる受信装置毎に算出され、中継部２２によって参照される。これにより中継装置１は、乱数に基づいて設定アグリゲート数を適切に増減することができる。
【００６０】
設定アグリゲート数算出部２３は、式（１）により、対象データの今回の設定アグリゲート数を算出する。これにより中継装置１は、通信システム５の規模を考慮して、乱数に基づいて設定アグリゲート数を適切に増減することができる。
【００６１】
【数１】
2020145608.tif 000004
【００６２】
なお式（１）で用いられる最小リンク往復時間は、通信装置１が送信データを送信してから、送信データに対する応答データを受信するまでの時間の最小時間である。最小リンク往復時間が大きいと考えられる環境においては、前回の設定アグリゲート数に対する増減数（感度）を増加させることにより、設定アグリゲート数を大きく変化させる。一方最小リンク往復時間が小さいと考えられる環境においては、感度を減少させることにより、設定アグリゲート数を安定的に変化させる。
【００６３】
式（１）で用いられる中継装置数は、図４に示す通信装置１が代理通信する対象データが経由する中継装置の数である。中継装置数が少ないと考えられる環境においては、感度を増加させることにより、設定アグリゲート数を大きく変化させる。一方中継装置数が少ないと考えられる環境においては、感度を減少させることにより、設定アグリゲート数を安定的に変化させる。
【００６４】
また式（１）において、ηまたはεを用いて設定アグリゲート数を調節することも可能である。設定アグリゲート数算出部２３はさらに、予め設定アグリゲート数の最大値と最小値を決めておき、式（１）により算出した設定アグリゲート数が、最大値と最小値の範囲内に収まるように調整する。
【００６５】
本発明の実施の形態において設定アグリゲート数算出部２３は、オーバーヒア処理部２１がオーバーヒアすると、中継データ１１に、オーバーヒアした対象データと同じ宛先の対象データがあるか否か判定する。同じ宛先の対象データがなく、オーバーヒアした対象データの宛先が、最初の宛先となる場合、設定アグリゲート数算出部２３は、オーバーヒアした対象データの宛先について設定アグリゲート数を算出する。他の実施例として、中継部２２が、所定の受信装置宛にデータを送信した後、その受信装置について設定アグリゲート数を算出しても良い。
【００６６】
図８を参照して、設定アグリゲート数算出部２３の処理を説明する。図８に示す例では、設定アグリゲート数を１ずつ増減する場合を示す。
【００６７】
まずステップＳ３０１において、設定アグリゲート数算出部２３は、オーバーヒア処理部２１によってオーバーヒアされた対象データの宛先が、中継データ１１の対象データの宛先に含まれるか、判定する。オーバーヒアされた対象データの宛先が、中継データ１１の対象データの宛先に含まれる場合、設定アグリゲート数は既に算出されているので、そのまま処理を終了する。
【００６８】
中継データ１１の対象データの宛先に、オーバーヒアされた対象データの宛先が含まれていない場合、ステップＳ３０２において設定アグリゲート数算出部２３は、乱数を発生し、ステップＳ３０３において、乱数と閾値を比較する。
【００６９】
ステップＳ３０２で発生した乱数が、閾値よりも所定値以上小さい場合、ステップＳ３０４において設定アグリゲート数算出部２３は、前回の設定アグリゲート数から１つ減らした値を、今回の設定アグリゲート数に設定する。なお、前回の設定アグリゲート数が予め設定された最小値の場合、設定アグリゲート数算出部２３は、前回の設定アグリゲート数（最小値）を、今回の設定アグリゲート数に設定する。
【００７０】
ステップＳ３０２で発生した乱数と閾値との差分が所定値以内の場合、ステップＳ３０５において設定アグリゲート数算出部２３は、前回の設定アグリゲート数を、今回の設定アグリゲート数に設定する。
【００７１】
ステップＳ３０２で発生した乱数が、閾値よりも所定値以上大きい場合、ステップＳ３０６において設定アグリゲート数算出部２３は、前回の設定アグリゲート数から１つ増やした値を、今回の設定アグリゲート数に設定する。なお、前回の設定アグリゲート数が予め設定された最大値の場合、設定アグリゲート数算出部２３は、前回の設定アグリゲート数（最大値）を、今回の設定アグリゲート数に設定する。
【００７２】
一般的に、対象データの過去の発生傾向に応じて、設定アグリゲート数を増減する方法が考えられる。しかしながらこの方法では、代理通信対象の対象データの数が急激に増減する状況において、設定アグリゲート数を即座に対応させることは困難である。その結果、中継装置において対象データが滞留するなど、中継装置において送信待ちの対象データが適切に処理されない場合がある。
【００７３】
これに対し本発明の実施の形態に係る中継装置は、乱数と閾値との比較に基づいて、設定アグリゲート数を増減する。従って中継装置による代理通信対象の対象データの数が急激に増減する状況においても、中継装置は、設定アグリゲート数を過剰に変化させることなく、効率的に代理通信を行うことが可能になる。また対象データの数が急に増えた場合でも、送信待ちの対象データの数が設定アグリゲート数を満たした時点で受信装置に向けて送信することができるので、送信待ちの対象データの送信タイミングを、対象データの発生量に応じて可変とすることができる。また送信待ちの対象データが設定アグリゲート数に達しなくても、送信待ちを開始してから所定時間経過すると送信されるので、通信の遅延も生じにくい。
【００７４】
このように本発明の実施の形態に係る中継装置は、中継装置の中継データに溜まっているデータを適切にアグリゲートすることができる。
【００７５】
（実施例）
図９および図１０を参照して、通信システムの動作を説明する。図９は、通信装置として機能するノード１ないしノード７の接続状態を示す。図９において、ノード１ないしノード５は、ノード７と通信する場合、ノード６が中継装置として機能する。ここでは、ノード１ないしノード５が送信装置として機能し、ノード７が受信装置として機能し、ノード６が中継装置として機能する場合を説明する。なお、実施例においてノード６は、０ないし３の範囲の乱数を出力する。
【００７６】
実施例において、ノード６の設定アグリゲート数の初期値は４であり、閾値は３である。また式（１）のη、Ｎ、Ｒｍｉｎは、それぞれ、１である。式（１）において、乱数値＊２が２以上４未満の場合、設定アグリゲート数は、前回の設定アグリゲート数が、今回の設定アグリゲート数として算出される。乱数値＊２が４以上の場合、設定アグリゲート数は、前回の設定アグリゲート数に１加算した値が、今回の設定アグリゲート数として算出される。乱数値＊２が２未満の場合、設定アグリゲート数は、前回の設定アグリゲート数に１減算した値が、今回の設定アグリゲート数として算出される。
【００７７】
図１０に示す時間Ｔ１ないしＴ６について、通信システムの動作を説明する。図１０において設定アグリゲート数は、その時間に適用するアグリゲート対象のデータ数であって、乱数値は、設定アグリゲート数を算出するために発行された乱数の値である。データ発生数は、その時間に発生したデータの数であって、実アグリゲート数は、実際にアグリゲートされ送信されたデータの数である。中継待機数は、送信されずに中継データに残ったデータの数である。
【００７８】
（１）時間Ｔ１
時間Ｔ１において、乱数１．５が算出され、設定アグリゲート数は、初期値４から変わらない。時間Ｔ１において、４つのデータが発生した場合、実アグリゲート数は４となり、中継待機数は０となる。
【００７９】
具体的には、ノード１が、ノード７へデータを送信する。このとき、電波環境、ノード間の距離等によって、ノード７へデータが送信されない。そこでノード６は、オーバーヒアによって、ノード１からノード７への通信の失敗を検知し、データを保存する。ノード６は、データを即座に中継せずに、他のデータとのアグリゲートを待機する。
【００８０】
またノード６は、ここで保存したデータが、ノード７へ代理通信する最初のデータである場合、式（１）等により設定アグリゲート数を算出する。例えば乱数値が１．５の場合、前回の設定アグリゲート数である初期値４が、設定アグリゲート数として算出される。
【００８１】
その後ノード２が、ノード７へのデータの送信を試みるが、ノード７へデータが送信されない。ノード６は、オーバーヒアによって、ノード２からノード７への通信の失敗を検知し、データを保存する。ここで、ノード６が保存するノード７宛のデータ数は２で、設定アグリゲート数４に満たないので、ノード６は、ノード７宛のデータを中継しない。
【００８２】
ノード３が、ノード７へのデータの送信を試みるが、ノード７へデータが送信されない。ノード６は、オーバーヒアによって、ノード３からノード７への通信の失敗を検知し、データを保存する。ここで、ノード６が保存するノード７宛のデータ数は３で、設定アグリゲート数４に満たないので、ノード６は、ノード７宛のデータを中継しない。
【００８３】
ノード４が、ノード７へのデータの送信を試みるが、ノード７へデータが送信されない。ノード６は、オーバーヒアによって、ノード４からノード７への通信の失敗を検知し、データを保存する。ここで、ノード６が保存するノード７宛のデータ数は４で、設定アグリゲート数４に達する。そこでノード６は、ノード７宛のデータをアグリゲートして、ノード７に送信する。
【００８４】
このように、時間Ｔ１において、設定アグリゲート数４に対して、４つのデータが発生し、実アグリゲート数は４となる。その結果、中継待機数は０となる。
【００８５】
（２）時間Ｔ２
時間Ｔ２において、乱数０．９が算出され、設定アグリゲート数は、前回の設定アグリゲート数４から３になる。時間Ｔ２において、１つのデータが発生し、後続のデータが発生することなく所定時間が経過した場合、実アグリゲート数は１となり、中継待機数は０となる。
【００８６】
具体的には、ノード５が、ノード７へのデータの送信を試みるが、ノード７へデータが送信されない。ノード６は、オーバーヒアによって、ノード５からノード７への通信の失敗を検知し、データを保存する。ここで保存したデータが、ノード７へ代理通信する最初のデータであるので、ノード６は、式（１）等により設定アグリゲート数を算出する。例えば乱数値が０．９の場合、前回の設定アグリゲート数の４から１を減算した３が、設定アグリゲート数として算出される。
【００８７】
ノード６は、その後暫くオーバーヒアすることなく所定時間が経過すると、設定アグリゲート数に満たないまま、データを中継する。
【００８８】
このように時間Ｔ２において、設定アグリゲート数３に対して、１つのデータが発生し、実アグリゲート数は１となる。その結果、中継待機数は０となる。
【００８９】
（３）時間Ｔ３
時間Ｔ３において、乱数０．８が算出され、設定アグリゲート数は、前回の設定アグリゲート数３から２になる。時間Ｔ３において、１つのデータが発生し、後続のデータが発生したまま所定時間が経過した場合、実アグリゲート数は１となり、中継待機数は０となる。
【００９０】
（４）時間Ｔ４
時間Ｔ４において、乱数２．９が算出され、設定アグリゲート数は、前回の設定アグリゲート数２から３になる。時間Ｔ４において、４つのデータが発生した状態で、ノード６の送信タイミングが到達すると、ノード６は、設定アグリゲート数の上限の３つのデータをアグリゲートして送信する。その結果、時間Ｔ４において実アグリゲート数は３となり、中継待機数は１となる。
【００９１】
（５）時間Ｔ５
時間Ｔ５において、乱数２．６が算出され、設定アグリゲート数は、前回の設定アグリゲート数３から４になる。時間Ｔ５において、中継待機数が１の状態で１つのデータが発生し、後続のデータが発生しないまま所定時間が経過した場合、実アグリゲート数は２となり、中継待機数は０となる。
【００９２】
（６）時間Ｔ６
時間Ｔ６において、乱数０．８が算出され、設定アグリゲート数は、前回の設定アグリゲート数４から３になる。時間Ｔ６において、ノード６の送信タイミングが到達するまでに４つのデータが発生すると、ノード６は、設定アグリゲート数の上限の３つのデータをアグリゲートして送信する。その結果、時間Ｔ６において実アグリゲート数は３となり、中継待機数は１となる。
【００９３】
対象データの過去の発生傾向に応じて、設定アグリゲート数を増減する一般的な方法では、例えば、図１０に示す時間Ｔ４においてデータ発生数が急に増えたとしても、時間Ｔ１ないしＴ３においてデータ発生数が少ないことから、設定アグリゲート数を増やすことが難しい。従って、時間Ｔ４以降において、中継待機数が増加し、データの滞留が発生する場合がある。
【００９４】
これに対し本発明の実施の形態によれば、乱数によって設定アグリゲート数を決定するので、過去のデータ発生数の傾向にかかわらず、設定アグリゲート数を増やし、中継待機数を抑制することができる。
【００９５】
（その他の実施の形態）
上記のように、本発明の実施の形態によって記載したが、この開示の一部をなす論述および図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例および運用技術が明らかとなる。
【００９６】
例えば、シーケンス図またはフローチャートに示す処理の流れは一例であって、異なる順序で処理が行われても良い。
【００９７】
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【符号の説明】
【００９８】
１  通信装置
５  通信システム
１０  記憶装置
１１  中継データ
１２  設定アグリゲート数データ
２０  処理装置
２１  オーバーヒア処理部
２２  中継部
２３  設定アグリゲート数算出部
３０  通信制御装置
【図１】
2020145608.tif 000006
【図２】
2020145608.tif 000007
【図３】
2020145608.tif 000008
【図４】
2020145608.tif 000009
【図５】
2020145608.tif 000010
【図６】
2020145608.tif 000011
【図７】
2020145608.tif 000012
【図８】
2020145608.tif 000013
【図９】
2020145608.tif 000014
【図１０】
2020145608.tif 000015