JP6321792B2 - 対称型natのためのピアツーピア通信 - Google Patents

対称型natのためのピアツーピア通信 Download PDF

Info

Publication number
JP6321792B2
JP6321792B2 JP2016525029A JP2016525029A JP6321792B2 JP 6321792 B2 JP6321792 B2 JP 6321792B2 JP 2016525029 A JP2016525029 A JP 2016525029A JP 2016525029 A JP2016525029 A JP 2016525029A JP 6321792 B2 JP6321792 B2 JP 6321792B2
Authority
JP
Japan
Prior art keywords
peer
turn
port
nat
server
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.)
Active
Application number
JP2016525029A
Other languages
English (en)
Other versions
JP2016541153A (ja
JP2016541153A5 (ja
Inventor
フィル・ティエン・グエン
リン・ゾウ
パドマプリヤ・ナラヤナン
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2016541153A publication Critical patent/JP2016541153A/ja
Publication of JP2016541153A5 publication Critical patent/JP2016541153A5/ja
Application granted granted Critical
Publication of JP6321792B2 publication Critical patent/JP6321792B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • H04L67/141Setup of application sessions
    • 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/2589NAT traversal over a relay server, e.g. traversal using relay for network address translation [TURN]
    • 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
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

米国特許法第119条に基づく優先権の主張
本特許出願は、本出願の譲受人に譲渡され、その全体が参照により本明細書に明確に組み込まれる、2013年10月23日に出願された「PEER-TO-PEER COMMUNICATION FOR SYMMETRIC NAT」と題する米国仮出願第61/894,845号の利益を主張する。本特許出願はまた、係属中であり、本出願の譲受人に譲渡され、その全体が参照により本明細書に明確に組み込まれる、2013年10月23日に出願された「PEER-TO-PEER COMMUNICATION FOR SYMMETRIC NAT」と題する米国仮出願第61/894,852号の利益を主張する。
開示する実施形態は、ピアツーピア通信を対象とする。より詳細には、例示的な態様は、対話型接続性確立(ICE, interactive connectivity establishment)プロトコルに基づく2つのピアの間のピアツーピア通信に関し、2つのピアは、ワイヤレス分離が有効にされ、かつ、ヘアピニング(hair-pinning)をサポートしない対称型ネットワークアドレス変換(NAT)の背後にある。
インターネットは、標準インターネットプロトコルスイート(たとえば、伝送制御プロトコル(TCP)およびインターネットプロトコル(IP))を使用して互いに通信する、相互接続されたコンピュータおよびコンピュータネットワークのグローバルシステムである。インターネットプロトコルアドレス(IPアドレス)は、通信のためにインターネットプロトコルを使用するコンピュータネットワークに参加する各デバイス(たとえば、コンピュータ、プリンタ)に割り当てられる、数値のラベルである。インターネット番号割当て機関(IANA)は、IPアドレス空間の割振りを世界的に管理し、インターネットサービスプロバイダ(ISP)および他のエンティティなどの局所的なインターネットレジストリにIPアドレスのブロックを割り振ることを、5つの地域インターネットレジストリ(RIR)に委任している。従来、IPアドレスは、32ビットの数値として定義されており、32ビットのIPアドレスを使用する従来のシステムは、IPバージョン4(IPv4)プロトコルに従うことが知られている。しかしながら、インターネットに接続されるデバイスの数のこの数年間における爆発的な増加に起因して、32ビットのIPアドレス空間は使い果たされており、この問題に立ち向かうためにいくつかのメカニズムが準備されている。
インターネットに接続される各デバイスに一意のIPアドレスを割り当てるのでなく、2つ以上のコンピュータまたはデバイスからなるプライベートネットワークが発達してきており、ここで、プライベートネットワークのパブリックな面は、パブリックIPアドレスすなわちグローバルIPアドレスが割り当てられてよく、一方、プライベートネットワーク内のデバイスは、グローバルな意味で一意に割り当てられるIPアドレスを有する必要がない。言い換えれば、プライベートネットワークは、ネットワーク内のデバイスに対する任意の適したアドレス指定メカニズムを管理することができ、デバイスに対するプライベートアドレスは、インターネットに直接経路指定されない。たとえば、プライベートネットワーク内のデバイスは、グローバルIPアドレスレジストリまたはISPと調整される必要がないプライベートアドレスを有し得るが、これらのデバイスは、プライベートネットワーク内でTCP/IPプロトコルを通じて互いに通信することができる。しかしながら、プライベートネットワーク内のデバイスは、しばしば、セキュリティ問題のために保護される必要があり得、これらのデバイスは、インターネットに直接接続するのを妨げられることがある。プライベートネットワーク内のプライベートアドレスは、インターネットを通してグローバルに可視化されない。
ネットワークアドレス変換器(NAT)は、プライベートネットワークとインターネットとの間のインターフェースにおいて使用される、よく知られているデバイスまたはメカニズムである。NATは、プライベートネットワーク内からインターネットへの接続を開始するために使用され得るが、NATは、プライベートネットワークアドレスをパブリックIPアドレスの背後に隠す。たとえば、NATは、プライベートネットワーク/グローバルインターネットの境界を越えるデータに関連付けられたアドレスの修正を実行し、IPアドレスをプライベートIPアドレスからパブリックIPアドレスへマッピングし、逆も同様である。このことは、プライベートIPアドレスを覆いまたは隠しながら、プライベートネットワーク内のデバイスとインターネット内のデバイスとの間の通信を可能にする。
実際には、デバイスは、通常、ユーザデータグラムプロトコル(UDP)を使用してインターネットと通信する。UDPは、ハンドシェーキングの対話を用いない簡単な伝送モデルを使用する。デバイスまたはコンピュータのアプリケーションは、特別な伝送チャネルまたはデータ経路を確立するための事前の通信を必要とすることなく、「データグラム」すなわちパケットを、プライベートIPネットワーク上またはパブリックIPネットワーク上の他のホストへ送ることができる。プライベートネットワーク内のデバイスからインターネットへ送られるアウトバウンドパケットに対して、NATは一時的なポート番号を割り振り、一時的なポート番号は、それに対応して、アウトバウンドパケットを送信するデバイスにマッピングされる。NATは、フローの持続時間とも呼ばれる所定の時間の期間にわたって、マッピングを保持する。インバウンドパケットがインターネットから受信されるとき、インバウンドパケットは、プライベートネットワーク内の宛先デバイスを識別するために割り振られたポート番号を含む。NATは、インバウンドパケットに含まれるポート番号に対応する、プライベートネットワークの中のデバイスへインバウンドパケットを転送するために、マッピングを使用する。このようにして、プライベートネットワーク内のデバイスのプライベートアドレスは、NATによってインターネットから隠される。
プライベートネットワークの外側のインターネットサーバとのそのような通信を開始することになるのはクライアントまたはホスト(たとえば、プライベートネットワーク内のデバイス)であり、NATを通じた接続が長い時間にわたって維持される必要がないはずなので、NATは、ワールドワイドウェブを閲覧することや電子メールにアクセスすることなどの一般のクライアントサーバ通信に関する効果的な解決策を提供することができる。ただし、ピアツーピア通信とも呼ばれるプライベートネットワーク内の2つのクライアントまたはホストの間の通信(たとえば、ボイスオーバーIPすなわち「VoIP」通信)に対して、従来のNAT実装はいくつかの問題を生じることになる。
VoIPなどのピアツーピア通信では、オーディオおよび/またはビデオのデータまたはパケットを、2つのピアすなわちクライアントの間で直接流すことが目標である。ピアツーピア通信におけるそのような直接のフローは、中継エージェントの必要性を排除することになり、中継エージェントは、コストを追加し、帯域幅を消費し、レイテンシを持ち込むので、そのことは望ましい。VoIP通信を実行するために、各クライアントは、それぞれのアドレスをVoIPシグナリングの経路を介して送ることによって、そのアドレスを他のクライアントに通知する必要があることになる。NATが存在するとき、第1のクライアントは、第2のクライアントとのVoIP通信のために、そのプライベートアドレスを第2のクライアントへ送ろうと試み、NATは、第1のクライアントのプライベートアドレスを含むアウトバウンドパケットに対して、第1のポート番号を第1のクライアントに割り当てることになる。第2のクライアントがパケットを受信し、第1のクライアントのプライベートアドレスを取得し、データ(オーディオ/ビデオ)を第1のクライアントのプライベートアドレスへ送り返そうと試みるとき、NATは、第1のクライアントへのインバウンドパケットに対して、第1のポート番号のみを認識し、第1のクライアントのプライベートアドレスを認識しないことになるので、これは成功しないことになる。
いくつかのNATは、いわゆるヘアピン機能をサポートすることができ、それによって、NATは、両方のクライアントが同じプライベートネットワーク内にあるとき、第1のクライアントから第2のクライアントへパケットを転送することができる。ヘアピニングがサポートされるとき、NATは、第1のクライアントからのアウトバウンドパケットのパブリックIPアドレスの宛先が、第2のクライアントに対してNATによって作成された、マッピングされたIPアドレスであることを検出することができる。したがって、NATは、2つのクライアントが両方とも同じNATのプライベートネットワーク内に位置するとき、2つのクライアントの間のピアツーピア通信をサポートするために、ヘアピニングを使用してパケットを正しく転送することができる。このことは望ましい機能であるが、特に商業用の展開において、NATによって通常は実施されない。たとえば、その顧客に対してWiFiアクセスを呼び物にするコーヒーショップまたは他の商業施設では、施設のプライベートネットワークに対して商業的なNATが展開され得る。ヘアピニングを許可または実施することは、プライベートネットワークの無作為または無許可のユーザが、ヘアピニングを使用して他のユーザまたはユーザデバイスを発見できるようにすることになる。このことは、プライバシーおよびセキュリティの観点から望ましくない。したがって、ヘアピニングは、特に商業用の設定において、一般にサポートされる機能でない。
ヘアピニングが選択肢でないとき、NATトラバーサルのための従来の手法は、NAT用セッショントラバーサルユーティリティ(STUN)を伴う。STUNは、それによって第1のクライアントがNATの存在を発見するとともに、NATによってマッピングされた第1のクライアントのパブリックIPアドレスおよびポート番号を取得することもできるメカニズムを提供する。STUNは、NATのパブリック側に位置しSTUNサーバと呼ばれる第三者のサーバからの支援を必要とする。第1のクライアントは、STUNサーバに問い合わせることによってそのパブリックIPアドレスおよびポートを見つけ出すことができ、次いで、このパブリックIPアドレスをそのプライベートアドレスの代わりに第2のクライアントへ送ることができる。第2のクライアントも、同様に、そのパブリックIPアドレスを発見し第1のクライアントへ送ることができる。2つのクライアントは、次いで、VoIP通信などの互いとのピアツーピア通信を実行するために、データパケットをそれぞれの他のクライアントのパブリックIPアドレスへ送ることができる。STUNサーバを使用するNATトラバーサルのこのメカニズムはまた、NATの中に穴をあけることとして当技術分野で知られている。しかしながら、従来のSTUNベースの手法は、すべてのタイプのNATに対して十分とは限らない。たとえば、それらは、対称型NATおよびポートが制限されたNATに対して機能しないことになる。
対称型NATは、それがNATトラバーサルに至るとき、最も困難な状態にある。対称型NATは、STUNサーバへの通信、およびインターネットサーバのような他の外部のホストとの通信に対して、プライベートネットワーク内の同じクライアント(たとえば、第1のクライアント)の異なるマッピングを割り振る。したがって、STUNサーバからのIPアドレスおよびポート番号は、NATがピアツーピア通信のために作成するIPアドレスおよびポートのマッピングと異なるので、ピアツーピア通信のために第1のクライアントによってSTUNサーバから取得され第2のクライアントへ伝えられるIPアドレスおよびポートは無意味になる。したがって、第2のクライアントが第1のクライアントのSTUNベースのIPアドレスへパケットを送ろうとするとき、NATはそのパケットを廃棄することになる。対称型NATは、通常、たとえば、商業用の設定(通常はヘアピニングのサポートがない)で使用され、したがって、さらに他の解決策が通常、この空間において使用される。
現在では古くなった方法、すなわち、中継NATを使用するトラバーサル(または、「旧式のTURN」)は、対称型NATのトラバーサルに関してSTUNの欠点を克服する方法を要する。旧式のTURNによれば、STUNは、NATタイプを検出するために使用されることになり、対称型NATタイプが発見されると、旧式のTURNは中継装置として使用されることになる。しかしながら、この率直な手法は結局頼りにならないものとなって、新しいTURNが今や準備されている。新しいTURN(または、以後、単に「TURN」と呼ぶ)は、NATの周りで中継装置を使用するトラバーサルに関係する。TURNプロトコルが、以下の図1を参照しながら説明される。
図1に、TURNプロトコルが展開される従来の通信システム100が示される。システム100は、NAT104のパブリック側に位置するTURNサーバ102を備える。一例では、NAT104は、対称型NATであってよい。この場合には、第1および第2のクライアント、ピア-1 106およびピア-2 108は、同じ対称型NAT、NAT104の背後にあることになる。対称型NATおよびSTUNは、ピア-1 106とピア-2 108との間で主張されるピアツーピア通信のための経路を提供しないことになる。TURNサーバ102は、中継装置の役割を果たすことによって、そのような経路を提供することになる。NAT104の背後のクライアントからの、通信を求める要求は、NAT104を通じてTURNサーバ102へ転送される。TURNサーバ102は、次いで、ピア-1 106がピア-2 108とのピアツーピア通信を確立するためにTURNサーバ102に連絡すると、たとえば、ピア-1 106に対して第1のTURNアドレスを割り振ることになる。ピア-2 108がTURNサーバ102に連絡すると、TURNサーバ102がピア-2 108に対して第2のTURNアドレスを作成することになるという点で、TURNサーバ102は、ピア-2 108に対して同じことをするはずである。TURNサーバ102は中継装置の役割を果たすことになり、ピア-1 106およびピア-2 108は、第1および第2のTURNアドレスを使用してTURNサーバ102を通じて通信することになる。したがって、TURNプロトコルは、セキュリティを維持し、また、対称型NATおよび従来のSTUNが機能し得ない場所で通信が行われることを可能にする。ただし、TURNサーバの使用は費用がかかり、通信に対してTURNサーバを使用することは、最後の手段、たとえば、NATおよびSTUNが働かないはずであるとき(たとえば、対称型NATの状況の場合)に限定されることになる。
商業的なTURN展開は、一般に、複数のTURNサーバを有し、TURN VIP(Virtual Internet Platform)が、複数のTURNサーバの間で負荷を分散させるために使用される。
対話型接続性確立(ICE)プロトコルは、同じNATの背後にある2つのクライアント間のピアツーピア通信のための最良の経路を見つけるために使用されるNATトラバーサル技法を伴う(ICEは、異なるNATが関係するときにも使用され得る)。たとえば、再び図1を参照すると、ピアツーピア通信のためのいくつかの経路は、第1および第2のクライアント、ピア-1 106とピア-2 108との間に可能性として存在し得る。第1の可能な経路、経路110は、2つのクライアント間の直接の経路であり、たとえば、2つのクライアント上のUDPソケットを通り得る。2つのBluetooth(登録商標)対応のデバイス間のBluetooth(登録商標)通信は、経路110と類似の経路の一例を形成することができる。第2の可能な経路、経路112は、NAT104を通り得る。より詳細には、ソケットが、2つのクライアントの各々にマッピングされるNAT104上に作成され得、この場合には、NAT104はサーバリフレクシブ候補(server reflexive candidate)とも呼ばれる。第3の可能な経路、経路114は、TURNサーバ102上に作成される専用のソケットを通り、その場合、TURNサーバ102は中継候補である。ICEは、たとえば、一連の検査を実行することに基づいて、たとえば、システム100の利用可能性、仕様および要件に基づく経路110〜114の間の最良の選択肢を決定することができる。選択された経路は、次いで、2つのクライアント間のピアツーピア通信のために使用される。
しかしながら、当技術分野で知られている従来の技法が、2つのクライアント間のピアツーピア通信を確立するのに不十分である状況が依然として存在する。たとえば、対称型NATは、さらに、ワイヤレス分離を有効にするための機能を有し得、または、言い換えれば、対称型NATは、対称型NATの背後のプライベートネットワークに接続されているワイヤレスデバイスが、ワイヤレスネットワークを通じて互いにアクセスすることを許可しないことになる。このことは、ネットワークの1人のユーザが、別のユーザのデバイスにワイヤレスネットワークを介して意図しないまたは無許可の方式でアクセスできないことを確実にするために、たとえば、WiFiまたはワイヤレスネットワークアクセスを顧客に提供する商業施設において、やはり一般的に見られる。さらに、典型的なケースは、対称型NATと、ヘアピニングをサポートしないことと、複数のTURNサーバ間で負荷を分散させるためのTURN VIPとを、伴うことになる。この状況では、従来のICE実装は、ワイヤレス分離が有効にされ、かつ、ヘアピニングをサポートしない対称型NATの背後の2つのクライアント間のピアツーピア通信のいかなる手段も、提供または確立することができない。
したがって、当技術分野における、同じ対称型NATの背後の2つのクライアント間のピアツーピア通信を可能にする構成の必要性があり、対称型NATは、ワイヤレス分離が有効にされ、かつ、ヘアピニングをサポートせず、TURN VIPは、対称型NATと関連した複数のTURNサーバの間で負荷を分散させるように構成される。
例示的な実施形態は、2つのピア間の対話型接続性確立(ICE)プロトコルに基づくピアツーピア通信のためのシステムおよび方法を含み、ここで、2つのピアは、ワイヤレス分離が有効にされ、かつ、ヘアピニングをサポートしない対称型ネットワークアドレス変換(NAT)の背後にある。
したがって、例示的な態様は、第1のピアと第2のピアとの間で対話型接続性確立(ICE)プロトコルを使用して通信する方法を含み、方法は、第1のピアと第2のピアとの間で対称型ネットワークアドレス変換(NAT)を共有することを備え、対称型NATは、ワイヤレス分離が有効にされ、かつ、ヘアピニングをサポートしない。方法は、TURN VIP(Virtual Internet Platform)によって中継候補として指定された第1のTURN(Traversal Using Relay NAT)サーバにおいて、第1のピアによって開始される通信を求めるとともにTURN VIPに向けられた第1の要求に対して対称型NATによって割り振られた第1のポートが、第1のピアから第1のTURNサーバへ送信される第1のパケットに対して対称型NATによって割り振られた第2のポートと異なることを、第1の指示に基づいて決定することと、第1のTURNサーバにおいて、第2のポートの第1のポートへの第1のマッピングを実行することとを含む。
例示的な態様では、第1の指示は、第1のピアから送信される第1のパケットに挿入された第1の属性を含むことができる。さらなる態様では、方法はまた、第1のTURNサーバにおいて、第2のピアによって開始される通信を求めるとともにTURN VIPに向けられた第2の要求に対して対称型NATによって割り振られた第3のポートが、第2のピアから第1のTURNサーバへ送信される第2のパケットに対して対称型NATによって割り振られた第4のポートと異なることを、第2の指示に基づいて決定することと、第1のTURNサーバにおいて、第4のポートの第3のポートへの第2のマッピングを実行することとを、含むことができる。第2の指示は、同様に、第2のピアから送信される第2のパケットに挿入された第2の属性を含むことができる。したがって、第1のピアと第2のピアとの間のピアツーピア通信は、第1のマッピングおよび第2のマッピングに基づいて実行され得る。
例示的な態様では、第1のTURNサーバは、第1のTURNサーバおよび第2のTURNサーバの中から、TURN VIPにおける負荷を分散させることに基づいて、TURN VIPによって選択され得る。その上、第1のパケットおよび第2のパケットは、STUN(Simple Traversal of User Datagram Protocol)パケットであり得る。
別の例示的な態様は、第1のピアおよび第2のピアを備える通信システムを含むことができる。対称型ネットワークアドレス変換(NAT)が、第1のピアと第2のピアとの間で共有され、対称型NATは、ワイヤレス分離が有効にされ、かつ、ヘアピニングをサポートしない。通信システムは、TURN VIP(Virtual Internet Platform)と、TURN VIP(Virtual Internet Platform)によって中継候補として指定された第1のTURN(Traversal Using Relay NAT)サーバとを含む。第1のTURNサーバは、第1のピアによって開始される通信を求めるとともにTURN VIPに向けられた第1の要求に対して対称型NATによって割り振られた第1のポートが、第1のピアから第1のTURNサーバへ送信される第1のパケットに対して対称型NATによって割り振られた第2のポートと異なることを、第1の指示に基づいて決定し、第2のポートの第1のポートへの第1のマッピングを実行するように構成される。
さらに別の例示的な態様は、第1のピアと、第2のピアと、第1のピアと第2のピアとの間で共有される対称型ネットワークアドレス変換(NAT)であって、ワイヤレス分離が有効にされ、かつ、ヘアピニングをサポートしない対称型NATとを備えるシステムに関する。システムは、第1のピアと第2のピアとの間で対話型接続性確立(ICE)プロトコルに基づいて通信するための手段を備える。通信するための手段は、第1のピアによって開始される通信を求める第1の要求に対して対称型NATによって割り振られた第1のポートが、第1のピアから送信される第1のパケットに対して対称型NATによって割り振られた第2のポートと異なることを、第1の指示に基づいて決定するための手段と、第2のポートの第1のポートへの第1のマッピングを実行するための手段とを備える。
添付の図面は、本発明の実施形態の説明を助けるために提示されており、実施形態を限定するためではなく、実施形態を例示するためにのみ提供される。
TURNサーバ展開を伴う従来の通信システムを示す図である。 例示的な態様が構成される商業的なTURN展開を示す図である。 例示的な実施形態に基づいてピアツーピア通信を確立するためのプロセスフローを示す図である。
本発明の態様は、本発明の特定の実施形態を対象とする以下の説明および関連する図面で開示される。本発明の範囲を逸脱することなく、代替実施形態が考案され得る。加えて、本発明の関連する詳細を不明瞭にしないように、本発明のよく知られている要素は詳細に説明されず、または省略される。
「例示的」という言葉は、本明細書では「一例、事例、または例示として役立つ」ことを意味するように使用される。「例示的」として本明細書に記載されるいかなる実施形態も、必ずしも他の実施形態よりも好ましいか、または有利であると解釈されるべきではない。同様に、「本発明の実施形態」という用語は、本発明のすべての実施形態が、説明される特徴、利点、または動作モードを含むことを必要としない。
本明細書において使用される用語は、特定の実施形態を説明することのみを目的とするものであり、本発明の実施形態を限定するものではない。本明細書で使用するとき、単数形「a」、「an」、および「the」は、文脈が別段に明確に示すのでなければ、複数形をも含むものとする。「含む(comprises)」、「含んでいる(comprising)」、「含む(includes)」、および/または「含んでいる(including)」という用語は、本明細書で使用するとき、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除しないことがさらに理解されよう。
さらに、多くの実施形態が、たとえば、コンピューティングデバイスの要素によって実行されるべき一連の動作に関して説明される。本明細書で説明する様々な動作は、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、1つもしくは複数のプロセッサによって実行されるプログラム命令によって、または両方の組合せによって実行され得ることが認識されよう。加えて、本明細書で説明するこれらの動作のシーケンスは、実行時に、関連するプロセッサに本明細書で説明する機能を実行させるコンピュータ命令の対応するセットを記憶した、任意の形態のコンピュータ可読記憶媒体内で完全に具現化されるものと見なされ得る。したがって、本発明の様々な態様はいくつかの異なる形態で具現化されてよく、そのすべてが、請求する主題の範囲内に入ると考えられる。加えて、本明細書で説明する実施形態ごとに、任意のそのような実施形態の対応する形態は、本明細書では、たとえば、説明する動作を実行する「ように構成された論理」として説明されることがある。
例示的な実施形態は、ワイヤレス分離が有効にされ、かつ、ヘアピニングをサポートしない対称型NATの背後の2つのクライアント間のピアツーピア通信を可能にするために、既存の技法の上述の限定を克服するように構成される。例示的な解決策は、通常、複数のTURNサーバ間で負荷を分散させるためのTURN VIPを有する商業的なTURN展開と互換性がある。
ここで図2を参照すると、本開示の態様に従って構成された例示的な通信システム200が示される。システム200は、TURNサーバ-1 202a、TURNサーバ-2 202bなどの、2つ以上のTURNサーバ間で負荷を分散させるように構成され得るTURN VIP201を含む。対称型NAT204は、ワイヤレス分離が有効にされ、かつ、ヘアピニングをサポートしない。第1および第2のクライアント、ピア-1 206およびピア-2 208は、対称型NAT204の背後にあり、または、言い換えれば、インターネット(図示せず)に対称型NAT204を通じて接続するプライベートネットワークに属する。一例では、対称型NAT204は、サーバリフレクシブ候補を形成することになり、TURNサーバ-1 202aは、TURN VIP201によって中継候補として選択され得る。
一例では、ピア-1 206は、ピア-2 208とのVoIP通信などのピアツーピア通信を確立することを意図する。ICEプロトコルのもとで、そのような通信を確立することを意図するピア-1 206またはピア-2 208などのデバイスは、所期の通信のためのサーバリフレクシブ候補および中継候補を発見するために、最初にTURN VIP201と対話することになる。この例では、TURN VIP201を使用して発見されるサーバリフレクシブ候補は、対称型NAT204に相当する。TURN VIP201によって発見される中継候補は、TURNサーバ-1 202aである。商業的な展開に相当し得る図2に示されているシステム200の展開では、たとえば、TURN VIP201ならびに2つのTURNサーバ202aおよび202bは、異なるIPアドレスを有する(すなわち、TURN VIPならびにTURNサーバ202aおよび202bは、共通のIPアドレスを有する同じTURNサーバ筐体の中に位置しない)。対称型NATによって見られる送信元と宛先の各ペアに対して異なるポートを割り振ることに関して前に説明した対称型NATの特性のために、所期のピアツーピア通信は、ICEを使用する従来の設定で障害物をたたく。この障害物は、以下でさらに詳細に説明され、障害物を乗り越えピア-1 206またはピア-2 208が所期のピアツーピア通信を確立することを可能にする例示的な態様がその後に続く。
続けて図2を参照すると、ピア-1 206が、対象となるピアツーピア通信を試みるとき、サーバリフレクシブ候補、対称型NAT204に割り当てられ、TURN VIP201を使用して発見されるポートは、ポートIP:P1 220である。同様に、ピア-2 208がピア-1 206とのピアツーピア通信を試みる場合、TURN VIP201は、同じサーバリフレクシブ候補、対称型NAT204を発見することになる。ピア-1 206との所期の通信に対してピア-2 208に割り当てられることになるポートは、ポートIP:P2 222であることになる。
ICEプロトコルは、次いで、ピア-1 206とピア-2 208との間の所期のピアツーピア通信にとって最も適した通信経路を決定するための一連の検査を、続けて実行することになる。このプロセスでは、それが対称型NAT(ワイヤレス分離が有効にされ、かつ、ヘアピニングをサポートしない)であるので、ICEは、サーバリフレクシブ候補すなわち対称型NAT204を通る経路(たとえば、図1の経路112)を適したものと認識しないことになる。図1の経路110のようなピア-1 206とピア-2 208との間の直接の経路も、たとえば、図2の商業的な展開に関係することができるシナリオでは、可能でないことになる。潜在的な通信経路の可能性を明らかにし得るICE検査の唯一のセットは、この場合、TURNサーバ-1 202aとしてTURN VIP201によって識別されることになる中継候補を通る経路のはずである。
しかしながら、従来の実装のもとでは、中継候補としてのTURNサーバ-1 202aを通る経路も機能しないはずである。なぜなら、前に述べたように、TURNサーバ-1 202aが、TURN VIP201と異なるIPアドレスを有するからである。言い換えれば、TURNサーバ-1 202aおよびTURN VIP201は、異なる宛先として対称型NAT204によって識別される。前に説明したように、対称型NAT204は、異なるポートを送信元と宛先の各ペアに割り振る。これは、2つのクライアント、ピア-1 206およびピア-2 208が、指定された中継候補、TURNサーバ-1 202aへ所期のピアツーピア通信に関するパケットを送出しようと試みるとき、異なるポート、ポートIP:P1' 221およびIP:P2' 223が2つのクライアントに対して割り当てられることを意味する。これらのポートは、TURN VIP201との初期の連絡に基づいて、2つのクライアントに前に割り当てられたポート、すなわち、それぞれIP:P1 220およびIP:P2 222と異なる。したがって、TURNサーバ-1 202aは、たとえば、異なるポートIP:P1' 221から到来するピア-1 206に関するパケットが見える。しかしながら、TURNサーバ-1 202aは、ポートIP:P1 220を通じてTURN VIP201と前に確立されたコンテキストを知らない。言い換えれば、TURNサーバ-1 202aは、ポートIP:P1' 221からのこれらのパケットが、ポートIP:P1 220を通じて開始された同じピアツーピア通信に関係することを、理解しない。その上、ピア-1 206からのパケットは、所期の宛先が前にピア-2 208に対して確立されたポートIP:P2 222に関係することを規定し、TURNサーバ-1 202aは、ポートIP:P2' 223をピア-2 208に関係するものとして知っているだけであるので、ポートIP:P2 222を認識できないことになる。したがって、パケットをどのように経路指定するかを知らないTURNサーバ-1 202aは、パケットを廃棄する。したがって、2つのクライアント間の所期のピアツーピア通信は、従来の設定で障害物をたたき、続行することができない。本開示の例示的な態様は、ピア-1 206とピア-2 208との間の所期のピアツーピア通信を可能にするために、この障害物を乗り越えることに関する。詳細には、サーバ側において、例示的な態様は、たとえば、ピア-1 206とピア-2 208との間のピアツーピア通信が可能にされ得るようなTURNサーバ-1 202aを構成することに関する。
少なくとも1つの例示的な態様では、対称型NATによって第1のピアからの要求に割り振られた最初または初期のポートの指示は、第2のピアの第1のピアとの通信のために使用される。指示は、ピアによって送信されるパケットの中に挿入される属性に基づき得る。属性は、同じ送信元の異なる宛先に対して作成された異なるポートをマッピングするために使用され得る値を含む。このマッピングを使用して、異なるポート番号を有するが同じ通信に関係するパケット間のあいまいさが解決され得る。
ピア-1 206によって開始される通信に関する一態様では、たとえば、第1の属性に基づく最初または初期のポートの指示は、対称型NAT204によってTURN VIP201との初期の通信に対して割り振られる初期のポートから、TURNサーバ-1 202aがTURN VIP201によって中継候補として指定されると対称型NAT204によって割り振られる異なるポートへの間のマッピングを可能にする。したがって、一例では、第1の属性の値は、初期のポート、ポートIP:P1 220に設定される。第1の属性を使用する第1のポートの指示は、ピア-1 206からTURNサーバ-1 202aへ送られる1つまたは複数のパケットに含まれる。これらのパケットに割り振られるポートは、ポートIP:P1' 221である。したがって、第1の属性の値は、これらのパケットに対するポートまたは送信元アドレスと異なることになる。この技法は、2つのポート間のマッピングを可能にすることになり、その場合、マッピングは、TURNサーバ-1 202aの中のようなサーバ側において実行され得る。したがって、一般に、パケットに含まれる属性の値がパケットに割り振られるポートと異なる場合、属性の値は、パケットに対する送信元アドレス(たとえば、上の例では、ピア-1 206)に関連付けられ得る。
上述のように、属性と送信元アドレスとの間の関連付けは、サーバ側において、たとえば、TURNサーバ-1 202aにおいて実行され得る。この例では、TURN VIP201は、TURNサーバ-1 202aを中継候補として識別していることがある。ピア-1 206が、ピア-2 208とのピアツーピア通信に対して識別された中継候補、TURNサーバ-1 202aへ第1のパケットを送出するとき、第1のポートの指示は、たとえば、第1の属性を使用して、第1のパケットに挿入される。もう一度、対称型NAT204は、第1のパケットに対してポートIP:P1' 221を割り振る。TURNサーバ-1 202aが第1のパケットを受信すると、TURNサーバ-1 202aは、第1のパケットの送信元(すなわち、ポートIP:P1' 221)が、第1の属性によって識別される送信元(すなわち、ポートIP:P1 220)と異なることを観察する。この観察により、TURNサーバ-1 202aに、2つの送信元が事実上同じ、すなわち、この場合ではピア-1 206であると結論づける。TURNサーバ-1 202aは、この先の通信に対してポートIP:P1' 221をポートIP:P1 220に関連付けまたは同一視する。
同様にして、ピア-2 208に対して、TURN VIP201を用いて開始された通信に関する初期の通信パケットに続く1つまたは複数のパケットはまた、たとえば、第2の属性を使用して、ピア-2 208、たとえば、ポートIP:P2 222からの初期の通信パケットに対して作成された初期のポートをその値が含む指示を含む。これらの1つまたは複数のパケットは、中継候補として指定されているTURNサーバ-1 202aとの通信に関する異なるポート(すなわち、ポートIP:P2' 223)が割り振られる。したがって、ピア-2 208からTURNサーバ-1 202aへ送信された第2のパケットの中の第2の属性の値が第2のパケットに割り振られたポートと異なる場合、第2の属性の値は、第2のパケットに割り振られたポートにマッピングされる。したがって、両方のポート、ポートIP:P2 222およびポートIP:P2' 223は、同じ送信元、ピア-2 208にマッピングされる。
もう一度、TURNサーバ-1 202aは、第2のパケットの送信元(すなわち、ポートIP:P2' 223)が、第2の属性によって示される送信元(すなわち、ポートIP:P2 222)と異なることを観察する。TURNサーバ-1 202aは、次いで、ピア-2 208に関するこの先の通信に対して、ポートIP:P2' 223がポートIP:P2 222と同じであると結論づける。
同じ送信元に対して割り振られる異なるポート間のあいまいさが克服されるので、ピア-1 206とピア-2 208との間のピアツーピア通信は、ピア-1 206およびピア-2 208に対する上記の関連付けまたはマッピングに基づいて続行することができる。TURNサーバ-1 202aは、ピア-1 206とピア-2 208との間のピアツーピア通信のための中継装置の役割を首尾よく果たすことができる。言い換えれば、ピア-1 206からTURNサーバ-1 202aへ送られた第1のパケットを再考すると、第1のパケットは、ポートIP:P1' 221から現れ、また、ピア-2 208に関する宛先アドレスを含む。この宛先アドレスは、初期の割振りに基づいて、ポートIP:P2 222をピア-2 208のアドレスとして示す。しかしながら、第1のパケットは第1の属性も含むので、TURNサーバ-1 202aは、ピア-1 206から発信されピア-2 208に宛てられる第1のパケットを、それがピア-1 206(ポートIP:P1 220=ポートIP:P1' 221)とピア-2 208(ポートIP:P2 222=ポートIP:P2' 223)の両方に対するアドレスマッピングを有するものと決定することができる。ピア-2 208からのピア-1 206に宛てられる第2のパケットに関する逆の場合も、同様に処理される。
このようにして、例示的な態様では、対称型NAT204が、ワイヤレス分離が有効にされ、かつ、ヘアピニングをサポートしないピアツーピア通信に関係する各クライアントにとって、TURN VIP201およびTURNサーバ-1 202aに対して対称型NAT204によって作成される異なるポートに起因して生み出される障害物は乗り越えられる。いくつかの実装形態では、識別されるTURNサーバ、すなわち、この例ではTURNサーバ-1 202aへ、クライアントによって送出される第1のパケットのみに属性が含まれれば十分であり得る。このことは、TURN VIP201との通信に対して作成される初期のポートへのマッピングを確立するために十分であり得る。したがって、後続のパケットは、属性を含む必要がない。
TURN VIP201がTURNサーバ-2 202bなどの任意の他のTURNサーバを中継候補として識別する場合、上記で略述したような類似のプロセスが模範とされ得ることが理解されよう。
いくつかの実装形態では、パケット(たとえば、第1および第2のパケット、ならびに対象となるピアツーピア通信に関係するこの先の任意のパケット)は、上述のSTUNプロトコルに関係する規格に従うことができ、STUNパケットと呼ばれることもある。STUNパケットは、たとえば、インターネットエンジニアリングタスクフォース(IETF)によってRFC5245の該当するセクションで定義されているフォーマットおよび仕様に従ってよい。STUNパケットに関する従来の属性は、それらのセクションで定義されている。例示的な態様では、上記で説明した例示的な属性は、これらの従来の属性に加えて含まれ得る。したがって、いくつかの態様は、従来の技法が機能しないピアツーピア通信をサポートし可能にするために、従来のICEプロトコルを改善することに関する。
いくつかの実装形態では、2つのクライアント、ピア-1 206およびピア-2 208のうちの一方または両方は、コンピュータまたは処理デバイスであり得る。それらはまた、「モノのインターネット」(IoT)デバイスであってよい。IoTは、コンピュータおよびコンピュータネットワークだけでなく、日常の物が、IoT通信ネットワーク(たとえば、アドホックシステムまたはインターネット)を介して読取り可能、認識可能、位置特定可能、アドレス指定可能、および制御可能であり得るという発想に基づく。本明細書において使用する「モノのインターネットデバイス」(または「IoTデバイス」)という用語は、アドレス指定可能なインターフェース(たとえば、インターネットプロトコル(IP)アドレス、Bluetooth(登録商標)識別子(ID)、近距離無線通信(NFC)IDなど)を有し、有線接続またはワイヤレス接続を介して1つまたは複数の他のデバイスに情報を送信することができる任意の物(たとえば、電化製品、センサなど)を指す場合がある。IoTデバイスは、クイックレスポンス(QR)コード、無線周波数識別(RFID)タグ、NFCタグなどの受動通信インターフェース、または、モデム、送受信機、送信機-受信機などの能動通信インターフェースを有し得る。
態様は、本明細書に開示するプロセス、機能、および/またはアルゴリズムを実行するための様々な方法を含むことが諒解されよう。たとえば、図3に示すように、例示的な態様は、第1のピアと第2のピアとの間で(たとえば、ピア-1 206およびピア-2 208)、対話型接続性確立(ICE)プロトコルを使用して通信する方法(300)を含むことができ、方法は、第1のピアと第2のピアとの間で対称型ネットワークアドレス変換(NAT)(たとえば、対称型NAT204)を共有することであって、対称型NATは、ワイヤレス分離が有効にされ、かつ、ヘアピニングをサポートしないことと-ブロック302、TURN VIP(Virtual Internet Platform)(たとえば、TURN VIP201)によって中継候補として指定された第1のTURN(Traversal Using Relay NAT)サーバ(たとえば、TURNサーバ-1 202a)において、第1のピアによって開始される通信を求めるとともにTURN VIPに向けられた第1の要求に対して対称型NATによって割り振られた第1のポート(たとえば、ポートIP:P1 220)が、第1のピアから第1のTURNサーバへ送信される第1のパケットに対して対称型NATによって割り振られた第2のポート(たとえば、ポートIP:P1' 221)と異なることを、第1の指示に基づいて決定することと-ブロック304、第2のポートの第1のポートへの第1のマッピングを、第1のTURNサーバにおいて実行することと-ブロック306、を含むことができる。
前に説明したように、第1の指示は、第1のピアから送信される第1のパケットに挿入された第1の属性を含むことができる。さらなる態様(この図に示さず)では、方法300はまた、第1のTURNサーバにおいて、第2のピアによって開始される通信を求めるとともにTURN VIPに向けられた第2の要求に対して対称型NATによって割り振られた第3のポート(たとえば、ポートIP:P2 222)が、第2のピアから第1のTURNサーバへ送信される第2のパケットに対して対称型NATによって割り振られた第4のポート(たとえば、IP:P2' 223)と異なることを、第2の指示に基づいて決定することと、第1のTURNサーバにおいて、第4のポートの第3のポートへの第2のマッピングを実行することとを、含むことができる。第2の指示は、同様に、第2のピアから送信される第2のパケットに挿入された第2の属性を含むことができる。したがって、第1のピアと第2のピアとの間のピアツーピア通信は、第1のマッピングおよび第2のマッピングに基づいて実行され得る。例示的な態様では、第1のTURNサーバは、第1のTURNサーバおよび第2のTURNサーバの中から、TURN VIPにおける負荷を分散させることに基づいて、TURN VIPによって選択され得る。その上、第1のパケットおよび第2のパケットは、STUN(Simple Traversal of User Datagram Protocol)パケットであり得る。
したがって、例示的な態様はまた、第1のピアおよび第2のピアを備えるシステムを含む。対称型ネットワークアドレス変換(NAT)が、第1のピアと第2のピアとの間で共有され、対称型NATは、ワイヤレス分離が有効にされ、かつ、ヘアピニングをサポートしない。システムは、第1のピアと第2のピアとの間で対話型接続性確立(ICE)プロトコルに基づいて通信するための手段(たとえば、TURN VIP(Virtual Internet Platform)201、およびTURN VIP201によって中継候補として指定された第1のTURN(Traversal Using Relay NAT)サーバ-1 202a)を含む。通信するための手段は、第1のピアによって開始される通信を求める第1の要求に対して対称型NATによって割り振られた第1のポートが、第1のピアから送信される第1のパケットに対して対称型NATによって割り振られた第2のポートと異なることを、第1の指示に基づいて決定するための手段(たとえば、TURNサーバ-1 202a、および場合によっては、より詳細には、TURNサーバ-1 202aの中のプロセッサまたは処理手段(明示的に図示せず))と、第2のポートの第1のポートへの第1のマッピングを実行するための手段(たとえば、TURNサーバ-1 202a、および場合によっては、より詳細には、TURNサーバ-1 202aの中のプロセッサまたは処理手段(明示的に図示せず))と、を含むことができる。通信するための手段は、第2のピアによって開始される通信を求める第2の要求に対して対称型NATによって割り振られた第3のポートが、第2のピアから送信される第2のパケットに対して対称型NATによって割り振られた第4のポートと異なることを、第2の指示に基づいて決定するための手段(たとえば、TURNサーバ-1 202a、および場合によっては、より詳細には、TURNサーバ-1 202aの中のプロセッサまたは処理手段(明示的に図示せず))と、第4のポートの第3のポートへの第2のマッピングを実行するための手段(たとえば、TURNサーバ-1 202a、および場合によっては、より詳細には、TURNサーバ-1 202aの中のプロセッサまたは処理手段(明示的に図示せず))とを、さらに含むことができる。第1のピアと第2のピアとの間のピアツーピア通信は、第1のマッピングおよび第2のマッピングに基づき得る。
情報および信号が様々な異なる技術および技法のうちのいずれかを使用して表され得ることを、当業者は諒解されよう。たとえば、上記の説明全体を通して参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
さらに、本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを、当業者は諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップは、概してそれらの機能に関してこれまで説明されてきた。そのような機能がハードウェアとして実装されるのか、それともソフトウェアとして実装されるのかは、特定の適用例および全体的なシステムに課された設計制約に依存する。当業者は、説明された機能性を特定の適用例ごとに様々なやり方で実施することができるが、そのような実施判断が、本発明の範囲からの逸脱を引き起こすと解釈されるべきではない。
本明細書で開示する実施形態に関して説明する方法、シーケンス、および/またはアルゴリズムは、ハードウェアにおいて、プロセッサによって実行されるソフトウェアモジュールにおいて、またはその2つの組合せにおいて直接具現化され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形態の記憶媒体中に存在することができる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体化されてよい。
したがって、本発明の一実施形態は、複数のTURNサーバ間で負荷を分散させるためのTURN VIPを備える商業的なTURNの設置において、ワイヤレス分離が有効にされ、かつ、ヘアピニングをサポートしない同じ対称型NATの背後の2つのピア間で、ICE接続を使用するピアツーピア通信を実行するための方法を具現化するコンピュータ可読媒体を含むことができる。したがって、本発明は図示の例に限定されず、本明細書で説明する機能を実行するためのあらゆる手段が、本発明の実施形態に含まれる。
上記の開示は本発明の例示的な実施形態を示すが、添付の特許請求の範囲によって規定される本発明の範囲から逸脱することなく、本明細書において様々な変更および修正を加えることができることに留意されたい。本明細書で説明する本発明の実施形態による方法クレームの機能、ステップ、および/または動作は、任意の特定の順序で実行される必要はない。さらに、本発明の要素は、単数形で説明または請求される場合があるが、単数形に限定することが明示的に述べられていない限り、複数形が考えられる。
100 通信システム
102 TURNサーバ
104 NAT
106 ピア-1
108 ピア-2
200 通信システム
201 TURN VIP
202a TURNサーバ-1
202b TURNサーバ-2
204 対称型NAT
206 ピア-1
208 ピア-2

Claims (14)

  1. 第1のピアと第2のピアとの間で対話型接続性確立(ICE)プロトコルを使用して通信する方法であって、
    前記第1のピアと前記第2のピアとの間で対称型ネットワークアドレス変換(NAT)を共有するステップであって、前記対称型NATは、ワイヤレス分離が有効にされ、かつ、ヘアピニングをサポートしない、ステップと、
    TURN VIP(Virtual Internet Platform)によって中継候補として指定された第1のTURN(Traversal Using Relay NAT)サーバにおいて、前記第1のピアによって開始される通信を求めるとともに前記TURN VIPに向けられた第1の要求に対して前記対称型NATによって割り振られた第1のポートが、前記第1のピアから前記第1のTURNサーバへ送信される第1のパケットに対して前記対称型NATによって割り振られた第2のポートと異なることを、第1の指示に基づいて決定するステップと、
    前記第1のTURNサーバにおいて、前記第2のポートの前記第1のポートへの第1のマッピングを実行するステップと
    を備える方法。
  2. 前記第1の指示は、前記第1のピアから送信される前記第1のパケットに挿入された第1の属性を備える、請求項1に記載の方法。
  3. 前記第1のTURNサーバにおいて、前記第2のピアによって開始される通信を求めるとともに前記TURN VIPに向けられた第2の要求に対して前記対称型NATによって割り振られた第3のポートが、前記第2のピアから前記第1のTURNサーバへ送信される第2のパケットに対して前記対称型NATによって割り振られた第4のポートと異なることを、第2の指示に基づいて決定するステップと、
    前記第1のTURNサーバにおいて、前記第4のポートの前記第3のポートへの第2のマッピングを実行するステップと
    をさらに備える、請求項1に記載の方法。
  4. 前記第2の指示は、前記第2のピアから送信される前記第2のパケットに挿入された第2の属性を備える、請求項3に記載の方法。
  5. 前記第1のピアと前記第2のピアとの間のピアツーピア通信を、前記第1のマッピングおよび前記第2のマッピングに基づいて実行するステップをさらに備える、請求項3に記載の方法。
  6. 前記第1のパケットおよび第2のパケットは、STUN(Simple Traversal of User Datagram Protocol)パケットである、請求項3に記載の方法。
  7. 前記第1のTURNサーバは、前記第1のTURNサーバおよび第2のTURNサーバの中から、前記TURN VIPにおける負荷を分散させることに基づいて、前記TURN VIPによって選択される、請求項1に記載の方法。
  8. 第1のピアと、
    第2のピアと、
    前記第1のピアと前記第2のピアとの間で共有される対称型ネットワークアドレス変換(NAT)であって、前記対称型NATは、ワイヤレス分離が有効にされ、かつ、ヘアピニングをサポートしない、NATと、
    TURN VIP(Virtual Internet Platform)と、
    前記TURN VIP(Virtual Internet Platform)によって中継候補として指定された第1のTURN(Traversal Using Relay NAT)サーバと
    を備え、
    前記第1のTURNサーバは、
    前記第1のピアによって開始される通信を求めるとともに前記TURN VIPに向けられた第1の要求に対して前記対称型NATによって割り振られた第1のポートが、前記第1のピアから前記第1のTURNサーバへ送信される第1のパケットに対して前記対称型NATによって割り振られた第2のポートと異なることを、第1の指示に基づいて決定し、
    前記第2のポートの前記第1のポートへの第1のマッピングを実行する
    ように構成される、通信システム。
  9. 前記第1の指示は、前記第1のピアから送信される前記第1のパケットに挿入された第1の属性を備える、請求項8に記載の通信システム。
  10. 前記第1のTURNサーバは、
    前記第2のピアによって開始される通信を求めるとともに前記TURN VIPに向けられた第2の要求に対して前記対称型NATによって割り振られた第3のポートが、前記第2のピアから前記第1のTURNサーバへ送信される第2のパケットに対して前記対称型NATによって割り振られた第4のポートと異なることを、第2の指示に基づいて決定し、
    前記第4のポートの前記第3のポートへの第2のマッピングを実行する
    ようにさらに構成される、
    請求項8に記載の通信システム。
  11. 前記第2の指示は、前記第2のピアから送信される前記第2のパケットに挿入された第2の属性を備える、請求項10に記載の通信システム。
  12. 前記第1のTURNサーバは、前記第1のピアと前記第2のピアとの間のピアツーピア通信を、前記第1のマッピングおよび前記第2のマッピングに基づいて可能にするように構成され、前記ピアツーピア通信は、対話型接続性確立(ICE)プロトコルに基づく、請求項10に記載の通信システム。
  13. 前記第1のパケットおよび第2のパケットは、STUN(Simple Traversal of User Datagram Protocol)パケットである、請求項10に記載の通信システム。
  14. 前記第1のTURNサーバは、前記第1のTURNサーバおよび第2のTURNサーバの中から、前記TURN VIPにおける負荷に基づいて、前記TURN VIPによって選択される、請求項8に記載の通信システム。
JP2016525029A 2013-10-23 2014-10-23 対称型natのためのピアツーピア通信 Active JP6321792B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201361894852P 2013-10-23 2013-10-23
US201361894845P 2013-10-23 2013-10-23
US61/894,852 2013-10-23
US61/894,845 2013-10-23
US14/520,327 2014-10-21
US14/520,327 US9826044B2 (en) 2013-10-23 2014-10-21 Peer-to-peer communication for symmetric NAT
PCT/US2014/061961 WO2015061563A1 (en) 2013-10-23 2014-10-23 Peer-to-peer communication for symmetric nat

Publications (3)

Publication Number Publication Date
JP2016541153A JP2016541153A (ja) 2016-12-28
JP2016541153A5 JP2016541153A5 (ja) 2018-01-18
JP6321792B2 true JP6321792B2 (ja) 2018-05-09

Family

ID=52827197

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016525029A Active JP6321792B2 (ja) 2013-10-23 2014-10-23 対称型natのためのピアツーピア通信

Country Status (5)

Country Link
US (1) US9826044B2 (ja)
EP (1) EP3061229B1 (ja)
JP (1) JP6321792B2 (ja)
CN (1) CN105659568A (ja)
WO (1) WO2015061563A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9762508B2 (en) * 2014-10-02 2017-09-12 Microsoft Technology Licensing, Llc Relay optimization using software defined networking
US9942129B2 (en) * 2014-10-31 2018-04-10 Szegedi Tudományegyetem Communication method
CN105187567B (zh) * 2015-06-24 2019-01-08 东莞市南星电子有限公司 一种基于sip和ice的音视频通信方法
US10237236B2 (en) * 2015-06-25 2019-03-19 Microsoft Technology Licensing, Llc Media Session
TWI595765B (zh) 2015-10-22 2017-08-11 財團法人工業技術研究院 穿透網路位置轉換器之方法及通訊裝置
US9717110B1 (en) 2016-03-15 2017-07-25 Qualcomm Incorporated User equipment centric mobility management in a mesh network
US9713180B1 (en) 2016-03-15 2017-07-18 Qualcomm Incorporated Relay centric mobility management in a mesh network
US10348784B2 (en) * 2017-02-15 2019-07-09 Microsoft Technology Licensing, Llc Conferencing server directly accessible from public internet
US10523556B2 (en) * 2017-08-08 2019-12-31 Versa Networks, Inc. Method and system for routing connections in a software-defined wide area network
CN109714410B (zh) * 2018-12-24 2021-09-10 上海曼恒数字技术股份有限公司 一种数据传输方法、装置、设备及存储介质
US11582153B2 (en) 2020-05-01 2023-02-14 Microsoft Technology Licensing, Llc Load-balancing establishment of connections among groups of connector servers
KR102577736B1 (ko) * 2021-05-06 2023-09-19 주식회사 미디어스텍 전자장치의 연결 관리방법 및 연결 관리시스템

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8224985B2 (en) 2005-10-04 2012-07-17 Sony Computer Entertainment Inc. Peer-to-peer communication traversing symmetric network address translators
US8060626B2 (en) * 2008-09-22 2011-11-15 Sony Computer Entertainment America Llc. Method for host selection based on discovered NAT type
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
KR100765325B1 (ko) 2006-02-13 2007-10-09 삼성전자주식회사 Stun을 이용한 대칭형 네트워크 주소 변환 시스템 및그 방법
US20100257276A1 (en) 2007-11-22 2010-10-07 Nokia Corporation Virtual network interface for relayed nat traversal
CN101179581B (zh) * 2007-12-13 2010-06-09 北京邮电大学 一种采用ice中继候选地址进行媒体传输的方法
US7856506B2 (en) * 2008-03-05 2010-12-21 Sony Computer Entertainment Inc. Traversal of symmetric network address translator for multiple simultaneous connections
US8374188B2 (en) 2008-06-24 2013-02-12 Microsoft Corporation Techniques to manage a relay server and a network address translator
WO2011000405A1 (en) 2009-06-29 2011-01-06 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for relaying packets
TWI408936B (zh) * 2009-09-02 2013-09-11 Ind Tech Res Inst 網路穿透方法及網路通訊系統
CN102035900B (zh) 2009-09-24 2015-05-06 日电(中国)有限公司 用于通过中继方式进行nat穿越的方法、***和中继服务器
US8689307B2 (en) * 2010-03-19 2014-04-01 Damaka, Inc. System and method for providing a virtual peer-to-peer environment
WO2013067870A1 (zh) 2011-11-11 2013-05-16 ***通信集团公司 穿越中转服务器的方法以及相应的服务器、终端和***
US9497160B1 (en) * 2013-06-24 2016-11-15 Bit Action, Inc. Symmetric NAT traversal for direct communication in P2P networks when some of the routing NATs are symmetric
US8917311B1 (en) * 2014-03-31 2014-12-23 Apple Inc. Establishing a connection for a video call
TWI565261B (zh) * 2014-04-17 2017-01-01 財團法人資訊工業策進會 用於即時通訊的網路位址轉換穿透系統與方法
US10244003B2 (en) * 2014-09-25 2019-03-26 Microsoft Technology Licensing, Llc Media session between network endpoints

Also Published As

Publication number Publication date
WO2015061563A1 (en) 2015-04-30
JP2016541153A (ja) 2016-12-28
US20150113154A1 (en) 2015-04-23
EP3061229B1 (en) 2017-10-18
EP3061229A1 (en) 2016-08-31
US9826044B2 (en) 2017-11-21
CN105659568A (zh) 2016-06-08

Similar Documents

Publication Publication Date Title
JP6321792B2 (ja) 対称型natのためのピアツーピア通信
USRE47566E1 (en) NAT traversal for mobile network devices
JP5378494B2 (ja) リレーサーバを利用したデータ伝送システム及び方法
EP2449749B1 (en) Method and apparatus for relaying packets
CN100464540C (zh) 一种跨网关通信的方法
EP2896160B1 (en) Bandwidth probing messages
JP2013511207A (ja) スマートクライアントルーティング
EP2792126B1 (en) Virtual interface applications
TW201521392A (zh) 穿透網路位址轉換的方法、電腦可讀取媒體與連線中介系統
WO2016202059A1 (zh) 一种访问IPv6网络的方法及网关
US9088542B2 (en) Firewall traversal driven by proximity
EP2725765B1 (en) Method and system for TCP turn operation behind a restrictive firewall
JP2008545310A (ja) コンピュータ装置におけるデータのルーティング
US10412122B1 (en) Dynamic per-session NAT-behavior selection
CN108337331B (zh) 网络穿透方法、装置、***及网络连通性检查方法
Komu et al. Basic host identity protocol (HIP) extensions for traversal of network address translators
KR20110037833A (ko) Ip 네트워크에서의 직접 통신 제공 방법
Daigle et al. NAT traversal in peer-to-peer architecture
Yu et al. Establishing tcp connections between hosts behind nats
Jiang Enhancing IP anycast with location redirection for stateful communication
Komu et al. RFC 5770: Basic Host Identity Protocol (HIP) Extensions for Traversal of Network Address Translators
Led Report on” Mobility Management with Host Identity Protocol”

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171006

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171201

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20171201

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20171214

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: 20180312

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180405

R150 Certificate of patent or registration of utility model

Ref document number: 6321792

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150