JP4285101B2 - Real-time data communication system, real-time data communication apparatus, and real-time data communication method - Google Patents

Real-time data communication system, real-time data communication apparatus, and real-time data communication method Download PDF

Info

Publication number
JP4285101B2
JP4285101B2 JP2003177285A JP2003177285A JP4285101B2 JP 4285101 B2 JP4285101 B2 JP 4285101B2 JP 2003177285 A JP2003177285 A JP 2003177285A JP 2003177285 A JP2003177285 A JP 2003177285A JP 4285101 B2 JP4285101 B2 JP 4285101B2
Authority
JP
Japan
Prior art keywords
connection
data
connections
real
http
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
JP2003177285A
Other languages
Japanese (ja)
Other versions
JP2005011267A (en
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2003177285A priority Critical patent/JP4285101B2/en
Publication of JP2005011267A publication Critical patent/JP2005011267A/en
Application granted granted Critical
Publication of JP4285101B2 publication Critical patent/JP4285101B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、例えば、リアルタイムデータの通信を行うリアルタイムデータ通信システムに関するものである。
【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……再生ソフトウエア
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a real-time data communication system for performing real-time data communication, for example.
[0002]
[Prior art]
Generally, when transmitting real-time data, a streaming technique using RTP (Real Time Transport Protocol) on UDP (User Datagram Protocol) has been used. Since UDP is a connectionless protocol and does not have a mechanism such as flow control or retransmission control, it is very suitable for real-time transmission that eliminates the need for data after a certain period of time.
[0003]
On the other hand, TCP (Transmission Control Protocol) is a connection-type protocol and has a flow control and retransmission control mechanism, and has been used for storage-type content download and streaming distribution. HTTP using TCP has been established as a data transmission means that can pass through a firewall or NAT (Network Address Translator), which is difficult with UDP, and is currently very effective.
[0004]
In Patent Document 1, in order to enable connection control in which resource limitation is performed according to a user, the use of a connection request is identified and used according to a resource usage condition set according to the identified user. In a communication processing device that has a connection request from an unspecified number of users, the priority is given to a specific user by determining the resource area to be used and setting many resources that can be used by high-priority users. Discloses a communication processing apparatus capable of establishing a connection.
[0005]
[Patent Document 1]
JP 2003-125022
[0006]
[Problems to be solved by the invention]
However, if the conventional real-time data communication system described above tries to transmit real-time data using HTTP using TCP, the connection by HTTP may be restricted by servers, proxies, routers, etc. The connection was sometimes lost. For example, a proxy server may have a maximum connection time specified by a policy for preventing unauthorized access by a server administrator. In addition, transmission over a long period of time may be cut off by a rule for preventing unauthorized access of an organization operating a network management / connection such as ISP (Internet Service Provider).
[0007]
When the connection is cut off during such transmission, it is necessary to re-establish the HTTP connection again and flow data on the connection. However, this reconnection requires a negotiation with overhead for transmission management, and causes a delay in transmission of real-time data that becomes a data payload for the time spent on it. Therefore, if reconnection takes time, the real-time property of data may be lost.
[0008]
Therefore, the present invention has been made in view of the above points, and does not cause a delay to real-time data due to a sudden disconnection of HTTP connection in real-time data transmission using HTTP effective for communication over a firewall or NAT. It is an object of the present invention to provide a real-time data communication system, a real-time data communication apparatus, and a real-time data communication method that maintain continuous real-time transmission.
[0009]
[Means for Solving the Problems]
The server of the real-time data communication system of the present invention has a receiving unit for receiving input real-time data, and a multiple connection generating unit for generating a plurality of connections so that application software can be identified. A connection management unit that manages the state of a plurality of connections within a reference time, and a transmission unit that transmits real-time data through any of the plurality of connections.
[0010]
In addition, the client has a receiving unit that receives real-time data transmitted from any of a plurality of connections, and a multi-connection generation unit that generates a plurality of connections so that the application software can identify the real-time data. In order to do so, a connection management unit that manages the state of the connection within a reference time and a transmission unit that outputs the received real-time data are provided.
[0011]
Thus, the real-time data communication system of the present invention uses each transmission period within the reference time for each connection of a plurality of connections to transmit one session of real-time data.
[0012]
Therefore, according to the present invention, the following operations are performed.
The server prepares a plurality of connections for transmission by a plurality of connection generators in advance, and when connection connection is detected by the connection / disconnection monitoring unit, the connection switching unit switches to another connection. Then, the data is transmitted to the client via the connection in units of data (for example, in units of packets) by the transmission unit.
[0013]
Here, if the connection is disconnected by the connection disconnection unit based on the reference time set by the reference time setting unit during transmission according to the specifications of the proxy or server (or client), the connection connection / disconnection monitoring unit connects When disconnection is detected, data is transmitted to the client via another connection prepared in advance by the multiple connection generation unit, so that the real-time property of the data can be maintained.
[0014]
A plurality of connections created in advance by a plurality of connection generation units are transferred to other connections by the connection switching unit for each transmission period within each connection time set so as to have a time difference by the connection shifting connection time setting unit. I will switch. Thereby, simultaneous disconnection due to a certain time-out can be prevented. When the connection connection / disconnection monitoring unit detects disconnection of the connection, the connection disconnected by the plurality of connection generation units is re-established and held.
[0015]
In order to prevent disconnection due to no-communication timeout, a connection that is not used for transmission of real-time data is disconnected by the connection disconnection unit based on the reference time set by the reference time setting unit. To do.
[0016]
As a result, when communicating real-time data over multiple connections, you can selectively use multiple connections to improve transfer efficiency and real-time performance of the data, even if one connection is disconnected, By causing data to flow through another connection, it is possible to prevent a delay caused by re-establishing the connection.
[0017]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings as appropriate.
[0018]
FIG. 1 is a diagram showing a configuration of a real-time data communication system applied to the embodiment of the present invention.
In the present invention, a device configuration for transmitting real-time data as shown in FIG. 1 is assumed. In order to make the explanation easy to understand, the HTTP server 1 is set as the transmitting side and the HTTP client 2 is set as the receiving side. An HTTP server 1 and an HTTP client 2 are mounted as an HTTP (Hypertext Transfer Protocol) server or client, and transmit and receive data by HTTP over TCP.
[0019]
In FIG. 1, an HTTP server 1 and an HTTP client 2 are connected by a plurality of HTTP connections 1 (3-1), HTTP connections 2 (3-2), ..., HTTP connections n (3-n). HTTP connection 1 (3-1), HTTP connection 2 (3-2), ... Real-time data DI input to the HTTP server 1 flows on the HTTP connection n (3-n), and real-time from the HTTP client 2 Assume that data DO is output.
[0020]
First, an HTTP request is issued from the HTTP client 2 to the HTTP server 1, and the HTTP server 1 sends real-time data as an HTTP response. Even when the HTTP server 1 and the HTTP client 2 are mounted in reverse to FIG. 1, the HTTP client issues an HTTP request to the HTTP server and transmits the real time data in the HTTP request. The HTTP server returns an HTTP response to the HTTP client when the HTTP client finishes sending all the data or when an error occurs in the HTTP server.
[0021]
FIG. 2 is a diagram showing a configuration of a real-time data communication system connected by HTTP proxy.
When the HTTP proxy 4 is inserted between the HTTP server 1 and the HTTP client 2, the configuration shown in FIG. 2 is taken. In this case, if the HTTP proxy 4 only transfers data carried by HTTP over TCP between the HTTP server 1 and the HTTP client 2, it can be regarded as the same as FIG.
[0022]
Specifically, in FIG. 2, the HTTP proxy 4 sends a plurality of HTTP connections 1 (3-1), HTTP connections 2 (3-2),... HTTP connections n (3 -n) to the HTTP server 1. ), The HTTP proxy 4 is connected to the HTTP client 2 with a plurality of HTTP connections 1 (5-1), HTTP connections 2 (5-2),... It will behave as the server 4-2 connected in 5-n).
[0023]
The plurality of HTTP connections created in FIGS. 1 and 2 described above are created with an arbitrary time difference as will be described later. This is to prevent multiple simultaneous disconnections due to a transfer timeout of the HTTP proxy 4 or the HTTP server 1 (or HTTP client 2).
[0024]
Here, the real-time data DI and DO are data for which delivery is desired to be completed within a certain period. For example, video and audio data handled by live distribution and videophone. The real-time data DI and DO may be video or audio data obtained from a video camera or microphone attached to the HTTP server 1 or RTP packets from other devices (or encoders (compression devices)) connected via a network. It may be streaming data to be transferred.
[0025]
Real-time or streaming data can be divided into packets or smaller units. Even if some of the subdivided data is lost during the communication, if the receiving side can receive subsequent data, it is possible to process the data that arrives according to the time.
[0026]
If the total bandwidth is constant, the total bandwidth that can be obtained even if multiple HTTP connections are used does not change. For example, when real-time data is transmitted using HTTP, the connection is limited due to restrictions on the HTTP server and HTTP proxy. It can be avoided that it is difficult to ensure real-time performance due to being cut off.
[0027]
FIG. 3 is a diagram illustrating a configuration example of a transmission packet and a streaming data packet.
In FIG. 3, the transmission packet 11 has an RTP header 12, and the RTP header 12 has a sequence number SN13 indicating time information and a time stamp TS14.
[0028]
The streaming data packet 15 has streaming data as an RTP payload.
[0029]
Here, the HTTP server 1 on the transmission side can detect a connection in which a delayed packet is generated based on the sequence number SN13 indicating time information and the time stamp TS14, and can switch to another connection.
[0030]
In addition, when the RTP is used as the transmission packet 11 in order to reproduce the streaming data, the receiving-side HTTP client 2 uses the RTP sequence number SN13 and the time stamp TS14 in the transmission packet 11 to order the data. Can be sorted. Note that the reproduction method depends on the streaming data as the RTP payload shown in the streaming data packet 15.
[0031]
FIG. 4 is a diagram showing the configuration of the HTTP server.
In FIG. 4, the HTTP server 1 includes a receiving unit 21 that receives input real-time data DI, and the real-time data DI received by the receiving unit 21 as a plurality of HTTP connections 1 (3-1) and HTTP connections 2 (3 -2),..., HTTP connection n (3-n) to be transmitted as an HTTP connection output CO, a plurality of HTTP connections 1, a plurality of HTTP connections 1 (3-1), HTTP connections 2 (3-2) ... A connection management unit that has a plurality of connection generation units that generate a plurality of HTTP connection n (3-n) in an identifiable manner by the application software program, and manages the state of the plurality of connections in order to transmit real-time data 22 is configured.
[0032]
FIG. 5 is a diagram showing the configuration of the HTTP client.
In FIG. 5, the HTTP server 1 is an HTTP connection input input from any of a plurality of HTTP connections 1 (3-1), HTTP connections 2 (3-2),... HTTP connections n (3 -n). The receiving unit 25 that receives the CI, the transmitting unit 26 that outputs the HTTP connection input CI received by the receiving unit 25 as real-time data DO, a plurality of HTTP connections 1 (3-1), and HTTP connections 2 (3-2) ),... Connection management that has a plurality of connection generation units that generate a plurality of HTTP connection n (3-n) in an identifiable manner by the application software program, and manages the state of the plurality of connections in order to receive real-time data The unit 24 is configured.
[0033]
FIG. 6 is a diagram illustrating the configuration of the connection management unit.
When the connection management unit 22 of the HTTP server 1 transmits real-time data from the HTTP server 1 in response to a request from the HTTP client 2 via the HTTP connection for communication using the HTTP protocol managed by the application software, The connection disconnection unit 33 is configured to disconnect the connection based on the reference time set by the reference time setting unit 31.
[0034]
The connection management unit 22 of the HTTP server 1 enables the application software program to identify a plurality of HTTP connections 1 (3-1), HTTP connections 2 (3-2), ..., HTTP connections n (3-n). A plurality of connection generation units 31 for generating a plurality of connections, and a connection switching unit 36 for switching a plurality of HTTP connections 1 (3-1), HTTP connections 2 (3-2), ..., HTTP connections n (3-n) A plurality of generated HTTP connections 1 (3-1), HTTP connections 2 (3-2)... HTTP connections n (3-n) are sequentially or selectively switched, and other than the real-time data transmission period. Transmits HTTP data from HTTP server 1 while transmitting pseudo data 2 configured to transmit real-time data to. The connection management unit 24 of the HTTP client 2 has a similar configuration.
[0035]
The connection management unit 22 of the HTTP server 1 includes a connection connection / disconnection monitoring unit 34 that monitors a plurality of connections generated by the multiple connection generation unit 31 and a connection disconnected by the connection disconnection unit 33, and monitors connection connection / disconnection. When the connection is detected by the unit 34, the connection switching unit 36 switches to another connection, and when the connection connection / disconnection monitoring unit 34 detects the disconnection, the connection is disconnected by the multiple connection generation unit 31. It is configured to re-establish the connection. The connection management unit 24 of the HTTP client 2 has a similar configuration.
[0036]
The connection management unit 22 of the HTTP server 1 includes a connection shift connection time setting unit 35 that sets a time for shifting each connection time of a plurality of connections generated by the multiple connection generation unit 31, and includes a connection shift connection time setting unit. The connection switching unit 36 is configured to switch to another connection for each transmission period within each connection time set by being shifted by 35. The connection management unit 24 of the HTTP client 2 has a similar configuration.
[0037]
The connection management unit 24 of the HTTP client 2 is configured to include a data rearrangement unit that arranges and outputs the order of real-time data when receiving one session of real-time data from a plurality of connections. The connection management unit 24 of the HTTP server 1 has the same configuration.
[0038]
FIG. 7 is a diagram showing identification of a plurality of connections.
In the HTTP server 1, when transmitting real-time data over a plurality of connections using the protocol HTTP managed by the upper application software 42 of the operating system OS 41, the plurality of connections generated so that the application software 42 can be identified are sequentially provided. Alternatively, it can be selectively used to separate real-time data.
[0039]
At this time, the application software 42 switches the URL1, URL2, URL3,... Corresponding to the reproduction software 43-1, the reproduction software 43-2, the reproduction software 43-3,. Indicates the type of real-time data, and identifies a session using URL, HTTP authentication (HTTP header), or other unique authentication methods. A session identifier is provided for one session, and a plurality of HTTP connections are permitted for one URL using the same session identifier. In addition, data separation by switching is performed in units of streaming data packets.
[0040]
Further, in the HTTP client 2, when receiving real-time data on a plurality of connections using the protocol HTTP managed by the application software 42, the plurality of connections generated so that the application software 42 can be identified are sequentially or selectively selected. It is possible to rearrange the order of real-time data.
[0041]
At this time, the application software 42 switches the URL1, URL2, URL3,... Corresponding to the reproduction software 43-1, the reproduction software 43-2, the reproduction software 43-3,. Identifies the connection. In addition, the rearrangement of the order of the data separated by switching is performed in units of streaming data packets.
[0042]
In the HTTP client 2, the application software 42 identifies that one connection has been disconnected, and is detected as an error in both the HTTP server 1 and the HTTP client 2. When establishing a disconnected connection, the application software 42 identifies URL1, URL2, URL3,... And determines that the connection is for real-time data transmission.
[0043]
In addition, the determination as to whether or not the connection is for real-time data transmission is specifically that a real-time data URL is provided and the HTTP connection established by accessing it is a connection for real-time data transmission. Application software 42 identifies.
[0044]
For example, when a URL “http: //.../...real_Time-streaming? Session = 123456” is accessed, a connection for transmitting real-time data can be established. However, since simultaneous real-time data is scattered to multiple terminals when accessed simultaneously by multiple terminals, a session identifier is provided in the URL as “http: //.../...real_Time-streaming? Session = 123456”. Alternatively, information may be inserted into an HTTP request or response header.
[0045]
Next, details of the operation of the real-time data communication system applied to the embodiment of the present invention configured as described above will be described below.
[0046]
FIG. 8 is a flowchart showing the operation of the HTTP server.
FIG. 8 shows steps until the HTTP server 1 that transmits real-time data creates the HTTP connection 3 and transmits real-time data. The details are described below.
[0047]
In step S1, a plurality of HTTP connections are created. Specifically, when the HTTP server 1 starts processing on the transmission side, an HTTP connection 3 for transmitting real-time data to the HTTP client 2 on the reception side is created. A plurality of HTTP connections 3 are created by the multiple connection generator 31.
[0048]
When one connection is created, the process moves to step S2. In step S2, it is determined whether real-time data has been input, whether the real-time data input has timed out, or not. Specifically, the HTTP server 1 obtains real-time data from a device such as a camera directly attached to the transmission side as described above, or obtains a packet such as RTP from another device on the network. is there. In the embodiment of the present invention, both cases are similarly treated as inputs. When real-time data is input, the process may be immediately performed to the next processing step S3, or a plurality of data may be accumulated in a buffer or a queue and then the process may proceed to step S3. Further, in step S2, when an error such as an input time-out occurs, a transition is made to S3 so that the block does not block until real-time data is input after waiting for input of real-time data.
[0049]
In step S3, it is determined whether or not there is another connection. If there is another connection, in step S4, the other connection becomes the connection time set by shifting by the connection shifting connection time setting unit 35. Thus, after being scheduled to be created later with a time difference, all connections are automatically created. After the connection, the connection state shifted in time is maintained.
[0050]
In step S5, an error check is made to determine whether the input of real-time data has timed out in step S2 or not. Specifically, determination of error check such as input timeout of real-time data is performed by the connection connection / disconnection monitoring unit 34 of the connection management unit 22 of the HTTP server 1. At this time, the reference set by the reference time setting unit 31 is used. When no communication timeout occurs based on the time and disconnection of the connection is detected, the multiple connection generation unit 31 re-establishes the disconnected connection.
[0051]
Thereafter, when an HTTP connection once connected is disconnected for some reason, the connection is immediately reconnected by the plurality of connection generation units 31 so that a predetermined number or more of connections can always be used. In addition, in order to prevent a no-communication timeout based on the reference time set by the reference time setting unit 31 and disconnection of the connection by the connection disconnection unit 33, a fixed pseudo-time other than the real-time data transmission period is used. Data may be sent out.
[0052]
If there is no error such as timeout, the process proceeds to step S6. If there is an error such as a timeout, the process proceeds to step S8.
[0053]
In step S6, an HTTP connection for transmitting the data input in step S2 is selected from the HTTP connection created in step S1. Specifically, the selection of the HTTP connection is performed by the connection switching unit 36, and the selection method may specify the created HTTP connections in order, or if the data has been transmitted before, it is used so far. The existing HTTP connection may be used continuously, or when data is newly transmitted or when the HTTP connection is changed by some judgment, one of the HTTP connections created in step S1 may be selected and transmitted. good.
[0054]
In step S7, the input real-time data is transmitted through the selected HTTP connection. If the transmission fails, the real-time data may be discarded as missing data and preparations may be made for transmitting the next data in step S2. Even when the transmission is successful, if redundant data transmission is required, the process may be repeated so as to move to step S6 again and transmit the same data through another HTTP connection.
In step S8, there is no input for a certain period of time, and the process ends.
[0055]
FIG. 9 is a flowchart showing the operation of the HTTP client.
FIG. 9 shows steps until the HTTP client 2 on the real-time data receiving side creates the HTTP connection 3, receives the real-time data, and outputs it. The details are described below.
[0056]
In step S11, a plurality of HTTP connections are created. Specifically, when the reception side process starts, the HTTP client 2 creates an HTTP connection 3 for receiving the real time data from the HTTP server 1 on the transmission side. The HTTP client 2 may actively establish a connection to the HTTP server 1 or may wait for a connection from the HTTP server 1. A plurality of HTTP connections 3 are created by the multiple connection generator 31. When one connection is created, the process moves to step S12. In step S14, other connections are scheduled and maintained to be created later with a time difference. Thereafter, when an HTTP connection once connected is disconnected for some reason, the connection is immediately reconnected so that a predetermined number or more of connections can always be used.
[0057]
In step S12, the process waits until data can be received from the HTTP connection, and receives data when it becomes possible. If data is received, the process proceeds to step S13. When a reception timeout occurs in all HTTP connections, if all HTTP connections are switched from the transmission side, the process proceeds to step S16. The timeout is detected by the connection connection / disconnection monitoring unit 34 of the connection management unit 24 of the HTTP client 2, and at this time, a no-communication timeout occurs based on the reference time set by the reference time setting unit 31. When disconnection is detected, the connection disconnected by the multiple connection generator 31 is re-established.
[0058]
In step S13, it is determined whether or not there is another connection. If there is another connection, in step S14, the other connection has the connection time set by shifting by the connection shifting connection time setting unit 35. Thus, after being scheduled to be created later with a time difference, all connections are automatically created. After the connection, the connection state shifted in time is maintained.
[0059]
When all the connections are created, the process proceeds to step S15, and the received data is output in step S15. Pseudo data for preventing no-communication timeout is discarded without being output. The output destination may be a playback device such as a monitor or a speaker directly connected to the HTTP client 2, or may be transferred to another device (or a decoder (decompression device)) on the network. When the output ends, the process returns to step S12.
[0060]
Here, since the order is changed between the real-time data since it is received through a plurality of HTTP connections, the order is corrected by the transmission unit 26, and the data is rearranged when output. The output is arranged in order by part. In this case, a buffer or queue is provided immediately before output, real-time data of a certain amount or period is accumulated, and the oldest data is output in order.
[0061]
In step S16, the process ends because there is no data to be received or the HTTP connection is disconnected.
[0062]
FIG. 10 is a diagram illustrating an example of a transfer state using a plurality of HTTP connections.
FIG. 10 is a diagram showing a transfer state using a plurality of HTTP connections for each HTTP connection. Respective HTTP connections 1 (51), 2 (52), 3 (53), 4 (54),... N (5n), n + 1 (5n + 1) are time differences T2-T1, T3-T2, ... Effective period 56 of all HTTP connections created from Tn + 1-Tn, from HTTP connection creation (connection) 54 to HTTP connection discard (disconnection) 55, or a part of the real time indicated by diagonal lines Real-time data transmission is performed during the data transmission period 58-1 to 58-n + 1. The disconnected connection indicated at 55 is immediately reconnected and maintained for transmission.
[0063]
As a result, the real-time data is in the HTTP connection 1 (51), 2 (52), 3 (53), 4 (54),... N (5n), n + 1 (5n + 1) in the connected state. Since it is guaranteed that the data flows through the continuous real-time data transmission periods 58-1 to 58-n + 1, transmission without interruption is possible.
[0064]
Here, the HTTP connections 1 (51), 2 (52), and 3 (53) are set so that no communication timeout occurs based on the reference time set by the reference time setting unit 31 and the connection is not disconnected. 4 (54),... N (5n), n + 1 (5n + 1) HTTP connection valid period 56 or real-time data transmission period 58-1 to 58-n + 1 is set within the reference time. The
[0065]
Also, in order to prevent the connection disconnection unit 33 from disconnecting due to a no-communication timeout based on the reference time set by the reference time setting unit 31, the HTTP connections 1 (51), 2 (52) ), 3 (53), 4 (54),... N (5n), n + 1 (5n + 1) HTTP connection real-time data transmission periods 58-1 to 58-n + 1 other than the valid period 56 May send certain pseudo data.
[0066]
The real-time data transmission periods 58-1 to 58-n + 1 indicated by hatching indicate the real-time data transmission periods and do not represent individual packets. As a method for transmitting real-time data, data is written on the HTTP connection in units of real-time data within the real-time data transmission period 58-1 to 58-n + 1. In this case, normally, send () of TCP is executed. A certain amount of data is transmitted as a packet.
[0067]
FIG. 11 is a diagram for explaining the connection switching operation.
In FIG. 11, the connection management unit 22 of the HTTP server 1 responds to a request from the HTTP client 2 through the HTTP connection 1 (3-1) using the HTTP protocol managed by the application software for the HTTP server 1 to real-time data. The HTTP connection 1 (3-1) is suddenly disconnected by the connection disconnection unit 33 based on the reference time set by the reference time setting unit 31 based on the operation policy of the HTTP server 1 or the like. is there. At this time, transmission of the packets P1, P2, P3, P4, and P5 is stopped in the HTTP connection 1 (3-1). Further, the transmission of the packet P6 is stopped in the HTTP connection 2 (3-2) that has already been disconnected.
[0068]
When the connection connection / disconnection monitoring unit 34 detects disconnection of the HTTP connection 1 (3-1), the HTTP connection 1 (3-1) and HTTP connection 2 (3-2) disconnected by the multiple connection generation unit 31. Re-stretch. At this time, real-time data cannot be transmitted until the connection is reestablished and completely restored.
[0069]
Therefore, a plurality of HTTP connection 1 (3-1), HTTP connection 2 (3-2),... HTTP connection n (3-n) are generated in advance by the plurality of connection generation units 31 so that the application software can identify them. In addition, for each transmission period within each connection time set by shifting by the connection shifting connection time setting unit 35, the connection switching unit 36 selects another HTTP connection n (3-n), HTTP connection n + 1. Switch to (3-n + 1).
[0070]
As a result, packets P7, P8, and P9 are transmitted through HTTP connection n (3-n), packets P10, P11, and P12 are transmitted through HTTP connection n + 1 (3-n + 1), and subsequent packets P13, P14, and P15 are also transmitted. The data is transmitted through the HTTP connection 1 (3-1), the HTTP connection 2 (3-2),..., The HTTP connection n (3-n), the HTTP connection n + 1 (3-n + 1), which has been restored.
[0071]
Conventionally, due to abrupt disconnection by an HTTP proxy or HTTP server (or HTTP client), real-time data transmission by HTTP must accept the delay caused by re-establishing the HTTP connection, and this delay also affects subsequent packets. As a result, the real-time property of a large amount of data has been lost. However, if the embodiment of the present invention is used, it is possible to avoid the influence of delay caused by the re-establishment of the HTTP connection and to maintain the real-time property.
[0072]
In general, UDP has been mainly used for real-time data transmission, but it is difficult for UDP transmission to cross a firewall, but on the other hand, the means of transmission over a firewall using HTTP proxy is currently widely used. On the other hand, if the embodiment of the present invention is used, real-time data transmission across a firewall can be performed with higher quality.
[0073]
Embodiments of the present invention are not limited to those described above, but are not limited to HTTP, but also include HTTPS (Hypertext Transfer Protocol, Secure), FTP (File Transfer Protocol), SSL (Secure Sockets Layer), and TLS The present invention can be applied to various protocols used on TCP.
[0074]
【The invention's effect】
According to the present invention, by providing a mechanism capable of dynamically switching an HTTP connection and transmitting real-time data, even if the HTTP connection is disconnected due to an HTTP proxy or an HTTP server (or client) connection timeout, a delay due to connection reconnection It is possible to transmit real-time data without being influenced by the above.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration of a real-time data communication system applied to an embodiment of the present invention.
FIG. 2 is a diagram showing a configuration of a real-time data communication system connected by HTTP proxy.
FIG. 3 is a diagram illustrating a configuration example of a transmission packet and a streaming data packet.
FIG. 4 is a diagram showing a configuration of an HTTP server.
FIG. 5 is a diagram illustrating a configuration of an HTTP client.
FIG. 6 is a diagram illustrating a configuration of a connection management unit.
FIG. 7 is a diagram showing identification of a plurality of connections.
FIG. 8 is a flowchart showing the operation of the HTTP server.
FIG. 9 is a flowchart showing the operation of an HTTP client.
FIG. 10 is a diagram illustrating an example of a transfer state using a plurality of HTTP connections.
FIG. 11 is a diagram illustrating a connection switching operation.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... HTTP server, 2 ... HTTP client, 3 ... HTTP connection, 4 ... HTTP proxy, 11 ... Transmission packet, 12 ... RTP header, 13 ... Sequence number SN, 14 ... Time stamp TS, 15... Streaming data packet, 21... Reception unit, 22... Connection management unit, 23... Reception unit, 24... Connection management unit, 26. Reference time setting unit, 33 ... Connection disconnection unit, 34 ... Connection connection / disconnection monitoring unit, 35 ... Connection shift connection time setting unit, 36 ... Connection switching unit, 41 ... OS, 42 ... Application software , 43 …… Playback software

