JP3825416B2 - データ同期方法、データ同期システム及びデータ同期プログラム - Google Patents

データ同期方法、データ同期システム及びデータ同期プログラム Download PDF

Info

Publication number
JP3825416B2
JP3825416B2 JP2003109492A JP2003109492A JP3825416B2 JP 3825416 B2 JP3825416 B2 JP 3825416B2 JP 2003109492 A JP2003109492 A JP 2003109492A JP 2003109492 A JP2003109492 A JP 2003109492A JP 3825416 B2 JP3825416 B2 JP 3825416B2
Authority
JP
Japan
Prior art keywords
packet
time
data flows
data
transmission
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.)
Expired - Fee Related
Application number
JP2003109492A
Other languages
English (en)
Other versions
JP2004320251A (ja
Inventor
康雄 丹
健 土屋
仁 山内
隆一 松倉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Japan Advanced Institute of Science and Technology
Original Assignee
Fujitsu Ltd
Japan Advanced Institute of Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd, Japan Advanced Institute of Science and Technology filed Critical Fujitsu Ltd
Priority to JP2003109492A priority Critical patent/JP3825416B2/ja
Priority to US10/798,262 priority patent/US20040215810A1/en
Publication of JP2004320251A publication Critical patent/JP2004320251A/ja
Application granted granted Critical
Publication of JP3825416B2 publication Critical patent/JP3825416B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • H04L65/4046Arrangements for multi-party communication, e.g. for conferences with distributed floor control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
ネットワークで接続された複数の通信端末間で、複数の通信路によりマルチメディアデータを送受信する場合に、各通信路を同期して受信データを出力する技術に関する。
マルチメディアデータとしては、いかなる種類・形式のデータでもよく、例えば音声データ、画像データ、テキストデータ、ハプティクスデータ、臭覚を表すデータを挙げることができる。
【0002】
【従来の技術】
例えば、音声データや画像データのフローを、ネットワークを介してリアルタイムに送受信する通信を例に取る。送信端末がデータフローを構成するパケットを送出してから受信端末へ届くまでに多少の時間がかかる。この遅延のことをネットワーク遅延と呼ぶ。通信経路が異なる場合や通信経路上のネットワークの混み具合などが違う場合には、ネットワーク遅延もデータフローごとに異なってくる。そうすると、同一の送信端末から受信端末へ複数のデータフローが送信される場合、各データフロー毎にネットワーク遅延が異なるようになる。
【0003】
例えばユーザA、B、Cがそれぞれ操作する端末TA、TB、TCがあり、受信端末TAが送信端末TB,TCから同時に音声データフロー#b、#cを受信する場合を考える。実際にはユーザBがユーザCよりも最初に話し出したにもかかわらず、ネットワーク遅延により、受信端末TAではユーザCの音声が先に出力され、その後にユーザBの音声が出力されるという問題が発生する場合がある。
【0004】
ネットワーク遅延の差に起因する同期の問題に対処する手法として、特許文献1は、同期対象となる複数種類のデータをまとめてカプセル化して送信する方法を提案している。送信側では、音声パケットと画像パケットとをシーケンス番号で関連づけて送信することにより、音声データと画像データとを1つにカプセル化して送出する。受信端末では、カプセル化した複合データを分解し、音声データと画像データとを取り出し、それぞれスピーカやディスプレイに出力する。複数種類のデータをシーケンス番号により関連づけて送信することにより、1つの受信端末において音声データと画像データとを同期させることが可能になる。
【0005】
特許文献2は、各ユーザ端末からデータフローに含まれるパケットを集約して受信するビデオ会議サーバに同期機能を持たせることを提案している。このビデオ会議サーバは、各ユーザ端末からの動画データフローのパケットに記述されたシーケンス番号を参照し、同一シーケンス番号の動画データを合成する。また前記サーバは、各ユーザ端末から音声パケットを受信し、前記と同様の手法で混合音声データを生成する。合成した動画データ及び混合音声データを受信したユーザ端末は、合成動画及び混合音声を、ディスプレイやスピーカに同期させて出力する。
【0006】
【特許文献1】
特開平9-219851号公報
【0007】
【特許文献2】
特開平7-95242号公報
【0008】
【発明が解決しようとする課題】
近年、情報家電をはじめとして、多様な機器のネットワーク化が進んでいる。また、入出力される情報は、視覚に訴えるテキストデータや画像データ、聴覚に訴える音声データだけでなく、触感を表すハプティクスデータ、匂いを表す臭覚データなど、多種に渡るようになってきている。このような動きから、多様な入力デバイスや出力デバイスが、直接ネットワークへ接続されるようになると予想されている。このようにネットワーク化したデバイスは、複数種類のマルチメディアデータフローを入力及び送信でき、また受信及び出力できる。このようなデバイスが普及すれば、例えば1つの部屋の中にある複数のディスプレイ及びプロジェクタで、異なる動画データフローをそれぞれ同期させて出力することが要求されると予想できる。あるいは、複数のスピーカで、複数の音声データフローを同期させて出力することが要求されると予想できる。さらに、ディスプレイやプロジェクタとスピーカとの出力を同期させることが要求されると予想できる。
【0009】
現在、互いに離れた場所にいるユーザが共有する仮想空間をネットワーク上に作り出し、仮想空間内で共同作業を行う試みが進められている。具体的には、遠隔地にいる医師達が協力して医療診断・手術を行う遠隔医療や、遠隔教育、遠隔協同デザインなどを、仮想空間内で行う試みが挙げられる。遠隔医療においては、医師達がリアルタイムに共同作業を行うために、医師お互いの顔や体、音声を伝え合うのはもちろん、様々な他のデータをリアルタイムに共有する試みが行われている。具体的には、血流のシミュレーション結果であるアニメーションデータや生体等の動的に変化する3次元オブジェクトデータ、触覚を表すハプティクスデータ等の共有が挙げられる。
【0010】
このような仮想空間の構築は、仮想空間を構成する各要素の変化をリアルタイムに送受信する端末と、各マルチメディアデータの出力装置とを組み合わせることにより可能となる。さらに円滑な遠隔共同作業の実現のためには、各マルチメディアデータが同期して正しい順序で受信端末上に復元されなければならない。受信端末が1つではなく複数の場合には、複数の受信端末における各マルチメディアデータを同期させる仕組みが必要である。
【0011】
前述した従来の技術は、1つの受信端末で複数のデータフローを受信し、それらを出力装置に出力させる。例えば受信端末において同期のための処理を行えば、その受信端末に接続されたディスプレイの動画出力とスピーカの音声出力とを同期させることができる。しかし、複数のデータフローを異なる受信端末で受信した場合、異なる受信端末間でそれらのデータを同期させることについては何ら提案されていない。また、受信端末側で同期処理を行うことが想定されているため、処理能力が十分でない受信端末から同期処理の負担を取り除くことができない問題がある。そのため、従来提案されている技術では、前述した要求に答えることが難しい。
【0012】
本発明は、受信端末がそれぞれ異なるデータフローを受信する場合に、各受信端末における各データフローの出力を同期させることを目的とする。
また本発明は、受信端末から同期処理の負担を取り除くことを目的とする。
【0013】
【課題を解決するための手段】
前記課題を解決するために、本願第1発明は、複数のネットワーク間に流れるデータフローを中継するコンピュータが行うデータ同期方法を提供する。この方法は、下記ステップを含む。
・同期させようとしている複数のデータフローの識別子と、前記複数のデータフローを送信する複数の送信端末の通信アドレスと、前記複数のデータフローの宛先である複数の受信端末の通信アドレスと、を記憶する記憶ステップ、
・前記ネットワークの少なくとも1つに流れるデータフローを受信する受信ステップ、
・前記記憶ステップで記憶されている複数のデータフローであってRTCPパケット及びRTPパケットを含むデータフローを、受信したデータフローの中から選択する選択ステップ、
・前記選択されたデータフローのそれぞれに含まれる各パケットが、前記選択されたデータフローを送信した複数の送信端末で生成された時刻を演算する演算ステップ、
・前記演算された生成時刻に従い、前記選択されたデータフローのそれぞれに含まれるパケットが、前記選択されたデータフローそれぞれの宛先である複数の受信端末に送出される順番を、決定する順番決定ステップ、
・各パケットの送出時刻の間隔が各パケットの生成時刻の間隔と同等となるように、かつ前記順番に従って各パケットが送出されるように、前記選択されたデータフローのそれぞれに含まれる各パケットの送出時刻を決定する送出時刻決定ステップ、
・前記送出時刻に基づいて、各パケットを前記受信端末に送信する送信ステップ
前記選択ステップで選択されたデータフローに含まれるパケットを一時的に記憶するバッファリングステップ
【0014】
この方法において、前記演算ステップは、選択されたデータフローに含まれるRTCP パケットに記述された絶対時刻及びタイムスタンプ並びにRTPパケットに含まれるタイムスタンプに基づいて生成時刻を演算する。また前記送出時刻決定ステップは、送出時刻を決定するための基準時刻T0を、最初のRTCPパケットがいずれかの送信端末から届いた時間T rtcp と、前記バッファリングステップでパケットを蓄積できる最大時間T max または前記バッファリングステップでパケットを所定の量まで蓄積するのに要する時間Tbと、に基づいて決定する。
【0015】
前記データ同期方法を実行するデータ同期システム、前記データ同期方法をコンピュータに実行させるデータ同期プログラムは本発明に含まれる。さらに、前記データ同期プログラムを記録したコンピュータ読み取り可能な記録媒体も、本発明に含まれる。
【0016】
【発明の実施の形態】
<発明の概要>
本発明では、送信装置から受信装置へのデータフローを中継するコンピュータ(以下、同期ノードという)で、複数のデータフローを同期させてから受信装置に送信する。同期ノードが行うデータ同期方法は大別して以下の2つである。
【0017】
データ同期方法1:複数のデータフローに含まれる各パケットを、生成時刻順に送出する。同期ノードは、各パケットの送出間隔を、各パケットの生成間隔と同じになるよう調整する。データ同期方法1については、第1実施形態例で詳述する。
データ同期方法2:同期ノードは受信側同期ノードと送信側同期ノードとで役割が異なる。受信側同期ノードは、送信装置から複数のデータフローを受信し、各データフローに含まれるパケットのうち、生成時刻が同じもの同士を1つのパケットに合成する。合成パケットは送信側同期ノードに送信され、分解され、元のデータフローに復元される。復元されたデータフローは、それぞれの送信先に送信側同期ノードから送信される。データ同期方法2については、第2実施形態例で詳述する。
【0018】
<第1実施形態例>
(1)全体構成
図1は、第1実施形態に係る同期装置を用いた同期システムの全体構成図を示す説明図である。同期装置10は、複数のネットワーク4a、4b間のデータフローを中継する同期ノード1に設けられている。同期ノード1は、複数のネットワークカード11a、11bによりネットワーク4a、4bに接続可能である。同期装置10は、ネットワーク4a上の1または複数の送信端末2a〜2d(以下、送信端末2)から送信される複数のデータフローを同期させ、ネットワーク4b上の1または複数の受信端末3a、3b(以下、受信端末3)に送信する。送信端末2としては、カメラやビデオなど画像入力デバイスに接続または組み込まれた送信端末2a,2c、マイクなどの音声入力デバイスに接続または組み込まれた送信端末2b、キーボードなどテキストデータ入力デバイスに接続された送信端末2dが一例として挙げられる。この他に、ハプティクスデータや臭覚を表すデータなどを送信する送信端末が挙げられる。受信端末3としては、液晶ディスプレイなど画像出力デバイスに接続または組み込まれた受信端末3a、ハプティクスデータの出力デバイスに接続または組み込まれた受信端末3b、スピーカなど音声出力デバイスに接続または組み込まれた受信端末3cが一例として挙げられる。
【0019】
いずれかのネットワーク4(図ではネットワーク4a)にはNTP(Network Time Protocol)サーバ5が接続されている。また同期ノード1、送信端末2及び受信端末3にはNTPクライアント12が設けられている。送信端末2及び受信端末3上のNTPクライアントは図示していない。NTPサーバ及びNTPクライアントは、同期ノード1、送信端末2及び受信端末3間での内部クロックのずれを修正する。
【0020】
以下では、説明を容易にするため、送信端末2がネットワーク4a上にあり、受信端末3がネットワーク4b上にある場合を例にとる。ただし、送信端末2及び受信端末3が存在するネットワーク4はいずれか一方に限定されない。図1では、送信端末2及び受信端末3がそれぞれ複数存在する場合を示しているが、いずれか一方または両方が1つでも本発明は適用可能である。また、複数のデータフローは1つの送信端末2から送信されても、また複数の送信端末2から送信されても良い。同様に、複数のデータフローの送信先は、1つの受信端末3でも複数の受信端末3でも良い。
【0021】
(2)同期装置
図2は、同期ノード1に設けられた同期装置10の機能ブロック図である。同期装置10は、送信端末2からの複数のデータフローを、ネットワークカード11aを介して受信する。同期装置10は、複数のデータフローを同期させた後、ネットワークカード11bを介して受信端末3のそれぞれに送信する。なお、ネットワーク4bが送信側ネットワーク、ネットワーク4aが受信側ネットワークの場合、ネットワークカード11bがデータフローを受け取り、ネットワークカード11aがデータフローを送信する。
【0022】
各ブロックは次のように機能する。受信側のネットワークカード11aには、ネットワーク4a上を流れる全てのパケットが到着する。ネットワークカード11aに到着した全てのパケットは、raw socket101aを通ってフィルタリングモジュール104に供給される。同期対象のデータフローは、あらかじめ設定ファイル102に記述されている(後述する(2−1)「同期対象のデータフローの設定」)。フィルタリングモジュール104は、設定ファイル102を参照して同期対象のデータフローを構成するパケットだけを選択し、生成時刻計算モジュール106に渡す(後述する(2−3)「同期対象のデータフローの選択」)。生成時刻計算モジュール106は、同期対象データフローのパケットが送信端末2で生成された時刻を算出する(後述する(2−4)「各パケットの生成時刻の算出」)。生成時刻が算出された各パケットは、ソートモジュール107により生成時刻順にソートされ、バッファ108に登録される。ついで、各パケットの送出時刻が、送出時刻計算モジュール109により算出される(後述する(2−5)「各パケットの送出時刻の算出」)。各パケットの送出時刻は、各パケットの生成時刻間隔と送出時刻間隔とが同一になるように決められる。各パケットの送出時刻はバッファ108に各パケットと対応付けて登録される。バッファ108に登録された送出時刻は所定のタイミングで抽出モジュール110により参照され、参照した時点で既に送出時刻を過ぎているパケットが、raw socket101b及びネットワークカード11bを介し、受信端末3に送信される。IP(Internet Protocol)通信における全てのポートとデータの受け渡しが可能なraw socket101a,101bは、同期装置10が例えば同期ノード1の起動時に生成する。
【0023】
(2−1)同期対象のデータフローの設定
次に、各ブロックの機能についてさらに詳細に説明する。図3は、設定ファイル102に記述されるグループ指定データの概念説明図である。設定ファイル102には、どのデータフローを同期させるのか、すなわち同期対象のデータフローの指定が記述されている。また、設定ファイル102には、同期させた各データフローのそれぞれの送信先が記述されている。同期するべきデータフローは1つのフローグループを形成する。図3の例では、以下のグループ指定データ(a)〜(d)が設定ファイルに設定されている。
(a)フローグループの「グループ名」
(b)グループに関する「コメント」
(c)データフローを送信した送信端末のIPアドレス、ポート番号、データフローのペイロードタイプ
(d)データフローを受信する受信端末のIPアドレス、ポート番号、データフローのペイロードタイプ
1つのフローグループのみならず、複数のフローグループについて同様にグループ指定データを設定しても良い。
【0024】
図4及び図5は、設定ファイル102へのグループ指定データの登録を受け付ける画面例である。これらの画面例は、セッション管理モジュール103により、同期ノード1に接続されたディスプレイの画面に表示される。入力された情報は、設定ファイル102に書き込まれる。図4は、フローグループを設定するグループ選択画面例である。この画面は、フローグループのグループ名及びコメントの設定を受け付ける。図5は、同期対象設定画面例である。この画面は、同一のフローグループに含まれるべきデータフローの送信元の指定と宛先の指定とを受け付ける。
【0025】
(2−2)通信の開始と終了の監視
図6は、監視テーブル111の概念説明図である。このテーブルの生成及びテーブルへの書き込みは、セッション管理モジュール103が行う。監視テーブル111は、同期装置10が同期させるデータフローによる通信の開始及びその終了を監視するためのテーブルである。監視テーブル111には、同期対象のデータフローによる通信が開始されると、送信元IPアドレス及びポート番号が登録される。そのデータフローによる通信が終了すると、そのデータフローのエントリーが監視テーブル111から削除される。
【0026】
(2−3)同期対象のデータフローの選択
図7〜図10は、フィルタリングモジュール104の機能を示す説明図である。ここでは、同期対象のデータフローがRTP(Real-time Transport Protocol)に基づいて送信される場合を例に取り、フィルタリングモジュール104を説明する。フィルタリングモジュール104は、Etherフィルタ104a、IPフィルタ104b、RTPフィルタ104c及びペイロードフィルタ104dを有している。各フィルタの機能について説明する。
【0027】
Etherフィルタ104aは、raw socket101aからネットワーク4a上を流れる全てのパケットを受け取り、IPパケットを含むイーサフレームを選択してIPフィルタ104bに供給する。それ以外のイーサフレームは、raw socket101bを介して受信側のネットワーク4bに送出する。イーサフレームの選別は、図7に示すイーサフレームの中のイーサヘッダに含まれるタイプフィールドを参照することにより行う。
【0028】
IPフィルタ104bは、IPパケットを含むイーサフレームからUDP(User Datagram Protocol)パケットを含むイーサフレームを選別する。また、IPフィルタ104bは、UDPパケットを含むイーサフレームのうち、同期対象のデータフローに含まれるイーサフレームを選別し、選別したイーサフレームをRTPフィルタ104cに供給する。その他のイーサフレームはraw socket101bを介して受信側のネットワーク4bに送出する。UDPパケットを含むイーサフレームの選別は、図8に示すIPパケットのIPヘッダに含まれるプロトコルフィールドを参照することにより行う。同期対象のデータフローの選別は、IPヘッダの送信元アドレス及び宛先アドレスと設定ファイル102のグループ指定データとを比較することにより行う。
【0029】
RTPフィルタ104cは、UDPパケットを含むイーサフレームからRTPパケット又はRTCP(RTP Control Protocol)パケットを含むイーサフレームを選別し、選別したイーサフレームをペイロードフィルタ104dに供給する。その他のイーサフレームは、raw socket101bを介し、受信側のネットワーク4bに送出する。イーサフレームの選別は、UDPヘッダのポート番号に基づいてRTPパケット及びRTCPパケットを選別することにより行う。通常、RTCPのポート番号は、「RTPポート番号+1」が用いられる。また、RTP及びRTCPヘッダのバージョン番号「V」の値が「2」のパケットを選別しても良い。図9はUDPパケットの構成を示す。図10(A)はRTPパケットの構成を、図10(B)はRTCPパケットの構成を、それぞれ示す。
【0030】
ペイロードフィルタ104dは、RTPパケットまたはRTCPパケットを含むイーサフレームから、同期対象のデータフローと同一のペイロードタイプを有するイーサフレームを選別する。選別したイーサフレームは生成時刻計算モジュール106に渡す。同期対象のデータフローと異なるペイロードタイプを有するイーサフレームは、raw socket101bを介して受信側のネットワーク4bに送出される。選別は、RTPパケットに含まれるペイロードタイプ(図中“PT”)と、設定ファイル102の同期対象データフローのペイロードタイプとを比較することにより行う。比較対象となるデータフローは、前記設定ファイル102中の同期対象データフローのうち、IPヘッダの送信元IPアドレス及び宛先IPアドレスに送信元及び宛先が一致する同期対象データフローのペイロードタイプである。
【0031】
(2−4)各パケットの生成時刻の算出
図11及び図12は、生成時刻計算モジュール106が各パケットの生成時刻を算出する機能を示す説明図である。生成時刻計算モジュール106は、同期対象のデータフローに含まれるIPパケットが送信端末2で生成された時刻を計算する。生成時刻の算出には、RTPパケットに含まれるタイムスタンプと、RTCPパケットに含まれるタイムスタンプ及びNTP時刻印とを用いる。図11は、任意のRTPパケットの生成時刻tiが、同図中の式(1)で表されることを示す。ここで、TSiは、任意のRTPパケット中のタイムスタンプの値である。TS0は任意のRTCPパケット中のタイムスタンプの値である。tSは、前記のRTCPパケット中のNTP時刻である。
【0032】
すなわち、RTPパケットのタイムスタンプとRTCPパケットのタイムスタンプとの差をクロック数で割った値に、RTCPパケットのNTP時刻を加えた値がRTPパケットの生成時刻となる。このようにして算出された生成時刻tiに基づいて、同期対象のデータフローに含まれる各イーサフレームは、RTPパケットの生成時刻順にバッファ108に登録される。生成時刻順の並び替えとバッファ108への登録はソートモジュール107により行われる。ここで、クロック数とは、ペイロードタイプ毎に決められた一定周期であり、データフロー毎に自動的にカウントアップされるクロックの周波数のことである。音声データフローの場合には、クロック周波数は8000MHzであり、1秒間に8000の早さで進むカウンタ値をデータフロー毎にカウントアップする。RTPパケット生成時のカウンタ値がRTPヘッダのタイムスタンプ値としてセットされる。
【0033】
図12及び図13(A)はソートモジュール107の機能を示す説明図である。例えば、データフロー1,2が、図12に示す順序及び間隔でパケットを送出していたとする。ここで、パケットP11(t0)、P12(t2)、P13(t3)・・・は、データフロー1に含まれるRTPパケットとその生成時刻である。また、パケットP21(t1)、P22(t4)、P23(t7)・・・は、データフロー2に含まれるRTPパケットとその生成時刻である。図13(A)は、データフロー1,2の各パケットを含むイーサフレームが、生成時刻ti順にバッファ108に登録された状態を示している。
【0034】
(2−5)各パケットの送出時刻の算出
次に、図12及び図13(B)を用い、各イーサフレームの送出時刻の算出について説明する。送出時刻は、送出時刻計算モジュール109が計算する。バッファ108に登録された各イーサフレームの送出時刻は、その中に含まれるRTPパケットの生成時刻順となるよう決定する。また、各イーサフレームの送出時刻は、その中に含まれるRTPパケットの送出間隔が各RTPパケットの生成間隔と同じになるように決められる。具体的には、送出時刻は次の条件を満たすように決定される。
(i)同一データフロー内のパケットの生成間隔を保つ
(ii)異なるデータフロー間でのパケットの生成間隔を保つ
図12を用いてこれを具体的に説明する。図12において、データフロー1の各パケットは、2Δt間隔で生成されている。データフロー2の各パケットは、4Δt間隔で生成されている。データフロー1のパケットとデータフロー2のパケットとは、生成間隔が常にΔtずれている。従って、図12の例では、次の条件を守るように送出時刻が算出される。
(i)データフロー1に含まれるパケットの送出間隔は2Δt
(ii)データフロー2に含まれるパケットの送出間隔は4Δt
(iii)データフロー1のパケットとデータフロー2のパケットとの送出間隔はΔt。
【0035】
実際の送出時刻は、基準時刻T0に送出間隔を加えることにより決まる。図12の例を用いて説明すれば、データフロー1に含まれるパケットの送出時刻T0,T2,T3,T5,T6・・・は次式で表される。
T=T0+2Δt×(i−1)
ここでiは1以上の整数である。
【0036】
またデータフロー2に含まれるパケットの送出時刻T1,T4,T7,T10・・・は次式で表される。
T=T0+Δt+4Δt×(i−1)
ここでiは1以上の整数である。
送出時刻を決定するための基準時刻T0は、例えば次のようにして決めることができる。
【0037】
T0=Trtcp+Tmax ・・・(2)
ここで、Trtcpは、RTCPパケットを含む同期対象データフローのイーサフレームが、最初に同期ノード1に届いた時刻である。Tmaxは、イーサフレームをバッファ108にとどめておける最大時間である。
また基準時刻T0は、例えば次のようにして決めても良い。
【0038】
T0=Trtcp+Tb ・・・(3)
ここで、Trtcpは、RTCPパケットを含む同期対象データフローのイーサフレームが、最初に同期ノード1に届いた時刻である。Tbは、イーサフレームをバッファ108に所定量蓄積するのに要する時間である。より具体的には、バッファ108に蓄積できる最大量の例えば半分まで、イーサフレームを蓄積するのに要する時間がTbである。
【0039】
さらに上記式(2)及び(3)で求めた値のうちどちらか、例えば小さい方の値を基準時刻T0としてもよい。
上述のようにして求めた各パケットの送出時刻は、各パケットと対応付けてバッファ108に登録される。図13(B)は、IPパケットを含むイーサフレームとその送出時刻とが、バッファ108に対応付けて登録されていることを示す説明図である。バッファ108に蓄積されたイーサフレームの送出時刻は、抽出モジュール110により所定のタイミングで参照される。そのときすでに送出時刻を過ぎてしまっているパケットを含むイーサフレームが、バッファ108からraw socket101bを介し受信側のネットワーク4bに送出される。
【0040】
(3)同期装置が行う処理の流れ
図14は、図2に示す同期装置10が行う同期処理の流れの一例を示すフローチャートである。この処理は、同期ノード1のネットワークカード11aにデータが到着すると開始される。
ステップS1:同期装置10のフィルタリングモジュール104は、タイムアウトか否かを判断する。すなわち、前のパケットを受信してから次のパケットを受信するまでに所定の時間が経過したか否かを判断する。“Yes”と判断すると後述するステップS11に移行し、“No”と判断するとステップS2に移行する。
【0041】
ステップS2:Etherフィルタ104aは、受信したイーサフレームがIPパケットを含んでいるか否かを判断する。“Yes”と判断するとステップS3に移行する。“No”と判断すると、受信したイーサフレームをそのまま受信側のネットワーク4bに送出する(後述するS18)。
ステップS3:IPフィルタ104bは、Etherフィルタ104aから受け取ったイーサフレームに、UDPパケットが含まれているか否かを判断する。また、Etherフィルタ104aからのイーサフレームが、設定ファイル102に設定されている同期対象のデータフローを形成するか否かを判断する。両方の条件を満たすと判断すると、ステップS4に移行する。“No”と判断すると、受信側のネットワーク4bに受け取ったイーサフレームを送信する(S18)。
【0042】
ステップS4:RTPフィルタ104cは、IPフィルタ104bから受け取ったイーサフレームがRTPパケットを含むか否かを判断する。“Yes”と判断するとステップS5に移行する。“No”と判断すると後述するステップS13に移行する。
ステップS5:ペイロードフィルタ104dは、RTPフィルタ104cから受け取ったイーサフレームに含まれるデータのペイロードタイプが、設定ファイル102に設定されているペイロードタイプと合致するか否かを判断する。“Yes”と判断すると、ステップS6に移行する。“No”と判断すると、受け取ったイーサフレームを受信側ネットワーク4bにそのまま送出する(S18)。
【0043】
ステップS6、S7:セッション管理モジュール103は、受信したイーサフレームを含むデータフローを、監視テーブル111に登録したか否かを判断する(S6)。まだであれば、受信したイーサフレームのIPヘッダに記述されている送信元IPアドレス及びそのポート番号を、監視テーブル111に登録する(S7)。
【0044】
ステップS8:生成時刻計算モジュール106は、フィルタリングモジュール104から渡されたイーサフレーム内のRTPパケットが送信端末2で生成された時刻tiを計算する。
ステップS9:ソートモジュール107は、イーサフレームとその中に含まれるRTPパケットの生成時刻tiとを受け取り、バッファ108にそのイーサフレームを登録する。バッファ108には、生成時刻順を示すデータも併せて登録される。
【0045】
ステップS10:送出時刻計算モジュール109は、バッファ108に登録された各イーサフレームの送出時刻を計算し、送出時刻Tiを各イーサフレームと対応づけてバッファ108に書き込む。
ステップS11、S12:抽出モジュール110は、同期ノード1内の内部時計が示す時間とバッファ108内の各イーサフレームの送出時刻とを参照し、送出時刻を既に過ぎたイーサフレームがバッファ108内にあるか否かを判断する(S11)。“Yes”と判断するとそのパケットをraw socket101bから受信側のネットワーク4bに送信する(S12)。“No”と判断すると再びステップS1に戻り前述の処理を繰り返す。
【0046】
ステップS13:フィルタリングモジュール104内のRTPフィルタ104cに渡されたイーサフレームが、RTCPパケットを含んでいる場合、ステップS14に移行する。RTPパケットもRTCPパケットも含んでいない場合は、そのイーサフレームは受信側のネットワーク4bにそのまま送信される(S18)。
【0047】
ステップS14、S15:RTPフィルタ104cは、受信したRTCPパケットにSender Reportコマンドが記述されているか否かを判断する(S14)。Sender Reportであれば、RTCPパケットに記述されたNTP時刻及びタイムスタンプの値を生成時刻計算モジュール106に渡す。生成時刻計算モジュール106はこの値を一時的に記憶する(S15)。記憶したこれらの値は、前述した生成時刻の算出に用いられる。
【0048】
ステップS16、S17、S18:RTPフィルタ104cは、RTCPパケットにByeコマンドが記述されているか否かを判断する。Byeコマンドが記述されていれば、そのデータフローによる通信は終了しようとしていることを示す。そこで、該当のデータフローを監視テーブル111のエントリーから削除する(S17)。さらに、そのコマンドを含むイーサフレームを、受信側のネットワーク4bにそのまま送信する(S18)。
【0049】
以上の処理により、複数のデータフローが同期ノード1で同期された状態となって受信端末3に送信される。従って、受信端末3では同期処理を行う必要がない。受信端末3が複数ある場合、各受信端末3から出力された出力結果を同期させることができる。
<第2実施形態例>
(1)全体構成
図15は、第2実施形態に係る同期システムの全体構成図である。この同期システムでは、受信側同期ノード21aと送信側同期ノード21bとが動作する。コンピュータで実現される各同期ノード21a、bには、同期装置210がそれぞれ設けられている。1または複数の送信端末22a,22b(以下、送信端末22という)から送信された複数のデータフローは、ネットワーク24aを介して同期ノード21aに送られる。同期ノード21aは、複数のデータフローを合成し、ネットワーク24bを介して同期ノード21bに送信する。同期ノード21bは、合成されたデータフローから元のデータフローを復元し、ネットワーク24cを介して1または複数の受信端末23a、23b(以下、受信端末23という)に送信する。なお、この図では説明を容易にするためネットワーク24a〜cを別々に表しているが、これらのネットワークは同一であってもよい。
【0050】
さらに、いずれかのネットワーク24(図ではネットワーク24a)にはNTPサーバ40が接続されている。また同期ノード21a,b、送信端末22及び受信端末23には、NTPクライアント30が設けられている。NTPサーバ40及びNTPクライアント30は、同期ノード1、送信端末2及び受信端末3間での内部クロックのずれを修正する。
【0051】
(2)同期装置
(2−1)受信側同期ノードにおける同期装置
以下では、説明を容易にするために、データフローがUDP及びRTPにより送信される場合を例に取る。図16は、同期ノード21a、bに設けられた同期装置210の機能ブロック図である。同期装置210は、受信側同期ノード21aとしてコンピュータを機能させる場合と、送信側同期ノード21bとしてコンピュータを機能させる場合とがある。まず受信側同期ノード21aとしてコンピュータを機能させる場合の同期装置210について説明する。同期ノード21aは、図示しないネットワークカードにより、ネットワーク24a及びネットワーク24bに、それぞれ接続している。1または複数の各フロー/同期ノード用ポート(この場合はフロー用ポート)201aには、送信元端末端末22からの複数のデータフローがそれぞれ到着する。どのポートにどの送信端末22からのどのデータフローが到着するかは、設定ファイル202に記述されている。バッファリングモジュール204は、設定ファイル202を参照し、同期対象のデータフローが到着するポート201aからIPパケットを取り込んでバッファ205に蓄積する。合成/分離モジュール206は、各IPパケットに含まれるRTPパケットのタイムスタンプを参照し、同一のタイムスタンプをもつパケットを1つの合成パケットに合成する。合成パケットは、送出モジュール207により、各フロー/同期ノード用ポート(この場合は同期ノード用ポート)201bから同期ノード21bに送信される。
【0052】
(2−2)送信側同期ノードにおける同期装置
次に送信側同期ノード21bとしてコンピュータを機能させる場合の同期装置210について説明する。同期ノード21aが送信した合成パケットは、同期ノード21bの各フロー/同期ノード用ポート(この場合は同期ノード用ポート)201aに到着する。どのポートが同期ノード用ポートかは、設定ファイル202に記述されている。同期ノード用ポート201aに到着した合成パケットは、バッファリングモジュール204によりバッファ205に蓄積される。バッファ205に蓄積されたパケットは、合成/分離モジュール206により分解・復元され、送出モジュール207に渡される。分解され元通り復元されたパケットは、送出モジュール207により、各フロー/同期ノード用ポート(この場合は各フロー用ポート)201bから受信端末23に送信される。どのパケットをどの受信端末に送信するかは、設定ファイル202を参照して判断する。
【0053】
(3)同期装置の各ブロックの詳細
(3−1)同期対象のデータフローの設定
次に、各ブロックの機能についてさらに詳細に説明する。図17は、設定ファイル202に記述されるグループ指定データの概念説明図である。設定ファイルには同期対象のデータフローが指定されている。また、設定ファイル102には、同期させるべき各データフローそれぞれの送信元及び宛先が記述されている。同期するべきデータフローは1つのフローグループを形成する。同期装置210は、設定ファイル202を参照し、送信端末22から同期ノード21aに送信されたデータを同期ノード21aから同期ノード21bに送信する。また、同期装置210は、設定ファイル202を参照し、同期ノード21aから同期ノード21bに送信されたデータを、同期ノード21bから受信端末23に送信する。図17の例では、以下のグループ指定データが設定ファイルに記述されている。
(a)フローグループの「グループ名」
(b)グループに関する「コメント」
(c)「宛先の設定」
宛先とは、同期装置が送信側同期ノードとしてコンピュータを機能させる場合に、同期装置が分離・復元した各データフローの宛先である。宛先は、送信先受信端末のIPアドレス、ポート番号、フローIDで特定される。ここでフローIDとは、各データストリームを識別する識別情報である。送信側同期ノードにおいて、分離したデータフローと宛先の端末とを対応付けるために、フローIDが用いられる。あるいは、同一ポートで送受信される同じペイロードタイプの別々のデータフローを識別するためなどにフローIDが用いられる。フローIDは、送信端末、同期ノード及び受信端末の間で共通に使用される。フローIDは、例えば同期システムの管理者により設定される。
(d)「受信場所の設定」
受信場所とは、同期装置が受信側同期ノードとしてコンピュータを機能させる場合に、各データフローを受信するポート番号及び受信するデータフローのフローIDで特定される。
(e)「合成データフロー宛先」
同期装置が受信側同期ノードとしてコンピュータを機能させる場合に、合成パケットを送信する宛先である。宛先は、合成パケットを受け取る送信側同期ノード21bのIPアドレス及びポート番号で特定される。
(f)「合成データフロー受信場所」
同期装置が送信側同期ノードとしてコンピュータを機能させる場合に、受信側同期ノード21aから送信される合成パケットを受信するポート番号で特定される。
【0054】
図18及び図19は、設定ファイルへのグループ指定データの登録を受け付ける画面例である。これらの画面例は、セッション管理モジュール203により、同期ノード21a、bに接続されたディスプレイの画面に表示される。入力された情報は、設定ファイル202に書き込まれる。図18は、フローグループを設定するグループ選択画面例である。この画面は、フローグループのグループ名及びコメントの設定を受け付ける。図19は、同期対象設定画面例である。この画面は、宛先、受信場所、合成データフロー宛先、合成データフロー受信場所の設定を、フローグループごとに受け付ける。
【0055】
(3−2)合成パケットの構成
図20は、合成/分離モジュール206により生成及び分解される合成パケットの一部の構成を示す説明図である。合成パケットはイーサフレームの中に含まれるIPパケットのIPデータとして送受信される。イーサフレーム及びIPパケットの構成は、前記図7及び図8と同様である。合成パケットは、RTPヘッダ、個別ヘッダ及びデータ本体から構成される。
【0056】
RTPヘッダは、前記図に示すRTPパケットのRTPヘッダと同様の構成を有している。RTPヘッダのSSRCには、合成パケットを生成した同期ノードのSSRCが記述される。
個別ヘッダは、合成したデータフローの数だけ生成される。各個別ヘッダは多重化ヘッダとRTPヘッダとを含む。多重化ヘッダには、フローID、データ長及びmarkerが含まれる。データ長は、データ本体内部に含まれる該当フローに関するデータサイズ(データ1,データ2)のバイト数である。markerは、合成パケットが1つのフレームを分割したものか否か及び分割されたフレームの最後のパケットか否かを示す。個別ヘッダ内のRTPヘッダは、各送信端末22により生成されたRTPヘッダである。このRTPヘッダは、ペイロードタイプ、タイムスタンプ、SSRC及びmarkerを含む。SSRCは、データフローを送信した送信端末のSSRCである。なお、個別ヘッダ内のRTPヘッダは、1つのフレームを複数の合成パケットに分割して送信する場合には、先頭合成パケット以外は不要である。
【0057】
データ本体には、音声データや画像データ、ハプティクスデータなどのマルチメディアデータが記述される。これらを圧縮符号化したデータであっても良い。
(3−3)合成パケットの生成/分解
図20に示す合成パケットの生成及びその分解は、合成/分離モジュール206が行う。1つの合成パケットに合成される各RTPパケットは、同一のタイムスタンプの値を有する。タイムスタンプの値はパケットの送出間隔によって決まり、送出間隔はペイロードタイプによって決まる。従って、合成パケットに合成される各データフローのペイロードタイプは同一であることが好ましい。
【0058】
合成パケットの生成や分解は、画像データのデータフローを同期対象に含む場合には1フレーム単位で行う。つまり、合成パケットを生成する場合には、合成/分離モジュール206は、画像のデータフローについて1フレーム分のパケットがバッファ205に蓄積するのを待機する。次いで、他のデータフローについて前記1フレームに対応する全てのパケットを受信したか否かを確認する。全てのデータフローについて前記1フレーム分に対応するパケットを受信すると、それらを合成した合成パケットを生成する。合成パケットのデータ本体のデータサイズが大きすぎる場合は、1フレームを複数の合成パケットに分割する。
【0059】
逆に、合成パケットを分解する場合には、多重化ヘッダのmarkerを参照して1フレームが分割されているか否かを判断する。分割されていれば、1フレーム分の合成パケット全てをバッファ205に蓄積する。具体的には、markerの値が“0”すなわち分割されていれば、markerの値が“1”になるまでつまり分割した最後の合成パケットまでをバッファ205に蓄積する。その後、1フレーム分の合成パケットを分解して複数のRTPパケットを取り出し、各RTPパケットを含むイーサフレームを各データフローの受信端末23へ送信する。
【0060】
フロー制御モジュール208は、各フロー/同期ノード用ポート201a、bを参照し、パケットの欠落やRTP通信の管理を行う。
(4)同期装置が行う処理の流れ
図21は、図16の同期装置210が行う同期処理の流れの一例を示すフローチャートである。この処理は、同期ノード21の起動と共に開始する。
【0061】
ステップS201:まず、同期装置210は、設定ファイル202を参照し、各データフロー用のポート及び/又は同期ノード用ポート211a、211bを生成する。
ステップS202:バッファリングモジュール204は、各フロー用ポート又は同期ノード用ポート201aのいずれかからパケットを受信したか否かを判断する。“Yes”と判断するとステップS203に移行する。“No”と判断すると後述するステップS213に移行する。
【0062】
ステップS203:バッファリングモジュール204は、受信のあったポートが、別の同期ノードからの合成パケット用ポートなのか、それとも送信端末からのデータフロー用ポートなのかを判断する。データフローの受信であればステップS204に移行する。同期ノードからの合成パケットの受信であれば後述するステップS214に移行する。
【0063】
ステップS204〜S213は、同期装置210がコンピュータを受信側同期ノード21aとして動作させる場合の処理である。
ステップS204〜S207:バッファリングモジュール204は、送信端末22から受信したパケットをバッファ205に登録する(S204)。合成/分離モジュール206は、バッファ205に登録されたパケット内のデータ本体が画像データであるか否かを判断する(S205)。画像データであれば、1フレームを構成する全てのデータがバッファ205にそろっているか否かを判断する(S206)。続いて、前記1フレームに相当する他のデータフローのパケットがそろっているか否かを判断する(S207)。つまり、画像データのデータフローと同じフローグループに属する他のデータフローのパケットについて、前記1フレームを構成する画像データのタイムスタンプと同一のタイプスタンプを有するパケットがそろっているか否かを判断する。“Yes”と判断するとステップS209に移行する。“No”と判断するとステップS208に移行する。
【0064】
ステップS208:合成/分離モジュール206は、1フレーム分のパケットがフローグループ内の全てのデータフローについてそろうまで待機する。待機時間が所定の上限値に達すると、ステップS209に移行する。
ステップS209:合成/分離モジュール206は、バッファ205内のパケットを合成し、合成パケットを生成する。
【0065】
ステップS210、S211:合成/分離モジュール206は、データサイズが大きいために複数のパケットに分割する必要があるか否かを判断する(S210)。“Yes”と判断すると、合成パケットを複数のパケットに分割する(S211)。
ステップS212:送出モジュール207は、合成パケットを、同期ノード用ポート201bから送信側同期ノード21bの指定ポートに送信する。
【0066】
ステップS213:バッファリングモジュール204は、送信端末22からのパケットが一定期間以上到着しない場合、ステップS208に処理を移行する。
以下のステップS214〜S219は、同期装置210がコンピュータを送信側同期ノード21bとして動作させる場合の処理である。
ステップS214〜S216:同期ノードから合成パケットを受信した場合、合成/分離モジュール206は、合成パケットの個別ヘッダを参照し、1フレームが複数の合成パケットに分割されているか否かを判断する。分割されていなければ、受信した合成パケットを分解してデータフローごとのパケットを復元し(S215)、各データフローの受信端末へ送信する(S216)。
【0067】
ステップS217〜S219:受信した合成パケットが分割されている場合、バッファリングモジュール204は受信した合成パケットをバッファ205に登録する(S217)。ついで合成/分離モジュール206は、1フレームを構成する合成パケットの全てを受信したか否かを判断する(S218)。“Yes”と判断すると、合成/分離モジュール206は、1フレーム分の複数の合成パケットのデータ本体から取り出したデータを、データフロー毎に連結する(S219)。このとき、フローIDが等しいデータ同士が連結される。データ本体内部の各データのフローIDは、各合成パケットの個別ヘッダを参照することにより特定できる。その後、前述と同様に合成パケットを分解・復元し、各受信端末に送信する。
【0068】
この処理により、各受信端末において同期処理を行うことなく、各受信端末からの出力結果を同期させることができる。
<その他の実施形態>
前述のデータ同期方法をコンピュータ上で実行するためのプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明に含まれる。ここで記録媒体としては、コンピュータが読み書き可能なフレキシブルディスク、ハードディスク、半導体メモリ、CD−ROM、DVD、光磁気ディスク(MO)、その他のものが挙げられる。
【0069】
<付記>
(付記1)
複数のネットワーク間に流れるデータフローを中継するコンピュータが行うデータ同期方法であって、
同期させようとしている複数のデータフローの識別子を記憶する記憶ステップと、
前記ネットワークの少なくとも1つに流れるデータフローを受信する受信ステップと、
前記記憶ステップで記憶されている複数のデータフローを、受信したデータフローの中から選択する選択ステップと、
前記選択されたデータフローのそれぞれに含まれる各パケットが、前記選択されたデータフローを送信した1または複数の送信端末で生成された時刻を演算する演算ステップと、
前記演算された生成時刻に従い、前記選択されたデータフローのそれぞれに含まれるパケットが、前記選択されたデータフローそれぞれの宛先である1または複数の受信端末に送出される順番を、決定する順番決定ステップと、
各パケットの送出時刻の間隔が各パケットの生成時刻の間隔と同等となるように、かつ前記順番に従って各パケットが送出されるように、前記選択されたデータフローのそれぞれに含まれる各パケットの送出時刻を決定する送出時刻決定ステップと、
前記送出時刻に基づいて、各パケットを前記受信端末に送信する送信ステップと、
を含む、データ同期方法。
【0070】
第1ネットワーク上の送信端末から中継装置を介して第2ネットワーク上の受信端末に送信される2つのデータフローを考える。中継装置は各データフローに含まれるパケットが生成された順番にパケットを並べ直して受信装置に送出する。従って、データフロー毎にネットワーク遅延が異なるためにパケットの到着順が生成順と変わってしまう問題を解消できる。しかも、中継装置から受信端末への各パケットの送出間隔は、各パケットの生成間隔と同じになるように調整されている。従って、受信端末側での同期処理は必要ない。複数の受信装置がある場合、複数の受信端末がそれぞれにデータフローを受け取りそのまま出力デバイスに出力しても、出力結果は互いに同期したものとなる。
【0071】
(付記2)
前記記憶ステップは、同期させようとする複数のデータフローの識別子の設定を受け付ける画面を表示し、前記画面に入力された識別子を記憶する、付記1に記載のデータ同期方法。
(付記3)
前記選択ステップでは、パケットからなるデータフローであって、各データフローを送信した送信端末が各パケットを生成した時刻に関する時刻データが記述されたパケットを含む複数のデータフローを選択し、
前記演算ステップでは、前記時刻データに基づいて、各パケットの生成時刻を演算する、
付記1に記載のデータ同期方法。
【0072】
例えば、RTPパケットには、生成時刻としてタイムスタンプが記述されている。また、送信端末から送信されるRTCPパケットには、RTPパケットと共通の値を有するタイムスタンプと、RTCPパケットが生成された絶対時刻と、が記述されている。これらの情報を用いることにより、RTPパケットの生成時刻を演算することができる。
【0073】
(付記4)
前記送信ステップは、
各パケット送出時刻及び各パケットを対応付けて一時的に記憶し、
一時的に記憶したパケットのうち、その送出時刻が過ぎたパケットがあるか否かを所定のタイミングで判断し、
送出時刻が過ぎているパケットを送信する、
付記1に記載のデータ同期方法。
【0074】
(付記5)
前記選択ステップで選択されたデータフローに含まれるパケットを一時的に記憶するバッファリングステップをさらに含み、
前記演算ステップは、選択されたデータフローに含まれるRTCPパケットに記述された絶対時刻及びタイムスタンプ並びにRTPパケットに含まれるタイムスタンプとに基づいて生成時刻を演算し、
前記送出時刻決定ステップは、送出時刻を決定するための基準時刻T0を、最初のRTCPパケットがいずれかの送信端末から届いた時間Trtcpと、前記バッファリングステップでパケットを蓄積できる最大時間Tmaxとに基づいて決定する、
付記1に記載のデータ同期方法。
【0075】
送出時刻は、基準時刻T0に、各パケットの生成間隔を加算することにより決定する。基準時刻T0は、例えば次式を用いて決定することができる。
T0=Trtcp+Tmax
ここで、Trtcpは最初にRTCPパケットが届いた時刻である。Tmaxは、パケットをバッファリングできる最大時間である。
【0076】
(付記6)
前記選択ステップで選択されたデータフローに含まれるパケットを一時的に記憶するバッファリングステップをさらに含み、
前記演算ステップは、選択されたデータフローに含まれるRTCPパケットに記述された絶対時刻及びタイムスタンプ並びにRTPパケットに含まれるタイムスタンプとに基づいて生成時刻を演算し、
前記送出時刻決定ステップは、送出時刻を決定するための基準時刻T0を、最初のRTCPパケットがいずれかの送信端末から届いた時間Trtcpと、前記バッファリングステップでパケットを所定の量まで蓄積するのに要する時間Tbとに基づいて決定する、
付記1に記載のデータ同期方法。
【0077】
送出時刻は、基準時刻T0に、各パケットの生成間隔を加算することにより決定する。基準時刻T0は、例えば次式を用いて決定することができる。
T0=Trtcp+Tb
ここで、Trtcpは、最初にRTCPパケットが届いた時刻である。Tbは、パケットをバッファリングできる量の例えば半分までパケットを蓄積するのに要する時間である。
【0078】
(付記7)
複数のネットワーク間に流れるデータフローを中継するデータ同期システムであって、
同期させようとしている複数のデータフローの識別子を記憶する記憶手段と、
前記ネットワークの少なくとも1つに流れるデータフローを受信する受信手段と、
前記記憶手段で記憶されている複数のデータフローを、受信したデータフローの中から選択する選択手段と、
前記選択されたデータフローのそれぞれに含まれる各パケットが、前記選択されたデータフローを送信した1または複数の送信端末で生成された時刻を演算する演算手段と、
前記演算された生成時刻に従い、前記選択されたデータフローのそれぞれに含まれるパケットが、前記選択されたデータフローそれぞれの宛先である1または複数の受信端末に送出される順番を決定する順番決定手段と、
各パケットの送出時刻の間隔が各パケットの生成時刻の間隔と同等となるように、かつ前記順番に従って各パケットが送出されるように、前記選択されたデータフローのそれぞれに含まれる各パケットの送出時刻を決定する送出時刻決定手段と、
前記送出時刻に基づいて、各パケットを前記受信端末に送信する送信手段と、
を備えるデータ同期システム。
【0079】
(付記8)
複数のネットワーク間に流れるデータフローを中継するコンピュータが実行するデータ同期プログラムであって、
同期させようとしている複数のデータフローの識別子を記憶する記憶ステップと、
前記ネットワークの少なくとも1つに流れるデータフローを受信する受信ステップと、
前記記憶ステップで記憶されている複数のデータフローを、受信したデータフローの中から選択する選択ステップと、
前記選択されたデータフローのそれぞれに含まれる各パケットが、前記選択されたデータフローを送信した1または複数の送信端末で生成された時刻を演算する演算ステップと、
前記演算された生成時刻に従い、前記選択されたデータフローのそれぞれに含まれるパケットが、前記選択されたデータフローそれぞれの宛先である1または複数の受信端末に送出される順番を、決定する順番決定ステップと、
各パケットの送出時刻の間隔が各パケットの生成時刻の間隔と同等となるように、かつ前記順番に従って各パケットが送出されるように、前記選択されたデータフローのそれぞれに含まれる各パケットの送出時刻を決定する送出時刻決定ステップと、
前記送出時刻に基づいて、各パケットを前記受信端末に送信する送信ステップと、
を前記コンピュータに実行させるデータ同期プログラム。
【0080】
このプログラムを記録したコンピュータ読み取り可能な記録媒体も本発明の範囲に含まれる。ここで記録媒体としては、コンピュータが読み書き可能なフレキシブルディスク、ハードディスク、半導体メモリ、CD−ROM、DVD、光磁気ディスク(MO)、その他のものが挙げられる。
(付記9)
複数のネットワーク間に流れるデータフローを中継するコンピュータが行うデータ同期方法であって、
パケットからなる複数のデータフローであって、各データフローを送信した送信端末が各パケットを生成した時刻が記述されたパケットを含む複数のデータフローを、前記ネットワークの少なくとも1つから受信する受信ステップと、
同期させようとしている複数のデータフローの識別子と、前記複数のデータフローを中継する中継装置の中継アドレスと、を記憶する記憶ステップと、
前記記憶ステップで記憶されている複数のデータフローを、前記受信ステップで受信したデータフローの中から選択する選択ステップと、
前記選択された各データフローに含まれる各パケットのうち、生成時刻が同一のパケットを1つのパケットに合成した合成パケットを生成する合成ステップと、
合成パケットを、前記中継アドレスに送信する送信ステップと、
を含む、データ同期方法。
【0081】
第1ネットワーク上の送信端末から第2ネットワーク上の受信端末への複数のデータフローを、第1中継装置が合成し、第2中継装置が分離する同期システムを考える。この発明に係るデータ同期方法は第1中継装置が実行する。データフローは、例えばRTP(Real Time Protocol)で送信される。同期させる2つのデータフローの識別子を予め第1中継装置に登録しておく。第1中継装置は、2つのデータフローに含まれるパケットP1-i、P2-jのうち、生成時刻が同一のパケットP1-mとP2-mとを合成し、1つの合成パケットPmを生成する。合成パケットPmからなる合成データフローは、第1中継装置から第2中継装置に送信され、分解され、それぞれのデータフローとなる。なお、同期させるデータフローのペイロードタイプは同じであることが好ましい。
【0082】
(付記10)
前記記憶ステップは、同期させようとする複数のデータフローの識別子及び前記中継装置の中継アドレスの設定を受け付ける画面を表示し、前記画面に入力された識別子及び中継アドレスを記憶する、付記9に記載のデータ同期方法。
(付記11)
前記記憶ステップは、前記データフローそれぞれのペイロードタイプをさらに記憶し、
前記合成ステップは、前記選択された各データフローに含まれる各パケットのうち、同じペイロードタイプのパケットを1つのパケットに合成する、
付記9に記載のデータ同期方法。
【0083】
(付記12)
複数のネットワーク間に流れるデータフローを中継するデータ同期システムであって、
パケットからなる複数のデータフローであって、各データフローを送信した送信端末が各パケットを生成した時刻が記述されたパケットを含む複数のデータフローを、前記ネットワークの少なくとも1つから受信する受信手段と、
同期させようとしている複数のデータフローの識別子と、前記複数のデータフローを中継する中継装置の中継アドレスと、を記憶する記憶手段と、
前記記憶手段で記憶されている複数のデータフローを、前記受信ステップで受信したデータフローの中から選択する選択手段と、
前記選択された各データフローに含まれる各パケットのうち、生成時刻が同一のパケットを1つのパケットに合成した合成パケットを生成する合成手段と、
合成パケットを、前記中継アドレスに送信する送信手段と、
を含む、データ同期方法。
【0084】
(付記13)
複数のネットワーク間に流れるデータフローを中継するコンピュータが実行するデータ同期プログラムであって、
パケットからなる複数のデータフローであって、各データフローを送信した送信端末が各パケットを生成した時刻が記述されたパケットを含む複数のデータフローを、前記ネットワークの少なくとも1つから受信する受信ステップと、
同期させようとしている複数のデータフローの識別子と、前記複数のデータフローを中継する中継装置の中継アドレスと、を記憶する記憶ステップと、
前記記憶ステップで記憶されている複数のデータフローを、前記受信ステップで受信したデータフローの中から選択する選択ステップと、
前記選択された各データフローに含まれる各パケットのうち、生成時刻が同一のパケットを1つのパケットに合成した合成パケットを生成する合成ステップと、
合成パケットを、前記中継アドレスに送信する送信ステップと、
を前記コンピュータに実行させるデータ同期プログラム。
【0085】
このプログラムを記録した、コンピュータ読み取り可能な記録媒体も、本発明の範囲に含まれる。
(付記14)
複数のネットワーク間に流れるデータフローを中継するコンピュータが行うデータ同期方法であって、
前記ネットワークの少なくとも1つから、前記付記9に記載の方法により生成された合成パケットを受信する受信ステップと、
前記合成パケットを含む合成データフローに含まれている複数のデータフローそれぞれの送信先アドレスを記憶する記憶ステップと、
前記合成パケットを分解し、前記複数のデータフローを復元する分解ステップと、
復元された複数のデータフローを、それぞれの送信先アドレスに送信する送信ステップと、
を含む、データ同期方法。
【0086】
第1ネットワーク上の送信端末から第2ネットワーク上の受信端末への複数のデータフローを、第1中継装置が合成し、第2中継装置が分離する同期システムを考える。この発明に係るデータ同期方法は第2中継装置が実行する。第2中継装置は、第1中継装置が生成した合成パケットを分解し、それぞれのデータフローを復元する。復元されたデータフローは、各データフロー毎の宛先に送信される。これにより、受信装置で同期処理をしなくとも、受信装置は複数のデータフローを同期された状態で受信することができる。また、複数の受信装置がある場合、受信装置に接続された出力デバイスの出力を同期させることができる。なお、同期させるデータフローのペイロードタイプは同じであることが好ましい。
【0087】
(付記15)
前記記憶ステップは、合成データフローの受信場所の識別子及び前記データフローそれぞれの送信先アドレスの設定を受け付ける画面を表示し、前記画面に入力された識別子及び送信先アドレスを記憶する、付記14に記載のデータ同期方法。
【0088】
(付記16)
複数のネットワーク間に流れるデータフローを中継するデータ同期システムであって、
前記ネットワークの少なくとも1つから、前記付記9に記載の方法により生成された合成パケットを受信する受信手段と、
前記合成パケットを含む合成データフローに含まれている複数のデータフローそれぞれの送信先アドレスを記憶する記憶手段と、
前記合成パケットを分解し、前記複数のデータフローを復元する分解手段と、
復元された複数のデータフローを、それぞれの送信先アドレスに送信する送信手段と、
を備えるデータ同期システム。
【0089】
(付記17)
複数のネットワーク間に流れるデータフローを中継するコンピュータが実行するデータ同期プログラムであって、
前記ネットワークの少なくとも1つから、前記付記9に記載の方法により生成された合成パケットを受信する受信ステップと、
前記合成パケットを含む合成データフローに含まれている複数のデータフローそれぞれの送信先アドレスを記憶する記憶ステップと、
前記合成パケットを分解し、前記複数のデータフローを復元する分解ステップと、
復元された複数のデータフローを、それぞれの送信先アドレスに送信する送信ステップと、
を前記コンピュータに実行させるデータ同期プログラム。
【0090】
このプログラムを記録した、コンピュータ読み取り可能な記録媒体も、本発明の範囲に含まれる。
【0091】
【発明の効果】
本発明を用いれば、複数のデータフローを受信する受信端末から同期処理の負担を取り除くことができる。また、複数の受信端末のそれぞれが異なるデータフローを受信する場合、各受信端末からの出力を、受信端末側での同期処理をすることなく同期させることができる。
【図面の簡単な説明】
【図1】第1実施形態例に係る同期システムの全体構成図。
【図2】図1の同期装置の機能ブロック図。
【図3】図1の同期装置における設定ファイルの概念説明図。
【図4】設定ファイルへフローグループを登録するためのグループ選択画面例を示す説明図(1)。
【図5】設定ファイルへフローグループを登録するためのグループ選択画面例を示す説明図(2)。
【図6】図1の同期装置における監視テーブルの概念説明図。
【図7】イーサフレームの構成を示す説明図。
【図8】IPパケットの構成を示す説明図。
【図9】UDPパケットの構成を示す説明図。
【図10】(A)RTPパケットの構成を示す説明図。
(B)RTCPパケットの構成を示す説明図。
【図11】パケットの生成時刻の算出方法を示す説明図。
【図12】パケットの生成タイミングと同期したデータフローにおける各パケットの送出タイミングとの関係を示す説明図。
【図13】(A)生成時刻の順番及びパケットが登録されたバッファの概念説明図。
(B)送出時刻とパケットとが対応付けられたバッファの概念説明図。
【図14】図2の同期装置が行う同期処理の流れの一例を示すフローチャート。
【図15】第2実施形態例に係る同期システムの全体構成図。
【図16】図2の同期装置の機能ブロック図。
【図17】図2の同期装置における設定ファイルの概念説明図。
【図18】図17の設定ファイルへフローグループを登録するためのグループ選択画面例を示す説明図(1)。
【図19】図17の設定ファイルへフローグループを登録するためのグループ選択画面例を示す説明図(2)。
【図20】合成パケットの構成を示す説明図。
【図21】図16の同期装置が行う同期処理の流れの一例を示すフローチャート。
【符号の説明】
10,210:同期装置
2,22:送信端末
3,23:受信端末

Claims (3)

  1. 複数のネットワーク間に流れるデータフローを中継するコンピュータが行うデータ同期方法であって、
    同期させようとしている複数のデータフローの識別子と、前記複数のデータフローを送信する複数の送信端末の通信アドレスと、前記複数のデータフローの宛先である複数の受信端末の通信アドレスと、を記憶する記憶ステップと、
    前記ネットワークの少なくとも1つに流れるデータフローを受信する受信ステップと、
    前記記憶ステップで記憶されている複数のデータフローであってRTCPパケット及びRTPパケットを含むデータフローを、受信したデータフローの中から選択する選択ステップと、
    前記選択されたデータフローのそれぞれに含まれる各パケットが、前記選択されたデータフローを送信した複数の送信端末で生成された時刻を演算する演算ステップと、
    前記演算された生成時刻に従い、前記選択されたデータフローのそれぞれに含まれるパケットが、前記選択されたデータフローそれぞれの宛先である複数の受信端末に送出される順番を、決定する順番決定ステップと、
    各パケットの送出時刻の間隔が各パケットの生成時刻の間隔と同等となるように、かつ前記順番に従って各パケットが送出されるように、前記選択されたデータフローのそれぞれに含まれる各パケットの送出時刻を決定する送出時刻決定ステップと、
    前記送出時刻に基づいて、各パケットを前記受信端末に送信する送信ステップと、
    前記選択ステップで選択されたデータフローに含まれるパケットを一時的に記憶するバッファリングステップと、を含み、
    前記演算ステップは、選択されたデータフローに含まれるRTCPパケットに記述された絶対時刻及びタイムスタンプ並びにRTPパケットに含まれるタイムスタンプに基づいて生成時刻を演算し、
    前記送出時刻決定ステップは、送出時刻を決定するための基準時刻T0を、最初のRTCPパケットがいずれかの送信端末から届いた時間T rtcp と、前記バッファリングステップでパケットを蓄積できる最大時間T max または前記バッファリングステップでパケットを所定の量まで蓄積するのに要する時間Tbと、に基づいて決定する、
    データ同期方法。
  2. 複数のネットワーク間に流れるデータフローを中継するデータ同期システムであって、
    同期させようとしている複数のデータフローの識別子と、前記複数のデータフローを送信する複数の送信端末の通信アドレスと、前記複数のデータフローの宛先である複数の受信端末の通信アドレスと、を記憶する記憶手段と、
    前記ネットワークの少なくとも1つに流れるデータフローを受信する受信手段と、
    前記記憶手段で記憶されている複数のデータフローであってRTCPパケット及びRTPパケットを含むデータフローを、受信したデータフローの中から選択する選択手段と、
    前記選択されたデータフローのそれぞれに含まれる各パケットが、前記選択されたデータフローを送信した複数の送信端末で生成された時刻を演算する演算手段と、
    前記演算された生成時刻に従い、前記選択されたデータフローのそれぞれに含まれるパケットが、前記選択されたデータフローそれぞれの宛先である複数の受信端末に送出される順番を決定する順番決定手段と、
    各パケットの送出時刻の間隔が各パケットの生成時刻の間隔と同等となるように、かつ前記順番に従って各パケットが送出されるように、前記選択されたデータフローのそれぞれに含まれる各パケットの送出時刻を決定する送出時刻決定手段と、
    前記送出時刻に基づいて、各パケットを前記受信端末に送信する送信手段と、
    前記選択手段が選択したデータフローに含まれるパケットを一時的に記憶するバッファ リング手段と、を備え、
    前記演算手段は、選択されたデータフローに含まれるRTCPパケットに記述された絶対時刻及びタイムスタンプ並びにRTPパケットに含まれるタイムスタンプに基づいて生成時刻を演算し、
    前記送出時刻決定手段は、送出時刻を決定するための基準時刻T0を、最初のRTCPパケットがいずれかの送信端末から届いた時間T rtcp と、前記バッファリングステップでパケットを蓄積できる最大時間T max または前記バッファリングステップでパケットを所定の量まで蓄積するのに要する時間Tbと、に基づいて決定する、
    データ同期システム。
  3. 複数のネットワーク間に流れるデータフローを中継するコンピュータが実行するデータ同期プログラムであって、
    同期させようとしている複数のデータフローの識別子と、前記複数のデータフローを送信する複数の送信端末の通信アドレスと、前記複数のデータフローの宛先である複数の受信端末の通信アドレスと、を記憶する記憶ステップと、
    前記ネットワークの少なくとも1つに流れるデータフローを受信する受信ステップと、
    前記記憶ステップで記憶されている複数のデータフローであってRTCPパケット及びRTPパケットを含むデータフローを、受信したデータフローの中から選択する選択ステップと、
    前記選択されたデータフローのそれぞれに含まれる各パケットが、前記選択されたデータフローを送信した複数の送信端末で生成された時刻を演算する演算ステップと、
    前記演算された生成時刻に従い、前記選択されたデータフローのそれぞれに含まれるパケットが、前記選択されたデータフローそれぞれの宛先である複数の受信端末に送出される順番を、決定する順番決定ステップと、
    各パケットの送出時刻の間隔が各パケットの生成時刻の間隔と同等となるように、かつ前記順番に従って各パケットが送出されるように、前記選択されたデータフローのそれぞれに含まれる各パケットの送出時刻を決定する送出時刻決定ステップと、
    前記送出時刻に基づいて、各パケットを前記受信端末に送信する送信ステップと、
    前記選択ステップで選択されたデータフローに含まれるパケットを一時的に記憶するバッファリングステップと、を前記コンピュータに実行させるデータ同期プログラムであって、
    前記演算ステップは、選択されたデータフローに含まれるRTCPパケットに記述された絶対時刻及びタイムスタンプ並びにRTPパケットに含まれるタイムスタンプに基づいて生成時刻を演算し、
    前記送出時刻決定ステップは、送出時刻を決定するための基準時刻T0を、最初のRTCPパケットがいずれかの送信端末から届いた時間T rtcp と、前記バッファリングステップでパケットを蓄積できる最大時間T max または前記バッファリングステップでパケットを所定の量まで蓄積するのに要する時間Tbと、に基づいて決定する、データ同期プログラム
JP2003109492A 2003-04-14 2003-04-14 データ同期方法、データ同期システム及びデータ同期プログラム Expired - Fee Related JP3825416B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003109492A JP3825416B2 (ja) 2003-04-14 2003-04-14 データ同期方法、データ同期システム及びデータ同期プログラム
US10/798,262 US20040215810A1 (en) 2003-04-14 2004-03-12 Data synchronization method, data synchronization system and data synchronization program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003109492A JP3825416B2 (ja) 2003-04-14 2003-04-14 データ同期方法、データ同期システム及びデータ同期プログラム

Publications (2)

Publication Number Publication Date
JP2004320251A JP2004320251A (ja) 2004-11-11
JP3825416B2 true JP3825416B2 (ja) 2006-09-27

Family

ID=33295919

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003109492A Expired - Fee Related JP3825416B2 (ja) 2003-04-14 2003-04-14 データ同期方法、データ同期システム及びデータ同期プログラム

Country Status (2)

Country Link
US (1) US20040215810A1 (ja)
JP (1) JP3825416B2 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8443038B2 (en) 2004-06-04 2013-05-14 Apple Inc. Network media device
US20070110074A1 (en) 2004-06-04 2007-05-17 Bob Bradley System and Method for Synchronizing Media Presentation at Multiple Recipients
US10972536B2 (en) 2004-06-04 2021-04-06 Apple Inc. System and method for synchronizing media presentation at multiple recipients
US8797926B2 (en) 2004-06-04 2014-08-05 Apple Inc. Networked media station
US20080229335A1 (en) * 2004-06-04 2008-09-18 Apple Computer, Inc. Network media device
KR100565333B1 (ko) * 2004-06-22 2006-03-30 엘지전자 주식회사 휴대단말기의 비디오 오디오 동기장치 및 방법
KR20070104348A (ko) * 2005-01-11 2007-10-25 코닌클리케 필립스 일렉트로닉스 엔.브이. 의사 멀티-홈 호스트에 대한 효율적인 주소-공간 확장
AU2006346226B8 (en) * 2005-07-20 2010-03-25 Vidyo, Inc. System and method for a conference server architecture for low delay and distributed conferencing applications
EP1750454A1 (en) * 2005-08-05 2007-02-07 Dibcom Method, device and program for receiving and verifying payload data of a transport stream
US7792153B2 (en) * 2006-05-08 2010-09-07 International Business Machines Corporation Sequencing multi-source messages for delivery as partial sets to multiple destinations
US8448234B2 (en) 2007-02-15 2013-05-21 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for deep packet inspection for network intrusion detection
US9019087B2 (en) * 2007-10-16 2015-04-28 Immersion Corporation Synchronization of haptic effect data in a media stream
US8155090B2 (en) * 2007-11-01 2012-04-10 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for efficient multimedia delivery in a wireless packet network
KR101044323B1 (ko) * 2008-02-20 2011-06-29 가부시키가이샤 엔.티.티.도코모 음성 합성용 음성 데이터베이스를 구축하기 위한 통신 시스템, 이를 위한 중계 장치, 및 이를 위한 중계 방법
US8224868B2 (en) * 2008-07-31 2012-07-17 Verizon Patent And Licensing Inc. Network coding with last modified dates for P2P web caching
US9400555B2 (en) * 2008-10-10 2016-07-26 Internet Services, Llc System and method for synchronization of haptic data and media data
KR101293909B1 (ko) * 2009-11-24 2013-08-06 한국전자통신연구원 멀티미디어 컨텐트 전송 시스템 및 방법
JP5506362B2 (ja) * 2009-12-15 2014-05-28 キヤノン株式会社 送信装置、送信方法
US10122735B1 (en) * 2011-01-17 2018-11-06 Marvell Israel (M.I.S.L) Ltd. Switch having dynamic bypass per flow
EP2904811A4 (en) * 2012-10-01 2016-05-25 Internet Services Llc SYSTEM AND METHOD FOR SYNCHRONIZING HAPTIC DATA AND MEDIA DATA
EP3080995A4 (en) * 2013-12-15 2017-09-27 LG Electronics Inc. Broadcast transmission device and operating method thereof, and broadcast reception device and operating method thereof
JP2015164031A (ja) * 2014-01-30 2015-09-10 株式会社リコー 画像表示システム
KR102372180B1 (ko) * 2014-06-27 2022-03-11 삼성전자주식회사 유알엘의 안전도를 제공하는 전자 장치 및 방법
US10993274B2 (en) 2018-03-30 2021-04-27 Apple Inc. Pairing devices by proxy
US10783929B2 (en) 2018-03-30 2020-09-22 Apple Inc. Managing playback groups
US11297369B2 (en) 2018-03-30 2022-04-05 Apple Inc. Remotely controlling playback devices
US10614857B2 (en) 2018-07-02 2020-04-07 Apple Inc. Calibrating media playback channels for synchronized presentation
US20200076866A1 (en) * 2018-08-30 2020-03-05 Immersion Corporation Systems, devices, and methods for streaming haptic effects
US10820057B2 (en) * 2018-11-07 2020-10-27 Nvidia Corp. Scalable light-weight protocols for wire-speed packet ordering
US11108704B2 (en) 2018-12-04 2021-08-31 Nvidia Corp. Use of stashing buffers to improve the efficiency of crossbar switches
US11770215B2 (en) 2022-02-17 2023-09-26 Nvidia Corp. Transceiver system with end-to-end reliability and ordering protocols
WO2023204289A1 (ja) * 2022-04-22 2023-10-26 ソニーグループ株式会社 情報処理装置および方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2279204A (en) * 1993-06-17 1994-12-21 Ibm Communication terminal
JPH0983655A (ja) * 1995-09-14 1997-03-28 Fujitsu Ltd 音声対話システム
JPH09219851A (ja) * 1996-02-09 1997-08-19 Nec Corp 多地点ビデオ会議制御方法及び装置
US7831692B2 (en) * 2000-12-07 2010-11-09 International Business Machines Corporation Method and system for automatically associating an address with a target device
JP3912091B2 (ja) * 2001-12-04 2007-05-09 ソニー株式会社 データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
US20040249906A1 (en) * 2003-03-19 2004-12-09 Sharp Laboratories Of America, Inc. Device discovery and configuration utilizing DHCP protocol
US7606928B2 (en) * 2003-03-21 2009-10-20 Nokia Corporation Method and device for controlling receiver buffer fullness level in multimedia streaming

Also Published As

Publication number Publication date
JP2004320251A (ja) 2004-11-11
US20040215810A1 (en) 2004-10-28

Similar Documents

Publication Publication Date Title
JP3825416B2 (ja) データ同期方法、データ同期システム及びデータ同期プログラム
US6778493B1 (en) Real-time media content synchronization and transmission in packet network apparatus and method
JP6106775B2 (ja) ダウンローディング及びストリーミングをサポートするパケット受信方法
US7724780B2 (en) Synchronization of one or more source RTP streams at multiple receiver destinations
KR101354793B1 (ko) 입력 오디오 스트림 및 입력 비디오 스트림을 동기화하는 방법, 복수의 컴퓨팅 장치에 걸쳐서 전송되고 있는 미디어 스트림들을 동기화하기 위한 시스템, 및 컴퓨터 판독가능 매체
KR100337221B1 (ko) 중복성 음성/미디어 프레임의 전송에 의한 인터넷 실시간 미디어 전송의 서비스 품질 개선
KR101355059B1 (ko) 독립적인 시간 소스로부터 시간 신호(들)를 사용한 미디어 스트림들의 동기화
CN103945166B (zh) 用于在媒体中继会议中同步音频和视频流的方法和系统
JP2003338830A (ja) メディア送信方法、メディア受信方法、メディア送信装置及びメディア受信装置
KR20080068691A (ko) 스트리밍 및 제어 처리를 위한 별도의 구성을 이용한미디어 데이터 프로세싱
WO2007003701A1 (en) Audio and video synchronization
JP4345816B2 (ja) ネットワークシステムおよび中継装置
JP2002164915A (ja) 複数の通信を同期させるシステム及び方法
JP2020520205A (ja) リモートデータのアプリケーションによる消費を同期させるための方法と装置
WO2021248889A1 (zh) 一种拼接墙信号同步方法及装置
Raghavan et al. Synchronization representation and traffic source modeling in orchestrated presentation
US7136398B1 (en) Method and apparatus for adding functionality to an existing conference call
JP2003264590A (ja) パケット伝送システムとそのデータ送信装置及びデータ受信装置
CN107211031A (zh) 用于在多媒体系统中传输数据的方法以及软件产品和用于控制多媒体系统中的数据传输的装置
JP2000299684A (ja) データ通信システム
CN107846634B (zh) 音视频文件共享方法、装置及系统、存储介质、终端设备
CN101577609B (zh) 用于处理因特网语音协议封包的方法和装置
JP2001211195A (ja) データ通信システム
Benslimane et al. Dynamical grouping model for distributed real time causal ordering
KR101074073B1 (ko) 멀티미디어 데이터 저장용 버퍼 구조 및 버퍼링 방법

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20040818

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051006

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051101

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20051227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20051227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060627

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060629

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100707

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100707

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110707

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110707

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120707

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120707

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130707

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees