説明

送信装置、受信装置、通信装置及び通信方法

【課題】パケットロスが発生しても、後続のパケットを遅延なく伝送することができるようする。
【解決手段】受信装置2との間で複数のTCPコネクションを確立するコネクション確立部13と、送信対象のデータを複数のパケットに分割し、複数のパケットをコネクション確立部13により確立された別々のTCPコネクションに振り分ける振り分け部14とを設け、パケット送信部15がコネクション確立部13により確立された複数のTCPコネクションを用いて、振り分け部14により振り分けられた複数のパケットを受信装置2に送信する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、TCPコネクションを用いて、データ通信を行う送信装置、受信装置、通信装置及び通信方法に関するものである。
【背景技術】
【0002】
IP(インターネットプロトコル)を使用して、データを伝送する場合、一般的に、リアルタイム性が要求される通信システムではUDP(User Datagram Protocol)が使用され、リアルタイム性が要求されない通信システムではTCP(Transmisson Control Protocol)が使用されることが多い。
TCPは、再送制御やフロー制御の実施によって、確実なデータ転送を保障するが、再送制御による遅延やフロー制御によるスループットの制限が発生してしまうためリアルタイム通信には向かない特徴がある。
【0003】
しかしながら、TCPしかサポートしていないネットワークや通信装置を使用する場合において、複数のTCPコネクションを使用して、フロー制御によるスループット制限を回避すれば、リアルタイム通信を行うことができることが知られている(例えば、特許文献1を参照)。
ただし、本当の意味でのリアルタイム通信を実現するには、スループットだけでなく、伝送遅延を考慮する必要がある。
【0004】
即ち、送信装置から送信されたパケットにロスが発生した場合、TCPでは、そのロスしたパケットが再送される。
受信装置のアプリケーションでは、送信装置から再送されたロスパケットが正常に受信できるまで、そのロスパケット以降のパケットを受信することができない。
これはTCPの順序制御機能の作用であり、本来のパケットの順序を維持するために、ロスパケットが受信側のTCPレイヤに届くまで、たとえ後続のパケットを受信しても、それらのパケットをアプリケーションに通知しないようにしている。
つまり、パケットのロスが発生すると、ロスパケットだけでなく、他のパケットの受信タイミングも遅れてしまってリアルタイム性を損なうことになる。
【0005】
【特許文献1】特開平08−305643号公報(段落番号[0042]から[0044]、図1)
【発明の開示】
【発明が解決しようとする課題】
【0006】
従来の通信システムは以上のように構成されているので、TCPのスループット制限を回避することができても、パケットロスが発生すると、パケットロスの再送に伴う伝送遅延を回避することができず、リアルタイム通信を実現することができないなどの課題があった。
【0007】
この発明は上記のような課題を解決するためになされたもので、パケットロスが発生しても、後続のパケットを遅延なく伝送することができるようにして、伝送時間を短くすることができる送信装置、受信装置、通信装置及び通信方法を得ることを目的とする。
【課題を解決するための手段】
【0008】
この発明に係る送信装置は、受信装置との間で複数のTCPコネクションを確立するコネクション確立手段と、送信対象のデータを複数のパケットに分割し、複数のパケットをコネクション確立手段により確立された別々のTCPコネクションに振り分けるパケット振分手段とを設け、パケット送信手段がコネクション確立手段により確立された複数のTCPコネクションを用いて、パケット振分手段により振り分けられた複数のパケットを受信装置に送信するようにしたものである。
【発明の効果】
【0009】
この発明によれば、受信装置との間で複数のTCPコネクションを確立するコネクション確立手段と、送信対象のデータを複数のパケットに分割し、複数のパケットをコネクション確立手段により確立された別々のTCPコネクションに振り分けるパケット振分手段とを設け、パケット送信手段がコネクション確立手段により確立された複数のTCPコネクションを用いて、パケット振分手段により振り分けられた複数のパケットを受信装置に送信するように構成したので、あるTCPコネクションに振り分けられたパケットがロスしても、他のTCPコネクションに振り分けられたパケットについては、受信装置が遅延なく受信することができるようになり、その結果、データの再送はロスパケットの再送のみで足りるため、データの伝送時間を短くすることができる効果がある。
【発明を実施するための最良の形態】
【0010】
実施の形態1.
図1はこの発明の実施の形態1による通信システムを示す構成図であり、図において、送信装置1はデータを送信する装置であり、受信装置2は送信装置1から送信されたデータをネットワーク3経由で受信する装置である。
ネットワーク3としては、例えば、インターネットやLANなどが考えられる。図1では、送信装置1と受信装置2がネットワーク3経由でデータを伝送する例を示しているが、送信装置1と受信装置2を直接接続し、ネットワーク3を介さずにデータを伝送するようにしてもよい。
【0011】
図2はこの発明の実施の形態1による送信装置を示す構成図であり、図において、符号化装置11は送信対象の符号化されているデータを送信装置1に与える処理を実施する。
コネクション管理部12はコネクション確立部13とパケット送信部15から構成されており、受信装置2との間で確立しているTCPコネクションを管理し、TCPコネクションの確立や解放などを制御する。
コネクション確立部13は受信装置2のコネクション確立部22(図3を参照)との間で、複数のTCPコネクションを確立する処理を実施する。なお、コネクション確立部13はコネクション確立手段を構成している。
【0012】
振り分け部14は符号化装置11から送信対象のデータを与えられると、そのデータを複数のパケットに分割し、複数のパケットをコネクション確立部13により確立された別々のTCPコネクションに振り分ける処理を実施する。なお、振り分け部14はパケット振分手段を構成している。
パケット送信部15はコネクション確立部13により確立された複数のTCPコネクションを用いて、振り分け部14により振り分けられた複数のパケットを受信装置2に送信する処理を実施する。なお、パケット送信部15はパケット送信手段を構成している。
【0013】
図3はこの発明の実施の形態1による受信装置を示す構成図であり、図において、コネクション管理部21はコネクション確立部22とパケット受信部23から構成されており、送信装置1との間で確立しているTCPコネクションを管理し、TCPコネクションの確立や解放などを制御する。
コネクション確立部22は送信装置1のコネクション確立部13との間で、複数のTCPコネクションを確立する処理を実施する。なお、コネクション確立部22はコネクション確立手段を構成している。
パケット受信部23はコネクション確立部22により確立された複数のTCPコネクションを用いて、送信装置1から送信された複数のパケットを受信する処理を実施する。なお、パケット受信部23はパケット受信手段を構成している。
【0014】
パケット合成部24はパケット受信部23により受信された複数のパケットを合成して、送信対象のデータを構築する処理を実施する。なお、パケット合成部24はパケット合成手段を構成している。
復号装置25は受信装置2から出力されたデータを復号する処理を実施する。
【0015】
図2では、送信装置1の構成要素であるコネクション確立部13、振り分け部14及びパケット送信部15がそれぞれ専用のハードウェア(例えば、MPUを実装している半導体集積回路基板)で構成されているものを想定しているが、送信装置1がコンピュータで構成される場合、コネクション確立部13、振り分け部14及びパケット送信部15の処理内容を記述しているプログラムをコンピュータのメモリに格納し、当該コンピュータのCPUが当該メモリに格納されているプログラムを実行するようにしてもよい。
また、図3では、受信装置2の構成要素であるコネクション確立部22、パケット受信部23及びパケット合成部24がそれぞれ専用のハードウェア(例えば、MPUを実装している半導体集積回路基板)で構成されているものを想定しているが、受信装置2がコンピュータで構成される場合、コネクション確立部22、パケット受信部23及びパケット合成部24の処理内容を記述しているプログラムをコンピュータのメモリに格納し、当該コンピュータのCPUが当該メモリに格納されているプログラムを実行するようにしてもよい。
図4はこの発明の実施の形態1による通信方法を示すフローチャートである。
【0016】
次に動作について説明する。
符号化装置11は、送信対象のデータを符号化し、符号化後のデータ(例えば、データ列、ストリームデータ)をリアルタイムに送信装置1に出力する。
送信装置1が符号化装置11から与えられたデータをリアルタイムに受信装置2に伝送する場合、送信装置1のコネクション確立部13と受信装置2のコネクション確立部22との間で、所定のネゴシエーションを実施することにより、N個(N>1)のTCPコネクションを確立する(ステップST1)。
図5は送信装置1と受信装置2の間で確立されたTCPコネクションを示す説明図であり、図5では、4つのTCPコネクションC1,C2,C3,C4を確立している例を示している。
なお、コネクション確立部13とコネクション確立部22におけるTCPコネクションの確立処理自体は、公知の技術であるため詳細な説明を省略する。
【0017】
送信装置1の振り分け部14は、符号化装置11から送信対象のデータを与えられると、そのデータを複数のパケットに分割する(ステップST2)。
この実施の形態1では、説明の便宜上、送信対象のデータを4つのパケットP1,P2,P3,P4に分割する例を説明するが、データの分割数は、確立されているTCPコネクションの数と一致している必要はなく、データの分割数がTCPコネクションの数を超えなければいくつでもよい。
【0018】
振り分け部14は、データを4つのパケットP1,P2,P3,P4に分割すると、4つのパケットP1,P2,P3,P4をTCPコネクションC1,C2,C3,C4に振り分ける処理を実施する(ステップST3)。
即ち、振り分け部14は、例えば、パケットP1をTCPコネクションC1、パケットP2をTCPコネクションC2、パケットP3をTCPコネクションC3、パケットP4をTCPコネクションC4に振り分ける処理を実施する。
この例では、4つのパケットP1,P2,P3,P4をポート番号が小さいTCPコネクションから順番に振り分けている。
【0019】
送信装置1のパケット送信部15は、振り分け部14が4つのパケットP1,P2,P3,P4をTCPコネクションC1,C2,C3,C4に振り分けると、4つのTCPコネクションC1,C2,C3,C4を用いて、4つのパケットP1,P2,P3,P4を受信装置2に送信する(ステップST4)。
【0020】
受信装置2のパケット受信部23は、コネクション確立部22により確立されたTCPコネクションC1,C2,C3,C4を用いて、送信装置1から送信された4つのパケットP1,P2,P3,P4を受信する(ステップST5)。
受信装置2のパケット合成部24は、パケット受信部23が4つのパケットP1,P2,P3,P4を受信すると、ポート番号が小さいTCPコネクションに振り分けられているパケットほど先に配列して合成し、即ち、パケットP1,P2,P3,P4の順番で配列して合成して、送信対象のデータ(符号化装置11により符号化されたデータ)を構築する(ステップST6)。
復号装置25は、パケット合成部24からデータを受けると、そのデータを復号する。
【0021】
以上で明らかなように、この実施の形態1によれば、受信装置2との間で複数のTCPコネクションを確立するコネクション確立部13と、送信対象のデータを複数のパケットに分割し、複数のパケットをコネクション確立部13により確立された別々のTCPコネクションに振り分ける振り分け部14とを設け、パケット送信部15がコネクション確立部13により確立された複数のTCPコネクションを用いて、振り分け部14により振り分けられた複数のパケットを受信装置2に送信するように構成したので、あるTCPコネクションに振り分けられたパケットがロスしても、他のTCPコネクションに振り分けられたパケットについては、受信装置2が遅延なく受信することができるようになり、その結果、データの再送はロスパケットの再送のみで足りるため、データの伝送時間を短くすることができる効果を奏する。
【0022】
以下、この実施の形態1による効果を具体的に説明する。
TCPでデータを構成しているパケットを伝送する場合、あるパケットのロスが発生する度に、TCPの再送制御やフロー制御の機能が作用することにより、ロスパケットを再送するので、ロスパケット以降のパケットの転送が一時的に滞る可能性がある。
その後、ロスパケットが再送されて受信装置2がロスパケットを正常に受信すると、ロスパケット以降のパケットの送信が再開されるが、ロスパケット以降のパケットの転送が一時的に滞るため、受信装置2に対するデータ伝送に遅延が生じる。
特に、バースト的にパケットロスが発生する場合には、TCPのフロー制御によって、自らスループットを絞り込むため、さらに、大きな遅延が発生する。
【0023】
そこで、この実施の形態1では、複数のパケットを別々のTCPコネクションで送信するようにしている。
これにより、あるパケットのロスが発生しても、他のパケットは影響なく受信装置2に伝送され、送信装置1からロスパケットを再送されて、受信装置2がロスパケットを正常に受信した時点でデータ転送が完了するため、1つのTCPコネクションを利用して、全てのパケットを伝送する場合よりも、データ転送にかかる時間が短くなる。
バースト的なパケットロスが発生しても、複数のTCPコネクションで分散して送信しているため、各TCPコネクションでは1パケットロスにとどまり、フロー制御によるスループットの落ち込みを避けることができる。
【0024】
実施の形態2.
上記実施の形態1では、振り分け部14が、分割したパケットをコネクション確立部13により確立された別々のTCPコネクションに振り分けるものについて示したが(1つのTCPコネクションには、1つのパケットだけを割り振る)、分割したパケットの数が、コネクション確立部13により確立されたTCPコネクションの数より多くなると、一部のパケットについては、同じTCPコネクションに振り分ける必要がある(1つのTCPコネクションに複数のパケットを割り振る必要がある)。
そこで、この実施の形態2では、振り分け部14は、分割したパケットの数が、コネクション確立部13により確立されたTCPコネクションの数より多くなると、分割したパケットをパケット送信部15による前回のパケット送信時刻が古いTCPコネクションから順番に振り分けるようにする。
【0025】
図6は振り分け部14が分割したパケットの数が、コネクション確立部13により確立されたTCPコネクションの数より多い場合の動作例を示す説明図である。
図6の例では、コネクション確立部13により4つのTCPコネクションC1,C2,C3,C4が確立され、振り分け部14により分割されたパケットの数が8個であるものを示している。
【0026】
この場合、振り分け部14は、符号化装置11から送信対象のデータを受けると、そのデータを8つのパケットP1,P2,P3,・・・,P8に分割する。
振り分け部14は、8つのパケットに分割すると、先頭の4つのパケットP1,P2,P3,P4を4つのTCPコネクションC1,C2,C3,C4に順番に振り分ける処理を実施する。
即ち、振り分け部14は、パケットP1をTCPコネクションC1、パケットP2をTCPコネクションC2、パケットP3をTCPコネクションC3、パケットP4をTCPコネクションC4に振り分ける処理を実施する。
【0027】
パケット送信部15は、振り分け部14が4つのパケットP1,P2,P3,P4をTCPコネクションC1,C2,C3,C4に振り分けると、図6に示すように、4つのTCPコネクションC1,C2,C3,C4を用いて、4つのパケットP1,P2,P3,P4を順番に受信装置2に送信する。
【0028】
振り分け部14は、パケット送信部15が4つのパケットP1,P2,P3,P4を受信装置2に送信すると、パケットP5,P6,P7,P8をパケット送信部15による前回のパケット送信時刻が古いTCPコネクションから順番に振り分けるようにする。
即ち、振り分け部14は、パケットP5をTCPコネクションC1、パケットP6をTCPコネクションC2、パケットP7をTCPコネクションC3、パケットP8をTCPコネクションC4に振り分ける処理を実施する。
【0029】
パケット送信部15は、振り分け部14が4つのパケットP5,P6,P7,P8をTCPコネクションC1,C2,C3,C4に振り分けると、図6に示すように、4つのTCPコネクションC1,C2,C3,C4を用いて、4つのパケットP5,P6,P7,P8を順番に受信装置2に送信する。
【0030】
以上で明らかなように、この実施の形態2によれば、分割したパケットの数がコネクション確立部13により確立されたTCPコネクションの数より多い場合、分割したパケットをパケット送信部15による前回のパケット送信時刻が古いTCPコネクションから順番に振り分けるように構成したので、分割したパケットの数がコネクション確立部13により確立されたTCPコネクションの数より多い場合でも、上記実施の形態1と同様に、あるTCPコネクションに振り分けられたパケットがロスする状況が発生しても、データの伝送時間を短くすることができる効果を奏する。
また、各TCPコネクション(例えば、TCPコネクションC1)に着目すると、パケットの送信間隔が空いて、連続的な送信とならないため、バーストパケットロスの影響を受ける可能性が低くなる効果も奏する。
【0031】
実施の形態3.
上記実施の形態2では、振り分け部14がパケットP5,P6,P7,P8をパケット送信部15による前回のパケット送信時刻が古いTCPコネクションから順番に振り分けるものについて示したが、振り分け部14がパケットP5,P6,P7,P8をパケット送信部15により前回送信されたパケットP1,P2,P3,P4に対するACK信号(送達確認)を既に受信装置2から受信しているTCPコネクションから順番に振り分けるようにしてもよい。
【0032】
具体的には、以下の通りである。
あるTCPコネクションにおいて、パケットロスが発生したとき、再送が完了していない状態で別のパケットを送信しても、ロスパケットの再送が完了するまでは、受信装置2のアプリケーションには到達しない。
パケットロスが発生しているか否かは、パケット送信部15から送信されたパケットP1,P2,P3,P4に対するACK信号(送達確認)を受信装置2から受信しているか否かで判断することができる。もしくは、使用可能なウィンドウサイズを確認して、デフォルトの最大状態であれば、送達未確認のデータが存在しないことになる。
【0033】
そこで、この実施の形態3では、パケットP5,P6,P7,P8を速やかに受信装置2に送信するため、振り分け部14がパケット送信部15により前回送信されたパケットP1,P2,P3,P4に対するACK信号(送達確認)を既に受信しているか否かを確認し、既にACK信号(送達確認)を受信しているTCPコネクション(パケットロスが発生していないTCPコネクション)を使用して、パケットP5,P6,P7,P8を受信装置2に送信する。
【0034】
実施の形態4.
通常のTCPでは、パケットロスが発生すると、ロスパケットを再送することを前提としているが、ロスパケットの再送を行うと、ロスパケット以外のパケットの送信タイミングが遅れることがある。
そこで、この実施の形態4では、パケットのロスが発生して、受信装置2によりパケットが正常に受信されない場合でも、送信装置1のパケット送信部15がロスパケットの再送を実施しないようにする。
この場合、受信装置2では、送信装置1のパケット送信部15がロスパケットの再送を実施しないようにするため、正常に受信したパケットのシーケンス番号の次の値をACK信号に付与するようにし、パケットロスの発生を送信装置1に通知しないようにする。
これにより、パケットロスが発生しても、ロスパケット以外のパケットの送信タイミングの遅延を防止することができる効果を奏する。
【0035】
実施の形態5.
上記実施の形態1〜4では、振り分け部14がデータを複数のパケットに分割すると、複数のパケットを別々のTCPコネクションに振り分けるものについて示したが、複数のパケットを分割して振り分ける際、複数のパケットの順序を示すシリアル番号を各パケットに付与するようにしてもよい。
【0036】
具体的には、以下の通りである。
図7はシリアル番号が付与されたパケットを示す説明図である。
送信装置1の振り分け部14は、符号化装置11から送信対象のデータを与えられると、そのデータを複数のパケットに分割する。
図7に示すように、例えば、データを3つのパケットに分割する場合、先頭のパケットP1に“1”のシリアル番号、先頭から2番目のパケットP2に“2”のシリアル番号、先頭から3番目のパケットP3に“3”のシリアル番号を付与する。
【0037】
振り分け部14は、データを3つのパケットP1,P2,P3に分割して、3つのパケットP1,P2,P3にシリアル番号を付与すると、3つのパケットP1,P2,P3をTCPコネクションC1,C2,C3に振り分ける処理を実施する。
ただし、この実施の形態5では、3つのパケットP1,P2,P3を異なるTCPコネクションに振り分ければよく、上記実施の形態1のように、3つのパケットP1,P2,P3をポート番号が小さいTCPコネクションから順番に振り分ける必要はない(3つのパケットP1,P2,P3にシリアル番号が付与されており、受信装置2のパケット合成部24は、シリアル番号を確認すれば、3つのパケットP1,P2,P3の順序を知ることができる為)。
【0038】
送信装置1のパケット送信部15は、振り分け部14が3つのパケットP1,P2,P3をTCPコネクションC1,C2,C3に振り分けると、3つのTCPコネクションC1,C2,C3を用いて、3つのパケットP1,P2,P3を受信装置2に送信する。
受信装置2のパケット受信部23は、コネクション確立部22により確立されたTCPコネクションC1,C2,C3を用いて、送信装置1から送信された3つのパケットP1,P2,P3を受信する。
【0039】
受信装置2のパケット合成部24は、パケット受信部23が3つのパケットP1,P2,P3を受信すると、3つのパケットP1,P2,P3に付与されているシリアル番号を確認して、3つのパケットP1,P2,P3の順序を認識する。
パケット合成部24は、3つのパケットP1,P2,P3の順序を認識すると、付与されているシリアル番号を排除してから、先頭のパケットから順番に配列して合成し、送信対象のデータ(符号化装置11により符号化されたデータ)を構築する。
【0040】
以上で明らかなように、この実施の形態5によれば、複数のパケットを分割して振り分ける際、複数のパケットの順序を示すシリアル番号を各パケットに付与するように構成したので、受信装置側では、シリアル番号を確認するだけで複数のパケットの順序を正確に認識することができる効果を奏する。
【0041】
実施の形態6.
上記実施の形態1〜5では、特に言及していないが、データ量制御手段を構成するコネクション確立部13が、パケット送信部15から送信されたパケットに対するACK信号(送達確認)の受信状況に応じて、パケット送信部15に与えられるパケットのデータ量を制御するようにしてもよい。
【0042】
具体的には、以下の通りである。
送信装置1のコネクション確立部13は、各TCPコネクションの状態を監視しており、パケット送信部15がパケットを受信装置2に送信すると、受信装置2から送信される当該パケットに対するACK信号(送達確認)を受信する。
コネクション確立部13は、パケット送信部15から送信されたパケットに対するACK信号(送達確認)を受信すれば、そのパケットが正常に受信装置2に届いていることを認識する一方、複数のTCPコネクションのうち、いくつかのTCPコネクションを用いて送信されたパケットに対するACK信号(送達確認)を受信することができなければ(一定時間を経過しても、ACK信号を受信することができない場合)、そのTCPコネクションにおけるパケットロスの発生の可能性を認識する。
【0043】
同時に多くのTCPコネクションにおいて、パケットロスの発生の可能性を認識する場合、ネットワークの輻輳により多くのパケットがロスしている可能性がある。
このような状況下で、パケットの送信を続けることは、輻輳を助長することになるため、輻輳を回避するには、送信するパケットのデータ量を減らすことが必要である。
【0044】
コネクション確立部13は、パケット送信部15により複数のTCPコネクションを用いて複数のパケットが送信されたのち、一定時間を経過しても、当該パケットに対するACK信号を受信することができないTCPコネクションの数が基準の上限数より多くなると、符号化装置11に対して、発生するデータ量を減らすように指示を行う。
例えば、基準の上限数として、T1,T2,T3があるとき(T1<T2<T3)、ACK信号を受信することができないTCPコネクションの数Sが、T1≦S<T2になると、発生するデータ量を2分の1(T1>Sのときのデータ量の2分の1)に減らすように指示し、T2≦S<T3になると、発生するデータ量を4分の1に減らすように指示し、T3≦Sになると、発生するデータ量を8分の1に減らすように指示する。
これにより、パケット送信部15から送信されるパケットのデータ量が減少する。
コネクション確立部13は、その後、パケットに対するACK信号を受信することができないTCPコネクションの数Sが減少してくれば、符号化装置11に対して、発生するデータ量を元に戻すように指示を行う。
【0045】
以上で明らかなように、この実施の形態6によれば、コネクション確立部13が、パケット送信部15から送信されたパケットに対するACK信号(送達確認)の受信状況に応じて、パケット送信部15に与えられるパケットのデータ量を制御するように構成したので、ネットワークで発生した輻輳を緩和することができる効果を奏する。
【0046】
実施の形態7.
通常のTCPでは、パケットロスが発生すると、ロスパケットを再送することを前提としているが、ロスパケットが再送されてくるまで、受信装置2のパケット合成部24が待機していると、パケットの合成を開始するタイミングが遅れる。
そこで、この実施の形態7では、パケット合成部24は、パケット受信部23により受信された複数のパケットの中に、送信装置1から再送された再送パケットが含まれている場合、その再送パケットを廃棄して、非再送のパケットのみを合成するようにする。
【0047】
即ち、パケット合成部24は、パケット受信部23により受信されたパケットにシリアル番号が付与されていれば、シリアル番号の昇順にパケットを配列して合成する。
このとき、パケットロスが発生していると、ロスパケットのシリアル番号が抜けているが、抜けているシリアル番号のパケットはないものとして、パケットの合成を行う。
その後、ロスパケットの再送によって、抜けているシリアル番号のパケットが届いても、その時点では、シリアル番号の昇順とならないため、そのロスパケットを廃棄する。
【0048】
以上で明らかなように、この実施の形態7によれば、パケット受信部23により受信された複数のパケットの中に、送信装置1から再送された再送パケットが含まれている場合、パケット合成部24が再送パケットを除く他のパケットを合成するように構成したので、送信対象のデータを構築するまでの時間を短くすることができる効果を奏する。
【0049】
実施の形態8.
上記実施の形態7では、パケット受信部23により受信された複数のパケットの中に、送信装置1から再送された再送パケットが含まれている場合、その再送パケットを廃棄して、非再送のパケットのみを合成するものについて示したが、パケット受信部23により受信された複数のパケットの中に、送信装置1から再送された再送パケットが含まれている場合、遅延時間が所定時間を越えている再送パケットを廃棄して、遅延時間が所定時間以内の再送パケットと非再送のパケットを合成するようにしてもよい。
【0050】
具体的には、以下の通りである。
上記実施の形態7によれば、送信対象のデータを構築するまでの時間を短くすることができるが、比較的短時間でパケットが再送されても、その再送パケットが合成されず、データに抜けが生じる。
そこで、この実施の形態8では、短時間で再送されたパケットについては、合成の対象に含めて、データの抜けを少なくするようにする。
【0051】
即ち、パケット合成部24は、パケット受信部23により受信されたパケットにシリアル番号が付与されている場合、シリアル番号に抜けがなければ、シリアル番号の昇順にパケットを配列して合成する。
このとき、パケットロスの発生がなければ、シリアル番号は通常1ずつ増加するが、パケットロスが発生すると、ロスパケットのシリアル番号が抜けるため、シリアル番号は2以上増加する。
【0052】
パケット合成部24は、シリアル番号が2以上増加している場合、パケットの合成処理を中断し、抜けたシリアル番号のパケットが再送されて、パケット受信部23により受信されるまで待機する。
パケット合成部24は、パケットの合成処理を中断してから、一定時間以内に、パケット受信部23により抜けたシリアル番号の再送パケットが受信された場合、パケットの合成処理を開始して、その再送パケットと他の非再送のパケットとを合成する。
一方、一定時間を経過しても、パケット受信部23により抜けたシリアル番号の再送パケットが受信されない場合、抜けているシリアル番号のパケットはないものとして、パケットの合成を行う。
その後、ロスパケットの再送によって、抜けているシリアル番号のパケットが届いても、その時点では、シリアル番号の昇順とならないため、そのロスパケットを廃棄する。
【0053】
なお、一定時間として、例えば、パケットロス時の1回の再送時間を選択すれば、受信装置2としては、1回だけのパケットロスを許容した合成処理となる。
この一定時間を長くすると、ロスパケットの割合は減るが、受信処理の時間は増えることになる。
【0054】
以上で明らかなように、この実施の形態8によれば、パケット受信部23により受信された複数のパケットの中に、送信装置1から再送された再送パケットが含まれている場合、遅延時間が所定時間を越えている再送パケットを除き、遅延時間が所定時間以内の再送パケットを含む他のパケットを合成するように構成したので、送信対象のデータを構築するまでの時間を短くすることができる効果を奏する。
【0055】
実施の形態9.
図8はこの発明の実施の形態9による受信装置を示す構成図であり、図において、図3と同一符号は同一または相当部分を示すので説明を省略する。
パケット合成部31はパケット受信部23により受信された複数のパケットの中に、送信装置1から再送された再送パケットが含まれている場合、その再送パケットを廃棄して、非再送のパケットのみを合成、あるいは、遅延時間が所定時間を越えている再送パケットを廃棄して、遅延時間が所定時間以内の再送パケットと非再送のパケットを合成する処理を実施するほか、パケット受信部23により受信された再送パケットを含む全てのパケットを合成する処理を実施する。なお、パケット合成部31はパケット合成手段を構成している。
蓄積装置32はパケット合成部31により再送パケットを含む全てのパケットを合成して生成されたデータを蓄積する。
【0056】
次に動作について説明する。
パケット合成部31は、パケット受信部23が複数のパケットを受信すると、リアルタイム性を重視するため、パケット受信部23により受信された複数のパケットの中に、送信装置1から再送された再送パケットが含まれている場合、上記実施の形態7と同様に、その再送パケットを廃棄して、非再送のパケットのみを合成することによりデータを構築する。
あるいは、上記実施の形態8と同様に、遅延時間が所定時間を越えている再送パケットを廃棄して、遅延時間が所定時間以内の再送パケットと非再送のパケットを合成することによりデータを構築する。
パケット合成部31は、構築したデータを復号装置25に出力する。
【0057】
ただし、上記のようにして構築したデータは、リアルタイム性を確保することができるが、再送パケットが含まれていないため、大事な部分のデータ等が抜けている可能性がある。
そこで、パケット合成部31は、さらに、パケット受信部23が再送パケットを受信すると、その再送パケットを含む全てのパケットをシリアル番号順に合成することにより、抜けのない完全なデータを構築し、そのデータを蓄積装置32に格納する。
【0058】
この実施の形態9の受信装置2を例えば監視システムに適用すれば、復号装置25でリアルタイムに監視映像を見ているとき、万一パケットロスが発生して、一時的に監視映像が見られない場合でも、後で蓄積装置32に蓄積されているデータを再生することで、抜けのない監視映像を見ることができる。
この実施の形態9によれば、リアルタイム性と完全性を両立したデータ伝送を実現することができる効果を奏する。
【0059】
実施の形態10.
図9はこの発明の実施の形態10による通信システムを示す構成図であり、図において、図1、図2及び図3と同一符号は同一または相当部分を示すので説明を省略する。
FEC部41は振り分け部14により分割された複数のパケットから誤り訂正パケットを生成する処理を実施する。なお、FEC部41は誤り訂正パケット生成手段を構成している。
パケット送信部42は図2のパケット送信部15と同様に、コネクション確立部13により確立された複数のTCPコネクションを用いて、振り分け部14により振り分けられた複数のパケットを受信装置2に送信する処理を実施するほかに、複数のパケットが振り分けられているTCPコネクションと異なるTCPコネクションを用いて、FEC部41により生成された誤り訂正パケットを受信装置2に送信する処理を実施する。なお、パケット送信部42はパケット送信手段を構成している。
【0060】
誤り訂正部43は送信装置1から送信されたパケットのうち、パケット受信部23により受信されていない未受信のパケットが存在する場合、送信装置1から送信されてパケット受信部23により受信された誤り訂正パケットを用いて、未受信のパケットを生成する処理を実施する。なお、誤り訂正部43は未受信パケット生成手段を構成している。
【0061】
次に動作について説明する。
送信装置1がデータを受信装置2に伝送する場合、上記実施の形態1と同様に、送信装置1のコネクション確立部13と受信装置2のコネクション確立部22との間で、所定のネゴシエーションを実施することにより、複数のTCPコネクションを確立する。
ここでは、説明の便宜上、5つのTCPコネクションC1,C2,C3,C4,C5を確立するものとする。
【0062】
送信装置1の振り分け部14は、符号化装置11から送信対象のデータを与えられると、上記実施の形態1と同様に、そのデータを複数のパケットに分割する。
ここでは、説明の便宜上、データを4つのパケットP1,P2,P3,P4に分割するものとする。
また、振り分け部14は、データを4つのパケットP1,P2,P3,P4に分割すると、4つのパケットP1,P2,P3,P4をTCPコネクションC1,C2,C3,C4に振り分ける処理を実施する。
例えば、パケットP1をTCPコネクションC1、パケットP2をTCPコネクションC2、パケットP3をTCPコネクションC3、パケットP4をTCPコネクションC4に振り分ける処理を実施する。
【0063】
送信装置1のFEC部41は、振り分け部14から4つのパケットP1,P2,P3,P4を受けると、4つのパケットP1,P2,P3,P4のうち、1つのパケットがロスしても、残りの3つのパケットからロスパケットを生成できるようにするため、4つのパケットP1,P2,P3,P4のXOR(排他的論理和)をとり、そのXOR結果を誤り訂正パケットとして生成する。
【0064】
送信装置1のパケット送信部42は、コネクション確立部13により確立されたTCPコネクションC1,C2,C3,C4を用いて、振り分け部14により振り分けられたパケットP1,P2,P3,P4を受信装置2に送信するとともに、パケットP1,P2,P3,P4が振り分けられているTCPコネクションC1,C2,C3,C4と異なるTCPコネクションC5を用いて、FEC部41により生成された誤り訂正パケットを受信装置2に送信する。
【0065】
受信装置2のパケット受信部23は、コネクション確立部22により確立されたTCPコネクションC1,C2,C3,C4を用いて、送信装置1から送信された4つのパケットP1,P2,P3,P4を受信するとともに、TCPコネクションC5を用いて、送信装置1から送信された誤り訂正パケットを受信する。
【0066】
受信装置2の誤り訂正部43は、送信装置1から送信されたパケットのうち、パケット受信部23により受信されていない未受信のパケットが存在する場合、送信装置1から送信されてパケット受信部23により受信された誤り訂正パケットを用いて、未受信のパケットを生成する。
例えば、3つのパケットP1,P2,P3は受信されているが、パケットP4が受信されていない場合、3つのパケットP1,P2,P3と誤り訂正パケットの論理演算を行うことにより、パケットP4を生成する。
受信装置2のパケット合成部24は、パケット受信部23により受信された3つのパケットP1,P2,P3と、誤り訂正部43により生成されたパケットP4とを合成して、送信対象のデータ(符号化装置11により符号化されたデータ)を構築する。
【0067】
以上で明らかなように、この実施の形態10によれば、送信装置1から送信されたパケットのうち、パケット受信部23により受信されていない未受信のパケットが存在する場合、送信装置1から送信されてパケット受信部23により受信された誤り訂正パケットを用いて、未受信のパケットを生成するように構成したので、未受信のパケットが再送されてくるまで待機することなく、直ちに、抜けのない完全なデータを構築することができる効果を奏する。
【0068】
なお、この実施の形態10では、説明の簡単化のため、FEC部41が誤り訂正パケットを1つだけ生成するものについて示したが、複数の誤り訂正パケットを生成するようにしてもよい。
この場合、パケット送信部42は、複数の誤り訂正パケットを別々のTCPコネクションに振り分けて、複数の誤り訂正パケットを受信装置2に送信する。
例えば、TCPコネクションC1,C2,C3,C4,C5,C6が確立されているとき、2つの誤り訂正パケットが生成された場合、2つの誤り訂正パケットをそれぞれTCPコネクションC5,C6に振り分け、TCPコネクションC5,C6を用いて、2つの誤り訂正パケットを受信装置2に送信する。
【0069】
実施の形態11.
上記実施の形態1〜10では、データを送信する機能を備えた通信装置(送信装置1)と、データを受信する機能を備えた通信装置(受信装置2)とがネットワーク3を介して接続されているものを示したが、図10に示すように、データを送信する機能とデータを受信する機能の双方を備えた通信装置であってもよい。
なお、コネクション管理部51は、コネクション確立部13(または、コネクション確立部22)、パケット送信部15(または、パケット送信部42)及びパケット受信部23を備えている。
【図面の簡単な説明】
【0070】
【図1】この発明の実施の形態1による通信システムを示す構成図である。
【図2】この発明の実施の形態1による送信装置を示す構成図である。
【図3】この発明の実施の形態1による受信装置を示す構成図である。
【図4】この発明の実施の形態1による通信方法を示すフローチャートである。
【図5】送信装置1と受信装置2の間で確立されたTCPコネクションを示す説明図である。
【図6】振り分け部14が分割したパケットの数が、コネクション確立部13により確立されたTCPコネクションの数より多い場合の動作例を示す説明図である。
【図7】シリアル番号が付与されたパケットを示す説明図である。
【図8】この発明の実施の形態9による受信装置を示す構成図である。
【図9】この発明の実施の形態10による通信システムを示す構成図である。
【図10】この発明の実施の形態11による通信装置を示す構成図である。
【符号の説明】
【0071】
1 送信装置、2 受信装置、3 ネットワーク、11 符号化装置、12,21,51 コネクション管理部、13 コネクション確立部(コネクション確立手段、データ量制御手段)、14 振り分け部(パケット振分手段)、15,42 パケット送信部(パケット送信手段)、22 コネクション確立部(コネクション確立手段)、23 パケット受信部(パケット受信手段)、24,31 パケット合成部(パケット合成手段)、25 復号装置、32 蓄積装置、41 FEC部(誤り訂正パケット生成手段)、43 誤り訂正部(未受信パケット生成手段)。

