(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
図1には、本発明の実施形態に係る通信システムの構成が示されている。通信システムは、送信装置10および受信装置12を備えている。送信装置10と受信装置12との間は、第1通信回線14−1および第2通信回線14−2によって接続されている。第1通信回線14−1および第2通信回線14−2は、電線によるものであってもよいし、光ファイバによるものであってもよい。送信装置10には送信対象となるデータが順次入力される。受信装置12は、2つの通信回線から受信装置12に到達する2つの同一のパケットのうち、先に受信装置12で受信された方から情報を取得する。受信装置12は、2つの通信回線から受信装置12に到達する同一のパケットのうち、先に受信装置12で受信した方から順次情報を取得することで、一連のパケットから情報を取得する。このような通信によって、第1通信回線14−1および第2通信回線14−2のうちの一方の通信状況が良好でない場合には、他方の通信回線で伝送されたパケットが第2受信装置12で受信され、そのパケットから情報が取得される。
【0017】
図2には、送信装置10の構成が示されている。送信装置10は、パケット入力部16、シーケンス番号付加部18、パケット間隔識別部20、ダミーパケット生成部22、送信パケット合成部24、第1送信部26および第2送信部28を備えている。パケット入力部16には、時間経過と共に順次パケットが入力される。パケット入力部16は、パケットが予め定められた通信プロトコルに従うものであるか否かを判定し、予め定められた通信プロトコルに従うパケットをシーケンス番号付加部18およびパケット間隔識別部20に出力する。
【0018】
パケット生成部としてのシーケンス番号付加部18は、最初に入力されたパケットに対するシーケンス番号をSN=0として、パケットが入力されるごとに1だけ増加するシーケンス番号SNを生成し、各パケットに含ませる。シーケンス番号付加部18は、入力されたパケットの時間間隔をそのままに保ちながら、シーケンス番号SNを含むパケットを送信パケット合成部24に出力する。また、シーケンス番号付加部18は、シーケンス番号SNをパケット間隔識別部20に出力する。
【0019】
パケット間隔識別部20は、パケットが入力されていない状態を検出する。パケット間隔識別部20は、パケットが入力されていないときは、ダミーパケット生成部22にダミーパケット生成指令を所定の時間間隔で出力する。ダミーパケット生成指令は、ダミーパケットを生成すべき旨の指令であり、シーケンス番号付加部18から最後に出力されたパケットのシーケンス番号をダミー番号として含む。ダミーパケット生成部22は、パケット間隔識別部20からダミーパケット生成指令が出力されるごとに、ダミー番号を含むダミーパケットを生成し、送信パケット合成部24に出力する。
【0020】
送信パケット合成部24は、シーケンス番号付加部18から順次出力されるパケットと、ダミーパケット生成部22から順次出力されるダミーパケットを、第1送信部26および第2送信部28に出力する。このような処理によって、送信パケット合成部24からパケットが出力されていない間は、パケットが出力されていない時間に応じた個数のダミーパケットが送信パケット合成部24から出力される。ダミーパケットは、送信パケット合成部24から最後に出力されたパケットに含まれるシーケンス番号と同一のダミー番号を含んでいる。1つのパケットに複数のダミーパケットが続く場合、これら複数のダミーパケットのそれぞれは同一のダミー番号を含んでいる。
【0021】
第1送信部26および第2送信部28は、パケットまたはダミーパケットを通信回線14−1および14−2に送信する送信部(パケット送信部およびダミーパケット送信部)としての機能を有している。すなわち、第1送信部26は、通信回線14−1にパケットまたはダミーパケットを送信し、第2送信部28は、通信回線14−2にパケットまたはダミーパケットを送信する。第1送信部26および第2送信部28は、各通信回線に先のパケットを送信してから、各通信回線に次のパケットを送信するまでの間、その時間に応じた個数のダミーパケットを各通信回線に送信する。
【0022】
図3(a)には、パケット入力部16に入力される一連のパケットが示されている。各パケットには、時系列順に識別番号1、2、3、・・・・8、・・・が付されている。
図3(b)には、シーケンス番号SNが与えられたパケットに加えて、ダミーパケットが示されている。シーケンス番号SNが3であるパケットと、シーケンス番号SNが4であるパケットの間に、ダミー番号Dが3である1つのダミーパケットが時間軸上で挿入されている。また、シーケンス番号SNが5であるパケットと、シーケンス番号SNが6であるパケットの間に、ダミー番号Dが5である2つのダミーパケットが時間軸上で挿入されている。さらに、シーケンス番号SNが7であるパケットと、シーケンス番号SNが8であるパケットの間に、ダミー番号Dが7である3つのダミーパケットが時間軸上で挿入されている。
【0023】
図4には受信装置12の構成が示されている。受信装置12は、第1受信部30、第2受信部32、パケット選択出力部34、第1保持部40および第2保持部42を備えている。第1受信部30は、第1通信回線14−1からパケットおよびダミーパケットを受信し、パケット選択出力部34に出力する。第2受信部32は、第2通信回線14−2からパケットおよびダミーパケットを受信し、パケット選択出力部34に出力する。
【0024】
パケット選択出力部34は、後述のパケット選択処理を実行し、第1受信部30によって受信されたパケット、および第2受信部32によって受信されたパケットのうち一方を選択し出力する。パケット選択処理では、第1受信部30で受信されたパケットが第1保持部40で一時的に保持(記憶)されることがある。同様に、第2受信部32で受信されたパケットが第2保持部42で一時的に保持されることがある。各保持部は、複数のパケットを保持することができる。各保持部は、保持されている複数のパケットを出力するときは、先に保持したパケットを先に出力する。各保持部には、FIFOバッファメモリが用いられてもよい。
【0025】
パケット選択出力部34が実行する処理の概要は次の通りである。すなわち、パケット選択出力部34は、第1受信部30および第2受信部32のうち、シーケンス番号に従う順序で取得されるべきパケットが先に受信された方から、その取得されるべきパケットを取得し、出力する。
【0026】
送信装置10から送信されるパケットには、通信回線に到来した電磁波ノイズ等によって波形が乱され受信装置12が認識することができないものがある。このようなパケットの欠落が、例えば第1通信回線14−1で生じた場合、第1受信部30で順次受信され、パケット選択出力部34に順次出力される一連のパケットのシーケンス番号には、欠落(飛び)が生じる。
【0027】
そこで、パケット選択出力部34は、シーケンス番号の欠落があったときは、欠落番号の次の番号をシーケンス番号として含むパケットを第1保持部40に保持させる。そして、欠落番号と同一の番号をシーケンス番号とするパケットが第2受信部32で受信され、そのパケットが第2受信部32からパケット選択出力部34に出力された場合には、パケット選択出力部34は、第2受信部32から出力されたパケットを取得し、出力する。第2受信部32から出力されたパケットを出力した後、パケット選択出力部34は、第1保持部40に保持したパケットを出力する。
【0028】
一方、第2通信回線14−2においても、そのシーケンス番号を有するパケットが欠落した場合には、パケット選択出力部34は次のような処理を実行する。すなわち、欠落番号より後の番号をシーケンス番号として含むパケットが第2受信部32で受信され、第2受信部32からパケット選択出力部34に出力されたときに、パケット選択出力部34は、第1保持部40に保持されていたパケットを出力する。あるいは、パケット選択出力部34は、欠落番号より後の番号をダミー番号として含むパケットが第2受信部32で受信され、第2受信部32からパケット選択出力部34に出力されたときに、パケット選択出力部34は、第1保持部40に保持されていたパケットを出力する。
【0029】
受信装置12が実行する処理の第1の例について、
図5を参照して説明する。
図5(a)および(b)には、それぞれ第1受信部30および第2受信部32で受信されるパケットおよびダミーパケットの例が概念的に示されている。
図5(c)には、パケット選択出力部34が出力するパケットが概念的に示されている。以下の説明では、シーケンス番号SNを具体的な数値で表すときは、シーケンス番号SNを単にSNと表記する。同様に、ダミー番号Dを具体的な数値で表すときは、ダミー番号Dを単にDと表記する。
【0030】
図5(a)に示されているように、第1受信部30では、SN=0、1、2、4〜8のパケットが順次受信されている。また、第1受信部30では、SN=3のパケットが受信されず欠落している。SN=3のパケットとSN=4のパケットとの間には、1つのダミーパケットが挿入されている。また、SN=5のパケットとSN=6のパケットとの間には、2つのダミーパケットが挿入されており、SN=7のパケットとSN=8のパケットとの間には、3つのダミーパケットが挿入されている。
【0031】
図5(b)に示されているように、第2受信部32では、SN=0、1、2、5〜7のパケットが順次受信されている。また、第2受信部32では、SN=3およびN=4のパケットが受信されず欠落している。第2受信部32では、第1受信部30と同様のダミーパケットが受信されている。ただし、第2受信部32では、第1受信部30に対して、2パケット分程度の時間だけ遅れて各パケットが受信されている。
【0032】
第1受信部30はSN=0〜2のパケットを第2受信部32よりも先に受信する。したがって、
図5(c)に示されているように、パケット選択出力部34は、第1受信部30から順次出力されたSN=0〜2のパケットを順次出力する。一方、パケット選択出力部34は、第2受信部34から順次出力されたSN=0〜2のパケットを破棄する。ここで、パケットを破棄する処理は、パケットを消去する処理の他、パケットに対して何ら処理を実行しないことを含む。
【0033】
第1通信回線14−1および第2通信回線14−2ではSN=3のパケットが欠落しており、第1受信部30および第2受信部32は、SN=3のパケットを受信しない。また、第2通信回線14−2では、SN=3のパケットに続いてSN=4のパケットも欠落しており、第2受信部32はSN=4のパケットを受信しない。
【0034】
すなわち、第1受信部30はSN=2のパケットを受信した後、SN=3のパケットを受信せず、D=3のダミーパケットおよびSN=4のパケットを受信する。パケット選択出力部34は、SN=2のパケットが第1受信部30から出力された後に、D=3のダミーパケットおよびSN=4のパケットが第1受信部30から出力されたことによって、SN=3のパケットが欠落したことを認識し、SN=4のパケットを第1保持部40に保持させる。そして、シーケンス番号SNが3以上のパケット、またはダミー番号Dが3以上のダミーパケットを第2受信部32が受信し出力するまで、SN=4のパケットを第1保持部40に保持させる。
【0035】
第1受信部30でSN=4のパケットが受信された後、第2受信部32ではSN=3のパケットは受信されず、D=3のダミーパケットが受信される。これによって、パケット選択出力部34は第2受信部32においてもSN=3のパケットが欠落したことを認識する。パケット選択出力部34は、第2受信部32からD=3のダミーパケットが出力されると共に、それまでに第1保持部40に保持されていたSN=4および5のパケットを順次出力する。
【0036】
第1受信部30は第2受信部32よりも先に、SN=6〜8のパケットを受信し、パケット選択出力部34に出力する。パケット選択出力部34は、第1受信部30から出力されたSN=6〜8のパケットを順次出力する。一方、パケット選択出力部34は、第2受信部32から出力されたSN=5〜7のパケットを破棄する。
【0037】
このように、本発明の実施形態に係る受信装置12は、第1通信回線14−1および第2通信回線14−2からシーケンス番号を含むパケットをそれぞれ受信する第1受信部30および第2受信部32を備えている。また、パケット選択出力部34、第1保持部40および第2保持部42はパケット取得部44を構成し、第1通信回線14−1および第2通信回線14−2から受信されたパケットのうち、シーケンス番号に従う順序で取得されるパケットであって先に受信されたものを取得する。パケット取得部44は、予め予み読み込まれたプログラムによって動作するプロセッサ等によって構成される。パケット取得部44は、第1通信回線14−1および第2通信回線14−2のうちの一方から受信されたパケットが含むシーケンス番号に欠落があったときに、欠落番号の後のシーケンス番号を含むパケットを保持する保持部(第1保持部40および第2保持部42)を備えている。また、パケット取得部44におけるパケット選択出力部34は、他方の通信回線から受信されたパケットが含むシーケンス番号にも欠落があり、さらに当該他方の通信回線からダミーパケットが受信されたときに、当該ダミーパケットに含まれているダミー番号に基づいて、欠落番号をシーケンス番号として含むパケットの受信が失敗したか否かを判定する判定部36を備えている。また、パケット選択出力部34は、パケットの受信が失敗したとの失敗判定がされたときに、第1保持部40または第2保持部42に保持されているパケットを出力する出力部38を備えている。
【0038】
判定部36は、ダミー番号が欠落番号と同一の番号であるか、または欠落番号よりも後の番号であるときに失敗判定をする。出力部38は、一方の通信回線で受信されたパケットが含むシーケンス番号に欠落があった後において失敗判定がされていないときに、欠落番号をシーケンス番号として含むパケットが他方の通信回線で受信されたときは、他方の通信回線で受信されたパケットを出力し、続いて、第1保持部40または第2保持部42に保持されているパケットを出力する。
【0039】
ダミーパケットを用いることの効果について、ダミーパケットを用いない場合との比較によって説明する。
図6(a)および(b)には、それぞれ、第1受信部30および第2受信部32で受信されるパケットの例が概念的に示されている。
図6(c)には、パケット選択出力部34が出力するパケットが概念的に示されている。
図6(a)および(b)は、それぞれ、
図5(a)および(b)からダミーパケットを取り除いたものに相当する。
【0040】
図6(a)に示されているように、第1受信部30では、SN=0、1、2、4〜8のパケットが順次受信されている。また、第1受信部30では、SN=3のパケットが受信されず欠落している。
図6(b)に示されているように、第2受信部32では、SN=0、1、2、5〜7のパケットが順次受信されている。また、第2受信部32では、SN=3およびN=4のパケットが受信できず欠落している。第2受信部32では、第1受信部30に対して、2パケット分程度の時間だけ遅れて各パケットが受信されている。
【0041】
SN=0〜3のパケットに対する処理は、
図5を参照して説明した処理と同様である。 第1通信回線14−1および第2通信回線14−2ではSN=3のパケットが欠落しており、第1受信部30および第2受信部32は、SN=3のパケットを受信しない。また、第2通信回線14−2では、SN=3のパケットに続いてSN=4のパケットも欠落しており、第2受信部32はSN=4のパケットを受信しない。
【0042】
すなわち、第1受信部30は、SN=2のパケットを受信した後、SN=3のパケットを受信せず、SN=4のパケットを受信する。パケット選択出力部34は、SN=2のパケットが第1受信部30から出力された後に、SN=4のパケットが第1受信部30から出力されたことによって、SN=3のパケットが欠落したことを認識し、SN=4のパケットを第1保持部40に保持させる。そして、シーケンス番号SNが3以上のパケットを第2受信部32が受信し出力するまで、SN=4のパケットを第1保持部40に保持させる。
【0043】
第1受信部30でSN=4のパケットが受信された後、第2受信部32ではSN=3のパケットおよびSN=4のパケットはいずれも受信されない。第2受信部32は、SN=5を受信し、SN=3のパケットおよびSN=4のパケットが受信されなかったことを認識すると、SN=5のパケットを第2保持部42に保持させる。パケット選択出力部34は、第2受信部32からSN=5のパケットが出力されると共に、それまでに第1保持部40に保持されていたSN=4および5のパケットを順次出力する。
【0044】
第1受信部30は、SN=5のパケットを受信した後、SN=6、7、8のパケットを受信し、それぞれをパケット選択出力部34に出力する。第2受信部32は、SN=5のパケットを受信した後、SN=6、7、8のパケットを受信し、それぞれをパケット選択出力部34に出力する。
【0045】
第1受信部30がSN=6のパケットおよびSN=7のパケットを受信した時点では、第1保持部40に保持されていたSN=5のパケットは、パケット選択出力部34から出力されていない。そこで、パケット選択出力部34は、SN=6のパケットおよびSN=7のパケットを第1保持部40に保持させる。そして、パケット選択出力部34が、第1保持部40に保持されていたSN=5のパケットを出力した後に、引き続き、パケット選択出力部34は、第1保持部40に保持されていたSN=6のパケットおよびSN=7のパケットを出力する。
【0046】
SN=8のパケットを受信した時点では、第1保持部40に保持されていたSN=7のパケットは、パケット選択出力部34から出力されている。そこで、パケット選択出力部34は、SN=8のパケットが第1受信部30から出力されると共に、そのパケットを出力する。
【0047】
ダミーパケットが用いられない処理では、パケット選択出力部34がSN=4のパケットを第1保持部40に保持させた後は、第2受信部32がSN=5のパケットを受信し出力したときに、パケット選択出力部34が第1保持部40に保持させたSN=4のパケットを出力する。このように、SN=4のパケットが第1保持部40に保持されてから、第2受信部32がSN=5のパケットを受信し出力するまでの遅延時間t0だけSN=4のパケットの出力が遅延する。
【0048】
一方、ダミーパケットが用いられた
図5に示される処理では、パケット選択出力部34がSN=4のパケットを第1保持部40に保持させた後、第2受信部32がD=3のダミーパケットを受信し出力したときに、パケット選択出力部34がSN=4のパケットを出力する。遅延時間tDは、パケット選択出力部34がSN=4のパケットを第1保持部40に保持させてから、第2受信部32がD=3のダミーパケットを受信し出力するまでの時間である。この遅延時間tDは、先の遅延時間t0よりも短い。
【0049】
このようにパケットが欠落しても、欠落したパケットのシーケンス番号と同一のダミー番号を含むダミーパケットによって、欠落したパケットのシーケンス番号がパケット選択出力部34に認識される。したがって、各通信回線で欠落したパケットにダミーパケットが続く場合には、第1通信回線14−1で欠落したパケットが第2通信回線14−2においても欠落したとの失敗判定が、ダミーパケットが用いられない場合よりも早期に行われる。これによって、欠落したパケットに続くパケットの遅延時間が短縮される。
【0050】
受信装置12が実行する処理の第2の例について、
図7を参照して説明する。
図7(a)および(b)には、それぞれ、第1受信部30および第2受信部32で受信されるパケットおよびダミーパケットの例が概念的に示されている。
図7(c)には、パケット選択出力部34が出力するパケットが概念的に示されている。
【0051】
図7(a)に示されているように、第1受信部30では、SN=0、1、2、4、5のパケットが順次受信されている。また、第1受信部30では、SN=3のパケットが受信されず、欠落している。SN=3のパケットとSN=4のパケットとの間には、1つのダミーパケットが挿入されている。また、SN=4のパケットとSN=5のパケットとの間には、7つのダミーパケットが挿入されている。
【0052】
図7(b)に示されているように、第2受信部32では、SN=0、1、2のパケットが順次受信されている。また、第2受信部32では、SN=3およびSN=4のパケットが受信できず欠落している。第2受信部32では、第1受信部30と同様のダミーパケットが受信されている。ただし、第2受信部32では、第1受信部30に対して、2パケット分程度の時間だけ遅れて各パケットが受信されている。
【0053】
SN=0〜4のパケットに対する処理は、
図5を参照して説明した処理と同様である。第1受信部30はSN=4のパケットを受信し、D=4のダミーパケットを7回に亘って受信した後、SN=5のパケットを受信し、パケット選択出力部34に出力する。SN=5のパケットは第2受信部32で受信されていないため、パケット選択出力部34は、第1受信部30から出力されたSN=5のパケットを出力する。
【0054】
ダミーパケットを用いることの効果について、ダミーパケットを用いない場合との比較によって説明する。
図8(a)および(b)には、それぞれ、第1受信部30および第2受信部32で受信されるパケットの例が概念的に示されている。
図8(c)には、パケット選択出力部34が出力するパケットが概念的に示されている。
図8(a)および(b)は、それぞれ、
図7(a)および(b)からダミーパケットを取り除いたものに相当する。
【0055】
SN=0〜3のパケットに対する処理は、
図5を参照して説明した処理と同様である。 第1通信回線14−1および第2通信回線14−2ではSN=3のパケットが欠落しており、第1受信部30および第2受信部32は、SN=3のパケットを受信しない。また、第2通信回線14−2では、SN=3のパケットに続いてSN=4のパケットも欠落しており、第2受信部32はSN=4のパケットを受信しない。すなわち、第1受信部30は、SN=2のパケットを受信した後、SN=3のパケットを受信せず、SN=4のパケットを受信する。パケット選択出力部34は、SN=2のパケットが第1受信部30から出力された後に、SN=4のパケットが第1受信部30から出力されたことによって、SN=3のパケットが欠落したことを認識し、SN=4のパケットを第1保持部40に保持させる。そして、シーケンス番号SNが3以上のパケットを第2受信部32が受信し出力するまで、あるいは、後述の最長待ち時間が経過するまで、SN=4のパケットを第1保持部40に保持させる。
【0056】
第1受信部30でSN=4のパケットが受信された後、第2受信部32ではSN=3のパケットおよびSN=4のパケットはいずれも受信されない。第1受信部30でSN=5のパケットが受信されるのは、最長待ち時間が経過した後である。ここで、最長待ち時間とは、第1受信部30および第2受信部32のうち一方で受信されなかった欠落パケットがあったときに、第1受信部30および第2受信部32のうち他方によって、その欠落したパケットが受信されることを待機する時間をいう。
【0057】
パケット選択出力部34は、SN=4のパケットを第1保持部40に保持した後の時間が最長待ち時間に達するまでの間に、第2受信部32からシーケンス番号が3以上のパケットが第2受信部32から出力されないことを認識すると、SN=4のパケットを出力する。
【0058】
その後、第1受信部30は、SN=5のパケットを受信し、パケット選択出力部34に出力する。SN=5のパケットは、第2受信部32で受信されていないため、パケット選択出力部34は、第1受信部30から出力されたSN=5のパケットを出力する。
【0059】
ダミーパケットが用いられない処理では、パケット選択出力部34がSN=4のパケットを第1保持部40に保持させた後は、パケット選択出力部34は最長待ち時間が経過したときにSN=4のパケットを出力する。これによって、SN=4のパケットが第1保持部40に保持されてから最長待ち時間が経過するまでの遅延時間t1だけ、シーケンス番号がN=4のパケットの出力が遅延する。
【0060】
一方、ダミーパケットが用いられた
図7に示される処理では、パケット選択出力部34がSN=4のパケットを第1保持部40に保持させた後、第2受信部32がD=3のダミーパケットを受信し出力したときにSN=4のパケットがパケット選択出力部34から出力される。遅延時間tDは、パケット選択出力部34がSN=4のパケットを第1保持部40に保持させてから、第2受信部32がD=3のダミーパケットを受信し出力するまでの時間である。この遅延時間tDは、先の遅延時間t0よりも短い。
【0061】
このようにパケットが欠落しても、欠落したパケットのシーケンス番号と同一のダミー番号を含むダミーパケットによって、欠落したパケットのシーケンス番号がパケット選択出力部34に認識される。したがって、両方の通信回線で欠落したパケットにダミーパケットが続く場合には、第1通信回線14−1で欠落したパケットが第2通信回線14−2においても欠落したとの失敗判定が、ダミーパケットが用いられない場合よりも早期に行われる。これによって、欠落したパケットに続くパケットの遅延時間が短縮される。
【0062】
図9には、パケット選択出力部34が実行するパケット選択処理のフローチャートが示されている。この処理はパケットに対して実行されるものであり、ダミーパケットに対して実行される処理については後述する。
図9に示される処理は、パケット選択出力部34が、予め読み込まれたプログラムに従って実行する。後述する
図10〜
図12の処理についても同様である。
【0063】
図9に示されるフローチャートでは、第1受信部30を自系受信部とみなしたときは、第1保持部40が自系保持部、第2受信部32が他系受信部となり、さらに、第2保持部42が他系保持部となる。一方、第2受信部32を自系受信部とみなしたときは、第2保持部42が自系保持部、第1受信部30が他系受信部となり、さらに、第1保持部40が他系保持部となる。
【0064】
パケット選択出力部34は、自系受信部が受信し出力したパケットから、シーケンス番号SNを読み込み(S101)、そのシーケンス番号SNが、現時点の処理でパケット選択出力部34による出力が期待されるパケットのシーケンス番号SN_TX+1に一致するか否かを判定する(S102)。ここで、SN_TXは、パケット選択出力部34が最後に出力したパケットのシーケンス番号(以下、出力済みシーケンス番号SN_TXという。)である。パケット選択処理部34は、シーケンス番号SNがSN_TX+1に一致するときは、自系受信部で受信されたパケットを出力し(S103)、出力済みシーケンス番号SN_TXを、その出力した受信パケットのシーケンス番号SNに設定する(S104)。
【0065】
パケット選択出力部34は、シーケンス番号SNが、SN_TX+1よりも小さいときは、自系受信部で受信されたパケット(受信パケット)を破棄する(S106)。一方、シーケンス番号SNが、SN_TX+1よりも大きいときは、パケット選択出力部34は、自系保持部にパケットが保持されているか否かを判定する(S107)。パケット選択出力部34は、自系保持部にパケットが保持されているときは、受信パケットを最新の自系待機パケットとして自系保持部に保持し(S110)、後述する第1処理を実行する(SA)。一方、自系保持部にパケットが保持されていないときは、パケット選択処理部34は、他系保持部にパケットが保持されているか否かを判定する(S108)。パケット選択出力部34は、他系保持部にパケットが保持されているときは、後述する第2処理を実行し(SB)、他系保持部にパケットが保持されていないときは、自系受信部で受信されたパケットを自系保持部に保持させる(S109)。
【0066】
ステップS103およびS104は、自系受信部で受信されたパケットのシーケンス番号に飛びがない場合の処理である。パケット選択出力部34は、自系受信部で受信されたパケットをそのまま出力する。
【0067】
ステップS106は、自系受信部で受信されたパケットのシーケンス番号に飛びがあったものの、そのシーケンス番号を有するパケットが既にパケット選択出力部34から出力されている場合の処理である。この場合、パケット選択出力部34は受信パケットを破棄する。
【0068】
ステップS109は、自系保持部で受信されたパケットのシーケンス番号に飛びがあり、かつ、自系保持部および他系保持部のいずれにもパケットが保持されていない場合の処理である。この場合、欠落したパケットが他系受信部で受信される可能性があるため、パケット選択保持部34は、受信パケットを自系保持部に保持し、欠落したパケットが他系受信部で受信されるのを待機する。
【0069】
後述する第1処理(SA)は、自系保持部で受信されたパケットのシーケンス番号に飛びがあり、さらに、自系保持部にパケットが保持されている場合の処理である。第1処理は、自系保持部に保持されているパケットのうち最古のものに対して実行される処理である。第1処理には、他系保持部にパケットが保持されている場合と、他系保持部にパケットが保持されていない場合とがある。
【0070】
また、後述する第2処理(SB)は、自系保持部で受信されたパケットのシーケンス番号に飛びがあり、自系保持部にパケットが保持されていないものの、他系保持部にパケットが保持されている場合の処理である。第2処理は、最新の受信パケットに対して実行される処理である。
【0071】
図10には、第1処理のフローチャートが示されている。パケット選択出力部34は、自系保持部に最古のパケットが保持されてから最長待ち時間が経過したか否かを判定する(SA101)。パケット選択出力部34は、最長待ち時間が経過しているときは、自系保持部に保持されている最古のパケット(最古の自系待機パケット)を出力し(SA111)、出力済みシーケンス番号SN_TXを、最古自系待機パケット番号BSに設定する(SA112)。ここで、最古自系待機パケット番号BSとは、自系保持部に保持されているパケットのうち、最も古いパケットのシーケンス番号をいう。一方、最長待ち時間が経過していないときは、パケット選択出力部34は、最古自系待機パケット番号BSが最古他系待機パケット番号BO以下であるか否かを判定する(SA102)。ここで、最古他系待機パケット番号BOとは、他系保持部に保持されているパケット(他系待機パケット)のうち、最も古いパケットのシーケンス番号をいう。パケット選択出力部34は、最古自系待機パケット番号BSが最古他系待機パケット番号BO以下であるときは、最古の自系待機パケットを出力し(SA103)、出力済みシーケンス番号SN_TXを、最古自系待機パケット番号BSに設定する(SA104)。なお、パケット選択出力部34は、他系保持部にパケットが保持されていないときは、ステップSA102の判定において、最古自系待機パケット番号BSが最古他系待機パケット番号BOを超えるとの判定をする。
【0072】
一方、最古自系待機パケット番号BSが最古他系待機パケット番号BOを超えるときは、パケット選択出力部34は、最古自系待機パケット番号BSが他系ダミー番号最新値DO以下であるか否かを判定する(SA105)。ここで、他系ダミー番号最新値DOとは、他系受信部で受信された最新のダミーパケットに含まれていたダミー番号をいう。パケット選択出力部34は、最古自系待機パケット番号BSが他系ダミー番号最新値DO以下であるときは、最古の自系待機パケットを出力し(SA106)、出力済みシーケンス番号SN_TXを、最古自系待機パケット番号BSに設定する(SA107)。一方、最古自系待機パケット番号BSが他系ダミー番号最新値DOを超えるときは、他系保持部にパケットが保持されているか否かを判定する(SA108)。パケット選択出力部34は、他系保持部にパケットが保持されているときは最古の他系待機パケットを出力し(SA109)、出力済みシーケンス番号SN_TXを、最古他系待機パケットBOに設定する(SA110)。
【0073】
第1処理の技術的意義について説明する。自系受信部で受信されたパケットのシーケンス番号に飛びがあった場合、欠落したパケットが他系受信部でも受信されない場合がある。そこで、ステップSA111およびSA112の処理では、最古の自系待機パケットが自系保持部に保持されてから最長待ち時間が経過したときに、パケット選択出力部34が最古の自系待機パケットを強制的に出力する。
【0074】
自系受信部で受信されたパケットのシーケンス番号に飛びがあった場合において、受信パケットのシーケンス番号SNが他系待機パケットのうちの最も古いパケットのシーケンス番号BO以下である場合、自系受信部で欠落したパケットは、他系受信部で受信される見込みはない。受信パケットのシーケンス番号SNが、他系受信部で受信された最新のダミーパケットに含まれていたダミー番号DO以下である場合も同様である。そこで、ステップSA103およびSA104、ならびに、ステップSA106およびSA107に示されているように、パケット選択出力部34は、最古の自系待機パケットを出力する。
【0075】
自系受信部で受信されたパケットのシーケンス番号に飛びがあった場合において、最古自系待機パケット番号BSが最古他系待機パケット番号BOよりも大きく、かつ、他系ダミー番号最新値DOよりも大きい場合には、欠落したパケットが他系受信部で受信される可能性がある。そのため、最古の自系待機パケットは自系保持部に保持したままとし、欠落したパケットが他系受信部で受信されるのを待機する。さらに、他系保持部がパケットを保持している場合には、他系側で欠落したパケットは自系側においても欠落している。そのため、ステップSA108〜SA110に示されているように、パケット選択出力部34は最古の他系待機パケットを出力する。
【0076】
図11には、第2処理のフローチャートが示されている。パケット選択出力部34は、シーケンス番号SNが、最古他系待機パケット番号BO以下であるか否かを判定する(SB101)。パケット選択出力部34は、シーケンス番号SNが最古他系待機パケット番号BO以下であるときは、受信パケットを出力し(SB102)、出力済みシーケンス番号SN_TXを、その出力した受信パケットのシーケンス番号SNに設定する(SB103)。
【0077】
一方、シーケンス番号SNが最古他系待機パケット番号BOを超えるときは、パケット選択出力部34は、シーケンス番号SNが他系ダミー番号最新値DO以下であるか否かを判定する(SB104)。パケット選択出力部34は、シーケンス番号SNが他系ダミー番号最新値DO以下であるときは、受信パケットを出力し(SB105)、出力済みシーケンス番号SN_TXを、その出力した受信パケットのシーケンス番号SNに設定する(SB106)。一方、シーケンス番号SNが他系ダミー番号最新値DOを超えるときは、自系受信部で受信されたパケットを、自系待機パケットとして自系保持部に保持させる(SB107)。パケット選択出力部34は最古の他系待機パケットを出力し(SB108)、出力済みシーケンス番号SN_TXを、その出力した最古他系待機パケット番号BOに設定する(SB109)。
【0078】
第2処理の技術的意義について説明する。自系受信部で受信されたパケットのシーケンス番号に飛びがあった場合において、受信パケットのシーケンス番号SNが他系待機パケットのうちの最も古いパケットのシーケンス番号BO以下である場合、自系受信部で欠落したパケットが他系受信部で受信される見込みはない。受信パケットのシーケンス番号SNが、他系受信部で受信された最新のダミーパケットに含まれていたダミー番号DO以下である場合も同様である。そこで、ステップSB102およびSB103、ならびに、ステップSB105およびSB106に示されているように、パケット選択出力部34は受信パケットを出力する。
【0079】
自系受信部で受信されたパケットのシーケンス番号に飛びがあった場合において、受信パケットのシーケンス番号SNが最古他系待機パケット番号BOよりも大きく、かつ、他系ダミー番号最新値DOよりも大きい場合には、欠落したパケットが他系受信部で受信される可能性がある。そのため、ステップSB107で示されているように、パケット選択保持部34は、受信パケットを最新の自系待機パケットとして自系保持部に保持し、欠落したパケットが他系受信部で受信されるのを待機する。さらに、他系側において欠落したパケットは、自系側においても欠落している。そのため、ステップSB107〜SB109に示されているように、パケット選択出力部34は最古の他系待機パケットを出力する。
【0080】
第1処理のステップSA105〜SA107では、最古自系待機パケット番号BSが他系ダミー番号最新値DO以下であるときに、最古の自系待機パケットが出力される。この処理は、他系受信部でダミーパケットが受信されたことによって、最古の自系待機パケットが他系受信部で受信される見込みがないことを、パケット選択処理部34が早期に認識する処理に相当する。
【0081】
第2処理のステップSB104〜SB106では、シーケンス番号SNが他系ダミー番号最新値DO以下であるときに、自系受信部で受信されたパケットが出力される。この処理は、他系受信部でダミーパケットが受信されたことによって、自系受信部で欠落したパケットが他系受信部で受信される見込みがないことを、パケット選択処理部34が早期に認識する処理に相当する。
【0082】
なお、第1処理および第2処理をダミーパケットが用いられない処理とする場合には、第1処理については、ステップSA105〜SA107をスキップしてステップSA108に進む処理とすればよい。また、第2処理については、ステップSB104〜SB106をスキップしてステップSB107に進む処理とすればよい。
【0083】
図12には、ダミーパケット受信処理のフローチャートが示されている。この処理は、パケット選択処理部34が、ダミーパケットに対して実行する処理である。パケット選択出力部34は、自系受信部が受信し出力したダミーパケットから、ダミー番号Dを読み込み(SC101)、自系ダミー番号最新値DSをダミーパケットから読み込まれたダミー番号Dに設定する(SC102)。ここで、自系ダミー番号最新値DSとは、自系受信部で受信された最新のダミーパケットに含まれていたダミー番号をいう。自系ダミー番号最新値DSは、他系側において他系ダミー番号最新値DOとして処理が実行される。パケット選択出力部34はダミーパケットを破棄する(SC103)。さらに、パケット選択出力部34は、ダミー番号Dが、現時点の処理でパケット選択出力部34による出力が期待されるパケットのシーケンス番号SN_TX+1以下であるか否かを判定する(SC104)。パケット選択出力部34は、ダミー番号Dが、SN_TX+1以下であるときはダミーパケット受信処理を終了する。一方、ダミー番号DがSN_TX+1を超えるときは、パケット選択出力部34は、他系保持部にパケットが保持されているか否かを判定する(SC105)。パケット選択出力部34は、他系保持部にパケットが保持されていないときは処理を終了する。一方、他系保持部にパケットが保持されているときは、パケット選択出力部34は、ダミー番号Dが最古他系待機パケット番号BO以上であるか否かを判定する(SC106)。パケット選択出力部34は、ダミー番号Dが最古他系待機パケット番号BO未満であるときは処理を終了する。一方、ダミー番号Dが最古他系待機パケット番号BO以上であるときは、パケット選択出力部34は最古の他系待機パケットを出力し(SC107)、出力済みシーケンス番号SN_TXを最古他系待機パケット番号BOに設定する(SC108)。
【0084】
このようなダミーパケット受信処理によれば、ステップSC104の判定において、ダミー番号がSN_TX+1よりも大きい場合、すなわち、自系受信部において受信パケットの欠落があった場合にステップSC105〜SC108が実行される。これは、他系保持部にパケットが保持されており、自系受信部で受信された最新のダミーパケットに含まれていたダミー番号Dが、他系保持部に保持されている最古のパケットのシーケンス番号以上であるときに、パケット選択出力部34が、最古の他系待機パケットを出力するものである。これによって、ダミーパケットが用いられない場合に比べて最古の他系待機パケットが早期に出力される。