(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023032440
(43)【公開日】2023-03-09
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
H04L 47/28 20220101AFI20230302BHJP
【FI】
H04L47/28
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2021138571
(22)【出願日】2021-08-27
(71)【出願人】
【識別番号】000000295
【氏名又は名称】沖電気工業株式会社
(74)【代理人】
【識別番号】100140958
【弁理士】
【氏名又は名称】伊藤 学
(74)【代理人】
【識別番号】100137888
【弁理士】
【氏名又は名称】大山 夏子
(74)【代理人】
【識別番号】100190942
【弁理士】
【氏名又は名称】風間 竜司
(72)【発明者】
【氏名】上田 剛弘
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030HB18
5K030LC01
5K030MB06
(57)【要約】
【課題】通信方式を切り替える際にパケットの連続性を維持することが可能な仕組みを提供する。
【解決手段】第1通信方式を使用して送信され第1受信部により受信された第1パケット及び前記第1通信方式とは異なる第2通信方式を使用して送信され第2受信部により受信された第2パケットの出力タイミングを制御する制御部、を備え、前記制御部は、同一内容である前記第1パケットと前記第2パケットとの受信時刻の差に応じたタイミングで、前記第1パケット又は前記第2パケットを出力する、情報処理装置。
【選択図】
図1
【特許請求の範囲】
【請求項1】
第1通信方式を使用して送信され第1受信部により受信された第1パケット及び前記第1通信方式とは異なる第2通信方式を使用して送信され第2受信部により受信された第2パケットの出力タイミングを制御する制御部、
を備え、
前記制御部は、同一内容である前記第1パケットと前記第2パケットとの受信時刻の差に応じたタイミングで、前記第1パケット又は前記第2パケットを出力する、
情報処理装置。
【請求項2】
前記制御部は、パケットの継続的な送受信を開始する際に受信された、同一内容である前記第1パケットと前記第2パケットとの受信時刻の差を測定し、測定した前記受信時刻の差に応じたタイミングで前記第1パケット又は前記第2パケットを出力する、
請求項1に記載の情報処理装置。
【請求項3】
前記制御部は、パケットの継続的な送受信を開始する際に受信された、同一内容である前記第1パケット又は前記第2パケットのうちより早くに受信されたパケットを、前記受信時刻の差に対応する遅延時間だけ遅延させて出力する、
請求項2に記載の情報処理装置。
【請求項4】
前記遅延時間は、前記受信時刻の差と同一である、
請求項3に記載の情報処理装置。
【請求項5】
前記遅延時間は、前記受信時刻の差に余裕値を加算した値である、
請求項3に記載の情報処理装置。
【請求項6】
前記余裕値は、前記第1パケット及び前記第2パケットを伝送するネットワークの特性に基づいて設定される、
請求項5に記載の情報処理装置。
【請求項7】
前記制御部は、同一内容である前記第1パケット及び前記第2パケットが受信された場合、同一内容である前記第1パケット及び前記第2パケットのうち、早くに受信されたパケットを出力し、遅くに受信されたパケットを破棄する、
請求項1~6のいずれか一項に記載の情報処理装置。
【請求項8】
同一内容である前記第1パケット及び前記第2パケットのうち一方は継続的に送受信されるパケットであり、他方はパケットの継続的な送受信を開始する際に一時的に送受信されるパケットである、
請求項1~7のいずれか一項に記載の情報処理装置。
【請求項9】
前記第1通信方式及び前記第2通信方式のうち一方はユニキャストであり、他方はマルチキャストである、
請求項1~8のいずれか一項に記載の情報処理装置。
【請求項10】
前記制御部は、前記第1パケットと前記第2パケットとが同一内容であるか否かを、パケットに付与されたパケット番号に基づいて判定する、
請求項1~9のいずれか一項に記載の情報処理装置。
【請求項11】
第1通信方式を使用して第1パケットを送信するよう第1送信部を制御し、前記第1通信方式とは異なる第2通信方式を使用して第2パケットを送信するよう第2送信部を制御する制御部を備え、
前記制御部は、受信装置へのパケットの継続的な送信を開始する際に、同一内容のパケットを前記第1パケット及び前記第2パケットとして送信するよう制御する、
情報処理装置。
【請求項12】
第1通信方式を使用して送信され第1受信部により受信された第1パケット及び前記第1通信方式とは異なる第2通信方式を使用して送信され第2受信部により受信された第2パケットの出力タイミングを制御すること、
を含み、
前記出力タイミングを制御することは、同一内容である前記第1パケットと前記第2パケットとの受信時刻の差に応じたタイミングで、前記第1パケット又は前記第2パケットを出力することを含む、
プロセッサにより実行される情報処理方法。
【請求項13】
第1通信方式を使用して第1パケットを送信するよう第1送信部を制御し、前記第1通信方式とは異なる第2通信方式を使用して第2パケットを送信するよう第2送信部を制御すること、
を含み、
前記第1送信部及び前記第2送信部を制御することは、受信装置へのパケットの継続的な送信を開始する際に、同一内容のパケットを前記第1パケット及び前記第2パケットとして送信するよう制御することを含む、
プロセッサにより実行される情報処理方法。
【請求項14】
コンピュータを、
第1通信方式を使用して送信され第1受信部により受信された第1パケット及び前記第1通信方式とは異なる第2通信方式を使用して送信され第2受信部により受信された第2パケットの出力タイミングを制御する制御部、
として機能させ、
前記制御部は、同一内容である前記第1パケットと前記第2パケットとの受信時刻の差に応じたタイミングで、前記第1パケット又は前記第2パケットを出力する、
プログラム。
【請求項15】
コンピュータを、
第1通信方式を使用して第1パケットを送信するよう第1送信部を制御し、前記第1通信方式とは異なる第2通信方式を使用して第2パケットを送信するよう第2送信部を制御する制御部として機能させ、
前記制御部は、受信装置へのパケットの継続的な送信を開始する際に、同一内容のパケットを前記第1パケット及び前記第2パケットとして送信するよう制御する、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
近年では、通信方式を切り替えながら情報を送信する技術が開発されている。その一例として、下記特許文献1では、所定の評価基準に従ってマルチキャストからユニキャストに切り替える仕組みが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、上記特許文献1に記載の技術では、マルチキャストからユニキャストに切り替える際のパケットの連続性については何ら検討されていなかった。そのため、マルチキャストからユニキャストへの切り替えの際にパケットが非連続となり、種々の不都合が生じる可能性があった。例えば、連続的に途切れなくパケットを伝送することが重要な動画配信システムにおいて、切り替え時に動画の途切れ又は乱れが発生する可能性があった。
【0005】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、通信方式を切り替える際にパケットの連続性を維持することが可能な仕組みを提供することにある。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明のある観点によれば、第1通信方式を使用して送信され第1受信部により受信された第1パケット及び前記第1通信方式とは異なる第2通信方式を使用して送信され第2受信部により受信された第2パケットの出力タイミングを制御する制御部、を備え、前記制御部は、同一内容である前記第1パケットと前記第2パケットとの受信時刻の差に応じたタイミングで、前記第1パケット又は前記第2パケットを出力する、情報処理装置が提供される。
【0007】
前記制御部は、パケットの継続的な送受信を開始する際に受信された、同一内容である前記第1パケットと前記第2パケットとの受信時刻の差を測定し、測定した前記受信時刻の差に応じたタイミングで前記第1パケット又は前記第2パケットを出力してもよい。
【0008】
前記制御部は、パケットの継続的な送受信を開始する際に受信された、同一内容である前記第1パケット又は前記第2パケットのうちより早くに受信されたパケットを、前記受信時刻の差に対応する遅延時間だけ遅延させて出力してもよい。
【0009】
前記遅延時間は、前記受信時刻の差と同一であってもよい。
【0010】
前記遅延時間は、前記受信時刻の差に余裕値を加算した値であってもよい。
【0011】
前記余裕値は、前記第1パケット及び前記第2パケットを伝送するネットワークの特性に基づいて設定されてもよい。
【0012】
前記制御部は、同一内容である前記第1パケット及び前記第2パケットが受信された場合、同一内容である前記第1パケット及び前記第2パケットのうち、早くに受信されたパケットを出力し、遅くに受信されたパケットを破棄してもよい。
【0013】
同一内容である前記第1パケット及び前記第2パケットのうち一方は継続的に送受信されるパケットであり、他方はパケットの継続的な送受信を開始する際に一時的に送受信されるパケットであってもよい。
【0014】
前記第1通信方式及び前記第2通信方式のうち一方はユニキャストであり、他方はマルチキャストであってもよい。
【0015】
前記制御部は、前記第1パケットと前記第2パケットとが同一内容であるか否かを、パケットに付与されたパケット番号に基づいて判定してもよい。
【0016】
また、上記課題を解決するために、本発明の別の観点によれば、第1通信方式を使用して第1パケットを送信するよう第1送信部を制御し、前記第1通信方式とは異なる第2通信方式を使用して第2パケットを送信するよう第2送信部を制御する制御部を備え、前記制御部は、受信装置へのパケットの継続的な送信を開始する際に、同一内容のパケットを前記第1パケット及び前記第2パケットとして送信するよう制御する、情報処理装置が提供される。
【0017】
また、上記課題を解決するために、本発明の別の観点によれば、第1通信方式を使用して送信され第1受信部により受信された第1パケット及び前記第1通信方式とは異なる第2通信方式を使用して送信され第2受信部により受信された第2パケットの出力タイミングを制御すること、を含み、前記出力タイミングを制御することは、同一内容である前記第1パケットと前記第2パケットとの受信時刻の差に応じたタイミングで、前記第1パケット又は前記第2パケットを出力することを含む、プロセッサにより実行される情報処理方法が提供される。
【0018】
また、上記課題を解決するために、本発明の別の観点によれば、第1通信方式を使用して第1パケットを送信するよう第1送信部を制御し、前記第1通信方式とは異なる第2通信方式を使用して第2パケットを送信するよう第2送信部を制御すること、を含み、前記第1送信部及び前記第2送信部を制御することは、受信装置へのパケットの継続的な送信を開始する際に、同一内容のパケットを前記第1パケット及び前記第2パケットとして送信するよう制御することを含む、プロセッサにより実行される情報処理方法が提供される。
【0019】
また、上記課題を解決するために、本発明の別の観点によれば、コンピュータを、第1通信方式を使用して送信され第1受信部により受信された第1パケット及び前記第1通信方式とは異なる第2通信方式を使用して送信され第2受信部により受信された第2パケットの出力タイミングを制御する制御部、として機能させ、前記制御部は、同一内容である前記第1パケットと前記第2パケットとの受信時刻の差に応じたタイミングで、前記第1パケット又は前記第2パケットを出力する、プログラムが提供される。
【0020】
また、上記課題を解決するために、本発明の別の観点によれば、コンピュータを、第1通信方式を使用して第1パケットを送信するよう第1送信部を制御し、前記第1通信方式とは異なる第2通信方式を使用して第2パケットを送信するよう第2送信部を制御する制御部として機能させ、前記制御部は、受信装置へのパケットの継続的な送信を開始する際に、同一内容のパケットを前記第1パケット及び前記第2パケットとして送信するよう制御する、プログラムが提供される。
【発明の効果】
【0021】
以上説明したように本発明によれば、通信方式を切り替える際にパケットの連続性を維持することが可能な仕組みが提供される。
【図面の簡単な説明】
【0022】
【
図1】第1の実施形態に係るシステムの論理的な構成の一例を示すブロック図である。
【
図2】同実施形態に係るシステムにおいて送受信されるパケットの構成の一例を示す図である。
【
図3】同実施形態に係るパケット整形部によるパケットの出力タイミングの制御に関する第1の具体例を説明するための図である。
【
図4】同実施形態に係るパケット整形部によるパケットの出力タイミングの制御に関する第2の具体例を説明するための図である。
【
図5】同実施形態に係るパケット整形部によるパケットの出力タイミングの制御に関する第3の具体例を説明するための図である。
【
図6】同実施形態に係るパケット整形部によるパケットの出力タイミングの制御に関する第4の具体例を説明するための図である。
【
図7】同実施形態に係るシステムにおいて実行される処理の流れの一例を示すシーケンス図である。
【
図8】第2の実施形態に係るパケット整形部によるパケットの出力タイミングの制御に関する具体例を説明するための図である。
【
図9】第1及び第2の実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【0023】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0024】
<1.第1の実施形態>
<1.1.構成例>
図1は、第1の実施形態に係るシステム1の論理的な構成の一例を示すブロック図である。
図1に示すように、システム1は、送信装置10及び受信装置20を含む。送信装置10と受信装置20とは、ネットワーク30により通信可能に接続されている。ネットワーク30は、例えば、移動体通信事業者を含む電気通信事業者が管理する通信網、又は個人が管理する家庭向けネットワーク等、データを伝送可能な、有線又は無線の任意のネットワークであってよい。
図1では1つの受信装置20が図示されているが、システム1は複数の受信装置20を含んでいてもよい。
【0025】
システム1は、データを伝送するシステムである。システム1は、データを複数のパケットに分解して伝送する。パケットは、分解した各データ本体(ペイロードとも称される)に、送信先などの制御情報(ヘッダとも称される)を付加したものである。
【0026】
システム1は、伝送されるデータの種類、通信プロトコル、送信方法、及び配信方法等の通信方式を特に限定するものではない。一例として、システム1において、動画及び音声等の任意の種類のデータが送受信されてよい。他の一例として、システム1において、RTP(Real-time Transport Protocol)、UDP(User Datagram Protocol)及びIP(Internet Protocol)等の任意の通信プロトコルが採用されてよい。他の一例として、システム1において、ユニキャスト及びマルチキャスト等の任意の送信方法が採用されてよい。他の一例として、システム1において、ストリーミング及びダウンロード等の任意の配信方法が採用されてよい。
【0027】
本明細書では、システム1は、時間軸に沿って連続するデータを、RTPパケット、UDPパケット及びIPパケットのうちいずれかのパケットとして送信するものとする。なお、これらの通信プロトコルはあくまで一例であって、他の任意の通信プロトコルに準拠したパケットが送受信されてよい。
【0028】
システム1において送受信されるパケットは、受信側でパケットの順番を正しく認識できるもの、即ち送信側でのパケットの並びを受信側で再現できるものであればよい。例えば、パケットには、パケットの順番を示す通し番号(以下では、パケット番号とも称する)が付与されてもよい。パケットのサイズは、固定長であってもよいし、可変長であってもよい。
【0029】
以下では、システム1において送受信されるRTPパケット、UDPパケット、及びIPパケットの構成について、
図2を参照しながら説明する。
【0030】
図2は、本実施形態に係るシステム1において送受信されるパケットの構成の一例を示す図である。
図2に示すように、RTPパケットは、RTPヘッダと、RTPペイロードに含まれる分解されたデータ本体とを有する。
図2に示すように、UDPパケットは、UDPヘッダと、UDPペイロードに含まれるRTPパケットとを有する。また、IPパケットは、IPヘッダと、IPペイロードに含まれるUDPパケットとを有する。つまり、IPパケットは、UDPパケットにIPヘッダを付加したものであり、UDPパケットは、RTPパケットにUDPヘッダを付加したものである。これらのパケットには、パケット番号及びパケットの送信時刻を示す情報(以下では、「タイムスタンプ」とも称する)等の制御情報が格納される。制御情報は、典型的には、RTPヘッダ、UDPヘッダ、又はIPヘッダの少なくともいずれか1つに格納される。なお、ここで説明したパケットの構成はあくまで例示であり、ここで説明したものにパケットの構成は限定されない。
【0031】
システム1は、上記説明したパケットを、マルチキャスト又はユニキャストのいずれかにより送受信するものとする。マルチキャストとは、ネットワーク上で特定の複数の相手に同じデータ(パケット)を一斉に送信する送信方法である。他方、ユニキャストとは、特定の1の相手にデータを送信する送信方法である。例えば、送信装置10は、データの送信先が1つの受信装置20であればユニキャストを選択し、データの送信先が複数の受信装置20であればマルチキャストを選択する。
【0032】
以下、送信装置10及び受信装置20の構成例について説明する。
【0033】
(1)送信装置10
送信装置10は、受信装置20にパケットを送信する装置である。送信装置10は、送信装置10自身でパケットを生成して送信してもよいし、他の装置が生成したパケットを受信して中継(即ち、転送)してもよい。前者の場合、送信装置10は、例えば、動画等のコンテンツの配信サーバ又はエンコーダ等である。後者の場合、送信装置10は、例えば、中継サーバ、ルータ、又は無線通信のアクセスポイント等である。本明細書では、送信装置10は、送信装置10自身でパケットを生成して送信するものとする。
【0034】
図1に示すように、送信装置10は、パケット生成部11、パケット複製部12、パケット送信調整部13、パケット送信制御部14、ユニキャストパケット送信部15、及びマルチキャストパケット送信部16を含む。以下、各構成要素の構成について説明する。
【0035】
パケット生成部11は、パケットを生成する機能を有する。パケット生成部11は、前段の装置又はアプリケーション等の上位層から入力された情報を分解して、パケットを生成する。パケット生成部11は、生成したパケットにパケット番号を付与する。パケット番号は、例えば昇順で付与されてもよい。パケット生成部11は、生成したパケットをパケット複製部12に出力する。
【0036】
パケット複製部12は、パケット生成部11により生成されたパケットを複製する機能を有する。パケット複製部12は、パケットヘッダを含むパケット全体を複製する。複製されたパケットには、同じパケット番号が付与されている。パケット複製部12は、パケット送信制御部14による制御に基づいて、パケットを複製するか否かを切り替える。パケットを複製する場合、パケット複製部12は、複製したパケットをユニキャストパケット送信部15及びマルチキャストパケット送信部16の各々に出力する。パケットを複製しない場合、パケット複製部12は、ユニキャストパケット送信部15又はマルチキャストパケット送信部16のうち、パケット送信制御部14により指定された一方にパケットを出力する。
【0037】
パケット送信調整部13は、受信装置20との間でパケットの送受信に関する各種調整を行う機能を有する。例えば、パケット送信調整部13は、受信装置20との間で各種制御情報を共有する。制御情報は、一例として、ユニキャスト又はマルチキャストのいずれでパケットを送受信するか、並びに送信先のアドレス及びポート番号等を含む。そして、パケット送信調整部13は、共有した制御情報をパケット送信制御部14に出力する。
【0038】
パケット送信制御部14は、パケット送信調整部13による調整結果に基づいて、送信装置10によるパケットの送信処理の全般を制御する。詳しくは、パケット送信制御部14は、パケット複製部12によるパケットの複製要否、並びにユニキャストパケット送信部15及びマルチキャストパケット送信部16によるパケットの送信を制御する。例えば、パケット送信制御部14は、パケットの複製要否を示す情報、及びパケットの出力先を示す情報をパケット複製部12に出力する。また、パケット送信制御部14は、パケットの送信先のアドレス及びポート番号を示す情報を、ユニキャストパケット送信部15及びマルチキャストパケット送信部16の少なくともいずれか一方に出力する。
【0039】
ユニキャストパケット送信部15は、パケットをユニキャスト送信する機能を有する。ユニキャストパケット送信部15は、パケット送信制御部14による制御に基づいて、アドレス及びポート番号をパケットヘッダに書き込んだ上で、パケットを送信する。
【0040】
マルチキャストパケット送信部16は、パケットをマルチキャスト送信する機能を有する。マルチキャストパケット送信部16は、パケット送信制御部14による制御に基づいて、アドレス及びポート番号をパケットヘッダに書き込んだ上で、パケットを送信する。
【0041】
(2)受信装置20
受信装置20は、送信装置10からパケットを受信する装置である。受信装置20は、受信装置20自身でパケットに含まれるデータの処理(例えば、動画の再生)を行ってもよいし、受信したパケットを他の装置に中継(即ち、転送)してもよい。前者の場合、受信装置20は、例えば、セットアップボックス(STB:Set Top Box)、又はテレビ受信装置等である。後者の場合、受信装置20は、例えば、中継サーバ、ルータ、又は無線通信のアクセスポイント等である。本明細書では、受信装置20は、受信装置20自身でパケットに含まれるデータの処理を行うものとする。
【0042】
図1に示すように、受信装置20は、パケット整形部22、パケット受信調整部23、パケット受信制御部24、ユニキャストパケット受信部25、及びマルチキャストパケット受信部26を含む。以下、各構成要素の構成について説明する。
【0043】
パケット受信調整部23は、送信装置10との間でパケットの送受信に関する各種調整を行う機能を有する。例えば、パケット受信調整部23は、送信装置10との間で各種制御情報を共有する。そして、パケット受信調整部23は、共有した制御情報をパケット受信制御部24に出力する。
【0044】
パケット受信制御部24は、パケット受信調整部23による調整結果に基づいて、受信装置20によるパケットの受信処理の全般を制御する。詳しくは、パケット受信制御部24は、ユニキャストパケット受信部25及びマルチキャストパケット受信部26によるパケットの受信を制御する。例えば、パケット受信制御部24は、パケットの送信先のアドレス及びポート番号を示す情報を、ユニキャストパケット受信部25及びマルチキャストパケット受信部26の少なくともいずれか一方に出力する。
【0045】
ユニキャストパケット受信部25は、送信装置10からユニキャスト送信されたパケットを受信する機能を有する。ユニキャストパケット受信部25は、受信したパケットをパケット整形部22に出力する。
【0046】
マルチキャストパケット受信部26は、送信装置10からマルチキャスト送信されたパケットを受信する機能を有する。マルチキャストパケット受信部26は、受信したパケットをパケット整形部22に出力する。
【0047】
パケット整形部22は、ユニキャストパケット受信部25及びマルチキャストパケット受信部26から出力されたパケットを制御する機能を有し、当該パケット整形部22から当該パケットを出力するタイミングを制御する機能を有する。具体的には、パケット整形部22は、ユニキャストパケット受信部25及びマルチキャストパケット受信部26により受信されたパケットを整形して出力する。例えば、パケット整形部22は、ユニキャストパケット受信部25及びマルチキャストパケット受信部26により受信されたパケットのうち、重複するパケットを破棄し、パケット番号に基づいて順番にパケットを並べ直して出力する。パケット整形部22から出力されたパケットは、後段の装置又はアプリケーション等の上位層により分解前のデータに復元されて、復元されたデータによる動画再生等が行われる。
【0048】
(3)補足
ユニキャストは、第1通信方式の一例である。ユニキャストで送信されるパケット(以下、ユニキャストパケットとも称する)は、第1パケットの一例である。ユニキャストパケット送信部15は、第1通信方式を使用して第1パケットを送信する第1送信部の一例である。他方、ユニキャストパケット受信部25は、第1通信方式を使用して送信された第1パケットを受信する第1受信部の一例である。
【0049】
マルチキャストは、第2通信方式の一例である。マルチキャストで送信されるパケット(以下、マルチキャストパケットとも称する)は、第2パケットの一例である。マルチキャストパケット送信部16は、第2通信方式を使用して第2パケットを送信する第2送信部の一例である。他方、マルチキャストパケット受信部26は、第2通信方式を使用して送信された第2パケットを受信する第2受信部の一例である。
【0050】
パケット送信制御部14は、第1送信部及び第2送信部の動作を制御する制御部の一例である。他方、パケット整形部22は、第1受信部により受信された第1パケット及び第2受信部により受信された第2パケットの出力タイミングを制御する制御部の一例である。
【0051】
<1.2.技術的特徴>
送信装置10は、受信装置20からデータの送信開始を要求するデータ送信開始要求が受信されると、要求されたデータを分解したパケットの送信を開始する。ここでは、送信開始を要求されたデータは動画データであるものとし、送信装置10は、動画データのパケット送信を開始するものとする。即ち、データ送信開始要求は、動画の視聴開始要求である。
【0052】
パケット受信調整部23は、視聴開始要求を送信装置10に送信する。パケット送信調整部13は、視聴開始要求を受信すると、受信した視聴開始要求をパケット送信制御部14に出力する。視聴開始要求は、例えば、受信装置20のアドレス、及び視聴を要求する動画を特定するための情報等を含む。
【0053】
パケット送信制御部14は、データ送信開始要求が受信されると、要求されたデータ(即ち、動画)を分解したパケットを、ユニキャストで送信するかマルチキャストで送信するかを選択する。例えば、パケット送信制御部14は、視聴開始要求を送信した視聴者(即ち、受信装置20)を含め、視聴者数が1であれば、ユニキャストを選択する。他方、パケット送信制御部14は、視聴開始要求を送信した視聴者を含め、視聴者数が複数であれば、マルチキャストを選択する。なお、マルチキャストを選択することは、受信装置20が新たに視聴開始要求したことにより、動画の視聴者数が1から2に増え、ユニキャストからマルチキャストに切り替えると決定することを含む。また、マルチキャストを選択することは、視聴開始要求された動画がすでにマルチキャストで送信されており、視聴開始要求した受信装置20をマルチキャスト送信の対象に追加すると決定することを含む。
【0054】
パケット送信制御部14は、パケットの送信開始準備のための処理を制御する。例えば、パケット送信制御部14は、パケットの送受信に関する制御情報を、ユニキャストパケット送信部15又はマルチキャストパケット送信部16に出力したり、パケット送信調整部13を介してパケット受信調整部23と通知したりする。パケットの送受信に関する制御情報は、例えば、パケットをユニキャスト又はマルチキャストのいずれをパケットの送受信に使用するかを示す情報、送信先のアドレス及びポート番号等を含む。パケット受信調整部23は、通知された制御情報をパケット受信制御部24に出力する。パケット受信制御部24は、かかる制御情報に基づいて、ユニキャストパケット受信部25又はマルチキャストパケット受信部26における受信準備を制御する。これにより、送信装置10におけるパケットの送信準備が整い、受信装置20におけるパケットの受信準備が整うこととなる。
【0055】
その後、パケット送信制御部14は、ユニキャスト又はマルチキャストのうち選択した一方の送信方法でのパケットの継続的な送信を開始する。例えば、パケット送信制御部14は、データの送信を停止するよう要求するデータ送信停止要求(即ち、動画の視聴を停止するよう要求する視聴停止要求)が受信装置20から受信されるまで、受信装置20へパケットの送信を継続する。ただし、視聴者の増加又は減少に応じて、パケットの送信方法がユニキャストからマルチキャストへ、又はマルチキャストからユニキャストへ、切り替えられる場合がある。
【0056】
パケット送信制御部14は、受信装置20へのパケットの継続的な送信を開始する際に、同一内容のパケットをユニキャストパケット及びマルチキャストパケットとして送信するよう、ユニキャストパケット送信部15及びマルチキャストパケット送信部16を制御する。より詳しくは、パケット送信制御部14は、ユニキャスト又はマルチキャストのうち選択した一方の送信方法でのパケットの継続的な送信を開始すると共に、複製したパケットを他方の送信方法で一時的に送信する。即ち、受信装置20へのパケットの継続的な送信を開始する際に送信される同一内容であるユニキャストパケット及びマルチキャストパケットのうち一方は継続的に送受信されるパケットであり、他方はパケットの継続的な送受信を開始する際に一時的に送受信されるパケットである。一時的にパケットを送信するとは、1以上の所定個のパケットを送信することを指す。なお、同一内容であるユニキャストパケットとマルチキャストパケットとは、典型的には同時に送信されるが、時間軸で連続して送信される等、送信タイミングが異なっていてもよい。一時的に同一内容のパケットを送信することにより、後述するように、ユニキャストパケットとマルチキャストパケットとの間の伝送時間の差を受信装置20側で測定することが可能となる。
【0057】
なお、パケット送信制御部14は、一時的なパケットの送受信に関する制御情報を、ユニキャストパケット送信部15又はマルチキャストパケット送信部16に出力したり、パケット送信調整部13を介してパケット受信調整部23に通知したりしてもよい。一時的なパケットの送受信に関する制御情報は、例えば、一時的に送信するパケットの数及び送信時間(即ち、タイムアウト時間)、並びに送信先のアドレス及びポート番号等を含む。パケット受信調整部23は、通知された制御情報をパケット受信制御部24に出力する。パケット受信制御部24は、かかる制御情報に基づいて、ユニキャストパケット受信部25又はマルチキャストパケット受信部26における受信準備を制御する。これにより、送信装置10における一時的なパケットの送信準備が整い、受信装置20における一時的なパケットの受信準備が整うこととなる。
【0058】
以下、一時的なパケットの送受信に関する例を説明する。
【0059】
第1の例として、視聴開始要求された動画の送信方法としてユニキャストが選択された場合が考えられる。その場合、パケット送信制御部14は、ユニキャスト送信を開始するようユニキャストパケット送信部15を制御する。それと共に、パケット送信制御部14は、1以上の所定個のパケットを複製するようパケット複製部12に指示し、複製されたパケットをマルチキャスト送信するようマルチキャストパケット送信部16を制御する。
【0060】
第2の例として、視聴開始要求された動画の送信方法としてマルチキャストが選択された場合であって、それまで当該動画をマルチキャスト送信していなかった場合が考えられる。その場合、パケット送信制御部14は、マルチキャスト送信を開始するようマルチキャストパケット送信部16を制御する。それと共に、パケット送信制御部14は、1以上の所定個のパケットを複製するようパケット複製部12に指示し、複製されたパケットをユニキャスト送信するようユニキャストパケット送信部15を制御する。
【0061】
第3の例として、視聴開始要求された動画の送信方法としてマルチキャストが選択された場合であって、それまでにすでに当該動画をマルチキャスト送信していた場合が考えられる。その場合、パケット送信制御部14は、マルチキャスト送信を継続するようマルチキャストパケット送信部16を制御する。それと共に、パケット送信制御部14は、1以上の所定個のパケットを複製するようパケット複製部12に指示し、複製されたパケットをユニキャスト送信するようユニキャストパケット送信部15を制御する。
【0062】
以上説明した処理により、複製されたパケット、即ちパケット番号を含め同一内容のユニキャストパケット及びマルチキャストパケットが、受信装置20へ送信されることとなる。ただし、ユニキャストパケットとマルチキャストパケットとで、伝送経路が違う場合、及び優先制御によりパケットの中継処理のタイミングが異なる場合には、伝送時間に差が生じ得る。そこで、以下に説明するように、受信装置20は、かかる伝送時間の差を測定し、測定した伝送時間の差に基づく処理を行う。
【0063】
まず、パケット整形部22は、受信したパケットをバッファリングする。そして、パケット整形部22は、バッファリングされた複数のパケットから、複製された同一内容のユニキャストパケットとマルチキャストパケットとを特定する。その際、パケット整形部22は、ユニキャストパケットとマルチキャストパケットとが同一内容であるか否かを、パケットに付与されたパケット番号に基づいて判定する。例えば、パケット整形部22は、同じパケット番号が付与されているユニキャストパケットとマルチキャストパケットとを、同一内容であると判定する。他方、パケット整形部22は、異なるパケット番号が付与されているユニキャストパケットとマルチキャストパケットとを、同一内容でないと判定する。かかる構成により、パケット整形部22は、複製されたパケットを容易に特定することが可能となる。
【0064】
パケット整形部22は、同一内容であるユニキャストパケットとマルチキャストパケットとの受信時刻の差を測定する。同一内容であるユニキャストパケットとマルチキャストパケットとの組み合わせが複数受信された場合、受信時刻の差として、例えば、各々の組み合わせにおける最大値が測定されてもよい。ここで、同一内容であるユニキャストパケットとマルチキャストパケットとの受信時刻の差は、ユニキャストパケットとマルチキャストパケットとの伝送時間の差に対応する。
【0065】
そして、パケット整形部22は、測定した受信時刻の差に応じたタイミングで、ユニキャストパケット又はマルチキャストパケットを出力する。詳しくは、パケット整形部22は、ユニキャストパケット又はマルチキャストパケットのうち、受信時刻が遅い方(即ち、伝送時間が長い方)のパケットに合わせたタイミングで、ユニキャストパケット又はマルチキャストパケットを出力する。かかる構成によれば、ユニキャストパケットとマルチキャストパケットとの間の伝送時間の差を視聴開始時に予め吸収しておくことが可能となる。従って、その後パケットの送信方法がユニキャスト/マルチキャストで切り替えられた場合であっても、切り替え前後におけるパケットの連続性を維持することが可能となる。なお、パケットの連続性を維持するとは、パケットの途切れ、及び欠落を防止することを意味する。これにより、動画の途切れ及び乱れの発生を防止して、ユニキャスト/マルチキャストの切り替えが動画の再生に影響を与えないようにすることが可能となる。
【0066】
ここで、同一内容のユニキャストパケット及びマルチキャストパケットは、パケットの継続的な送受信を開始する際に受信される。そのため、パケット整形部22は、パケットの継続的な送受信を開始する際に受信された、同一内容であるユニキャストパケットとマルチキャストパケットとの受信時刻の差を測定する。そして、パケット整形部22は、測定した受信時刻の差に応じたタイミングで、ユニキャストパケット又はマルチキャストパケットを出力する。より簡易には、パケット整形部22は、パケットの継続的な送受信を開始する際に測定した受信時刻の差に基づいて、その後に継続して受信されるパケットの出力タイミングを制御する。かかる構成によれば、パケットの継続的な送受信を開始する際に一度測定した受信時刻の差に基づいて出力タイミングを制御した後は、受信時刻の差を再度測定せずに済む。従って、処理負荷を軽減することが可能となる。
【0067】
パケット整形部22は、受信されたユニキャストパケット又はマルチキャストパケットを、パケット番号に沿って順番に並べて出力する。ただし、パケット整形部22は、同一内容であるユニキャストパケット及びマルチキャストパケットが受信された場合、同一内容であるユニキャストパケット及びマルチキャストパケットのうち、早くに受信されたパケットを出力し、遅くに受信されたパケットを破棄する。かかる構成によれば、一時的に同一内容のユニキャストパケット及びマルチキャストパケットが受信される場合であっても、パケット番号に沿って順番に、且つ重複なくパケットを出力することが可能となる。なお、パケット送信制御部14は、継続的なパケットの送受信の途中で、ユニキャストとマルチキャストとを切り替えてもよい。かかる切り替えの際に、パケット送信制御部14は、同一内容のパケットをユニキャストパケット及びマルチキャストパケットとして送信するよう制御してもよい。パケットが非連続になることを防止するためである。この場合であっても、パケット整形部22は、早くに受信されたパケットを出力し、遅くに受信されたパケットを破棄することで、切り替え前後で重複なくパケットを出力することが可能となる。
【0068】
パケット整形部22は、パケットの継続的な送受信を開始する際に受信された、同一内容であるユニキャストパケット又はマルチキャストパケットのうちより早くに受信されたパケットを、受信時刻の差に対応する遅延時間だけ遅延させて出力する。受信時刻の差は、伝送時間の差に対応する。本実施形態では、遅延時間は受信時刻の差と同一である。即ち、パケット整形部22は、パケットの継続的な送受信の開始時に受信された、同一内容であるユニキャストパケット又はマルチキャストパケットのうちより早くに受信されたパケットを、受信時刻の差に等しい遅延時間だけ遅延させて出力する。その後、パケット整形部22は、受信されたパケットから重複を排除しつつ、パケット番号に沿って順番にパケットを出力する。パケット受信開始時にパケットが遅延して出力されるから、後続するパケットも遅延して出力されることとなる。
【0069】
このように、パケット整形部22は、受信したパケットの出力タイミングを、ユニキャスト又はマルチキャストのうち伝送時間が長い方に合わせて予め遅延させた上で、パケットの出力を開始する。これにより、ユニキャストパケットとマルチキャストパケットとの間の伝送時間の差を、パケットの継続的な送受信の開始時に予め吸収しておくことができる。よって、パケットの継続的な送受信の途中でユニキャストとマルチキャストとが切り替えられる場合であっても、パケットの連続性を維持することが可能となる。
【0070】
<1.3.具体例>
以下、
図3~
図6を参照しながら、パケットの出力タイミングの制御に関する具体例を説明する。
【0071】
-第1の具体例
本具体例は、データ送信開始要求に応じた継続的なパケットの送信方法としてマルチキャストが選択された例であって、マルチキャストパケットの方がユニキャストパケットよりも伝送時間が短い場合の例である。
【0072】
図3は、本実施形態に係るパケット整形部22によるパケットの出力タイミングの制御に関する第1の具体例を説明するための図である。本図における数字入りの矩形はパケットを意味している。そして、矩形内の数字は、パケット番号である。矩形に付されたハッチングの相違は、ユニキャストパケット/マルチキャストパケットの相違を意味している。
【0073】
図3に示すように、マルチキャストパケット受信部26は、受信したマルチキャストパケットをバッファリングするバッファであるマルチキャストパケットバッファ261を有する。そして、マルチキャストパケット受信部26は、マルチキャストパケットバッファ261にバッファリングしたマルチキャストパケットを、受信した順にパケット整形部22に出力する。
【0074】
図3に示すように、ユニキャストパケット受信部25は、受信したユニキャストパケットをバッファリングするバッファであるユニキャストバッファ251を有する。そして、ユニキャストパケット受信部25は、ユニキャストバッファ251にバッファリングしたユニキャストパケットを、受信した順にパケット整形部22に出力する。
【0075】
図3に示すように、パケット整形部22は、入力バッファ221及び出力バッファ222を有する。入力バッファ221は、ユニキャストパケット受信部25及びマルチキャストパケット受信部26から入力されたパケットをバッファリングするバッファである。出力バッファ222は、入力バッファ221にバッファリングされたパケットのうち、出力対象のパケットを順番にバッファリングして出力するバッファである。
【0076】
図3に示した各バッファでは、左からパケットが入力され右からパケットが出力されるものとする。また、バッファの横軸方向は入力/出力タイミングを意味している。即ち、バッファの右側に記載されたパケットほど早くに入力された/出力されるパケットを意味し、バッファの左側に記載されたパケットほど遅くに入力された/出力されるパケットを意味する。
【0077】
本具体例では、パケット番号が1~4のパケットが複製されている。ユニキャストパケット受信部25は、パケット番号が1~4のパケットを受信済みである。そして、ユニキャストパケット受信部25は、パケット番号が1~2のパケットをパケット整形部22に出力済みであり、パケット番号が3~4のパケットをユニキャストバッファ251にバッファしている。マルチキャストパケット受信部26は、パケット番号が1~8のパケットを受信済みである。そして、マルチキャストパケット受信部26は、パケット番号が1~5のパケットをパケット整形部22に出力済みであり、パケット番号が6~8のパケットをマルチキャストパケットバッファ261にバッファしている。
【0078】
図3に示すように、パケット番号が1であるユニキャストパケットとマルチキャストパケットとを比較すると、マルチキャストパケットの方が早くに受信されており、受信時刻の差はT
Dである。そのため、パケット整形部22は、パケット番号が1であるマルチキャストパケットを、受信時刻の差T
Dだけ遅延させて、出力バッファ222に追加する。その後、パケット整形部22は、パケット番号が重複するパケットのうち遅くに受信されたユニキャストパケットを破棄しつつ、パケット番号が2以降のパケットを順番に並べながら、出力バッファ222に追加する。出力バッファ222に格納されたパケットは、順次出力される。ここで、
図3に示す例では、入力バッファ221から出力バッファ222に出力されるパケットは、早く受信されたマルチキャストパケット(パケット番号は1~5)であるが、早くに受信したマルチキャストパケットを破棄して、遅くに受信したユニキャストパケットを遅延させずに出力しても、同様のパケットを出力バッファ222に追加することができる。
【0079】
このように、パケット整形部22は、パケット番号が1のマルチキャストパケットの出力タイミングを、パケット番号が1のユニキャストパケットの受信時刻に合わせて予め遅延させた上で、パケットの継続的な出力を開始する。よって、将来的にユニキャストとマルチキャストとが切り替えられる場合であっても、パケットの連続性を維持することが可能となる。
【0080】
-第2の具体例
本具体例は、データ送信開始要求に応じた継続的なパケットの送信方法としてマルチキャストが選択された例であって、ユニキャストパケットの方がマルチキャストパケットよりも伝送時間が短い場合の例である。
【0081】
図4は、本実施形態に係るパケット整形部22によるパケットの出力タイミングの制御に関する第2の具体例を説明するための図である。本図における数字入りの矩形の意味、並びにユニキャストバッファ251、マルチキャストパケットバッファ261、入力バッファ221、及び出力バッファ222については、第1の具体例において上記説明した通りである。
【0082】
本具体例では、パケット番号が1~4のパケットが複製されている。ユニキャストパケット受信部25は、パケット番号が1~4のパケットを受信済みである。そして、ユニキャストパケット受信部25は、パケット番号が1~4のパケットをパケット整形部22に出力済みであり、ユニキャストバッファ251は空である。マルチキャストパケット受信部26は、パケット番号が1~8のパケットを受信済みである。そして、マルチキャストパケット受信部26は、パケット番号が1~5のパケットをパケット整形部22に出力済みであり、パケット番号が6~8のパケットをマルチキャストパケットバッファ261にバッファしている。
【0083】
図4に示すように、パケット番号が1であるユニキャストパケットとマルチキャストパケットとを比較すると、ユニキャストパケットの方が早くに受信されており、受信時刻の差はT
Dである。そのため、パケット整形部22は、パケット番号が1であるユニキャストパケットを、受信時刻の差T
Dだけ遅延させて、出力バッファ222に追加する。その後、パケット整形部22は、パケット番号が重複するパケットのうち遅くに受信されたマルチキャストパケットを破棄しつつ、パケット番号が2以降のパケットを順番に並べながら、出力バッファ222に追加する。出力バッファ222に格納されたパケットは、順次出力される。ここで、
図4に示す例では、入力バッファ221から出力バッファ222に出力されるパケットは、早くに受信したユニキャストパケット(パケット番号は1~4)及びマルチキャストパケット(パケット番号は5)であるが、早くに受信したユニキャストパケット(パケット番号は1~4)を破棄して、遅くに受信したマルチキャストパケット(パケット番号1~4)を遅延させずに出力しても、同様のパケットを出力バッファ222に追加することができる。
【0084】
このように、パケット整形部22は、パケット番号が1のユニキャストパケットの出力タイミングを、パケット番号が1のマルチキャストパケットの受信時刻に合わせて予め遅延させた上で、パケットの継続的な出力を開始する。よって、将来的にユニキャストとマルチキャストとが切り替えられる場合であっても、パケットの連続性を維持することが可能となる。現に、
図4に示すように、パケット番号が5であるマルチキャストパケットは、パケット番号が4であるユニキャストパケットの後に、連続性を保ちつつ出力されている。将来的に、マルチキャストからユニキャストに切り替えられる場合であっても、マルチキャストパケットの後に、ユニキャストパケットが連続性を保ちつつ出力されることとなる。
【0085】
-第3の具体例
本具体例は、データ送信開始要求に応じた継続的なパケットの送信方法としてユニキャストが選択された例であって、ユニキャストパケットの方がマルチキャストパケットよりも伝送時間が短い場合の例である。
【0086】
図5は、本実施形態に係るパケット整形部22によるパケットの出力タイミングの制御に関する第3の具体例を説明するための図である。本図における数字入りの矩形の意味、並びにユニキャストバッファ251、マルチキャストパケットバッファ261、入力バッファ221、及び出力バッファ222については、第1の具体例において上記説明した通りである。
【0087】
本具体例では、パケット番号が1~4のパケットが複製されている。ユニキャストパケット受信部25は、パケット番号が1~8のパケットを受信済みである。そして、ユニキャストパケット受信部25は、パケット番号が1~5のパケットをパケット整形部22に出力済みであり、パケット番号が6~8のパケットをユニキャストバッファ251にバッファしている。マルチキャストパケット受信部26は、パケット番号が1~4のパケットを受信済みである。そして、マルチキャストパケット受信部26は、パケット番号が1~2のパケットをパケット整形部22に出力済みであり、パケット番号が3~4のパケットをマルチキャストパケットバッファ261にバッファしている。
【0088】
図5に示すように、パケット番号が1であるユニキャストパケットとマルチキャストパケットとを比較すると、ユニキャストパケットの方が早くに受信されており、受信時刻の差はT
Dである。そのため、パケット整形部22は、パケット番号が1であるユニキャストパケットを、受信時刻の差T
Dだけ遅延させて、出力バッファ222に追加する。その後、パケット整形部22は、パケット番号が重複するパケットのうち遅くに受信されたマルチキャストパケットを破棄しつつ、パケット番号が2以降のパケットを順番に並べながら、出力バッファ222に追加する。出力バッファ222に格納されたパケットは、順次出力される。ここで、
図5に示す例では、入力バッファ221から出力バッファ222に出力されるパケットは、早くに受信したユニキャストパケット(パケット番号は1~5)であるが、早くに受信したユニキャストパケットを破棄して、遅くに受信したマルチキャストパケットを遅延させずに出力しても、同様のパケットを出力バッファ222に追加することができる。
【0089】
このように、パケット整形部22は、パケット番号が1のユニキャストパケットの出力タイミングを、パケット番号が1のマルチキャストパケットの受信時刻に合わせて予め遅延させた上で、パケットの継続的な出力を開始する。よって、将来的にユニキャストとマルチキャストとが切り替えられる場合であっても、パケットの連続性を維持することが可能となる。
【0090】
-第4の具体例
本具体例は、データ送信開始要求に応じた継続的なパケットの送信方法としてユニキャストが選択された例であって、マルチキャストパケットの方がユニキャストパケットよりも伝送時間が短い場合の例である。
【0091】
図6は、本実施形態に係るパケット整形部22によるパケットの出力タイミングの制御に関する第4の具体例を説明するための図である。本図における数字入りの矩形の意味、並びにユニキャストバッファ251、マルチキャストパケットバッファ261、入力バッファ221、及び出力バッファ222については、第1の具体例において上記説明した通りである。
【0092】
本具体例では、パケット番号が1~4のパケットが複製されている。ユニキャストパケット受信部25は、パケット番号が1~8のパケットを受信済みである。そして、ユニキャストパケット受信部25は、パケット番号が1~5のパケットをパケット整形部22に出力済みであり、パケット番号が6~8のパケットをユニキャストバッファ251にバッファしている。マルチキャストパケット受信部26は、パケット番号が1~4のパケットを受信済みである。そして、マルチキャストパケット受信部26は、パケット番号が1~4のパケットをパケット整形部22に出力済みであり、マルチキャストパケットバッファ261は空である。
【0093】
図6に示すように、パケット番号が1であるユニキャストパケットとマルチキャストパケットとを比較すると、マルチキャストパケットの方が早くに受信されており、受信時刻の差はT
Dである。そのため、パケット整形部22は、パケット番号が1であるマルチキャストパケットを、受信時刻の差T
Dだけ遅延させて、出力バッファ222に追加する。その後、パケット整形部22は、パケット番号が重複するパケットのうち遅くに受信されたユニキャストパケットを破棄しつつ、パケット番号が2以降のパケットを順番に並べながら、出力バッファ222に追加する。出力バッファ222に格納されたパケットは、順次出力される。ここで、
図6に示すように、入力バッファ221から出力バッファ222に出力されるパケットは、早くに受信したマルチキャストパケット(パケット番号は1~4)及びユニキャストパケット(パケット番号は5)であるが、早くに受信したマルチキャストパケット(パケット番号は1~4)を破棄して、遅くに受信したユニキャストパケット(パケット番号1~4)を遅延させずに出力しても、同様のパケットを出力バッファ222に追加することができる。
【0094】
このように、パケット整形部22は、パケット番号が1のマルチキャストパケットの出力タイミングを、パケット番号が1のユニキャストパケットの受信時刻に合わせて予め遅延させた上で、パケットの継続的な出力を開始する。よって、将来的にユニキャストとマルチキャストとが切り替えられる場合であっても、パケットの連続性を維持することが可能となる。現に、
図6に示すように、パケット番号が5であるユニキャストパケットは、パケット番号が4であるマルチキャストパケットの後に、連続性を保ちつつ出力されている。将来的に、ユニキャストからマルチキャストに切り替えられる場合であっても、ユニキャストパケットの後に、マルチキャストパケットが連続性を保ちつつ出力されることとなる。
【0095】
<1.4.処理の流れ>
-システム全体における処理の流れ
図7は、本実施形態に係るシステム1において実行される処理の流れの一例を示すシーケンス図である。本シーケンスには、送信装置10及び受信装置20が関与する。
【0096】
図7に示すように、まず、受信装置20は、視聴開始要求を送信装置10に送信する(ステップS102)。視聴開始要求は、例えば、受信装置20のアドレス、及び視聴を要求する動画を特定するための情報等を含む。
【0097】
送信装置10は、視聴開始要求を受信すると、受信装置20への継続的なパケットの送信方法として、ユニキャスト又はマルチキャストの一方を選択する(ステップS104)。例えば、送信装置10は、視聴開始要求の対象である動画をまだ送信していない状態であればユニキャストを選択し、受信した視聴開始要求を含む視聴者数が予め設定された閾値以上となった場合や、マルチキャストで送信するネットワーク帯域に余裕がある場合等の、マルチキャストで送信した方がよいと判定した状態であればマルチキャストを選択する。
【0098】
次いで、送信装置10は、パケットの送受信に関する制御情報を、受信装置20に送信する(ステップS106)。このとき、送信装置10は、一時的なパケットの送受信に関する制御情報を、併せて受信装置20に送信してもよい。
【0099】
次に、送信装置10は、1以上の所定個のパケットを複製して、同一内容のユニキャストパケット及びマルチキャストパケットとして送信する(ステップS108)。受信装置20は、受信したパケットをバッファリングする。詳しくは、ユニキャストバッファ251は、受信したユニキャストパケットをバッファリングし、順次パケット整形部22に出力する。他方、マルチキャストパケットバッファ261は、受信したマルチキャストパケットをバッファリングし、順次パケット整形部22に出力する。パケット整形部22は、ユニキャストパケット受信部25及びマルチキャストパケット受信部26から入力されたパケットを入力バッファ221にバッファリングする。
【0100】
受信装置20は、同一内容のユニキャストパケット及びマルチキャストパケットを受信すると、同一内容のユニキャストパケット及びマルチキャストパケットの受信時刻の差に基づいて遅延時間を決定する(ステップS110)。詳しくは、パケット整形部22は、入力バッファ221にバッファリングされたパケットから、同一のパケット番号が付与されたユニキャストパケット及びマルチキャストパケットを特定する。そして、パケット整形部22は、同一のパケット番号が付与されたユニキャストパケットとマルチキャストパケットとの受信時刻の差を、遅延時間として決定する。なお、パケット整形部22は、複製された1以上の所定個のユニキャストパケット及びマルチキャストパケットの全部を受信してから遅延時間を決定してもよいし、途中の段階で遅延時間を決定してもよい。
【0101】
次いで、受信装置20は、決定した遅延時間に基づくパケットの出力を開始する(ステップS112)。詳しくは、パケット整形部22は、入力バッファ221にバッファリングされた先頭のパケットを、ステップS110において決定した遅延時間だけ遅延させて出力バッファ222に追加する。そして、パケット整形部22は、入力バッファ221にバッファリングされたパケットから、パケット番号が重複するパケットのうち遅くに受信された方のパケットを破棄しつつ、パケット番号に沿って順番に出力バッファ222に追加する。出力バッファ222にバッファリングされたパケットは、順次出力される。
【0102】
送信装置10は、1以上の所定個のパケットの複製及び送信が終了すると、ステップS104において選択した送信方法でのパケットの継続的な送信を行う(ステップS114)。即ち、送信装置10は、ユニキャストパケット又はマルチキャストパケットの一方を、受信装置20に継続的に送信する。受信装置20は、受信したパケットをバッファリングする。
【0103】
受信装置20は、パケットを受信すると、受信したパケットを順次出力する(ステップS116)。詳しくは、パケット整形部22は、入力バッファ221にバッファリングされたパケットを、パケット番号に沿って順番に出力バッファ222に追加する。出力バッファ222にバッファリングされたパケットは、順次出力される。
【0104】
<1.5.効果>
以上説明したように、第1の実施形態によれば、ユニキャストとマルチキャストとで伝送時間に差があるようなネットワーク環境においても、ユニキャストとマルチキャストとを切り替える際のパケットの途切れ及び欠落を防止することができる。従って、受信装置20において受信したパケットを、連続性を保ちながら処理できるので、動画の再生に影響を与えないようにすることが可能となる。
【0105】
<2.第2の実施形態>
本実施形態の構成例は、第1の実施形態と同様である。
【0106】
第1の実施形態では、パケットの継続的な送受信を開始する際に受信された、同一内容であるユニキャストパケット又はマルチキャストパケットのうちより早くに受信されたパケットを出力する際の遅延時間が、受信時刻の差と同一である例を説明した。これに対し、本実施形態では、遅延時間が受信時刻の差と異なる。
【0107】
具体的には、本実施形態における遅延時間は、受信時刻の差に余裕値を加算した値である。パケットの伝送時間は、ネットワーク30に揺らぎが発生した等の要因で変動する場合がある。この点、かかる構成によれば、遅延時間に余裕を持たせることで、パケットの伝送時間が変動する場合であっても、ユニキャストとマルチキャストとを切り替える際のパケットの連続性を維持することが可能となる。
【0108】
余裕値は、ネットワーク30の特性に基づいて設定されてもよい。パケットの伝送時間の変動幅は、ネットワーク30の状況によって変動するものであるから、事前に正確に検出することは困難である。この点、かかる構成のように、過去の実測値又は経験知に基づいて余裕値を設定することが適切である。
【0109】
本実施形態の具体例を、
図8を参照しながら説明する。
【0110】
図8は、本実施形態に係るパケット整形部22によるパケットの出力タイミングの制御に関する具体例を説明するための図である。本図における数字入りの矩形の意味、並びにユニキャストバッファ251、マルチキャストパケットバッファ261、入力バッファ221、及び出力バッファ222については、
図3~
図6を参照しながら上記説明した通りである。
【0111】
本具体例は、データ送信開始要求に応じた継続的なパケットの送信方法としてマルチキャストが選択された例であって、ユニキャストパケットの方がマルチキャストパケットよりも伝送時間が短い場合の例である。
【0112】
本具体例では、パケット番号が1~4のパケットが複製されている。ユニキャストパケット受信部25は、パケット番号が1~4のパケットを受信済みである。そして、ユニキャストパケット受信部25は、パケット番号が1~4のパケットをパケット整形部22に出力済みであり、ユニキャストバッファ251は空である。マルチキャストパケット受信部26は、パケット番号が1~8のパケットを受信済みである。そして、マルチキャストパケット受信部26は、パケット番号が1~5のパケットをパケット整形部22に出力済みであり、パケット番号が6~8のパケットをマルチキャストパケットバッファ261にバッファしている。
【0113】
図8に示すように、パケット番号が1であるユニキャストパケットとマルチキャストパケットとを比較すると、ユニキャストパケットの方が早くに受信されており、受信時刻の差はT
Dである。そのため、パケット整形部22は、パケット番号が1であるユニキャストパケットを、受信時刻の差T
Dに余裕値αを加算した、T
D+αだけ遅延させて、出力バッファ222に追加する。その後、パケット整形部22は、パケット番号が重複するパケットのうち遅くに受信されたマルチキャストパケットを破棄しつつ、パケット番号が2以降のパケットを順番に並べながら、出力バッファ222に追加する。なお、パケット番号が5以降のマルチキャストパケットは、ネットワーク30の揺らぎに応じて最大で余裕値αだけ遅延して出力バッファ222に追加される。出力バッファ222に格納されたパケットは、順次出力される。ここで、
図8に示す例では、入力バッファ221から出力バッファ222に出力されるパケットは、早くに受信したユニキャストパケット(パケット番号は1~4)及びマルチキャストパケット(パケット番号は5)であるが、早くに受信したユニキャストパケット(パケット番号は1~4)を破棄して、遅くに受信したマルチキャストパケット(パケット番号1~4)を余裕値αだけ遅延させて出力しても、同様のパケットを出力バッファ222に追加することができる。
【0114】
このように、パケット整形部22は、パケット番号が1のユニキャストパケットの出力タイミングを、パケット番号が1のマルチキャストパケットの受信時刻よりも余裕値αの分だけ予め遅延させた上で、パケットの継続的な出力を開始する。よって、将来的にユニキャストとマルチキャストとが切り替えられる場合であっても、また、ネットワーク30の揺らぎが発生した場合であっても、パケットの連続性を維持することが可能となる。現に、
図8に示すように、パケット番号が5であるマルチキャストパケットは、パケット番号が4であるユニキャストパケットの後に、連続性を保ちつつ出力されている。将来的に、マルチキャストからユニキャストに切り替えられる場合であっても、マルチキャストパケットの後に、ユニキャストパケットが連続性を保ちつつ出力されることとなる。
【0115】
本実施形態に係るシステム1において実行される処理は、
図7を参照しながら上記説明したものと同様である。ただし、ステップS110において、パケット整形部22は、同一のパケット番号が付与されたユニキャストパケットとマルチキャストパケットとの受信時刻の差に余裕値を加算した値を、遅延時間として決定する。
【0116】
以上説明したように、第2の実施形態によれば、パケットの伝送時間に揺らぎがある場合であっても、予め揺らぎを加味した遅延時間を設定することで、揺らぎを吸収することができる。従って、実際に揺らぎが発生した場合であっても、パケットの連続性を維持して、動画の再生に影響を与えないようにすることが可能となる。
【0117】
<3.ハードウェア構成>
続いて、
図9を参照して、上記各実施形態に係る情報処理装置のハードウェア構成について説明する。
図9は、上記各実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。なお、
図9に示す情報処理装置900は、例えば、
図1に示した送信装置10又は受信装置20を実現し得る。上記各実施形態に係る送信装置10又は受信装置20による情報処理は、ソフトウェアと、以下に説明するハードウェアとの協働により実現される。
【0118】
図9に示すように、情報処理装置900は、CPU(Central Processing Unit)901と、ROM(Read Only Memory)902と、RAM(Random Access Memory)903と、ホストバス904と、ブリッジ905と、外部バス906と、インタフェース907と、入力装置908と、出力装置909と、ストレージ装置910と、通信装置911と、を備える。
【0119】
CPU901は、演算処理装置及び制御装置として機能し、各種プログラムに従って情報処理装置900内の動作全般を制御する。また、CPU901は、マイクロプロセッサであってもよい。ROM902は、CPU901が使用するプログラム、及び演算パラメータ等を記憶する。RAM903は、CPU901の実行において使用するプログラム、及びその実行において適宜変化するパラメータ等を一時記憶する。これらはCPUバス等から構成されるホストバス904により相互に接続されている。CPU901は、例えば、
図1に示したパケット生成部11、パケット複製部12、パケット送信調整部13、及び14を形成し得る。また、CPU901は、例えば、
図1に示したパケット整形部22、パケット受信調整部23、及びパケット受信制御部24を形成し得る。
【0120】
ホストバス904は、ブリッジ905を介して、PCI(Peripheral Component Interconnect/Interface)バス等の外部バス906に接続されている。なお、必ずしもホストバス904、ブリッジ905及び外部バス906を分離構成する必要はなく、1つのバスにこれらの機能を実装してもよい。
【0121】
入力装置908は、マウス、キーボード、タッチパネル、ボタン、マイクロフォン、スイッチ及びレバー等、利用者が情報を入力するための入力手段と、利用者による入力に基づいて入力信号を生成し、CPU901に出力する入力制御回路等から構成されている。情報処理装置900を操作する利用者は、この入力装置908を操作することにより、情報処理装置900に対して各種のデータを入力したり処理動作を指示したりすることができる。
【0122】
出力装置909は、例えば、CRT(Cathode Ray Tube)ディスプレイ装置、液晶ディスプレイ(LCD)装置、OLED(Organic Light Emitting Diode)装置、ランプ等の表示装置及びスピーカー等の音声出力装置を含む。出力装置909は、例えば、
図1に示したパケット整形部22から出力されたパケットから復元された動画を表示し得る。
【0123】
ストレージ装置910は、データ格納用の装置である。ストレージ装置910は、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置及び記憶媒体に記録されたデータを削除する削除装置等を含んでもよい。ストレージ装置910は、例えば、HDD(Hard Disk Drive)で構成される。このストレージ装置910は、ハードディスクを駆動し、CPU901が実行するプログラム、及び各種データを格納する。
【0124】
通信装置911は、例えば、ネットワークに接続するための通信デバイス等で構成された通信インタフェースである。また、通信装置911は、無線通信または有線通信のどちらに対応してもよい。通信装置911は、例えば、
図1に示したユニキャストパケット送信部15及びマルチキャストパケット送信部16を形成し得る。また、通信装置911は、例えば、
図1に示したユニキャストパケット受信部25及びマルチキャストパケット受信部26を形成し得る。
【0125】
以上、本実施形態に係る情報処理装置900の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて実現されていてもよいし、各構成要素の機能に特化したハードウェアにより実現されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
【0126】
<4.補足>
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【0127】
-第1の補足
例えば、上記実施形態では、受信装置20からのデータ送信開始要求の受信をトリガとして送信装置10がパケットの送信を開始する例を説明したが、本発明はかかる例に限定されない。送信装置10は、受信装置20以外から受信装置20へのデータ送信の開始を要求するデータ送信開始要求を受信してもよいし、送信装置10が自発的にパケットの送信を開始してもよい。
【0128】
-第2の補足
例えば、上記実施形態では、第1通信方式がユニキャストであり、第2通信方式がマルチキャストである例を説明したが、本発明はかかる例に限定されない。第1通信方式がマルチキャストであり、第2通信方式がユニキャストであってもよい。また、他の一例としては、次の2つの例がある。第1の例は、第1通信方式及び第2通信方式ともに、ユニキャストである。第2の例は、第1通信方式及び第2通信方式ともに、マルチキャストであってもよい。
【0129】
-第3の補足
例えば、上記実施形態では、パケットの送信に使用される2種類の通信方式が、ユニキャスト/マルチキャストで相違する例を説明したが、本発明はかかる例に限定されない。一例として、パケットの送信に使用される2種類の通信方式は、IP及びUDP等の通信プロトコルが相違していてもよい。他の一例として、パケットの送信に使用される2種類の通信方式は、Wi-Fi及びセルラー通信網等のネットワークプロトコルが相違していてもよい。
【0130】
-第4の補足
上記実施形態における第1通信方式及び第2通信方式において、他の一例としては、OSI(Open Systems Interconnection)7階層モデルの第1層(レイヤー1(物理層))が異なる場合であり、第1通信方式が有線LANであり、第2通信方式が無線LANであってもよい。
【0131】
また、上記実施形態における第1通信方式及び第2通信方式は、さらに、第2の補足に記載される方式を組み合わせてもよく、一例は、次の通りである。当該一例は、第1通信方式が有線LANであり、第2通信方式が無線LANであり、さらに、第1通信方式と第2通信方式とがユニキャストとユニキャスト(又は、マルチキャストとマルチキャスト、ユニキャストとマルチキャスト、マルチキャストとユニキャスト)であってもよい。
【0132】
ここで、上記実施形態における受信装置20は、有線LANと無線LANで異なるIPアドレスが付与される。また、上記実施形態における送信装置10は、異なるIPアドレスが付与された有線LANと無線LANにパケットを出力する。
【0133】
-第5の補足
上記実施形態における第1通信方式及び第2通信方式において、他の一例としては、OSI(Open Systems Interconnection)7階層モデルの第3層(レイヤー3(ネットワーク層))が異なる場合であり、第1通信方式がIPv6であり、第2通信方式がIPv4であってもよく、第1通信方式と第2通信方式とがIPv4とIPv6(又は、IPv6とIPv6、IPv4とIPv4)であってもよい。
【0134】
また、上記実施形態における第1通信方式及び第2通信方式は、さらに、第2の補足に記載される方式を組み合わせてもよく、一例としては、次の4つの例がある。
【0135】
第1の例は、第1通信方式がIPv6であり、第2通信方式がIPv4であり、さらに、第1通信方式と第2通信方式とがユニキャストとユニキャスト(又は、マルチキャストとマルチキャスト、ユニキャストとマルチキャスト、マルチキャストとユニキャスト)であってもよい。
【0136】
第2の例は、第1通信方式がIPv4であり、第2通信方式がIPv6であり、さらに、第1通信方式と第2通信方式とがユニキャストとユニキャスト(又は、マルチキャストとマルチキャスト、ユニキャストとマルチキャスト、マルチキャストとユニキャスト)であってもよい。
【0137】
第3の例は、第1通信方式がIPv6であり、第2通信方式がIPv6であり、さらに、第1通信方式と第2通信方式とがユニキャストとユニキャスト(又は、マルチキャストとマルチキャスト、ユニキャストとマルチキャスト、マルチキャストとユニキャスト)であってもよい。
【0138】
第4の例は、第1通信方式がIPv4であり、第2通信方式がIPv4であり、さらに、第1通信方式と第2通信方式とがユニキャストとユニキャスト(又は、マルチキャストとマルチキャスト、ユニキャストとマルチキャスト、マルチキャストとユニキャスト)であってもよい。
【0139】
-第6の補足
なお、本明細書において説明した各装置による一連の処理は、ソフトウェア、ハードウェア、及びソフトウェアとハードウェアとの組合せのいずれを用いて実現されてもよい。ソフトウェアを構成するプログラムは、例えば、各装置の内部又は外部に設けられる記録媒体(詳しくは、コンピュータにより読み取り可能な非一時的な記憶媒体)に予め格納される。そして、各プログラムは、例えば、本明細書において説明した各装置を制御するコンピュータによる実行時にRAMに読み込まれ、CPUなどのプロセッサにより実行される。上記記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリ等である。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信されてもよい。
【0140】
-第7の補足
また、本明細書においてフローチャート及びシーケンス図を用いて説明した処理は、必ずしも図示された順序で実行されなくてもよい。いくつかの処理ステップは、並列的に実行されてもよい。また、追加的な処理ステップが採用されてもよく、一部の処理ステップが省略されてもよい。
【符号の説明】
【0141】
1 システム
10 送信装置
11 パケット生成部
12 パケット複製部
13 パケット送信調整部
14 パケット送信制御部
15 ユニキャストパケット送信部
16 マルチキャストパケット送信部
20 受信装置
22 パケット整形部
221 入力バッファ
222 出力バッファ
23 パケット受信調整部
24 パケット受信制御部
25 ユニキャストパケット受信部
251 ユニキャストバッファ
26 マルチキャストパケット受信部
261 マルチキャストパケットバッファ
30 ネットワーク