Claims (12)

リアルタイムデータの入力を受け付ける入力データ受付部と、前記入力データ受付部で受け付けたリアルタイムデータを所定のデータ長を有するデータである分割データの単位で出力する出力部とを備えたサーバーと、前記分割データの入力を受け付ける分割データ受付部を備えたクライアントとで構成されるデータ通信システムにおいて、A server comprising: an input data receiving unit that receives input of real-time data; and an output unit that outputs the real-time data received by the input data receiving unit in units of divided data that is data having a predetermined data length; In a data communication system configured with a client having a divided data receiving unit that receives data input,
前記サーバーと前記クライアントのいずれかもしくは両方が、Either or both of the server and the client are
生成時間をそれぞれ異ならせて複数のコネクションを生成し、前記複数のコネクションのうちいずれかを前記分割データの伝送路として選択し、前記選択を、予め定められた所定の時間毎又は前記選択されたコネクションの切断検出時に切り替えるとともに、前記複数のコネクションのうちコネクションが切断されたものに対してはコネクションの再生成を行うコネクション管理部を備えるA plurality of connections are generated with different generation times, and one of the plurality of connections is selected as a transmission path for the divided data, and the selection is performed at predetermined time intervals or the selected A connection management unit is provided that switches when connection disconnection is detected and regenerates a connection that has been disconnected among the plurality of connections.
データ通信システム。Data communication system.
前記コネクション管理部は、前記複数のコネクションのそれぞれを、前記コネクションの生成開始時から予め定められた所定の基準時間が経過した時点で切断するThe connection management unit disconnects each of the plurality of connections when a predetermined reference time determined in advance from the start of generation of the connection.
請求項1記載のデータ通信システム。The data communication system according to claim 1.
前記コネクション管理部による前記コネクションの選択の切り替えは、前記伝送路を介して伝送する分割データの単位で行われるSwitching of the connection selection by the connection management unit is performed in units of divided data transmitted through the transmission path.
請求項1記載のデータ通信システム。The data communication system according to claim 1.
前記コネクション管理部による前記コネクションの選択は、前記コネクションが生成された順番に基づいて順次行われるSelection of the connection by the connection management unit is sequentially performed based on the order in which the connections are generated.
請求項1記載のデータ通信システム。The data communication system according to claim 1.
前記コネクション管理部は、伝送路として選択中のコネクションに遅延パケットが発生している場合には、前記コネクションとは異なる他のコネクションを新たに選択しなおすThe connection management unit newly selects another connection different from the connection when a delay packet is generated in the connection selected as the transmission path.
請求項1記載のデータ通信システム。The data communication system according to claim 1.
前記コネクション管理部は、前記サーバーより前記分割データの送信失敗が検知された場合には、前記コネクションとは異なる他のコネクションを新たに選択しなおすThe connection management unit newly selects another connection different from the connection when the transmission failure of the divided data is detected from the server.
請求項1記載のデータ通信システム。The data communication system according to claim 1.
前記サーバーの出力部は、前記複数のコネクションのすべてに対して、前記分割データの伝送区間以外の区間では擬似データを伝送するThe output unit of the server transmits pseudo data in a section other than the transmission section of the divided data for all of the plurality of connections.
請求項1記載のデータ通信システム。The data communication system according to claim 1.
前記コネクション管理部は、前記分割データ受付部に入力された前記分割データを、前記リアルタイムデータにおける順序に並び替えるThe connection management unit rearranges the divided data input to the divided data receiving unit in the order in the real-time data.
請求項1記載のデータ通信システム。The data communication system according to claim 1.
リアルタイムデータの入力を受け付ける入力データ受付部と、An input data receiving unit for receiving input of real-time data;
生成時間をそれぞれ異ならせて複数のコネクションを生成し、前記複数のコネクションのうちいずれかを前記分割データの伝送路として選択し、前記選択を、予め定められた所定の時間毎に切り替えるとともに、前記複数のコネクションのうちコネクションが切断されたものに対してはコネクションの再生成を行うコネクション管理部と、A plurality of connections are generated with different generation times, and one of the plurality of connections is selected as a transmission path for the divided data, and the selection is switched at predetermined time intervals, and A connection management unit that regenerates a connection for a disconnected connection among a plurality of connections,
前記入力データ受付部で受け付けたリアルタイムデータを所定のデータ長を有するデータである分割データの単位で、前記コネクション管理部で選択されたコネクションを介して出力する出力部とを備えたAn output unit that outputs the real-time data received by the input data receiving unit in units of divided data that is data having a predetermined data length, via the connection selected by the connection management unit;
サーバー。server.
サーバーから出力される、リアルタイムデータを所定のデータ長毎に分割した分割データの入力を受け付ける分割データ受付部と、A divided data receiving unit that receives input of divided data obtained by dividing real-time data for each predetermined data length output from the server;
生成時間をそれぞれ異ならせて複数のコネクションを生成し、前記複数のコネクションのうちいずれかを前記分割データの伝送路として選択し、前記選択を、予め定められた所定の時間毎又は前記選択されたコネクションの切断検出時に切り替えるとともに、前記複数のコネクションのうちコネクションが切断されたものに対してはコネクションの再生成を行うコネクション管理部とを備えたA plurality of connections are generated with different generation times, and one of the plurality of connections is selected as a transmission path for the divided data, and the selection is performed at predetermined time intervals or the selected A connection management unit that performs switching when connection disconnection is detected and regenerates a connection that has been disconnected among the plurality of connections is provided.
クライアント。client.
リアルタイムデータの入力を受け付けるステップと、Receiving real-time data input;
生成時間をそれぞれ異ならせて複数のコネクションを生成し、前記複数のコネクションのうちいずれかを前記分割データの伝送路として選択し、前記選択を、予め定められた所定の時間毎又は前記選択されたコネクションの切断検出時に切り替えるとともに、前記複数のコネクションのうちコネクションが切断されたものに対してはコネクションの再生成を行うステップと、A plurality of connections are generated with different generation times, and one of the plurality of connections is selected as a transmission path for the divided data, and the selection is performed at predetermined time intervals or the selected Switching at the time of detecting the disconnection of the connection, and regenerating the connection for the disconnected connection among the plurality of connections;
前記受け付けたリアルタイムデータを所定のデータ長を有するデータである分割データの単位で、前記選択されたコネクションを介して出力するステップとを含むOutputting the received real-time data in units of divided data, which is data having a predetermined data length, via the selected connection.
データ通信方法。Data communication method.
サーバーから出力される、リアルタイムデータを所定のデータ長毎に分割した分割データの入力を受け付けるステップと、A step of receiving input of divided data obtained by dividing real-time data output by a server for each predetermined data length;
生成時間をそれぞれ異ならせて複数のコネクションを生成し、前記複数のコネクションのうちいずれかを前記分割データの伝送路として選択し、前記選択を、予め定められた所定の時間毎又は前記選択されたコネクションの切断検出時に切り替えるとともに、前記複数のコネクションのうちコネクションが切断されたものに対してはコネクションの再生成を行うステップとを含むA plurality of connections are generated with different generation times, and one of the plurality of connections is selected as a transmission path for the divided data, and the selection is performed at predetermined time intervals or the selected Switching at the time of detecting disconnection of the connection, and regenerating the connection for the disconnected connection among the plurality of connections.
データ通信方法。Data communication method.
JP2003177285A 2003-06-20 2003-06-20 Real-time data communication system, real-time data communication apparatus, and real-time data communication method Expired - Fee Related JP4285101B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003177285A JP4285101B2 (en) 2003-06-20 2003-06-20 Real-time data communication system, real-time data communication apparatus, and real-time data communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003177285A JP4285101B2 (en) 2003-06-20 2003-06-20 Real-time data communication system, real-time data communication apparatus, and real-time data communication method

