(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分又は相当する部分を示す。
【0012】
実施の形態1.
***構成の説明***
図1は、本実施の形態に係る通信システムの構成例を示す。
本実施の形態に係る通信システムでは、通信装置101、通信装置102及び通信装置103がネットワーク5に接続されている。
図1では、通信システムには、通信装置101、通信装置102及び通信装置103が含まれているが、通信システムに含まれる通信装置の台数は3台以上であってもよい。
通信装置101、通信装置102及び通信装置103は、TSNに従って、データを送受信する。
【0013】
図1では、通信装置101のハードウェア構成が示されている。通信装置102及び通信装置103でも、通信装置101と同じハードウェア構成を備えるものとする。
通信装置101、通信装置102及び通信装置103は、コンピュータである。
図1に示すように、通信装置101は、ハードウェアとして、プロセッサ2、メモリ3、ネットワークインタフェース4を備える。
メモリ3には、
図2に示す送信アプリケーション15及び受信アプリケーション16が記憶されている。また、メモリ3には、
図2に示すデータ送信部6、タイムスロット管理部7、データ受信部8、ACKデータ生成部9、再送管理部11及び送信制御部12の機能を実現するプログラムが記憶されている。
プロセッサ2は、メモリ3内の送信アプリケーション15及び受信アプリケーション16を実行する。また、プロセッサ2は、データ送信部6、タイムスロット管理部7、データ受信部8、ACKデータ生成部9、再送管理部11及び送信制御部12の機能を実現するプログラムを実行して、データ送信部6、タイムスロット管理部7、データ受信部8、ACKデータ生成部9、再送管理部11及び送信制御部12の動作を行う。
【0014】
図2は、通信装置101の機能構成例を示す。
図2では、通信装置101の機能構成例のみが示されているが、通信装置102及び通信装置103でも、通信装置101と同じ機能構成を備えるものとする。
【0015】
データ送信部6は、タイムスロット(TS)の単位で送信するデータの種類を切り替えてデータを送信する。
より具体的には、データ送信部6は、送信データ管理部10内の送信キュー14に格納されている送信データを、当該送信データの種類に対応するタイムスロットにおいて送信する。
また、データ送信部6は、送信データの再送を行う再送時刻を、送信データの送信を完了した時刻を基準にして決定する。
更に、データ送信部6は、送信データの再送が指示された場合は、送信データを再送する。
データ送信部6は、送信部及び再送時刻決定部に相当する。また、データ送信部6により行われる処理は、送信処理及び再送時刻決定処理に相当する。
【0016】
タイムスロット管理部7は、現在時刻を保持し、タイムスロットを切り替える時刻が到来したら現在のタイムスロットに対応する送信キュー14をデータ送信部6に通知し、データ送信部6に送信データを送信するよう指示する。
【0017】
データ受信部8は、通信装置102又は通信装置103から送信されたデータを受信する。また、データ受信部8は、受信したデータを受信アプリケーション16に渡す。更に、データ受信部8は、受信したデータに対する受信確認(ACKデータ)を送信するようACKデータ生成部に指示する。
【0018】
ACKデータ生成部9は、データ受信部8から指示に従い、ACKデータを送信データ管理部10の対応する送信キュー14に格納する。
【0019】
送信データ管理部10は、タイムスロットごとにエントリを持つ。各エントリには、送信キュー14が設けられている。送信キュー14では、送信データのメモリアドレス又はACKデータのメモリアドレスが保持される。
【0020】
再送管理部11は、データ送信部6により送信された送信データの再送を管理する。
具体的には、再送管理部11は、データ送信部6により送信された送信データ及びデータ送信部6により決定された再送時刻を再送データリスト13に登録する。
図3は、再送データリスト13の構成例を示す。再送データリスト13の各エントリには再送時刻と、再送対象の送信データのメモリアドレスと、送信データの識別子であるシーケンス番号が格納されている。再送データリスト13のエントリは再送時刻の早い順に並べられる。
図4は、再送データリスト13の具体例を示す。なお、本実施の形態では、再送データリスト13において送信データのメモリアドレスが登録されている例を示しているが、メモリアドレスではなく送信データの実体が再送データリスト13に登録されるようにしてもよい。
再送管理部11は、再送時刻までに送信データに対するACKデータが受信されていない場合に、送信データの再送を決定する。
再送管理部11により行われる処理は、再送管理処理に相当する。
【0021】
送信制御部12は、送信アプリケーション15の指示に基づき、送信データを生成する。また、送信制御部12は、送信データを該当するタイムスロットの送信キュー14に格納する。
送信制御部12により行われる処理は、送信制御処理に相当する。
【0022】
送信アプリケーション15は、送信制御部12に送信データの生成を指示する。送信アプリケーション15は、例えば、送信すべきコンテンツを送信制御部12に出力して、送信データの生成を指示する。
【0023】
受信アプリケーション16は、データ受信部8で受信されたデータをデータ受信部8から取得する。
【0024】
なお、本実施の形態では、送信データの種類を送信データのプロトコルとする。つまり、本実施の形態では、送信データのプロトコルごとにタイムスロットが割り当てられているものとする。送信データのプロトコルに割り当てられたタイムスロットを、以下では送信タイムスロットという。つまり、送信データは送信タイムスロット以外のタイムスロットでは送信されず、送信タイムスロットでのみ送信される。
送信データに対するACKデータは、送信タイムスロットでのみ送信される。つまり、送信データに対応するタイムスロット(送信タイムスロット)がタイムスロット0である場合は、当該送信データに対するACKデータは、タイムスロット0でのみ送信される。送信データが送信されたタイムスロット0内にACKデータが送信されない場合は、ACKデータは次に到来するタイムスロット0で送信される。
【0025】
***動作の説明***
本実施の形態における通信装置101の動作例を説明する。
以下では、通信装置101の動作として説明するが、通信装置102及び通信装置103の動作も同じである。
なお、以下で説明する動作手順は、本願の通信方法及び通信プログラムに相当する。
【0026】
まず、本実施の形態に係る送信制御部12の動作例を
図5を参照して説明する。
【0027】
ステップS1では、送信制御部12は、送信アプリケーション15からコンテンツを取得し、送信データを生成する。
【0028】
次に、ステップS2では、送信制御部12は、ステップS1で生成した送信データのメモリアドレスを該当する送信キュー14に格納する。
つまり、送信制御部12は、送信データ管理部10で管理されている複数の送信キュー14のうち、送信データのプロトコルに対応するタイムスロットのエントリの送信キュー14にステップS1で生成した送信データのメモリアドレスを格納する。
【0029】
次に、送信制御部12は、ステップS3で規定時間待機する。
次に、送信制御部12は、ステップS4で、データ送信部6からデータ送信完了通知が届いたかどうかを確認する。
データ送信完了通知が届いていない場合は、送信制御部12は、ステップS3及びステップS4をデータ送信完了通知が届くまで繰り返す。
データ送信完了通知が届いたら、送信制御部12は、処理を終了する。
【0030】
次に、
図6を参照して、タイムスロット管理部7の動作例を説明する。
【0031】
先ず、タイムスロット管理部7は、ステップS5で規定時間待機する。
次に、タイムスロット管理部7は、ステップS6において、タイムスロットの切り替え時刻が到来したか否かを確認する。タイムスロットの切り替え時刻が到来している場合は、タイムスロット管理部7はステップS7に進む。
ステップS7では、タイムスロット管理部7はデータ送信部6に送信データの送信を指示する。その後、タイムスロット管理部7はステップS5に戻る。より具体的には、タイムスロット管理部7はデータ送信部6に現在のタイムスロットに対応する送信キュー14を通知して、データ送信部6に送信データの送信を指示する。
タイムスロットの切り替え時刻が到来していない場合は、タイムスロット管理部7は、タイムスロットの切り替え時刻が到来するまで、ステップS5及びステップS6を繰り返す。
【0032】
次に、
図7を参照して、データ送信部6の動作例を説明する。
【0033】
先ず、データ送信部6は、ステップS8で規定時間待機する。
次に、データ送信部6は、ステップS9において、送信データの送信指示が届いた否かを確認する。
タイムスロット管理部7から送信指示が届く場合と、再送管理部11から送信指示が届く場合がある。
送信指示が届いていない場合は、データ送信部6は、送信指示が届くまで、ステップS8及びステップS9を繰り返す。
送信指示が届いている場合は、データ送信部6はステップS10に進む。
【0034】
ステップS10では、データ送信部6は、送信データをネットワーク5に送信する。
タイムスロット管理部7から送信指示が届いている場合は、データ送信部6は、送信データ管理部10の該当する送信キュー14から送信データを取得し、取得した送信データをネットワーク5に送信する。
一方、再送管理部11から送信指示が届いている場合は、データ送信部6は、送信指示とともに再送管理部11から届いている送信データをネットワーク5に送信する。なお、再送管理部11からの送信指示に基づく送信データの送信は、送信データの再送に該当する。
【0035】
送信データの送信が完了したら、データ送信部6は、ステップS11において、送信データの送信が完了した時刻を基準にして送信データの再送時刻を算出し、算出した再送時刻と、送信データのメモリアドレスとシーケンス番号を再送管理部11に通知する。
データ送信部6は、送信タイムスロット内の時刻を再送時刻に決定する。例えばデータ送信部6が0時0分0秒に送信データの送信を完了した場合を想定する。また、ここでは、送信データの送信が完了した時刻から10秒後に再送するような設定となっているものとする。この場合に、データ送信部6は、0時0分10秒が送信タイムスロット内の時刻であれば、0時0分10秒を再送時刻に決定する。一方、0時0分10秒が送信タイムスロット内の時刻でなければ、データ送信部6は、0時0分10秒より後に最も早く到来する送信タイムスロット内の時刻を再送時刻に決定する。
その後、データ送信部6はステップS8に戻る。
【0036】
次に、
図8を参照して、再送管理部11の動作例を説明する。
【0037】
先ず、再送管理部11は、ステップS12で規定時間待機する。
次に、ステップS13で、再送管理部11は、再送データリスト13の先頭のエントリの再送時刻が到来したか否かを確認する。
再送時刻が到来している場合は、再送管理部11はステップS14に進む。一方、再送時刻が到来していない場合は、再送管理部11はステップS15に進む。
【0038】
ステップS14では、再送管理部11は、再送データリスト13の先頭エントリに示されるメモリアドレスに基づいて送信データを取得し、データ送信部6に、送信データの送信を指示する。
より具体的には、再送管理部11は、送信データの送信指示と、送信データをデータ送信部6に出力する。
ステップS14で送信指示と送信データが出力された結果、
図7のステップS9でYESとなり、データ送信部6は、ステップS10において、送信データを再送する。
【0039】
ステップS15では、再送管理部11は、データ送信部6またはデータ受信部8から通知が届いたか否かを確認する。
通知が届いていれば、再送管理部11はステップS16に進む。一方、通知が届いていない場合は、再送管理部11はステップS12に戻る。
【0040】
ステップS16では、再送管理部11は、データ送信部6からの通知及びデータ受信部8からの通知のいずれが届いたのかを確認する。
データ送信部6からの通知が届いている場合は、再送管理部11はステップS17に進む。一方、データ受信部8からの通知が届いている場合は、再送管理部11はステップS18に進む。
【0041】
ステップS17では、再送管理部11は、再送データリスト13に新たなエントリを追加する。
データ送信部6から通知は、
図7のステップS11で示された、再送時刻と送信データのメモリアドレスとシーケンス番号の通知である。再送管理部11は、ステップS17において、データ送信部6から通知された再送時刻と送信データのメモリアドレスとシーケンス番号が示される新たなエントリを再送データリスト13に追加する。再送管理部11は、再送時刻順に従って、新たなエントリを再送データリスト13に追加する。これにより送信データの再送が登録される。
新たなエントリを再送データリスト13に追加したら、再送管理部11はステップS15に戻る。
【0042】
ステップS18では、再送管理部11は、再送データリスト13からエントリを削除する。
データ受信部8からの通知は、送信データの送信先からACKデータを受信した旨の通知である。データ受信部8からの通知には、ACKデータが受信された送信データのシーケンス番号が示される。このため、再送管理部11は、データ受信部8からの通知に示されるシーケンス番号に基づいて、再送データリスト13のエントリのうち、ACKデータが受信された送信データについてのエントリを削除する。
エントリを再送データリスト13から削除したら、再送管理部11はステップS15に戻る。
【0043】
再送管理部11は、データ送信部6からの通知及びデータ受信部8からの通知を全て処理するまで、ステップS16〜S18を繰り返す。データ送信部6からの通知及びデータ受信部8からの通知が全て処理されたら、再送管理部11はステップS12に戻る。
【0044】
次に、
図9を参照して、データ受信部8の動作例を説明する。
【0045】
先ず、ステップS19で、データ受信部8は、ネットワークインタフェース4からのデータ到着通知を待つ。データ到着通知は例えばハードウェア割り込みによって実現される。
【0046】
データ到着通知が届くと、データ受信部8は、ステップS20において、受信されたデータの種別を確認する。つまり、データ受信部8は、受信されたデータが、通信装置102又は通信装置103から送信された送信データであるか、通信装置102又は通信装置103から送信されたACKデータであるかを確認する。
受信されたデータが送信データであれば、データ受信部8はステップS21に進む。一方、受信されたデータがACKデータであれば、データ受信部8はステップS23に進む。
【0047】
ステップS21では、データ受信部8は、受信アプリケーション16に送信データを渡す。
また、データ受信部8は、ステップS22において、ACKデータ生成部9に、受信した送信データのACKデータを、送信データの送信元に送信するよう指示する。
そして、データ受信部8はステップS19に戻り、次のデータ到着通知の到着を待つ。
【0048】
ステップS23では、データ受信部8は、再送管理部11にACKデータを受信した旨を通知する。より具体的には、データ受信部8は、ACKデータが受信された送信データのシーケンス番号を通知する。
そして、データ受信部8はステップS19に戻り、次のデータ到着通知の到着を待つ。
【0049】
次に、
図10を参照して、ACKデータ生成部9の動作例を説明する。
【0050】
先ず、ACKデータ生成部9は、ステップS24において、データ受信部8からの指示に従い、ACKデータを生成する。
次に、ACKデータ生成部9は、ステップS25において、ステップS24で生成したACKデータのメモリアドレスを該当する送信キュー14に格納する。
つまり、ACKデータ生成部9は、送信データ管理部10で管理されている複数の送信キュー14のうち、ACKデータのプロトコルに対応するタイムスロットのエントリの送信キュー14にステップS24で生成したACKデータのメモリアドレスを格納する。
【0051】
次に、ACKデータ生成部9は、ステップS26で規定時間待機する。
次に、ACKデータ生成部9は、ステップS27で、データ送信部6からデータ送信完了通知が届いたかどうかを確認する。
データ送信完了通知が届いていない場合は、ACKデータ生成部9は、ステップS26及びステップS27をデータ送信完了通知が届くまで繰り返す。
データ送信完了通知が届いたら、ACKデータ生成部9は、処理を終了する。
【0052】
なお、送信アプリケーション15の動作は送信制御部1
2にコンテンツを出力するだけである。
また、受信アプリケーション16の動作は、受信されたデータをデータ受信部8から取得し、受信アプリケーション16独自の処理を当該データに対して行うだけである。
このため、送信アプリケーション15及び受信アプリケーション16の処理手順の説明は省略する。
【0053】
***実施の形態の効果の説明***
従来の手法であれば、送信制御部12が送信キュー14に送信データのメモリアドレスを格納した時刻(
図5のステップS2の時刻)を基準して再送時刻が決定される。このため、送信タイムスロットではないタイムスロットで送信キュー14に送信データが格納された場合は、送信タイムスロットが到来するまでに再送時刻が到来してしまい、送信データの1回目の送信と同時に送信データの再送が行われてしまう可能性がある。また、送信データの1回目の送信の後に再送時刻が到来する場合であっても、送信データの1回目の送信の直後に再送時刻が到来すると、受信側の通信装置がACKデータを送信する前に送信データが再送されることになる。いずれのケースにおいても、送信データは受信側の通信装置に到達するにも関わらず、無駄に送信データの再送が発生することになる。
本実施の形態では、データ送信部6が送信データの送信を完了した時刻(
図7のステップS10の時刻)を基準にして再送時刻が決定される(
図7のステップS11)。従って、本実施の形態では、送信データの1回目の送信と同時に送信データの再送が行われることはない。また、本実施の形態では、送信データの1回目の送信の直後に再送時刻が到来することもない。
このように、本実施の形態では、TSNのように、タイムスロットの単位で送信するデータの種類を切り替えてデータを送信する構成において、無駄な再送を防止することができる。
【0054】
実施の形態2.
本実施の形態では、現在のタイムスロットが送信タイムスロットではなく、また、次の送信タイムスロットまでの待ち時間が閾値時間以下である場合に、通信装置101が、実施の形態1と同様に送信データを送信する。一方、次の送信タイムスロットまでの待ち時間が閾値時間よりも長い場合は、通信装置101は、送信データを再送する手順にて送信データを送信する。
以下では、再送間隔を閾値時間として扱う。再送間隔は、送信データの1回目の送信から再送までの間の間隔として通信装置101において規定されているデフォルト値である。
【0055】
***構成の説明***
本実施の形態においても、通信システムの構成例は
図1に示すものと同様である。
図11は、本実施の形態に係る通信装置101の機能構成例を示す。
図11に示す通信装置101の機能構成例は、
図2に示すものと同じであるが、本実施の形態では、データ送信部6は、送信部及び再送部に相当する。また、データ送信部6により行われる処理は、送信処理及び再送処理に相当する。
【0056】
***動作の説明***
次に、本実施の形態に係る通信装置101の動作例を説明する。本実施の形態でも、通信装置102及び通信装置103は、通信装置101と同じ動作を行う。
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
【0057】
図12は、本実施の形態に係る送信制御部12の動作例を示す。
【0058】
ステップS101では、送信制御部12は、送信データを生成する。
ステップS101は、実施の形態1で説明したステップS1と同じであるため、詳細な説明は省略する。
【0059】
次に、ステップS102で、送信制御部12は、現在のタイムスロットが送信タイムスロットであるか否かを確認する。つまり、送信制御部12は、現在のタイムスロットが、送信データの送信が許可されるタイムスロットであるか否かを判定する。
現在のタイムスロットが送信タイムスロットであれば、送信制御部12はステップS105に進む。
一方、現在のタイムスロットが送信タイムスロットでなければ、送信制御部12はステップS103に進む。
【0060】
ステップS103では、送信制御部12は、次の送信タイムスロットまでの待ち時間を取得する。具体的には、送信制御部12は、タイムスロットの割当て時間(規定値)と、現在のタイムスロットが開始してからの経過時間とを用いて、次の送信タイムスロットまでの待ち時間を取得する。
【0061】
ステップS104では、送信制御部12は、ステップS103で取得した次の送信タイムスロットまでの待ち時間と、再送間隔とを比較する。
次の送信タイムスロットまでの待ち時間が再送間隔以下である場合に、送信制御部12はステップS105に進む。
一方、次の送信タイムスロットまでの待ち時間が再送間隔よりも長い場合に、送信制御部12はステップS106に進む。
【0062】
ステップS105では、送信制御部12は
図5のステップS2からステップS4の処理を行う。
つまり、送信制御部12は、ステップS101で生成した送信データのメモリアドレスを該当する送信キュー14に格納する(ステップS2)。
また、送信制御部12は、規定時間待機し(ステップS3)、データ送信部6からデータ送信完了通知が届いたかどうかを確認する(ステップS4)。
データ送信完了通知が届いていない場合は、送信制御部12は、ステップS3及びステップS4をデータ送信完了通知が届くまで繰り返す。
データ送信完了通知が届いたら、送信制御部12は、処理を終了する。
送信制御部12がステップS2からステップS4を行うと、データ送信部6は次の送信タイムスロットにおいて送信データの送信を行い、また、次の送信タイムスロット内の再送時刻を決定し(
図7)、再送管理部11が次の送信タイムスロット内の再送時刻での送信データの再送の登録を行う(後述の
図13)。
このように、本実施の形態では、送信制御部12は、次の送信タイムスロットまでの待ち時間が再送間隔以下である場合は、データ送信部6に次の送信タイムスロットにおいて送信データの送信を行わせ、データ送信部6に次の送信タイムスロット内の再送時刻を決定させ、再送管理部11に次の送信タイムスロット内の再送時刻での送信データの再送の登録を行わせる。送信制御部12のこのような制御は、第1の送信制御という。
【0063】
ステップS106では、送信制御部12は、送信データの再送時刻を算出し、算出した再送時刻と、送信データのメモリアドレスとシーケンス番号を再送管理部11に通知する。
送信制御部12は、次の送信タイムスロット内の時刻を再送時刻に決定する。
後述するように、再送管理部11は、ステップS10
6で通知された再送時刻と送信データのメモリアドレスとシーケンス番号を、新たなエントリとして再送データリスト13に登録する。この結果、データ送信部6は、再送データリスト13に従い、次の送信タイムスロットにおいて送信データの送信を行う。
このように、本実施の形態では、送信制御部12は、次の送信タイムスロットまでの待ち時間が再送間隔よりも長い場合は、再送管理部11に次の送信タイムスロットにおける送信データの再送の登録を行わせ、データ送信部6に次の送信タイムスロットにおいて送信データの送信を行わせる。送信制御部12のこのような制御は、第2の送信制御という。
なお、ステップS106が行われた場合は、データ送信部6にステップS11にて再送時刻を決定しないように指示する。
【0064】
図13は、本実施の形態に係る再送管理部11の動作例を示す。
【0065】
図13において、ステップS151及びステップS161以外の処理は、
図8に示すものと同じである。このため、以下では、ステップS151及びステップS161のみを説明する。
【0066】
ステップS151では、再送管理部11は、データ送信部6、送信制御部12またはデータ受信部8から通知が届いたか否かを確認する。
通知が届いていれば、再送管理部11はステップS161に進む。一方、通知が届いていない場合は、再送管理部11はステップS12に戻る。
【0067】
ステップS161では、再送管理部11は、データ送信部6または送信制御部12からの通知、データ受信部8からの通知のいずれが届いたのかを確認する。
データ送信部6または送信制御部12からの通知が届いている場合は、再送管理部11はステップS17に進む。一方、データ受信部8からの通知が届いている場合は、再送管理部11はステップS18に進む。
送信制御部12からの通知は、
図12のステップS106の通知である。つまり、送信制御部12からステップS106の通知が届いている場合にも、再送管理部11は、データ送信部6からの通知と同様に、送信制御部12からの通知に基づいて、再送データリスト13に新たなエントリを追加する。
【0068】
***実施の形態の効果の説明***
本実施の形態では、現在のタイムスロットが送信タイムスロットではなく、次の送信タイムスロットまでの待ち時間が閾値時間(再送間隔)よりも長い場合は、再送手順にて送信データの1回目の送信が行われる。このため、本実施の形態によれば、次の送信タイムスロットまでの待ち時間が閾値時間(再送間隔)よりも長い場合は、送信キュー14への送信データの格納等の手順を省略することができ、処理負荷を軽減することができる。つまり、本実施の形態により、より効率的なデータ送信を実現することができる。
また、従来技術での再送時刻により近い時刻でデータの再送処理が可能となる。
なお、以上では、閾値時間を再送間隔としているが、閾値時間は再送間隔でなくてもよい。
【0069】
実施の形態3.
本実施の形態では、現在のタイムスロットが送信タイムスロットであり、また、現在のタイムスロットの残り時間が閾値時間よりも長い場合に、通信装置101が、現在のタイムスロットでの送信データの送信を選択する。一方、現在のタイムスロットの残り時間が閾値時間以下である場合は、通信装置101は、次の送信タイムスロットでの送信デー
タの送信を選択する。
本実施の形態では、送信所要時間を閾値時間として扱う。送信所要時間は、データ送信部6が送信データを送信するのに要する時間である。
【0070】
***構成の説明***
本実施の形態においても、通信システムの構成例は
図1に示すものと同様である。
また、本実施の形態においても通信装置101の機能構成は
図11に示すものと同様である。
【0071】
***動作の説明***
次に、本実施の形態に係る通信装置101の動作例を説明する。本実施の形態でも、通信装置102及び通信装置103は、通信装置101と同じ動作を行う。
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
【0072】
図14は、本実施の形態に係る送信制御部12の動作例を示す。
【0073】
ステップS201では、送信制御部12は、送信データを生成する。
ステップS201は、実施の形態1で説明したステップS1と同じであるため、詳細な説明は省略する。
【0074】
次に、ステップS202では、送信制御部12は、再送間隔とタイムスロットの割り当て時間とを比較する。
再送間隔よりもタイムスロットの割り当て時間が長い場合は、送信制御部12はステップS203に進む。一方、タイムスロットの割り当て時間が再送間隔以下であれば、送信制御部12はステップS207に進む。
【0075】
ステップS203では、送信制御部12は、現在のタイムスロットが送信タイムスロットであるか否かを確認する。つまり、送信制御部12は、現在のタイムスロットが、送信データの送信が許可されるタイムスロットであるか否かを判定する。
現在のタイムスロットが送信タイムスロットであれば、送信制御部12はステップS204に進む。
一方、現在のタイムスロットが送信タイムスロットでなければ、送信制御部12はステップS208に進む。
【0076】
ステップS204では、送信制御部12は、送信所要時間を求める。すなわち、送信制御部12は、
図7のステップS10とステップS11の処理に要する時間を確認する。例えば、データ送信部6が、ステップS10とステップS11に要する時間を計測して送信所要時間として保持しておき、データ送信部6が送信制御部12に送信所要時間を通知することが考えられる。
【0077】
ステップS205では、送信制御部12は、現在のタイムスロットの残り時間を求める。
【0078】
ステップS206では、送信制御部12は、送信所要時間と現在のタイムスロットの残り時間を比較する。
現在のタイムスロットの残り時間が送信所要時間よりも長ければ、送信制御部12はステップS207に進む。一方、現在のタイムスロットの残り時間が送信所要時間以下であれば、送信制御部12はステップS208に進む。
【0079】
ステップS207では、送信制御部12は
図5のステップS2からステップS4の処理を行う。
つまり、送信制御部12は、ステップS101で生成した送信データのメモリアドレスを該当する送信キュー14に格納する(ステップS2)。
また、送信制御部12は、規定時間待機し(ステップS3)、データ送信部6からデータ送信完了通知が届いたかどうかを確認する(ステップS4)。
データ送信完了通知が届いていない場合は、送信制御部12は、ステップS3及びステップS4をデータ送信完了通知が届くまで繰り返す。
データ送信完了通知が届いたら、送信制御部12は、処理を終了する。
送信制御部12がステップS2からステップS4を行うと、データ送信部6は次の送信タイムスロットにおいて送信データの送信を行い、また、次の送信タイムスロット内の再送時刻を決定し(
図7)、再送管理部11が次の送信タイムスロット内の再送時刻での送信データの再送の登録を行う(
図13)。
このように、本実施の形態では、送信制御部12は、現在のタイムスロットの残り時間が送信所要時間よりも長ければ、データ送信部6に次の送信タイムスロットにおいて送信データの送信を行わせ、データ送信部6に次の送信タイムスロット内の再送時刻を決定させ、再送管理部11に次の送信タイムスロット内の再送時刻での送信データの再送の登録を行わせる。送信制御部12のこのような制御は、第1の送信制御という。
【0080】
ステップS208では、送信制御部12は、送信データの再送時刻を算出し、算出した再送時刻と、送信データのメモリアドレスとシーケンス番号を再送管理部11に通知する。
送信制御部12は、次の送信タイムスロット内の時刻を再送時刻に決定する。
本実施の形態でも、再送管理部11は、ステップS208で通知された再送時刻と送信データのメモリアドレスとシーケンス番号を、新たなエントリとして再送データリスト13に登録する。この結果、データ送信部6は、再送データリスト13に従い、次の送信タイムスロットにおいて送信データの送信を行う。
このように、本実施の形態では、送信制御部12は、現在のタイムスロットの残り時間が送信所要時間以下であれば、再送管理部11に次の送信タイムスロットにおける送信データの再送の登録を行わせ、データ送信部6に次の送信タイムスロットにおいて送信データの送信を行わせる。送信制御部12のこのような制御は、第2の送信制御という。
なお、ステップS208が行われた場合は、データ送信部6にステップS11にて再送時刻を決定しないように指示する。
【0081】
本実施の形態でも、再送管理部11の動作は
図13に示す通りである。
【0082】
***実施の形態の効果の説明***
実施の形態1の方法では、現在のタイムスロットが送信タイムスロットであり、現在のタイムスロットの残り時間が送信所要時間以下であっても、通信装置101は送信データの送信処理を行う。しかし、この場合は、通信装置101は現在のタイムスロット内で送信データを送信することはできないので、現在のタイムスロット内で行った送信処理が無駄になる。
そこで、本実施の形態では、現在のタイムスロットの残り時間が送信所要時間以下である場合は、通信装置101は、現在のタイムスロットでは送信データを送信せずに、次の送信タイムスロットに送信データを送信する。この結果、本実施の形態によれば、効率的なデータ送信を行うことができる。
【0083】
実施の形態4.
本実施の形態でも、実施の形態3と同様に、現在のタイムスロットが送信タイムスロットであり、また、現在のタイムスロットの残り時間が閾値時間よりも長い場合に、通信装置101が、現在のタイムスロットでの送信データの送信を選択する。一方、現在のタイムスロットの残り時間が閾値時間以下である場合は、通信装置101は、次の送信タイムスロットでの送信デー
タの送信を選択する。
本実施の形態では、受信確認所要時間を閾値時間として扱う。受信確認所要時間は、送信データの送信から、送信データの送信先から送信データについての受信確認(ACKデータ)を受信するまでに要する時間である。
【0084】
***構成の説明***
本実施の形態においても、通信システムの構成例は
図1に示すものと同様である。
また、本実施の形態においても通信装置101の機能構成は
図11に示すものと同様である。
【0085】
***動作の説明***
次に、本実施の形態に係る通信装置101の動作例を説明する。本実施の形態でも、通信装置102及び通信装置103は、通信装置101と同じ動作を行う。
本実施の形態では、主に実施の形態1との差異を説明する。
なお、以下で説明していない事項は、実施の形態1と同様である。
【0086】
図15は、本実施の形態に係る送信制御部12の動作例を示す。
【0087】
ステップS301では、送信制御部12は、送信データを生成する。
ステップS301は、実施の形態1で説明したステップS1と同じであるため、詳細な説明は省略する。
【0088】
次に、ステップS302では、送信制御部12は、再送間隔とタイムスロットの割り当て時間とを比較する。
再送間隔よりもタイムスロットの割り当て時間が長い場合は、送信制御部12はステップS303に進む。一方、タイムスロットの割り当て時間が再送間隔以下であれば、送信制御部12はステップS307に進む。
【0089】
ステップS303では、送信制御部12は、現在のタイムスロットが送信タイムスロットであるか否かを確認する。つまり、送信制御部12は、現在のタイムスロットが、送信データの送信が許可されるタイムスロットであるか否かを判定する。
現在のタイムスロットが送信タイムスロットであれば、送信制御部12はステップS304に進む。
一方、現在のタイムスロットが送信タイムスロットでなければ、送信制御部12はステップS308に進む。
【0090】
ステップS304では、送信制御部12は、受信確認所要時間を求める。例えば、データ送信部6が、送信データを送信し、送信データを送信してから、同じタイムスロット内で受信側の通信装置からACKデータを受信するまでの時間を受信確認所要時間として計測する。そして、データ送信部6が送信制御部12に受信確認所要時間を通知することが考えられる。データ送信部6は、過去に計測した受信確認所要時間を送信制御部12に通知してもよい。
【0091】
ステップS305では、送信制御部12は、現在のタイムスロットの残り時間を求める。
【0092】
ステップS306では、送信制御部12は、受信確認所要時間と現在のタイムスロットの残り時間を比較する。
現在のタイムスロットの残り時間が受信確認所要時間よりも長ければ、送信制御部12はステップS307に進む。一方、現在のタイムスロットの残り時間が受信確認所要時間以下であれば、送信制御部12はステップS308に進む。
【0093】
ステップS307では、送信制御部12は
図5のステップS2からステップS4の処理を行う。
つまり、送信制御部12は、ステップS101で生成した送信データのメモリアドレスを該当する送信キュー14に格納する(ステップS2)。
また、送信制御部12は、規定時間待機し(ステップS3)、データ送信部6からデータ送信完了通知が届いたかどうかを確認する(ステップS4)。
データ送信完了通知が届いていない場合は、送信制御部12は、ステップS3及びステップS4をデータ送信完了通知が届くまで繰り返す。
データ送信完了通知が届いたら、送信制御部12は、処理を終了する。
送信制御部12がステップS2からステップS4を行うと、データ送信部6は次の送信タイムスロットにおいて送信データの送信を行い、また、次の送信タイムスロット内の再送時刻を決定し(
図7)、再送管理部11が次の送信タイムスロット内の再送時刻での送信データの再送の登録を行う(
図13)。
このように、本実施の形態では、送信制御部12は、現在のタイムスロットの残り時間が受信確認所要時間よりも長ければ、データ送信部6に次の送信タイムスロットにおいて送信データの送信を行わせ、データ送信部6に次の送信タイムスロット内の再送時刻を決定させ、再送管理部11に次の送信タイムスロット内の再送時刻での送信データの再送の登録を行わせる。送信制御部12のこのような制御は、第1の送信制御という。
【0094】
ステップS308では、送信制御部12は、送信データの再送時刻を算出し、算出した再送時刻と、送信データのメモリアドレスとシーケンス番号を再送管理部11に通知する。
送信制御部12は、次の送信タイムスロット内の時刻を再送時刻に決定する。
本実施の形態でも、再送管理部11は、ステップS308で通知された再送時刻と、送信データのメモリアドレスとシーケンス番号を、新たなエントリとして再送データリスト13に登録する。この結果、データ送信部6は、再送データリスト13に従い、次の送信タイムスロットにおいて送信データの送信を行う。
このように、本実施の形態では、送信制御部12は、現在のタイムスロットの残り時間が受信確認所要時間以下であれば、再送管理部11に次の送信タイムスロットにおける送信データの再送の登録を行わせ、データ送信部6に次の送信タイムスロットにおいて送信データの送信を行わせる。送信制御部12のこのような制御は、第2の送信制御という。
なお、ステップS308が行われた場合は、データ送信部6にステップS11にて再送時刻を決定しないように指示する。
【0095】
本実施の形態でも、再送管理部11の動作は
図13に示す通りである。
【0096】
***実施の形態の効果の説明***
実施の形態1の方法では、現在のタイムスロットが送信タイムスロットであり、現在のタイムスロットの残り時間が受信確認所要時間以下であっても、通信装置101は送信データを送信する。しかし、この場合は、ACKデータは現在のタイムスロットでは通信装置101に届かない。このため、通信装置101にACKデータが届く前に再送時刻が到来し、通信装置101は、送信データが受信側の通信装置に届いているにも関わらず、送信データを再送することになる。
そこで、本実施の形態では、現在のタイムスロットの残り時間が受信確認所要時間以下である場合は、通信装置101は、現在のタイムスロットでは送信データを送信せずに、次の送信タイムスロットに送信データを送信する。この結果、本実施の形態では、無駄な再送を防止することができる。
【0097】
なお、上記では、受信確認所要時間の取得方法として、送信データを送信してからACKデータが戻るまでの時間を計測する方法を説明した。これは、TCP/IPでは、ACKデータに、送信データが受信側の通信装置に到達した時刻が格納できないため、上記では、実際に受信確認所要時間を計測する例を説明している。送信データが受信側の通信装置に到達した時刻をACKデータに格納できるプロトコルが用いられる場合は、送信制御部12は、通信装置101がACKデータを受信した時刻からACKデータに格納された時刻(送信データが受信側の通信装置に到達した時刻)を減算して得られる時間を2倍し、更に、2倍により得られた時間に受信側の通信装置での処理時間を加算すれば、受信確認所要時間を得ることができる。
【0098】
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、2つ以上を組み合わせて実施しても構わない。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【0099】
***ハードウェア構成の説明***
最後に、通信装置101のハードウェア構成の補足説明を行う。
プロセッサ2は、プロセッシングを行うIC(Integrated Circuit)である。
プロセッサ2は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
メモリ3は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)等である。
ネットワークインタフェース4は、データを送受信する電子回路である。
ネットワークインタフェース4は、例えば、通信チップ又はNIC(Network Interface Card)である。
【0100】
また、メモリ3には、OS(Operating System)も記憶されている。
そして、OSの少なくとも一部がプロセッサ2により実行される。
プロセッサ2はOSの少なくとも一部を実行しながら、データ送信部6、タイムスロット管理部7、データ受信部8、ACKデータ生成部9、再送管理部11及び送信制御部12の機能を実現するプログラムを実行する。
また、データ送信部6、タイムスロット管理部7、データ受信部8、ACKデータ生成部9、再送管理部11及び送信制御部12の処理の結果を示す情報、データ、信号値又は変数値が、メモリ3、又は、プロセッサ2内のレジスタ又はキャッシュメモリに記憶される。
また、データ送信部6、タイムスロット管理部7、データ受信部8、ACKデータ生成部9、再送管理部11及び送信制御部12の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記録媒体に記憶されてもよい。
【0101】
また、通信装置101は、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)といった電子回路により実現されてもよい。
なお、プロセッサ及び上記の電子回路を総称してプロセッシングサーキットリーともいう。