(57)【要約】【課題】データ送受信装置において、パケット損失を防止し、ＣＰＵ負荷を低下させ、再送を迅速化し、送受信用バッファメモリの容量を削減する。【解決手段】サーバ装置１は、送信データを処理する送信ＴＣＰ処理回路１２と、データを再送用に格納する送信バッファ回路１３と、確認応答パケットのデータを処理する受信ＴＣＰ処理回路１６と、データ再送を制御する再送コントローラ１０を備える。再送コントローラ１０は、データの宛先までの往復時間ＲＴＴをデータ送信時刻及び確認応答パケット受信時刻に基づき算出するＲＴＴ算出回路１０４と、確認応答パケットの受信までの待機時刻を決めるための再送タイムアウト時間ＲＴＯをＲＴＴに基づき算出するＲＴＯ算出回路１０５と、ＲＴＯに基づいて待機時刻を決定し、確認応答パケットが受信されずに待機時刻に達したか否かを判定するＲＴＯ判定回路１０６と、データを再送させる再送制御回路１０７を備える。【選択図】図１
2007243663.tif 000002
【特許請求の範囲】
【請求項１】
宛先装置に向けて送信されるデータ信号を処理する送信ＴＣＰ処理手段と、
上記データ信号を送信及び再送のために格納する送信バッファ手段と、
上記宛先装置から受信された確認応答信号を処理する受信ＴＣＰ処理手段と、
上記送信ＴＣＰ処理手段及び上記受信ＴＣＰ処理手段とは別個に設けられ、上記格納されたデータ信号の再送を制御するデータ再送手段とを備えたデータ送受信装置であって、
上記データ再送手段は、
上記格納されたデータ信号を再送した回数をカウントする再送回数カウンタ手段と、
所定の周期を有する時刻信号を供給するタイマ手段と、
上記データ信号を上記宛先装置に送信したとき、上記時刻信号に基づいて上記データ信号の送信時刻を記録する送信時刻記録手段と、
上記確認応答信号を受信したときに、上記時刻信号に基づいて上記確認応答信号の受信時刻を記録する受信時刻記録手段と、
上記記録された送信時刻及び受信時刻に基づいて、上記データ送受信装置と上記宛先装置との間における信号の往復時間ＲＴＴを算出するＲＴＴ算出手段と、
上記往復時間ＲＴＴに基づいて、上記データ信号を送信してから上記確認応答信号を受信するまでの待機時刻を決定するための再送タイムアウト時間ＲＴＯを算出するＲＴＯ算出手段と、
上記再送タイムアウト時間ＲＴＯに基づいて待機時刻を決定し、上記時刻信号に基づいて、上記確認応答信号が受信されずに上記待機時刻に達したか否かを判定する判定手段と、
上記判定手段により上記待機時刻に達したと判定されたときであって、かつ上記再送回数カウンタ手段によりカウントされた再送の回数が所定のしきい値未満であるとき、上記格納されたデータ信号を再送する再送制御手段とを備えたことを特徴とするデータ送受信装置。
【請求項２】
上記送信時刻記録手段は、上記データ信号を上記送信バッファ手段に格納した時刻を送信時刻として記録して保持することを特徴とする請求項１記載のデータ送受信装置。
【請求項３】
上記送信時刻記録手段は、上記データ信号を上記送信バッファ手段に格納した時刻を送信時刻として記録し、上記記録された送信時刻を、上記データ信号の識別子として上記送信バッファ手段において上記データ信号とともに保持させることを特徴とする請求項１記載のデータ送受信装置。
【請求項４】
上記データ信号は、ＴＣＰヘッダの発信元ポート番号、ＴＣＰヘッダの宛先ポート番号、ＩＰヘッダの発信元アドレス、及びＩＰヘッダの宛先アドレスのうちの少なくとも１つのデータを備えたことを特徴とする請求項１乃至３のうちのいずれか１つに記載のデータ送受信装置。
【請求項５】
上記送受信装置は上記受信された確認応答信号を格納する受信バッファ手段をさらに備え、
上記受信時刻記録手段は、上記確認応答信号を上記受信バッファ手段に格納した時刻を受信時刻として記録して保持することを特徴とする請求項１乃至４のうちのいずれか１つに記載のデータ送受信装置。
【請求項６】
上記送受信装置は上記受信された確認応答信号を格納する受信バッファ手段をさらに備え、
上記受信時刻記録手段は、上記確認応答信号を上記受信バッファ手段に格納した時刻を受信時刻として記録し、上記記録された受信時刻を、上記確認応答信号の識別子として上記受信バッファ手段において上記確認応答信号とともに保持させることを特徴とする請求項１乃至４のうちのいずれか１つに記載のデータ送受信装置。
【請求項７】
上記確認応答信号は、ＴＣＰヘッダの発信元ポート番号、ＴＣＰヘッダの宛先ポート番号、ＩＰヘッダの発信元アドレス、及びＩＰヘッダの宛先アドレスのうちの少なくとも１つのデータを備えたことを特徴とする請求項１乃至６のうちのいずれか１つに記載のデータ送受信装置。
【請求項８】
上記判定手段は、
上記時刻信号により取得される現在時刻に上記再送タイムアウト時間ＲＴＯを加算することによって待機時刻を決定し、
上記時刻信号により取得される現在時刻が上記待機時刻に達したか否かを判定し、
上記待機時刻に達する前に上記確認応答信号を受信したと判定したとき、上記ＲＴＯ算出手段から新たな再送タイムアウト時間ＲＴＯを取得して新たな待機時刻を計算し、上記時刻信号により取得される現在時刻が上記新たな待機時刻に達したか否かを判定し、
上記確認応答信号が受信されずに上記待機時刻に達したと判定したとき、上記格納されたデータ信号を再送するように上記再送制御手段に指示するとともに、上記待機時刻を再計算し、上記時刻信号により取得される現在時刻が上記再計算された待機時刻に達したか否かを判定することを特徴とする請求項１乃至７のうちのいずれか１つに記載のデータ送受信装置。
【請求項９】
上記判定手段は、
上記確認応答信号が受信されずに上記待機時刻に達したと判定したとき、上記再送回数カウンタ手段によりカウントされた再送の回数だけ、上記再送タイムアウト時間ＲＴＯの値に対して左シフト演算を実行し、上記時刻信号により取得される現在時刻に上記左シフト演算された再送タイムアウト時間ＲＴＯを加算することによって待機時刻を再計算することを特徴とする請求項８記載のデータ送受信装置。
【請求項１０】
宛先装置に向けて送信されるデータ信号を処理する送信ＴＣＰ処理手段と、
上記データ信号を送信及び再送のために格納する送信バッファ手段と、
上記宛先装置から受信された確認応答信号を処理する受信ＴＣＰ処理手段と、
上記送信ＴＣＰ処理手段及び上記受信ＴＣＰ処理手段とは別個に設けられ、上記格納されたデータ信号の再送を制御するデータ再送手段とを備えたデータ送受信装置であって、
上記データ信号は、予め特定される第１のデータ信号と、上記第１のデータ信号以外のデータ信号である第２のデータ信号とを含み、
上記データ再送手段は、
格納された上記第１のデータ信号を再送した回数をカウントする再送回数カウンタ手段と、
所定の周期を有する時刻信号を供給するタイマ手段と、
上記第１のデータ信号を上記宛先装置に送信したとき、上記時刻信号に基づいて上記第１のデータ信号の送信時刻を記録する送信時刻記録手段と、
上記第１のデータ信号に係る確認応答信号を受信したときに、上記時刻信号に基づいて上記第１のデータ信号に係る確認応答信号の受信時刻を記録する受信時刻記録手段と、
上記記録された送信時刻及び受信時刻に基づいて、上記データ送受信装置と上記宛先装置との間における信号の往復時間ＲＴＴを算出するＲＴＴ算出手段と、
上記往復時間ＲＴＴに基づいて、上記第１のデータ信号を送信してから上記第１のデータ信号に係る確認応答信号を受信するまでの待機時刻を決定するための再送タイムアウト時間ＲＴＯを算出するＲＴＯ算出手段と、
上記再送タイムアウト時間ＲＴＯに基づいて待機時刻を決定し、上記時刻信号に基づいて、上記第１のデータ信号に係る確認応答信号が受信されずに上記待機時刻に達したか否かを判定する判定手段と、
上記判定手段により上記待機時刻に達したと判定されたときであって、かつ上記再送回数カウンタ手段によりカウントされた再送の回数が所定のしきい値未満であるとき、上記格納された第１のデータ信号を再送する再送制御手段とを備えたことを特徴とするデータ送受信装置。
【請求項１１】
上記送信時刻記録手段は、上記第１のデータ信号を上記送信バッファ手段に格納した時刻を送信時刻として記録して保持することを特徴とする請求項１０記載のデータ送受信装置。
【請求項１２】
上記送信時刻記録手段は、上記第１のデータ信号を上記送信バッファ手段に格納した時刻を送信時刻として記録し、上記記録された送信時刻を、上記第１のデータ信号の識別子として上記送信バッファ手段において上記第１のデータ信号とともに保持させることを特徴とする請求項１０記載のデータ送受信装置。
【請求項１３】
上記第１のデータ信号は、ＴＣＰヘッダの発信元ポート番号、ＴＣＰヘッダの宛先ポート番号、ＩＰヘッダの発信元アドレス、及びＩＰヘッダの宛先アドレスのうちの少なくとも１つのデータを備えたことを特徴とする請求項１０乃至１２のうちのいずれか１つに記載のデータ送受信装置。
【請求項１４】
上記送受信装置は上記受信された確認応答信号を格納する受信バッファ手段をさらに備え、
上記受信時刻記録手段は、上記第１のデータ信号に係る確認応答信号を上記受信バッファ手段に格納した時刻を受信時刻として記録して保持することを特徴とする請求項１０乃至１３のうちのいずれか１つに記載のデータ送受信装置。
【請求項１５】
上記送受信装置は上記受信された確認応答信号を格納する受信バッファ手段をさらに備え、
上記受信時刻記録手段は、上記第１のデータ信号に係る確認応答信号を上記受信バッファ手段に格納した時刻を受信時刻として記録し、上記記録された受信時刻を、上記第１のデータ信号に係る確認応答信号の識別子として上記受信バッファ手段において上記第１のデータ信号に係る確認応答信号とともに保持させることを特徴とする請求項１０乃至１３のうちのいずれか１つに記載のデータ送受信装置。
【請求項１６】
上記第１のデータ信号に係る確認応答信号は、ＴＣＰヘッダの発信元ポート番号、ＴＣＰヘッダの宛先ポート番号、ＩＰヘッダの発信元アドレス、及びＩＰヘッダの宛先アドレスのうちの少なくとも１つのデータを備えたことを特徴とする請求項１０乃至１５のうちのいずれか１つに記載のデータ送受信装置。
【請求項１７】
上記判定手段は、
上記時刻信号により取得される現在時刻に上記再送タイムアウト時間ＲＴＯを加算することによって待機時刻を決定し、
上記時刻信号により取得される現在時刻が上記待機時刻に達したか否かを判定し、
上記待機時刻に達する前に上記第１のデータ信号に係る確認応答信号を受信したと判定したとき、上記ＲＴＯ算出手段から新たな再送タイムアウト時間ＲＴＯを取得して新たな待機時刻を計算し、上記時刻信号により取得される現在時刻が上記新たな待機時刻に達したか否かを判定し、
上記第１のデータ信号に係る確認応答信号が受信されずに上記待機時刻に達したと判定したとき、上記格納された第１のデータ信号を再送するように上記再送制御手段に指示するとともに、上記待機時刻を再計算し、上記時刻信号により取得される現在時刻が上記再計算された待機時刻に達したか否かを判定することを特徴とする請求項１０乃至１６のうちのいずれか１つに記載のデータ送受信装置。
【請求項１８】
上記判定手段は、
上記第１のデータ信号に係る確認応答信号が受信されずに上記待機時刻に達したと判定したとき、上記再送回数カウンタ手段によりカウントされた再送の回数だけ、上記再送タイムアウト時間ＲＴＯの値に対して左シフト演算を実行し、上記時刻信号により取得される現在時刻に上記左シフト演算された再送タイムアウト時間ＲＴＯを加算することによって待機時刻を再計算することを特徴とする請求項１７記載のデータ送受信装置。
【請求項１９】
上記ＲＴＴ算出手段及び上記ＲＴＯ算出手段は、プロセッサと、上記プロセッサ上で実行されるソフトウェアプログラムとによって実装されることを特徴とする請求項１乃至１８のうちのいずれか１つに記載のデータ送受信装置。
【請求項２０】
上記再送カウンタ手段、上記ＲＴＴ算出手段、上記ＲＴＯ算出手段、及び上記判定手段は、プロセッサと、上記プロセッサ上で実行されるソフトウェアプログラムとによって実装されることを特徴とする請求項１乃至１８のうちのいずれか１つに記載のデータ送受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の通信プロトコルに従ってデータを送受信するデータ送受信装置に関する。
【背景技術】
【０００２】
近年、ＩＥＥＥ８０２．３規格であるイーサネット（Ethernet）（登録商標）を用いたり、ＩＥＥＥ８０２．１１規格に準拠した無線通信伝送路を用いたりすることにより、インターネットプロトコルでデータ通信を行うオーディオ／ビジュアル（ＡＶ）機器の開発が盛んに行われている。例えば、映像コンテンツを、離れた場所にあるテレビジョン装置や携帯端末装置にインターネットプロトコルで伝送して視聴するアプリケーションが多く提案されている。
【０００３】
一般に、イーサネット（登録商標）のようなネットワークでのデータ損失率を示すビット誤り率（以下、ＢＥＲという。）は１×１０−８のオーダーであり、テレビジョン放送並みのデータ損失率である１×１０−１０乃至１×１０−１１のＢＥＲに近づけるためには、ネットワークでのパケット損失を低減する必要がある。通信プロトコルには、再送制御可能なＴＣＰ（伝送制御プロトコル）があり、これは、データ損失や再送制御のための処理を意識することなくアプリケーション側より簡単に利用できることから、よく利用される。
【０００４】
ＴＣＰを用いたデータ伝送における再送制御では、全ＴＣＰコネクションで共通に使用されかつ数１００ミリ秒乃至数秒を単位として動作する１つのタイマを用いて、一般にソフトウェア処理により、１つの確認応答パケットが受信された時刻を基準として、その次の確認応答パケットが受信されずに所定の時間期間の再送タイムアウト（RetransmissionTimeOut：以下、ＲＴＯという。）が経過したか否かを判定し、それによって再送を制御している。すなわち、ＲＴＯが再送のトリガ又は再送タイマ値となる。一般に、ＴＣＰ通信におけるデータ送信側装置は、通信相手であるデータ受信側装置との間をパケットが往復する時間であるラウンドトリップ時間（RoundTripTime：以下、ＲＴＴという。）を測定し、その測定値を用いて平滑化ＲＴＴ（以下、ＳＲＴＴという。）及び平滑化した平均偏差（以下、ＲＴＴＶＡＲという。）を計算する。このＳＲＴＴとＲＴＴＶＡＲとに基づいてＲＴＯが決定される。より具体的には、ＲＴＴの測定に使用するクロック精度をＧとすると、ＲＴＴ測定を行った結果の値Ｒが得られたとき、ＳＲＴＴ、ＲＴＴＶＡＲ及びＲＴＯはそれぞれ以下の式で計算される。
【０００５】
［数１］
ＳＲＴＴ（新値）＝（１−α）×ＳＲＴＴ（旧値）＋α×Ｒ      （１）
［数２］
ＲＴＴＶＡＲ（新値）
＝（１−β）×ＲＴＴＶＡＲ（旧値）＋β×｜Ｒ−ＳＲＴＴ（新値）｜      （２）
［数３］
ＲＴＯ＝ＳＲＴＴ（新値）＋ｍａｘ｛Ｇ，Ｋ×ＲＴＴＶＡＲ（新値）｝      （３）
【０００６】
ここで、α，β及びＫは定数であり、例えばそれぞれ１／８，１／４，４に設定される。また、クロック精度Ｇ＝０．５秒であり、ＲＴＯの値は０．５秒の精度で決まる。
【０００７】
以上のようなＴＣＰについての説明として、非特許文献１及び２などが知られている。
【０００８】
図１６に一般的な従来技術に係るデータ再送を行うデータ送受信装置を用いたときの再送制御動作のタイミングチャートを示す。図１６のタイミングチャートは、データ再送装置を備えた送信側装置と、受信側装置とを含む通信システムにおいて、送信側装置が周期Ｃ＝０．５秒でＲＴＯが到来したか否かを判定する際における、データ伝送の発生とＴＣＰ処理によるＣＰＵ負荷とを示している。
【０００９】
図１６において、送信側装置がデータパケットＤ２１，Ｄ２２，Ｄ２３，Ｄ２４，Ｄ２５と、再送データパケットＤ２３とを送信する際のＴＣＰ処理によるＣＰＵ負荷を、それぞれプロセスＰ２１，Ｐ２２，Ｐ２３，Ｐ２４，Ｐ２５，Ｐ２６により表す。また、送信側装置が受信側装置から確認応答パケットＡ２１を受信する際のＴＣＰ処理によるＣＰＵ負荷を、プロセスＰ２７により表す。また送信側装置は、初期時刻Ｔ２０を基準として周期Ｃ＝０．５秒毎に、すなわち時刻Ｔ２１，Ｔ２２，Ｔ２３においてＲＴＯ判定を実行し、このときのＴＣＰ処理によるＣＰＵ負荷をそれぞれプロセスＰ２８，Ｐ２９，Ｐ３０により表す。ＴＣＰの再送制御処理によれば、データパケットＤ２１を送信した時刻と、それに対する確認応答パケットＡ２１を受信した時刻とに基づいてＲＴＴを測定し、このＲＴＴに基づいて式（１）乃至式（３）を用いてＲＴＯを計算する。次いで、確認応答パケットＡ２１を受信した時刻と、計算されたＲＴＯとに基づいて、タイムアウト時刻ＴＴ２が設定される。送信側装置は、タイムアウト時刻ＴＴ２が到来したか否かを０．５秒毎に（すなわち時刻Ｔ２１，Ｔ２２，Ｔ２３において）判定し、もし、次の確認応答パケットを受信せずにタイムアウト時刻ＴＴ２よりも後の時刻Ｔ２３に達した場合には、データパケットＤ２３の再送を開始する。このため、データパケットの再送が必要な状況が生じた場合、再送までに１〜２秒の遅延が発生する。
【００１０】
ＡＶ伝送にＴＣＰ／ＩＰのプロトコルを利用して高い伝送品質を実現しようとする場合、再送による遅延を吸収しデータが途切れないようにするためには、例えば１０Ｍｂｐｓのコンテンツ伝送を行うのであれば、２．５Ｍバイトの大容量の遅延バッファメモリを必要とする。
【００１１】
また、再送の遅延時間を短縮し、バッファメモリの容量を少なくするために、ＲＴＯが到来したか否かを判定する時間間隔の精度を１／１００〜１／１０００に増大させる場合、一般にＴＣＰの動作ステップはソフトウェアにて実装されているので、頻繁にソフトウェアによるＲＴＯ判定処理等が発生し、ＣＰＵ負荷が増大する。
【００１２】
図１７に、ＲＴＯが到来したか否かを判定する周期Ｃを図１６の場合よりも短くした、従来技術に係るデータ再送を行うもう１つのデータ送受信装置を用いたときの再送制御動作のタイミングチャートを示す。送信側装置は、初期時刻Ｔ３０を基準として０．５秒よりも短い周期Ｃ毎に、すなわち時刻Ｔ３１，Ｔ３２，Ｔ３３，Ｔ３４，Ｔ３５，Ｔ３６においてＲＴＯ判定を実行し、このときのＴＣＰ処理によるＣＰＵ負荷をそれぞれプロセスＰ４０，Ｐ４１，Ｐ４２，Ｐ４３，Ｐ４４，Ｐ４５により表す。また送信側装置がデータパケットＤ３１，Ｄ３２，Ｄ３３，Ｄ３４，Ｄ３５と、再送データパケットＤ３３，Ｄ３４，Ｄ３５とを送信する際のＴＣＰ処理によるＣＰＵ負荷を、それぞれプロセスＰ３１，Ｐ３２，Ｐ３３，Ｐ３４，Ｐ３５，Ｐ３６，Ｐ３７，Ｐ３８により表し、また、送信側装置が受信側装置から確認応答パケットＡ３１を受信する際のＴＣＰ処理によるＣＰＵ負荷を、プロセスＰ３９により表す。ＴＣＰの再送制御処理によれば、確認応答パケットＡ３１を受信した時刻と、図１６の場合と同様に計算されたＲＴＯとに基づいて、タイムアウト時刻ＴＴ３が設定される。送信側装置は、タイムアウト時刻ＴＴ３が到来したか否かをＣ秒毎に判定し、もし、次の確認応答パケットを受信せずにタイムアウト時刻ＴＴ３よりも後の時刻Ｔ３５に達した場合には、データパケットＤ３３，Ｄ３４，Ｄ３５の再送を開始する。ＴＣＰ処理によるＣＰＵ負荷を比較すると、図１７の場合では、図１６の場合よりも大きく負荷が増大することがわかる。
【００１３】
【非特許文献１】Ｗ．リチャード・スティーブンス，「詳解ＴＣＰ／ＩＰ  Ｖｏｌ．１  プロトコル」，株式会社ピアソン・エデュケーション，２０００年１２月。
【非特許文献２】ゲーリー・Ｒ・ライト，Ｗ・リチャード・スティーブンス，「詳解ＴＣＰ／ＩＰ  Ｖｏｌ．２  実装」，株式会社ピアソン・エデュケーション，２００２年１２月。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
図１６を参照して説明した従来技術の例では、ＴＣＰ通信においてデータパケットの再送が必要な状況が発生した場合、１〜２秒の遅延が発生する。ＡＶ伝送等の高速データ伝送にＴＣＰを利用して高い伝送品質を実現しようとする場合、再送による遅延を吸収しデータが途切れないようにするためには、例えば１０Ｍｂｐｓのコンテンツ伝送を行うのであれば、２．５Ｍバイトに相当する大容量の遅延バッファメモリを必要とする。
【００１５】
また、図１７を参照して説明した従来技術の例におけるように、再送の遅延時間を短縮し、バッファメモリの容量を少なくするために、ＲＴＯが到来したか否かを判定する時間間隔の精度を１／１００〜１／１０００に増大させる場合、上述のとおり、ＲＴＯ判定のためのプロセスＰ４０，Ｐ４１，Ｐ４２，Ｐ４３，Ｐ４４，Ｐ４５の発生頻度が非常に高くなる。一般にＴＣＰのための動作ステップはソフトウェアにて実装されているので、頻繁にソフトウェアによるＲＴＯ判定プロセス等が発生し、ＣＰＵ負荷が増大する。
【００１６】
本発明の目的は、上記問題点に鑑み、パケット損失等の伝送品質が低下することを防止しながら、ＣＰＵに負荷をかけず、再送を迅速に行うことが可能で、さらに、再送による遅延を吸収するために確保しなければならない送受信用バッファメモリの容量を小さくすることによりコストを抑えたデータ送受信装置を提供することにある。
【課題を解決するための手段】
【００１７】
上記問題を解決するために、本発明の第１の態様に係るデータ送受信装置は、
宛先装置に向けて送信されるデータ信号を処理する送信ＴＣＰ処理手段と、
上記データ信号を送信及び再送のために格納する送信バッファ手段と、
上記宛先装置から受信された確認応答信号を処理する受信ＴＣＰ処理手段と、
上記送信ＴＣＰ処理手段及び上記受信ＴＣＰ処理手段とは別個に設けられ、上記格納されたデータ信号の再送を制御するデータ再送手段とを備えたデータ送受信装置であって、
上記データ再送手段は、
上記格納されたデータ信号を再送した回数をカウントする再送回数カウンタ手段と、
所定の周期を有する時刻信号を供給するタイマ手段と、
上記データ信号を上記宛先装置に送信したとき、上記時刻信号に基づいて上記データ信号の送信時刻を記録する送信時刻記録手段と、
上記確認応答信号を受信したときに、上記時刻信号に基づいて上記確認応答信号の受信時刻を記録する受信時刻記録手段と、
上記記録された送信時刻及び受信時刻に基づいて、上記データ送受信装置と上記宛先装置との間における信号の往復時間ＲＴＴを算出するＲＴＴ算出手段と、
上記往復時間ＲＴＴに基づいて、上記データ信号を送信してから上記確認応答信号を受信するまでの待機時刻を決定するための再送タイムアウト時間ＲＴＯを算出するＲＴＯ算出手段と、
上記再送タイムアウト時間ＲＴＯに基づいて待機時刻を決定し、上記時刻信号に基づいて、上記確認応答信号が受信されずに上記待機時刻に達したか否かを判定する判定手段と、
上記判定手段により上記待機時刻に達したと判定されたときであって、かつ上記再送回数カウンタ手段によりカウントされた再送の回数が所定のしきい値未満であるとき、上記格納されたデータ信号を再送する再送制御手段とを備えたことを特徴とする。
【００１８】
上記データ送受信装置において、上記送信時刻記録手段は、上記データ信号を上記送信バッファ手段に格納した時刻を送信時刻として記録して保持することを特徴とする。それに代わって、上記送信時刻記録手段は、上記データ信号を上記送信バッファ手段に格納した時刻を送信時刻として記録し、上記記録された送信時刻を、上記データ信号の識別子として上記送信バッファ手段において上記データ信号とともに保持させることを特徴とする。
【００１９】
上記データ送受信装置において、上記データ信号は、ＴＣＰヘッダの発信元ポート番号、ＴＣＰヘッダの宛先ポート番号、ＩＰヘッダの発信元アドレス、及びＩＰヘッダの宛先アドレスのうちの少なくとも１つのデータを備えたことを特徴とする
【００２０】
上記データ送受信装置において、上記送受信装置は上記受信された確認応答信号を格納する受信バッファ手段をさらに備え、上記受信時刻記録手段は、上記確認応答信号を上記受信バッファ手段に格納した時刻を受信時刻として記録して保持することを特徴とする。それに代わって、上記送受信装置は上記受信された確認応答信号を格納する受信バッファ手段をさらに備え、上記受信時刻記録手段は、上記確認応答信号を上記受信バッファ手段に格納した時刻を受信時刻として記録し、上記記録された受信時刻を、上記確認応答信号の識別子として上記受信バッファ手段において上記確認応答信号とともに保持させることを特徴とする。
【００２１】
上記データ送受信装置において、上記確認応答信号は、ＴＣＰヘッダの発信元ポート番号、ＴＣＰヘッダの宛先ポート番号、ＩＰヘッダの発信元アドレス、及びＩＰヘッダの宛先アドレスのうちの少なくとも１つのデータを備えたことを特徴とする。
【００２２】
上記データ送受信装置において、上記判定手段は、
上記時刻信号により取得される現在時刻に上記再送タイムアウト時間ＲＴＯを加算することによって待機時刻を決定し、
上記時刻信号により取得される現在時刻が上記待機時刻に達したか否かを判定し、
上記待機時刻に達する前に上記確認応答信号を受信したと判定したとき、上記ＲＴＯ算出手段から新たな再送タイムアウト時間ＲＴＯを取得して新たな待機時刻を計算し、上記時刻信号により取得される現在時刻が上記新たな待機時刻に達したか否かを判定し、
上記確認応答信号が受信されずに上記待機時刻に達したと判定したとき、上記格納されたデータ信号を再送するように上記再送制御手段に指示するとともに、上記待機時刻を再計算し、上記時刻信号により取得される現在時刻が上記再計算された待機時刻に達したか否かを判定することを特徴とする。
【００２３】
また、上記判定手段は、
上記確認応答信号が受信されずに上記待機時刻に達したと判定したとき、上記再送回数カウンタ手段によりカウントされた再送の回数だけ、上記再送タイムアウト時間ＲＴＯの値に対して左シフト演算を実行し、上記時刻信号により取得される現在時刻に上記左シフト演算された再送タイムアウト時間ＲＴＯを加算することによって待機時刻を再計算することを特徴とする。
【００２４】
本発明の第２の態様に係るデータ送受信装置は、
宛先装置に向けて送信されるデータ信号を処理する送信ＴＣＰ処理手段と、
上記データ信号を送信及び再送のために格納する送信バッファ手段と、
上記宛先装置から受信された確認応答信号を処理する受信ＴＣＰ処理手段と、
上記送信ＴＣＰ処理手段及び上記受信ＴＣＰ処理手段とは別個に設けられ、上記格納されたデータ信号の再送を制御するデータ再送手段とを備えたデータ送受信装置であって、
上記データ信号は、予め特定される第１のデータ信号と、上記第１のデータ信号以外のデータ信号である第２のデータ信号とを含み、
上記データ再送手段は、
格納された上記第１のデータ信号を再送した回数をカウントする再送回数カウンタ手段と、
所定の周期を有する時刻信号を供給するタイマ手段と、
上記第１のデータ信号を上記宛先装置に送信したとき、上記時刻信号に基づいて上記第１のデータ信号の送信時刻を記録する送信時刻記録手段と、
上記第１のデータ信号に係る確認応答信号を受信したときに、上記時刻信号に基づいて上記第１のデータ信号に係る確認応答信号の受信時刻を記録する受信時刻記録手段と、
上記記録された送信時刻及び受信時刻に基づいて、上記データ送受信装置と上記宛先装置との間における信号の往復時間ＲＴＴを算出するＲＴＴ算出手段と、
上記往復時間ＲＴＴに基づいて、上記第１のデータ信号を送信してから上記第１のデータ信号に係る確認応答信号を受信するまでの待機時刻を決定するための再送タイムアウト時間ＲＴＯを算出するＲＴＯ算出手段と、
上記再送タイムアウト時間ＲＴＯに基づいて待機時刻を決定し、上記時刻信号に基づいて、上記第１のデータ信号に係る確認応答信号が受信されずに上記待機時刻に達したか否かを判定する判定手段と、
上記判定手段により上記待機時刻に達したと判定されたときであって、かつ上記再送回数カウンタ手段によりカウントされた再送の回数が所定のしきい値未満であるとき、上記格納された第１のデータ信号を再送する再送制御手段とを備えたことを特徴とする。
【００２５】
上記データ送受信装置において、上記送信時刻記録手段は、上記第１のデータ信号を上記送信バッファ手段に格納した時刻を送信時刻として記録して保持することを特徴とする。それに代わって、上記送信時刻記録手段は、上記第１のデータ信号を上記送信バッファ手段に格納した時刻を送信時刻として記録し、上記記録された送信時刻を、上記第１のデータ信号の識別子として上記送信バッファ手段において上記第１のデータ信号とともに保持させることを特徴とする。
【００２６】
上記データ送受信装置において、上記第１のデータ信号は、ＴＣＰヘッダの発信元ポート番号、ＴＣＰヘッダの宛先ポート番号、ＩＰヘッダの発信元アドレス、及びＩＰヘッダの宛先アドレスのうちの少なくとも１つのデータを備えたことを特徴とする。
【００２７】
上記データ送受信装置において、上記送受信装置は上記受信された確認応答信号を格納する受信バッファ手段をさらに備え、上記受信時刻記録手段は、上記第１のデータ信号に係る確認応答信号を上記受信バッファ手段に格納した時刻を受信時刻として記録して保持することを特徴とする。それに代わって、上記送受信装置は上記受信された確認応答信号を格納する受信バッファ手段をさらに備え、上記受信時刻記録手段は、上記第１のデータ信号に係る確認応答信号を上記受信バッファ手段に格納した時刻を受信時刻として記録し、上記記録された受信時刻を、上記第１のデータ信号に係る確認応答信号の識別子として上記受信バッファ手段において上記第１のデータ信号に係る確認応答信号とともに保持させることを特徴とする。
【００２８】
上記データ送受信装置において、上記第１のデータ信号に係る確認応答信号は、ＴＣＰヘッダの発信元ポート番号、ＴＣＰヘッダの宛先ポート番号、ＩＰヘッダの発信元アドレス、及びＩＰヘッダの宛先アドレスのうちの少なくとも１つのデータを備えたことを特徴とする。
【００２９】
上記データ送受信装置において、上記判定手段は、
上記時刻信号により取得される現在時刻に上記再送タイムアウト時間ＲＴＯを加算することによって待機時刻を決定し、
上記時刻信号により取得される現在時刻が上記待機時刻に達したか否かを判定し、
上記待機時刻に達する前に上記第１のデータ信号に係る確認応答信号を受信したと判定したとき、上記ＲＴＯ算出手段から新たな再送タイムアウト時間ＲＴＯを取得して新たな待機時刻を計算し、上記時刻信号により取得される現在時刻が上記新たな待機時刻に達したか否かを判定し、
上記第１のデータ信号に係る確認応答信号が受信されずに上記待機時刻に達したと判定したとき、上記格納された第１のデータ信号を再送するように上記再送制御手段に指示するとともに、上記待機時刻を再計算し、上記時刻信号により取得される現在時刻が上記再計算された待機時刻に達したか否かを判定することを特徴とする。
【００３０】
上記データ送受信装置において、上記判定手段は、
上記第１のデータ信号に係る確認応答信号が受信されずに上記待機時刻に達したと判定したとき、上記再送回数カウンタ手段によりカウントされた再送の回数だけ、上記再送タイムアウト時間ＲＴＯの値に対して左シフト演算を実行し、上記時刻信号により取得される現在時刻に上記左シフト演算された再送タイムアウト時間ＲＴＯを加算することによって待機時刻を再計算することを特徴とする。
【００３１】
上記データ送受信装置において、上記ＲＴＴ算出手段及び上記ＲＴＯ算出手段は、プロセッサと、上記プロセッサ上で実行されるソフトウェアプログラムとによって実装されることを特徴とする。それに代わって、上記再送カウンタ手段、上記ＲＴＴ算出手段、上記ＲＴＯ算出手段、及び上記判定手段は、プロセッサと、上記プロセッサ上で実行されるソフトウェアプログラムとによって実装されることを特徴とする。
【発明の効果】
【００３２】
本発明によれば、宅外のインターネット綱に比べ伝送遅延が非常に小さい（数十マイクロ秒〜数十ミリ秒程度の）小規模なネットワークにおいて、高い伝送品質を維持するために、好ましくは１マイクロ秒の周期で動作するタイマを用いてＲＴＯの判定を実行するので、再送までの遅延時間が短縮されかつ再送を迅速に行うことが可能であるように、再送動作は最適化される。ここでいう小規模なネットワークとは、少数のクライアント装置、サーバ装置、イーサネット（登録商標）スイッチ、ルータ、及び／又は無線ＬＡＮ等のアクセスポイント装置（ＡＰ）を備えて構成されるネットワークであり、例えば家庭内のネットワークなどが挙げられる。そして、再送により生じる遅延時間を大幅に短縮できるので、再送時間を考慮して設けられる遅延バッファメモリの容量を小さくすることができる。
【００３３】
また、ＲＴＴ及びＲＴＯを測定して計算するための手段と、ＲＴＯの時間に達したか否かを判定するための手段とを、ＴＣＰ処理のための手段とは別個に設けるので、ＴＣＰのＲＴＯ判定プロセスが不要となり、ＴＣＰ処理に係るソフトウェアのＣＰＵ負荷を低減できる。
【００３４】
本発明のデータ送受信装置によれば、パケット損失等の伝送品質が低下することを防止しながら、ＣＰＵに負荷をかけず、再送を迅速に行うことが可能で、さらに、再送による遅延を吸収するために確保しなければならない送受信用バッファメモリの容量を小さくすることによりコストを抑えることができる。
【発明を実施するための最良の形態】
【００３５】
以下に、本発明の実施形態について、図面を参照しながら説明する。各図面において、同様の構成要素に対しては同一の参照番号を付与している。
【００３６】
第１の実施形態．
図１乃至図６に、本発明の第１の実施形態を示す。以下これらの図面を参照して、パケット損失等が生じた際に送信データを再送するデータ送受信システムのためのデータ再送装置と、その再送制御処理とについて説明する。
【００３７】
図１は、本発明の第１の実施形態に係る再送コントローラ１０を備えたデータ送受信システムの構成を示すブロック図である。このデータ送受信システムは、ＴＣＰ通信を行うネットワーク３を介して互いに接続されたサーバ装置１とクライアント装置２とを備えて構成される。本実施形態において、ネットワーク３は、伝送遅延が非常に小さい（数十マイクロ秒〜数十ミリ秒程度の）小規模なネットワークにであって、少数のクライアント装置、サーバ装置、イーサネット（登録商標）スイッチ、ルータ、及び／又は無線ＬＡＮ等のアクセスポイント装置（ＡＰ）を備えて構成されるネットワークであり、例えば家庭内のネットワークなどが挙げられる。送受信するデータとしては、例えばオーディオ／ビジュアルデータなどを含むものとする。
【００３８】
本実施形態によれば、図１のサーバ装置１は、宛先のクライアント装置２に向けて送信されるデータを処理する送信ＴＣＰ処理回路１２と、上記データを送信及び再送のために格納する送信バッファ回路１３と、クライアント装置２から受信された確認応答パケットのデータを処理する受信ＴＣＰ処理回路１６と、送信ＴＣＰ処理回路１２及び受信ＴＣＰ処理回路１２とは別個に設けられ、上記格納されたデータの再送を制御する再送コントローラ１０とを備えたことを特徴とする。再送コントローラ１０が送信ＴＣＰ処理回路１２及び受信ＴＣＰ処理回路１２に代わって再送のための制御を実行することにより、パケット損失等の伝送品質が低下することを防止しながら、ＣＰＵに負荷をかけず、再送を迅速に行うことが可能で、さらに、再送による遅延を吸収するために確保しなければならない送受信用バッファメモリの容量を小さくしてコストを抑えたデータ送受信装置を提供することができる。
【００３９】
サーバ装置１において、クライアント装置２に向けて送信すべき送信ＡＶ信号のデータは、最初にＡＶエンコーダ１１において符号化及び圧縮等の処理を受けて、適切なデジタルデータのフォーマットに変換される。変換後のデータは次いで送信ＴＣＰ処理回路１２においてＴＣＰセグメントに変換され、このＴＣＰセグメントのデータは送信及び再送のために送信バッファ回路１３に一旦格納される。送信バッファ回路１３はバッファメモリを備えて構成される。このＴＣＰセグメントのデータは送信バッファ回路１３に格納されるとともに、この送信バッファ回路１３を介して送受信インターフェース回路１４に送られる。送受信インターフェース回路１４は、送信バッファ回路１３から送られたデータを適切なパケットのフォーマットに変換してネットワーク３に送信する。送受信インターフェース回路１４は、その一方で、ネットワーク３から受信されたパケットを受信データとして処理してＴＣＰセグメントに変換し、このＴＣＰセグメントのデータを受信バッファ回路１５を介して受信ＴＣＰ処理回路１６に送る。受信バッファ回路１５は、送信バッファ回路１３と同様にバッファメモリを備えて構成される。受信ＴＣＰ処理回路１６では、受信バッファ回路１５から送られたデータに対するＴＣＰリアセンブル処理が実行され、処理後のデータはＡＶデコーダ１７に送られて復号化及び圧縮解除等の処理を受け、それにより受信ＡＶ信号が取得される。
【００４０】
サーバ装置１はさらに、送信バッファ回路１３及び受信バッファ回路１５に接続された再送コントローラ１０を備え、再送コントローラ１０は、送信ＴＣＰ処理回路１２及び受信ＴＣＰ処理回路１６に代わってＴＣＰの通信プロトコルに基づき、送信バッファ回路１３に格納された送信済みのデータを再送するか又は廃棄するかを決定するための処理を実行する（詳細後述）。サーバ装置１はさらにまた、送信ＴＣＰ処理回路１２及び受信ＴＣＰ処理回路１６に接続された確認応答処理回路１８を備え、確認応答処理回路１８は、サーバ装置１において受信されたパケットに係るＴＣＰセグメントのデータが受信ＴＣＰ処理回路１６に伝送されたときに、送信ＴＣＰ処理回路１２に指示することにより、当該パケットに対するＴＣＰの確認応答パケットを送信バッファ回路１３及び送受信インターフェース回路１４を介して送信させる。
【００４１】
また、クライアント装置２は、サーバ装置の構成要素１１，１２，１３，１４，１５，１６，１７，１８と同様にそれぞれ構成された構成要素２１，２２，２３，２４，２５，２６，２７，２８を備えて構成される。
【００４２】
図１のデータ送受信システムの構成において、ＴＣＰに基づいてサーバ装置１からクライアント装置２へのデータ伝送を行う場合、受信側であるクライアント装置２は、サーバ装置１から送信されたパケットを受信してそのパケットからＴＣＰセグメントのデータを取得すると、受信ＴＣＰ処理回路２６によって、この受信されたＴＣＰセグメントのデータが正常なものであるか否かを判断する。受信されたＴＣＰセグメントのデータが正常であると確認された場合には、クライアント装置２の確認応答処理回路２８は、送信ＴＣＰ処理回路２２に指示することにより、確認応答パケットを送信バッファ回路２３及び送受信インターフェース回路２４を介して送信側サーバ装置１００に送信させる。一方、受信したＴＣＰセグメントのデータが異常であると確認された場合、又は、ネットワーク３上においてパケットが喪失されて受信できなかった場合には、確認応答パケットがクライアント装置２から送信側サーバ装置１００に送信されることはない。
【００４３】
本明細書では、サーバ装置１からクライアント装置２へのデータ伝送についてのみ説明するが、サーバ装置１及びクライアント装置２は、クライアント装置２からサーバ装置１へのデータ伝送を行うように構成されてもよく、さらに双方向的なデータ伝送を行うように構成されてもよい。
【００４４】
サーバ装置１からクライアント装置２へのデータ伝送を行う場合、送信側であるサーバ装置１００において、再送コントローラ１０は、サーバ装置１から送信したパケットに対する確認応答パケットを受信するまで待機すべき時間に係るパラメータであるＲＴＯに基づき経時的にモニタリングする。以下、このことの詳細を図２乃至図５を用いて説明する。
【００４５】
図２は、図１の再送コントローラ１０の詳細構成を示すブロック図である。再送コントローラ１０は、当該再送コントローラ１０内の各回路部分に対して好ましくは１マイクロ秒の時刻信号を供給するタイマ１０１を備える。本実施形態では、タイマの時刻信号は１マイクロ秒の周期を有するものとして説明しているが、実装に応じて０．５マイクロ秒乃至２マイクロ秒程度の周期を有してもよい。タイマ１０１は送信時刻保持回路１０２及び受信時刻保持回路１０３に接続され、送信時刻保持回路１０２はタイマ１０１から供給される時刻信号に基づいて動作し、さらに送信バッファ回路１３に接続されて、送信バッファ回路１３内のデータの送信時刻を記録して内部のメモリ１０２ｍに保持し、また、受信時刻保持回路１０３はタイマ１０１から供給される時刻信号に基づいて動作し、さらに受信バッファ回路１５に接続されて、受信バッファ回路１５内のデータの受信時刻を記録して内部のメモリ１０３ｍに保持する。詳しくは、図２において、送信バッファ回路１３には、送信ＴＣＰ処理回路１２から１個乃至複数個の送信されるＴＣＰセグメントのデータが送られてくる。送信バッファ回路１３は、上記各送信データが当該送信バッファ回路１２内に格納されたことを送信時刻保持回路１０２に通知する。通知を受信した送信時刻保持回路１０２は、１マイクロ秒で動作するタイマ１０１から供給される時刻信号に基づいて、送信データの送信時刻を記録してメモリ１０２ｍに保持する。送信バッファ回路１３は、送信データを内部に格納するとともに送受信インターフェース回路１４に伝送し、送受信インターフェース回路１４は、前述のように伝送された送信データをパケットに変換してネットワーク３に送信する。また、各送信データは、当該送信データに対するＴＣＰの確認応答パケットを受信することにより宛先への到達が確認されるまで、再送のためのデータとして送信バッファ回路１３によって保持される。一方、送受信インターフェース回路１４は、送信された１個乃至複数個のパケットに対するＴＣＰの確認応答パケットをネットワーク３から受信すると、受信された確認応答パケットのデータをＴＣＰセグメントに変換して受信バッファ回路１５に伝送して格納させる。受信バッファ回路１５は、受信された確認応答パケットのデータが受信バッファ回路１５に格納されたことを受信時刻保持回路１０３に通知する。通知を受信した受信時刻保持回路１０３は、１マイクロ秒で動作するタイマ１０１から供給される時刻信号に基づいて、受信された確認応答パケットのデータの受信時刻を記録してメモリ１０３ｍに保持する。
【００４６】
再送コントローラ１０において、送信時刻保持回路１０２及び受信時刻保持回路１０３にはＲＴＴ算出回路１０４が接続され、ＲＴＴ算出回路１０４にはＲＴＯ算出回路１０５が接続される。受信データが、サーバ装置１から送信したパケットに対する確認応答パケットのデータであるならば、送信時刻保持回路１０２及び受信時刻保持回路１０３にそれぞれ保持された送信時刻及び受信時刻に基づいてＲＴＴを計算することができる。送信時刻保持回路１０２は、そのメモリ１０２ｍに保持した送信済みデータ（すなわち送信したパケット）の送信時刻をＲＴＴ算出回路１０４に伝送し、受信時刻保持回路１０３は、そのメモリ１０３ｍに保持した確認応答パケットのデータの受信時刻をＲＴＴ算出回路１０４に伝送する。ＲＴＴ算出回路１０４は、送信時刻と受信時刻とに基づいてＲＴＴの測定時間Ｒ（前述の式（１）及び式（２）を参照）を計算し、また、計算されたＲＴＴの測定時間ＲをＲＴＯ算出回路１０５に伝送する。
【００４７】
次いで、ＲＴＯ算出回路１０５は、背景技術のセクションで説明した一般的な手順に従って、ＲＴＯを計算するためのパラメータＳＲＴＴ及びＲＴＴＶＡＲを計算し、さらにＲＴＯを計算する。ここで、ＲＴＯ算出回路１０５はシフト演算器と加算器と減算器とで実装され、特にＳＲＴＴ及びＲＴＴＶＡＲの値を計算するための回路部分はこれらの構成要素によって構成される。
【００４８】
図３は、図２のＲＴＯ算出回路１０５の詳細構成を示すブロック図である。図３（ならびに図４及び図５）において、回路内を伝送される信号の値はバイナリ値であるものとする。ＲＴＴ算出回路１０４から伝送されたＲＴＴ（又は測定時間の値Ｒ）は、右３ビットシフト演算器２０１と減算器２０５の一方の入力部とに入力される。右３ビットシフト演算器２０１は、ＲＴＴの値を右に３ビットシフトさせることによりＲＴＴの大きさを１／８倍に変換し、変換後の値を加算器２０２の一方の入力部に入力する。加算器２０２から出力される信号であるＳＲＴＴは、右３ビットシフト演算器２０３と減算器２０４の一方の入力部とに入力され、右３ビットシフト演算器２０３は、ＳＲＴＴの値を右に３ビットシフトさせることによりＳＲＴＴの大きさを１／８倍に変換し、変換後の値を減算器２０４のもう一方の入力部に入力する。減算器２０４は、加算器２０２から入力されたＳＲＴＴの値から、右３ビットシフト演算器２０３から入力された値を減算して、加算器２０２のもう一方の入力部に入力する。加算器２０２は、右３ビットシフト演算器２０１から入力された値と減算器２０４から入力された値とを加算することにより、ＳＲＴＴを計算して出力する。ＳＲＴＴの値は、回路部分２０２、２０３及び２０４によって構成されるループによって更新される。加算器２０２から出力されるＳＲＴＴは、前述のように右３ビットシフト演算器２０３及び減算器２０４に入力されるとともに、減算器２０５のもう一方の入力部と、加算器２１３の一方の入力部とに入力される。このように、回路部分２０１、２０２、２０３及び２０４によって、前述の式（１）の計算が実行される。
【００４９】
図３において、減算器２０５は、ＲＴＴ算出回路１０４から伝送されたＲＴＴから、加算器２０２から入力されたＳＲＴＴを減算し、減算結果を２の補数演算器２０６とセレクタ２０７の一方の入力部とに入力するとともに、ボロー信号をセレクタ２０７の制御信号入力部に入力する。２の補数演算器２０６は、減算器２０５から入力された値に対して２の補数演算を実行し、演算結果をセレクタ２０７のもう一方の入力部に入力する。セレクタ２０７は、ボロー信号に基づいて、減算器２０５から入力された値と、２の補数演算器２０６から入力された値とのうちで正の値を選択し、これを右２ビットシフト演算器２０８に入力する。回路部分２０５、２０６及び２０７により、ＲＴＴとＳＲＴＴとの差の絶対値を求めるための計算（式（２）を参照）が実行される。次いで、右２ビットシフト演算器２０８は、セレクタ２０７から入力された値を右に２ビットシフトさせることにより値の大きさを１／４倍に変換し、変換後の値を加算器２０９の一方の入力部に入力する。加算器２０９から出力される信号であるＲＴＴＶＡＲは、右２ビットシフト演算器２１０と減算器２１１の一方の入力部とに入力され、右２ビットシフト演算器２１０は、ＲＴＴＶＡＲの値を右に２ビットシフトさせることによりＲＴＴＶＡＲの大きさを１／４倍に変換し、変換後の値を減算器２１１のもう一方の入力部に入力する。減算器２１１は、加算器２０９から入力されたＲＴＴＶＡＲの値から、右２ビットシフト演算器２１０から入力された値を減算して、加算器２０９のもう一方の入力部に入力する。加算器は、右２ビットシフト演算器２０８から入力された値と減算器２１１から入力された値とを加算することにより、ＲＴＴＶＡＲを計算して出力する。ＲＴＴＶＡＲの値は、回路部分２０９、２１０及び２１１によって構成されるループによって更新される。このように、回路部分２０５、２０６、２０７、２０８、２０９、２１０及び２１１によって、前述の式（２）の計算が実行される。
【００５０】
また、ＲＴＯは上述の通り（式（３）を参照）、一般には次式によって計算される。
【００５１】
［数４］
ＲＴＯ＝ＳＲＴＴ＋ｍａｘ｛Ｇ，Ｋ×ＲＴＴＶＡＲ｝      （４）
【００５２】
ただし、本実施形態では、クロック精度Ｇは１×１０−６であり、常にＧ＜Ｋ×ＲＴＴＶＡＲであるので、次式を用いることができる。
【００５３】
［数５］
ＲＴＯ＝ＳＲＴＴ＋Ｋ×ＲＴＴＶＡＲ      （５）
（係数Ｋは２乃至４である。）
【００５４】
図３において、加算器２０９から出力されるＲＴＴＶＡＲは、前述のように右２ビットシフト演算器２１０及び減算器２１１に入力されるとともに、左１ビットシフト演算器２１２に入力される。左１ビットシフト演算器２１２は、ＲＴＴＶＡＲの値を左に１ビットシフトさせることによりＲＴＴＶＡＲの大きさを２倍に変換し、変換後の値を加算器２１３のもう一方の入力部に入力する。ここで、左１ビットシフト演算器２１２に代えて左２ビットシフト演算器を設けることにより、ＲＴＴＶＡＲの大きさを４倍に変換してもよい。加算器２１３は、加算器２０２から入力された値と左１ビットシフト演算器２１２から入力された値とを加算することにより、ＲＴＯを計算して出力する。このように、式（５）の計算を実行するための回路部分は、シフト演算器２１２と加算器２１３とで実装される。計算されたＲＴＯの値は、後段のＲＴＯ判定回路１０６に伝送される。
【００５５】
再び図２を参照すると、再送コントローラ１０において、ＲＴＯ算出回路１０５にはＲＴＯ判定回路１０６が接続され、ＲＴＯ判定回路１０６は、再送制御回路１０７及び再送回数カウンタ１０８に接続される。ＲＴＯ判定回路１０６は、ＲＴＯ算出回路１０５から伝送されたＲＴＯと、タイマ１０１から供給される時刻信号と、受信バッファ回路１５に確認応答パケットが到来したか否かとに基づいて、確認応答パケットが受信されずにＲＴＯの時間期間が経過したか否かを判定し、確認応答パケットが受信されずにＲＴＯの時間期間が経過した（タイムアウトした）と判定した場合には、再送制御回路１０７を制御して、送信バッファ回路１３内に格納されている送信済みのデータを再送させる（詳細後述）。確認応答パケットが受信されたときは、ＲＴＯ判定回路１０６は、再送制御回路１０７を制御して、送信バッファ回路１３内に格納されている送信済みのデータを廃棄させる。送信済みのデータの再送を行った場合、再送制御回路１０７はこのことをＲＴＯ判定回路１０６及び再送回数カウンタ１０８に通知し、再送回数カウンタ１０８は、これに応答して、内部に格納している再送回数のカウンタ値を１だけインクリメントする。また、再送回数カウンタ１０８のカウンタ値は、受信バッファ回路１５に確認応答パケットのデータが格納されたときに０にリセットされる。再送回数カウンタ１０８に格納された再送回数のカウンタ値はＲＴＯ判定回路１０６及び再送制御回路１０７に供給される。
【００５６】
図４は、図２のＲＴＯ判定回路１０６の詳細構成を示すブロック図であり、図５は、図４のＲＴＯ判定回路１０６の動作を説明するための概略図である。図４のＲＴＯ判定回路１０６において、ＲＴＯ算出回路から伝送されたＲＴＯの値はＲＴＯ保持回路３０１に保持され、保持されたＲＴＯの値はシフト演算器３０２に伝送される。シフト演算器３０２は、再送回数カウンタ１０８から供給される再送回数のカウンタ値だけ、ＲＴＯの値を左にシフトさせるように演算し、演算後の値を加算器３０３の一方の入力部に入力する。加算器３０３は、シフト演算器３０２から入力された値と、タイマ１０１から供給されたバイナリ値の時刻信号とを加算することにより、次の確認応答パケットを受信するまで待機すべき時刻を示す待機時刻を計算し、一致判定回路３０４の一方の入力部に入力する。一致判定回路３０４のもう一方の入力部には、タイマ１０１から供給される時刻信号が入力され、一致判定回路３０４は、タイマ１０１から供給される時刻信号の値と加算器３０３から供給される値とが一致したか否か、すなわちシフト演算器３０２及び加算器３０３によって計算された待機時刻に達したか否かを判定する。一致判定回路３０４は、確認応答パケットを受信する前にこれらの値が一致したと判定した場合には、再送制御回路１０７を制御して、送信バッファ回路１３内に格納されている送信済みのデータを再送させる。また、ＲＴＯ判定回路１０６は、受信バッファ回路１５及び再送制御回路１０７からの信号に基づいてＲＴＯ保持回路３０１、シフト演算器３０２及び一致判定回路３０４の動作を制御するＲＴＯ判定回路コントローラ３０５を備える。
【００５７】
次に図５を参照して、ＲＴＯ判定回路１０６の動作を説明する。図５は、時刻がＴ０，Ｔ１，Ｔ２，…，ＴＮへと経過するのに従って、１回目、２回目、…Ｎ回目の再送のために実行される処理動作を示すとともに、ＲＴＯ判定回路１０６内部の各回路部分の状態と、再送制御回路１０７及び再送回数カウンタ１０８の状態とがどのように変化するかを説明するための図である。なお、説明の簡単化のために、図５では図４のＲＴＯ判定回路コントローラ３０５を図示していない。
【００５８】
図５において、初期状態のＲＴＯ判定回路１０６（すなわち、図５の左端に示したＲＴＯ判定回路１０６）は、ＲＴＯ保持回路３０１に格納されたＲＴＯの値を、ＲＴＯ算出回路１０５によって計算されたＲＴＯの値に更新し、更新されたＲＴＯの値はシフト演算器１５１に伝送されてシフト演算される。ただし、確認応答パケットを受信した直後に実行される処理動作において、すなわちＲＴＯの値を更新するとともに再送回数カウンタ１０８のカウンタ値を０にリセットしたときにおいては、シフト演算は０ビットシフトであり、シフト演算器３０２から出力されるＲＴＯの値は、ＲＴＯ保持回路３０１からシフト演算器３０２に入力されるＲＴＯの値と同じである。次に加算器３０３は、シフト演算器３０２から入力された値とタイマ１０１から取得された現在時刻Ｔ０とを加算して、次の確認応答パケットを受信するまで待機すべき時刻を示す待機時刻Ｔ１を生成し、生成された待機時刻Ｔ１を一致判定回路３０４に伝送する。一致判定回路３０４は、タイマ１０１から供給される時刻信号に基づいて、確認応答パケットを受信することなく待機時刻Ｔ１に達したか否か、すなわち現在時刻が待機時刻Ｔ１に一致したか否かを判定する。
【００５９】
もし、タイマ１０１によって供給される現在時刻と待機時刻とが一致する前に、ＲＴＯ判定回路１０６が送信バッファ回路１３から次の確認応答パケットを受信したと通知された場合には、ＲＴＯ判定回路１０６のＲＴＯ保持回路３０１は新たなＲＴＯの値で更新され、ＲＴＯ判定回路１０６はリセットされる。詳しくは、ＲＴＴ算出回路１０４は、その受信された確認応答パケットのデータの受信時刻に基づいてＲＴＴの新たな測定時間Ｒを計算し、ＲＴＯ算出回路１０５は、このＲＴＴの新たな測定時間Ｒに基づいてＲＴＯの値を更新し、更新されたＲＴＯをＲＴＯ判定回路１０６のＲＴＯ保持回路３０１に格納させる。ＲＴＯ判定回路１０６は、前記の手順にて新たな待機時刻を計算して更新し、次いで、タイマ１０１によって供給される現在時刻と計算された新たな待機時刻とが一致したか否かを判定する。
【００６０】
一方、次の確認応答パケットを受信することなく、タイマ１０１によって供給される現在時刻と待機時刻Ｔ１との一致を検出した場合には、一致判定回路３０４は、再送制御回路１０７にタイムアウトを通知する。
【００６１】
タイムアウトについての通知を受信した再送制御回路１０７は、再送回数カウンタ１０８から供給される再送回数を参照し、予め設定された再送可能回数と比較する。再送制御回路１０７は、もし、予め設定された再送可能回数と再送回数カウンタ１０８から供給された再送回数とが一致した場合は、再送を行うことなく、再送回数が指定数に達したことをサーバ装置１全体のコントローラ（図示せず。）に通知して、送信のための処理を終了する。もし、再送回数カウンタ１０８から供給された再送回数が、予め設定された再送可能回数未満である場合は、再送制御回路１０７は、送信バッファ回路１３に指示して、再送のために送信バッファ回路１３内に保持されたデータを再送させるとともに、送信済みデータを再送したことを再送回数カウンタ１０８とＲＴＯ判定回路１０６のＲＴＯ判定回路コントローラ３０５とに通知する。
【００６２】
本実施形態では、待機時刻Ｔ１までに確認応答パケットを受信しなかったとき、再送制御回路１０７は一致判定回路３０４からタイムアウトの通知を受信すると、１回目の再送を実行するように送信バッファ回路１３に指示する。
【００６３】
再送回数カウンタ１０８は、再送したことの通知を再送制御回路１０７から受信すると再送回数のカウンタ値を１だけインクリメントする。
【００６４】
また、ＲＴＯ判定回路１０６のＲＴＯ判定回路コントローラ３０５は、再送したことの通知を受信したとき、次の再送のための動作を開始する。ＲＴＯ判定回路１０６において、ＲＴＯ保持回路３０１に格納されたＲＴＯの値がシフト演算器１５１に伝送され、再送回数カウンタ１０８からカウンタ値「１」がシフト演算器３０２に伝送され、シフト演算器３０２は、ＲＴＯ値を左に１ビットだけシフトして加算器３０３に伝送する。次に加算器３０３は、シフト演算器３０２から伝送された値と、前回の再送を実行した時刻であるＴ１とを加算して、次の確認応答パケットを受信するまで待機すべき時刻を示す待機時刻Ｔ２を再計算して生成し、生成された待機時刻Ｔ２を一致判定回路３０４に伝送する。一致判定回路３０４は、タイマ１０１から供給される時刻信号に基づいて、確認応答パケットを受信することなく待機時刻Ｔ２に達したか否か、すなわち現在時刻が待機時刻Ｔ２に一致したか否かを判定する。待機時刻Ｔ２までに確認応答パケットを受信しなかったとき、一致判定回路３０４は再送制御回路１０７にタイムアウトを通知し、再送制御回路１０７は、再送回数カウンタ１０８から供給される再送回数が予め設定された再送可能回数未満であることを確認した後で、２回目の再送を実行するように送信バッファ回路１３に指示する。再送制御回路１０７はさらに、送信済みデータを再送したことを再送回数カウンタ１０８とＲＴＯ判定回路１０６のＲＴＯ判定回路コントローラ３０５とに通知する。
【００６５】
ＲＴＯ判定回路１０６は、以後同様に、次の再送のための動作を実行する。ＲＴＯ判定回路１０６において、ＲＴＯ保持回路３０１に格納されたＲＴＯの値がシフト演算器１５１に伝送され、再送回数カウンタ１０８からカウンタ値がシフト演算器３０２に伝送され、シフト演算器３０２は、カウンタ値の大きさだけＲＴＯの値を左にシフトさせるように演算し、加算器３０３に伝送する。ここで、シフト演算器３０２は、例えば、確認応答パケットを受信せずにタイムアウトしたことがすでに１回ある場合には１ビットのシフト演算を実行し、すでにＮ回ある場合にはＮビットのシフト演算を実行する。これにより、確認応答パケットを受信するまでの待機時間は、再送を繰り返す毎に２倍ずつ増大される。次に加算器３０３は、シフト演算器３０２から伝送された値と、前回の再送を実行したときの時刻とを加算して、次の確認応答パケットを受信するまで待機すべき時刻を示す待機時刻を生成し、生成された待機時刻を一致判定回路３０４に伝送する。一致判定回路３０４は、タイマ１０１から供給される時刻信号に基づいて、確認応答パケットを受信することなく待機時刻に達したか否か、すなわち現在時刻が待機時刻に一致したか否かを判定する。待機時刻までに確認応答パケットを受信しなかったとき、一致判定回路３０４は再送制御回路１０７にタイムアウトを通知し、再送制御回路１０７は、再送回数カウンタ１０８から供給される再送回数が予め設定された再送可能回数未満であることを確認した後で、再送を実行するように送信バッファ回路１３に指示する。再送制御回路１０７はさらに、送信済みデータを再送したことを再送回数カウンタ１０８とＲＴＯ判定回路１０６のＲＴＯ判定回路コントローラ３０５とに通知する。
【００６６】
以上のように構成された再送コントローラ１０を備えたデータ送受信システムによれば、パケット損失等により伝送品質が低下することを抑制しながら、ソフトウェア処理の負荷がほとんど発生することなく、パケットの再送を迅速に実行することが可能となる。
【００６７】
図６は、図１の再送コントローラ１０の再送制御動作のタイミングチャートである。図６のタイミングチャートは、図１のデータ送受信システムにおいて、サーバ装置１が周期Ｃ＝１マイクロ秒でＲＴＯの時間が到来したか否かを判定する際における、データ伝送の発生と、ＴＣＰ処理によるＣＰＵ負荷と、再送コントローラ１０内のＲＴＯ判定回路１０６の動作とを示している。
【００６８】
図６において、サーバ装置１がデータパケットＤ１，Ｄ２，Ｄ３，Ｄ４，Ｄ５と、再送データパケットＤ３，Ｄ２，Ｄ３とを送信する際の送信ＴＣＰ処理回路１２の処理動作によるＣＰＵ負荷を、それぞれプロセスＰ１，Ｐ２，Ｐ３，Ｐ４，Ｐ５，Ｐ７，Ｐ８，Ｐ９により表す。また、サーバ装置１がクライアント装置２から確認応答パケットＡ１を受信する際の受信ＴＣＰ処理回路１６の処理動作によるＣＰＵ負荷を、プロセスＰ１０により表す。またＲＴＯ判定回路１０６は、初期時刻Ｔ１０を基準として周期Ｃ＝１マイクロ秒毎に、すなわち時刻Ｔ１１，Ｔ１２，Ｔ１３，Ｔ１４，Ｔ１５においてＲＴＯ判定を実行し、この負荷をプロセスＰ１１により表す。本実施形態によれば、再送コントローラ１０は、データパケットＤ１を送信した時刻と、それに対する確認応答パケットＡ１を受信した時刻とに基づいてＲＴＴを測定し、このＲＴＴに基づいて式（１）、式（２）及び式（５）を用いてＲＴＯを計算する。次いで、確認応答パケットＡ１を受信した時刻と、計算されたＲＴＯとに基づいて、タイムアウト時刻ＴＴ１が設定される。ＲＴＯ判定回路１０６は、タイムアウト時刻ＴＴ１が到来したか否かを１マイクロ秒毎に（すなわち時刻Ｔ１１，Ｔ１２，Ｔ１３，Ｔ１４，Ｔ１５において）判定し、もし、次の確認応答パケットを受信せずにタイムアウト時刻ＴＴ１に達した場合には、データパケットＤ３の再送を開始する。再送の開始時のＴＣＰ処理のための負荷を、プロセスＰ６により表す。図１０によれば、本実施形態では、ＲＴＴ及びＲＴＯを測定しまた計算するための回路と、ＲＴＯの時間に達したか否かを判定するための回路とを、ＴＣＰ処理のための回路とは別個に設けるので、ＴＣＰのＲＴＯ判定プロセスが不要となり、ＴＣＰ処理に係るソフトウェアのＣＰＵ負荷を低減できる。
【００６９】
また、再送時間を考慮して設けられる遅延バッファメモリの容量は、（伝送レート）×ＲＴＯにより決定されるが、本実施形態のＲＴＯは一般的なＴＣＰのＲＴＯより充分に小さくなる。従って、例えば、伝送レートが１０Ｍｂｐｓであり、ＲＴＴが最大で４００マイクロ秒であり、係数Ｋ＝２とした場合、式（１）を計算すると、ＳＲＴＴ（旧値）＝４００マイクロ秒に対してＳＲＴＴ（新値）＝４００マイクロ秒であり、式（２）を計算すると、ＲＴＴＶＡＲ（旧値）＝４００マイクロ秒に対してＲＴＴＶＡＲ（新値）＝３００マイクロ秒であり、式（５）よりＲＴＯ＝１０００マイクロ秒＝１ミリ秒となる。これらの値より再送のための遅延バッファメモリの容量を計算すると１２５Ｋバイトとなり、本実施形態によれば、バッファメモリの容量を従来技術のＴＣＰ処理を用いた場合と比較して小さくできることがわかる。
【００７０】
第１の実施形態の変形例．
図７は、本発明の第１の実施形態の第１の変形例に係る再送コントローラ１０Ａの構成を示すブロック図である。再送コントローラ１０Ａでは、図２のＲＴＴ算出回路１０４及びＲＴＯ算出回路１０５の機能を、所定のソフトウェアを実行するＤＳＰ（デジタルシグナルプロセッサ）４０１によって実装している。ＤＳＰ４０１は、送信時刻保持回路１０２から伝送された送信時刻と受信時刻保持回路１０３から伝送された受信時刻とに基づいて、ＲＴＯをソフトウェアにより計算してＲＴＯ判定回路１０６に伝送する。
【００７１】
図８は、本発明の第１の実施形態の第２の変形例に係る再送コントローラ１０Ｂの構成を示すブロック図である。再送コントローラ１０Ａでは、図２のＲＴＴ算出回路１０４、ＲＴＯ算出回路１０５、再送制御回路１０７及び再送回数カウンタ１０８の機能を、所定のソフトウェアを実行するＤＳＰ４０２によって実装している。ＤＳＰ４０２は、送信時刻保持回路１０２から伝送された送信時刻と受信時刻保持回路１０３から伝送された受信時刻とに基づいてＲＴＯをソフトウェアにより計算してＲＴＯ判定回路１０６に伝送するとともに、ＲＴＯ判定回路１０６からの指示に応答して送信バッファ回路１３内に格納された送信済みデータを再送させる。
【００７２】
第２の実施形態．
以下、図９乃至図１３を参照して本発明の第２の実施形態について説明する。
【００７３】
本実施形態では、データ信号が、小さな遅延で伝送されることを必要とするデータとして予め特定される特定送信データと、それ以外のデータ信号である汎用送信データとに区別され、特定送信データと汎用送信データとは送信バッファ回路１３Ａ及び受信バッファ回路１５Ａの中でそれぞれ別個に格納され、また特定送信データのみが再送制御されることを特徴とする。
【００７４】
図９は、本発明の第２の実施形態に係る再送コントローラ１０Ｃの構成を示すブロック図である。再送コントローラ１０Ｃは、図２の再送コントローラ１０における送信時刻保持回路１０２、受信時刻保持回路１０３及びＲＴＴ算出回路１０４に代えて、送信時刻記録回路１０２Ａ、受信時刻保持回路１０３Ａ及びＲＴＴ算出回路１０４Ａを備える。また、再送コントローラ１０Ｃには、図２の送信バッファ回路１３に代えて送信バッファ回路１３Ａが接続され、図２の受信バッファ回路１５に代えて受信バッファ回路１５Ａが接続されている。送信バッファ回路１３Ａには、送信ＴＣＰ処理回路１２から１個乃至複数個の送信されるＴＣＰセグメントのデータが送られてくる。送信バッファ回路１３Ａは、上記各送信データが送信バッファ回路１３Ａに格納されたことを送信時刻記録回路１０２Ａに通知する。通知を受信した送信時刻記録回路１０２Ａは、１マイクロ秒で動作するタイマ１０１から供給される時刻信号に基づいて送信データの送信時刻を記録して、その送信時刻を送信バッファ回路１３Ａに伝送し、送信データに関連付けて記録させる（詳細後述）。また、ＲＴＴ算出回路１０４Ａは、送信バッファ回路１３Ａ内に記録されたこの送信時刻を参照することによりＲＴＴを計算する。一方、受信バッファ回路１５Ａには、送受信インターフェース回路１４から、１個乃至複数個の受信されたＴＣＰセグメントのデータが送られてくる。受信バッファ回路１５Ａは、確認応答パケットのデータを格納したとき、このことを受信時刻記録回路１０３Ａに通知する。通知を受信した受信時刻記録回路１０３Ａは、１マイクロ秒で動作するタイマ１０１から供給される時刻信号に基づいて、受信された確認応答パケットのデータの受信時刻を記録して、その受信時刻を受信バッファ回路１５Ａに伝送し、受信データに関連付けて記録させる（詳細後述）。また、ＲＴＴ算出回路１０４Ａは、受信バッファ回路１５Ａ内に記録された確認応答パケットのデータの受信時刻を参照することによりＲＴＴを計算する。
【００７５】
以下図１０乃至図１３を参照して、図９の送信バッファ回路１３Ａ及び受信バッファ回路１５Ａの詳細構成及び動作に関して説明する。
【００７６】
図１０は、図９の送信バッファ回路１３Ａの詳細構成を示すブロック図である。送信バッファ回路１３Ａは、送信データを、ＡＶデータ等の高い伝送レートでの送信及び迅速な再送を必要とする特定送信データと、それ以外の汎用送信データとに区別し、それぞれ異なるバッファバンクに格納するように構成されている。送信バッファ回路１３Ａは、ＴＣＰコネクション毎に対応したＡＶデータ等の高い伝送レートでの送信及び迅速な再送を必要とする１つあるいは複数の特定送信データ用バッファバンク５０３と、特定送信データ以外の送信データを格納する１つの汎用送信データ用バッファバンク５０４とを備える。送信バッファ回路１３Ａにおいて、送信ＴＣＰ処理回路１２から伝送された送信データは、最初に送信データ識別回路５０１によって特定送信データと汎用送信データとに分離され、特定送信データは格納フォーマット変換器５０２によってフォーマット変換された後で特定送信データ用バッファバンク５０３に伝送され、汎用送信データは汎用送信データ用バッファバンク５０４に伝送される。特定送信データ用バッファバンク５０３は、１つ又は複数のバッファメモリであるバッファ５０３−１乃至５０３−Ｍを備えて構成され、各バッファ５０３−１乃至５０３−Ｍはそれぞれ特定送信データを格納する。汎用送信データ用バッファバンク５０４もまた同様に、１つ又は複数のバッファメモリであるバッファ５０４−１乃至５０４−Ｎを備えて構成され、各バッファ５０４−１乃至５０４−Ｎはそれぞれ汎用送信データを格納する。特定送信データ用バッファバンク５０３に格納された特定送信データと、汎用送信データ用バッファバンク５０４に格納された汎用送信データとは、送信調停回路５０５を介して送受信インターフェース回路１４に伝送される。この伝送は、特定送信データ用バッファバンク５０３、汎用送信データ用バッファバンク５０４、送信調停回路５０５及び再送コントローラ１０Ｃに接続されたバッファコントローラ５０６によって制御される。送信調停回路５０５は、特定送信データに対する送信要求を調停するとともに、特定送信データ及び汎用送信データの送信順序を決定し、決定された送信順序に従って送受信インターフェース回路１４に伝送してネットワーク３に送信させる。
【００７７】
図１１は、図１０の特定送信データ用バッファバンク５０３内の送信データ格納フォーマット５１０を説明するための概略図である。格納フォーマット変換器５０２は、送信データ識別回路５０１から伝送された送信データのフォーマットを図１１の送信バッファ格納フォーマット５１０に変換する。送信バッファ格納フォーマット５１０は、送信ＴＣＰ処理回路１２から伝送された送信データ５１２に対して送信用記述識別子５１１を付加したフォーマットを有し、送信用記述識別子５１１は、その主な構成要素として、送信処理を制御するための送信データ長などの情報と、送信時刻記録回路１０２Ａからバッファコントローラ５０６を介して供給された送信時刻の情報とを含む。また、送信データ５１２は、ＴＣＰ／ＩＰの通信プロトコルに従って指定されたＴＣＰヘッダの発信元ポート番号及び宛先ポート番号とＩＰヘッダの発信元アドレス及び宛先アドレスとの少なくとも１つを予めデータに含んだ形式で、送信ＴＣＰ処理回路１２から伝送されている。バッファ５０３−１乃至５０３−Ｍの各々は、送信バッファ格納フォーマット５１０に示すように、送信用記述識別子５１１と送信データ５１２とを含むフォーマットでデータを格納する。
【００７８】
図１０において、特定送信データ以外の汎用送信データは、送信バッファ格納フォーマット５１０のフォーマットか、あるいは別の格納フォーマットで、汎用送信データ用バッファバンク５０４に格納される。
【００７９】
特定送信データ用バッファバンク５０３に格納された特定送信データは、再送コントローラ１０Ｃによる管理及び制御の対象となり、ＲＴＴ算出回路１０４Ａからバッファコントローラ５０６を介して当該データの送信時刻が参照される。また、汎用送信データ用バッファバンク５０４に格納された汎用送信データは、再送コントローラ１０Ｃによる管理及び制御の対象とはならないので、ＲＴＴ算出回路１０４Ａにより当該データが参照されることはない。
【００８０】
図１２は、図９の受信バッファ回路１５Ａの詳細構成を示すブロック図である。受信バッファ回路１５Ａは、受信データを、ＡＶデータ等の高い伝送レートで送信した特定送信データに対して受信されるＴＣＰの確認応答パケットに係る特定受信データと、それ以外の汎用受信データとに区別し、それぞれ異なるバッファバンクに格納するように構成されている。受信バッファ回路１５Ａは、ＴＣＰコネクション毎に対応したＡＶデータ等の高い伝送レートで送信した送信データに対して受信されるＴＣＰの確認応答パケットを格納する１つあるいは複数の特定受信データ用バッファバンク６０３と、特定受信データ以外の受信データを格納する１つの汎用受信データ用バッファバンク６０４とを備える。受信バッファ回路１５Ａにおいて、最初に受信データ識別回路６０１は、送受信インターフェース回路１４から伝送された受信データにおけるＴＣＰヘッダの発信元ポート番号及び宛先ポート番号とＩＰヘッダの発信元アドレス及び宛先アドレスとを走査し、それにより受信データは、以前に送信した特定送信データのパケットに対する確認応答パケットのデータであると識別された特定受信データと、それ以外のデータであると識別された汎用受信データとに分離され、特定受信データは格納フォーマット変換器６０２によってフォーマット変換された後で特定受信データ用バッファバンク６０３に伝送され、汎用受信データは汎用受信データ用バッファバンク６０４に伝送される。この識別は、再送コントローラ１０Ｃから受信バッファ回路１５Ａのバッファコントローラ６０５を介して受信データ識別回路６０１に予め伝送された情報（ＴＣＰヘッダの発信元ポート番号、宛先ポート番号、ＩＰヘッダの発信元アドレス、及び宛先アドレスのうちの少なくとも１つ）に基づいて、ヘッダ情報の一致を判定することにより実行される。バッファコントローラ６０５はさらに、特定受信データ用バッファバンク６０３及び汎用受信データ用バッファバンク６０４にも接続されている。特定受信データ用バッファバンク６０３は、１つ又は複数のバッファメモリであるバッファ６０３−１乃至６０３−Ｍを備えて構成され、各バッファ６０３−１乃至６０３−Ｍはそれぞれ特定受信データを格納する。汎用受信データ用バッファバンク６０４もまた同様に、１つ又は複数のバッファメモリであるバッファ６０４−１乃至６０４−Ｎを備えて構成され、各バッファ６０４−１乃至６０４−Ｎはそれぞれ汎用受信データを格納する。特定受信データ用バッファバンク６０３に格納された特定受信データと、汎用受信データ用バッファバンク６０４に格納された汎用受信データとは、受信ＴＣＰ処理回路１６に伝送されて処理される。
【００８１】
図１３は、図１２の特定受信データ用バッファバンク６０３内の受信データ格納フォーマット６１０を説明するための概略図である。格納フォーマット変換器６０２は、受信データ識別回路６０１から伝送された受信データのフォーマットを図１３の受信バッファ格納フォーマット６１０に変換する。受信バッファ格納フォーマット６１０は、受信データ識別回路６０１から伝送された受信データ６１２に対して受信用記述識別子６１１を付加したフォーマットを有し、受信用記述識別子６１１は、その主な構成要素として、受信処理を制御するための受信データ長などの情報と、受信時刻記録回路１０３Ａからバッファコントローラ６０５を介して供給された受信時刻の情報と、受信ステータス情報などを含む。バッファ６０３−１乃至６０３−Ｍの各々は、受信バッファ格納フォーマット６１０に示すように、受信用記述識別子６１１と受信データ６１２とを含むフォーマットでデータを格納する。
【００８２】
図１２において、特定受信データ以外の汎用受信データは、受信バッファ格納フォーマット６１０のフォーマットか、あるいは別の格納フォーマットで、汎用受信データ用バッファバンク６０４に格納される。
【００８３】
特定受信データ用バッファバンク６０３に格納された特定受信データは、再送コントローラ１０Ｃによる管理及び制御の対象となり、ＲＴＴ算出回路１０４Ａからバッファコントローラ６０５を介して当該データの受信時刻が参照される。また、汎用受信データ用バッファバンク６０４に格納された汎用受信データは、再送コントローラ１０Ｃによる管理及び制御の対象とはならないので、ＲＴＴ算出回路１０４Ａにより当該データが参照されることはない。
【００８４】
以上のように構成された、特定送信データのみを対象として再送制御する再送コントローラ１０Ｃによれば、特定送信データのみを再送制御の対象とするため、ある程度の処理をソフトウェアにて実現した場合でもＣＰＵに負荷をかけず、高速な処理が可能であり、処理パケット損失等により伝送品質が低下することを抑制しながら、再送を迅速に行うことが可能となる。
【００８５】
第２の実施形態の変形例．
図１４は、本発明の第２の実施形態の第１の変形例に係る再送コントローラ１０Ｄの構成を示すブロック図である。再送コントローラ１０Ｄでは、図９のＲＴＴ算出回路１０４Ａ及びＲＴＯ算出回路１０５の機能を、所定のソフトウェアを実行するＤＳＰ７０１によって実装している。ＤＳＰ７０１は、送信バッファ回路１３Ａから伝送された送信時刻と受信バッファ回路１５Ａから伝送された受信時刻とに基づいて、ＲＴＯをソフトウェアにより計算してＲＴＯ判定回路１０６に伝送する。
【００８６】
図１５は、本発明の第２の実施形態の第２の変形例に係る再送コントローラ１０Ｅの構成を示すブロック図である。再送コントローラ１０Ｅでは、図９のＲＴＴ算出回路１０４Ａ、ＲＴＯ算出回路１０５、再送制御回路１０７及び再送回数カウンタ１０８の機能を、所定のソフトウェアを実行するＤＳＰ７０２によって実装している。ＤＳＰ７０２は、送信バッファ回路１３Ａから伝送された送信時刻と受信バッファ回路１５Ａから伝送された受信時刻とに基づいてＲＴＯをソフトウェアにより計算してＲＴＯ判定回路１０６に伝送するとともに、ＲＴＯ判定回路１０６からの指示に応答して送信バッファ回路１３Ａ内に格納された送信済みデータを再送させる。
【００８７】
変形例．
第１の実施形態において、送信バッファ回路１３及び受信バッファ回路１５を図１０乃至図１３と同様に構成し、それによって送信データを特定送信データと汎用送信データとに区別して処理し、受信データを特定受信データと汎用受信データとに区別して処理してもよい。また、第２の実施形態において、データの送信時刻及び受信時刻を送信用記述識別子５１１及び受信用記述識別子６１１に記録することなく、再送コントローラ１０Ｃの内部で保持して、保持された送信時刻及び受信時刻をＲＴＴ算出回路１０４Ａに直接に伝送してもよい。
【００８８】
なお、図２の再送コントローラ１０及び図９の再送コントローラ１０Ｃにおける他の回路部分を、１つ又は複数のＤＳＰ又は汎用プロセッサと、当該ＤＳＰ又は汎用プロセッサ上で実行されるソフトウェアとにより置き換えて、当該回路部分の機能をソフトウェア的に実現してもよい。また、サーバ装置１及びクライアント装置２の他の回路部分をソフトウェア的に実現してもよいし、ハードウェア的に実現してもよい。
【００８９】
以上に説明した各実施形態は、例示であって本発明の範囲を限定するものでは無い。
【産業上の利用可能性】
【００９０】
本発明に係るデータ再送装置を備えたデータ送受信システムは、ＡＶデータを複雑なＴＣＰなどのインターネットプロトコルで伝送する機能を安価に提供できるばかりでなく、複数種のコンテンツへの対応や規格の変更などに柔軟に対応できる汎用性をもっている。そのため、本発明は、ネットワークに接続される家電製品やモバイル端末装置等の用途に有用である。
【図面の簡単な説明】
【００９１】
【図１】本発明の第１の実施形態に係る再送コントローラ１０を備えたデータ送受信システムの構成を示すブロック図である。
【図２】図１の再送コントローラ１０の詳細構成を示すブロック図である。
【図３】図２のＲＴＯ算出回路１０５の詳細構成を示すブロック図である。
【図４】図２のＲＴＯ判定回路１０６の詳細構成を示すブロック図である。
【図５】図４のＲＴＯ判定回路１０６の動作を説明するための概略図である。
【図６】図１の再送コントローラ１０の再送制御動作のタイミングチャートである。
【図７】本発明の第１の実施形態の第１の変形例に係る再送コントローラ１０Ａの構成を示すブロック図である。
【図８】本発明の第１の実施形態の第２の変形例に係る再送コントローラ１０Ｂの構成を示すブロック図である。
【図９】本発明の第２の実施形態に係る再送コントローラ１０Ｃの構成を示すブロック図である。
【図１０】図９の送信バッファ回路１３Ａの詳細構成を示すブロック図である。
【図１１】図１０の特定送信データ用バッファバンク５０３内の送信データ格納フォーマット５１０を説明するための概略図である。
【図１２】図９の受信バッファ回路１５Ａの詳細構成を示すブロック図である。
【図１３】図１２の特定受信データ用バッファバンク６０３内の受信データ格納フォーマット６１０を説明するための概略図である。
【図１４】本発明の第２の実施形態の第１の変形例に係る再送コントローラ１０Ｄの構成を示すブロック図である。
【図１５】本発明の第２の実施形態の第２の変形例に係る再送コントローラ１０Ｅの構成を示すブロック図である。
【図１６】従来技術に係るデータ再送を行うデータ送受信装置を用いたときの再送制御動作のタイミングチャートである。
【図１７】従来技術に係るデータ再送を行うもう１つのデータ送受信装置を用いたときの再送制御動作のタイミングチャートである。
【符号の説明】
【００９２】
１…サーバ装置、
２…クライアント装置、
３…ネットワーク、
１０，１０Ａ，１０Ｂ，１０Ｃ，１０Ｄ，１０Ｅ，２０…再送コントローラ、
１１，２１…ＡＶエンコーダ、
１２，２２…送信ＴＣＰ処理回路、
１３，１３Ａ，２３…送信バッファ回路、
１４，２４…送受信インターフェース回路、
１５，１５Ａ，２５…受信バッファ回路、
１６，２６…受信ＴＣＰ処理回路、
１７，２７…ＡＶデコーダ、
１８，２８…確認応答処理回路、
１０１…タイマ、
１０２…送信時刻保持回路、
１０２Ａ…送信時刻記録回路、
１０３…受信時刻保持回路、
１０３Ａ…受信時刻記録回路、
１０２ｍ，１０３ｍ…メモリ、
１０４，１０４Ａ…ＲＴＴ算出回路、
１０５…ＲＴＯ算出回路、
１０６…ＲＴＯ判定回路、
１０７…再送制御回路、
１０８…再送回数カウンタ、
２０１，２０３…右３ビットシフト演算器、
２０２，２０９，２１３…加算器、
２０４，２０５，２１１…減算器、
２０６…２の補数演算器、
２０７…セレクタ、
２０８，２１０…右２ビットシフト演算器、
２１２…左１ビットシフト演算器、
３０１…ＲＴＯ保持回路、
３０２…シフト演算器、
３０３…加算器、
３０４…一致判定回路、
３０５…ＲＴＯ判定回路コントローラ、
Ｐ１乃至Ｐ１１…プロセス、
Ｄ１乃至Ｄ５…データパケット、
Ａ１…確認応答パケット、
４０１，４０２…ＤＳＰ、
５０１…送信データ識別回路、
５０２…格納フォーマット変換器、
５０３…特定送信データ用バッファバンク、
５０３−１乃至５０３−Ｍ…バッファ、
５０４…汎用送信データ用バッファバンク、
５０４−１乃至５０４−Ｎ…バッファ、
５０５…送信調停回路、
５０６…バッファコントローラ、
５１１…送信用記述識別子、
５１２…送信データ、
６０１…受信データ識別回路、
６０２…格納フォーマット変換器、
６０３…特定受信データ用バッファバンク、
６０３−１乃至６０３−Ｍ…バッファ、
６０４…汎用受信データ用バッファバンク、
６０４−１乃至６０４−Ｎ…バッファ、
６０５…バッファコントローラ、
６１１…受信用記述識別子、
６１２…受信データ、
７０１，７０２…ＤＳＰ。
【図１】
2007243663.tif 000003
【図２】
2007243663.tif 000004
【図３】
2007243663.tif 000005
【図４】
2007243663.tif 000006
【図５】
2007243663.tif 000007
【図６】
2007243663.tif 000008
【図７】
2007243663.tif 000009
【図８】
2007243663.tif 000010
【図９】
2007243663.tif 000011
【図１０】
2007243663.tif 000012
【図１１】
2007243663.tif 000013
【図１２】
2007243663.tif 000014
【図１３】
2007243663.tif 000015
【図１４】
2007243663.tif 000016
【図１５】
2007243663.tif 000017
【図１６】
2007243663.tif 000018
【図１７】
2007243663.tif 000019