Publications (2)

Publication Number Publication Date
JP2005011267A JP2005011267A (en) 2005-01-13
JP4285101B2 true JP4285101B2 (en) 2009-06-24

Family

ID=34099914

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003177285A Expired - Fee Related JP4285101B2 (en) 2003-06-20 2003-06-20 Real-time data communication system, real-time data communication apparatus, and real-time data communication method

Country Status (1)

Country Link
JP (1) JP4285101B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100437252C (en) * 2005-10-21 2008-11-26 群康科技(深圳)有限公司 LCD display module
JP5112138B2 (en) * 2008-03-28 2013-01-09 株式会社日立製作所 Session management method, storage device, and computer system
EP2661863B1 (en) 2011-01-04 2016-07-20 Thomson Licensing Apparatus and method for transmitting live media content
JP6129526B2 (en) 2012-11-20 2017-05-17 株式会社東芝 COMMUNICATION DEVICE, COMMUNICATION METHOD, AND PROGRAM
JP6436853B2 (en) * 2015-05-25 2018-12-12 キヤノン株式会社 COMMUNICATION DEVICE, COMMUNICATION METHOD, AND PROGRAM
CN109712375B (en) * 2018-12-29 2021-06-15 杭州平普智能科技有限公司 Monitoring management method and device for specific personnel

