JP2007243663A - データ送受信装置 - Google Patents
データ送受信装置 Download PDFInfo
- Publication number
- JP2007243663A JP2007243663A JP2006064095A JP2006064095A JP2007243663A JP 2007243663 A JP2007243663 A JP 2007243663A JP 2006064095 A JP2006064095 A JP 2006064095A JP 2006064095 A JP2006064095 A JP 2006064095A JP 2007243663 A JP2007243663 A JP 2007243663A
- Authority
- JP
- Japan
- Prior art keywords
- time
- data
- transmission
- signal
- reception
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Communication Control (AREA)
Abstract
【課題】データ送受信装置において、パケット損失を防止し、CPU負荷を低下させ、再送を迅速化し、送受信用バッファメモリの容量を削減する。
【解決手段】サーバ装置1は、送信データを処理する送信TCP処理回路12と、データを再送用に格納する送信バッファ回路13と、確認応答パケットのデータを処理する受信TCP処理回路16と、データ再送を制御する再送コントローラ10を備える。再送コントローラ10は、データの宛先までの往復時間RTTをデータ送信時刻及び確認応答パケット受信時刻に基づき算出するRTT算出回路104と、確認応答パケットの受信までの待機時刻を決めるための再送タイムアウト時間RTOをRTTに基づき算出するRTO算出回路105と、RTOに基づいて待機時刻を決定し、確認応答パケットが受信されずに待機時刻に達したか否かを判定するRTO判定回路106と、データを再送させる再送制御回路107を備える。
【選択図】図1
【解決手段】サーバ装置1は、送信データを処理する送信TCP処理回路12と、データを再送用に格納する送信バッファ回路13と、確認応答パケットのデータを処理する受信TCP処理回路16と、データ再送を制御する再送コントローラ10を備える。再送コントローラ10は、データの宛先までの往復時間RTTをデータ送信時刻及び確認応答パケット受信時刻に基づき算出するRTT算出回路104と、確認応答パケットの受信までの待機時刻を決めるための再送タイムアウト時間RTOをRTTに基づき算出するRTO算出回路105と、RTOに基づいて待機時刻を決定し、確認応答パケットが受信されずに待機時刻に達したか否かを判定するRTO判定回路106と、データを再送させる再送制御回路107を備える。
【選択図】図1
Description
本発明は、所定の通信プロトコルに従ってデータを送受信するデータ送受信装置に関する。
近年、IEEE802.3規格であるイーサネット(Ethernet)(登録商標)を用いたり、IEEE802.11規格に準拠した無線通信伝送路を用いたりすることにより、インターネットプロトコルでデータ通信を行うオーディオ/ビジュアル(AV)機器の開発が盛んに行われている。例えば、映像コンテンツを、離れた場所にあるテレビジョン装置や携帯端末装置にインターネットプロトコルで伝送して視聴するアプリケーションが多く提案されている。
一般に、イーサネット(登録商標)のようなネットワークでのデータ損失率を示すビット誤り率(以下、BERという。)は1×10−8のオーダーであり、テレビジョン放送並みのデータ損失率である1×10−10乃至1×10−11のBERに近づけるためには、ネットワークでのパケット損失を低減する必要がある。通信プロトコルには、再送制御可能なTCP(伝送制御プロトコル)があり、これは、データ損失や再送制御のための処理を意識することなくアプリケーション側より簡単に利用できることから、よく利用される。
TCPを用いたデータ伝送における再送制御では、全TCPコネクションで共通に使用されかつ数100ミリ秒乃至数秒を単位として動作する1つのタイマを用いて、一般にソフトウェア処理により、1つの確認応答パケットが受信された時刻を基準として、その次の確認応答パケットが受信されずに所定の時間期間の再送タイムアウト(RetransmissionTimeOut:以下、RTOという。)が経過したか否かを判定し、それによって再送を制御している。すなわち、RTOが再送のトリガ又は再送タイマ値となる。一般に、TCP通信におけるデータ送信側装置は、通信相手であるデータ受信側装置との間をパケットが往復する時間であるラウンドトリップ時間(RoundTripTime:以下、RTTという。)を測定し、その測定値を用いて平滑化RTT(以下、SRTTという。)及び平滑化した平均偏差(以下、RTTVARという。)を計算する。このSRTTとRTTVARとに基づいてRTOが決定される。より具体的には、RTTの測定に使用するクロック精度をGとすると、RTT測定を行った結果の値Rが得られたとき、SRTT、RTTVAR及びRTOはそれぞれ以下の式で計算される。
[数1]
SRTT(新値)=(1−α)×SRTT(旧値)+α×R (1)
[数2]
RTTVAR(新値)
=(1−β)×RTTVAR(旧値)+β×|R−SRTT(新値)| (2)
[数3]
RTO=SRTT(新値)+max{G,K×RTTVAR(新値)} (3)
SRTT(新値)=(1−α)×SRTT(旧値)+α×R (1)
[数2]
RTTVAR(新値)
=(1−β)×RTTVAR(旧値)+β×|R−SRTT(新値)| (2)
[数3]
RTO=SRTT(新値)+max{G,K×RTTVAR(新値)} (3)
ここで、α,β及びKは定数であり、例えばそれぞれ1/8,1/4,4に設定される。また、クロック精度G=0.5秒であり、RTOの値は0.5秒の精度で決まる。
以上のようなTCPについての説明として、非特許文献1及び2などが知られている。
図16に一般的な従来技術に係るデータ再送を行うデータ送受信装置を用いたときの再送制御動作のタイミングチャートを示す。図16のタイミングチャートは、データ再送装置を備えた送信側装置と、受信側装置とを含む通信システムにおいて、送信側装置が周期C=0.5秒でRTOが到来したか否かを判定する際における、データ伝送の発生とTCP処理によるCPU負荷とを示している。
図16において、送信側装置がデータパケットD21,D22,D23,D24,D25と、再送データパケットD23とを送信する際のTCP処理によるCPU負荷を、それぞれプロセスP21,P22,P23,P24,P25,P26により表す。また、送信側装置が受信側装置から確認応答パケットA21を受信する際のTCP処理によるCPU負荷を、プロセスP27により表す。また送信側装置は、初期時刻T20を基準として周期C=0.5秒毎に、すなわち時刻T21,T22,T23においてRTO判定を実行し、このときのTCP処理によるCPU負荷をそれぞれプロセスP28,P29,P30により表す。TCPの再送制御処理によれば、データパケットD21を送信した時刻と、それに対する確認応答パケットA21を受信した時刻とに基づいてRTTを測定し、このRTTに基づいて式(1)乃至式(3)を用いてRTOを計算する。次いで、確認応答パケットA21を受信した時刻と、計算されたRTOとに基づいて、タイムアウト時刻TT2が設定される。送信側装置は、タイムアウト時刻TT2が到来したか否かを0.5秒毎に(すなわち時刻T21,T22,T23において)判定し、もし、次の確認応答パケットを受信せずにタイムアウト時刻TT2よりも後の時刻T23に達した場合には、データパケットD23の再送を開始する。このため、データパケットの再送が必要な状況が生じた場合、再送までに1〜2秒の遅延が発生する。
AV伝送にTCP/IPのプロトコルを利用して高い伝送品質を実現しようとする場合、再送による遅延を吸収しデータが途切れないようにするためには、例えば10Mbpsのコンテンツ伝送を行うのであれば、2.5Mバイトの大容量の遅延バッファメモリを必要とする。
また、再送の遅延時間を短縮し、バッファメモリの容量を少なくするために、RTOが到来したか否かを判定する時間間隔の精度を1/100〜1/1000に増大させる場合、一般にTCPの動作ステップはソフトウェアにて実装されているので、頻繁にソフトウェアによるRTO判定処理等が発生し、CPU負荷が増大する。
図17に、RTOが到来したか否かを判定する周期Cを図16の場合よりも短くした、従来技術に係るデータ再送を行うもう1つのデータ送受信装置を用いたときの再送制御動作のタイミングチャートを示す。送信側装置は、初期時刻T30を基準として0.5秒よりも短い周期C毎に、すなわち時刻T31,T32,T33,T34,T35,T36においてRTO判定を実行し、このときのTCP処理によるCPU負荷をそれぞれプロセスP40,P41,P42,P43,P44,P45により表す。また送信側装置がデータパケットD31,D32,D33,D34,D35と、再送データパケットD33,D34,D35とを送信する際のTCP処理によるCPU負荷を、それぞれプロセスP31,P32,P33,P34,P35,P36,P37,P38により表し、また、送信側装置が受信側装置から確認応答パケットA31を受信する際のTCP処理によるCPU負荷を、プロセスP39により表す。TCPの再送制御処理によれば、確認応答パケットA31を受信した時刻と、図16の場合と同様に計算されたRTOとに基づいて、タイムアウト時刻TT3が設定される。送信側装置は、タイムアウト時刻TT3が到来したか否かをC秒毎に判定し、もし、次の確認応答パケットを受信せずにタイムアウト時刻TT3よりも後の時刻T35に達した場合には、データパケットD33,D34,D35の再送を開始する。TCP処理によるCPU負荷を比較すると、図17の場合では、図16の場合よりも大きく負荷が増大することがわかる。
W.リチャード・スティーブンス,「詳解TCP/IP Vol.1 プロトコル」,株式会社ピアソン・エデュケーション,2000年12月。
ゲーリー・R・ライト,W・リチャード・スティーブンス,「詳解TCP/IP Vol.2 実装」,株式会社ピアソン・エデュケーション,2002年12月。
図16を参照して説明した従来技術の例では、TCP通信においてデータパケットの再送が必要な状況が発生した場合、1〜2秒の遅延が発生する。AV伝送等の高速データ伝送にTCPを利用して高い伝送品質を実現しようとする場合、再送による遅延を吸収しデータが途切れないようにするためには、例えば10Mbpsのコンテンツ伝送を行うのであれば、2.5Mバイトに相当する大容量の遅延バッファメモリを必要とする。
また、図17を参照して説明した従来技術の例におけるように、再送の遅延時間を短縮し、バッファメモリの容量を少なくするために、RTOが到来したか否かを判定する時間間隔の精度を1/100〜1/1000に増大させる場合、上述のとおり、RTO判定のためのプロセスP40,P41,P42,P43,P44,P45の発生頻度が非常に高くなる。一般にTCPのための動作ステップはソフトウェアにて実装されているので、頻繁にソフトウェアによるRTO判定プロセス等が発生し、CPU負荷が増大する。
本発明の目的は、上記問題点に鑑み、パケット損失等の伝送品質が低下することを防止しながら、CPUに負荷をかけず、再送を迅速に行うことが可能で、さらに、再送による遅延を吸収するために確保しなければならない送受信用バッファメモリの容量を小さくすることによりコストを抑えたデータ送受信装置を提供することにある。
上記問題を解決するために、本発明の第1の態様に係るデータ送受信装置は、
宛先装置に向けて送信されるデータ信号を処理する送信TCP処理手段と、
上記データ信号を送信及び再送のために格納する送信バッファ手段と、
上記宛先装置から受信された確認応答信号を処理する受信TCP処理手段と、
上記送信TCP処理手段及び上記受信TCP処理手段とは別個に設けられ、上記格納されたデータ信号の再送を制御するデータ再送手段とを備えたデータ送受信装置であって、
上記データ再送手段は、
上記格納されたデータ信号を再送した回数をカウントする再送回数カウンタ手段と、
所定の周期を有する時刻信号を供給するタイマ手段と、
上記データ信号を上記宛先装置に送信したとき、上記時刻信号に基づいて上記データ信号の送信時刻を記録する送信時刻記録手段と、
上記確認応答信号を受信したときに、上記時刻信号に基づいて上記確認応答信号の受信時刻を記録する受信時刻記録手段と、
上記記録された送信時刻及び受信時刻に基づいて、上記データ送受信装置と上記宛先装置との間における信号の往復時間RTTを算出するRTT算出手段と、
上記往復時間RTTに基づいて、上記データ信号を送信してから上記確認応答信号を受信するまでの待機時刻を決定するための再送タイムアウト時間RTOを算出するRTO算出手段と、
上記再送タイムアウト時間RTOに基づいて待機時刻を決定し、上記時刻信号に基づいて、上記確認応答信号が受信されずに上記待機時刻に達したか否かを判定する判定手段と、
上記判定手段により上記待機時刻に達したと判定されたときであって、かつ上記再送回数カウンタ手段によりカウントされた再送の回数が所定のしきい値未満であるとき、上記格納されたデータ信号を再送する再送制御手段とを備えたことを特徴とする。
宛先装置に向けて送信されるデータ信号を処理する送信TCP処理手段と、
上記データ信号を送信及び再送のために格納する送信バッファ手段と、
上記宛先装置から受信された確認応答信号を処理する受信TCP処理手段と、
上記送信TCP処理手段及び上記受信TCP処理手段とは別個に設けられ、上記格納されたデータ信号の再送を制御するデータ再送手段とを備えたデータ送受信装置であって、
上記データ再送手段は、
上記格納されたデータ信号を再送した回数をカウントする再送回数カウンタ手段と、
所定の周期を有する時刻信号を供給するタイマ手段と、
上記データ信号を上記宛先装置に送信したとき、上記時刻信号に基づいて上記データ信号の送信時刻を記録する送信時刻記録手段と、
上記確認応答信号を受信したときに、上記時刻信号に基づいて上記確認応答信号の受信時刻を記録する受信時刻記録手段と、
上記記録された送信時刻及び受信時刻に基づいて、上記データ送受信装置と上記宛先装置との間における信号の往復時間RTTを算出するRTT算出手段と、
上記往復時間RTTに基づいて、上記データ信号を送信してから上記確認応答信号を受信するまでの待機時刻を決定するための再送タイムアウト時間RTOを算出するRTO算出手段と、
上記再送タイムアウト時間RTOに基づいて待機時刻を決定し、上記時刻信号に基づいて、上記確認応答信号が受信されずに上記待機時刻に達したか否かを判定する判定手段と、
上記判定手段により上記待機時刻に達したと判定されたときであって、かつ上記再送回数カウンタ手段によりカウントされた再送の回数が所定のしきい値未満であるとき、上記格納されたデータ信号を再送する再送制御手段とを備えたことを特徴とする。
上記データ送受信装置において、上記送信時刻記録手段は、上記データ信号を上記送信バッファ手段に格納した時刻を送信時刻として記録して保持することを特徴とする。それに代わって、上記送信時刻記録手段は、上記データ信号を上記送信バッファ手段に格納した時刻を送信時刻として記録し、上記記録された送信時刻を、上記データ信号の識別子として上記送信バッファ手段において上記データ信号とともに保持させることを特徴とする。
上記データ送受信装置において、上記データ信号は、TCPヘッダの発信元ポート番号、TCPヘッダの宛先ポート番号、IPヘッダの発信元アドレス、及びIPヘッダの宛先アドレスのうちの少なくとも1つのデータを備えたことを特徴とする
上記データ送受信装置において、上記送受信装置は上記受信された確認応答信号を格納する受信バッファ手段をさらに備え、上記受信時刻記録手段は、上記確認応答信号を上記受信バッファ手段に格納した時刻を受信時刻として記録して保持することを特徴とする。それに代わって、上記送受信装置は上記受信された確認応答信号を格納する受信バッファ手段をさらに備え、上記受信時刻記録手段は、上記確認応答信号を上記受信バッファ手段に格納した時刻を受信時刻として記録し、上記記録された受信時刻を、上記確認応答信号の識別子として上記受信バッファ手段において上記確認応答信号とともに保持させることを特徴とする。
上記データ送受信装置において、上記確認応答信号は、TCPヘッダの発信元ポート番号、TCPヘッダの宛先ポート番号、IPヘッダの発信元アドレス、及びIPヘッダの宛先アドレスのうちの少なくとも1つのデータを備えたことを特徴とする。
上記データ送受信装置において、上記判定手段は、
上記時刻信号により取得される現在時刻に上記再送タイムアウト時間RTOを加算することによって待機時刻を決定し、
上記時刻信号により取得される現在時刻が上記待機時刻に達したか否かを判定し、
上記待機時刻に達する前に上記確認応答信号を受信したと判定したとき、上記RTO算出手段から新たな再送タイムアウト時間RTOを取得して新たな待機時刻を計算し、上記時刻信号により取得される現在時刻が上記新たな待機時刻に達したか否かを判定し、
上記確認応答信号が受信されずに上記待機時刻に達したと判定したとき、上記格納されたデータ信号を再送するように上記再送制御手段に指示するとともに、上記待機時刻を再計算し、上記時刻信号により取得される現在時刻が上記再計算された待機時刻に達したか否かを判定することを特徴とする。
上記時刻信号により取得される現在時刻に上記再送タイムアウト時間RTOを加算することによって待機時刻を決定し、
上記時刻信号により取得される現在時刻が上記待機時刻に達したか否かを判定し、
上記待機時刻に達する前に上記確認応答信号を受信したと判定したとき、上記RTO算出手段から新たな再送タイムアウト時間RTOを取得して新たな待機時刻を計算し、上記時刻信号により取得される現在時刻が上記新たな待機時刻に達したか否かを判定し、
上記確認応答信号が受信されずに上記待機時刻に達したと判定したとき、上記格納されたデータ信号を再送するように上記再送制御手段に指示するとともに、上記待機時刻を再計算し、上記時刻信号により取得される現在時刻が上記再計算された待機時刻に達したか否かを判定することを特徴とする。
また、上記判定手段は、
上記確認応答信号が受信されずに上記待機時刻に達したと判定したとき、上記再送回数カウンタ手段によりカウントされた再送の回数だけ、上記再送タイムアウト時間RTOの値に対して左シフト演算を実行し、上記時刻信号により取得される現在時刻に上記左シフト演算された再送タイムアウト時間RTOを加算することによって待機時刻を再計算することを特徴とする。
上記確認応答信号が受信されずに上記待機時刻に達したと判定したとき、上記再送回数カウンタ手段によりカウントされた再送の回数だけ、上記再送タイムアウト時間RTOの値に対して左シフト演算を実行し、上記時刻信号により取得される現在時刻に上記左シフト演算された再送タイムアウト時間RTOを加算することによって待機時刻を再計算することを特徴とする。
本発明の第2の態様に係るデータ送受信装置は、
宛先装置に向けて送信されるデータ信号を処理する送信TCP処理手段と、
上記データ信号を送信及び再送のために格納する送信バッファ手段と、
上記宛先装置から受信された確認応答信号を処理する受信TCP処理手段と、
上記送信TCP処理手段及び上記受信TCP処理手段とは別個に設けられ、上記格納されたデータ信号の再送を制御するデータ再送手段とを備えたデータ送受信装置であって、
上記データ信号は、予め特定される第1のデータ信号と、上記第1のデータ信号以外のデータ信号である第2のデータ信号とを含み、
上記データ再送手段は、
格納された上記第1のデータ信号を再送した回数をカウントする再送回数カウンタ手段と、
所定の周期を有する時刻信号を供給するタイマ手段と、
上記第1のデータ信号を上記宛先装置に送信したとき、上記時刻信号に基づいて上記第1のデータ信号の送信時刻を記録する送信時刻記録手段と、
上記第1のデータ信号に係る確認応答信号を受信したときに、上記時刻信号に基づいて上記第1のデータ信号に係る確認応答信号の受信時刻を記録する受信時刻記録手段と、
上記記録された送信時刻及び受信時刻に基づいて、上記データ送受信装置と上記宛先装置との間における信号の往復時間RTTを算出するRTT算出手段と、
上記往復時間RTTに基づいて、上記第1のデータ信号を送信してから上記第1のデータ信号に係る確認応答信号を受信するまでの待機時刻を決定するための再送タイムアウト時間RTOを算出するRTO算出手段と、
上記再送タイムアウト時間RTOに基づいて待機時刻を決定し、上記時刻信号に基づいて、上記第1のデータ信号に係る確認応答信号が受信されずに上記待機時刻に達したか否かを判定する判定手段と、
上記判定手段により上記待機時刻に達したと判定されたときであって、かつ上記再送回数カウンタ手段によりカウントされた再送の回数が所定のしきい値未満であるとき、上記格納された第1のデータ信号を再送する再送制御手段とを備えたことを特徴とする。
宛先装置に向けて送信されるデータ信号を処理する送信TCP処理手段と、
上記データ信号を送信及び再送のために格納する送信バッファ手段と、
上記宛先装置から受信された確認応答信号を処理する受信TCP処理手段と、
上記送信TCP処理手段及び上記受信TCP処理手段とは別個に設けられ、上記格納されたデータ信号の再送を制御するデータ再送手段とを備えたデータ送受信装置であって、
上記データ信号は、予め特定される第1のデータ信号と、上記第1のデータ信号以外のデータ信号である第2のデータ信号とを含み、
上記データ再送手段は、
格納された上記第1のデータ信号を再送した回数をカウントする再送回数カウンタ手段と、
所定の周期を有する時刻信号を供給するタイマ手段と、
上記第1のデータ信号を上記宛先装置に送信したとき、上記時刻信号に基づいて上記第1のデータ信号の送信時刻を記録する送信時刻記録手段と、
上記第1のデータ信号に係る確認応答信号を受信したときに、上記時刻信号に基づいて上記第1のデータ信号に係る確認応答信号の受信時刻を記録する受信時刻記録手段と、
上記記録された送信時刻及び受信時刻に基づいて、上記データ送受信装置と上記宛先装置との間における信号の往復時間RTTを算出するRTT算出手段と、
上記往復時間RTTに基づいて、上記第1のデータ信号を送信してから上記第1のデータ信号に係る確認応答信号を受信するまでの待機時刻を決定するための再送タイムアウト時間RTOを算出するRTO算出手段と、
上記再送タイムアウト時間RTOに基づいて待機時刻を決定し、上記時刻信号に基づいて、上記第1のデータ信号に係る確認応答信号が受信されずに上記待機時刻に達したか否かを判定する判定手段と、
上記判定手段により上記待機時刻に達したと判定されたときであって、かつ上記再送回数カウンタ手段によりカウントされた再送の回数が所定のしきい値未満であるとき、上記格納された第1のデータ信号を再送する再送制御手段とを備えたことを特徴とする。
上記データ送受信装置において、上記送信時刻記録手段は、上記第1のデータ信号を上記送信バッファ手段に格納した時刻を送信時刻として記録して保持することを特徴とする。それに代わって、上記送信時刻記録手段は、上記第1のデータ信号を上記送信バッファ手段に格納した時刻を送信時刻として記録し、上記記録された送信時刻を、上記第1のデータ信号の識別子として上記送信バッファ手段において上記第1のデータ信号とともに保持させることを特徴とする。
上記データ送受信装置において、上記第1のデータ信号は、TCPヘッダの発信元ポート番号、TCPヘッダの宛先ポート番号、IPヘッダの発信元アドレス、及びIPヘッダの宛先アドレスのうちの少なくとも1つのデータを備えたことを特徴とする。
上記データ送受信装置において、上記送受信装置は上記受信された確認応答信号を格納する受信バッファ手段をさらに備え、上記受信時刻記録手段は、上記第1のデータ信号に係る確認応答信号を上記受信バッファ手段に格納した時刻を受信時刻として記録して保持することを特徴とする。それに代わって、上記送受信装置は上記受信された確認応答信号を格納する受信バッファ手段をさらに備え、上記受信時刻記録手段は、上記第1のデータ信号に係る確認応答信号を上記受信バッファ手段に格納した時刻を受信時刻として記録し、上記記録された受信時刻を、上記第1のデータ信号に係る確認応答信号の識別子として上記受信バッファ手段において上記第1のデータ信号に係る確認応答信号とともに保持させることを特徴とする。
上記データ送受信装置において、上記第1のデータ信号に係る確認応答信号は、TCPヘッダの発信元ポート番号、TCPヘッダの宛先ポート番号、IPヘッダの発信元アドレス、及びIPヘッダの宛先アドレスのうちの少なくとも1つのデータを備えたことを特徴とする。
上記データ送受信装置において、上記判定手段は、
上記時刻信号により取得される現在時刻に上記再送タイムアウト時間RTOを加算することによって待機時刻を決定し、
上記時刻信号により取得される現在時刻が上記待機時刻に達したか否かを判定し、
上記待機時刻に達する前に上記第1のデータ信号に係る確認応答信号を受信したと判定したとき、上記RTO算出手段から新たな再送タイムアウト時間RTOを取得して新たな待機時刻を計算し、上記時刻信号により取得される現在時刻が上記新たな待機時刻に達したか否かを判定し、
上記第1のデータ信号に係る確認応答信号が受信されずに上記待機時刻に達したと判定したとき、上記格納された第1のデータ信号を再送するように上記再送制御手段に指示するとともに、上記待機時刻を再計算し、上記時刻信号により取得される現在時刻が上記再計算された待機時刻に達したか否かを判定することを特徴とする。
上記時刻信号により取得される現在時刻に上記再送タイムアウト時間RTOを加算することによって待機時刻を決定し、
上記時刻信号により取得される現在時刻が上記待機時刻に達したか否かを判定し、
上記待機時刻に達する前に上記第1のデータ信号に係る確認応答信号を受信したと判定したとき、上記RTO算出手段から新たな再送タイムアウト時間RTOを取得して新たな待機時刻を計算し、上記時刻信号により取得される現在時刻が上記新たな待機時刻に達したか否かを判定し、
上記第1のデータ信号に係る確認応答信号が受信されずに上記待機時刻に達したと判定したとき、上記格納された第1のデータ信号を再送するように上記再送制御手段に指示するとともに、上記待機時刻を再計算し、上記時刻信号により取得される現在時刻が上記再計算された待機時刻に達したか否かを判定することを特徴とする。
上記データ送受信装置において、上記判定手段は、
上記第1のデータ信号に係る確認応答信号が受信されずに上記待機時刻に達したと判定したとき、上記再送回数カウンタ手段によりカウントされた再送の回数だけ、上記再送タイムアウト時間RTOの値に対して左シフト演算を実行し、上記時刻信号により取得される現在時刻に上記左シフト演算された再送タイムアウト時間RTOを加算することによって待機時刻を再計算することを特徴とする。
上記第1のデータ信号に係る確認応答信号が受信されずに上記待機時刻に達したと判定したとき、上記再送回数カウンタ手段によりカウントされた再送の回数だけ、上記再送タイムアウト時間RTOの値に対して左シフト演算を実行し、上記時刻信号により取得される現在時刻に上記左シフト演算された再送タイムアウト時間RTOを加算することによって待機時刻を再計算することを特徴とする。
上記データ送受信装置において、上記RTT算出手段及び上記RTO算出手段は、プロセッサと、上記プロセッサ上で実行されるソフトウェアプログラムとによって実装されることを特徴とする。それに代わって、上記再送カウンタ手段、上記RTT算出手段、上記RTO算出手段、及び上記判定手段は、プロセッサと、上記プロセッサ上で実行されるソフトウェアプログラムとによって実装されることを特徴とする。
本発明によれば、宅外のインターネット綱に比べ伝送遅延が非常に小さい(数十マイクロ秒〜数十ミリ秒程度の)小規模なネットワークにおいて、高い伝送品質を維持するために、好ましくは1マイクロ秒の周期で動作するタイマを用いてRTOの判定を実行するので、再送までの遅延時間が短縮されかつ再送を迅速に行うことが可能であるように、再送動作は最適化される。ここでいう小規模なネットワークとは、少数のクライアント装置、サーバ装置、イーサネット(登録商標)スイッチ、ルータ、及び/又は無線LAN等のアクセスポイント装置(AP)を備えて構成されるネットワークであり、例えば家庭内のネットワークなどが挙げられる。そして、再送により生じる遅延時間を大幅に短縮できるので、再送時間を考慮して設けられる遅延バッファメモリの容量を小さくすることができる。
また、RTT及びRTOを測定して計算するための手段と、RTOの時間に達したか否かを判定するための手段とを、TCP処理のための手段とは別個に設けるので、TCPのRTO判定プロセスが不要となり、TCP処理に係るソフトウェアのCPU負荷を低減できる。
本発明のデータ送受信装置によれば、パケット損失等の伝送品質が低下することを防止しながら、CPUに負荷をかけず、再送を迅速に行うことが可能で、さらに、再送による遅延を吸収するために確保しなければならない送受信用バッファメモリの容量を小さくすることによりコストを抑えることができる。
以下に、本発明の実施形態について、図面を参照しながら説明する。各図面において、同様の構成要素に対しては同一の参照番号を付与している。
第1の実施形態.
図1乃至図6に、本発明の第1の実施形態を示す。以下これらの図面を参照して、パケット損失等が生じた際に送信データを再送するデータ送受信システムのためのデータ再送装置と、その再送制御処理とについて説明する。
図1乃至図6に、本発明の第1の実施形態を示す。以下これらの図面を参照して、パケット損失等が生じた際に送信データを再送するデータ送受信システムのためのデータ再送装置と、その再送制御処理とについて説明する。
図1は、本発明の第1の実施形態に係る再送コントローラ10を備えたデータ送受信システムの構成を示すブロック図である。このデータ送受信システムは、TCP通信を行うネットワーク3を介して互いに接続されたサーバ装置1とクライアント装置2とを備えて構成される。本実施形態において、ネットワーク3は、伝送遅延が非常に小さい(数十マイクロ秒〜数十ミリ秒程度の)小規模なネットワークにであって、少数のクライアント装置、サーバ装置、イーサネット(登録商標)スイッチ、ルータ、及び/又は無線LAN等のアクセスポイント装置(AP)を備えて構成されるネットワークであり、例えば家庭内のネットワークなどが挙げられる。送受信するデータとしては、例えばオーディオ/ビジュアルデータなどを含むものとする。
本実施形態によれば、図1のサーバ装置1は、宛先のクライアント装置2に向けて送信されるデータを処理する送信TCP処理回路12と、上記データを送信及び再送のために格納する送信バッファ回路13と、クライアント装置2から受信された確認応答パケットのデータを処理する受信TCP処理回路16と、送信TCP処理回路12及び受信TCP処理回路12とは別個に設けられ、上記格納されたデータの再送を制御する再送コントローラ10とを備えたことを特徴とする。再送コントローラ10が送信TCP処理回路12及び受信TCP処理回路12に代わって再送のための制御を実行することにより、パケット損失等の伝送品質が低下することを防止しながら、CPUに負荷をかけず、再送を迅速に行うことが可能で、さらに、再送による遅延を吸収するために確保しなければならない送受信用バッファメモリの容量を小さくしてコストを抑えたデータ送受信装置を提供することができる。
サーバ装置1において、クライアント装置2に向けて送信すべき送信AV信号のデータは、最初にAVエンコーダ11において符号化及び圧縮等の処理を受けて、適切なデジタルデータのフォーマットに変換される。変換後のデータは次いで送信TCP処理回路12においてTCPセグメントに変換され、このTCPセグメントのデータは送信及び再送のために送信バッファ回路13に一旦格納される。送信バッファ回路13はバッファメモリを備えて構成される。このTCPセグメントのデータは送信バッファ回路13に格納されるとともに、この送信バッファ回路13を介して送受信インターフェース回路14に送られる。送受信インターフェース回路14は、送信バッファ回路13から送られたデータを適切なパケットのフォーマットに変換してネットワーク3に送信する。送受信インターフェース回路14は、その一方で、ネットワーク3から受信されたパケットを受信データとして処理してTCPセグメントに変換し、このTCPセグメントのデータを受信バッファ回路15を介して受信TCP処理回路16に送る。受信バッファ回路15は、送信バッファ回路13と同様にバッファメモリを備えて構成される。受信TCP処理回路16では、受信バッファ回路15から送られたデータに対するTCPリアセンブル処理が実行され、処理後のデータはAVデコーダ17に送られて復号化及び圧縮解除等の処理を受け、それにより受信AV信号が取得される。
サーバ装置1はさらに、送信バッファ回路13及び受信バッファ回路15に接続された再送コントローラ10を備え、再送コントローラ10は、送信TCP処理回路12及び受信TCP処理回路16に代わってTCPの通信プロトコルに基づき、送信バッファ回路13に格納された送信済みのデータを再送するか又は廃棄するかを決定するための処理を実行する(詳細後述)。サーバ装置1はさらにまた、送信TCP処理回路12及び受信TCP処理回路16に接続された確認応答処理回路18を備え、確認応答処理回路18は、サーバ装置1において受信されたパケットに係るTCPセグメントのデータが受信TCP処理回路16に伝送されたときに、送信TCP処理回路12に指示することにより、当該パケットに対するTCPの確認応答パケットを送信バッファ回路13及び送受信インターフェース回路14を介して送信させる。
また、クライアント装置2は、サーバ装置の構成要素11,12,13,14,15,16,17,18と同様にそれぞれ構成された構成要素21,22,23,24,25,26,27,28を備えて構成される。
図1のデータ送受信システムの構成において、TCPに基づいてサーバ装置1からクライアント装置2へのデータ伝送を行う場合、受信側であるクライアント装置2は、サーバ装置1から送信されたパケットを受信してそのパケットからTCPセグメントのデータを取得すると、受信TCP処理回路26によって、この受信されたTCPセグメントのデータが正常なものであるか否かを判断する。受信されたTCPセグメントのデータが正常であると確認された場合には、クライアント装置2の確認応答処理回路28は、送信TCP処理回路22に指示することにより、確認応答パケットを送信バッファ回路23及び送受信インターフェース回路24を介して送信側サーバ装置100に送信させる。一方、受信したTCPセグメントのデータが異常であると確認された場合、又は、ネットワーク3上においてパケットが喪失されて受信できなかった場合には、確認応答パケットがクライアント装置2から送信側サーバ装置100に送信されることはない。
本明細書では、サーバ装置1からクライアント装置2へのデータ伝送についてのみ説明するが、サーバ装置1及びクライアント装置2は、クライアント装置2からサーバ装置1へのデータ伝送を行うように構成されてもよく、さらに双方向的なデータ伝送を行うように構成されてもよい。
サーバ装置1からクライアント装置2へのデータ伝送を行う場合、送信側であるサーバ装置100において、再送コントローラ10は、サーバ装置1から送信したパケットに対する確認応答パケットを受信するまで待機すべき時間に係るパラメータであるRTOに基づき経時的にモニタリングする。以下、このことの詳細を図2乃至図5を用いて説明する。
図2は、図1の再送コントローラ10の詳細構成を示すブロック図である。再送コントローラ10は、当該再送コントローラ10内の各回路部分に対して好ましくは1マイクロ秒の時刻信号を供給するタイマ101を備える。本実施形態では、タイマの時刻信号は1マイクロ秒の周期を有するものとして説明しているが、実装に応じて0.5マイクロ秒乃至2マイクロ秒程度の周期を有してもよい。タイマ101は送信時刻保持回路102及び受信時刻保持回路103に接続され、送信時刻保持回路102はタイマ101から供給される時刻信号に基づいて動作し、さらに送信バッファ回路13に接続されて、送信バッファ回路13内のデータの送信時刻を記録して内部のメモリ102mに保持し、また、受信時刻保持回路103はタイマ101から供給される時刻信号に基づいて動作し、さらに受信バッファ回路15に接続されて、受信バッファ回路15内のデータの受信時刻を記録して内部のメモリ103mに保持する。詳しくは、図2において、送信バッファ回路13には、送信TCP処理回路12から1個乃至複数個の送信されるTCPセグメントのデータが送られてくる。送信バッファ回路13は、上記各送信データが当該送信バッファ回路12内に格納されたことを送信時刻保持回路102に通知する。通知を受信した送信時刻保持回路102は、1マイクロ秒で動作するタイマ101から供給される時刻信号に基づいて、送信データの送信時刻を記録してメモリ102mに保持する。送信バッファ回路13は、送信データを内部に格納するとともに送受信インターフェース回路14に伝送し、送受信インターフェース回路14は、前述のように伝送された送信データをパケットに変換してネットワーク3に送信する。また、各送信データは、当該送信データに対するTCPの確認応答パケットを受信することにより宛先への到達が確認されるまで、再送のためのデータとして送信バッファ回路13によって保持される。一方、送受信インターフェース回路14は、送信された1個乃至複数個のパケットに対するTCPの確認応答パケットをネットワーク3から受信すると、受信された確認応答パケットのデータをTCPセグメントに変換して受信バッファ回路15に伝送して格納させる。受信バッファ回路15は、受信された確認応答パケットのデータが受信バッファ回路15に格納されたことを受信時刻保持回路103に通知する。通知を受信した受信時刻保持回路103は、1マイクロ秒で動作するタイマ101から供給される時刻信号に基づいて、受信された確認応答パケットのデータの受信時刻を記録してメモリ103mに保持する。
再送コントローラ10において、送信時刻保持回路102及び受信時刻保持回路103にはRTT算出回路104が接続され、RTT算出回路104にはRTO算出回路105が接続される。受信データが、サーバ装置1から送信したパケットに対する確認応答パケットのデータであるならば、送信時刻保持回路102及び受信時刻保持回路103にそれぞれ保持された送信時刻及び受信時刻に基づいてRTTを計算することができる。送信時刻保持回路102は、そのメモリ102mに保持した送信済みデータ(すなわち送信したパケット)の送信時刻をRTT算出回路104に伝送し、受信時刻保持回路103は、そのメモリ103mに保持した確認応答パケットのデータの受信時刻をRTT算出回路104に伝送する。RTT算出回路104は、送信時刻と受信時刻とに基づいてRTTの測定時間R(前述の式(1)及び式(2)を参照)を計算し、また、計算されたRTTの測定時間RをRTO算出回路105に伝送する。
次いで、RTO算出回路105は、背景技術のセクションで説明した一般的な手順に従って、RTOを計算するためのパラメータSRTT及びRTTVARを計算し、さらにRTOを計算する。ここで、RTO算出回路105はシフト演算器と加算器と減算器とで実装され、特にSRTT及びRTTVARの値を計算するための回路部分はこれらの構成要素によって構成される。
図3は、図2のRTO算出回路105の詳細構成を示すブロック図である。図3(ならびに図4及び図5)において、回路内を伝送される信号の値はバイナリ値であるものとする。RTT算出回路104から伝送されたRTT(又は測定時間の値R)は、右3ビットシフト演算器201と減算器205の一方の入力部とに入力される。右3ビットシフト演算器201は、RTTの値を右に3ビットシフトさせることによりRTTの大きさを1/8倍に変換し、変換後の値を加算器202の一方の入力部に入力する。加算器202から出力される信号であるSRTTは、右3ビットシフト演算器203と減算器204の一方の入力部とに入力され、右3ビットシフト演算器203は、SRTTの値を右に3ビットシフトさせることによりSRTTの大きさを1/8倍に変換し、変換後の値を減算器204のもう一方の入力部に入力する。減算器204は、加算器202から入力されたSRTTの値から、右3ビットシフト演算器203から入力された値を減算して、加算器202のもう一方の入力部に入力する。加算器202は、右3ビットシフト演算器201から入力された値と減算器204から入力された値とを加算することにより、SRTTを計算して出力する。SRTTの値は、回路部分202、203及び204によって構成されるループによって更新される。加算器202から出力されるSRTTは、前述のように右3ビットシフト演算器203及び減算器204に入力されるとともに、減算器205のもう一方の入力部と、加算器213の一方の入力部とに入力される。このように、回路部分201、202、203及び204によって、前述の式(1)の計算が実行される。
図3において、減算器205は、RTT算出回路104から伝送されたRTTから、加算器202から入力されたSRTTを減算し、減算結果を2の補数演算器206とセレクタ207の一方の入力部とに入力するとともに、ボロー信号をセレクタ207の制御信号入力部に入力する。2の補数演算器206は、減算器205から入力された値に対して2の補数演算を実行し、演算結果をセレクタ207のもう一方の入力部に入力する。セレクタ207は、ボロー信号に基づいて、減算器205から入力された値と、2の補数演算器206から入力された値とのうちで正の値を選択し、これを右2ビットシフト演算器208に入力する。回路部分205、206及び207により、RTTとSRTTとの差の絶対値を求めるための計算(式(2)を参照)が実行される。次いで、右2ビットシフト演算器208は、セレクタ207から入力された値を右に2ビットシフトさせることにより値の大きさを1/4倍に変換し、変換後の値を加算器209の一方の入力部に入力する。加算器209から出力される信号であるRTTVARは、右2ビットシフト演算器210と減算器211の一方の入力部とに入力され、右2ビットシフト演算器210は、RTTVARの値を右に2ビットシフトさせることによりRTTVARの大きさを1/4倍に変換し、変換後の値を減算器211のもう一方の入力部に入力する。減算器211は、加算器209から入力されたRTTVARの値から、右2ビットシフト演算器210から入力された値を減算して、加算器209のもう一方の入力部に入力する。加算器は、右2ビットシフト演算器208から入力された値と減算器211から入力された値とを加算することにより、RTTVARを計算して出力する。RTTVARの値は、回路部分209、210及び211によって構成されるループによって更新される。このように、回路部分205、206、207、208、209、210及び211によって、前述の式(2)の計算が実行される。
また、RTOは上述の通り(式(3)を参照)、一般には次式によって計算される。
[数4]
RTO=SRTT+max{G,K×RTTVAR} (4)
RTO=SRTT+max{G,K×RTTVAR} (4)
ただし、本実施形態では、クロック精度Gは1×10−6であり、常にG<K×RTTVARであるので、次式を用いることができる。
[数5]
RTO=SRTT+K×RTTVAR (5)
(係数Kは2乃至4である。)
RTO=SRTT+K×RTTVAR (5)
(係数Kは2乃至4である。)
図3において、加算器209から出力されるRTTVARは、前述のように右2ビットシフト演算器210及び減算器211に入力されるとともに、左1ビットシフト演算器212に入力される。左1ビットシフト演算器212は、RTTVARの値を左に1ビットシフトさせることによりRTTVARの大きさを2倍に変換し、変換後の値を加算器213のもう一方の入力部に入力する。ここで、左1ビットシフト演算器212に代えて左2ビットシフト演算器を設けることにより、RTTVARの大きさを4倍に変換してもよい。加算器213は、加算器202から入力された値と左1ビットシフト演算器212から入力された値とを加算することにより、RTOを計算して出力する。このように、式(5)の計算を実行するための回路部分は、シフト演算器212と加算器213とで実装される。計算されたRTOの値は、後段のRTO判定回路106に伝送される。
再び図2を参照すると、再送コントローラ10において、RTO算出回路105にはRTO判定回路106が接続され、RTO判定回路106は、再送制御回路107及び再送回数カウンタ108に接続される。RTO判定回路106は、RTO算出回路105から伝送されたRTOと、タイマ101から供給される時刻信号と、受信バッファ回路15に確認応答パケットが到来したか否かとに基づいて、確認応答パケットが受信されずにRTOの時間期間が経過したか否かを判定し、確認応答パケットが受信されずにRTOの時間期間が経過した(タイムアウトした)と判定した場合には、再送制御回路107を制御して、送信バッファ回路13内に格納されている送信済みのデータを再送させる(詳細後述)。確認応答パケットが受信されたときは、RTO判定回路106は、再送制御回路107を制御して、送信バッファ回路13内に格納されている送信済みのデータを廃棄させる。送信済みのデータの再送を行った場合、再送制御回路107はこのことをRTO判定回路106及び再送回数カウンタ108に通知し、再送回数カウンタ108は、これに応答して、内部に格納している再送回数のカウンタ値を1だけインクリメントする。また、再送回数カウンタ108のカウンタ値は、受信バッファ回路15に確認応答パケットのデータが格納されたときに0にリセットされる。再送回数カウンタ108に格納された再送回数のカウンタ値はRTO判定回路106及び再送制御回路107に供給される。
図4は、図2のRTO判定回路106の詳細構成を示すブロック図であり、図5は、図4のRTO判定回路106の動作を説明するための概略図である。図4のRTO判定回路106において、RTO算出回路から伝送されたRTOの値はRTO保持回路301に保持され、保持されたRTOの値はシフト演算器302に伝送される。シフト演算器302は、再送回数カウンタ108から供給される再送回数のカウンタ値だけ、RTOの値を左にシフトさせるように演算し、演算後の値を加算器303の一方の入力部に入力する。加算器303は、シフト演算器302から入力された値と、タイマ101から供給されたバイナリ値の時刻信号とを加算することにより、次の確認応答パケットを受信するまで待機すべき時刻を示す待機時刻を計算し、一致判定回路304の一方の入力部に入力する。一致判定回路304のもう一方の入力部には、タイマ101から供給される時刻信号が入力され、一致判定回路304は、タイマ101から供給される時刻信号の値と加算器303から供給される値とが一致したか否か、すなわちシフト演算器302及び加算器303によって計算された待機時刻に達したか否かを判定する。一致判定回路304は、確認応答パケットを受信する前にこれらの値が一致したと判定した場合には、再送制御回路107を制御して、送信バッファ回路13内に格納されている送信済みのデータを再送させる。また、RTO判定回路106は、受信バッファ回路15及び再送制御回路107からの信号に基づいてRTO保持回路301、シフト演算器302及び一致判定回路304の動作を制御するRTO判定回路コントローラ305を備える。
次に図5を参照して、RTO判定回路106の動作を説明する。図5は、時刻がT0,T1,T2,…,TNへと経過するのに従って、1回目、2回目、…N回目の再送のために実行される処理動作を示すとともに、RTO判定回路106内部の各回路部分の状態と、再送制御回路107及び再送回数カウンタ108の状態とがどのように変化するかを説明するための図である。なお、説明の簡単化のために、図5では図4のRTO判定回路コントローラ305を図示していない。
図5において、初期状態のRTO判定回路106(すなわち、図5の左端に示したRTO判定回路106)は、RTO保持回路301に格納されたRTOの値を、RTO算出回路105によって計算されたRTOの値に更新し、更新されたRTOの値はシフト演算器151に伝送されてシフト演算される。ただし、確認応答パケットを受信した直後に実行される処理動作において、すなわちRTOの値を更新するとともに再送回数カウンタ108のカウンタ値を0にリセットしたときにおいては、シフト演算は0ビットシフトであり、シフト演算器302から出力されるRTOの値は、RTO保持回路301からシフト演算器302に入力されるRTOの値と同じである。次に加算器303は、シフト演算器302から入力された値とタイマ101から取得された現在時刻T0とを加算して、次の確認応答パケットを受信するまで待機すべき時刻を示す待機時刻T1を生成し、生成された待機時刻T1を一致判定回路304に伝送する。一致判定回路304は、タイマ101から供給される時刻信号に基づいて、確認応答パケットを受信することなく待機時刻T1に達したか否か、すなわち現在時刻が待機時刻T1に一致したか否かを判定する。
もし、タイマ101によって供給される現在時刻と待機時刻とが一致する前に、RTO判定回路106が送信バッファ回路13から次の確認応答パケットを受信したと通知された場合には、RTO判定回路106のRTO保持回路301は新たなRTOの値で更新され、RTO判定回路106はリセットされる。詳しくは、RTT算出回路104は、その受信された確認応答パケットのデータの受信時刻に基づいてRTTの新たな測定時間Rを計算し、RTO算出回路105は、このRTTの新たな測定時間Rに基づいてRTOの値を更新し、更新されたRTOをRTO判定回路106のRTO保持回路301に格納させる。RTO判定回路106は、前記の手順にて新たな待機時刻を計算して更新し、次いで、タイマ101によって供給される現在時刻と計算された新たな待機時刻とが一致したか否かを判定する。
一方、次の確認応答パケットを受信することなく、タイマ101によって供給される現在時刻と待機時刻T1との一致を検出した場合には、一致判定回路304は、再送制御回路107にタイムアウトを通知する。
タイムアウトについての通知を受信した再送制御回路107は、再送回数カウンタ108から供給される再送回数を参照し、予め設定された再送可能回数と比較する。再送制御回路107は、もし、予め設定された再送可能回数と再送回数カウンタ108から供給された再送回数とが一致した場合は、再送を行うことなく、再送回数が指定数に達したことをサーバ装置1全体のコントローラ(図示せず。)に通知して、送信のための処理を終了する。もし、再送回数カウンタ108から供給された再送回数が、予め設定された再送可能回数未満である場合は、再送制御回路107は、送信バッファ回路13に指示して、再送のために送信バッファ回路13内に保持されたデータを再送させるとともに、送信済みデータを再送したことを再送回数カウンタ108とRTO判定回路106のRTO判定回路コントローラ305とに通知する。
本実施形態では、待機時刻T1までに確認応答パケットを受信しなかったとき、再送制御回路107は一致判定回路304からタイムアウトの通知を受信すると、1回目の再送を実行するように送信バッファ回路13に指示する。
再送回数カウンタ108は、再送したことの通知を再送制御回路107から受信すると再送回数のカウンタ値を1だけインクリメントする。
また、RTO判定回路106のRTO判定回路コントローラ305は、再送したことの通知を受信したとき、次の再送のための動作を開始する。RTO判定回路106において、RTO保持回路301に格納されたRTOの値がシフト演算器151に伝送され、再送回数カウンタ108からカウンタ値「1」がシフト演算器302に伝送され、シフト演算器302は、RTO値を左に1ビットだけシフトして加算器303に伝送する。次に加算器303は、シフト演算器302から伝送された値と、前回の再送を実行した時刻であるT1とを加算して、次の確認応答パケットを受信するまで待機すべき時刻を示す待機時刻T2を再計算して生成し、生成された待機時刻T2を一致判定回路304に伝送する。一致判定回路304は、タイマ101から供給される時刻信号に基づいて、確認応答パケットを受信することなく待機時刻T2に達したか否か、すなわち現在時刻が待機時刻T2に一致したか否かを判定する。待機時刻T2までに確認応答パケットを受信しなかったとき、一致判定回路304は再送制御回路107にタイムアウトを通知し、再送制御回路107は、再送回数カウンタ108から供給される再送回数が予め設定された再送可能回数未満であることを確認した後で、2回目の再送を実行するように送信バッファ回路13に指示する。再送制御回路107はさらに、送信済みデータを再送したことを再送回数カウンタ108とRTO判定回路106のRTO判定回路コントローラ305とに通知する。
RTO判定回路106は、以後同様に、次の再送のための動作を実行する。RTO判定回路106において、RTO保持回路301に格納されたRTOの値がシフト演算器151に伝送され、再送回数カウンタ108からカウンタ値がシフト演算器302に伝送され、シフト演算器302は、カウンタ値の大きさだけRTOの値を左にシフトさせるように演算し、加算器303に伝送する。ここで、シフト演算器302は、例えば、確認応答パケットを受信せずにタイムアウトしたことがすでに1回ある場合には1ビットのシフト演算を実行し、すでにN回ある場合にはNビットのシフト演算を実行する。これにより、確認応答パケットを受信するまでの待機時間は、再送を繰り返す毎に2倍ずつ増大される。次に加算器303は、シフト演算器302から伝送された値と、前回の再送を実行したときの時刻とを加算して、次の確認応答パケットを受信するまで待機すべき時刻を示す待機時刻を生成し、生成された待機時刻を一致判定回路304に伝送する。一致判定回路304は、タイマ101から供給される時刻信号に基づいて、確認応答パケットを受信することなく待機時刻に達したか否か、すなわち現在時刻が待機時刻に一致したか否かを判定する。待機時刻までに確認応答パケットを受信しなかったとき、一致判定回路304は再送制御回路107にタイムアウトを通知し、再送制御回路107は、再送回数カウンタ108から供給される再送回数が予め設定された再送可能回数未満であることを確認した後で、再送を実行するように送信バッファ回路13に指示する。再送制御回路107はさらに、送信済みデータを再送したことを再送回数カウンタ108とRTO判定回路106のRTO判定回路コントローラ305とに通知する。
以上のように構成された再送コントローラ10を備えたデータ送受信システムによれば、パケット損失等により伝送品質が低下することを抑制しながら、ソフトウェア処理の負荷がほとんど発生することなく、パケットの再送を迅速に実行することが可能となる。
図6は、図1の再送コントローラ10の再送制御動作のタイミングチャートである。図6のタイミングチャートは、図1のデータ送受信システムにおいて、サーバ装置1が周期C=1マイクロ秒でRTOの時間が到来したか否かを判定する際における、データ伝送の発生と、TCP処理によるCPU負荷と、再送コントローラ10内のRTO判定回路106の動作とを示している。
図6において、サーバ装置1がデータパケットD1,D2,D3,D4,D5と、再送データパケットD3,D2,D3とを送信する際の送信TCP処理回路12の処理動作によるCPU負荷を、それぞれプロセスP1,P2,P3,P4,P5,P7,P8,P9により表す。また、サーバ装置1がクライアント装置2から確認応答パケットA1を受信する際の受信TCP処理回路16の処理動作によるCPU負荷を、プロセスP10により表す。またRTO判定回路106は、初期時刻T10を基準として周期C=1マイクロ秒毎に、すなわち時刻T11,T12,T13,T14,T15においてRTO判定を実行し、この負荷をプロセスP11により表す。本実施形態によれば、再送コントローラ10は、データパケットD1を送信した時刻と、それに対する確認応答パケットA1を受信した時刻とに基づいてRTTを測定し、このRTTに基づいて式(1)、式(2)及び式(5)を用いてRTOを計算する。次いで、確認応答パケットA1を受信した時刻と、計算されたRTOとに基づいて、タイムアウト時刻TT1が設定される。RTO判定回路106は、タイムアウト時刻TT1が到来したか否かを1マイクロ秒毎に(すなわち時刻T11,T12,T13,T14,T15において)判定し、もし、次の確認応答パケットを受信せずにタイムアウト時刻TT1に達した場合には、データパケットD3の再送を開始する。再送の開始時のTCP処理のための負荷を、プロセスP6により表す。図10によれば、本実施形態では、RTT及びRTOを測定しまた計算するための回路と、RTOの時間に達したか否かを判定するための回路とを、TCP処理のための回路とは別個に設けるので、TCPのRTO判定プロセスが不要となり、TCP処理に係るソフトウェアのCPU負荷を低減できる。
また、再送時間を考慮して設けられる遅延バッファメモリの容量は、(伝送レート)×RTOにより決定されるが、本実施形態のRTOは一般的なTCPのRTOより充分に小さくなる。従って、例えば、伝送レートが10Mbpsであり、RTTが最大で400マイクロ秒であり、係数K=2とした場合、式(1)を計算すると、SRTT(旧値)=400マイクロ秒に対してSRTT(新値)=400マイクロ秒であり、式(2)を計算すると、RTTVAR(旧値)=400マイクロ秒に対してRTTVAR(新値)=300マイクロ秒であり、式(5)よりRTO=1000マイクロ秒=1ミリ秒となる。これらの値より再送のための遅延バッファメモリの容量を計算すると125Kバイトとなり、本実施形態によれば、バッファメモリの容量を従来技術のTCP処理を用いた場合と比較して小さくできることがわかる。
第1の実施形態の変形例.
図7は、本発明の第1の実施形態の第1の変形例に係る再送コントローラ10Aの構成を示すブロック図である。再送コントローラ10Aでは、図2のRTT算出回路104及びRTO算出回路105の機能を、所定のソフトウェアを実行するDSP(デジタルシグナルプロセッサ)401によって実装している。DSP401は、送信時刻保持回路102から伝送された送信時刻と受信時刻保持回路103から伝送された受信時刻とに基づいて、RTOをソフトウェアにより計算してRTO判定回路106に伝送する。
図7は、本発明の第1の実施形態の第1の変形例に係る再送コントローラ10Aの構成を示すブロック図である。再送コントローラ10Aでは、図2のRTT算出回路104及びRTO算出回路105の機能を、所定のソフトウェアを実行するDSP(デジタルシグナルプロセッサ)401によって実装している。DSP401は、送信時刻保持回路102から伝送された送信時刻と受信時刻保持回路103から伝送された受信時刻とに基づいて、RTOをソフトウェアにより計算してRTO判定回路106に伝送する。
図8は、本発明の第1の実施形態の第2の変形例に係る再送コントローラ10Bの構成を示すブロック図である。再送コントローラ10Aでは、図2のRTT算出回路104、RTO算出回路105、再送制御回路107及び再送回数カウンタ108の機能を、所定のソフトウェアを実行するDSP402によって実装している。DSP402は、送信時刻保持回路102から伝送された送信時刻と受信時刻保持回路103から伝送された受信時刻とに基づいてRTOをソフトウェアにより計算してRTO判定回路106に伝送するとともに、RTO判定回路106からの指示に応答して送信バッファ回路13内に格納された送信済みデータを再送させる。
第2の実施形態.
以下、図9乃至図13を参照して本発明の第2の実施形態について説明する。
以下、図9乃至図13を参照して本発明の第2の実施形態について説明する。
本実施形態では、データ信号が、小さな遅延で伝送されることを必要とするデータとして予め特定される特定送信データと、それ以外のデータ信号である汎用送信データとに区別され、特定送信データと汎用送信データとは送信バッファ回路13A及び受信バッファ回路15Aの中でそれぞれ別個に格納され、また特定送信データのみが再送制御されることを特徴とする。
図9は、本発明の第2の実施形態に係る再送コントローラ10Cの構成を示すブロック図である。再送コントローラ10Cは、図2の再送コントローラ10における送信時刻保持回路102、受信時刻保持回路103及びRTT算出回路104に代えて、送信時刻記録回路102A、受信時刻保持回路103A及びRTT算出回路104Aを備える。また、再送コントローラ10Cには、図2の送信バッファ回路13に代えて送信バッファ回路13Aが接続され、図2の受信バッファ回路15に代えて受信バッファ回路15Aが接続されている。送信バッファ回路13Aには、送信TCP処理回路12から1個乃至複数個の送信されるTCPセグメントのデータが送られてくる。送信バッファ回路13Aは、上記各送信データが送信バッファ回路13Aに格納されたことを送信時刻記録回路102Aに通知する。通知を受信した送信時刻記録回路102Aは、1マイクロ秒で動作するタイマ101から供給される時刻信号に基づいて送信データの送信時刻を記録して、その送信時刻を送信バッファ回路13Aに伝送し、送信データに関連付けて記録させる(詳細後述)。また、RTT算出回路104Aは、送信バッファ回路13A内に記録されたこの送信時刻を参照することによりRTTを計算する。一方、受信バッファ回路15Aには、送受信インターフェース回路14から、1個乃至複数個の受信されたTCPセグメントのデータが送られてくる。受信バッファ回路15Aは、確認応答パケットのデータを格納したとき、このことを受信時刻記録回路103Aに通知する。通知を受信した受信時刻記録回路103Aは、1マイクロ秒で動作するタイマ101から供給される時刻信号に基づいて、受信された確認応答パケットのデータの受信時刻を記録して、その受信時刻を受信バッファ回路15Aに伝送し、受信データに関連付けて記録させる(詳細後述)。また、RTT算出回路104Aは、受信バッファ回路15A内に記録された確認応答パケットのデータの受信時刻を参照することによりRTTを計算する。
以下図10乃至図13を参照して、図9の送信バッファ回路13A及び受信バッファ回路15Aの詳細構成及び動作に関して説明する。
図10は、図9の送信バッファ回路13Aの詳細構成を示すブロック図である。送信バッファ回路13Aは、送信データを、AVデータ等の高い伝送レートでの送信及び迅速な再送を必要とする特定送信データと、それ以外の汎用送信データとに区別し、それぞれ異なるバッファバンクに格納するように構成されている。送信バッファ回路13Aは、TCPコネクション毎に対応したAVデータ等の高い伝送レートでの送信及び迅速な再送を必要とする1つあるいは複数の特定送信データ用バッファバンク503と、特定送信データ以外の送信データを格納する1つの汎用送信データ用バッファバンク504とを備える。送信バッファ回路13Aにおいて、送信TCP処理回路12から伝送された送信データは、最初に送信データ識別回路501によって特定送信データと汎用送信データとに分離され、特定送信データは格納フォーマット変換器502によってフォーマット変換された後で特定送信データ用バッファバンク503に伝送され、汎用送信データは汎用送信データ用バッファバンク504に伝送される。特定送信データ用バッファバンク503は、1つ又は複数のバッファメモリであるバッファ503−1乃至503−Mを備えて構成され、各バッファ503−1乃至503−Mはそれぞれ特定送信データを格納する。汎用送信データ用バッファバンク504もまた同様に、1つ又は複数のバッファメモリであるバッファ504−1乃至504−Nを備えて構成され、各バッファ504−1乃至504−Nはそれぞれ汎用送信データを格納する。特定送信データ用バッファバンク503に格納された特定送信データと、汎用送信データ用バッファバンク504に格納された汎用送信データとは、送信調停回路505を介して送受信インターフェース回路14に伝送される。この伝送は、特定送信データ用バッファバンク503、汎用送信データ用バッファバンク504、送信調停回路505及び再送コントローラ10Cに接続されたバッファコントローラ506によって制御される。送信調停回路505は、特定送信データに対する送信要求を調停するとともに、特定送信データ及び汎用送信データの送信順序を決定し、決定された送信順序に従って送受信インターフェース回路14に伝送してネットワーク3に送信させる。
図11は、図10の特定送信データ用バッファバンク503内の送信データ格納フォーマット510を説明するための概略図である。格納フォーマット変換器502は、送信データ識別回路501から伝送された送信データのフォーマットを図11の送信バッファ格納フォーマット510に変換する。送信バッファ格納フォーマット510は、送信TCP処理回路12から伝送された送信データ512に対して送信用記述識別子511を付加したフォーマットを有し、送信用記述識別子511は、その主な構成要素として、送信処理を制御するための送信データ長などの情報と、送信時刻記録回路102Aからバッファコントローラ506を介して供給された送信時刻の情報とを含む。また、送信データ512は、TCP/IPの通信プロトコルに従って指定されたTCPヘッダの発信元ポート番号及び宛先ポート番号とIPヘッダの発信元アドレス及び宛先アドレスとの少なくとも1つを予めデータに含んだ形式で、送信TCP処理回路12から伝送されている。バッファ503−1乃至503−Mの各々は、送信バッファ格納フォーマット510に示すように、送信用記述識別子511と送信データ512とを含むフォーマットでデータを格納する。
図10において、特定送信データ以外の汎用送信データは、送信バッファ格納フォーマット510のフォーマットか、あるいは別の格納フォーマットで、汎用送信データ用バッファバンク504に格納される。
特定送信データ用バッファバンク503に格納された特定送信データは、再送コントローラ10Cによる管理及び制御の対象となり、RTT算出回路104Aからバッファコントローラ506を介して当該データの送信時刻が参照される。また、汎用送信データ用バッファバンク504に格納された汎用送信データは、再送コントローラ10Cによる管理及び制御の対象とはならないので、RTT算出回路104Aにより当該データが参照されることはない。
図12は、図9の受信バッファ回路15Aの詳細構成を示すブロック図である。受信バッファ回路15Aは、受信データを、AVデータ等の高い伝送レートで送信した特定送信データに対して受信されるTCPの確認応答パケットに係る特定受信データと、それ以外の汎用受信データとに区別し、それぞれ異なるバッファバンクに格納するように構成されている。受信バッファ回路15Aは、TCPコネクション毎に対応したAVデータ等の高い伝送レートで送信した送信データに対して受信されるTCPの確認応答パケットを格納する1つあるいは複数の特定受信データ用バッファバンク603と、特定受信データ以外の受信データを格納する1つの汎用受信データ用バッファバンク604とを備える。受信バッファ回路15Aにおいて、最初に受信データ識別回路601は、送受信インターフェース回路14から伝送された受信データにおけるTCPヘッダの発信元ポート番号及び宛先ポート番号とIPヘッダの発信元アドレス及び宛先アドレスとを走査し、それにより受信データは、以前に送信した特定送信データのパケットに対する確認応答パケットのデータであると識別された特定受信データと、それ以外のデータであると識別された汎用受信データとに分離され、特定受信データは格納フォーマット変換器602によってフォーマット変換された後で特定受信データ用バッファバンク603に伝送され、汎用受信データは汎用受信データ用バッファバンク604に伝送される。この識別は、再送コントローラ10Cから受信バッファ回路15Aのバッファコントローラ605を介して受信データ識別回路601に予め伝送された情報(TCPヘッダの発信元ポート番号、宛先ポート番号、IPヘッダの発信元アドレス、及び宛先アドレスのうちの少なくとも1つ)に基づいて、ヘッダ情報の一致を判定することにより実行される。バッファコントローラ605はさらに、特定受信データ用バッファバンク603及び汎用受信データ用バッファバンク604にも接続されている。特定受信データ用バッファバンク603は、1つ又は複数のバッファメモリであるバッファ603−1乃至603−Mを備えて構成され、各バッファ603−1乃至603−Mはそれぞれ特定受信データを格納する。汎用受信データ用バッファバンク604もまた同様に、1つ又は複数のバッファメモリであるバッファ604−1乃至604−Nを備えて構成され、各バッファ604−1乃至604−Nはそれぞれ汎用受信データを格納する。特定受信データ用バッファバンク603に格納された特定受信データと、汎用受信データ用バッファバンク604に格納された汎用受信データとは、受信TCP処理回路16に伝送されて処理される。
図13は、図12の特定受信データ用バッファバンク603内の受信データ格納フォーマット610を説明するための概略図である。格納フォーマット変換器602は、受信データ識別回路601から伝送された受信データのフォーマットを図13の受信バッファ格納フォーマット610に変換する。受信バッファ格納フォーマット610は、受信データ識別回路601から伝送された受信データ612に対して受信用記述識別子611を付加したフォーマットを有し、受信用記述識別子611は、その主な構成要素として、受信処理を制御するための受信データ長などの情報と、受信時刻記録回路103Aからバッファコントローラ605を介して供給された受信時刻の情報と、受信ステータス情報などを含む。バッファ603−1乃至603−Mの各々は、受信バッファ格納フォーマット610に示すように、受信用記述識別子611と受信データ612とを含むフォーマットでデータを格納する。
図12において、特定受信データ以外の汎用受信データは、受信バッファ格納フォーマット610のフォーマットか、あるいは別の格納フォーマットで、汎用受信データ用バッファバンク604に格納される。
特定受信データ用バッファバンク603に格納された特定受信データは、再送コントローラ10Cによる管理及び制御の対象となり、RTT算出回路104Aからバッファコントローラ605を介して当該データの受信時刻が参照される。また、汎用受信データ用バッファバンク604に格納された汎用受信データは、再送コントローラ10Cによる管理及び制御の対象とはならないので、RTT算出回路104Aにより当該データが参照されることはない。
以上のように構成された、特定送信データのみを対象として再送制御する再送コントローラ10Cによれば、特定送信データのみを再送制御の対象とするため、ある程度の処理をソフトウェアにて実現した場合でもCPUに負荷をかけず、高速な処理が可能であり、処理パケット損失等により伝送品質が低下することを抑制しながら、再送を迅速に行うことが可能となる。
第2の実施形態の変形例.
図14は、本発明の第2の実施形態の第1の変形例に係る再送コントローラ10Dの構成を示すブロック図である。再送コントローラ10Dでは、図9のRTT算出回路104A及びRTO算出回路105の機能を、所定のソフトウェアを実行するDSP701によって実装している。DSP701は、送信バッファ回路13Aから伝送された送信時刻と受信バッファ回路15Aから伝送された受信時刻とに基づいて、RTOをソフトウェアにより計算してRTO判定回路106に伝送する。
図14は、本発明の第2の実施形態の第1の変形例に係る再送コントローラ10Dの構成を示すブロック図である。再送コントローラ10Dでは、図9のRTT算出回路104A及びRTO算出回路105の機能を、所定のソフトウェアを実行するDSP701によって実装している。DSP701は、送信バッファ回路13Aから伝送された送信時刻と受信バッファ回路15Aから伝送された受信時刻とに基づいて、RTOをソフトウェアにより計算してRTO判定回路106に伝送する。
図15は、本発明の第2の実施形態の第2の変形例に係る再送コントローラ10Eの構成を示すブロック図である。再送コントローラ10Eでは、図9のRTT算出回路104A、RTO算出回路105、再送制御回路107及び再送回数カウンタ108の機能を、所定のソフトウェアを実行するDSP702によって実装している。DSP702は、送信バッファ回路13Aから伝送された送信時刻と受信バッファ回路15Aから伝送された受信時刻とに基づいてRTOをソフトウェアにより計算してRTO判定回路106に伝送するとともに、RTO判定回路106からの指示に応答して送信バッファ回路13A内に格納された送信済みデータを再送させる。
変形例.
第1の実施形態において、送信バッファ回路13及び受信バッファ回路15を図10乃至図13と同様に構成し、それによって送信データを特定送信データと汎用送信データとに区別して処理し、受信データを特定受信データと汎用受信データとに区別して処理してもよい。また、第2の実施形態において、データの送信時刻及び受信時刻を送信用記述識別子511及び受信用記述識別子611に記録することなく、再送コントローラ10Cの内部で保持して、保持された送信時刻及び受信時刻をRTT算出回路104Aに直接に伝送してもよい。
第1の実施形態において、送信バッファ回路13及び受信バッファ回路15を図10乃至図13と同様に構成し、それによって送信データを特定送信データと汎用送信データとに区別して処理し、受信データを特定受信データと汎用受信データとに区別して処理してもよい。また、第2の実施形態において、データの送信時刻及び受信時刻を送信用記述識別子511及び受信用記述識別子611に記録することなく、再送コントローラ10Cの内部で保持して、保持された送信時刻及び受信時刻をRTT算出回路104Aに直接に伝送してもよい。
なお、図2の再送コントローラ10及び図9の再送コントローラ10Cにおける他の回路部分を、1つ又は複数のDSP又は汎用プロセッサと、当該DSP又は汎用プロセッサ上で実行されるソフトウェアとにより置き換えて、当該回路部分の機能をソフトウェア的に実現してもよい。また、サーバ装置1及びクライアント装置2の他の回路部分をソフトウェア的に実現してもよいし、ハードウェア的に実現してもよい。
以上に説明した各実施形態は、例示であって本発明の範囲を限定するものでは無い。
本発明に係るデータ再送装置を備えたデータ送受信システムは、AVデータを複雑なTCPなどのインターネットプロトコルで伝送する機能を安価に提供できるばかりでなく、複数種のコンテンツへの対応や規格の変更などに柔軟に対応できる汎用性をもっている。そのため、本発明は、ネットワークに接続される家電製品やモバイル端末装置等の用途に有用である。
1…サーバ装置、
2…クライアント装置、
3…ネットワーク、
10,10A,10B,10C,10D,10E,20…再送コントローラ、
11,21…AVエンコーダ、
12,22…送信TCP処理回路、
13,13A,23…送信バッファ回路、
14,24…送受信インターフェース回路、
15,15A,25…受信バッファ回路、
16,26…受信TCP処理回路、
17,27…AVデコーダ、
18,28…確認応答処理回路、
101…タイマ、
102…送信時刻保持回路、
102A…送信時刻記録回路、
103…受信時刻保持回路、
103A…受信時刻記録回路、
102m,103m…メモリ、
104,104A…RTT算出回路、
105…RTO算出回路、
106…RTO判定回路、
107…再送制御回路、
108…再送回数カウンタ、
201,203…右3ビットシフト演算器、
202,209,213…加算器、
204,205,211…減算器、
206…2の補数演算器、
207…セレクタ、
208,210…右2ビットシフト演算器、
212…左1ビットシフト演算器、
301…RTO保持回路、
302…シフト演算器、
303…加算器、
304…一致判定回路、
305…RTO判定回路コントローラ、
P1乃至P11…プロセス、
D1乃至D5…データパケット、
A1…確認応答パケット、
401,402…DSP、
501…送信データ識別回路、
502…格納フォーマット変換器、
503…特定送信データ用バッファバンク、
503−1乃至503−M…バッファ、
504…汎用送信データ用バッファバンク、
504−1乃至504−N…バッファ、
505…送信調停回路、
506…バッファコントローラ、
511…送信用記述識別子、
512…送信データ、
601…受信データ識別回路、
602…格納フォーマット変換器、
603…特定受信データ用バッファバンク、
603−1乃至603−M…バッファ、
604…汎用受信データ用バッファバンク、
604−1乃至604−N…バッファ、
605…バッファコントローラ、
611…受信用記述識別子、
612…受信データ、
701,702…DSP。
2…クライアント装置、
3…ネットワーク、
10,10A,10B,10C,10D,10E,20…再送コントローラ、
11,21…AVエンコーダ、
12,22…送信TCP処理回路、
13,13A,23…送信バッファ回路、
14,24…送受信インターフェース回路、
15,15A,25…受信バッファ回路、
16,26…受信TCP処理回路、
17,27…AVデコーダ、
18,28…確認応答処理回路、
101…タイマ、
102…送信時刻保持回路、
102A…送信時刻記録回路、
103…受信時刻保持回路、
103A…受信時刻記録回路、
102m,103m…メモリ、
104,104A…RTT算出回路、
105…RTO算出回路、
106…RTO判定回路、
107…再送制御回路、
108…再送回数カウンタ、
201,203…右3ビットシフト演算器、
202,209,213…加算器、
204,205,211…減算器、
206…2の補数演算器、
207…セレクタ、
208,210…右2ビットシフト演算器、
212…左1ビットシフト演算器、
301…RTO保持回路、
302…シフト演算器、
303…加算器、
304…一致判定回路、
305…RTO判定回路コントローラ、
P1乃至P11…プロセス、
D1乃至D5…データパケット、
A1…確認応答パケット、
401,402…DSP、
501…送信データ識別回路、
502…格納フォーマット変換器、
503…特定送信データ用バッファバンク、
503−1乃至503−M…バッファ、
504…汎用送信データ用バッファバンク、
504−1乃至504−N…バッファ、
505…送信調停回路、
506…バッファコントローラ、
511…送信用記述識別子、
512…送信データ、
601…受信データ識別回路、
602…格納フォーマット変換器、
603…特定受信データ用バッファバンク、
603−1乃至603−M…バッファ、
604…汎用受信データ用バッファバンク、
604−1乃至604−N…バッファ、
605…バッファコントローラ、
611…受信用記述識別子、
612…受信データ、
701,702…DSP。
Claims (20)
- 宛先装置に向けて送信されるデータ信号を処理する送信TCP処理手段と、
上記データ信号を送信及び再送のために格納する送信バッファ手段と、
上記宛先装置から受信された確認応答信号を処理する受信TCP処理手段と、
上記送信TCP処理手段及び上記受信TCP処理手段とは別個に設けられ、上記格納されたデータ信号の再送を制御するデータ再送手段とを備えたデータ送受信装置であって、
上記データ再送手段は、
上記格納されたデータ信号を再送した回数をカウントする再送回数カウンタ手段と、
所定の周期を有する時刻信号を供給するタイマ手段と、
上記データ信号を上記宛先装置に送信したとき、上記時刻信号に基づいて上記データ信号の送信時刻を記録する送信時刻記録手段と、
上記確認応答信号を受信したときに、上記時刻信号に基づいて上記確認応答信号の受信時刻を記録する受信時刻記録手段と、
上記記録された送信時刻及び受信時刻に基づいて、上記データ送受信装置と上記宛先装置との間における信号の往復時間RTTを算出するRTT算出手段と、
上記往復時間RTTに基づいて、上記データ信号を送信してから上記確認応答信号を受信するまでの待機時刻を決定するための再送タイムアウト時間RTOを算出するRTO算出手段と、
上記再送タイムアウト時間RTOに基づいて待機時刻を決定し、上記時刻信号に基づいて、上記確認応答信号が受信されずに上記待機時刻に達したか否かを判定する判定手段と、
上記判定手段により上記待機時刻に達したと判定されたときであって、かつ上記再送回数カウンタ手段によりカウントされた再送の回数が所定のしきい値未満であるとき、上記格納されたデータ信号を再送する再送制御手段とを備えたことを特徴とするデータ送受信装置。 - 上記送信時刻記録手段は、上記データ信号を上記送信バッファ手段に格納した時刻を送信時刻として記録して保持することを特徴とする請求項1記載のデータ送受信装置。
- 上記送信時刻記録手段は、上記データ信号を上記送信バッファ手段に格納した時刻を送信時刻として記録し、上記記録された送信時刻を、上記データ信号の識別子として上記送信バッファ手段において上記データ信号とともに保持させることを特徴とする請求項1記載のデータ送受信装置。
- 上記データ信号は、TCPヘッダの発信元ポート番号、TCPヘッダの宛先ポート番号、IPヘッダの発信元アドレス、及びIPヘッダの宛先アドレスのうちの少なくとも1つのデータを備えたことを特徴とする請求項1乃至3のうちのいずれか1つに記載のデータ送受信装置。
- 上記送受信装置は上記受信された確認応答信号を格納する受信バッファ手段をさらに備え、
上記受信時刻記録手段は、上記確認応答信号を上記受信バッファ手段に格納した時刻を受信時刻として記録して保持することを特徴とする請求項1乃至4のうちのいずれか1つに記載のデータ送受信装置。 - 上記送受信装置は上記受信された確認応答信号を格納する受信バッファ手段をさらに備え、
上記受信時刻記録手段は、上記確認応答信号を上記受信バッファ手段に格納した時刻を受信時刻として記録し、上記記録された受信時刻を、上記確認応答信号の識別子として上記受信バッファ手段において上記確認応答信号とともに保持させることを特徴とする請求項1乃至4のうちのいずれか1つに記載のデータ送受信装置。 - 上記確認応答信号は、TCPヘッダの発信元ポート番号、TCPヘッダの宛先ポート番号、IPヘッダの発信元アドレス、及びIPヘッダの宛先アドレスのうちの少なくとも1つのデータを備えたことを特徴とする請求項1乃至6のうちのいずれか1つに記載のデータ送受信装置。
- 上記判定手段は、
上記時刻信号により取得される現在時刻に上記再送タイムアウト時間RTOを加算することによって待機時刻を決定し、
上記時刻信号により取得される現在時刻が上記待機時刻に達したか否かを判定し、
上記待機時刻に達する前に上記確認応答信号を受信したと判定したとき、上記RTO算出手段から新たな再送タイムアウト時間RTOを取得して新たな待機時刻を計算し、上記時刻信号により取得される現在時刻が上記新たな待機時刻に達したか否かを判定し、
上記確認応答信号が受信されずに上記待機時刻に達したと判定したとき、上記格納されたデータ信号を再送するように上記再送制御手段に指示するとともに、上記待機時刻を再計算し、上記時刻信号により取得される現在時刻が上記再計算された待機時刻に達したか否かを判定することを特徴とする請求項1乃至7のうちのいずれか1つに記載のデータ送受信装置。 - 上記判定手段は、
上記確認応答信号が受信されずに上記待機時刻に達したと判定したとき、上記再送回数カウンタ手段によりカウントされた再送の回数だけ、上記再送タイムアウト時間RTOの値に対して左シフト演算を実行し、上記時刻信号により取得される現在時刻に上記左シフト演算された再送タイムアウト時間RTOを加算することによって待機時刻を再計算することを特徴とする請求項8記載のデータ送受信装置。 - 宛先装置に向けて送信されるデータ信号を処理する送信TCP処理手段と、
上記データ信号を送信及び再送のために格納する送信バッファ手段と、
上記宛先装置から受信された確認応答信号を処理する受信TCP処理手段と、
上記送信TCP処理手段及び上記受信TCP処理手段とは別個に設けられ、上記格納されたデータ信号の再送を制御するデータ再送手段とを備えたデータ送受信装置であって、
上記データ信号は、予め特定される第1のデータ信号と、上記第1のデータ信号以外のデータ信号である第2のデータ信号とを含み、
上記データ再送手段は、
格納された上記第1のデータ信号を再送した回数をカウントする再送回数カウンタ手段と、
所定の周期を有する時刻信号を供給するタイマ手段と、
上記第1のデータ信号を上記宛先装置に送信したとき、上記時刻信号に基づいて上記第1のデータ信号の送信時刻を記録する送信時刻記録手段と、
上記第1のデータ信号に係る確認応答信号を受信したときに、上記時刻信号に基づいて上記第1のデータ信号に係る確認応答信号の受信時刻を記録する受信時刻記録手段と、
上記記録された送信時刻及び受信時刻に基づいて、上記データ送受信装置と上記宛先装置との間における信号の往復時間RTTを算出するRTT算出手段と、
上記往復時間RTTに基づいて、上記第1のデータ信号を送信してから上記第1のデータ信号に係る確認応答信号を受信するまでの待機時刻を決定するための再送タイムアウト時間RTOを算出するRTO算出手段と、
上記再送タイムアウト時間RTOに基づいて待機時刻を決定し、上記時刻信号に基づいて、上記第1のデータ信号に係る確認応答信号が受信されずに上記待機時刻に達したか否かを判定する判定手段と、
上記判定手段により上記待機時刻に達したと判定されたときであって、かつ上記再送回数カウンタ手段によりカウントされた再送の回数が所定のしきい値未満であるとき、上記格納された第1のデータ信号を再送する再送制御手段とを備えたことを特徴とするデータ送受信装置。 - 上記送信時刻記録手段は、上記第1のデータ信号を上記送信バッファ手段に格納した時刻を送信時刻として記録して保持することを特徴とする請求項10記載のデータ送受信装置。
- 上記送信時刻記録手段は、上記第1のデータ信号を上記送信バッファ手段に格納した時刻を送信時刻として記録し、上記記録された送信時刻を、上記第1のデータ信号の識別子として上記送信バッファ手段において上記第1のデータ信号とともに保持させることを特徴とする請求項10記載のデータ送受信装置。
- 上記第1のデータ信号は、TCPヘッダの発信元ポート番号、TCPヘッダの宛先ポート番号、IPヘッダの発信元アドレス、及びIPヘッダの宛先アドレスのうちの少なくとも1つのデータを備えたことを特徴とする請求項10乃至12のうちのいずれか1つに記載のデータ送受信装置。
- 上記送受信装置は上記受信された確認応答信号を格納する受信バッファ手段をさらに備え、
上記受信時刻記録手段は、上記第1のデータ信号に係る確認応答信号を上記受信バッファ手段に格納した時刻を受信時刻として記録して保持することを特徴とする請求項10乃至13のうちのいずれか1つに記載のデータ送受信装置。 - 上記送受信装置は上記受信された確認応答信号を格納する受信バッファ手段をさらに備え、
上記受信時刻記録手段は、上記第1のデータ信号に係る確認応答信号を上記受信バッファ手段に格納した時刻を受信時刻として記録し、上記記録された受信時刻を、上記第1のデータ信号に係る確認応答信号の識別子として上記受信バッファ手段において上記第1のデータ信号に係る確認応答信号とともに保持させることを特徴とする請求項10乃至13のうちのいずれか1つに記載のデータ送受信装置。 - 上記第1のデータ信号に係る確認応答信号は、TCPヘッダの発信元ポート番号、TCPヘッダの宛先ポート番号、IPヘッダの発信元アドレス、及びIPヘッダの宛先アドレスのうちの少なくとも1つのデータを備えたことを特徴とする請求項10乃至15のうちのいずれか1つに記載のデータ送受信装置。
- 上記判定手段は、
上記時刻信号により取得される現在時刻に上記再送タイムアウト時間RTOを加算することによって待機時刻を決定し、
上記時刻信号により取得される現在時刻が上記待機時刻に達したか否かを判定し、
上記待機時刻に達する前に上記第1のデータ信号に係る確認応答信号を受信したと判定したとき、上記RTO算出手段から新たな再送タイムアウト時間RTOを取得して新たな待機時刻を計算し、上記時刻信号により取得される現在時刻が上記新たな待機時刻に達したか否かを判定し、
上記第1のデータ信号に係る確認応答信号が受信されずに上記待機時刻に達したと判定したとき、上記格納された第1のデータ信号を再送するように上記再送制御手段に指示するとともに、上記待機時刻を再計算し、上記時刻信号により取得される現在時刻が上記再計算された待機時刻に達したか否かを判定することを特徴とする請求項10乃至16のうちのいずれか1つに記載のデータ送受信装置。 - 上記判定手段は、
上記第1のデータ信号に係る確認応答信号が受信されずに上記待機時刻に達したと判定したとき、上記再送回数カウンタ手段によりカウントされた再送の回数だけ、上記再送タイムアウト時間RTOの値に対して左シフト演算を実行し、上記時刻信号により取得される現在時刻に上記左シフト演算された再送タイムアウト時間RTOを加算することによって待機時刻を再計算することを特徴とする請求項17記載のデータ送受信装置。 - 上記RTT算出手段及び上記RTO算出手段は、プロセッサと、上記プロセッサ上で実行されるソフトウェアプログラムとによって実装されることを特徴とする請求項1乃至18のうちのいずれか1つに記載のデータ送受信装置。
- 上記再送カウンタ手段、上記RTT算出手段、上記RTO算出手段、及び上記判定手段は、プロセッサと、上記プロセッサ上で実行されるソフトウェアプログラムとによって実装されることを特徴とする請求項1乃至18のうちのいずれか1つに記載のデータ送受信装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006064095A JP2007243663A (ja) | 2006-03-09 | 2006-03-09 | データ送受信装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006064095A JP2007243663A (ja) | 2006-03-09 | 2006-03-09 | データ送受信装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007243663A true JP2007243663A (ja) | 2007-09-20 |
Family
ID=38588737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006064095A Pending JP2007243663A (ja) | 2006-03-09 | 2006-03-09 | データ送受信装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007243663A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022509292A (ja) * | 2019-08-29 | 2022-01-20 | シャンハイ センスタイム インテリジェント テクノロジー カンパニー リミテッド | 通信方法および装置、電子機器並びに記憶媒体 |
-
2006
- 2006-03-09 JP JP2006064095A patent/JP2007243663A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022509292A (ja) * | 2019-08-29 | 2022-01-20 | シャンハイ センスタイム インテリジェント テクノロジー カンパニー リミテッド | 通信方法および装置、電子機器並びに記憶媒体 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8306062B1 (en) | Method and apparatus of adaptive large receive offload | |
JP4520032B2 (ja) | ヘッダ圧縮装置およびヘッダ圧縮方法 | |
US8170023B2 (en) | System and method for a software-based TCP/IP offload engine for implementing efficient digital media streaming over internet protocol networks | |
US9185045B1 (en) | Transport protocol for interactive real-time media | |
US20080225750A1 (en) | Method of transmitting data in a communication system | |
JP4840365B2 (ja) | 通信装置、通信システム、通信方法、および、通信プログラム | |
US9100332B2 (en) | Data transmitting device, data communicating device, and computer readable medium | |
US20160323062A1 (en) | Packet recovery in interactive real-time media protocol | |
JP6412160B2 (ja) | 通信装置、通信装置システム及び通信方法 | |
WO2020007084A1 (zh) | 重传控制方法、通信接口和电子设备 | |
JP4699947B2 (ja) | 通信端末装置 | |
JP3608660B2 (ja) | 圧縮ヘッダデータを送信する方法、装置、およびシステム | |
JP2008005392A (ja) | 通信端末装置およびバッファ制御方法 | |
US20160316022A1 (en) | Communication device, communication processing method, and storage medium | |
CN110753035A (zh) | 一种基于tcp协议的fpga超低延迟通信传输方法 | |
JP6963411B2 (ja) | 通信装置、通信方法、およびプログラム | |
CN109963305A (zh) | 无线网络拥塞调节方法、设备、存储介质及无线网络 | |
JP2007243663A (ja) | データ送受信装置 | |
US11233716B2 (en) | System for real-time monitoring with backward error correction | |
US20180183719A1 (en) | Method and device for data transmission | |
JP2005109765A (ja) | データ受信装置 | |
JP2011019150A (ja) | 通信装置および通信装置における回線速度切り替え方法 | |
JP2009071766A (ja) | 受信端末装置 | |
JP4152404B2 (ja) | リアルタイムパケットの揺らぎを補う無線伝送装置および方法 | |
US20080091841A1 (en) | Communication method, communication system, communication apparatus, and recording medium |