【特許請求の範囲】
【請求項1】
データの送信先である受信装置との間で複数のTCPコネクションを確立するコネクション確立手段と、送信対象のデータを複数のパケットに分割し、上記複数のパケットを上記コネクション確立手段により確立された別々のTCPコネクションに振り分けるパケット振分手段と、上記コネクション確立手段により確立された複数のTCPコネクションを用いて、上記パケット振分手段により振り分けられた複数のパケットを上記受信装置に送信するパケット送信手段とを備えた送信装置。
【請求項2】
パケット振分手段は、分割したパケットの数がコネクション確立手段により確立されたTCPコネクションの数より多い場合、分割したパケットをパケット送信手段による前回のパケット送信時刻が古いTCPコネクションから順番に振り分けることを特徴とする請求項1記載の送信装置。
【請求項3】
パケット振分手段は、分割したパケットの数がコネクション確立手段により確立されたTCPコネクションの数より多い場合、分割したパケットをパケット送信手段により前回送信されたパケットに対する送達確認を既に受信しているTCPコネクションから順番に振り分けることを特徴とする請求項1記載の送信装置。
【請求項4】
パケット送信手段は、受信装置によりパケットが正常に受信されない場合でも、当該パケットの再送を実施しないことを特徴とする請求項1から請求項3のうちのいずれか1項記載の送信装置。
【請求項5】
パケット振分手段は、複数のパケットを分割して振り分ける際、複数のパケットの順序を示すシリアル番号を各パケットに付与することを特徴とする請求項1から請求項4のうちのいずれか1項記載の送信装置。
【請求項6】
送信済みのパケットに対する送達確認の受信状況に応じて、パケット送信手段に与えられるパケットのデータ量を制御するデータ量制御手段を設けたことを特徴とする請求項1から請求項5のうちのいずれか1項記載の送信装置。
【請求項7】
データが分割された複数のパケットから誤り訂正パケットを生成する誤り訂正パケット生成手段を設け、パケット送信手段が複数のパケットが振り分けられているTCPコネクションと異なるTCPコネクションを用いて、上記誤り訂正パケットを受信装置に送信することを特徴とする請求項1から請求項6のうちのいずれか1項記載の送信装置。
【請求項8】
データの送信元である送信装置との間で複数のTCPコネクションを確立するコネクション確立手段と、上記コネクション確立手段により確立された複数のTCPコネクションを用いて、上記送信装置から上記データを構成する複数のパケットを受信するパケット受信手段と、上記パケット受信手段により受信された複数のパケットを合成して、上記データを構築するパケット合成手段とを備えた受信装置。
【請求項9】
パケット合成手段は、パケット受信手段により受信された複数のパケットの中に、送信装置から再送された再送パケットが含まれている場合、上記再送パケットを除く他のパケットを合成することを特徴とする請求項8記載の受信装置。
【請求項10】
パケット合成手段は、パケット受信手段により受信された複数のパケットの中に、送信装置から再送された再送パケットが含まれている場合、遅延時間が所定時間を越えている再送パケットを除き、遅延時間が所定時間以内の再送パケットを含む他のパケットを合成することを特徴とする請求項8記載の受信装置。
【請求項11】
パケット合成手段は、パケット受信手段により受信された再送パケットを含む全てのパケットを合成してデータを構築し、上記データを蓄積装置に格納することを特徴とする請求項9または請求項10記載の受信装置。
【請求項12】
送信装置から送信されたパケットのうち、パケット受信手段により受信されていない未受信のパケットが存在する場合、上記送信装置から送信されて上記パケット受信手段により受信された誤り訂正パケットを用いて、上記未受信のパケットを生成する未受信パケット生成手段を設けたことを特徴とする請求項8から請求項11のうちのいずれか1項記載の受信装置。
【請求項13】
データの通信先の相手装置との間で複数のTCPコネクションを確立するコネクション確立手段と、送信対象のデータを複数のパケットに分割し、上記複数のパケットを上記コネクション確立手段により確立された別々のTCPコネクションに振り分けるパケット振分手段と、上記コネクション確立手段により確立された複数のTCPコネクションを用いて、上記パケット振分手段により振り分けられた複数のパケットを上記相手装置に送信するパケット送信手段と、上記コネクション確立手段により確立された複数のTCPコネクションを用いて、上記相手装置から送信された複数のパケットを受信するパケット受信手段と、上記パケット受信手段により受信された複数のパケットを合成して、上記データを構築するパケット合成手段とを備えた通信装置。
【請求項14】
送信装置のコネクション確立手段と受信装置のコネクション確立手段との間で複数のTCPコネクションを確立するコネクション確立ステップと、上記送信装置のパケット振分手段が送信対象のデータを複数のパケットに分割し、上記複数のパケットを上記コネクション確立手段により確立された別々のTCPコネクションに振り分けるパケット振分ステップと、上記送信装置のパケット送信手段が上記コネクション確立手段により確立された複数のTCPコネクションを用いて、上記パケット振分手段により振り分けられた複数のパケットを上記受信装置に送信するパケット送信ステップと、上記受信装置のパケット受信手段が上記コネクション確立手段により確立された複数のTCPコネクションを用いて、上記送信装置から送信された複数のパケットを受信するパケット受信ステップと、上記受信装置のパケット合成手段が上記パケット受信手段により受信された複数のパケットを合成して、上記データを構築するパケット合成ステップとを備えた通信方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2009−100118(P2009−100118A)
【公開日】平成21年5月7日(2009.5.7)
【国際特許分類】
【出願番号】特願2007−268110(P2007−268110)
【出願日】平成19年10月15日(2007.10.15)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】