Also Published As

Publication number Publication date
JP2005011267A (en) 2005-01-13

Similar Documents

Publication Publication Date Title
US8671163B2 (en) Multi-output packet server with independent streams
CN114866521B (en) Conference server
US9602591B2 (en) Managing TCP anycast requests
US9088494B2 (en) Packet fragmentation prevention
US7895356B2 (en) IP router, communication system and band setting method used therein and its program
US20030217149A1 (en) Method and apparatus for tunneling TCP/IP over HTTP and HTTPS
RU2647654C2 (en) System and method of delivering audio-visual content to client device
EP2989800B1 (en) Data communication system and method
US20040133631A1 (en) Communication system
AU2007320794B2 (en) Selective session interception method
WO2013170177A1 (en) System and method for reducing a call establishment time
US10587733B2 (en) Server-side HTTP translator
US7564848B2 (en) Method for the establishing of connections in a communication system
JP4285101B2 (en) Real-time data communication system, real-time data communication apparatus, and real-time data communication method
CN109076062A (en) Fringe node control
JP4292884B2 (en) Real-time data communication system, real-time data communication apparatus, and real-time data communication method
US12034558B2 (en) Content distribution system, multicast unicast / multicast multicast converter, multicast unicast converter, content distribution method and content distribution program
CN117793114A (en) Load balancing method, device, computer readable storage medium and equipment
Umaru-Mohammed Adding the RLC and RMDP multicast protocols to the Application Level Active Networking (ALAN) environment, UCL Research Note RN/00
JP2006261958A (en) Communications system, communication method and communication program

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