JP2011525776A - 中継サーバー間の通信を管理するための技法 - Google Patents

中継サーバー間の通信を管理するための技法 Download PDF

Info

Publication number
JP2011525776A
JP2011525776A JP2011516370A JP2011516370A JP2011525776A JP 2011525776 A JP2011525776 A JP 2011525776A JP 2011516370 A JP2011516370 A JP 2011516370A JP 2011516370 A JP2011516370 A JP 2011516370A JP 2011525776 A JP2011525776 A JP 2011525776A
Authority
JP
Japan
Prior art keywords
relay server
port
relay
client
address
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.)
Pending
Application number
JP2011516370A
Other languages
English (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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2011525776A publication Critical patent/JP2011525776A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2578NAT traversal without involvement of the NAT server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

中継サーバー間の通信を管理するための技法について記載する。システムは、拡張中継制御モジュールをそれぞれが備える複数の中継サーバーを含むことができる。拡張中継制御モジュールは、第1の中継サーバーおよび第2の中継サーバーを介して通信するプライベートクライアント間の通信を管理するように機能することができる。拡張中継制御モジュールは、第1の中継サーバーまたは第2の中継サーバーのうちの少なくとも一方のポート範囲属性がオフにされている場合、第1の中継サーバーの制御ポートと第2の中継サーバーの制御ポートとの間にメディアチャネルを確立することができる。他の実施形態についても説明し、特許請求の範囲に記載する。

Description

NAT(ネットワークアドレス変換)とは、ネットワークパケットがルーターまたはファイアウォールを通過するとき、それらのネットワークパケットの送信元アドレスおよび/または宛先アドレスを書き換えることを伴う技法を指す。NAT対応ルーターなどのNATデバイスは、プライベートネットワーク上の複数のホストが、IP(インターネットプロトコル)アドレスなどの単一の公衆ネットワークアドレスを使用し、インターネットなどの公衆ネットワークにアクセスすることを可能にする。しかし、NATデバイスは、プライベートネットワーク上のデバイスと、公衆ネットワーク上または別のプライベートネットワーク上のデバイスとの間の接続性を提供することを困難にすることがある。
エンドツーエンドの接続性の問題を補うため、パブリッククライアントがNATデバイスをトラバースできるようにするために特定のプロトコルが開発されてきた。そのようなプロトコルの1つが、STUN(Session Traversal Utilities for NAT)プロトコルである。STUNプロトコルは、ピアからパケットを受信するために有用であり得るトランスポートアドレスを、パブリッククライアントが得ることを可能にする。しかし、STUNによって得られるアドレスを、すべてのピアが使用できるわけではない場合がある。STUNアドレスは、ネットワークのトポロジ状態によっては機能しない可能性がある。STUNプロトコルを増強しまたは拡張するために、公的アクセス可能な中継サーバーを実装し、パブリックピアおよびプライベートピアを含む、パブリックインターネットにパケットを送信可能な任意のピア間で、メディア情報のパケットを中継することができる。TURN(Traversal Using Relay NAT)プロトコルは、クライアントがそうした中継サーバーからIPアドレスおよびポートを得ることができるように設計された1つのプロトコルである。ただし、複数の中継サーバー間で通信する場合、TURNプロトコルは、中継サーバーのパブリックサイドにある範囲のポートを開くことを必要とする。このことは、高いセキュリティ上の危険を引き起こす可能性がある。
したがって、プライベートクライアントが複数の中継サーバーを介してメディア情報を伝達し、それに関し、様々なNATデバイスを実装する複数のネットワークにわたる接続性を改善するための技法改善の必要性があり得る。
様々な実施形態は、概して中継サーバー間の通信を管理するための技法を対象とすることができる。一部の実施形態は、とりわけ公衆ネットワークおよびプライベートネットワークの両方を含む異種通信システム内の複数の中継サーバーを介し、プライベートクライアント間にメディアチャネルを確立するための技法を対象とすることができる。一実施形態において、中継サーバーは、様々なパブリッククライアントおよびプライベートクライアントによるNATトラバーサルを可能にするための、STUNサーバーおよび/またはTURNサーバーとして実装することができる。
例えば、一実施形態において、通信システムは、数ある要素の中で特に、拡張中継制御モジュールをそれぞれが含む複数の中継サーバーを含むことができる。拡張中継制御モジュールは、第1の中継サーバーおよび第2の中継サーバーを介して通信するプライベートクライアント間の通信を管理するように機能することができる。拡張中継制御モジュールは、第1の中継サーバーまたは第2の中継サーバーのうちの少なくとも一方のポート範囲属性がオフにされている場合、第1の中継サーバーの制御ポートと第2の中継サーバーの制御ポートとの間にメディアチャネルを確立することができる。他の実施形態についても説明し、特許請求の範囲に記載する。
この「課題を解決するための手段」は、以下の「発明を実施するための形態」の中でさらに説明する諸概念の抜粋を、単純化した形で紹介するために提供する。この「課題を解決するための手段」は、特許請求の範囲に記載する主題の重要な特徴または不可欠な特徴を特定することを意図するものでなく、特許請求の範囲に記載する主題の範囲を限定するために使用されることを意図するものでもない。
通信システムの一実施形態を示す図である。 論理フローの一実施形態を示す図である。 第1のメッセージフローの一実施形態を示す図である。 第2のメッセージフローの一実施形態を示す図である。 チャネルフレームメッセージの一実施形態を示す図である。 コンピューティングシステムアーキテクチャの一実施形態を示す図である。 製造品の一実施形態を示す図である。
様々な実施形態は、特定の動作、機能、またはサービスを実行するようになされる物理構造または論理構造を含む。この構造は、物理構造、論理構造、またはその両方の組合せを含むことができる。この物理構造または論理構造は、ハードウェア要素、ソフトウェア要素、またはその両方の組合せを使用して実装される。ただし、特定のハードウェア要素またはソフトウェア要素に関する実施形態の記載は、限定ではなく例であることを意図する。実施形態を実際に実施するために、ハードウェア要素またはソフトウェア要素を使用する決定は、所望の演算速度、電源レベル、耐熱性、処理サイクル予算、入力データ伝送速度、出力データ伝送速度、メモリリソース、データバス速度、および他の設計制約や性能制約など、いくつかの外部要因によって決まる。さらに、この物理構造または論理構造は、構造間で電子信号またはメッセージ形式の情報を伝達するための、対応する物理接続または論理接続を有することができる。その接続には、その情報または特定の構造に適した有線接続および/または無線接続が含まれ得る。「一実施形態」または「実施形態」についてのいかなる言及も、その実施形態に関連して記載する特定の機能、構造、または特徴が、少なくとも1つの実施形態に含まれることを意味することを指摘する価値がある。本明細書の様々な箇所で現れる、語句「一実施形態では」は、必ずしもすべて同じ実施形態に言及しているわけではない。
中継サーバーを、インターネットなどの公衆ネットワークに直接アクセスできないクライアントが、パブリックトランスポートアドレスを取得するために使用する。割り当てられたトランスポートアドレスは、選択されたピアからデータを受信するために使用される。典型的な通信システムアーキテクチャは、企業や会社などのエンティティの境界ネットワークに置かれる中継サーバーを含むことができる。中継サーバーは、公衆ネットワークと通信するために使用するそのパブリックエッジ上の公衆ネットワークインターフェイスや、プライベートネットワークと通信するためのそのプライベートエッジ上のプライベートネットワークインターフェイスなど、2つのネットワークインターフェイスを含むことができる。典型的には境界ネットワークのパブリックエッジとプライベートエッジとの両方に、ファイアウォールが展開される。
一部の中継サーバーは、中継サーバーが、中継サーバー上およびパブリックファイアウォール上の両方にある範囲の双方向ポートを開くことを要求する。このポート範囲は、数ある中でUDP(ユーザーデータグラムプロトコル)やTCP(伝送制御プロトコル)を使用するネットワークトランスポートなど、様々なネットワークトランスポートに割り当てられるポートを含むことができる。これは、様々なプライベートネットワーク上のプライベートクライアント間の潜在的な接続性シナリオを増加させる。
しかし、一部のエンティティは、パブリックファイアウォール上に比較的大きな入力ポート範囲を開くことに不安を感じる。例えば、入力ポート範囲を開くことは、プライベートネットワークにとってのセキュリティ上の危険を高める可能性がある。そうしたセキュリティ上の危険を減らすため、エンティティは、UDP制御ポート3478、TCP制御ポート443など、受信接続用にパブリックファイアウォール上に開いている制御ポートへのポート割り当てを制限することができる。これは、プライベートクライアントに、中継サーバーを介した限られた接続性を与えておくことによる、限られた意味で支持されるシナリオだが、様々な中継サービスを使用するフェデレーションクライアントおよび他のデバイスについての接続性を低減しまたは完全に中断する。例えば、場合によっては、開いたポート範囲を有さないファイアウォールによって分けられる2つの中継サーバーの割り当てポート間を、データが流れるプロビジョニングがない。
これらのおよび他の問題を解決するために、様々な実施形態は、概して、開いた入力方向のポート範囲を有さないファイアウォールによって分けられる複数の中継サーバー間の通信を可能にするように設計される、拡張中継サーバープロトコルまたはプロトコル機能拡張を対象とすることができる。一部の実施形態はとりわけ、TURNプロトコルおよび/またはSTUNプロトコルを実装する中継サーバーに関して特定用途のために設計される、拡張中継サーバープロトコルまたはプロトコル機能拡張を対象とし、様々なパブリッククライアントおよびプライベートクライアントによるNATトラバーサルを可能にすることができる。
例えば、一実施形態において、複数の中継サーバーが、拡張中継制御モジュールをそれぞれ実装することができる。拡張中継制御モジュールは、例えば、数あるプロトコルの中で特にTURNプロトコルの機能拡張として、拡張中継サーバープロトコルを実装することができる。拡張中継制御モジュールは、ファイアウォールまたは他のフィルタリング機構もしくはブロッキング機構を経て、第1の中継サーバーおよび第2の中継サーバーを介して通信するプライベートクライアント間の通信を管理するように機能することができる。拡張中継制御モジュールは、第1の中継サーバーまたは第2の中継サーバーのうちの少なくとも一方のポート範囲属性がオフにされている場合、第1の中継サーバーの制御ポートと第2の中継サーバーの制御ポートとの間にメディアチャネルを確立することができる。その制御ポートには、数ある一意に指定されるポートの中で特に、TURNスイートのプロトコルによって指定されるTURN UDPおよび/またはTCP制御ポートなど、様々なネットワークトランスポートプロトコルのための制御ポートが含まれ得る。その結果、拡張中継制御モジュールは、ファイアウォールまたは他のセキュリティ技法の両端の少なくとも2つの中継サーバーを利用し、別個のプライベートネットワーク上の2つのプライベートクライアント間に、メディア情報を伝達するためのメディアチャネルを確立するための代替パスを提供する。このようにして、それらのプライベートクライアントは、典型的にはビジネス環境において見られるようなフェデレーションクライアントにとって特に望ましい可能性がある、強化された接続性を経験することができる。
図1は、通信システム100の一実施形態を示す。通信システム100は、様々な実施形態を実施するのに適した、全体的なシステムアーキテクチャを示すことができる。通信システム100は、複数の要素を含むことができる。要素は、特定の動作を実行するようになされる任意の物理構造または論理構造を含むことができる。各要素は、1組の所与の設計パラメータまたは性能制約に関して要求される通りに、ハードウェア要素、ソフトウェア要素、またはそれらの任意の組合せとして実装することができる。ハードウェア要素の例には、デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、回路要素(例えば、トランジスタ、抵抗器、コンデンサ、誘導子等)、集積回路、ASIC(特定用途向け集積回路)、PLD(プログラム可能論理デバイス)、DSP(デジタル信号プロセッサ)、FPGA(書替え可能ゲートアレイ)、メモリユニット、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等が制限なく含まれ得る。ソフトウェア要素の例には、任意のソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータープログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、方法、インターフェイス、ソフトウェアインターフェイス、API(アプリケーションプログラムインターフェイス)、命令セット、コンピューティングコード、コンピューターコード、コードセグメント、コンピューターコードセグメント、語、値、記号、またはこれらの任意の組合せが制限なく含まれ得る。図1に示す通信システム100は、特定のトポロジをなす限られた数の要素を有するが、通信システム100は、所与の実装形態に関して要求される通りに、代わりのトポロジをなすより多いまたはより少ない要素を含んでよいことが理解できよう。諸実施形態は、この文脈に限定されることはない。
以下の詳細な説明では、要素を一意に識別するために、一部の要素を、ベース番号を用いて表記する。場合によっては、異なるデバイスまたは異なるネットワークが実装する同じまたは同様の要素が、同じベース番号とその後に続く文字表示「a」を有し、対応する番号を形成することができる。例えば、通信システム100は、中継サーバー124および中継サーバー124aを含むことができる。ベース番号によって識別する要素について行う説明は、対応する番号によって識別する同じまたは同様の要素にも当てはまることが理解できよう。例えば、中継サーバー124は中継サーバー124aと同じまたは同様の構造および動作で実装することができる。場合によっては、必ずしも限定によってではなく、明瞭にし、簡潔にするために説明を1つの要素に限ることもある。
本明細書で使用するとき、用語「システム」、「サブシステム」、「コンポーネント」および「モジュール」は、ハードウェア、ハードウェアとソフトウェアとの組合せ、ソフトウェア、または実行中のソフトウェアを含む、コンピューター関連のエンティティを指すことを意図する。例えば、コンポーネントは、プロセッサ上で実行されるプロセス、プロセッサ、ハードディスクドライブ、(光学式記憶媒体および/または磁気記憶媒体の)複数のストレージドライブ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および/またはコンピューターとして実装することができる。例として、あるサーバー上で実行されるアプリケーションもそのサーバーもコンポーネントとすることができる。プロセスおよび/または実行のスレッドの中には、1つもしくは複数のコンポーネントが存在してよく、コンポーネントは、所与の実装形態に関して要求される通りに1台のコンピューター上に局所化し、かつ/または2台以上のコンピューター間に分散させることができる。諸実施形態は、この文脈に限定されることはない。
図1の図示の実施形態に示すように、通信システム100は、公衆ネットワーク110、境界ネットワーク120、およびプライベートネットワーク130を含む。公衆ネットワーク110には、全体的なクラスのユーザーにとって区別なくアクセス可能な任意のネットワークが含まれ得る。公衆ネットワーク110の一例にはインターネットが含まれ得る。プライベートネットワーク130には、ユーザーを区別し、アクセスを制御した状態の、限られたクラスのユーザーにとってアクセス可能な任意のネットワークが含まれ得る。プライベートネットワーク130の一例には、企業ネットワークなどの企業体向けのネットワークが含まれ得る。境界ネットワーク120には、全体的なクラスのユーザーおよび限られたクラスのユーザーの両方が、それぞれのパブリックインターフェイスおよびプライベートインターフェイスを使用してアクセス可能であり、それによりネットワーク110とネットワーク130との間にある程度の相互運用性をもたらす任意のネットワークが含まれ得る。
様々な実施形態において、ネットワーク110、120、および130は、VoIP(ボイスオーバーIP)通信セッションやVOP(ボイスオーバーパケット)(本明細書ではまとめて「VoIP」と呼ぶ)通信セッションなど、様々なネットワークデバイス間のマルチメディア通信をサポートできるパケット交換ネットワークをそれぞれ含むことができる。例えば、ネットワーク110、120、および130の様々な要素は、様々な種類のVoIP技術を使用し、VoIPピアツーピア通話またはマルチパーティー電話会議を確立できる場合がある。例えば、一実施形態では、そのVoIP技術には、IETF(インターネット技術標準化委員会)シリーズRFC3261、RFC3265、RFC3853、RFC4320、ならびに後継版、改訂版、および改変版によって定義されるSIP(セッション開始プロトコル)など、IETF標準機構によって定義され、公表されるVoIPシグナリングプロトコルが含まれ得る。概して、SIPシグナリングプロトコルは、1人または複数の参加者とのセッションを作成、修正、および終了するためのアプリケーション層制御プロトコルおよび/またはシグナリングプロトコルである。これらのセッションには、IP通話、マルチメディア配布、およびマルチメディア会議が含まれる。例えば、一実施形態において、VoIP技術には、IETF RFC3550、ならびに後継版、改訂版、および改変版によって定義されるRTP(リアルタイム転送プロトコル)やRTCP(リアルタイム転送制御プロトコル)など、データまたはメディア形式プロトコルが含まれ得る。RTP/RTCP標準は、パケット交換ネットワーク110、120、および130などのパケット交換ネットワーク上でマルチメディア情報(例えば、音声や映像)を送るための、均一のまたは標準化されたパケット形式を定義する。一部の実施形態において、限定ではなく例としてSIPおよびRTP/RTCPプロトコルを利用することがあるが、所与の実装形態に関して要求される通りに、他のVoIPプロトコルを使用してもよいことが理解できよう。
様々な実施形態において、ネットワーク110、120、および130の様々な要素は、ネットワーク110、120、および130の様々な要素との間で各種のマルチメディア通信を実行することができる。マルチメディア通信には、パケット、フレーム、PDU(パケットデータユニット)、セル、セグメント、他の区切られた情報群などの離散データセット形式で、様々な種類の情報をパケット交換ネットワーク上で伝達することが含まれ得る。その様々な種類の情報には、制御情報およびメディア情報が含まれ得る。制御情報は、自動システム用のコマンド、命令、または制御語を表す任意のデータを指すことができる。例えば、システムによりメディア情報をルーティングし、またはメディア情報を所定の方法で処理するようにノードに命令するために制御情報は使用することができる。メディア情報は、ユーザー向けのコンテンツを表す任意のデータを指すことができる。コンテンツの例には、例えば、音声チャットのデータ、ビデオ会議、ストリーミングビデオ、電子メール(「eメール」)メッセージ、ボイスメールメッセージ、英数字記号、グラフィックス、画像、イメージ、ビデオ、音声、テキスト等が含まれ得る。音声チャットのデータは、例えば、音声情報、沈黙時間、背景雑音、快適雑音、トーン等とすることができる。ネットワーク110、120、および130を主にパケット交換ネットワークとして実施するが、場合によっては、これらのネットワークのうちの1つまたは複数が、例えば、PSTN(公衆交換電話網)などの様々な回線交換ネットワークをサポートするのに適したインターフェイスおよび機器を有することができる。
様々な実施形態において、公衆ネットワーク110は、1つまたは複数のパブリッククライアント112を含むことができる。パブリッククライアント112は、公衆ネットワークアドレスを有する電子デバイスの部品、コンポーネント、またはサブシステムとして実装することができる。パブリッククライアント112として使用するのに適した電子デバイスの例には、処理システム、コンピューター、サーバー、ワークステーション、アプライアンス、端末、パーソナルコンピューター、ラップトップ、ウルトララップトップ、ハンドヘルドコンピューター、携帯情報端末、テレビ、デジタルテレビ、セットトップボックス、電話、移動電話、携帯電話、ハンドセット、無線アクセスポイント、基地局、加入者局、モバイル加入者センター、無線ネットワークコントローラー、会議システム、ルーター、ハブ、ゲートウェイ、ブリッジ、スイッチ、マシン、またはこれらの組合せが制限なく含まれ得る。
様々な実施形態において、プライベートネットワーク130は、1つまたは複数のプライベートクライアント132−1〜mを含むことができる。プライベートクライアント132−1〜mは、概してプライベートネットワーク130には知られているが、公にはルーティングできないネットワークアドレスである、プライベートネットワークアドレスを有する電子デバイスの部品、コンポーネント、またはサブシステムとして実装することができる。プライベートクライアント132−1〜mとして使用するのに適した電子デバイスの例には、パブリッククライアント112に関して提供したのと同じまたは同様の電子デバイスが含まれ得る。図1の図示の実施形態に示すように、例えば、プライベートクライアント132−1〜mは、ピアクライアント132−1および会議サーバー132−2を含むことができる。ピアクライアント132−1には、VoIP通話を終了するためのマルチメディアエンドポイントとしてそのいずれをも使用することができる、パブリッククライアント112または別のピアクライアント132−1aにとってのピアデバイスが含まれ得る。例えば、ピアクライアント132−1、132−1aには、VoIP電話やSIP電話などのパケット交換電話が含まれ得る。会議サーバー132−2には、2つ以上のパブリッククライアントおよび/またはプライベートクライアントなど、複数のマルチメディアエンドポイント間のマルチメディア会議セッション用の複数のVoIP通話をサポートするための、マルチメディア会議サーバーが含まれ得る。会議サーバー132−2は、会議フォーカス(conference focus)、1つまたは複数のオーディオビデオマルチポイントコントロールユニット(AVMCU)、ゲートウェイ、ブリッジなど、VoIP電話会議を確立、管理、および終了するのに適した様々な会議システムコンポーネントを含み、またはそれらの会議システムコンポーネントに通信可能に結合することができる。
様々な実施形態において、プライベートネットワーク130は、登録サーバー136を含むことができる。登録サーバー136は、ユーザーを認証すること、プライベートネットワーク130内で要求をルーティングすること、サーバーのオペレーティングシステム用のActive Directoryを維持することなど、プライベートネットワーク130に関する様々なネットワーク管理動作を担う集中型エンティティである。例えば、登録サーバー136は、ルーティングする前に自らを介したすべての要求を確認し、任意の登録要求のSIPヘッダーのFROMフィールド内のURI(Uniform Resource Identifier)が、要求元のIDに一致することを確実にする。例えば、一実施形態において、登録サーバー136は、Microsoft Corporation,Redmond,Washingtonによって作成された、MICROSOFT(登録商標) OFFICE COMMUNICATIONS SERVERを使用して実装することができる。この実装形態では、ピアクライアント132−1、132−1aは、同じくMicrosoft Corporation,Redmond,Washingtonによって作成された、MICROSOFT OFFICE COMMUNICATORクライアントとして実装することができる。ただし、諸実施形態は、これらの例に限定されない。
様々な実施形態において、境界ネットワーク120は、ピアクライアント132−1、132−1aなどのネットワーク110、130内のデバイス間の、相互運用動作を容易にするための様々なネットワークデバイスを含むことができる。一部の実施形態において、境界ネットワーク120は、パブリッククライアント112から公衆ネットワーク110によってアクセス可能な公衆ネットワークインターフェイスと、プライベートクライアント132−1〜mからアクセス可能なプライベートネットワークインターフェイスとを含むネットワークデバイスを含むことができる。
様々な実施形態において、境界ネットワーク120は、プロキシサーバー122をオプションで含むことができる。プロキシサーバー122は、プライベートネットワーク130へのアクセスを全般的に制御することができる。プロキシサーバー122は、パブリックインターネットからのクライアント要求を承諾し、そのクライアント要求を、そのクライアント要求に基づく適切な宛先にルーティングするサーバーである。プロキシサーバー122はさらに、クライアント要求を転送する前に確認する。例えば、プロキシサーバー122は、SIPシグナリングなどの様々なVoIP操作に関し、外部クライアントまたはパブリッククライアントのための接続ポイントとして機能することができる。例えば、一実施形態において、プロキシサーバー122は、認証され、かつセキュリティ保護されたSIPチャネルを提供し、通信システム100などのマルチメディア通信システム内の中継サーバー124が提供するSTUN中継サービスの位置を発見し、そのSTUN中継サービスについての認証資格情報を得る。SIPクライアントまたはUA(ユーザーエージェント)は、それぞれのネットワーク110、130など、公衆ネットワークまたはプライベートネットワーク上にあってよい。その認証資格情報は、所与のクライアントが自ら使用するために、そのクライアントによるファーストパーティー方法で、またあるいは、クライアントを電話会議システムに追加するためなど、所与のクライアントが別のクライアントのために認証資格情報を得るサードパーティー方法で得ることができる。後者の場合、他者のためにこの情報を得るために、サードパーティーは認証され承認されるべきである。プロキシサーバー122は、認証資格情報を得るために使用されるチャネル上の通信がセキュリティ保護され、外部クライアントまたはパブリッククライアントが認証されていることを確実にする。
様々な実施形態において、境界ネットワーク120は、NATおよび/またはファイアウォールの動作を実施するための1つまたは複数のネットワークデバイスを含むことができる。そのような動作は、典型的には、公衆ネットワーク110とプライベートネットワーク130との間に配置されるデバイスが実行する。場合によっては、これらの動作を、典型的には破線121、121aによって示す、公衆ネットワーク110とプロキシサーバー122との間に配置されるデバイスが実行する。例えば、図1に示す図示の実施形態において、境界ネットワーク120は、NAT128を含む。図1の図示の実施形態のトポロジは、NAT128をプロキシサーバー122と平行に示すが、NAT128を、破線121、121aによって示す、プロキシサーバー122と公衆ネットワーク110との間に配置できることが理解できよう。諸実施形態は、この文脈に限定されることはない。
NAT128は、プライベートネットワーク130に関する様々なNAT動作を実施することができる。NAT128は、ネットワークパケットがネットワーク110、130の間を通過するとき、それらのネットワークパケットの送信元アドレスおよび/または宛先アドレスを書き換えることができる。このようにして、NAT128は、プライベートネットワーク上の複数のホスト(例えば、プライベートクライアント132−1〜m)が、IPアドレスなどの単一の公衆ネットワークアドレスを使用し、公衆ネットワーク110にアクセスすることを可能にする。しかし、NAT128は、パブリッククライアント112がプライベートネットワーク130に知られていないことによるセキュリティ上の問題、NATデバイスの背後にあるクライアントのためにネットワークアドレスを得ることの難しさ、間接費など、いくつかの理由から、パブリッククライアント112とプライベートクライアント132−1〜mとの間の接続性を提供することを困難にすることがある。同様に、プライベートネットワーク130は、外部のユーザーがプライベートネットワーク130のリソースにアクセスすることを防ぐ、企業ファイアウォールによって保護される場合がある。企業ファイアウォールも、パブリッククライアントとプライベートクライアントとの間の接続性を提供することを困難にする可能性がある。
エンドツーエンドの接続性の問題を補うために、境界ネットワーク120、120aは、それぞれの中継サーバー124、124aを実装し、パブリッククライアント112および/またはプライベートクライアント132−1〜mが、企業ファイアウォールおよび/またはNAT128、128aをトラバースすることを可能にすることができる。中継サーバー124は、様々なメディアエンドポイントまたは宛先(例えば、パブリッククライアントやプライベートクライアント)間のメディア情報など、任意のデータを伝達するようになされる、クライアント112、132に関して前に記載した任意の電子デバイスとすることができる。例えば、一実施形態において、中継サーバー124は、IETF(インターネット技術標準化委員会)RFC3489、ならびにその後継版、改訂版、および改変版によって定義されるIETF STUN(Session Utilities for NAT)プロトコルに従って動作するように構成することができる。STUNプロトコルを実装する場合、中継サーバー124は、ときとしてSTUNサーバーと呼ばれることがある。STUNプロトコルは、NATデバイス128のトラバーサルを容易にするための一連のツールを提供する。特に、STUNプロトコルは、クライアントがSTUNサーバーに対する自らの再帰(reflexive)トランスポートアドレスを特定するために使用するバインド要求を定義する。再帰トランスポートアドレスを、クライアントが、ピアからパケットを受信するために使用することができるが、それはそのクライアントがある種のNATの背後にある場合に限られる。具体的には、そのマッピング動作がアドレスまたはアドレスおよびポートに依拠する種類のNATの背後にクライアントがある場合、ピアと通信するために再帰トランスポートアドレスを使用することはできない。この場合、そのようなNATを介してピアと通信するために使用可能なトランスポートアドレスを得るための唯一の方法は、中継サーバー124などの中継を使用することである。中継サーバー124は、NATデバイス128のパブリックサイドに位置し、NATデバイス128のプライベートサイドの背後(例えば、ネットワーク130)から自らに到達するクライアントにトランスポートアドレスを割り当てる。これらの割り当てられるアドレスは、中継サーバー124上のインターフェイスからである。中継サーバー124が、これらの割り当てられたアドレスのうちの1つについてのパケットを受信するとき、中継サーバー124は、そのパケットをクライアントに向けて転送する。
STUNプロトコルに加え、中継サーバー124を、非特許文献1という名称の、IETFインターネットドラフト、ならびにその後継版、改訂版、および改変版によって定義される、IETF TURN(Traversal Using Relays around NAT)と呼ばれる、STUNプロトコルの機能拡張を実装するように構成することができる。TURNプロトコルは、STUNサーバーが中継としての役割を果たすよう、クライアントがSTUNサーバー自体のアドレスを要求することを可能にする。それを達成するために、この機能拡張は、少数の新たなSTUN要求およびSTUN表示を定義する。割当要求は、この機能拡張の組の基本的コンポーネントである。この割当要求は、STUNサーバーを介して中継されるトランスポートアドレスをクライアントに提供するために使用される。媒体物を介して中継されるトランスポートアドレスを、中継済みトランスポートアドレスと呼ぶ。これらの機能拡張をサポートするSTUNサーバーを、「STUN中継」またはより単純に「中継」、「TURNサーバー」、「TURN中継サーバー」もしくは同様の名称で呼ぶことがある。中継サーバー124をTURNサーバーとして動作するように構成する場合、パブリッククライアント112およびプライベートクライアント132−1〜mを、TURNプロトコルに準拠するクライアントとして動作するように構成することができる。これらのクライアントは、UDP、TCP(伝送制御プロトコル)、TLS(トランスポート層セキュリティ)over TCPなど、任意の数の適切な通信トランスポートを使用してTURNサーバーと通信することができる。場合によっては、TURNサーバーは、一定の制約を伴って、2つの異なるトランスポート間のトラフィックを中継することさえできる。
TURNプロトコルを使用して動作するために、中継サーバー124は、クライアント112、132が中継サーバー124を介してメディア情報を伝達し始めることを可能にする前に、クライアント112、132を認証する必要がある。中継サーバー124は、中継サーバー124とそれぞれのクライアント112、132との間の共有シークレットを使用し、クライアント112、132の認証操作を実行する。中継サーバー124は、典型的には共有シークレットを生成し、その共有シークレットをクライアント112、132に配信する。認証操作は、登録サーバー136を使用して実行することができる。
全体的な動作では、中継サーバー124、124aはSTUNプロトコルおよび/またはTURNプロトコルを実装することができ、これは場合によっては、様々なネットワークのプライベートクライアントが中継サーバー124、124aを使用して通信できるようにするために、中継サーバー124、124aが、中継サーバー124、124a上およびパブリックファイアウォール上の両方にある範囲の双方向ポートを開くことを必要とする。このポート範囲は、数ある中でUDPおよび/またはTCPを使用するネットワークトランスポートなど、様々なネットワークトランスポートに割り当てられるポートを含むことができる。これは、パブリッククライアント112および/またはプライベートクライアント132−1〜m間の潜在的な接続性シナリオを増加させる。しかし、一部のエンティティは、パブリックファイアウォール上に比較的大きな入力ポート範囲を開くことに不安を感じる。例えば、この入力ポート範囲を開くことは、プライベートネットワークにとってのセキュリティ上の危険を高める可能性がある。
これらのおよび他の問題を解決するために、中継サーバー124、124aは、それぞれの拡張中継制御モジュール160、160aを実装することができる。拡張中継制御モジュール160、160aは、開いた入力方向のポート範囲を有さない1つまたは複数のファイアウォールによって分けられる中継サーバー124、124a間の通信を可能にするように設計される、拡張中継サーバープロトコルまたはプロトコル機能拡張を実装することができる。具体的には、拡張中継制御モジュール160、160aは、TURNプロトコルおよび/またはSTUNプロトコルを実装する中継サーバー124、124aに関して特定用途のために設計される拡張中継サーバープロトコルまたはプロトコル機能拡張を実装し、様々なパブリッククライアントおよびプライベートクライアントによるNATトラバーサルを可能にすることができる。例えば、一実施形態において、拡張中継制御モジュール160、160aは、中継サーバー124、124aのうちの一方または両方のポート範囲属性がオフにされている場合、それぞれの中継サーバー124、124aの制御ポート間にメディアチャネルを確立することができる。
様々な実施形態において、ピアクライアント132−1は、TURNプロトコルを利用して中継サーバー124などの中継サーバーからパブリックトランスポートアドレスを割り当てるように構成される、プライベートネットワーク130上のTURNクライアントを含むことができる。トランスポートアドレスを、同様にパブリックトランスポートアドレスを有する選択されたピアと通信するために使用することができる。プライベートネットワーク130a上のピアクライアント132−1aなど、そのピアがプライベートネットワーク上にある場合、そのピアも、中継サーバー124aなどのTURNサーバーからパブリックトランスポートアドレスを割り当てる必要がある。ピアクライアント132−1、132−1aがどちらも同じ中継サーバーから割り当てる場合、その2つの間のデータフローは、UDP3478やTCP443などのTURN制御ポート上に発生する。ピアクライアント132−1、132−1aが異なる中継サーバーから割り当てる場合、データフローは典型的には2つの割り当てられたポートの間に発生する。このことは、境界ネットワーク120の管理者に、パブリックエッジファイアウォール上にある範囲のポートを開くことを強いる。
拡張中継サーバープロトコルは、パブリックエッジファイアウォール上に比較的大きな入力ポート範囲を開くことを必要とせず、異なる境界ネットワーク120、120a内の2つの中継サーバー124、124a間をデータが流れることを可能にするように設計される。拡張中継サーバープロトコルは、各クライアントとそれらのクライアントそれぞれの中継サーバーとの間で使用されるトランスポートに関係なく、すべてのメディアセッション(例えば、音声/映像セッション)のための、中継サーバー124、124a間のトランスポートとしてUDPを使用できるようにする。クライアントが自らの割当要求メッセージの中で使用するオプションのサービス品質属性において識別されるように、信頼できるデータ配信を必要とするすべてのクライアントTCPセッションのためのトランスポートとして、TCPを使用することができる。割当要求メッセージがサービス品質属性を含まない場合、中継サーバーはベストエフォート配信とみなし、中継サーバー124、124a間のトランスポートとしてUDPを使用することができる。
クライアント132−1〜mは、自らのそれぞれの中継サーバー124、124aからパブリックトランスポートアドレスを割り当てる。これらのクライアントは、SIPダイアログのSDP(セッション記述プロトコル)部分の中で、その割り当てられるトランスポートアドレスを交換する。クライアントがピアのトランスポートアドレスを知ると、そのクライアントはTURN送信要求メッセージを使用してそのピアにデータを送信することができる。
中継サーバー124(または124a)が送信要求メッセージを受信すると、その中継サーバーはアクセス許可を設定し、そのデータを、クライアントの割り当てられたトランスポートアドレスから、その送信要求メッセージの宛先アドレス属性の中で識別される宛先アドレスに直接送信する。同時に、中継サーバー124は、TURNポートから「チャネルフレームメッセージ」と呼ばれる特殊な種類の革新的メッセージも送信する。チャネルフレームメッセージは、同じ宛先アドレスにUDPを介して送信されるが、3478の宛先ポートを使用する。図4に、チャネルフレームメッセージのフレーム化を明記する。チャネルフレームメッセージは、発信者が拡張中継サーバープロトコルを使用して通信できるという、ピア中継サーバーへのインジケーターの役割をする。
中継サーバー124、124aがTURN制御ポート上でチャネルフレームメッセージを受信すると、その中継サーバーは、そのチャネルフレームメッセージ内の宛先ポートに一致する割り当てポートを自らが有するかどうか確認する。宛先ポートが有効な場合、その中継サーバーは、ピアから受信するためのアクセス許可が設定されているかどうか確認する。アクセス許可が設定されており、チャネルフレームメッセージがデータを含む場合、中継サーバー124、124aはそのデータをデータ指示メッセージ内のクライアントへと通過させる。
クライアントがサービス品質属性を使用して、TCPセッション上の信頼できるデータ配信を要求することを明らかにする場合、中継サーバー124、124aは、TCPセッションを使用して拡張中継サーバープロトコルデータを運ぶ。中継サーバー124、124aの2つのTURN制御ポート間でUDPを介してチャネルフレームデータを送信する代わりに、送信側中継サーバー124の割り当てポートから、ピア中継サーバー124a上のTCP TURN制御ポート443へのTCPセッションが確立されることを除き、動作はUDPおよび信頼できないTCPに対するものと同じである。このシナリオへのサポートは、境界ネットワーク120の管理者が、出力方向のTCP接続のために外部ファイアウォール上にある範囲のポートを開くことを要求する。
1つまたは複数の論理フローを参照し、通信システム100の動作をさらに説明することができる。別段の記載がない限り、その代表的な論理フローは、必ずしも提示する順序で、または何らかの特定の順序で実行しなければならないわけではないことが理解できよう。さらに、その論理フローに関して記載する様々な活動は、直列式にまたは並列式に実行することができる。その論理フローは、通信システム100の1つもしくは複数の要素、または1組の所与の設計制約および性能制約に関して要求される代替的要素を使用して実施することができる。
図2は、論理フロー200を示す。論理フロー200は、本明細書に記載の1つまたは複数の実施形態によって実行される操作を表すことができる。ただし、諸実施形態は、この代表的な論理フロー200に限定されない。
図2に示す図示の実施形態において、論理フロー200は、ブロック202で、第1のプライベートネットワーク上の第1のプライベートクライアントから、第1の送信要求を第1の中継サーバーによって受信することができ、第2のプライベートネットワーク上の第2のプライベートクライアントにメディア情報を送信するためのその第1の送信要求は、第2の中継サーバーを使用する。例えば、中継サーバー124の拡張中継制御モジュール160が、プライベートネットワーク130上のピアクライアント132−1から第1の送信要求を受信することができる。その第1の送信要求は、中継サーバー124aを使用してプライベートネットワーク130a上のピアクライアント132−1aにメディア情報を送信する要求を含むことができる。送信要求の一例には、TURNスイートのプロトコルによって定義される送信要求が含まれ得る。
論理フロー200は、ブロック204で、第1の中継サーバーのポート範囲属性がオフに設定されていることを判定することができる。例えば、中継サーバー124の拡張中継制御モジュール160が、中継サーバー124のポート範囲属性がオフ状態に設定されていることを判定することができる。ポート範囲属性がオフ状態に設定されている場合、中継サーバー124は、公衆ネットワークインターフェイスのある範囲のポートが閉じられており、公衆ネットワーク110から入力トラフィックを受信することができない。対照的に、ポート範囲属性がオン状態に設定されている場合、中継サーバー124は、公衆ネットワークインターフェイスのある範囲のポートが開かれており、公衆ネットワーク110からの入力トラフィックを受信することができる。一実施形態において、ポート範囲属性がオン状態に設定されている場合、拡張中継制御モジュール160は、従来のSTUNプロトコル操作および/またはTURNプロトコル操作を利用して、中継サーバー124、124a間にメディアチャネルを確立することができる。
論理フロー200は、ブロック206で、第1の中継サーバーの第1の制御ポートおよび第2の中継サーバーの第2の制御ポートを使用し、第1の中継サーバーおよび第2の中継サーバーを介し、第1のプライベートクライアントと第2のプライベートクライアントとの間にメディアチャネルを確立することができる。例えば、中継サーバー124の拡張中継制御モジュール160は、中継サーバー124の第1の制御ポートおよび中継サーバー124aの第2の制御ポートを使用し、中継サーバー124、124aを介してピアクライアント132−1、132−1a間にメディアチャネルを確立することができる。すなわち、ピアクライアント132−1、132−1aに割り当てられるポートの代用ポートとして中継サーバー124、124aの制御ポートを使用し、割り当てられるポートがオフ状態にある場合にさえ、パブリックファイアウォールをトラバースできるメディアチャネルを確立することができる。
一部の実装形態は、中継サーバー124、124aが、UDP接続またはTCP接続を伴うIPv4(インターネットプロトコルバージョン4)アドレスを有すると仮定するが、他のものも使用することができる。中継サーバー124、124aがファイアウォールの背後にある場合、そのファイアウォールには、中継サーバー124、124aが通り抜けるネットワークインターフェイスごとに、TURN制御ポートが開いているとみなされる。中継サーバー124、124aは、TURN UDP制御ポート上でUDPデータグラムを受信し、またはTURN TCP制御ポート上で入力TCP接続を受信する準備ができているとみなされる。TURNサーバー124、124aが、フェデレーションクライアント間のアプリケーション共有もしくはデータ転送、または信頼できるTCP接続を必要とする他の任意のアプリケーションをサポートする場合、外部ファイアウォールは、ある範囲のポートからの出力方向のTCPセッションの確立を可能にするように構成されるとみなされる。
拡張中継サーバープロトコルは、様々なチャネル要件に基づいて、様々なネットワークトランスポートを利用することができる。拡張中継サーバープロトコルで使用する特定のネットワークトランスポートは、クライアントが自らのローカル中継に接続するために使用するネットワークトランスポート、および所与のメディアチャネル上の信頼できるデータ配信についてのクライアントの要件によって決まる。例えば、クライアントが、中継サーバーと通信するためのネットワークトランスポートとしてUDPを使用している場合、メディアチャネルはUDPを使用して確立される。別の例では、クライアントが、ネットワークトランスポートとしてTCPを使用しており、RTP音声や映像のためなど、信頼できるデータ配信を必要としない場合、メディアチャネルはUDPを介して確立される。さらに別の例では、クライアントが、トランスポートとしてTCPを使用しており、アプリケーション共有やファイル転送のためなど、信頼できるデータ配信を必要とする場合、メディアチャネルはTCPを使用して確立される。クライアントは、認証された割当要求メッセージの中のサービス品質属性を使用し、信頼できるデータ配信を必要とするTURNセッションを識別する。
拡張中継サーバープロトコルの、より詳細な説明を以下に示す。このセクションは、拡張中継サーバープロトコルに関与するために一実装形態が維持する、可能なデータ編成の概念モデルについて記載する。記載する編成は、このプロトコルが動作する方法についての説明を容易にするために提供する。拡張中継サーバープロトコルは、諸実装形態の外的動作が拡張中継サーバープロトコルについて記載する外的動作と一貫している限り、諸実装形態がこのモデルに忠実であることは義務付けない。この説明では、用語「セッション」は、クライアントとサーバーとの間のまたは2つのサーバー間の5個組みを識別するために使用する。サーバーに到達するすべてのTURNメッセージ、生データメッセージ、およびチャネルフレームメッセージは、セッションに関連する。本明細書で使用するとき、用語「メディアチャネル」または単純に「チャネル」は、2つのTURNサーバー間のデータの流れを識別するために使用する。チャネルは、チャネルフレームメッセージ内のチャネル番号、送信元ポート、および宛先ポートによって識別される3個組によって指定される。
中継サーバー124、124aの初期化中、拡張中継サーバープロトコルは、それぞれの中継サーバー124、124aがUDPポート3478上でUDPデータグラムを受信できるとみなす。さらに、それぞれの中継サーバー124、124aは、TCPポート443上で入力TCP接続を受け付けることができるとみなされる。限定ではなく例としてこれら2つのTURN制御ポートを使用するが、いかなる一意に指定されるポート番号も、任意の方法で所与の実装形態に関して使用可能であることが理解できよう。諸実施形態は、この文脈に限定されることはない。
拡張中継サーバープロトコルは、チャネルフレームメッセージをTURNポート上で受信できるようにする。以前は、TURNポート上で許可された唯一のメッセージは、TURNフレームメッセージまたは生データメッセージであり、これらのメッセージは、アクティブ宛先設定メッセージを使用することにより、クライアントとTURNサーバーとの間のTURNセッションがアクティブ状態に移行した後にのみ有効であった。拡張中継サーバープロトコルでは、TURNポート上の受信機は、TURNメッセージおよびチャネルフレームメッセージもチェックしなければならない。
チャネルフレームメッセージの追加を伴い、拡張中継サーバープロトコルは、STUNプロトコルおよび/またはTURNプロトコルの全体的フレームワークの中で、チャネルフレームメッセージを処理するためのロジックを実装する。拡張中継制御モジュール160、160aが実装する、チャネルフレームメッセージ、TURNメッセージ、および非TURNメッセージのための様々なメッセージ処理ルールについて、以下のセクションで説明することができる。
最初の問題として、TURN制御ポート上で受信されるすべてのメッセージは、TURNプロトコルで規定されるように確認されるべきである。同様に、送信要求メッセージ以外のすべてのTURNメッセージは、TURNプロトコルで規定されるように処理されるべきである。
TURNメッセージが送信要求メッセージの場合、拡張中継制御モジュール160、160aは、いくらか改変されたTURNプロトコルに従ってメッセージ処理操作を実行する。送信要求メッセージを受信すると、拡張中継制御モジュール160、160aは、TURNプロトコルで規定されるようにメッセージ処理を実行する。さらに、それぞれの中継サーバー124、124aの拡張中継制御モジュール160、160aは、以下のメッセージ処理操作のうちの一部またはすべてを実行し、そのチャネル上をデータが流れることができる、ピア中継サーバー124、124aとのチャネルセッションを確立する。例えば、中継サーバー124、124aは、図4に関して説明するチャネルフレームメッセージを形成する。割り当てられたポートのネットワークトランスポートがUDPの場合、中継サーバー124は、チャネル番号のために0xFF00などの一意識別子を使用する。割り当てられたポートのネットワークトランスポートがTCPの場合、サーバーは、チャネル番号のために0xFF01などの一意識別子を使用する。長さは、4などの標準値に、チャネルフレームメッセージに含められる任意のデータの長さを加えたものに設定することができる。送信元ポートは、ローカル割り当て済みアドレスポートに設定することができる。宛先ポートは、送信要求メッセージの宛先アドレス属性の中で識別されるポートに設定することができる。中継サーバー124は、送信要求メッセージのデータ属性によって識別されるデータペイロードをオプションで含むことができる。
送信要求メッセージの処理操作について続けると、割り当てられたポートのネットワークトランスポートがUDPの場合、または割り当てられたポートのネットワークトランスポートがTCPであり、かつクライアントがサービス品質属性の中で信頼できないデータ配信を指定する場合、中継サーバー124、124aは、UDPを使用してチャネルフレームメッセージを送信することができる。チャネルフレームメッセージを運ぶUDPデータグラムは、割り当てられたトランスポートアドレスと同じである送信元アドレスを有することができる。中継サーバー124、124aは、UDPデータグラムの送信元ポートとして、TURN制御ポート3487を使用することができる。チャネルフレームメッセージを運ぶUDPデータグラムは、宛先アドレス属性の中で識別されるアドレスと同じである宛先アドレスを有することができる。UDPデータグラムの宛先ポートは、TURN制御ポート3478とすることができる。
送信要求メッセージの処理操作について続けると、割り当てられたポートのネットワークトランスポートがTCPであり、かつクライアントがサービス品質属性の中で信頼できるデータ配信を指定する場合、中継サーバー124、124aは、TCPを使用してチャネルフレームメッセージを送信することができる。中継サーバー124、124aと、送信要求メッセージの宛先アドレス属性の中で指定されるトランスポートアドレスとの間にTCP接続が確立されていない場合、中継サーバー124、124aがTCP接続を作成する。TCP接続は、割り当てられたトランスポートアドレスと同じである送信元アドレスを含む。中継サーバー124、124aは、TCP接続の送信元ポートとして、割り当てられたポートを使用することができる。TCP接続は、宛先アドレス属性の中で識別されるアドレスと同じである宛先アドレスを含む。TCP接続の宛先ポートは、TURN制御ポート443とすることができる。TCP接続を確立すると、中継サーバー124、124aは、そのメディア接続を介してチャネルフレームメッセージを送信する。
拡張中継制御モジュール160、160aが実行する全体的なメッセージ処理操作について再び言及すると、受信したメッセージがTURNメッセージではない場合、拡張中継制御モジュール160、160aは、その受信メッセージがクライアントとのTURNセッションの一部かどうかを判定する。セッションがTURNセッションであり、クライアントがアクティブ宛先設定要求メッセージを中継サーバー124、124aに送信することにより、そのセッションがアクティブ状態に移行している場合、拡張中継制御モジュール160、160aは、送信要求メッセージに関して前に説明したのと同じまたは同様のメッセージ処理ルールを使用し、そのメッセージを処理することができる。
セッションがTURNセッションでない場合、そのメッセージは入力方向のチャネルフレームメッセージとして確認される。例えば、あるメッセージがTURNフレームメッセージではないと判定された場合、そのメッセージは、チャネルフレームメッセージかどうかチェックされる。拡張中継制御モジュール160、160aは、その受信メッセージがチャネルフレームメッセージかどうか、および適切に形成されていることを確認する。その受信メッセージが有効なチャネルフレームメッセージでない、または適切に形成されていない場合、中継サーバー124、124aがそのメッセージを確認なしで削除する。中継サーバー124、124aは、チャネルフレームメッセージ内の長さフィールドが4以上であることを確認する。この長さが4より少ない場合、中継サーバー124、124aがそのパケットを確認なしで削除する。中継サーバー124、124aは、チャネルフレームメッセージ内の宛先ポートが、中継サーバー124、124aのTURN割り当て範囲内の有効なポートであることも確認する。ポートが適切な割り当て範囲内にない場合、中継サーバー124、124aがそのパケットを確認なしで削除する。
有効なチャネルフレームデータメッセージを、UDPデータグラムとしてまたはTCP接続を介して受信したデータとして受信すると、拡張中継制御モジュール160、160aは、宛先ポートについて設定される受信アクセス許可を、トランスポートアドレスであって、そこからチャネルフレームメッセージが受信された、トランスポートアドレスと突き合わせてチェックする。クライアントがアクセス許可を設定していない場合、中継サーバー124、124aがそのパケットを確認なしで削除する。拡張中継制御モジュール160、160aは、TURNプロトコルに従い、チャネルフレームメッセージ内のデータを、あたかもそのデータが割り当てられたポートにおいて直接受信されたかのように処理し続ける。
2つの中継サーバー124、124a間の直接接続をファイアウォールがブロックしていない場合、チャネルフレームセッションを介してだけでなく、割り当てられたポート間で直接接続を確立することもできる。この場合、割り当てられたポートへの直接接続が望ましい可能性があり、チャネルフレーム通信機構から、割り当てられたポート上での直接受信に切り替えることができる。最初にチャネルフレームセッションが確立される場合、割り当てられたポートにおいてデータを直接受信するまでそのセッションを使用する。割り当てられたポート上でデータを受信すると、チャネルフレームセッションから、割り当てられたポート上の直接接続に接続が切り替わる。
中継サーバー124、124aは、割当要求メッセージに対する特別なメッセージ処理操作を有することもできる。割当要求メッセージを受信すると、中継サーバー124、124aは、TURNプロトコルで規定されるようにメッセージ処理を実行する。加えて、中継サーバー124、124aは、いくつかの特別な処理を実行する。例えば、その要求がサービス品質属性を含む場合、中継サーバー124、124aは、その要求されたサービスの種類およびストリームの種類を自らがサポートすることを確認する。そのサービスの種類をサポートしていない場合、中継サーバー124、124aは、メディアの種類がサポートされていないことを表すエラー応答コード415を伴う割当エラー応答メッセージで応答する。サポートされていないサービスの種類の一例は、UDP割り当てによる信頼できる配信の要求である。そのストリームの種類をサポートしていない場合、中継サーバー124、124aは、メディアの種類がサポートされていないことを表すエラー応答コード415を含む割当エラー応答メッセージで応答する。その要求がサービス品質属性を含まない場合、中継サーバー124、124aは、デフォルトでベストエフォート配信のサービスの種類になる。
場合によっては、中継サーバー124、124aは、非TURNデータをクライアントから受信することがある。非TURNフレームデータをクライアントから受信すると、中継サーバー124、124aは、TURNプロトコルで規定されるようにメッセージ処理を実行する。クライアントについて設定されるアクティブ宛先が、データを転送するためにチャネルセッションを使用していると判断される場合、中継サーバー124、124aはチャネルフレームメッセージを形成する。割り当てられたポートのネットワークトランスポートがUDPの場合、中継サーバー124、124aは、チャネル番号のために0xFF00を使用する。割り当てられたポートのネットワークトランスポートがTCPの場合、中継サーバー124、124aは、チャネル番号のために0xFF01を使用する。長さは、このメッセージに含められる非TURNフレームデータの長さに4を加えたものに設定される。送信元ポートは、ローカル割り当て済みアドレスポートに設定される。宛先ポートは、送信要求メッセージの宛先アドレス属性の中で識別されるポートに設定される。中継サーバー124、124aは、クライアントからの非TURNフレームデータを含める。割り当てられたポートのネットワークトランスポートがUDPの場合、または割り当てられたポートのネットワークトランスポートがTCPであり、かつクライアントがサービス品質属性の中で信頼できないデータ配信を指定する場合、中継サーバー124、124aは、UDPを使用してチャネルフレームメッセージを送信する。チャネルフレームメッセージを運ぶUDPデータグラムは、割り当てられたトランスポートアドレスと同じである送信元アドレスを有することができる。中継サーバー124、124aは、UDPデータグラムの送信元ポートとして、TURNポート3487を使用すべきである。チャネルフレームデータメッセージを運ぶUDPデータグラムは、宛先アドレス属性の中で識別されるアドレスと同じである宛先アドレスを有する。UDPデータグラムの宛先ポートは、TURNポート3478に設定される。割り当てられたポートのネットワークトランスポートがTCPであり、かつクライアントがサービス品質属性の中で信頼できるデータ配信を指定する場合、中継サーバー124、124aは、TCPを使用してチャネルフレームメッセージを送信する。中継サーバー124、124aと、アクティブ宛先設定要求の宛先アドレス属性の中で指定されるトランスポートアドレスとの間にTCP接続が確立されていない場合、中継サーバー124、124aがTCP接続を作成する。TCP接続は、割り当てられたトランスポートアドレスと同じである送信元アドレスを有することができる。中継サーバー124、124aは、TCP接続の送信元ポートとして、割り当てられたポートを使用すべきである。TCP接続は、宛先アドレス属性の中で識別されるアドレスと同じである宛先アドレスを有する。TCP接続の宛先ポートは、TURNポート443である。TCP接続を確立すると、中継サーバー124、124aは、その接続を介してチャネルフレームデータメッセージを送信する。
図3Aは、メッセージフロー300を示す。メッセージフロー300は、図1に関して記載した通信システム100の様々な要素間のメッセージフローを表すことができる。より詳細には、メッセージフロー300は、通信システム100のメッセージフローおよび動作についてのより詳細な例を提供することができる。
メッセージフロー300では、ピアクライアント132−1を、第1の企業体の認証されたユーザーとみなす。ピアクライアント132−1は、NAT128の背後にあり、境界ネットワーク120内の中継サーバー124を使用して、公的にアクセス可能なトランスポートアドレスを割り当てる。同様に、ピアクライアント132−1aを、第2の企業体の認証されたユーザーとみなす。ピアクライアント132−1aは、NAT128aの背後にあり、境界ネットワーク120a内の中継サーバー124aを使用して、公的にアクセス可能なトランスポートアドレスを割り当てる。両方の企業体の外部ファイアウォール302、302aは、双方向通信用のUDPポート3478およびTCPポート443が開いている。さらに、どちらの外部ファイアウォールも、出力方向のTCPセッション用のポート範囲50,000〜60,000が開いている。
図3Aに示す図示の実施形態において、2つのピアクライアント132−1、132−1aが、ネットワークトランスポートとしてUDPを使用して、両者の間にメディアフローを確立することを望むと仮定する。ピアクライアント132−1、132−1aは、従来のSDP技法およびSIP技法を使用してピアクライアント132−1、132−1aから送信されるSIPダイアログのSDP内で、それぞれの中継サーバー124、124aから両者が割り当てたパブリックトランスポートアドレスを交換する。例えば、ピアクライアント132−1は、TURNプロトコルを使用して、中継サーバー124からUDPパブリックトランスポートアドレスを割り当てる。矢印304によって示すように、ピアクライアント132−1が、中継サーバー124に割当要求メッセージを送信する。矢印306によって示すように、中継サーバー124は、ピアクライアント132−1へのポート割り当てを伴う割当応答メッセージを送信する。矢印305、307によって示すように、ピアクライアント132−1aは同様のポート割り当て操作を実行して、中継サーバー124aからUDPパブリックトランスポートアドレスを割り当てる。
各ポートが割り当てられると、矢印308によって示すように、ピアクライアント132−1が、送信要求メッセージを使用してピアクライアント132−1aのパブリックトランスポートアドレスにデータを送信する。この送信要求は、中継サーバー124aによって割り当てられるピアクライアント132−1aのパブリックトランスポートアドレスを含む宛先アドレスを伴う、宛先アドレス属性を含む。中継サーバー124は、ピアクライアント132−1の割り当てポートに関連する接続キャッシュをチェックし、接続情報を得られないため、ピアクライアント132−1の割り当てトランスポートアドレスから、中継サーバー124a上のピアクライアント132−1aの割り当てトランスポートアドレスに生データを送信しようと試みる。
外部エッジファイアウォール302は、中継サーバー124の割り当てポート範囲が閉じているように構成されるので、矢印310によって示すように、出力方向のデータはファイアウォール302において削除される。矢印312によって示すように、同時に、中継サーバー124は、チャネルフレームメッセージを含むUDPデータグラムを送信する。チャネルフレームメッセージは、0xFF00のチャネル番号、4の長さ、ピアクライアント132−1のパブリックトランスポートアドレスの送信元ポート、ピアクライアント132−1aのパブリックトランスポートアドレスの宛先ポート、および0バイトのデータペイロードを含む。UDPデータグラムの送信元アドレスは、中継サーバー124のパブリックトランスポートアドレスであり、送信元ポートはTURNポート3478である。UDPデータグラムの宛先アドレスは、中継サーバー124aのパブリックトランスポートアドレスである、送信要求メッセージの宛先アドレス属性の中で指定されるアドレスであり、宛先ポートはTURNポート3478である。
中継サーバー124aは、そのチャネルフレームデータメッセージを受信し、そのメッセージ内の宛先ポートが、自らが所有するポートであることを確認する。中継サーバー124aは、ピアクライアント132−1aが、ピアクライアント132−1の割り当てアドレスからデータを受信することを許可するかどうかを確認するために、アクセス許可がないかそのポートをチェックする。ピアクライアント132−1aは、まだアクセス許可を設定していないので、そのチャネルフレームデータメッセージは削除される。中継サーバー124aは、ピアクライアント132−1のパブリックトランスポートアドレスから、ピアクライアント132−1aのパブリックトランスポートアドレスにおいてチャネルデータが受信されたという接続情報をキャッシュする。
矢印314によって示すように、ピアクライアント132−1aは、送信要求メッセージを使用してピアクライアント132−1のパブリックトランスポートアドレスにデータを送信する。この送信要求は、中継サーバー124によって割り当てられるピアクライアント132−1のパブリックトランスポートアドレスに設定される宛先アドレスを伴う、宛先アドレス属性を含む。
中継サーバー124aは、ピアクライアント132−1aの割り当てポートに関連する接続キャッシュをチェックし、ピアクライアント132−1aが、中継サーバー124a上の割り当てポートと中継サーバー124上の割り当てポートとの間でデータを転送するための、中継サーバー124とのチャネルセッションを有することを知る。矢印316によって示すように、中継サーバー124aは、チャネルフレームメッセージを含むUDPデータグラムを送信する。チャネルフレームメッセージは、0xFF00のチャネル番号、4にデータ属性内のデータの長さを加えた長さ、ピアクライアント132−1aのパブリックトランスポートアドレスの送信元ポート、ピアクライアント132−1のパブリックトランスポートアドレスの宛先ポートと、その後に続く送信要求メッセージのデータ属性の中で指定されるデータペイロードを含む。UDPデータグラムの送信元アドレスは、中継サーバー124aのパブリックトランスポートアドレスであり、送信元ポートはTURNポート3478である。UDPデータグラムの宛先アドレスは、中継サーバー124のパブリックトランスポートアドレスであり、宛先ポートはTURNポート3487である。
中継サーバー124は、そのチャネルフレームデータメッセージを受信し、そのメッセージ内の宛先ポートが、自らが所有するポートであることを確認する。中継サーバー124は、ピアクライアント132−1が、ピアクライアント132−1aの割り当てアドレスからデータを受信することを許可するかどうかを確認するために、アクセス許可がないかそのポートをチェックする。ピアクライアント132−1は、ピアクライアント132−1aへの先の送信要求を行っているので、アクセス許可が設定されており、中継サーバー124はそのチャネルフレームデータメッセージからデータを取り、矢印318によって示すように、そのデータをデータ指示メッセージ内でピアクライアント132−1に送信する。
矢印320によって示すように、ピアクライアント132−1は、送信要求メッセージを使用してピアクライアント132−1aのパブリックトランスポートアドレスにデータを送信する。送信要求メッセージは、中継サーバー124aによって割り当てられるピアクライアント132−1aのパブリックトランスポートアドレスの宛先アドレスを伴う、宛先アドレス属性を含む。
中継サーバー124は、ピアクライアント132−1の割り当てポートに関連する接続キャッシュをチェックし、中継サーバー124上の割り当てポートと中継サーバー124a上の割り当てポートとの間でデータを転送するための、中継サーバー124aとのチャネルセッションを見つける。矢印322によって示すように、中継サーバー124は、チャネルフレームメッセージを含むUDPデータグラムを送信する。チャネルフレームメッセージは、0xFF00のチャネル番号、4にデータ属性内のデータの長さを加えた長さ、ピアクライアント132−1のパブリックトランスポートアドレスの送信元ポート、ピアクライアント132−1aのパブリックトランスポートアドレスの宛先ポートと、その後に続く送信要求メッセージのデータ属性の中で指定されるデータペイロードを含む。UDPデータグラムの送信元アドレスは、中継サーバー124のパブリックトランスポートアドレスであり、送信元ポートはTURNポート3478である。UDPデータグラムの宛先アドレスは、中継サーバー124aのパブリックトランスポートアドレスであり、宛先ポートはTURNポート3487である。
中継サーバー124aは、そのチャネルフレームデータメッセージを受信し、そのメッセージ内の宛先ポートが、自らが所有するポートであることを確認する。中継サーバー124aは、ピアクライアント132−1aが、ピアクライアント132−1の割り当てアドレスからデータを受信することを許可するかどうかを確認するために、アクセス許可がないかそのポートをチェックする。ピアクライアント132−1aは、ピアクライアント132−1への先の送信要求を行っているので、アクセス許可が設定されており、中継サーバー124aは、チャネルフレームデータメッセージからデータを取り、矢印324によって示すように、そのデータをデータ指示メッセージ内でピアクライアント132−1aに送信する。
ピアクライアント132−1aは、今やピアクライアント132−1を、データ転送を効率化するためのアクティブピアにする準備ができている。矢印326によって示すように、ピアクライアント132−1のパブリックトランスポートアドレスを含む宛先アドレス属性とともに、中継サーバー124aにアクティブ宛先設定要求メッセージが送信される。中継サーバー124aがこの要求を受信すると、中継サーバー124aは中継サーバー124とのチャネルセッションをアクティブ宛先として識別し、矢印328によって示すように、アクティブ宛先設定応答メッセージをピアクライアント132−1aに送り返す。
矢印330によって示すように、ピアクライアント132−1aは、今や非TURNフレームデータを中継サーバー124aに送信することができる。中継サーバー124aが非TURNフレームデータをピアクライアント132−1aから受信すると、中継サーバー124aはアクティブ宛先を検索し、中継サーバー124とのチャネルセッションを見つける。矢印332によって示すように、中継サーバー124aは、チャネルフレームメッセージを含むUDPデータグラムを送信する。チャネルフレームメッセージは、0xFF00のチャネル番号、4に非TURNフレームデータの長さを加えた長さ、ピアクライアント132−1aのパブリックトランスポートアドレスの送信元ポート、ピアクライアント132−1のパブリックトランスポートアドレスの宛先ポートと、その後に続くピアクライアント132−1aから受信される非TURNフレームデータを含む。UDPデータグラムの送信元アドレスは、中継サーバー124aのパブリックトランスポートアドレスであり、送信元ポートはTURNポート3478である。UDPデータグラムの宛先アドレスは、中継サーバー124のパブリックトランスポートアドレスであり、宛先ポートはTURNポート3487である。
中継サーバー124は、そのチャネルフレームデータメッセージを受信し、そのメッセージ内の宛先ポートが、自らが所有するポートであることを確認する。中継サーバー124は、ピアクライアント132−1が、ピアクライアント132−1aの割り当てアドレスからデータを受信することを許可するかどうかを確認するために、アクセス許可がないかそのポートをチェックする。ピアクライアント132−1は、ピアクライアント132−1aへの先の送信要求を行っているので、アクセス許可が設定されており、中継サーバー124はそのチャネルフレームデータメッセージからデータを取り、矢印334によって示すように、そのデータをデータ指示メッセージ内でピアクライアント132−1に送信する。
ピアクライアント132−1は、今やピアクライアント132−1aを、データ転送を効率化するためのアクティブピアにする準備ができている。矢印336によって示すように、ピアクライアント132−1aのパブリックトランスポートアドレスを含む宛先アドレス属性とともに、中継サーバー124にアクティブ宛先設定要求メッセージが送信される。中継サーバー124がこの要求を受信すると、中継サーバー124は中継サーバー124aとのチャネルセッションをアクティブ宛先として識別し、矢印338によって示すように、アクティブ宛先設定応答メッセージをピアクライアント132−1に送り返す。
矢印340によって示すように、ピアクライアント132−1は、今や非TURNフレームデータを中継サーバー124に送信することができる。中継サーバー124が非TURNフレームデータをピアクライアント132−1から受信すると、中継サーバー124はアクティブ宛先を検索し、中継サーバー124aとのチャネルセッションを見つける。矢印342によって示すように、中継サーバー124は、チャネルフレームメッセージを含むUDPデータグラムを送信する。チャネルフレームメッセージは、0xFF00のチャネル番号、4に非TURNフレームデータの長さを加えた長さ、ピアクライアント132−1のパブリックトランスポートアドレスの送信元ポート、ピアクライアント132−1aのパブリックトランスポートアドレスの宛先ポートと、その後に続くピアクライアント132−1から受信される非TURNフレームデータを含む。UDPデータグラムの送信元アドレスは、中継サーバー124のパブリックトランスポートアドレスであり、送信元ポートはTURNポート3478である。UDPデータグラムの宛先アドレスは、中継サーバー124aのパブリックトランスポートアドレスであり、宛先ポートはTURNポート3478である。
中継サーバー124aは、そのチャネルフレームデータメッセージを受信し、そのメッセージ内の宛先ポートが、自らが所有するポートであることを確認する。中継サーバー124aは、ピアクライアント132−1aが、ピアクライアント132−1の割り当てアドレスからデータを受信することを許可するかどうかを確認するために、アクセス許可がないかそのポートをチェックする。ピアクライアント132−1aは、ピアクライアント132−1への先の送信要求を行っているので、アクセス許可が設定されており、中継サーバー124aはそのチャネルフレームデータメッセージからデータを取り、矢印344によって示すように、そのデータをデータ指示メッセージ内でピアクライアント132−1aに送信する。中継サーバー124、124aは、この確立したメディアチャネルを使用してピアクライアント132−1、132−1aのためにメディア情報を送信することができる。
図3Bは、メッセージフロー380を示す。メッセージフロー380は、図1に関して記載した通信システム100の様々な要素間のメッセージフローを表すことができる。より詳細には、メッセージフロー380は、通信システム100のメッセージフローおよび動作についてのより詳細な例を提供することができる。
メッセージフロー380は、2つのピアクライアント132−1、132−1aが、ネットワークトランスポートとしてTCPを使用して両者の間にメディアフローを確立することを望むと仮定することを除き、メッセージフロー300に類似した例示的メッセージフローを示す。そのためメッセージフロー380は、TCPメッセージング操作を示すための矢印410、412、および414を含む。例えば、中継サーバー124は、ピアクライアント132−1から送信要求メッセージを受信し、ピアクライアント132−1の割り当てポートに関連する接続キャッシュをチェックし、接続情報を得られない場合がある。したがって、矢印410によって示すように、中継サーバー124は、中継サーバー124a上のピアクライアント132−1aの割り当てパブリックトランスポートアドレスへのTCP SYNメッセージを使用し、TCP接続を作成しようと試みる。中継サーバー124aの外部エッジファイアウォール302aは、TCP制御ポート443を除くすべてのポートについて中継サーバー124aへの入力TCP接続をブロックするように構成されるので、接続試行はファイアウォール302aにおいて失敗する。同時に、中継サーバー124は、送信要求メッセージの宛先アドレス属性の中で指定されるIPアドレスへのTCP接続を作成しようと試みるが、宛先ポートとしてTCP制御ポート443を使用する。矢印412によって示すように、中継サーバー124は、TCP SYNメッセージを中継サーバー124aに送信する。ファイアウォール302aは、TCP制御ポート443上の入力TCP接続について開いているので、この接続は成功し、矢印414によって示すように、中継サーバー124aはTCP SYN−ACKを中継サーバー124に送信する。この接続が完成すると、中継サーバー124は、TCP接続を介してチャネルフレームメッセージを送信する。メッセージフロー操作は、メッセージフロー300に関して説明したように続行する。
図4は、チャネルフレームメッセージ400の一実施形態を示す。特別なチャネルフレームメッセージを使用することにより、中継サーバー124、124a間にチャネルが確立される。一実施形態において、チャネルフレームメッセージは、8バイトのヘッダーと、その後に続く0バイト以上のデータを含む。チャネルフレームメッセージ400は、拡張中継サーバープロトコルで使用するのに適した例示的ヘッダーを提供する。所与の実装形態に関して要求される通りに、チャネルフレームメッセージのために他のデータ構造を使用できることが理解できよう。諸実施形態は、この文脈に限定されることはない。
図4に示す図示の実施形態において、チャネルフレームメッセージ400は、チャネル番号フィールド402、長さフィールド404、送信元ポートフィールド406、宛先ポートフィールド408、および可変長データフィールド410を有する8バイトのヘッダーを含む。チャネル番号フィールド402は、16ビットで構成され、中継サーバー124、124a間でデータを運ぶために使用されるチャネルを識別することができる。長さフィールド404は、16ビットであり、長さフィールド自体の直後に続くフレームのバイト数をカウントする。送信元ポートフィールド406は、16ビットであり、送信側の中継上の割り当てポートを識別する。宛先ポートフィールド408は、16ビットであり、受信側の中継上の割り当てポートを識別する。
より詳細には、チャネル番号フィールド402は、16ビットで構成され、中継サーバー124、124a間でデータを運ぶために使用されるチャネルを識別することができる。チャネル番号は、0xFF00から0xFFFEまでの範囲内とすることができる。このチャネルは、割り当てられたポートのトランスポートを識別する。チャネルを使用することは、中継サーバー124、124a間でチャネルデータを運ぶために、エンドツーエンドセッションの個々のクライアント区間(client legs)に使用されるトランスポートと異なるトランスポートを使用できるようにする。サポートされるチャネル番号の例を、以下の通り表1に示すことができる。
Figure 2011525776
様々な実施形態は、拡張中継サーバープロトコルのためのサービス品質属性をオプションで実装することができる。サービス品質属性は、割り当てられたトランスポートアドレスに関して、クライアントによって要求されるサービスの種類を指定するために使用される。サービス品質属性は、TURNプロトコルにおいて規定される認証された割当要求メッセージの一部として供給される。サービス品質属性がない場合、中継サーバー124、124aは、割り当てられたトランスポートアドレスを介してベストエフォート配信を行う。
サービス品質属性は、属性の種類、属性の長さ、サービスの種類、およびストリームの種類のためのフィールドを含む、チャネルフレームメッセージ400と同様のサイズ(例えば、8バイト)のヘッダー構造を有することができる。属性の種類および属性の長さの例には、0x8055および0x0004がそれぞれ含まれ得る。
サービスの種類フィールドは、16ビットであり、この割り当てられたポートを介して要求されるサービスの種類を運ぶことができる。サポートされる値の例を、以下の通り表2に示す。
Figure 2011525776
ストリームフィールドは、16ビットであり、割り当てられたポートを介して転送されるデータストリームの種類を指定することができる。サポートされる値の例を、以下の通り表3に示す。
Figure 2011525776
図5は、様々な実施形態を実施するのに適したコンピューティングアーキテクチャ510のより詳細なブロック図をさらに示す。基本構成では、コンピューティングアーキテクチャ510は、典型的には少なくとも1つの処理ユニット532およびメモリ534を含む。メモリ534は、揮発性メモリおよび不揮発性メモリの両方を含む、データを記憶できる任意の機械可読媒体またはコンピューター可読媒体を使用して実装することができる。例えば、メモリ534には、ROM(読み取り専用メモリ)、RAM(ランダムアクセスメモリ)、DRAM(ダイナミックRAM)、DDRAM(ダブルデータレートDRAM)、SDRAM(同期DRAM)、SRAM(静的RAM)、PROM(プログラム可能ROM)、EPROM(消去可能プログラム可能ROM)、EEPROM(電気的消去可能プログラム可能ROM)、フラッシュメモリ、強誘電性ポリマメモリなどのポリマメモリ、オーボニックメモリ、相変化メモリや強誘電性メモリ、SONOS(silicon−oxide−nitride−oxide−silicon)メモリ、磁気カードや光学式カード、または情報を記憶するのに適した他の任意の種類の媒体が含まれ得る。図5に示すように、メモリ534は、1つまたは複数のソフトウェアプログラム536−1〜tなどの様々なソフトウェアプログラム、および付随するデータを記憶することができる。実装形態にもよるが、ソフトウェアプログラム536−1〜tの例には、システムプログラム536−1(例えば、オペレーティングシステム)、アプリケーションプログラム536−2(例えば、ウェブブラウザ)、拡張中継制御モジュール160等が含まれ得る。
コンピューティングアーキテクチャ510は、その基本構成以上に、追加の特徴および/または機能を有することもできる。例えば、コンピューティングアーキテクチャ510は、前に記載した様々な種類の機械可読媒体またはコンピューター可読媒体が同様に含まれ得る、リムーバブルストレージ538および固定ストレージ540を含むことができる。コンピューティングアーキテクチャ510は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイス、測定デバイス、センサーなど、1つまたは複数の入力デバイス544も含むことができる。コンピューティングアーキテクチャ510は、ディスプレイ、スピーカー、プリンターなど、1つまたは複数の出力デバイス542も含むことができる。
コンピューティングアーキテクチャ510は、コンピューティングアーキテクチャ510が他のデバイスと通信することを可能にする、1つまたは複数の通信接続546をさらに含むことができる。通信接続546は、例えば、通信コンポーネント116−1〜vの通信インターフェイスに相当することができる。通信接続546には、1つまたは複数の通信インターフェイス、ネットワークインターフェイス、NIC(ネットワークインターフェイスカード)、ラジオ、無線送受信機(トランシーバ)、有線および/または無線通信媒体、物理コネクタなど、様々な種類の標準通信要素が含まれ得る。通信媒体は、典型的には搬送波や他の搬送機構などの変調データ信号により、コンピューター可読命令、データ構造、プログラムモジュールまたは他のデータを具体化し、任意の情報配信媒体を含む。用語「変調データ信号」は、信号の中の情報をエンコードするような方法で、その特性のうちの1つまたは複数が設定されもしくは変更された信号を意味する。限定ではなく例として、通信媒体には有線通信媒体および無線通信媒体が含まれる。有線通信媒体の例には、ワイヤ、ケーブル、金属導線、プリント回路板(PCB)、バックプレーン、スイッチ構成、半導体物質、ツイストペアワイヤ、同軸ケーブル、光ファイバー、伝搬信号等が含まれ得る。無線通信媒体の例には、アコースティック、RF(無線周波)スペクトル、赤外線や他の無線媒体が含まれ得る。本明細書で使用するとき、用語、機械可読媒体およびコンピューター可読媒体は、記憶媒体および通信媒体の両方を含むことを意図する。
図6は、様々な実施形態のためのロジックを記憶するのに適した製造品600の図を示す。図示のように、製造品600は、ロジック604を記憶するための記憶媒体602を含むことができる。記憶媒体602の例には、揮発性メモリや不揮発性メモリ、リムーバブルメモリや固定メモリ、消去可能メモリや消去不可メモリ、書込み可能メモリや再書込み可能メモリなどを含む、電子データを記憶できる1つまたは複数の種類のコンピューター可読記憶媒体が含まれ得る。ロジック604の例には、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータープログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、方法、プロシージャ、ソフトウェアインターフェイス、API(アプリケーションプログラムインターフェイス)、命令セット、コンピューティングコード、コンピューターコード、コードセグメント、コンピューターコードセグメント、語、値、記号、またはこれらの任意の組合せなど、様々なソフトウェア要素が含まれ得る。
例えば、一実施形態において、製造品600および/またはコンピューター可読記憶媒体602は、コンピューターによって実行されるとき、記載した実施形態による方法および/または操作をそのコンピューターに実行させる、実行可能なコンピュータープログラム命令を含むロジック604を記憶することができる。この実行可能なコンピュータープログラム命令は、ソースコード、コンパイル済コード、解釈済コード、実行可能コード、静的コード、ダイナミックコードなど、任意の適切な種類のコードを含むことができる。この実行可能なコンピュータープログラム命令は、特定の機能を実行するようにコンピューターに命令するための、定義済コンピューター言語、方法、または構文に従って実装することができる。この命令は、C、C++、Java(登録商標)、BASIC、Perl、Matlab、Pascal、Visual BASIC、アセンブリ言語など、任意の適切な高水準プログラミング言語、低水準プログラミング言語、オブジェクト指向プログラミング言語、ビジュアルプログラミング言語、コンパイル済および/または解釈済プログラミング言語を使用して実装することができる。
様々な実施形態を、ハードウェア要素、ソフトウェア要素、またはその両方の組合せを使用して実施することができる。ハードウェア要素の例には、論理デバイスに関して前に挙げた例のいずれかが含まれてよく、マイクロプロセッサ、回路、回路要素(例えば、トランジスタ、抵抗器、コンデンサ、誘導子等)、集積回路、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等がさらに含まれる。ソフトウェア要素の例には、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータープログラム、アプリケーションプログラム、システムプログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、方法、プロシージャ、ソフトウェアインターフェイス、API(アプリケーションプログラムインターフェイス)、命令セット、コンピューティングコード、コンピューターコード、コードセグメント、コンピューターコードセグメント、語、値、記号、またはこれらの任意の組合せが含まれ得る。実施形態をハードウェア要素を使用しかつ/またはソフトウェア要素を使用して実施するかどうかを決定することは、所与の実装形態に望まれる、所望の演算速度、電源レベル、耐熱性、処理サイクル予算、入力データ伝送速度、出力データ伝送速度、メモリリソース、データバス速度、および他の設計制約や性能制約など、いくつかの要因によって異なり得る。
一部の実施形態は、表現「結合する」および「接続する」をこれらの派生語とともに使用して記載することがある。これらの用語は、必ずしも互いの同義語として意図するものではない。例えば、ある実施形態は、用語「接続する」および/または「結合する」を使用して記載し、2つ以上の要素が互いに物理的にまたは電気的に直接接触することを示すことができる。ただし、用語「結合する」は、2つ以上の要素が互いに直接接触しないが、それでもなお互いに協働しまたは相互作用することを意味することもできる。
本開示の「要約」は、読み手が技術的開示の性質を素早く確認することを可能にする要約を要求する、37C.F.R. Section 1.72(b)に準拠するために提供することを強調しておく。その「要約」は、特許請求の範囲に記載の範囲または意味を解釈しもしくは限定するために使用されないという理解で提出されている。さらに、上記の「発明を実施する形態」では、本開示を簡潔にするために、様々な特徴を単一の実施形態へとまとめていることが理解できよう。この開示方法は、特許請求する諸実施形態が、各請求項に明示的に列挙されるよりも多くの特徴を必要とするという意図を反映するものとして解釈すべきでない。むしろ、添付の特許請求の範囲が反映するように、本発明の主題は、開示した単一の実施形態のすべての特徴にあるわけでは決してない。したがって、添付の特許請求の範囲は、これにより「発明を実施する形態」に組み込まれ、各請求項は別個の実施形態として単独で有効である。添付の特許請求の範囲では、用語「含む(including)」および「ここで(in which)」は、各々の用語「備える(comprising)」および「そこで(wherein)」それぞれについて等価の平易な英語として使用する。さらに、用語「第1の」、「第2の」、「第3の」等は、単にラベルとして使用し、それらラベルの対象に数値的要件を課すことを意図するものではない。
本主題は、構造的特徴および/または方法論的行為に固有の言語で説明してきたが、添付の特許請求の範囲に定義する本主題は、上記の特定の特徴または行為に必ずしも限定されないことを理解すべきである。むしろ、上記の特定の特徴および行為は、特許請求の範囲を実施する形式の例として開示した。

Claims (15)

  1. 第1のプライベートネットワーク(130)上の第1のプライベートクライアント(132−1)からの第1の送信要求を、第1の中継サーバー(124)によって受信するステップ(202)であって、第2のプライベートネットワーク(130a)上の第2のプライベートクライアント(132−1a)にメディア情報を送信するための前記第1の送信要求は、第2の中継サーバー(124a)を使用する、ステップと、
    前記第1の中継サーバーのポート範囲属性がオフに設定されていることを判定するステップ(204)と、
    前記第1の中継サーバーの第1の制御ポートおよび前記第2の中継サーバーの第2の制御ポートを使用し、前記第1の中継サーバーおよび前記第2の中継サーバーを介し、前記第1のプライベートクライアントと前記第2のプライベートクライアントとの間にメディアチャネルを確立するステップ(206)と
    を含むことを特徴とする方法。
  2. 前記第1の中継サーバーにより、第1のパブリックトランスポートアドレスおよび第1の送信元ポートを、前記第1のプライベートクライアントに割り当てるステップを含むことを特徴とする請求項1に記載の方法。
  3. 前記第1のプライベートクライアントから、前記第2のプライベートクライアントの第2のパブリックトランスポートアドレスおよび第2の送信元ポートを伴う宛先アドレス属性を有する送信要求を、前記第1の中継サーバーによって受信するステップを含むことを特徴とする請求項2に記載の方法。
  4. 前記第1の中継サーバーと前記第2の中継サーバーとの間のチャネルセッションのための、アクセス許可を設定するステップを含むことを特徴とする請求項3に記載の方法。
  5. 前記第1のパブリックトランスポートアドレスおよび前記第1の中継サーバーの前記第1の制御ポートとしての送信元アドレス、ならびに前記第2のパブリックトランスポートアドレスおよび前記第2の中継サーバーの第2の制御ポートとしての宛先アドレス、を有する第1のデータグラムを送信するステップを含むことを特徴とする請求項4に記載の方法。
  6. チャネル番号(402)、長さ(404)、前記第1の送信元ポートとしての送信元ポート(406)、および前記第2の送信元ポートとしての宛先ポート(408)を有する、第1のチャネルフレームメッセージ(400)を伴う前記第1のデータグラムを送信するステップを含むことを特徴とする請求項5に記載の方法。
  7. 前記第2のパブリックトランスポートアドレスおよび前記第2の中継サーバーの前記第2の制御ポートとしての送信元アドレス、ならびに前記第1のパブリックトランスポートアドレスおよび前記第1の中継サーバーの前記第1の制御ポートとしての宛先アドレス、を有する第2のデータグラムを受信するステップを含むことを特徴とする請求項6に記載の方法。
  8. 前記チャネル番号、長さ、前記第2の送信元ポートとしての送信元ポート、前記第1の送信元ポートとしての宛先ポート、およびメディア情報としてのデータペイロードを有する、第2のチャネルフレームメッセージを伴う第2のデータグラムを受信するステップを含むことを特徴とする請求項7に記載の方法。
  9. 前記第2のチャネルフレームメッセージが、前記第1の中継サーバーと前記第2の中継サーバーとの間の、前記チャネルセッションのためのアクセス許可を有するかどうかを判定するステップを含むことを特徴とする請求項8に記載の方法。
  10. 前記第2のチャネルフレームメッセージの前記データペイロードからの前記メディア情報を有するデータ指示メッセージを、前記第1のプライベートクライアントに送信するステップを含むことを特徴とする請求項9に記載の方法。
  11. 第1の中継サーバーおよび第2の中継サーバー(124a)を介して通信するプライベートクライアント(132)間の通信を管理するように機能する拡張中継制御モジュール(160)を有する第1の中継サーバー(124)であって、前記拡張中継制御モジュールは、前記第1の中継サーバーまたは前記第2の中継サーバーのうちの少なくとも一方のポート範囲属性がオフにされている場合、前記第1の中継サーバーの制御ポートと前記第2の中継サーバーの制御ポートとの間にメディアチャネルを確立する、第1の中継サーバー(124)
    を備えることを特徴とするシステム。
  12. ユーザーデータグラムプロトコルまたは伝送制御プロトコルを含むネットワークトランスポートを使用し、前記メディアチャネルを介してメディア情報を伝達するように機能する前記拡張中継制御モジュールを備えることを特徴とする請求項11に記載のシステム。
  13. 第1のネットワークアドレス変換器(128)に通信可能に結合される第1のプライベートクライアント(132−1)を含み、前記第1のネットワークアドレス変換器は前記第1の中継サーバーに通信可能に結合され、前記拡張中継制御モジュールは、第1のエンドポイントとしての前記第1のプライベートクライアントと前記メディアチャネルを確立し、かつ前記第1のネットワークアドレス変換器および前記第1の中継サーバーをトラバースするための前記メディアチャネルを確立するように機能することを特徴とする請求項11または請求項12に記載のシステム。
  14. 第2のネットワークアドレス変換器(128a)に通信可能に結合される第2のプライベートクライアント(132−1a)を含み、前記第2のネットワークアドレス変換器は前記第2の中継サーバーに通信可能に結合され、前記拡張中継制御モジュールは、第2のエンドポイントとしての前記第2のプライベートクライアントと前記メディアチャネルを確立し、かつ前記第2のネットワークアドレス変換器および前記第2の中継サーバーをトラバースするための前記メディアチャネルを確立するように機能することを特徴とする請求項11乃至13のいずれかに記載のシステム。
  15. 実行されるとき、請求項1乃至10のいずれか一項に記載の前記方法をシステムが実施できるようにする命令を含む、機械またはコンピューター可読記憶媒体を含むことを特徴とする製品。
JP2011516370A 2008-06-24 2009-05-15 中継サーバー間の通信を管理するための技法 Pending JP2011525776A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/144,672 US20090319674A1 (en) 2008-06-24 2008-06-24 Techniques to manage communications between relay servers
US12/144,672 2008-06-24
PCT/US2009/044137 WO2010008669A2 (en) 2008-06-24 2009-05-15 Techniques to manage communications between relay servers

Publications (1)

Publication Number Publication Date
JP2011525776A true JP2011525776A (ja) 2011-09-22

Family

ID=41432414

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011516370A Pending JP2011525776A (ja) 2008-06-24 2009-05-15 中継サーバー間の通信を管理するための技法

Country Status (11)

Country Link
US (1) US20090319674A1 (ja)
EP (1) EP2301210A4 (ja)
JP (1) JP2011525776A (ja)
KR (1) KR20110031428A (ja)
CN (1) CN102090032A (ja)
AU (1) AU2009271515A1 (ja)
BR (1) BRPI0913327A2 (ja)
CA (1) CA2724751A1 (ja)
RU (1) RU2010152823A (ja)
TW (1) TW201004246A (ja)
WO (1) WO2010008669A2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015507901A (ja) * 2012-01-17 2015-03-12 イパライヴ アクティエボラグ グローバルなリアルタイム電気通信のための装置、ソフトウェア・モジュール、システムまたはビジネス・モデル
JP2015153076A (ja) * 2014-02-13 2015-08-24 日本電信電話株式会社 通信装置、方法及びプログラム
JP2017077028A (ja) * 2015-10-14 2017-04-20 エヌ・ティ・ティ・コミュニケーションズ株式会社 通信システム、アドレス通知装置、通信制御装置、通信方法、及びプログラム
JP7169206B2 (ja) 2018-03-30 2022-11-10 エヌ・ティ・ティ・コミュニケーションズ株式会社 制御システム、制御方法、及びプログラム

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7953010B2 (en) * 2008-07-30 2011-05-31 Avaya Inc. System and method of controlling in-bound path selection based on historical and continuous path quality monitoring, assessment and predictions
WO2010026727A1 (ja) * 2008-09-05 2010-03-11 村田機械株式会社 中継サーバ、中継通信システム、および通信装置
KR101279001B1 (ko) * 2009-05-15 2013-07-30 무라다기카이가부시끼가이샤 중계 통신 시스템 및 제 1 중계 서버
TWI415441B (zh) * 2010-07-26 2013-11-11 Quanta Comp Inc 語音/影像通訊系統、終端及其方法
CN101977178A (zh) * 2010-08-09 2011-02-16 中兴通讯股份有限公司 基于中继的媒体通道建立方法及系统
TWI404387B (zh) * 2010-08-13 2013-08-01 Chunghwa Telecom Co Ltd 在網路位址轉換環境下使用對話啟動協定的通訊方法與系統
TWI404386B (zh) * 2010-08-13 2013-08-01 Chunghwa Telecom Co Ltd 使用對話啟動協定之多重註冊的通訊方法與系統
KR101263783B1 (ko) * 2010-12-27 2013-05-13 삼성에스디에스 주식회사 릴레이 서버를 이용한 데이터 전송 시스템 및 방법
US8789138B2 (en) 2010-12-27 2014-07-22 Microsoft Corporation Application execution in a restricted application execution environment
KR20120083827A (ko) * 2011-01-18 2012-07-26 삼성전자주식회사 홈 네트워크를 이용한 통화 방법 및 장치
US8776207B2 (en) 2011-02-16 2014-07-08 Fortinet, Inc. Load balancing in a network with session information
US9251360B2 (en) 2012-04-27 2016-02-02 Intralinks, Inc. Computerized method and system for managing secure mobile device content viewing in a networked secure collaborative exchange environment
US9253176B2 (en) 2012-04-27 2016-02-02 Intralinks, Inc. Computerized method and system for managing secure content sharing in a networked secure collaborative exchange environment
EP2842070B1 (en) 2012-04-27 2020-08-05 Intralinks, Inc. Computerized method and system for managing networked secure collaborative exchange
US9553860B2 (en) 2012-04-27 2017-01-24 Intralinks, Inc. Email effectivity facility in a networked secure collaborative exchange environment
US9319439B2 (en) * 2012-05-10 2016-04-19 Tangome, Inc. Secured wireless session initiate framework
US20130308628A1 (en) * 2012-05-15 2013-11-21 Viber Media, Inc. Nat traversal for voip
KR102131647B1 (ko) * 2013-01-29 2020-07-08 삼성전자주식회사 영상통화기기, 영상통화중계기기 및 그들의 제어방법
EP2782312A4 (en) * 2013-02-08 2015-04-08 Huawei Tech Co Ltd METHOD, DEVICE AND SYSTEM FOR REALIZING PRIVATE NETWORK TRAVERSATION
CN103369292B (zh) * 2013-07-03 2016-09-14 华为技术有限公司 一种呼叫处理方法及网关
US9514327B2 (en) 2013-11-14 2016-12-06 Intralinks, Inc. Litigation support in cloud-hosted file sharing and collaboration
CA2899996C (en) * 2013-12-11 2020-04-14 Intralinks, Inc. Customizable secure data exchange environment
US9613190B2 (en) 2014-04-23 2017-04-04 Intralinks, Inc. Systems and methods of secure data exchange
DE102014112466A1 (de) * 2014-06-03 2015-12-03 Fujitsu Technology Solutions Intellectual Property Gmbh Verfahren zur Kommunikation zwischen abgesicherten Computersystemen, Computernetz-Infrastruktur sowie Computerprogramm-Produkt
US20160380966A1 (en) * 2015-06-25 2016-12-29 Microsoft Technology Licensing, Llc Media Relay Server
US10237236B2 (en) * 2015-06-25 2019-03-19 Microsoft Technology Licensing, Llc Media Session
US10033702B2 (en) 2015-08-05 2018-07-24 Intralinks, Inc. Systems and methods of secure data exchange
US10084754B2 (en) * 2015-12-11 2018-09-25 Microsoft Technology Licensing, Llc Virtual private network aggregation
JP2017191508A (ja) * 2016-04-14 2017-10-19 富士通株式会社 情報処理装置および接続情報設定プログラム
CN106790161A (zh) * 2016-12-29 2017-05-31 武汉华星光电技术有限公司 一种保障服务器安全并减轻防火墙压力的通信系统和方法
US20180234506A1 (en) * 2017-02-14 2018-08-16 Gu Zhang System and methods for establishing virtual connections between applications in different ip networks
US20190141009A1 (en) * 2017-11-07 2019-05-09 General Electric Company Session moderator for turn-pattern tcp-packet relay with websocket instantiation
CN110784489B (zh) * 2019-11-12 2020-07-10 北京风信科技有限公司 安全通信系统及其方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007096909A (ja) * 2005-09-29 2007-04-12 Fujitsu Ltd ノード間接続方法及び装置
JP2008085470A (ja) * 2006-09-26 2008-04-10 Fujitsu Ltd Ipアプリケーションサービス提供システム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704785B1 (en) * 1997-03-17 2004-03-09 Vitria Technology, Inc. Event driven communication system
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US8484120B2 (en) * 2001-05-25 2013-07-09 Thomas W. Krause Method and apparatus for generating and distributing creative works
US20030048806A1 (en) * 2001-09-13 2003-03-13 Jacobus Haartsen Method for address allocation in ad-hoc networks
US7227864B2 (en) * 2001-12-17 2007-06-05 Microsoft Corporation Methods and systems for establishing communications through firewalls and network address translators
CN100399768C (zh) * 2003-12-24 2008-07-02 华为技术有限公司 实现网络地址转换穿越的方法、系统
US20050201359A1 (en) * 2004-03-13 2005-09-15 Intrado Inc. Dynamically establishing media channels between resources of an emergency services network and conforming emergency systems
US6980556B2 (en) * 2004-04-01 2005-12-27 Nokia Corporation Method for splitting proxy function with a client terminal, a server and a terminal using the method
US7620033B2 (en) * 2004-05-21 2009-11-17 Alcatel-Lucent Usa Inc. Method for optimal path selection in traversal of packets through network address translators
JP4527447B2 (ja) * 2004-06-10 2010-08-18 株式会社日立製作所 ネットワーク中継装置及びその制御方法
US8571011B2 (en) * 2004-08-13 2013-10-29 Verizon Business Global Llc Method and system for providing voice over IP managed services utilizing a centralized data store
US7543064B2 (en) * 2004-09-30 2009-06-02 Logitech Europe S.A. Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host
JP4480535B2 (ja) * 2004-09-30 2010-06-16 株式会社アドイン研究所 トンネル装置、中継装置、端末装置、呼制御システム、ip電話システム、会議装置、これらの制御方法及びプログラム
US20060176884A1 (en) * 2005-02-04 2006-08-10 Sytex, Inc. Sytems, Methods And Devices For Remotely Administering A Target Device
US7912046B2 (en) * 2005-02-11 2011-03-22 Microsoft Corporation Automated NAT traversal for peer-to-peer networks
WO2006090465A1 (ja) * 2005-02-24 2006-08-31 Fujitsu Limited 接続支援装置およびゲートウェイ装置
US7738468B2 (en) * 2005-03-22 2010-06-15 Logitech Europe S.A. Method and apparatus for packet traversal of a network address translation device
US7920549B2 (en) * 2005-07-20 2011-04-05 Verizon Business Global Llc Method and system for providing secure media gateways to support interdomain traversal
CN100477636C (zh) * 2005-09-29 2009-04-08 腾讯科技(深圳)有限公司 客户端主应用部件与目标服务器间进行通信的装置和方法
US7688820B2 (en) * 2005-10-03 2010-03-30 Divitas Networks, Inc. Classification for media stream packets in a media gateway
KR100765325B1 (ko) * 2006-02-13 2007-10-09 삼성전자주식회사 Stun을 이용한 대칭형 네트워크 주소 변환 시스템 및그 방법
JP4222397B2 (ja) * 2006-09-12 2009-02-12 村田機械株式会社 中継サーバ

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007096909A (ja) * 2005-09-29 2007-04-12 Fujitsu Ltd ノード間接続方法及び装置
JP2008085470A (ja) * 2006-09-26 2008-04-10 Fujitsu Ltd Ipアプリケーションサービス提供システム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015507901A (ja) * 2012-01-17 2015-03-12 イパライヴ アクティエボラグ グローバルなリアルタイム電気通信のための装置、ソフトウェア・モジュール、システムまたはビジネス・モデル
US9807059B2 (en) 2012-01-17 2017-10-31 Ipalive Ab. Device, software module, system or business method for global real-time telecommunication
JP2015153076A (ja) * 2014-02-13 2015-08-24 日本電信電話株式会社 通信装置、方法及びプログラム
JP2017077028A (ja) * 2015-10-14 2017-04-20 エヌ・ティ・ティ・コミュニケーションズ株式会社 通信システム、アドレス通知装置、通信制御装置、通信方法、及びプログラム
CN108141409A (zh) * 2015-10-14 2018-06-08 Ntt通信公司 通信系统、地址通知装置、通信控制装置、终端、通信方法以及程序
US11388138B2 (en) 2015-10-14 2022-07-12 Ntt Communications Corporation Communication system, address notification apparatus, communication control apparatus, terminal, communication method, and program
JP7169206B2 (ja) 2018-03-30 2022-11-10 エヌ・ティ・ティ・コミュニケーションズ株式会社 制御システム、制御方法、及びプログラム

Also Published As

Publication number Publication date
CN102090032A (zh) 2011-06-08
WO2010008669A8 (en) 2011-02-17
AU2009271515A8 (en) 2011-11-03
CA2724751A1 (en) 2010-01-21
US20090319674A1 (en) 2009-12-24
BRPI0913327A2 (pt) 2019-09-24
RU2010152823A (ru) 2012-06-27
WO2010008669A2 (en) 2010-01-21
WO2010008669A3 (en) 2010-03-04
EP2301210A2 (en) 2011-03-30
TW201004246A (en) 2010-01-16
KR20110031428A (ko) 2011-03-28
AU2009271515A1 (en) 2010-01-21
EP2301210A4 (en) 2011-08-24

Similar Documents

Publication Publication Date Title
JP2011525776A (ja) 中継サーバー間の通信を管理するための技法
US8374188B2 (en) Techniques to manage a relay server and a network address translator
US10693919B2 (en) Distributed connectivity policy enforcement with ICE
US11019117B2 (en) Conferencing server
US9843505B2 (en) Differentiated quality of service using tunnels with security as a service
US11546444B2 (en) Traffic forwarding and disambiguation by using local proxies and addresses
US6801528B2 (en) System and method for dynamic simultaneous connection to multiple service providers
US8265069B2 (en) System, terminal, method, and computer program product for establishing a transport-level connection with a server located behind a network address translator and/or firewall
US20090094684A1 (en) Relay server authentication service
US20130297733A1 (en) Middlebox Control
JP5216018B2 (ja) 移動体電話機用ストリーミング・メディア・サービス
JP5518202B2 (ja) エンドツーエンドコールの実現方法、エンドツーエンドコール端末及びシステム
US20130117460A1 (en) Data management methods for use in a network system and network systems using the same
JP2013506358A5 (ja)
US8873569B2 (en) User centric virtual network and method of establishing the same
JP7264960B2 (ja) IPv6専用SIPクライアントとIPv4専用サーバまたはクライアントとの間の通信を強化する方法およびシステム
US20120047271A1 (en) Network address translation device and method of passing data packets through the network address translation device
EP3044929B1 (en) A mobile-device based proxy for browser-originated procedures
US8572283B2 (en) Selectively applying network address port translation to data traffic through a gateway in a communications network
CN117460085A (zh) 用于住宅网关进行网络接入的单独pfcp会话模型
Itoh et al. A study on the applicability of MIDCOM method and a solution to its topology discovery problem
Wing PCP Working Group M. Boucadair Internet-Draft France Telecom Intended status: Standards Track T. Reddy Expires: November 29, 2013 P. Patil
Boucadair et al. PCP Working Group G. Chen Internet-Draft China Mobile Intended status: Standards Track T. Reddy Expires: March 22, 2014 P. Patil Cisco

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121204

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130702