(58)【調査した分野】(Int.Cl.,DB名)
前記トンネルを確立するステップは、トンネル識別子およびインターネットプロトコルアドレスを前記トンネルに割当てるステップを含む、請求項1または2に記載の方法。
前記カプセル化メディアは、前記データグラムベースのトランスポート層が確立される前に、前記ストリームベースのトランスポート層を介して伝送される、請求項1〜3のいずれか1項に記載の方法。
前記カプセル化メディアは、前記ストリームベースのトランスポート層が解放された後に、前記データグラムベースのトランスポート層を介して伝送される、請求項4に記載の方法。
トンネリングサーバとトンネリングクライアントとの間でカプセル化メディアを伝送するために前記トンネリングクライアントと通信する、トンネリングサーバであって、前記トンネリングサーバは、
プロセッサと、
前記プロセッサによって実行されると機能性を実現する命令を格納する、前記プロセッサに結合されたストレージデバイスとを含み、前記機能性は、
ストリームベースのトランスポート層を用いてトンネルを確立するための第1の要求を受信することを含み、前記第1の要求はタグを含み、前記機能性はさらに、
データグラムベースのトランスポート層を用いて前記トンネルを確立するための第2の要求を受信することを含み、前記第2の要求は前記タグを含み、前記機能性はさらに、
前記ストリームベースのトランスポート層を用いて前記トンネルを確立し、前記ストリームベースのトランスポート層を介して前記カプセル化メディアを受信することと、
ユーザデータグラムプロトコル(UDP)がファイアウォールによってブロックされていない場合、前記ストリームベースのトランスポート層に加えて、前記トンネルのための前記データグラムベースのトランスポート層を確立し、前記データグラムベースのトランスポート層を介して前記カプセル化メディアを受信することと、
前記トンネルのための前記データグラムベースのトランスポート層の確立後に、前記ストリームベースのトランスポート層を解放するための第3の要求を受信することと、
前記第3の要求の受信後に、前記ストリームベースのトランスポート層を解放することとを含み、
前記ストリームベースのトランスポート層は、伝送制御プロトコル(TCP)を使用して前記カプセル化メディアを伝送し、前記データグラムベースのトランスポート層は、ユーザデータグラムプロトコル(UDP)を使用して前記カプセル化メディアを伝送し、
前記第1の要求および前記第2の要求は、介在する要求および応答なく連続的に受信される、トンネリングサーバ。
【発明を実施するための形態】
【0006】
詳細な説明
一実施形態は、トンネル/呼出し設定時間に、連続する要求を介してほぼ同時に2つのトランスポート層に要求することにより、トンネルを介してカプセル化メディアを伝送する。一実施形態におけるトランスポート層のうちの一方は伝送制御プロトコル(Transmission Control Protocol:TCP)であり、トランスポート層のうちの一方は、カプセル化メディアトラフィックに対処するユーザデータグラムプロトコル(User Datagram Protocol:UDP)である。トンネルは、典型的にはUDPデータの伝送をブロックするであろうファイアウォールを含む制限的な通信ネットワークを介して、カプセル化メディアトラフィックを転送することができる。その結果、カプセル化メディアを伝送する呼出しまたは他の通信セッションのための設定時間が減少する。
【0007】
図1は、本発明の実施形態を実現する、および/または本発明の実施形態と相互作用するネットワーク要素を含むネットワーク100の概略図である。ネットワーク100は、インターネットプロトコル(IP)ネットワーク114を介してサービスプロバイダネットワーク/バックボーン122とのリアルタイム通信(real-time communications:RTC)を行なうユーザ装置(user equipment:UE)102を含む。RTCでは、ユーザらは情報を瞬時に、または些細な待ち時間で交換する。RTCについての例示的なアプリケーションは、音声および/またはビデオ通話、アプリケーションストリーミング、ソフトフォン、およびリモートデスクトップアプリケーションを含む。UE102は、スマートフォン、ラップトップコンピュータ、タブレット、テレビなどといった、通信のためにエンドユーザによって使用されるあらゆるデバイスであってもよい。
【0008】
RTCを行なう際、UE102は、サービスプロバイダネットワーク122におけるそれぞれのサーバ124と、シグナリングおよびメディアトラフィックを通信する。シグナリングトラフィックは、セッション初期化プロトコル(Session Initiation Protocol:SIP)などのアプリケーション層プロトコルに従って通信されてもよい。SIPは、下にあるトランスポート層とは独立して構成されている。したがって、SIPは、(たとえば、インターネット・エンジニアリング・タスク・フォース(Internet Engineering Task Force:IETF)リクエスト・フォー・コメンツ(request for comments:RFC)793およびRFC675に記載されるような)伝送制御プロトコル(TCP)、(たとえば、IETF RFC768に記載されるような)ユーザデータグラムプロトコル(UDP)などといった異なるトランスポートプロトコル上で実行可能である。
【0009】
ネットワーク100はトンネリングサーバ116をさらに含み、それは、たとえば第3世代パートナーシッププログラム(3rd generation partnership program:3GPP)技術レポート(technical report:TR)33.830 V0.5.0(その開示はその全体がここに引用により援用される)に記載されるようなトンネル化サービス制御機能(Tunneled Services Control Function:TSCF)規格に従って、RTCを行なうための1つ以上のトンネルを確立し管理するための機能性を、UE102内のトンネリングクライアント106とともに提供する。一実施形態では、トンネリングクライアント106とトンネリングサーバ116とは、TSCFトンネル管理(たとえば3GPP TR33.830 V0.5.0によって規定されるような、たとえばトンネル初期化、維持、終了など)に準拠したTSCFトンネル108を確立し、トンネリングクライアント106とトンネリングサーバ116との間のTSCFトンネル108のネゴシエーションのためにTSCFトンネルトランスポートプロトコルがサポートされる。
【0010】
TSCF規格は、RTCを行なうための管理されたトンネルを確立するためのクライアント側およびサーバ側ネットワーク要素(たとえば、
図1におけるトンネリングクライアント106およびトンネリングサーバ116)を提供する。それはまた、TCPまたはトランスポート層セキュリティ(Transport Layer Security:TLS)を介するストリームベースの外部層トンネリングトランスポートと、UDPまたはデータグラムトランスポート層セキュリティ(Datagram Transport Layer Security:DTLS)を介するデータグラムベースの外部層トンネリングトランスポートという、2つのタイプの外部層トンネリングトランスポートを提供する。
【0011】
TLSとは、たとえばIETF RFC2246、RFC4346、RFC5246、および/またはRFC6176において提供されるような暗号プロトコルである。DTLSとは、データグラムプロトコルのための通信プライバシーを提供するプロトコルである。TCPおよびTLSは、内部層トラフィックの、信頼でき、順序付けられた、エラーチェック済みの配送を提供するが、障害を経験する通信ネットワークを介して、RTCアプリケーションにとって有害な望ましくない待ち時間を生じさせる。一方、UDPおよびDTLSは信頼できる配送を保証しないため、待ち時間を最小化し、RTCにとって望ましい。
【0012】
いくつかの実施形態では、IPネットワーク114は、それがあるトランスポートプロトコルのみ(たとえば、TCPのみ、UDPのみなど)のトラフィックを可能にするセキュリティデバイス(たとえば、ファイアウォール、プロキシなど)を含み得るという点で、制限的なネットワークであってもよい。したがって、トンネリングクライアント106およびトンネリングサーバ116は、UE102がTSCFトンネル108を使用してそのようなセキュリティデバイスを横断してトンネリングサーバ116に接続し、サービスプロバイダネットワーク122におけるサーバ124に到達するように、TSCFトンネル108を確立し管理してもよい。
【0013】
TSCF規格はさらに、トンネリングクライアント106とトンネリングサーバ116との間で構成情報を交換するための制御メッセージを提供する。TSCF規格によれば、制御メッセージは「要求/応答」タイプのものであり、ある要求に対する制御メッセージ応答は、対応する返答か、または、その要求が受信側によって受付けられない理由を示すエラーコードのいずれかを含む。TSCF制御メッセージは、タイプ・長さ・値(Type Length Value:TLV)符号化を使用する。TLVとは、一意的なタイプと対応する値との可変長連結である。
【0014】
たとえば3GPP TR33.830 V0.5.0に記載されるように、各TSCF制御メッセージは最初に制御メッセージ(control message:CM)ヘッダを含み、CMヘッダは、ヘッダのバージョンを識別し、TSCFトンネルの外部トランスポートプロトコルを示す「CM_Version」フィールドと、メッセージが制御メッセージであるか否かを識別する「CM_Indication」フィールドと、将来の使用のために予約される「予約」フィールドと、制御メッセージのタイプ(たとえば、それが要求であるか応答であるか、対応する機能性など)を識別する「CM_Type」フィールドと、対応する制御メッセージにおいてヘッダに続く、またはヘッダに添付されるTLVの数を示す「TLV_Count」フィールドと、TSCFトンネル108を一意的に識別するためにトンネリングサーバ116によって割当てられたトンネルセッション識別子(ID)を含む「トンネルセッションID」(Tunnel Session ID:TSID)フィールドと、メッセージごとにインクリメントされる「シーケンス」フィールドとを含む。
【0015】
一実施形態では、TSCFトンネル108を確立するために、トンネリングクライアント106は、TSCFトンネル108についての構成情報を得るために「構成要求」メッセージをトンネリングサーバ116へ送信する。「構成要求」メッセージでは、TSIDヘッダフィールドビットは1に設定される(すなわちFFFF…)。これに応答して、トンネリングサーバ116はTSIDをTSCFトンネルに割当て、「構成応答」メッセージをトンネリングクライアント106へ送り返す。「構成応答」メッセージは、トンネリングサーバ116によってTSCFトンネル108に割当てられたTSIDを含む。トンネリングクライアント106とトンネリングサーバ116との間のその後のメッセージは、この割当てられたTSIDをそれらのヘッダに含む。
【0016】
一実施形態では、ある制御メッセージがトンネリングクライアント106とトンネリングサーバ116との間で通信され、予想されるTSIDを含まない場合、その制御メッセージはドロップされ、対応するTSCFトンネルは終了される。これに代えて、一実施形態では、トンネリングクライアント106は、TSCFトンネルを終了させるために「構成解放要求」メッセージをトンネリングサーバ116へ送信してもよい。そのような「構成解放要求」メッセージに応答して、トンネリングサーバ116は「構成解放応答」メッセージをトンネリングクライアント106へ送信する。この時点で、TSCFトンネル108は終了される。
【0017】
一実施形態では、UE102は、オラクル・コーポレイションからのトンネル化セッション管理(Tunneled Session Management:TSM)ソリューションによって提供されるソフトウェア開発キット(software development kit:SDK)などのライブラリに依拠するSIPベースのRTCアプリケーションであり得るアプリケーション104を実行する。TSMソリューションは、セッションボーダーコントローラ(session border controller:SBC)と、SDKを使用して開発され得るアプリケーション104などのクライアントアプリケーションとを使用する、クライアント/サーバアーキテクチャを採用する。クライアントアプリケーションは、インターネットを介したサービスプロバイダとの安全な通信セッションを開始する。ネットワークのエッジにある(たとえばトンネリングサーバ116によって実現された)セッションボーダーコントローラは、トンネルを終了させ制御してから、サービスプロバイダネットワーク122のサービスコアへ安全なトラフィックを渡す。一実施形態では、SDKは、クライアント側の効率的カプセル化メディアトラフィックトランスポートモジュール118、および/または、サーバ側の効率的カプセル化メディアトラフィックトランスポートモジュール120によって実現される。
【0018】
カプセル化メディアデータ(たとえば、音声通話データトラフィック)をUDPトラフィックの形で伝送するいくつかのアプリケーションについては、データは、通常UDPトラフィックの横断を防止するであろうファイアウォールを横断する必要があるかもしれない。したがって一般に、トンネル108の機能性のために、クライアント側の効率的カプセル化メディアトラフィックトランスポートモジュール118、および/または、サーバ側の効率的カプセル化メディアトラフィックトランスポートモジュール120は、トンネル108を開始する際、TCPトランスポート層およびUDPトランスポート層の双方をほぼ同時に、一実施形態では介在する要求なく連続的に要求する。SDKは一般に、ここに開示される機能性を実現するために、「規格」のTSCF APIを越える追加のAPIを提供する。
【0019】
一実施形態は、アプリケーション104が効率的なメディアトラフィック転送機能性を可能にできるようにアプリケーションプログラミングインターフェイス(application programming interface:API)をサポートするTSCF SDKを提供する。TSCF SDKは、tsc_sendto関数およびtsc_recvfrom関数をそれぞれ使用してカプセル化メディアを送信および受信するために使用され得る、BSD(Berkeley software distribution)状のソケットAPIを提供する。
【0020】
図2は、本発明の一実施形態に従ったコンピュータサーバ/システム(すなわち、システム10)のブロック図である。システム10は、以下に詳細に開示されるこの発明の実施形態の機能性のいずれかを実現するために、
図1に示すネットワーク要素のいずれかを実現するために必要に応じて使用され得る。単一のシステムとして図示されているが、システム10の機能性は分散型システムとして実現され得る。また、ここに開示される機能性は、ネットワークを介してともに結合され得る別々のサーバまたはデバイス上で実現され得る。また、システム10の1つ以上のコンポーネントが含まれていなくてもよい。たとえば、
図1のトンネリングサーバ116の機能性のために、システム10は、一般に
図2に示すディスプレイ24または1つ以上の他のコンポーネントを必要としないサーバであってもよい。
【0021】
システム10は、情報を通信するためのバス12または他の通信メカニズムと、情報を処理するためにバス12に結合されたプロセッサ22とを含む。プロセッサ22は、あらゆるタイプの汎用または専用プロセッサであってもよい。システム10はさらに、プロセッサ22によって実行されるべき命令および情報を格納するためのメモリ14を含む。メモリ14は、RAM(random access memory)、ROM(read only memory)、磁気ディスクまたは光ディスクなどの静的記憶装置、もしくは他のあらゆるタイプのコンピュータ読取可能媒体のあらゆる組合せで構成され得る。システム10はさらに、ネットワークへのアクセスを提供するための、ネットワークインターフェイスカードなどの通信デバイス20を含む。したがって、ユーザは、システム10と直接、またはネットワークを介してリモートで、または他のあらゆる方法でインターフェイス接続してもよい。
【0022】
コンピュータ読取可能媒体は、プロセッサ22によってアクセスされ得る利用可能なあらゆる媒体であってもよく、揮発性および不揮発性媒体の双方、リムーバブルおよび非リムーバブル媒体の双方、ならびに通信媒体を含む。通信媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュール、もしくは搬送波または他の転送メカニズムなどの変調データ信号における他のデータを含んでいてもよく、あらゆる情報配送媒体を含む。
【0023】
プロセッサ22はさらに、液晶ディスプレイ(Liquid Crystal Display:LCD)などのディスプレイ24にバス12を介して結合されてもよい。ユーザが必要に応じてシステム10とインターフェイス接続することを可能にするように、キーボード26と、コンピュータマウスなどのカーソル制御デバイス28とが、さらにバス12に結合されてもよい。
【0024】
一実施形態では、メモリ14は、プロセッサ22によって実行されると機能性を提供するソフトウェアモジュールを格納する。モジュールは、システム10のためのオペレーティングシステム機能性を提供するオペレーティングシステム15を含む。モジュールはさらに、制限的なファイアウォールを介してカプセル化メディアトラフィックを効率的に転送するための効率的カプセル化メディアトラフィックトランスポートモジュール16と、ここに開示される他のすべての機能性とを含む。例示的な一実施形態では、効率的メディアトラフィックトランスポートモジュール16は、
図2の1つ以上の残りの要素とともに、
図1のトンネリングサーバ116、またはトンネリングクライアント106を実現してもよい。システム10は、オラクル・コーポレイションからの「アクメ・パケット(Acme Packet)6300」セッションボーダーコントローラへの追加機能性といった、より大型のシステムの一部であってもよい。したがって、システム10は、追加機能性を含むための1つ以上の追加機能性モジュール18を含み得る。冗長符号化モジュール16および追加機能性モジュール18のための集中格納を提供するために、データベース17がバス12に結合される。
【0025】
トンネリング構成では、カプセル化された(すなわち、パケット/フレーム内の)メディアは典型的には、(たとえば、IETF RFC3550において提供されるような)リアルタイムトランスポートプロトコル(real-time transport protocol:RTP)に従って通信される。TSCFトンネリング構成では、RTC(たとえば音声、ビデオなど)は、典型的にはTCP/TLSに従った外部トンネル層のレベルと、典型的にはUDPに従った内部トンネル層のレベルという、2つのレベルのトランスポートの対象となってもよい。
図3は、一実施形態に従った、メディアトラフィックをカプセル化するためのTSCFトンネリング構成300における例示的なプロトコル層を示す。TSCFトンネリング構成300では、圧縮されたメディア(たとえば音声、ビデオなど)は、アプリケーション層のRTPに従って通信され、内部トランスポート層の内部UDPを介して内部ネットワーク層の内部IP内で転送される。これらの内部層は、外部トランスポート層の外部TCP/TLS内にあり、外部トランスポート層は、外部ネットワーク層の外部IP内にある。一実施形態では、多くのIPネットワークはストリームベースではないあらゆる外部トラフィックをブロックするため、配送を保証するために、TCP/TLSが、TSCFトンネル108の外部トランスポート層で使用される。
【0026】
図1を再度参照して、一般に、ファイアウォールは、アクセスネットワークを横断できるトラフィックのタイプについて制限を課す。具体的には、ファイアウォールは典型的には、ストリーム(すなわち、TCP)トラフィックを可能にする。なぜなら、それは、ハイパーテキスト転送プロトコル(Hypertext Transfer Protocol:HTTP)などの信頼できるウェブ閲覧プロトコルにとって必要とされるためである。しかしながら、ファイアウォールは非常に頻繁に、データグラム(すなわち、UDP)トラフィックが横断するのを防止する。なぜなら、それは、データにとって信頼できないと考えられるためである。1つのソリューションは、メディアトラフィックがTCPトラフィックとして通過できるようにメディアトラフィックをカプセル化することである。しかしながら、カプセル化メディアが関与する場合、TCPトランスポートは可能性としてUDPよりもはるかに長い待ち時間を生じさせ、このため、ユーザ体験全体を劣化させる。
【0027】
データグラムトンネリングは典型的にはストリームトンネリングよりも好まれるため、1つの可能なトンネル作成ソリューションは、データグラムトランスポートを使用し、データグラムベースのトンネルネゴシエーションが失敗した場合のみ、ストリームトランスポートを使用することを伴う。しかしながら、この失敗は、最終的にはトンネル作成を遅延させ、通信セッション(たとえば、電話呼出し)設定時間を劇的に増加させる。対照的に、実施形態は、設定時間を最小化するために、連続する要求を使用して複数のトンネルトランスポート層ネゴシエーションをほぼ同時に実現して、透過的に促進し、このため、可能な場合はいつでもデータグラムトランスポートが使用されることを保証する。
【0028】
一実施形態では、トンネリングサーバ116は、(1)ストリームベースのインターフェイス(すなわち、TCP/TLS)、および(2)データグラムベースのインターフェイス(すなわち、UDP/DTLS)という、異なるタイプの少なくとも2つのトンネルサーバインターフェイスで構成される。一実施形態では、トンネル初期化時、トンネリングクライアント116は、複数のトランスポート、または利用可能な限り多くのトンネルサーバインターフェイスをほぼ同時に作成する。
【0029】
一実施形態では、トンネリングクライアント106は、複数の構成要求CMを伝送することによって、1つ1つのトランスポート層を介してトンネルをネゴシエートする。各構成要求CMは、これらの要求のすべてについての一意識別子を有する新しいTLVまたはタグを含む。これに応答して、トンネリングサーバ116は、トンネリングサーバ116に到達したすべての着信要求に同じトンネル識別子(tunnel identifier:TID)および内部IPアドレスを割当てる構成応答CMで応答する。各要求に同じTIDが提供されるため、一般に、複数のトランスポート層(たとえば、TCPトランスポート層およびUDPトランスポート層)を含み得る単一のトンネルが作成される。しかしながら、一実施形態では、最終的には1つのトランスポート層のみが使用される。なぜなら、残りのトランスポート層がドロップされるためである。
【0030】
一実施形態では、トンネリングクライアント106はすべての構成応答を処理し、最初に受信された構成応答CMのトランスポートにおけるカプセル化データの送受信を開始する。構成応答CMがUDPベースのトランスポートで受信されるや否や、それはトンネルのデフォルトトランスポートになり、他のすべてのトランスポートが除去される。一実施形態では、所与のタイムアウト後、構成応答CMがUDPベースのトランスポートで受信されない場合、応答が受信された最初のTCPベースのトランスポートがデフォルトトランスポートになり、他のすべてのトランスポートが除去される。
【0031】
一実施形態では、TSCF SDKに存在するトンネル作成APIは、ここに開示される機能性を可能にするための新しいフラグを含む。
【0032】
図4は、いくつかの実施形態に従った効率的なカプセル化メディアトラフィック転送のための、
図1のアプリケーション104、トンネリングクライアント106、およびトンネリングサーバ116間で交換されるメッセージのシーケンスを含む、例示的なメッセージシーケンス
図400である。
図4は、
図1を参照してここに説明されるような、アプリケーション104と通信するトンネリングクライアント106、およびサービスプロバイダネットワーク122と通信するトンネリングサーバ116などのネットワーク要素を含む。
【0033】
401で、アプリケーション104は、「tsc_ctrl_new_tunnel」APIを実行することによってTSCFトンネル108を確立する。内部で、トンネリングクライアント106は、ストリームベースの(たとえば、TCP/TLS)トランスポートと、データグラムベースの(たとえば、UDP/DTLS)トランスポートという、2つのトランスポートを作成する。
【0034】
402および403で、トンネリングクライアント106は、各トランスポートタイプ(すなわち、402ではUDP、403ではTCP)を介してトンネル構成要求CMを送出する。一実施形態では、各構成要求CMは、以下に詳細に説明される、同じ「タグ」TLV値を含む。402、403での要求は、一実施形態では、要求402および403が他の介在する要求なく連続的に送出されるという点で、ほぼ同時に送出される。
【0035】
トンネリングサーバ116が403でストリームベースの構成要求CMを受信すると、トンネリングサーバ116はTIDおよびIPアドレスを割当て、それを着信タグに関連付ける。404で、トンネリングサーバ116は次に、TIDおよびIPアドレスを含む構成応答CMを送り返す。
【0036】
トンネリングクライアント106は次に、トンネル108の状態を「確立済み」に変更し、TCPトランスポートのみが確立されたこの段階では、すべての着信および発信トラフィックはTCPトランスポートを介して送信される(たとえば、405〜408でのフレーム1および2)。
【0037】
トンネリングサーバ116が402でデータグラムトランスポートを介して到着した構成要求CMを処理すると、トンネリングサーバ116は409で構成応答CMを発行する。それは、404と同じTIDおよびIPアドレスを含む。なぜなら、それは同じタグに関連付けられているためである。したがって、複数のトランスポート層で同じトンネルが使用される。
【0038】
トンネリングクライアント106が409で構成応答CMを受信すると、トンネリングクライアント106は410で構成解放要求CMを送信することによってTCPトランスポートを解放する。構成解放要求CMは、411でトンネリングサーバ116によって構成解放応答CMで応答される。
【0039】
トンネリングクライアント106が411で構成解放応答CMを受信すると、すべての着信および発信トラフィックはここで、TCPトランスポートの代わりにUDPトランスポートを介して送信される(たとえば、412〜417でのフレーム3、4、および5)。したがって、カプセル化メディアは、UDPを使用して、制限的なネットワーク114に存在し得るファイアウォールおよび他のセキュリティデバイスを迂回する。
【0040】
一実施形態は、異なるトランスポートを介して構成要求を構成要求CMに結合する(すなわち、402および403)ために使用される「タグ」TLV値を含むようにTSCFを拡張することによって、効率的なカプセル化メディアトラフィック転送をサポートする。
【0041】
以下の表1は、いくつかの実施形態に従った、効率的なメディアトラフィック転送機能性を提供するための例示的なTSCF TLVを提供する。
【0043】
一実施形態では、効率的なメディアトラフィック転送機能性を提供するために、以下の擬似コードによって示されるように、異なるトンネルトランスポートを介した接続がほぼ同時になされるはずであることを示す新しいブールパラメータ「multi_connection」を含むように、TSCF SDKの「tsc_tunnel_params」構造がアップグレードされる。
【0045】
上述の擬似コードにおける「connection_params」要素は、ほぼ同時に接続すべきサーバの接続パラメータおよびトランスポートパラメータのリストを規定する。「max_connections」要素は、それらのサーバのうちのいくつがリストにおいて提供されているかを示す。以下のように、トンネル作成時、「tsc_tunnel_params」構造はパラメータとして「tsc_ctrl_new_tunnel」APIへ渡される。
【0047】
ここで、「tsc_handle」は戻りコードであり、「requested_config」は、オプションの追加の一組の構成パラメータを提供する。
【0048】
オラクル・コーポレイションからのアクメ・パケット6300といったSBCを使用して実現される一実施形態は、キーワード「multi-connection」を含むパラメータ「assigned-services」を含む構成オブジェクト「tscf-interface」を提供する。以下の表2は、一実施形態に従った、tscf-interface構成オブジェクトの一例を提供する。
【0050】
以下の機能性は、一実施形態に従った、効率的なメディアトラフィック転送を提供するための例示的なインターフェイス構成を提供する。複数のほぼ同時の連続的な接続をサポートするには、少なくとも2つのTSCFポートが必要とされる。
【0052】
以下は、一実施形態に従った、効率的なカプセル化メディアトラフィック転送を提供するための例示的な拡張マークアップ言語(extensible markup language:XML)機能性である。
【0054】
図5は、本発明の実施形態に従った、効率的なカプセル化メディアトラフィック転送を行なう際の
図2の効率的カプセル化メディアトラフィックトランスポートモジュール16、および/または、
図1のトンネリングクライアント106およびトンネリングサーバ116のフロー図である。一実施形態では、
図5のフロー図の機能性は、メモリもしくは他のコンピュータ読取可能媒体または有形媒体に格納され、プロセッサによって実行されるソフトウェアによって実現される。他の実施形態では、機能性は、ハードウェアによって(たとえば、特定用途向け集積回路(application specific integrated circuit:ASIC)、プログラマブルゲートアレイ(programmable gate array:PGA)、フィールドプログラマブルゲートアレイ(field programmable gate array:FPGA)などの使用を介して)、または、ハードウェアとソフトウェアとのあらゆる組合せによって行なわれてもよい。
【0055】
502で、トンネリングクライアント106およびトンネリングサーバ116は、トンネリングクライアント106に少なくとも2つのトンネル構成をほぼ同時に送出させることによって、TSCFトンネル108を確立する。トンネリングクライアント106は、トンネリングサーバ116によって受信される要求を、一実施形態では介在する要求なく連続的に送出する。一実施形態では、1つの要求はデータグラムUDPトランスポートに対するものであり、1つの要求はストリームベースのTCPトランスポートに対するものである。各構成要求は同じタグを含む。
【0056】
504で、ストリームベースのTCPトランスポート要求に応答して、トンネリングサーバ116はトンネルIDおよびIPアドレスを割当て、それを着信タグと関連付けて構成応答を発行し、それがトンネル108を確立する。
【0057】
506で、TCPトランスポートを使用して、すべてのトラフィックがTSCFトンネルを介して送信される。
【0058】
508で、データグラムUDPトランスポート要求に応答して、UDPがファイアウォールによってブロックされていない場合、トンネリングサーバ116は504と同じトンネルIDおよびIPアドレスを割当て、構成応答を発行する。
【0059】
510で、UDPが利用可能である場合、TCPトランスポートが解放される。TCPトランスポートが解放される前に、トラフィックがTCPトランスポート層およびUDPトランスポート層双方を介して送信され得る。
【0060】
512で、TCPトランスポートの代わりにUDPトランスポートを使用して、すべてのトラフィックがここでTSCFトンネルを介して送信される。一実施形態では、トラフィックはカプセル化メディアトラフィックである。UDPトラフィックはトンネル108を介して送信されるため、それは、制限的なネットワーク114に存在し得るあらゆるファイアウォールなどを迂回する。
【0061】
他の実現化例では、トンネル要求402、403に応答して、最初にUDP要求がサーバ116によって応答されてもよく、その場合、最初にUDPトランスポート層を用いてトンネル108が確立される。これが起こる場合、一実施形態では、すべてのメディアトラフィックがUDPを介して転送され、TCPを介したトンネルネゴシエーションがまだ進行中であっても、TCPトランスポートはすぐに解放される。
【0062】
開示されたように、実施形態は、カプセル化メディアを伝送する際、UDPトランスポート層およびTSCFトランスポート層の双方を用いてトンネルを確立する。双方のトランスポート層は呼出し設定時間に要求され、それは設定遅延を減少させ、効率的な転送を提供する。UDPトランスポート層が利用可能である(たとえば、それがすべてのファイアウォールを迂回できる)場合、TSCFトランスポート層がドロップされ、カプセル化メディアはUDPトランスポート層上でのみ送信される。
【0063】
いくつかの実施形態がここに具体的に例示され、および/または説明されている。しかしながら、開示された実施形態の変更および変形は上述の教示によって網羅されており、この発明の精神および意図された範囲から逸脱することなく、添付された請求項の範囲内にある、ということが理解されるであろう。