(57)【要約】【課題】送信装置と複数の受信装置との間のデータ通信を仲介する通信網にかかる負荷が過剰に高くなることを回避しつつ、送信装置と複数の受信装置との間のデータ通信の信頼性と効率とを両立させる。【解決手段】送信装置には、送信対象データを分割して複数の分割データを生成し、各分割データがデータ部に書き込まれており、その分割データを一意に示す分割データ識別子がヘッダ部に書き込まれたパケットをマルチキャスト送信する処理と、何れかの受信装置から、送信済みの分割データの再送信を要求された場合に、再送信を要求された分割データをその要求元へユニキャスト送信する処理とを実行させる。一方、各受信装置には、受信済みのパケットのヘッダ部に書き込まれていた分割データ識別子から分割データの欠落の有無を判定し、欠落が有る場合には、その再送信を送信装置へ要求する処理を実行させる。【選択図】図３
2009253949.tif 000002
【特許請求の範囲】
【請求項１】
送信対象のデータを分割して得られる複数の分割データを、マルチキャストグループ宛に送信するパケットのデータ部に１個ずつ、または連続する複数個ずつ書き込むとともに、当該パケットのヘッダ部に当該１または複数の分割データの前記送信対象のデータ内での位置を示す分割データ識別子を書き込んでマルチキャスト送信する処理と、送信済みの分割データの再送信を要求された場合に、その分割データをその要求元へユニキャスト送信する処理と、を実行する送信装置と、
前記マルチキャストグループ宛に送信されてくるパケットを受信し、受信したパケットのヘッダ部に書き込まれていた分割データ識別子を参照して分割データの欠落の有無を判定し、欠落した分割データの再送信を前記送信装置へ要求する処理、を各々実行する複数の受信装置と、
を有することを特徴とする通信システム。
【請求項２】
前記送信装置は、
同一のデータ部を有するパケットをＭ（２以上の整数）個ずつ連続させてマルチキャスト送信する
ことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記マルチキャストグループ宛に送信するパケットのデータ部に書き込める分割データの個数の最大値Ｍ（２以上の整数）が予め定められており、
前記送信装置は、
連続して送信するＭ個のパケットの各々に同一の分割データが少なくとも１つ含まれるように各パケットに書き込む分割データの範囲を調整する
ことを特徴とする請求項１に記載の通信システム。
【請求項４】
送信対象のデータを分割して得られる複数の分割データを、マルチキャストグループ宛に送信するパケットのデータ部に１個ずつ、または連続する複数個ずつ書き込むとともに、当該パケットのヘッダ部に当該１または複数の分割データの前記送信対象のデータ内での位置を示す分割データ識別子を書き込んでマルチキャスト送信する送信手段と、
送信済みの分割データの再送信を要求された場合にその分割データをその要求元へユニキャスト送信する再送信手段と、
を有することを特徴とする送信装置。
【請求項５】
コンピュータ装置を、
送信対象のデータを分割して得られる複数の分割データを、マルチキャストグループ宛に送信するパケットのデータ部に１個ずつ、または連続する複数個ずつ書き込むとともに、当該パケットのヘッダ部に当該１または複数の分割データの前記送信対象のデータ内での位置を示す分割データ識別子を書き込んでマルチキャスト送信する送信手段と、
送信済みの分割データの再送信を要求された場合にその分割データをその要求元へユニキャスト送信する再送信手段と
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信網を介したデータ通信に関し、特に、複数の受信装置へ同一データを送信する技術に関する。
【背景技術】
【０００２】
複数の受信装置へ同一データを送信する技術の一例としては、マルチキャスト通信が挙げられる。マルチキャスト通信は、複数の受信装置が属するマルチキャストグループ宛にデータを送信する処理を送信装置に実行させ、このようにして送信されたデータを通信網内に設けられたマルチキャスト対応ルータ等で適宜複製しつつ各受信装置へ送り届けることで実現される。複数の受信装置の各々との間に通信コネクションを確立し各通信コネクションを介して別個にユニキャスト送信する態様では、宛先となる受信装置の数が増えるほど送信装置にかかる処理負荷が高くなるが、マルチキャスト通信による態様ではこのような問題が生じない。
【０００３】
通信網を介したデータ通信では、送信対象のデータを複数の分割データに分割し、各分割データにその宛先や送信元の通信アドレス等を書き込んだヘッダ部を付与したパケット単位で送受信することが一般的である。このようなパケット単位でデータの送受信を行う通信態様では、送信装置から送信される複数のパケットのうちの何れか１つでも受信装置へ到達しないものがあると、受信装置側では分割前のデータを復元することができずデータ処理に支障が生じる。以下、送信装置から送信されたパケットがその伝送過程で消失し、その宛先へ到達しないことをパケットロスと呼ぶ。このようなパケットロスの発生原因としては種々のものがあるが、その代表例としては、送信装置と受信装置とのデータ通信を仲介する通信網の輻輳が挙げられる。
【０００４】
ＴＣＰ（Transmission Control
Protocol）に代表されるコネクション型の通信プロトコルでは、パケットロスの発生を検出しその再送信を行う仕組みが設けられている。しかし、マルチキャスト通信では、データ通信の信頼性よりも通信効率が重視されるためＵＤＰ（User Datagram Protocol）などのコネクションレス型の通信プロトコルが用いられることが一般的である。コネクションレス型の通信プロトコルでは、パケットロスの検出および再送信を行う仕組みは設けられていないため、マルチキャスト通信を利用した通信システムでは、パケットロスにより受信装置側でのデータ処理に支障が生じることを回避できない、といった問題があった。
【０００５】
このような問題を解決するために、マルチキャスト通信においてパケットロスの検出および再送信を可能にする技術が種々提案されており、その一例としては、１９９８年にCiscoSystems社により発表されたＰＧＭ（Pragmatic General
Multicast）が挙げられる。ＰＧＭでは、受信装置にパケットロスを検出させ、パケットロスの検出を契機としてそのパケットロスしたパケットの再送信を要求する旨の応答（ＮＡＫ(Negative AcKnowledgement)）を返信する処理を受信装置に実行させる。一方、送信装置には、ＮＡＫの受信を契機として、そのＮＡＫにより再送信を要求されたパケットを再度マルチキャスト送信する処理を実行させる。
【特許文献１】特開平１１−１９６０４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、ＰＧＭでは、パケットの再送信がマルチキャストで行われるため、再送信が頻発するとデータ通信を仲介する通信網に含まれるネットワーク機器にかかる処理負荷が過剰に高くなるといった問題がある。前述したように、通信網が輻輳状態であるとパケットロスが発生し易くなるが、通信網に含まれるネットワーク機器にかかる処理負荷が過剰に高くなると、その通信網の輻輳をさらに悪化させる虞がある。このため、特許文献１では、複数の受信装置（特許文献１では、「受信局」）を相互に通信可能なもの同士グループ化し、グループ毎に予め定められた代表局にのみＮＡＫの送信を行わせるようにしている。これは、同一のパケットについてのパケットロスが複数の受信装置で検出され、それら受信装置の各々がＮＡＫを返信することによって、同一のパケットについての再送信が複数回行われることを回避するためである。このように、特許文献１に開示された技術によれば、同一パケットについてのマルチキャストによる再送信が複数回行われることは回避されるものの、パケットの再送信がマルチキャストで行われることには変わりなく、パケットの再送信により通信網の輻輳を悪化させる虞があることには変わりはない。
【０００７】
本発明は上記課題に鑑みて為されたものであり、送信装置と複数の受信装置との間のデータ通信を仲介する通信網に含まれるネットワーク機器にかかる負荷が過剰に高くなることを回避しつつ、送信装置と複数の受信装置との間のデータ通信の信頼性と効率とを両立させることを可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本発明は、送信対象のデータを分割して得られる複数の分割データを、マルチキャストグループ宛に送信するパケットのデータ部に１個ずつ、または連続する複数個ずつ書き込むとともに、当該パケットのヘッダ部に当該１または複数の分割データの前記送信対象のデータ内での位置を示す分割データ識別子を書き込んでマルチキャスト送信する処理と、送信済みの分割データの再送信を要求された場合に、その分割データをその要求元へユニキャスト送信する処理と、を実行する送信装置と、前記マルチキャストグループ宛に送信されてくるパケットを受信し、受信したパケットのヘッダ部に書き込まれていた分割データ識別子を参照して分割データの欠落の有無を判定し、欠落した分割データの再送信を前記送信装置へ要求する処理、を各々実行する複数の受信装置と、を有することを特徴とする通信システムを提供する。このような通信システムにおいては、分割データの再送信を要求した受信装置に対してのみその分割データがユニキャストで送信されるため、マルチキャストで再送信を行う態様に比較して送信装置と複数の受信装置とのデータ通信を仲介する通信網に含まれるルータ等のネットワーク機器に過剰な負荷がかかることはない。
【０００９】
より好ましい態様においては、前記通信システムに含まれる送信装置は、同一のデータ部を有するパケットをＭ（２以上の整数）個ずつ連続させてマルチキャスト送信することを特徴とする。また、別の好ましい態様においては、マルチキャストグループ宛に送信するパケットのデータ部に書き込める分割データの個数の最大値Ｍ（２以上の整数）が予め定められており、前記送信装置は、連続して送信するＭ個のパケットの各々に同一の分割データが少なくとも１つ含まれるように各パケットに書き込む分割データの範囲を調整することを特徴とする。これらの態様によれば、各分割データがＭ個ずつマルチキャスト送信されるため、送信装置から連続してマルチキャスト送信されたＭ−１個のパケットが消失しても受信装置側で分割データの欠落が生じることはない。
【００１０】
また、上記課題を解決するために本発明は、送信対象のデータを分割して得られる複数の分割データを、マルチキャストグループ宛に送信するパケットのデータ部に１個ずつ、または連続する複数個ずつ書き込むとともに、当該パケットのヘッダ部に当該１または複数の分割データの前記送信対象のデータ内での位置を示す分割データ識別子を書き込んでマルチキャスト送信する送信手段と、送信済みの分割データの再送信を要求された場合にその分割データをその要求元へユニキャスト送信する再送信手段とを有することを特徴とする送信装置、および、コンピュータ装置を上記各手段として機能させることを特徴とするプログラムを提供する。
【発明を実施するための最良の形態】
【００１１】
以下、本発明を実施するための最良の形態を図面を参照しつつ説明する。
（Ａ：第１実施形態）
図１は、本発明の第１実施形態に係る通信システム１Ａの構成例を示すブロック図である。図１に示すように、通信システム１Ａには、送信装置１０Ａと、受信装置２０Ａ−ｋ（ｋ＝１〜Ｎ：Ｎは２以上の整数）とが含まれており、これら各装置は何れも通信網３０に接続されている。通信網３０は、例えばインターネットなどの電気通信回線であり、自網に接続されている通信装置間で所定の通信プロトコルにしたがって行われるデータ通信を仲介するためのものである。上記通信プロトコルとしては、プロトコル階層毎に種々のものを用いることが考えられる。本実施形態では、ネットワーク層についてはＩＰ（Internet Protocol）が、トランスポート層についてはＴＣＰまたはＵＤＰが用いられる。
【００１２】
送信装置１０Ａは、音声データや画像データなどの各種データを通信網３０を介してマルチキャスト送信する電子機器である。このマルチキャスト通信では、データ通信の効率を重視し、トランスポート層の通信プロトコルとしてＵＤＰが用いられる。一方、受信装置２０Ａ−ｋは、通信網３０を介してマルチキャスト送信されてくるデータを受信し、そのデータの種類に応じた処理を実行する電子機器である。例えば、送信装置１０Ａからマルチキャスト送信されるデータが音声データである場合には、受信装置２０Ａ−ｋは、音声コーデックやスピーカを含む音声出力装置（図示省略）へ受信したデータを引渡し、そのデータに応じた音声を放音させる。また、送信装置１０Ａからマルチキャスト送信されるデータが画像データである場合には、受信装置２０Ａ−ｋは、液晶ディスプレイやその駆動回路を含む画像表示装置（同図示省略）へ受信したデータを引渡し、そのデータの表す画像を表示させる。
【００１３】
通信システム１Ａにおいて、送信装置１０Ａから受信装置２０Ａ−ｋへのマルチキャスト送信は、従来と同様に、パケット単位で行われる。本実施形態では、受信装置２０Ａ−ｋの属するマルチキャストグループが予め定められており、そのマルチキャストグループに割り当てられているマルチキャストアドレスが送信装置１０Ａや受信装置２０Ａ−ｋに予め記憶されている。送信装置１０Ａは、送信対象となるデータ（例えば、送信装置１０Ａに予め記憶されているデータや、ＵＳＢ（Universal Serial Bus）メモリなどの記録媒体経由で外部から与えられるデータ）を複数の分割データに分割し、それら分割データを書き込んだパケットを上記マルチキャストアドレス宛に送信することで、その送信対象データのパケット単位でのマルチキャスト送信を実現する。
【００１４】
図２は、送信装置１０Ａからマルチキャスト送信されるパケットのデータフォーマットの一例を示す図である。図２に示すように、このパケットは、ヘッダ部とデータ部により構成される。図２のデータ部には、分割データが１つずつ書き込まれる。一方、ヘッダ部には、パケットの送信順を示すシーケンス番号が書き込まれる。本実施形態では、若いシーケンス番号を有するパケットほど、分割前の送信対象データの先頭に近い部分に位置する分割データがそのデータ部に書き込まれる。このため、上記シーケンス番号は、データ部に書き込まれている分割データについての送信対象データ内での位置を示す分割データ識別子の役割を果たす。なお、図２に示すヘッダ部にはシーケンス番号以外にも他のデータが書き込まれるが、これら他のデータは本実施形態とは直接関係しないため、図２ではその記載が省略されている。
【００１５】
受信装置２０Ａ−ｋでは、従来のパケット単位のデータ通信と同様に、通信網３０を介して受信したパケットのデータ部に書き込まれている分割データを同ヘッダ部に書き込まれているシーケンス番号が若い順に連結することで、分割前の送信対象データが復元される。したがって、通信網３０の輻輳などによりパケットロスが発生すると、受信装置２０Ａ−ｋ側では、送信対象データを復元することができず、以降のデータ処理に支障が生じ得る。しかし、本実施形態では、通信網３０や送信装置１０Ａに過剰な負荷をかけることなく、パケットロスにより欠落した分割データの再送信を送信装置１０Ａおよび受信装置２０Ａ−ｋに行わせ、この問題を解決したことに特徴がある。以下、本実施形態の特徴を示す送信装置１０Ａおよび受信装置２０Ａ−ｋを中心に説明する。
【００１６】
図３は、送信装置１０Ａの構成例を示すブロック図である。図３に示すように、送信装置１０Ａは、制御部１１０、通信インタフェース（以下、Ｉ／Ｆ）部１２０、記憶部１３０およびこれら構成要素間のデータ授受を仲介するバス１４０を含んでいる。
【００１７】
制御部１１０は、例えばＣＰＵ（Central Processing Unit）である。この制御部１１０は、記憶部１３０に予め格納されている送信制御プログラム１３２ａにしたがって作動し、送信装置１０Ａの制御中枢の役割を果たす。制御部１１０が送信制御プログラム１３２ａにしたがって実行する処理については後に明らかにする。通信Ｉ／Ｆ部１２０は例えばＮＩＣ（Network Interface Card）であり、通信網３０に接続されている。この通信Ｉ／Ｆ部１２０は、通信網３０を介して送信されてくるデータを受信しそのデータを制御部１１０へ引渡す一方、制御部１１０から引渡されるデータを通信網３０へと送出する。
【００１８】
記憶部１３０は、図３に示すように揮発性記憶部１３１と不揮発性記憶部１３２とを含んでいる。揮発性記憶部１３１は、例えば、ＲＡＭ（Random Access Memory）であり、制御プログラム１３２ａを実行する際のワークエリアとして利用される。また、揮発性記憶部１３１は、通信網３０を介してマルチキャスト送信した分割データを一定期間格納しておくバッファとしても利用される。このように送信済みの分割データをその送信のときから一定期間だけ保持しておくのは、送信済みの分割データの再送信に備えるためである。なお、上記バッファサイズについては、受信装置２０Ａ−ｋにてパケットロスを検出する際のタイムアウト時間（後に詳細に説明する）との兼ね合いで定めるようにすれば良い。不揮発性記憶部１３２は、例えばハードディスクやＦｌａｓｈメモリであり、前述した送信制御プログラム１３２ａを予め格納している。この送信制御プログラム１３２ａは、送信処理および再送信処理の２つの処理を制御部１１０に実行させるプログラムである。
【００１９】
図３の送信処理は、送信対象データを分割して得られる複数の分割データの各々を、マルチキャストグループ宛に送信する各パケットのデータ部に書き込んでマルチキャスト送信する処理である。この送信処理は、送信対象データの配信開始を要求する旨の通信メッセージ（以下、配信開始要求）を受信したことを契機として実行される。より詳細に説明すると、図３に示す送信処理では、まず、送信対象データの配信開始を通知する通信メッセージ（以下、配信開始通知）をマルチキャスト送信する処理が複数回（例えば、１０回）実行され、その後、送信対象データのマルチキャスト送信が開始される。ここで、配信開始通知のマルチキャスト送信を複数回実行するのは、その配信開始通知に関してパケットロスが発生し各受信装置２０Ａ−ｋに配信開始通知が全く到達しないことを回避するためである。また、図３に示す送信処理では、送信済みのパケットのデータ部に書き込まれていた分割データをその分割データについての分割データ識別子（本実施形態では、シーケンス番号）に対応付けて揮発性記憶部１３１内のバッファへ書き込む処理も実行される。ただし、揮発性記憶部１３１内のバッファは、その記憶容量に限りがあるため、記憶容量に空きがなくなると最も古い分割データから順に新たな分割データで上書きされる。
【００２０】
図４は、送信制御プログラム１３２ａにしたがって制御部１１０が実行する再送信処理の流れを示すフローチャートである。図４に示すように、この再送信処理では、まず、送信済みの分割データの再送信を要求する旨の通信メッセージ（以下、再送信要求）を受信したか否かが判定され（ステップＳＡ１０）、この判定結果が“Ｎｏ”である間は、ステップＳＡ１０の処理が繰り返し実行される。そして、ステップＳＡ１０の判定結果が“Ｙｅｓ”になると、制御部１１０は、再送信を要求された分割データの再送信が可能であるか否かを判定する（ステップＳＡ２０）。より詳細に説明すると、制御部１１０は、再送信を要求された分割データが上記バッファに格納されている場合には、その再送信が可能であると判定し、逆に、該当する分割データが上記バッファに格納されていない場合には、再送信不可能と判定する。
【００２１】
制御部１１０は、ステップＳＡ２０の判定結果が“Ｙｅｓ”である場合には、再送信を要求された分割データをデータ部に書き込んだパケットをＴＣＰに準拠したユニキャスト送信でその要求元へ送信する処理を実行し（ステップＳＡ３０）、後述するステップＳＡ５０の処理を実行する。ここで、ＴＣＰに準拠したデータ通信を行うためには、その通信相手となる相手装置との間に予め通信コネクションを確立しておく必要があり、その確立を行うタイミングとしては以下の２つの態様が考えられる。第１に、送信処理によるパケットのマルチキャスト送信の実行に先立ってそのパケットの受け手である各受信装置２０Ａ−ｋからの要求に応じてその通信コネクションを確立しておく態様である。第２に、パケット再送信処理による再送信が必要になる度に受信装置２０Ａ−ｋからの要求に応じて上記再送信用の通信コネクションを確立する態様である。これら２つの態様のうち、本実施形態では、第１の態様が採用されている。その理由は、送信装置１０Ａからマルチキャスト送信されるパケットについてパケットロスが一定の頻度以上発生する状況下では、通信網３０に輻輳が発生していると想定され、このような状況下では、通信コネクション確立のための通信（所謂３ウェイハンドシェーク型の通信）に支障が生じ、再送信用の通信コネクションの確立に失敗する虞があるからである。
【００２２】
ステップＳＡ２０の判定結果が“Ｎｏ”である場合には、制御部１１０は、リスタート処理（ステップＳＡ４０）を実行する。ここで、リスタート処理とは、前述した送信処理を最初からやり直す処理である。次いで、制御部１１０は、操作部（図示省略）を介して送信制御プログラム１３２ａの実行終了を指示されたか否かを判定し（ステップＳＡ５０）、その判定結果が“Ｎｏ”である場合には、ステップＳＡ１０以降の処理を繰り返し実行し、逆に、ステップＳＡ５０の判定結果が“Ｙｅｓ”である場合には、本再送信処理を終了する。
以上が送信装置１０Ａの構成である。
【００２３】
次いで、受信装置２０Ａ−ｋの構成について図５を参照しつつ説明する。
図５は、受信装置２０Ａ−ｋの構成例を示すブロック図であり、図３と同一の構成要素には、同一の符号が付されている。図３と図５とを比較すれば明らかように、受信装置２０Ａ−ｋのハードウェア構成は送信装置１０Ａのハードウェア構成と同一であり、送信制御プログラム１３２ａに代えて受信制御プログラム１３２ｂが不揮発性記憶部１３２に格納されている点のみが異なっている。この受信制御プログラム１３２ｂは、前述した再送信用の通信コネクションを確立する処理の他に、図５に示す受信処理と再送信要求処理を受信装置２０Ａ−ｋの制御部１１０に実行させるプログラムである。
【００２４】
図５の受信処理では、操作部（図示省略）を介して配信開始要求の送信を指示されたことを契機として、配信開始要求を送信装置１０Ａへ送信する処理が実行され、さらに、送信装置１０Ａから送信されてくる配信開始通知を受信したことを契機として、パケットのマルチキャスト送信を待ち受ける処理が実行される。また、この受信処理では、通信網３０を介してマルチキャスト送信されてくるパケットを受信して揮発性記憶部１３１の所定の記憶領域へ書き込むとともに、その受信状況から分割データの欠落の有無を判定する処理も実行される。本実施形態では、各パケットには互いに異なる分割データが１個ずつ書き込まれているため、パケットロスが発生すれば必ず分割データの欠落が発生する。このため、本実施形態では、パケットロスの発生を検出した場合に、分割データの欠落が発生したと判定される。ここで、パケットロス（分割データの欠落）の検出手法としては種々のものが考えられるが、本実施形態では、以下に述べる２つの態様が採用されている。
【００２５】
第１に、通信網３０を介して送信装置１０Ａからマルチキャスト送信されるパケットを順次受信する過程で、受信したパケットのヘッダ部に書き込まれている分割データ識別子（本実施形態では、シーケンス番号）に不連続が発生した場合（例えば、シーケンス番号“ｍ”がヘッダ部に書き込まれたパケットの次に、シーケンス番号“ｍ＋ｊ”（ｊは２以上の整数）がヘッダ部に書き込まれたパケットを受信した場合など）に、その不連続が発生した時から所定のタイムアウト時間（例えば、５００ミリ秒）が経過してもその不連続が解消しなければ、その不連続に応じた数分のパケットロスが発生したと判定する態様である。換言すれば、分割データ識別子に不連続が発生した場合であっても、その発生の時から所定のタイムアウト時間が経過する前にその不連続部分に対応する分割データ識別子がヘッダ部に書き込まれたパケットを受信した場合には、受信装置２０Ａ−ｋの制御部１１０はパケットロスは発生していないと判定する。これは、通信網３０の利用状況によっては、送信装置１０Ａから順次送信されたパケットがその送信順に受信装置２０Ａ−ｋに到達するとは限らないからである。第２に、直近にパケットを受信した時点或いは配信開始通知を受信した時点から所定のタイムアウト時間（例えば、５００ミリ秒）が経過しても後続のパケットを受信しなかった場合に、その後続のパケットについてパケットロスが発生したと判定する態様である。なお、分割データ識別子に不連続が発生した場合のタイムアウト時間、直近にパケットを受信した時点からのタイムアウト時間、および、配信開始通知を受信した時点からのタイムアウト時間については、各々別個の時間長としても勿論良い。
【００２６】
パケットロス（すなわち、分割データの欠落）が発生していないと判定された場合には、受信装置２０Ａ−ｋの制御部１１０は、受信したパケットのデータ部から分割データを読み出して送信対象データを復元しそのデータの種類に応じたデータ処理を実行する。逆に、パケットロスが発生したと判定された場合には、制御部１１０は再送信要求処理を実行する。この再送信要求処理では、受信装置２０Ａ−ｋに到達しなかったパケットのシーケンス番号（すなわち、パケットロスにより欠落した分割データを示す分割データ識別子）を書き込んだ再送信要求を、前述した再送信用の通信コネクションを介して送信装置１０Ａにユニキャスト送信する処理が実行される。なお、複数のパケットについてのパケットロスが検出された場合は、制御部１１０は、それら複数のパケットの各々のシーケンス番号を書き込んだ再送信要求を送信する。
以上が受信装置２０Ａ−ｋの構成である。
【００２７】
図６および図７は、通信システム１Ａにて送信装置１０Ａと受信装置２０Ａ−ｋとが行うデータ通信の通信シーケンスの一例を示す図である。
図６は、パケットロスが発生し、そのパケットの再送信が可能である場合の通信シーケンスを示す図である。図６には、送信装置１０Ａからマルチキャスト送信された３つのパケット（シーケンス番号＝１、２および３を有するパケット）のうち、シーケンス番号が２であるパケットについてパケットロスが発生した場合について例示されている。図６に示す例では、受信装置２０Ａ−ｋの制御部１１０は、受信したパケットのシーケンス番号が不連続であること（すなわち、シーケンス場号が１であるパケットの次にシーケンス番号が３であるパケットを受信したこと）から、パケットロス（すなわち、シーケンス番号が２であるパケットのパケットロス）が発生したと判定し再送信要求を送信する。送信装置１０Ａは、再送信要求にて再送信を要求された分割データの再送信が可能である場合（すなわち、再送信要求に書き込まれているシーケンス番号に対応する分割データがバッファ内に格納されている場合）には、図６に示すように、その分割データを書き込んだパケットをＴＣＰに準拠したユニキャスト送信で、上記再送信要求の送信元へ送信する。
【００２８】
一方、図７は、パケットロスが発生し、そのパケットの再送信が不可能である場合の通信シーケンスを示す図である。図７には、送信装置１０Ａからマルチキャスト送信された２００２個のパケット（シーケンス番号＝１〜２００２の各々を有するパケット）のうち、シーケンス番号が２〜２００１までのパケットについてパケットロスが発生した場合について例示されている。図７に示す例では、受信装置２０Ａ−ｋの制御部１１０は、受信したパケットのシーケンス番号が不連続であること（すなわち、シーケンス番号が１であるパケットの次に、シーケンス番号が２００２であるパケットを受信したこと）から、パケットロス（すなわち、シーケンス番号が２〜２００１までのパケットのパケットロス）が発生したと判定し再送信要求を送信する。送信装置１０Ａは、再送信要求にて再送信を要求された分割データの再送信が不可能である場合（すなわち、再送信を要求された分割データのうちにバッファに格納されていないものが含まれている場合）には、前述したリスタート処理を実行し、図７に示すように、配信開始通知を再度送信し、シーケンス番号１を有するパケットからマルチキャスト送信をし直す。
【００２９】
このように、本実施形態では、送信装置１０Ａから受信装置２０Ａ−ｋへのデータの送信はマルチキャストで行われるため、各受信装置２０Ａ−ｋに対してパケットをユニキャスト送信する態様に比較して送信装置１０Ａにかかる処理負荷を軽減することができる。加えて、本実施形態では、何れかの受信装置２０Ａ−ｋでパケットロスが検出されると、その受信装置２０Ａ−ｋに対してのみユニキャスト送信でそのパケットを再送信する処理が実行される。このため、本実施形態によれば、一般的なマルチキャスト通信に比較して信頼性を向上させることができる。また、本実施形態によれば、マルチキャストで再送信を行う態様に比較して通信網３０に過剰な負荷をかけることもない。このように本実施形態によれば、通信網に過剰に高くなることを回避しつつ、送信装置と複数の受信装置との間のデータ通信の信頼性と効率とを両立させることを可能になる。
【００３０】
（Ｂ：第２実施形態）
図８は、本発明の第２実施形態に係る通信システム１Ｂの構成例を示すブロック図である。図８と図１とを比較すれば明らかなように、通信システム１Ｂは、送信装置１０Ａに代えて送信装置１０Ｂを、受信装置２０Ａ−ｋに代えて受信装置２０Ｂ−ｋを設けた点が通信システム１Ａと異なる。詳細な図示は省略したが、送信装置１０Ｂの不揮発性記憶部には、送信制御プログラム１３２ａとは異なる送信制御プログラムが格納されており、この送信装置１０Ｂは送信装置１０Ａとは異なる処理を実行する。同様に、受信装置２０Ｂ−ｋの不揮発性記憶部には、受信制御プログラム１３２ｂとは異なる受信制御プログラムが格納されており、受信装置２０Ａ−ｋとは異なる処理を実行する。
【００３１】
より詳細に説明すると、通信システム１Ｂにおいても、送信装置１０Ｂから受信装置１０Ｂ−ｋへの分割データの送信をマルチキャストで行い、何れかの受信装置２０Ｂ−ｋにてパケットロスに起因した分割データの欠落が検出された場合には、その受信装置２０Ｂ−ｋに再送信要求を送信させ、再送信を要求された分割データをその要求元に対してのみユニキャスト送信する処理を送信装置１０Ｂに実行させる点は前述した第１実施形態と同一である。ただし、本実施形態では、分割データのマルチキャスト送信が多重化されている点に特徴がある。ここで、多重化とは、例えば多重化度がＭ（２以上の整数）である場合、同一の分割データがデータ部に書き込まれたパケットをＭ個ずつ連続してマルチキャスト送信させることである。
【００３２】
図９は、通信システム１Ｂにて送信装置１０Ｂから受信装置２０Ｂ−ｋへマルチキャスト送信されるパケットの一例を示す図である。図２と図９を比較すれば明らかにように、送信装置１０Ｂからマルチキャスト送信されるパケットのヘッダ部には前述したシーケンス番号とは別に、分割データ番号が書き込まれている。この分割データ番号は、データ部に書き込まれている分割データが送信対象データを複数に分割した際の何番目のものであるか、を示すデータである。この分割データ番号は、第１実施形態におけるパケットのシーケンス番号と同様、パケットのデータ部に書き込まれている分割データの送信対象データ内での位置を示す分割データ識別子の役割を担う。
【００３３】
本実施形態では、上記のような多重化を施したため、パケットロスが発生したとしても、必ずしも分割データの欠落が生じるわけではない。多重化度がＭ（２以上の整数）である場合、同一の分割データがデータ部に書き込まれたＭ個のパケットのうちのＭ−１個が通信網３０内で消失した（パケットロスした）としても、残りの１つが受信装置２０Ｂ−ｋに到達すれば、その分割データについての欠落は生じない（例えば、図１０：分割データ番号＝１である分割データについての通信を参照）。したがって、同一の分割データがデータ部に書き込まれたＭ個のパケットの全てについてパケットロスが発生した場合にのみ、受信装置２０Ｂ−ｋは、その分割データについての再送信要求を送信装置１０Ｂへ送信する（例えば、図１０：分割データ番号＝２である分割データについての通信を参照）。
【００３４】
本実施形態によれば、通信網３０にてパケットロスが一定の頻度で発生する場合であっても、分割データの欠落およびその再送信の発生頻度をパケットロスの発生頻度よりも低く抑えることが可能になる。また、分割データの欠落が発生した場合であっても、その欠落が発生した受信装置２０Ｂ−ｋに対してのみＴＣＰに準拠したユニキャスト送信でその再送信が行われるため、一般的なマルチキャスト通信に比較して信頼性を向上させることができるとともに、その再送信によって通信網３０に過剰な負荷をかけることもない。
【００３５】
（Ｃ：第３実施形態）
図１１は、本発明の第３実施形態に係る通信システム１Ｃの構成例を示すブロック図である。図１１と図８とを比較すれば明らかなように、通信システム１Ｃは、送信装置１０Ｂに代えて送信装置１０Ｃを、受信装置２０Ｂ−ｋに代えて受信装置２０Ｃ−ｋを設けた点が通信システム１Ｂと異なる。詳細な図示は省略したが、送信装置１０Ｃの不揮発性記憶部には、送信装置１０Ａや送信装置１０Ｂに記憶されているものとは異なる送信制御プログラムが格納されており、この送信装置１０Ｃは、送信装置１０Ａや送信装置１０Ｂとは異なる処理を実行する。同様に、受信装置２０Ｃ−ｋの不揮発性記憶部には、受信装置２０Ａ−ｋや受信装置２０Ｂ−ｋに記憶されているものとは異なる受信制御プログラムが格納されており、受信装置２０Ａ−ｋや受信装置２０Ｂ−ｋとは異なる処理を実行する。
【００３６】
より詳細に説明すると、通信システム１Ｃにおいても、送信装置１０Ｃから受信装置２０Ｃ−ｋへマルチキャスト送信する分割データを多重化し、さらに、何れかの受信装置２０Ｃ−ｋにて分割データの欠落が検出された場合には、その受信装置２０Ｃ−ｋに再送信要求を送信させ、再送信を要求された分割データをその要求元に対してのみユニキャスト送信する処理を送信装置１０Ｃに実行させる点は前述した第２実施形態と同一である。ただし、本実施形態では、１つのパケットのデータ部に１個または連続する複数個の分割データを書き込むようにした点に特徴がある。
【００３７】
図１２は、通信システム１Ｃにて送信装置１０Ｃから受信装置２０Ｃ−ｋへマルチキャスト送信されるパケットの一例を示す図である。図１２に示すように、送信装置１０Ｃからマルチキャスト送信されるパケットのデータ部は、各々分割データが１個ずつ格納されるＭ（２以上の整数）個のセルに分割されている。つまり、図１２に示すパケットのデータ部には、最大でＭ個の連続する分割データが格納される。一方、図１２に示すように、ヘッダ部には、前述したシーケンス番号の他に、先頭分割データ番号と分割データ数とが書き込まれる。ここで、先頭分割データ番号は、データ部に書き込まれている分割データのうちの先頭のものの分割データ番号を示すデータであり、分割データ数は、実際に分割データが格納されているセルの個数（すなわち、データ部に書き込まれている分割データの個数）を示すデータである。この先頭分割データ番号と分割データ数は、データ部に書き込まれている１または複数の分割データについての送信対象データ内での位置を示すデータ識別子の役割を担う。
【００３８】
ここで、送信装置１０Ｃから受信装置２０Ｃ−ｋへマルチキャスト送信する分割データの多重化を行いつつ、１つのパケットのデータ部に１個または連続する複数個の分割データを書き込んで送信する態様としては、以下の２つの態様が考えられる。第１に、図１３（Ａ）に示すように、送信装置１０Ｃは、連続して送信するＭ個のパケットの各々に同一の分割データが少なくとも１個（図１３（Ａ）に示す例では、１個だけ）共通して含まれるように各パケットに書き込む分割データの範囲を調整する態様である。第２に、図１３（Ｂ）に示すように、送信装置１０Ｃに、同一のデータ部を有するパケットをＭ（２以上の整数）個ずつ連続させてマルチキャスト送信させる態様である。
【００３９】
第１の態様によれば、連続するＭ個のパケットについてパケットロスが発生しても、それらＭ個のパケットに共通して含まれている分割データのみが欠落する。例えば、図１３（Ａ）に示す例で、シーケンス番号１〜５までの５個のパケットについてパケットロスが発生した場合は、分割データＤ１のみが欠落する。これに対して、第２の態様では、同一のデータ部を有するＭ個のパケットの全てについてパケットロスが発生した場合には、それらパケットのデータ部に書き込まれている分割データの全てが欠落するものの、それらＭ個のパケットのうちの少なくとも１つが受信装置２０Ｃ−ｋに到達した場合には、それらパケットに含まれている分割データの欠落は発生しない。つまり、同一のデータ部を有するＭ個のパケットからなるグループの境界を跨いで２×（Ｍ−１）個のパケット（例えば、図１３（Ｂ）に示すシーケンス番号２〜９までの８個）が消失しても、分割データの欠落は生じないのである。これら２つの態様のうちの何れを採用するかについては、通信網３０におけるパケットロスの発生頻度、およびパケットロスが発生した場合には平均して何個分のパケットが連続して消失するのかを参考に決めれば良い。
【００４０】
このように、本第３実施形態によっても、前述した第２実施形態と同様に、通信網３０にてパケットロスが一定の頻度で発生する場合であっても、分割データの欠落およびその再送信の発生頻度をパケットロスの発生頻度よりも低く抑えることが可能になる。また、分割データの欠落が発生した場合であっても、その欠落が発生した受信装置２０Ｃ−ｋに対してのみＴＣＰに準拠したユニキャスト送信でその再送信が行われるため、一般的なマルチキャスト通信に比較して信頼性を向上させることができるとともに、その再送信によって通信網３０に過剰な負荷をかけることもない。
【００４１】
（Ｄ：変形）
以上本発明の各実施形態について説明したが、これら実施形態に以下に述べる変形を加えても良いことは勿論である。
（１）上述した各実施形態では、データ通信の両端に位置する送信装置および受信装置に本発明を適用したが、送信装置から送信されたパケットを受信し受信装置へ転送する中継装置（例えば、ルータ）に本発明を適用しても勿論良い。送信装置との関係では中継装置は受信装置として振舞い、受信装置との関係では中継装置は送信装置として振舞うからである。
【００４２】
（２）上述した第１実施形態では、送信装置１０Ａからマルチキャスト送信するパケットのデータ部に分割データを１つずつ書き込んだが、各パケットのデータ部に連続する複数個の分割データを互いに重複しないように書き込んでマルチキャスト送信させても良い。ただし、各パケットのデータ部に連続する複数個の分割データを重複しないように書き込んでマルチキャスト送信する態様においては、第３実施形態にて説明した場合と同様、データ部に書き込まれている分割データのうちの先頭のものの分割データ番号と同データ部に書き込まれている分割データの数を示す分割データ数とを分割データ識別子としてヘッダ部に書き込んでマルチキャスト送信する必要がある。
【００４３】
（３）上述した各実施形態では、これら各実施形態の特徴を顕著に示す処理を各送信装置に実行させる送信制御プログラムがその送信装置に予め格納されていた。しかし、例えばＣＤ−ＲＯＭ（Compact Disk-Read Only）などのコンピュータ装置読み取り可能な記録媒体に上記送信制御プログラムを書き込んで配布しても良く、また、インターネットなどの電気通信回線経由のダウンロードにより上記送信制御プログラムを配布しても良い。このようにして配布される送信制御プログラムをパーソナルコンピュータなどの一般的なコンピュータ装置に記憶させ、その制御部をその送信制御プログラムにしたがって作動させることにより、一般的なコンピュータ装置を上記各実施形態に係る送信装置として動作させることが可能になる。また、上述した各実施形態の受信装置に予め記憶されていた受信制御プログラムについても同様に、コンピュータ装置読み取り可能な記録媒体に書き込んで配布しても良く、電気通信回線経由のダウンロードにより配布しても良い。
【図面の簡単な説明】
【００４４】
【図１】本発明の第１実施形態に係る通信システム１Ａの構成例を示す図である。
【図２】同通信システム１Ａにて送信装置１０Ａから受信装置２０Ａ−ｋへマルチキャスト送信されるパケットのデータフォーマットの一例を示す図である。
【図３】同送信装置１０Ａの構成例を示す図である。
【図４】同送信装置１０Ａの制御部１１０が実行する再送信処理の流れを示すフローチャートである。
【図５】同受信装置２０Ａ−ｋの構成例を示す図である。
【図６】同通信システム１Ａにおける通信シーケンスの一例を示す図である。
【図７】同通信システム１Ａにおける通信シーケンスの一例を示す図である。
【図８】本発明の第２実施形態に係る通信システム１Ｂの構成例を示す図である。
【図９】同通信システム１Ｂにて送信装置１０Ｂから受信装置２０Ｂ−ｋへマルチキャスト送信されるパケットのデータフォーマットの一例を示す図である。
【図１０】同通信システム１Ｂにおける通信シーケンスの一例を示す図である。
【図１１】本発明の第３実施形態に係る通信システム１Ｃの構成例を示す図である。
【図１２】同通信システム１Ｃにて送信装置１０Ｃから受信装置２０Ｃ−ｋへマルチキャスト送信されるパケットのデータフォーマットの一例を示す図である。
【図１３】同パケットへの分割データの書き込み態様の一例を示す図である。
【符号の説明】
【００４５】
１Ａ，１Ｂ，１Ｃ…通信システム、１０Ａ，１０Ｂ，１０Ｃ…送信装置、２０Ａ−ｋ，２０Ｂ−ｋ，２０Ｃ−ｋ…受信装置、３０…通信網、１１０…制御部、１２０…通信Ｉ／Ｆ部、１３０…記憶部、１３１…揮発性記憶部、１３２…不揮発性記憶、１３２ａ…送信制御プログラム、１３２ｂ…受信制御プログラム、１４０…バス。
【図１】
2009253949.tif 000003
【図２】
2009253949.tif 000004
【図３】
2009253949.tif 000005
【図４】
2009253949.tif 000006
【図５】
2009253949.tif 000007
【図６】
2009253949.tif 000008
【図７】
2009253949.tif 000009
【図８】
2009253949.tif 000010
【図９】
2009253949.tif 000011
【図１０】
2009253949.tif 000012
【図１１】
2009253949.tif 000013
【図１２】
2009253949.tif 000014
【図１３】
2009253949.tif 000015