JP2005011267A - リアルタイムデータ通信システム、リアルタイムデータ通信装置およびリアルタイムデータ通信方法 - Google Patents
リアルタイムデータ通信システム、リアルタイムデータ通信装置およびリアルタイムデータ通信方法 Download PDFInfo
- Publication number
- JP2005011267A JP2005011267A JP2003177285A JP2003177285A JP2005011267A JP 2005011267 A JP2005011267 A JP 2005011267A JP 2003177285 A JP2003177285 A JP 2003177285A JP 2003177285 A JP2003177285 A JP 2003177285A JP 2005011267 A JP2005011267 A JP 2005011267A
- Authority
- JP
- Japan
- Prior art keywords
- connection
- real
- time data
- connections
- time
- 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.)
- Granted
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
【解決手段】HTTPサーバー1は、入力されたリアルタイムデータを受信する受信部21と、コネクション3−1、3−2、・・・3−nをアプリケーションソフトウエアが識別可能に複数生成する複数コネクション生成部を有し、リアルタイムデータを送信するために複数のコネクションの状態を管理するコネクション管理部22と、複数のコネクションのうちのいずれかでリアルタイムデータを送信する送信部23を有する。
【選択図】 図4
Description
【発明の属する技術分野】
本発明は、例えば、リアルタイムデータの通信を行うリアルタイムデータ通信システムに関するものである。
【0002】
【従来の技術】
一般に、リアルタイムデータを伝送する場合はUDP(User Datagram Protocol)の上でRTP(Real Time Transport Protocol)を使うストリーミング技術が使用されてきた。UDPはコネクションレス型プロトコルでフロー制御や再送制御などの機構をもたないので、ある一定時間が経過したデータの必要性がなくなるリアルタイム伝送には非常に適していた。
【0003】
それに対し、TCP(Transmission Control Protocol)はコネクション型プロトコルでフロー制御や再送制御の機構を備え、蓄積型コンテンツのダウンロードやストリーミング配信に使用されてきた。TCPを利用したHTTPは、UDPでは難しい、ファイアーウォールやNAT(Network Address Translator)を通過することができるデータ伝送手段が確立されており、現在それは非常に有効である。
【0004】
特許文献1には、利用者に応じたリソース制限を実行したコネクション制御を可能とするために、コネクション要求の利用を識別し、識別された利用者に応じて設定されたリソースの使用条件に従って使用するリソース領域を決定し、優先度の高い利用者に使用可能なリソースを多く設定する処理により、不特定多数の利用者からのコネクション要求がある通信処理装置において、特定のユーザーに対して優先的にコネクションを確立することが可能になる通信処理装置が開示されている。
【0005】
【特許文献1】
特開2003−125022号公報
【0006】
【発明が解決しようとする課題】
しかし、上述した従来のリアルタイムデータ通信システムにより、TCPを利用したHTTPでリアルタイムデータの伝送を行おうとすると、HTTPによる接続は、サーバーやプロクシ、ルータなどの制限をうける場合があり、データ転送途中で接続が切られてしまうことがあった。例えば、あるプロクシサーバーではサーバー管理者の不正アクセスを防止するためのポリシーにより、最大接続時間が指定されている場合があった。ほかにも、ISP(Internet Service Provider)などのネットワーク管理・接続を運営する組織の不正アクセスを防止するためのルールによって、長時間にわたる伝送が切断されることがあった。
【0007】
このような伝送途中で接続が切られてしまう場合は、再びHTTPコネクションを張りなおし、そのコネクション上にデータを流す必要があった。しかし、この再接続には伝送管理のためのオーバーヘッドを伴うネゴシエーションが必要であり、それに費やした時間だけデータペイロードとなるリアルタイムデータの伝送の遅延を生じさせることになる。したがって、再接続に時間がかかるとデータのリアルタイム性が失われる恐れがあるという不都合があった。
【0008】
そこで、本発明は、かかる点に鑑みてなされたものであり、ファイアーウォールやNATを越える通信に有効なHTTPを用いたリアルタイムデータ伝送における、突然のHTTPコネクション切断によるリアルタイムデータへの遅延を生じさせない連続したリアルタイム伝送を維持させるリアルタイムデータ通信システム、リアルタイムデータ通信装置およびリアルタイムデータ通信方法を提供することを課題とする。
【0009】
【課題を解決するための手段】
本発明のリアルタイムデータ通信システムのサーバーは、入力されたリアルタイムデータを受信する受信部と、コネクションをアプリケーションソフトウエアが識別可能に複数生成する複数コネクション生成部を有し、リアルタイムデータを送信するために基準時間内で複数のコネクションの状態を管理するコネクション管理部と、複数のコネクションのうちのいずれかでリアルタイムデータを送信する送信部を有する。
【0010】
また、クライアントは、複数のコネクションのうちのいずれかで送信されたリアルタイムデータを受信する受信部と、コネクションをアプリケーションソフトウエアが識別可能に複数生成する複数コネクション生成手段を有し、リアルタイムデータを受信するために基準時間内でコネクションの状態を管理するコネクション管理部と、受信されたリアルタイムデータを出力する送信部を有する。
【0011】
これにより、本発明のリアルタイムデータ通信システムは、1セッションのリアルタイムデータを伝送するのに複数のコネクションの各コネクション毎に基準時間内の各伝送期間を使用するものである。
【0012】
従って本発明によれば、以下の作用をする。
サーバーは、あらかじめ複数コネクション生成部により伝送のためのコネクションを複数生成して用意しておき、コネクション接続/切断監視部によりコネクションの接続が検出されたとき、コネクション切替部により他のコネクションに切り替えて、送信部によりデータ単位(例えばパケット単位)でコネクションを介してクライアントに伝送していく。
【0013】
ここで、プロクシやサーバー(もしくはクライアント)の仕様により伝送途中で基準時間設定部により設定された基準時間に基づいてコネクション切断部によりコネクションが切断されてしまった場合、コネクション接続/切断監視部によりコネクションの切断が検出されたとき、あらかじめ複数コネクション生成部により用意されていた他のコネクションを介してクライアントにデータを伝送することにより、データのリアルタイム性を維持することができる。
【0014】
あらかじめ複数コネクション生成部により作成される複数のコネクションは、コネクションずらし接続時間設定部により時間差を有するようにずらして設定された各接続時間内の各伝送期間毎に、コネクション切替部により他のコネクションに切り替えることにする。これにより、一定時間のタイムアウトによる同時切断を防ぐことができる。また、コネクション接続/切断監視部によりコネクションの切断が検出されたとき、複数コネクション生成部により切断されたコネクションを再度張りなおしておき、保留されるようにする。
【0015】
また、リアルタイムデータの伝送に使用されていないコネクションが基準時間設定部により設定された基準時間に基づいてコネクション切断部によりコネクションが切断されてしまう無通信タイムアウトによる切断を防ぐために、擬似のデータを送受信するようにする。
【0016】
これにより、複数のコネクション上でリアルタイムデータを通信する際に、複数のコネクションを選択的に利用して、転送効率とデータのリアルタイム性を向上させることができ、一つのコネクションが切断されても、他のコネクションでデータを流すことにより、コネクションの張りなおしによる遅延が発生しないようにすることができる。
【0017】
【発明の実施の形態】
以下に、本発明の実施の形態について、適宜、図面を参照しながら説明する。
【0018】
図1は、本発明の実施の形態に適用されるリアルタイムデータ通信システムの構成を示す図である。
本発明では、図1のようなリアルタイムデータを伝送する機器構成を想定する。説明をわかりやすくするために、HTTPサーバー1を送信側、HTTPクライアント2を受信側にしているが、どちらも同時に送受信できるものでも構わない。HTTPサーバー1とHTTPクライアント2がHTTP(Hypertext Transfer Protocol)サーバーもしくはクライアントとして実装されておりTCP上のHTTPによってデータの送受信を行う。
【0019】
図1において、HTTPサーバー1とHTTPクライアント2は複数のHTTPコネクション1(3−1)、HTTPコネクション2(3−2)、・・・HTTPコネクションn(3−n)で接続されており、このHTTPコネクション1(3−1)、HTTPコネクション2(3−2)、・・・HTTPコネクションn(3−n)上を、HTTPサーバー1に入力されたリアルタイムデータDIが流れ、HTTPクライアント2からリアルタイムデータDOが出力されるものとする。
【0020】
最初にHTTPクライアント2からHTTPサーバー1に対しHTTPリクエストを発行し、HTTPサーバー1がHTTPレスポンスとしてリアルタイムデータを流す。HTTPサーバー1とHTTPクライアント2が図1と逆に実装される場合にも、HTTPクライアントがHTTPサーバーにHTTPリクエストを発行し、その中にリアルタイムデータを含めて伝送することになる。HTTPクライアントが全てのデータを送り終えたとき、もしくは、HTTPサーバーで何らかのエラーが生じた場合にHTTPサーバーがHTTPクライアントに対しHTTPレスポンスを返すことになる。
【0021】
図2は、HTTPプロクシ接続されたリアルタイムデータ通信システムの構成を示す図である。
HTTPサーバー1とHTTPクライアント2間にHTTPプロクシ4が入る場合は図2のような形態をとる。この場合、HTTPサーバー1とHTTPクライアント2間でHTTPプロクシ4がTCP上のHTTPで運ばれてくるデータを転送しているだけならば、図1と同じと見なすことができる。
【0022】
具体的には、図2において、HTTPプロクシ4はHTTPサーバー1に対しては複数のHTTPコネクション1(3−1)、HTTPコネクション2(3−2)、・・・HTTPコネクションn(3−n)で接続されるクライアント4−1として振る舞い、HTTPプロクシ4はHTTPクライアント2に対しては複数のHTTPコネクション1(5−1)、HTTPコネクション2(5−2)、・・・HTTPコネクションn(5−n)で接続されるサーバー4−2として振る舞うことになる。
【0023】
上述した図1および図2において作成される複数のHTTPコネクションは後述するように任意の時間差で作成されるようにする。これは、HTTPプロクシ4やHTTPサーバー1(もしくはHTTPクライアント2)の転送タイムアウトによる複数同時切断を防ぐためである。
【0024】
ここで、リアルタイムデータDI、DOとは、ある一定期間に配送が完了することが望まれるデータである。例えば、ライブ配信やテレビ電話で扱われる映像や音声のデータである。このリアルタイムデータDI、DOはHTTPサーバー1に付けられたビデオカメラやマイクから得られる映像や音声のデータでも良いし、ネットワークで接続された他の機器(あるいはエンコーダ(圧縮装置))からRTPパケットとして転送されるストリーミングデータでも良い。
【0025】
リアルタイムもしくはストリーミングデータはパケットもしくは更に小さい単位にわけることができる。もし小分けされた一部のデータが通信途中で失われたとしても、受信側がそれ以降の後続データを受信することができれば、時刻に従って到着したデータを処理することが可能である。
【0026】
総帯域幅が一定であれば、複数のHTTPのコネクションを用いても得られる総帯域自体は変わらないが、例えば、HTTPでリアルタイムデータを伝送する際に、HTTPサーバーやHTTPプロクシの制約によりコネクションが断たれることによりリアルタイム性の確保が困難になることを回避することができる。
【0027】
図3は、伝送パケットおよびストリーミングデータパケット構成例を示す図である。
図3において、伝送パケット11は、RTPヘッダ12を有し、RTPヘッダ12は、時間情報を示すシーケンスナンバーSN13およびタイムスタンプTS14を有する。
【0028】
また、ストリーミングデータパケット15は、RTPペイロードとしてのストリーミングデータを有する。
【0029】
ここで、送信側のHTTPサーバー1は、時間情報を示すシーケンスナンバーSN13およびタイムスタンプTS14に基づいて遅延パケットの発生しているコネクションを検出して、他のコネクションに切り替えることができる。
【0030】
また、受信側のHTTPクライアント2では、ストリーミングデータを再現するために、伝送パケット11としてRTPを使用する場合は、伝送パケット11にあるRTPのシーケンスナンバーSN13やタイムスタンプTS14などを用いてデータの順序を並べ替えることができる。なお、再現方法に関してはストリーミングデータパケット15に示すRTPペイロードとしてのストリーミングデータに依存する。
【0031】
図4は、HTTPサーバーの構成を示す図である。
図4において、HTTPサーバー1は、入力されたリアルタイムデータDIを受信する受信部21と、受信部21で受信されたリアルタイムデータDIを複数のHTTPコネクション1(3−1)、HTTPコネクション2(3−2)、・・・HTTPコネクションn(3−n)のいずれかでHTTPコネクション出力COとして出力する送信部23と、複数のHTTPコネクション1(3−1)、HTTPコネクション2(3−2)、・・・HTTPコネクションn(3−n)をアプリケーションソフトウエアプログラムが識別可能に複数生成する複数コネクション生成部を有し、リアルタイムデータを送信するために複数のコネクションの状態を管理するコネクション管理部22を有して構成される。
【0032】
図5は、HTTPクライアントの構成を示す図である。
図5において、HTTPサーバー1は、複数のHTTPコネクション1(3−1)、HTTPコネクション2(3−2)、・・・HTTPコネクションn(3−n)のいずれかで入力されたHTTPコネクション入力CIを受信する受信部25と、受信部25で受信されたHTTPコネクション入力CIをリアルタイムデータDOとして出力する送信部26と、複数のHTTPコネクション1(3−1)、HTTPコネクション2(3−2)、・・・HTTPコネクションn(3−n)をアプリケーションソフトウエアプログラムが識別可能に複数生成する複数コネクション生成部を有し、リアルタイムデータを受信するために複数のコネクションの状態を管理するコネクション管理部24を有して構成される。
【0033】
図6は、コネクション管理部の構成を示す図である。
HTTPサーバー1のコネクション管理部22は、HTTPクライアント2からの要求に応じてHTTPサーバー1からリアルタイムデータを、アプリケーションソフトウエアが管理するHTTPプロトコルで通信のためのHTTPコネクションを介して伝送する際に、基準時間設定部31により設定された基準時間に基づいてコネクション切断部33によりコネクションを切断するように構成される。
【0034】
HTTPサーバー1のコネクション管理部22は、複数のHTTPコネクション1(3−1)、HTTPコネクション2(3−2)、・・・HTTPコネクションn(3−n)をアプリケーションソフトウエアプログラムが識別可能に複数生成する複数コネクション生成部31と、複数のHTTPコネクション1(3−1)、HTTPコネクション2(3−2)、・・・HTTPコネクションn(3−n)を切り替えるコネクション切替部36を有し、生成された複数のHTTPコネクション1(3−1)、HTTPコネクション2(3−2)・・・HTTPコネクションn(3−n)を順次あるいは選択的に切り替えると共に、リアルタイムデータの伝送期間以外には擬似データを伝送しながらHTTPサーバー1からHTTPクライアント2へリアルタイムデータを伝送するように構成される。また、HTTPクライアント2のコネクション管理部24も同様の構成を有する。
【0035】
HTTPサーバー1のコネクション管理部22は複数コネクション生成部31により生成された複数のコネクションおよびコネクション切断部33により切断されたコネクションを監視するコネクション接続/切断監視部34を有し、コネクション接続/切断監視部34によりコネクションの接続が検出されたとき、コネクション切替部36により他のコネクションに切り替えると共に、コネクション接続/切断監視部34によりコネクションの切断が検出されたとき、複数コネクション生成部31により切断されたコネクションの張り直しをするように構成される。また、HTTPクライアント2のコネクション管理部24も同様の構成を有する。
【0036】
HTTPサーバー1のコネクション管理部22は複数コネクション生成部31により生成された複数のコネクションの各接続時間をずらすための時間を設定するコネクションずらし接続時間設定部35を有し、コネクションずらし接続時間設定部35によりずらして設定された各接続時間内の各伝送期間毎に、コネクション切替部36により他のコネクションに切り替えるように構成される。また、HTTPクライアント2のコネクション管理部24も同様の構成を有する。
【0037】
また、HTTPクライアント2のコネクション管理部24は、1セッションのリアルタイムデータを複数のコネクションから受信する際に、リアルタイムデータの順序を整えて出力するデータ並べ替え部を有するように構成される。また、HTTPサーバー1のコネクション管理部24も同様の構成を有する。
【0038】
図7は、複数コネクションの識別を示す図である。
HTTPサーバー1では、オペレーティングシステムOS41の上位のアプリケーションソフトウエア42が管理するプロトコルHTTPで複数のコネクション上でリアルタイムデータを送信する際に、アプリケーションソフトウエア42が識別可能に生成された複数のコネクションを順次あるいは選択的に利用して、リアルタイムデータの分離をすることができる。
【0039】
このとき、アプリケーションソフトウエア42は、再生ソフトウエア43−1、再生ソフトウエア43−2、再生ソフトウエア43−3、・・・に対応するURL1、URL2、URL3、・・・の切り替えにより複数のリアルタイムデータの種別を示し、URLやHTTP認証(HTTPヘッダ)、その他独自認証方式においてセッションの識別を行う。一つのセッションに対しセッション識別子を設け、同一のセッション識別子を用いてひとつのURLに対し複数のHTTPコネクションを張ることを許す。また、切り替えによるデータの分離は、ストリーミングデータのパケット単位でする。
【0040】
また、HTTPクライアント2では、アプリケーションソフトウエア42が管理するプロトコルHTTPで複数のコネクション上でリアルタイムデータを受信する際に、アプリケーションソフトウエア42が識別可能に生成された複数のコネクションを順次あるいは選択的に利用して、リアルタイムデータの順序の並べ替えをすることができる。
【0041】
このとき、アプリケーションソフトウエア42は、再生ソフトウエア43−1、再生ソフトウエア43−2、再生ソフトウエア43−3、・・・に対応するURL1、URL2、URL3、・・・の切り替えにより複数のコネクションを識別する。また、切り替えにより分離されたデータの順序の並べ替えは、ストリーミングデータのパケット単位でする。
【0042】
また、HTTPクライアント2では、一つのコネクションが切断されたことはアプリケーションソフトウエア42が識別し、HTTPサーバー1およびHTTPクライアント2の両方でエラーとして検知される。また、切断されたコネクションを確立する場合には、アプリケーションソフトウエア42がURL1、URL2、URL3、・・・を識別してリアルタイムデータ伝送用のコネクションであると判断する。
【0043】
また、リアルタイムデータ伝送用のコネクションであるかないかの判断は、具体的には、リアルタイムデータ用のURLを設けておき、それにアクセスして確立されたHTTPコネクションがリアルタイムデータ伝送用のコネクションであるとアプリケーションソフトウエア42が識別する。
【0044】
例えば、「http://.../...real_Time−streaming?session=123456」というURLにアクセスすると、リアルタイムデータを伝送するコネクションを張ることができる。ただし、これだと複数端末で同時にアクセスするとリアルタイムデータが複数端末にばらばらにくばられてしまうので、「http://…/…real_Time−streaming?session=123456」とURLにセッションの識別子を設ける。もしくはHTTPのリクエストやレスポンスヘッダに情報を挿入してもよい。
【0045】
次に、このように構成された本発明の実施の形態に適用されるリアルタイムデータ通信システムの動作の詳細を以下に説明する。
【0046】
図8は、HTTPサーバーの動作を示すフローチャートである。
図8は、リアルタイムデータを送信するHTTPサーバー1がHTTPコネクション3を作成し、リアルタイムデータを送信するまでのステップである。以下にその詳細を述べる。
【0047】
ステップS1で、複数のHTTPコネクションを作成する。具体的には、HTTPサーバー1が送信側処理開始すると、受信側のHTTPクライアント2へリアルタイムデータを送信するためのHTTPコネクション3を作成する。HTTPコネクション3は複数コネクション生成部31により複数作成される。
【0048】
一つのコネクションが作成されたらステップS2へ移動し、ステップS2で、リアルタイムデータの入力があったかどうか、またはリアルタイムデータの入力がタイムアウトであったか、そうでないかの判定を行う。具体的には、HTTPサーバー1は、前述のようにリアルタイムデータを送信側に直接付けられたカメラのような機器から得る場合と、ネットワーク上の他の機器からRTPのようなパケットで得る場合がある。本発明の実施の形態ではいずれの場合も入力として同様に扱う。リアルタイムデータの入力があった場合、すぐに次の処理ステップS3へ行っても良いし、バッファやキューに複数データを蓄積してからステップS3に遷移しても良い。また、ステップS2で、リアルタイムデータの入力待ちになってからリアルタイムデータの入力があるまでブロックしてしまわないように、入力タイムアウトなどの何らかのエラーが発生した場合もS3へ遷移させるようにしている。
【0049】
ステップS3で、他のコネクションがあるか否かを判断し、他のコネクションがあるときは、ステップS4で、その他のコネクションはコネクションずらし接続時間設定部35によりずらして設定された各接続時間となるように時間差で後に作成されるようにスケジュールされた後に、自動的に全てのコネクションが作成される。接続後は時間がずらされたコネクションの状態が維持される。
【0050】
ステップS5で、ステップS2においてリアルタイムデータの入力がタイムアウトであったか、そうでないかなどのエラーチェックの判定を行う。具体的には、リアルタイムデータの入力タイムアウトなどのエラーチェックの判定はHTTPサーバー1のコネクション管理部22のコネクション接続/切断監視部34により行われ、このとき、基準時間設定部31により設定された基準時間に基づいて無通信タイムアウトとなって、コネクションの切断が検出されたとき、複数コネクション生成部31により切断されたコネクションの張り直しをする。
【0051】
これ以後、一度接続されたHTTPコネクションが何らかの理由により切断された場合には、すぐに複数コネクション生成部31により接続しなおし、常に決まった本数以上のコネクションを使えるようにしておく。また、基準時間設定部31により設定された基準時間に基づいて無通信タイムアウトとなって、コネクション切断部33によりコネクションが切断されることを防ぐため、リアルタイムデータの伝送期間以外には一定の擬似のデータを送出しても良い。
【0052】
もしタイムアウトなどのエラーがなかった場合はステップS6へ移る。タイムアウトなどのエラーがあった場合はステップS8へ移る。
【0053】
ステップS6で、ステップS2において入力されたデータを送信するためのHTTPコネクションを、ステップS1において作成したHTTPコネクションから選択する。具体的には、HTTPコネクションの選択はコネクション切替部36により行われ、選択方法は、作成されたHTTPコネクションを順番に指定しても良いし、以前にデータを送信したことがあればこれまで使用していたHTTPコネクションを引き続き使用しても良いし、新たにデータを送信する場合や何らかの判断によりHTTPコネクションを替える場合はステップS1で作成したHTTPコネクションから一つ選択してデータを送信しても良い。
【0054】
ステップS7で、入力されたリアルタイムデータを選択されたHTTPコネクションで送信する。もし送信に失敗した場合は、リアルタイムデータをデータの欠落として破棄し、ステップS2で次のデータを送信する準備をしても良い。また、送信に成功した場合も、冗長なデータ送信を必要するならば、再度ステップS6に移り同じデータを別のHTTPコネクションで送信するように繰り返しても良い。
ステップS8で、ある一定期間の間に入力がなくなり終了する。
【0055】
図9は、HTTPクライアントの動作を示すフローチャートである。
図9は、リアルタイムデータ受信側のHTTPクライアント2がHTTPコネクション3を作成し、リアルタイムデータを受信し、出力するまでのステップである。以下にその詳細を述べる。
【0056】
ステップS11で、複数のHTTPコネクションを作成する。具体的には、HTTPクライアント2は、受信側処理開始すると、送信側のHTTPサーバー1〜リアルタイムデータを受信するためのHTTPコネクション3を作成する。HTTPクライアント2は、HTTPサーバー1へ接続を能動的に確立しても良いし、HTTPサーバー1からの接続を待機しても良い。HTTPコネクション3は複数コネクション生成部31により複数作成される。一つのコネクションが作成されたらステップS12へ移動する。ステップS14でその他のコネクションは時間差で後に作成されるようにスケジュールされ、維持される。また、これ以後、一度接続されたHTTPコネクションが何らかの理由により切断された場合には、すぐに接続しなおし、常に決まった本数以上のコネクションを使えるようにしておく。
【0057】
ステップS12で、HTTPコネクションからデータが受信できるまで待機し、可能になったらデータを受信する。データを受信した場合はステップS13へ移る。全てのHTTPコネクションで受信タイムアウトが発生した場合に送信側から全てのHTTPコネクションが切り替えられたりした場合はステップS16へ移る。タイムアウトの検出は、HTTPクライアント2のコネクション管理部24のコネクション接続/切断監視部34により行われ、このとき、基準時間設定部31により設定された基準時間に基づいて無通信タイムアウトとなって、コネクションの切断が検出されたとき、複数コネクション生成部31により切断されたコネクションの張り直しをする。
【0058】
ステップS13で、他のコネクションがあるか否かを判断し、他のコネクションがあるときは、ステップS14で、その他のコネクションはコネクションずらし接続時間設定部35によりずらして設定された各接続時間となるように時間差で後に作成されるようにスケジュールされた後に、自動的に全てのコネクションが作成される。接続後は時間がずらされたコネクションの状態が維持される。
【0059】
全てのコネクションが作成されたときは、ステップS15へ移行し、ステップS15で、受信されたデータを出力する。無通信タイムアウトを防ぐための擬似データは出力されず破棄される。出力先は、HTTPクライアント2に直接接続されたモニタやスピーカなどの再生装置でも良いし、ネットワーク上の他の機器(あるいはデコーダ(伸長装置))へ転送しても良い。出力が終わればステップS12へ戻る。
【0060】
ここで、複数のHTTPコネクションを通って受信されているのでリアルタイムデータ間で順序の入れ替えが発生している場合には、送信部26で順序を補正するようにして、出力する際にデータ並べ替え部により順序を整えて出力する。この場合は出力直前にバッファあるいはキューを設け、ある一定の量か期間のリアルタイムデータを蓄積し、古いデータから順に出力していく。
【0061】
ステップS16で、受信するデータがなくなった、あるいはHTTPコネクションが切断されたため、終了する。
【0062】
図10は、複数のHTTPコネクションを使った転送状態の例を示す図である。
図10は、HTTPコネクションごとの、複数のHTTPコネクションを使った転送状態を示した図である。それぞれのHTTPコネクション1(51)、2(52)、3(53)、4(54)、・・・n(5n)、n+1(5n+1)は時間差T2−T1、T3−T2、・・・Tn+1−Tnで作成され、HTTPコネクションの作成(接続)54からHTTPコネクションの廃棄(切断)55されるまでの全てのHTTPコネクションの有効期間56あるいは斜線で示した一部のリアルタイムデータの伝送期間58−1〜58−n+1にリアルタイムデータの伝送を行なう。55で示す切断されたコネクションは即座に再接続され、伝送のために維持される。
【0063】
これにより、リアルタイムデータは接続状態にあるHTTPコネクション1(51)、2(52)、3(53)、4(54)、・・・n(5n)、n+1(5n+1)上の連続したリアルタイムデータの伝送期間58−1〜58−n+1を流れることが保証されるため、途切れのない伝送が可能である。
【0064】
ここで、基準時間設定部31により設定された基準時間に基づいて無通信タイムアウトとなって、コネクションの切断がされないように、それぞれのHTTPコネクション1(51)、2(52)、3(53)、4(54)、・・・n(5n)、n+1(5n+1)のHTTPコネクションの有効期間56またはリアルタイムデータの伝送期間58−1〜58−n+1は、基準時間内に設定される。
【0065】
また、基準時間設定部31により設定された基準時間に基づいて無通信タイムアウトとなって、コネクション切断部33によりコネクションが切断されることを防ぐため、それぞれのHTTPコネクション1(51)、2(52)、3(53)、4(54)、・・・n(5n)、n+1(5n+1)のHTTPコネクションのリアルタイムデータの伝送期間58−1〜58−n+1以外の有効期間56には一定の擬似のデータを送出しても良い。
【0066】
なお、斜線で示したリアルタイムデータの伝送期間58−1〜58−n+1はリアルタイムデータの伝送期間を示すもので、個々のパケットを表すものではない。リアルタイムデータの送信方法としては、リアルタイムデータの伝送期間58−1〜58−n+1内に、リアルタイムデータのデータ単位でHTTPコネクション上に書き込むが、この場合、通常はTCPのsend( )を実行して、一定量のデータをパケットとして伝送する。
【0067】
図11は、コネクション切替動作を説明する図である。
図11において、HTTPサーバー1のコネクション管理部22は、HTTPクライアント2からの要求に応じてHTTPサーバー1〜リアルタイムデータを、アプリケーションソフトウエアが管理するHTTPプロトコルでHTTPコネクション1(3−1)を介して伝送する際に、HTTPサーバー1の運用ポリシーなどに基づいて基準時間設定部31により設定された基準時間に基づいてコネクション切断部33によりHTTPコネクション1(3−1)が突然切断されることがある。このとき、HTTPコネクション1(3−1)においてパケットP1、P2、P3、P4、P5の伝送は中止される。また、すでに切断されているHTTPコネクション2(3−2)においてパケットP6の伝送は中止される。
【0068】
コネクション接続/切断監視部34によりHTTPコネクション1(3−1)の切断が検出されたとき、複数コネクション生成部31により切断されたHTTPコネクション1(3−1)、HTTPコネクション2(3−2)の張り直しをする。このとき、再度接続を張り直して完全に復旧するまでリアルタイムデータの伝送をすることができない。
【0069】
そこで、予め複数コネクション生成部31により複数のHTTPコネクション1(3−1)、HTTPコネクション2(3−2)、・・・HTTPコネクションn(3−n)をアプリケーションソフトウエアが識別可能に複数生成しておき、コネクションずらし接続時間設定部35によりずらして設定された各接続時間内の各伝送期間毎に、コネクション切替部36により他の・・・HTTPコネクションn(3−n)、HTTPコネクションn+1(3−n+1)に切り替える。
【0070】
これにより、HTTPコネクションn(3−n)においてパケットP7、P8、P9が伝送され、HTTPコネクションn+1(3−n+1)においてパケットP10、P11、P12が伝送され、後続のパケットP13、P14、P15も張り直しされたHTTPコネクション1(3−1)、HTTPコネクション2(3−2)、または・・・HTTPコネクションn(3−n)、HTTPコネクションn+1(3−n+1)において伝送される。
【0071】
従来、HTTPプロクシやHTTPサーバ(もしくはHTTPクライアント)による突然の切断により、HTTPによるリアルタイムデータ伝送はHTTPコネクションの張りなおしのために生じる遅延を受け入れなければならず、その遅延は後続するパケットにも影響してしまい、多くのデータのリアルタイム性を失わせていたが、この発明の実施の形態を用いれば、HTTPコネクションの張りなおしによる遅延の影響を避け、リアルタイム性の維持が可能となる。
【0072】
また一般に、リアルタイムデータ伝送には主にUDPが使用されてきたが、UDPによる伝送はファイアーウォールを越えることが困難であるが、一方、HTTPプロクシによるファイアーウォールを越えて伝送する手段は現在広く利用されていて、これに対して、本発明の実施の形態を利用すれば、ファイアーウォールを越えるリアルタイムデータ伝送もより高い品質で可能となる。
【0073】
本発明の実施の形態は、上述したものに限らず、HTTPだけでなく、HTTPS(Hypertext Transfer Protocol,Secure)、FTP(File Transfer Protocol)、SSL(Secure Sockets Layer)、TLS(Transport Layer Security)などのTCP上で用いられる各種プロトコルに適用可能である。
【0074】
【発明の効果】
この発明により、HTTPコネクションを動的に切り替えてリアルタイムデータを伝送できる機構を設けることで、HTTPプロクシやHTTPサーバ(もしくはクライアント)の接続タイムアウトなどによりHTTPコネクションが切断されても、コネクション再接続による遅延の影響を受けずにリアルタイムデータを伝送することができるという効果を奏する。
【図面の簡単な説明】
【図1】本発明の実施の形態に適用されるリアルタイムデータ通信システムの構成を示す図である。
【図2】HTTPプロクシ接続されたリアルタイムデータ通信システムの構成を示す図である。
【図3】伝送パケットおよびストリーミングデータパケット構成例を示す図である。
【図4】HTTPサーバーの構成を示す図である。
【図5】HTTPクライアントの構成を示す図である。
【図6】コネクション管理部の構成を示す図である。
【図7】複数コネクションの識別を示す図である。
【図8】HTTPサーバーの動作を示すフローチャートである。
【図9】HTTPクライアントの動作を示すフローチャートである。
【図10】複数のHTTPコネクションを使った転送状態の例を示す図である。
【図11】コネクション切替動作を説明する図である。
【符号の説明】
1……HTTPサーバー、2……HTTPクライアント、3……HTTPコネクション、4……HTTPプロクシ、11……伝送パケット、12……RTPヘッダ、13……シーケンスナンバーSN,14……タイムスタンプTS、15……ストリーミングデータパケット、21……受信部、22……コネクション管理部、23……受信部、24……コネクション管理部、26……送信部、31……複数コネクション生成部、32……基準時間設定部、33……コネクション切断部、34……コネクション接続/切断監視部、35……コネクションずらし接続時間設定部、36……コネクション切替部、41……OS、42……アプリケーションソフトウエア、43……再生ソフトウエア
Claims (14)
- クライアントからの要求に応じてサーバーからリアルタイムデータを、アプリケーションソフトウエアが管理するプロトコルで通信のためのコネクションを介して伝送する際に、基準時間設定部により設定された基準時間に基づいてコネクション切断部によりコネクションを切断するリアルタイムデータ通信システムにおいて、
入力されたリアルタイムデータを受信する受信部と、上記コネクションをアプリケーションソフトウエアが識別可能に複数生成する複数コネクション生成部を有し、リアルタイムデータを送信するために上記基準時間内で上記複数のコネクションの状態を管理するコネクション管理部と、上記複数のコネクションのうちのいずれかでリアルタイムデータを送信する送信部を有するサーバーと、
上記複数のコネクションのうちのいずれかで送信されたリアルタイムデータを受信する受信部と、上記コネクションをアプリケーションソフトウエアが識別可能に複数生成する複数コネクション生成部を有し、リアルタイムデータを受信するために上記基準時間内で上記コネクションの状態を管理するコネクション管理部と、受信されたリアルタイムデータを出力する送信部を有するクライアントと、
を備え、リアルタイムデータを伝送するのに複数のコネクションの各コネクション毎に上記基準時間内の各伝送期間を使用することを特徴とするリアルタイムデータ通信システム。 - 請求項1記載のリアルタイムデータ通信システムにおいて、
上記サーバーの上記コネクション管理部は上記複数のコネクションを切り替えるコネクション切替部を有し、
生成された上記複数のコネクションを順次あるいは選択的に切り替えると共に、リアルタイムデータの上記伝送期間以外には擬似データを伝送しながら、上記サーバーから上記クライアントへリアルタイムデータを伝送することを特徴とするリアルタイムデータ通信システム。 - 請求項2記載のリアルタイムデータ通信システムにおいて、
上記サーバーの上記コネクション管理部は上記複数コネクション生成部により生成された複数のコネクションおよびコネクション切断部により切断されたコネクションを監視するコネクション接続/切断監視部を有し、
上記コネクション接続/切断監視部によりコネクションの接続が検出されたとき、上記コネクション切替部により他のコネクションに切り替えると共に、上記コネクション接続/切断監視部によりコネクションの切断が検出されたとき、上記複数コネクション生成部により切断されたコネクションの張り直しをすることを特徴とするリアルタイムデータ通信システム。 - 請求項2記載のリアルタイムデータ通信システムにおいて、
上記サーバーの上記コネクション管理部は上記複数コネクション生成部により生成された複数のコネクションの各接続時間をずらすための時間を設定するコネクションずらし接続時間設定部を有し、
上記コネクションずらし接続時間設定部によりずらして設定された各接続時間内の各伝送期間毎に、上記コネクション切替部により他のコネクションに切り替えることを特徴とするリアルタイムデータ通信システム。 - 請求項1記載のリアルタイムデータ通信システムにおいて、
上記クライアントの上記コネクション管理部は、1セッションのリアルタイムデータを複数のコネクションから受信する際に、リアルタイムデータの順序を整えて出力するデータ並べ替え部を有することを特徴とするリアルタイムデータ通信システム。 - クライアントからの要求に応じてリアルタイムデータを、アプリケーションソフトウエアが管理するプロトコルで通信のためのコネクションを介して伝送する際に、基準時間設定部により設定された基準時間に基づいてコネクション切断部によりコネクションを切断するサーバーとしてのリアルタイムデータ通信装置において、
入力されたリアルタイムデータを受信する受信部と、
上記コネクションをアプリケーションソフトウエアが識別可能に複数生成する複数コネクション生成部と、上記複数のコネクションを切り替えるコネクション切替部を有し、リアルタイムデータを送信するために上記基準時間内で上記複数のコネクションの状態を管理するコネクション管理部と、
上記複数のコネクションのうちのいずれかでリアルタイムデータを送信する送信部を備え、
生成された上記複数のコネクションを順次あるいは選択的に切り替えながら複数のコネクションの各コネクション毎に上記基準時間内の各伝送期間を使用して上記クライアントへリアルタイムデータを伝送することを特徴とするリアルタイムデータ通信装置。 - 請求項6記載のリアルタイムデータ通信装置において、
上記サーバーの上記コネクション管理部は上記複数コネクション生成部により生成された複数のコネクションおよびコネクション切断部により切断されたコネクションを監視するコネクション接続/切断監視部を有し、
上記コネクション接続/切断監視部によりコネクションの接続が検出されたとき、上記コネクション切替部により他のコネクションに切り替えると共に、上記コネクション接続/切断監視部によりコネクションの切断が検出されたとき、上記複数コネクション生成部により切断されたコネクションの張り直しをすることを特徴とするリアルタイムデータ通信装置。 - 請求項6記載のリアルタイムデータ通信装置において、
上記サーバーの上記コネクション管理部は上記複数コネクション生成部により生成された複数のコネクションの各接続時間をずらすための時間を設定するコネクションずらし接続時間設定部を有し、
上記コネクションずらし接続時間設定部によりずらして設定された各接続時間内の各伝送期間毎に、上記コネクション切替部により他のコネクションに切り替えることを特徴とするリアルタイムデータ通信装置。 - 要求に応じてサーバーからアプリケーションソフトウエアが管理するプロトコルでリアルタイムデータが伝送される際に、基準時間設定部により設定された基準時間に基づいてコネクション切断部により切断される通信のためのコネクションを介してリアルタイムデータを受信するクライアントとしてのリアルタイムデータ通信装置において、
上記複数のコネクションのうちのいずれかで送信されたリアルタイムデータを受信する受信部と、
上記コネクションをアプリケーションソフトウエアが識別可能に複数生成する複数コネクション生成部と、リアルタイムデータを複数のコネクションから受信する際に、リアルタイムデータの順序を整えて出力するデータ並べ替え部を有し、リアルタイムデータを受信するために上記基準時間内で上記コネクションの状態を管理するコネクション管理部と、受信されたリアルタイムデータを出力する送信部と、
を備え、複数のコネクションの各コネクション毎に上記基準時間内の各伝送期間を使用して伝送されたリアルタイムデータを出力することを特徴とするリアルタイムデータ通信装置。 - クライアントからの要求に応じてサーバーからリアルタイムデータを、アプリケーションソフトウエアが管理するプロトコルで通信のためのコネクションを介して伝送する際に、基準時間設定ステップにより設定された基準時間に基づいてコネクション切断ステップによりコネクションを切断するリアルタイムデータ通信方法において、
サーバーでは、入力されたリアルタイムデータを受信部により受信する受信ステップと、リアルタイムデータを送信するために上記基準時間内で上記複数のコネクションの状態を管理するコネクション管理部により上記コネクションをアプリケーションソフトウエアが識別可能に複数生成する複数コネクション生成ステップと、上記複数のコネクションのうちのいずれかでリアルタイムデータを送信部により送信する送信ステップを有し、
クライアントでは、上記複数のコネクションのうちのいずれかで送信されたリアルタイムデータを受信部により受信する受信ステップと、リアルタイムデータを受信するために上記基準時間内で上記コネクションの状態を管理するコネクション管理部により上記コネクションをアプリケーションソフトウエアが識別可能に複数生成する複数コネクション生成ステップと、受信されたリアルタイムデータを送信部より出力する送信ステップを有し、
複数のコネクションの各コネクション毎に上記基準時間内の各伝送期間を使用してリアルタイムデータを伝送することを特徴とするリアルタイムデータ通信方法。 - 請求項10記載のリアルタイムデータ通信方法において、
上記サーバーの上記コネクション管理部は生成された上記複数のコネクションを切り替えるコネクション切替ステップを有し、
生成された上記複数のコネクションを順次あるいは選択的に切り替えると共に、リアルタイムデータの上記伝送期間以外には擬似データを伝送しながら、上記サーバーから上記クライアントへリアルタイムデータを伝送することを特徴とするリアルタイムデータ通信方法。 - 請求項11記載のリアルタイムデータ通信方法において、
上記サーバーの上記コネクション管理部は上記複数コネクション生成ステップにより生成された複数のコネクションおよびコネクション切断ステップにより切断されたコネクションを監視するコネクション接続/切断監視ステップを有し、
上記コネクション接続/切断監視ステップによりコネクションの接続が検出されたとき、上記コネクション切替ステップにより他のコネクションに切り替えると共に、上記コネクション接続/切断監視ステップによりコネクションの切断が検出されたとき、上記複数コネクション生成ステップにより切断されたコネクションの張り直しをすることを特徴とするリアルタイムデータ通信方法。 - 請求項11記載のリアルタイムデータ通信方法において、
上記サーバーの上記コネクション管理部は上記複数コネクション生成ステップにより生成された複数のコネクションの各接続時間をずらすための時間を設定するコネクションずらし接続時間設定ステップを有し、
上記コネクションずらし接続時間設定ステップによりずらして設定された各接続時間内の各伝送期間毎に、上記コネクション切替ステップにより他のコネクションに切り替えることを特徴とするリアルタイムデータ通信方法。 - 請求項10記載のリアルタイムデータ方法において、
上記クライアントの上記コネクション管理部は、リアルタイムデータを複数のコネクションから受信する際に、リアルタイムデータの順序を整えて出力するデータ並べ替えステップを有することを特徴とするリアルタイムデータ通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003177285A JP4285101B2 (ja) | 2003-06-20 | 2003-06-20 | リアルタイムデータ通信システム、リアルタイムデータ通信装置およびリアルタイムデータ通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003177285A JP4285101B2 (ja) | 2003-06-20 | 2003-06-20 | リアルタイムデータ通信システム、リアルタイムデータ通信装置およびリアルタイムデータ通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005011267A true JP2005011267A (ja) | 2005-01-13 |
JP4285101B2 JP4285101B2 (ja) | 2009-06-24 |
Family
ID=34099914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003177285A Expired - Fee Related JP4285101B2 (ja) | 2003-06-20 | 2003-06-20 | リアルタイムデータ通信システム、リアルタイムデータ通信装置およびリアルタイムデータ通信方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4285101B2 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100437252C (zh) * | 2005-10-21 | 2008-11-26 | 群康科技(深圳)有限公司 | 液晶显示模组 |
JP2009238098A (ja) * | 2008-03-28 | 2009-10-15 | Hitachi Ltd | セッション管理方法、ストレージ装置、及び、計算機システム |
JP2014505295A (ja) * | 2011-01-04 | 2014-02-27 | トムソン ライセンシング | ライブメディアコンテンツを送信する装置及び方法 |
JP2016220152A (ja) * | 2015-05-25 | 2016-12-22 | キヤノン株式会社 | 通信装置、通信方法、及びプログラム |
US9992309B2 (en) | 2012-11-20 | 2018-06-05 | Kabushiki Kaisha Toshiba | Communication device and communication method |
CN109712375A (zh) * | 2018-12-29 | 2019-05-03 | 杭州平普智能科技有限公司 | 一种用于特定人员的监控管理方法及装置 |
-
2003
- 2003-06-20 JP JP2003177285A patent/JP4285101B2/ja not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100437252C (zh) * | 2005-10-21 | 2008-11-26 | 群康科技(深圳)有限公司 | 液晶显示模组 |
JP2009238098A (ja) * | 2008-03-28 | 2009-10-15 | Hitachi Ltd | セッション管理方法、ストレージ装置、及び、計算機システム |
JP2014505295A (ja) * | 2011-01-04 | 2014-02-27 | トムソン ライセンシング | ライブメディアコンテンツを送信する装置及び方法 |
US10069887B2 (en) | 2011-01-04 | 2018-09-04 | Thomson Licensing Dtv | Apparatus and method for transmitting live media content |
US9992309B2 (en) | 2012-11-20 | 2018-06-05 | Kabushiki Kaisha Toshiba | Communication device and communication method |
JP2016220152A (ja) * | 2015-05-25 | 2016-12-22 | キヤノン株式会社 | 通信装置、通信方法、及びプログラム |
CN109712375A (zh) * | 2018-12-29 | 2019-05-03 | 杭州平普智能科技有限公司 | 一种用于特定人员的监控管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP4285101B2 (ja) | 2009-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114866521B (zh) | 会议服务器 | |
US9602591B2 (en) | Managing TCP anycast requests | |
US8671163B2 (en) | Multi-output packet server with independent streams | |
US9088494B2 (en) | Packet fragmentation prevention | |
JP5629086B2 (ja) | 同一ipポートを使用するアプリケーションの複数のインスタンス間で、受信したセッションを送信するための方法およびシステム | |
EP2989800B1 (en) | Data communication system and method | |
US20040133631A1 (en) | Communication system | |
AU2007320794B2 (en) | Selective session interception method | |
US20150127837A1 (en) | Relay apparatus and data transfer method | |
US7564848B2 (en) | Method for the establishing of connections in a communication system | |
US10587733B2 (en) | Server-side HTTP translator | |
JP4285101B2 (ja) | リアルタイムデータ通信システム、リアルタイムデータ通信装置およびリアルタイムデータ通信方法 | |
JP4292884B2 (ja) | リアルタイムデータ通信システム、リアルタイムデータ通信装置およびリアルタイムデータ通信方法 | |
US12034558B2 (en) | Content distribution system, multicast unicast / multicast multicast converter, multicast unicast converter, content distribution method and content distribution program | |
CN117793114A (zh) | 一种负载均衡方法、装置、计算机可读存储介质及设备 | |
JP2006261958A (ja) | 通信システム、通信方法、および通信プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060616 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081224 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090209 |
|
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: 20090303 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090316 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120403 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120403 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |