JP2011517545A - UPnPとSTUNを組み合わせることに基づくNAT越え方法 - Google Patents

UPnPとSTUNを組み合わせることに基づくNAT越え方法 Download PDF

Info

Publication number
JP2011517545A
JP2011517545A JP2011503325A JP2011503325A JP2011517545A JP 2011517545 A JP2011517545 A JP 2011517545A JP 2011503325 A JP2011503325 A JP 2011503325A JP 2011503325 A JP2011503325 A JP 2011503325A JP 2011517545 A JP2011517545 A JP 2011517545A
Authority
JP
Japan
Prior art keywords
nat
node
port
upnp
relay
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011503325A
Other languages
English (en)
Other versions
JP5185435B2 (ja
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.)
Institute of Acoustics CAS
Original Assignee
Institute of Acoustics CAS
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 Institute of Acoustics CAS filed Critical Institute of Acoustics CAS
Publication of JP2011517545A publication Critical patent/JP2011517545A/ja
Application granted granted Critical
Publication of JP5185435B2 publication Critical patent/JP5185435B2/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
    • 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

Abstract

【課題】
本発明はUPnP技術とSTUN技術を組み合わせることに基づくNAT越えの方法に関する。
【解決手段】
当該方法は、UPnPとSTUNを効果的に組み合わせることにより、UPnPを利用したNAT越えが失敗した場合に、STUN方法で再びNATを越えるものであり、当該二種類の越える方法の各々の特徴を汲み取ることにより越え成功率を向上させる。また、対称型NATの越えについては、第三者のプロキシ転送による欠陥や、シンプルなポート逓増推測方法における盲目性を避けるために、NAT追加ポートがマッピングしたサンプル値に基づくポートマッピングの分布を推定する方法でポートを推測する方案を提出する。また、P2Pストリーミングメディアシステムにおいて、通信の両方ともNATの裏側にある場合については、中継サーバの負荷を分散するために、一部の帯域幅に余裕がある外部ネットワークにあった普通の通信ノードを補助中継ノードとする方法を提出し、システムのボトルネックを有効的に解除することができる。
【選択図】図2

Description

本発明は、コンピュータネットワークのP2Pストリーミングメディア技術に関し、特に、UPnPとSTUNを組み合わせることに基づくNAT越え方法に関するものである。
インターネットの発展及びブロードバンドアプリケーションの普及に伴い、ネットワークを利用してストリーミング生中継を行うことはネットワークアプリケーションの中心になっている。従来において、クライアント/サーバ構造のストリーミングシステムにおいては、サーバの帯域幅と処理能力の制限により拡張性が低下する。近年においては、P2P(Peer-to-Peer)ネットワークは、上記問題を効果的に解決する方案として極めて普及されている。P2Pモードにおいて、それぞれのノードはクライアントとサーバの機能を有し、それぞれのノードは他のノードからデータを受信するとともに他のノードにデータを送信する。このように、クライアントのアップロード機能を利用して、ストリーミングサーバの負荷を極めて抑制することができる。
一方、ネットワークのアドレススペースを節約するために、またはネットワークのセキュリティーを保障するために、従来において、インターネットにおいてはNAT(Network Address Translation:ネットワークアドレス変換)技術が多くに採用されている。この技術は、IPアドレスを1つのアドレッシングレルム(addressing realm)から他のアドレッシングレルムにマッピングする方法であり、例えば、RFC1918により定義されたプライベート未登録アドレスの内部の隔離されたアドレッシングレルムを、インターネットにおいてルーティング可能な全ワークで一括登録したアドレスの外部アドレッシングレルムにマッピングする。NATデバイスは、LANアドレッシングレルムとWANアドレッシングレルムとの間のそれぞれのネットワーク接続に、ダイナミックIPアドレスの変換を実施し、対応するパケットフィルタリング規則を設定して、条件を満たさないパケットに対しNATを越えさせない。
NATにより、Webサイトを見る等の基本的なインターネットアプリケーションをよくサポートできる。HTTP等のポートが固定されている一般的なアプリケーションプロトコルに対し、TCP/UDPヘッドを変換するだけで越えを実現できる。しかし、以下の原因により、P2Pストリーミングアプリケーションをサポートすることは難くなる。
(1)NATの特徴により、NAT内部のホストから主動的にNAT外部のホストに接続を行うことしかできない。外部のホストが直接にNAT内部のホストと接続を行うことが許容されない。したがって、WANにあるホストがLANにあるホストにメディアデータを請求したいときに接続ができず、両ホストの間はデータのやり取りができない。
(2)NATのポートマッピングは、静的ポートマッピングと動的ポートマッピングの二種類があり、静的マッピングは、静的に内部(IPinner,Portinner)と外部(IPouter,Portouter)のマッピング関係を追加することであり、動的マッピングは、LANにあるホストとWANにあるホストが通信するたびにマッピングを行うことであるが、同じ通信であっても、必ずしも同じマッピングを追加するとは限らない。P2Pストリーミングシステムにおいて、通信ノードがマルチメディアの通信に使用する通信ポートは、接続を行う際に両方が動的に協議したものであるので、どのマッピング追加方式にしても、P2Pストリーミングアプリケーションにおける対等なノードの間の動的な通信を行う要求を満たすことができない。
したがって、P2Pストリーミングアプリケーションには、ある程度NATを越える課題を解決する必要があり、さもなければ、通信システムが正常に作動できない。伝統的なNATは、ポートマッピングの方式により、下記の典型的な種類を含む。すなわち、フルコーンNAT(Full Cone)、制限付NAT(Restricted Cone)、ポート制限付NAT(Port Restricted Cone)、対称型NAT(Symmetric NAT)を含む。そのうち、前の三種のNATは、コーン型NAT(Cone NAT)とも通称される。これらの違いは、NATを通るパケットに対するフィルタリング規則が相違している点である。
従来において、通常使われるNAT越え方法は下記の種類がある。
(1)トンネルによるNAT越え:越える必要があるデータストリーミングをトンネルにカプセリングすることにより、NATを回避する。これは、トンネルにより越える基本的な技術的思想であり、マルチメディアとサーバの両方ともトンネルに対応することが必要であるので、大きく制限されている。
(2)UPnP:UPnPとは、プラグ&プレイ技術をネットワーク領域で拡張したものであり、ユーザ制御ノードがNATデバイスに制御情報を送信することでポートマッピングを追加し、NAT越えを実現する。UPnPによれば、既存のデバイスを変更する必要がないが、NAT機能を搭載したゲートウェイ、またはルータがUPnP機能をサポートする必要がある。従来において、数多くの大型ゲートウェイはUPnPをサポートしており、しかも簡単に配置することができる。従って、多くのP2Pアプリケーションは、UPnP技術を利用してNAT越えを解決している。しかし、UPnP機能は、一部のゲートウェイにサポートされない、または管理者に無効にされる場合もある。
(3)STUN:STUNは他の構想からNAT越えを実現したものであり、LANにあるホストは、WANにある越えサーバから予めNAT外側のグローバル(開放)アドレスを得て、他のノードと通信する際に直接的に当該グローバルアドレスを自分の通信アドレスとして、NAT越えを実現できる。STUNプロトコルの顕著なメリットは、従来のNATデバイスについて、なんらの変更する必要がないこと、及び、複数のNATが直列したネットワークで用いることができることである。但し、STUN方式は、TCP接続のNAT越えをサポートすることができず、また、STUNプロトコルは対称型NAT越えもサポートしない点において、制限されている。
また、プロキシ越え(proxy traverse)、転送サーバ(TURN)及びアプリケーション層ゲートウェイ(ALG)などによる複数種類の越え方法がある。近年においては、多くのP2Pストリーミングメディアシステムは単一のNAT越え方法を使用しており、種類ごとに制限される場合があるとともに、いくつかの方法を組み合わせると、数種類の方法がうまく動ける適当な組み合わせを得るのが難しいので、越えの成功率を保障できない。
また、対称型NAT越えについては、効率的な越え方法がないので、第三者のプロキシ越えからの協力により越えを行い、または簡単なポート逓増推測方法が必要である。この中、第三者からメディアデータを転送するときにパケットの遅延が大きくなり、紛失の可能性も高まると同時に、システム配置のコストも増える。また、従来において通用しているポート逓増推測方法は、経験によりNATに追加されたマッピングポート番号に1を加えて、次のNATに追加されるポートマッピングの推測結果としている。この方法は、NATが追加したポートがマッピングしたサンプル値に基づいて充分に分析されていないので、統計的には最適なものではないと思われる。同時に、通信の双方がNATの裏側にある場合に、双方とも相手のNATがマッピングしたWANのIPアドレス及びポート番号を知らないので、主動的に接続を行うことができない。この問題を解決するために、従来においては中継サーバによる越えの方式が多く使われているが、各中継サーバに通信負荷の上限があるので、ネットワークのノード通信量がサーバ負荷の上限値を超えると、中継サーバの過負荷(停止)を招く恐れがある。また、サーバの帯域幅にも上限があるので、併発したネットワーク通信量はサーバネットワークをブロックし、パケットを損失させるので、通信のボルトネックになる。
本発明は、上記の課題を鑑みてなされたものであり、従来の単一の越え方法と異なり、UPnPとSTUNを組み合わせることに基づくNAT越え方法を提案した。当該方法は、UPnPとSTUNを効果的に組み合わせることにより、越えの成功率を向上させる。また対称型NATの越えについては、第三者のプロキシ転送による欠陥や、シンプルなポート逓増推測方法における盲目性を避けるために、NAT追加ポートがマッピングしたサンプル値に基づくポートマッピングの分布を推定する方法(ポート追加サンプル推定と称する。)でポートを推測する方案を提出する。また、P2Pストリーミングメディアシステムにおいて、通信の両方ともNATの裏側にある場合については、中継サーバの負荷を分散するために、一部の帯域幅に余裕がある外部ネットワークにある普通の通信ノードを補助中継ノードとする方法(ノード中継補助と称する。)を提出し、システムのボトルネックを有効に解除することができる。
上記の目的を実現するために、本発明は、UPnPとSTUNを組み合わせることに基づくNAT越え方法であって、下記のステップを備える:
(1)P2Pストリーミングメディアシステムに加入したユーザノードは、先ずSimple Service Discovery ProtocolであるSSDPにより、LAN内でUPnPデバイスを検索するメッセージをブロードキャストするステップ:
void Search(char* name, const char* type)
ここで、UPnPの基準により、nameは“WANIPConnection”であり、typeは“service”であり、UPnPサービスを検索することを示す。
(2)UPnPサービスの検索に成功した場合は、Simple Object Access ProtocolであるSOAPにより、NATゲートウェイの制御URLにポートマッピングを追加する要求を送信するステップ:
InvokeCommand(char* name, char* args)
ここで、nameはUPnPデバイスに指示した制御指令AddPortMappingであり、argsはUPnP基準に従う必要とする複数のパラメーターであり、ポートマッピングが追加された後に、ユーザノードはWANにあるノードと接続し、データを送受信することができて、NAT越えを実現できる。
(3)検索が失敗した場合は、ユーザノードはSTUN機能ブロックを起動し、再びNAT越えを行うステップ:
void GetMapAddr(int& extIP, int& extPort, NatType& natType)
ここで、extIPとextPortはSTUN越えによって取得したNATの外部IPとポートであり、natTypeは越えによって判定されたNATタイプである。
また、前記ステップ(3)はさらに下記のステップを備える:
1)NATがコーン型NATである場合に、該ユーザノードは、取得した外部アドレスポートを利用して他のノードと通信し、NAT越えを実現するステップ。
2)NATが対称型NATである場合に、該ユーザノードは、ポート追加サンプル推定方法を利用してNAT越えを実行するステップ。
なお、前記ポート追加サンプル推定方法はさらに以下のステップを含む:
対称型NATの裏側にあるノードは、WANにあるSTUNサーバに順次三回の接続を行い、サーバのフィードバックから三回の接続毎に追加された3つのマッピングポートを取得してそれぞれをP,P,Pとし、ユーザノードは該3つの数字の変化規律に基づいて、下記の処理を実行するステップ:
2a)P,P,Pが等差数列であれば、対称型NATが追加したポートマッピングの方法は、順次に等差数列の公差dを逓増したものであると推定し、対称型NATの裏側にあるノードは、元の外部ポートにdを逓増したものを新たな外部通信ポートとして、データ送受信の負荷に追加し、他のノードとの通信ができる。
2b)P,P,Pが等差数列でなければ、追加されたポートマッピングはランダムであり、この場合は、追加ポートのサンプル値によりポートマッピングの総数Xを下記のように評価する:
ユーザノードは、再びSTUNサーバにN−3回の接続を行い、前述した初めて取得した3つのマッピングポートと合計がN個になるようサンプルの観測値を取得し、該サンプルの観測値が[a,b]の区間内に含まれているものと設定し、当該区間をM個のサブ区間(M<N)に分割する:
a=n<n<…<nM−1<n
さらに、サブ区間[n,ni+l](i=0,1,…M−1)がt個の観測値を含むと設定し、ベルヌーイの大数の法則及び確率密度の定義によって下記の式を得られる:
φ(x)=t/NΔn(Δn=ni+1−n
φ(x)のパターンは、ポートマッピングの総数Xが[a,b]上に分布するヒストグラムであり、φ(x)のパターンがより大きな値を有する際のΔn区間を分析することで、NATマッピングポートが通常そのサブ区間に分布すると判断され、当該縮まったサブ区間内にエルゴード理論を利用して、対称型NATの次の通信に追加するポートマッピングを推測し、推測のヒット率を向上させる。
前記本発明のUPnPとSTUNを組み合わせることに基づくNAT越え方法は、さらにノード中継補助の方法を備える。P2Pストリーミングメディアシステムにおいて、通信の双方ともNATの裏側にある場合に、ユーザノードは、一部の帯域幅に余裕を有するWANにある普通の通信ノードを中継補助ノードとして利用する。これはノード中継補助と称し、中継サーバの負荷を分散できる。
前記ノード中継補助の方法は、下記のステップを含む:
1)P2Pストリーミングメディアシステムに加入したWANノードは、まず中継サーバに登録し、中継サーバは、前記WANノードのリストを保存するステップ。
2)中継サーバは、ハートビートメカニズムを利用して、登録済みのWANノードを測定し、往復時間の遅延(RTT)が最も短いM個のノードを中継補助候補ノードとするステップ。
3)LANにあるユーザノードを中継サーバに登録する際に、中継サーバは該ユーザノードの情報を登録するとともに、WANノードのリストを該ユーザノードに送信するステップ。
4)LANにあるユーザノードは、ランダムにN個(N<M)のWANノードを選択して接続を行い、往復時間の遅延(RTT)が最も短いノードを自分の補助中継ノードとして選択するとともに、当該補助中継ノードに登録情報を送信するステップ。
5)ユーザノードは、補助中継ノードを決めると同時に、当該中継ノードに登録した他の通信ノードの情報を取得する。ユーザノードは他のNATの裏側にあるノードと通信する際に、先ず自分の中継補助ノードの登録リストと照合し、当該通信するノードが中継補助ノードの登録リストに存在する場合は、当該補助中継ノードを利用して中継し、そうではない場合は、中継サーバで中継するステップ。
本発明によれば、
1)UPnPとSTUNを有効に組み合わせることにより、UPnPを利用したNAT越えが失敗した場合に、STUN方法で再びNAT越えを行い、二種類の越え方法の長所を汲み取ることにより越えの成功率を向上させる。
2)対称型NATの越えについては、第三者のプロキシ転送による欠陥や、シンプルなポート逓増推測方法における盲目性を避けるために、NAT追加ポートがマッピングしたサンプル値に基づくポートマッピングの分布を推定する方法(単に、ポート追加サンプル推定と称する。)でポートを推測する方案を提出する。
3)P2Pストリーミングメディアシステムにおいて、通信の両方ともNATの裏側にある場合については、中継サーバの負荷を分散するために一部の帯域幅に余裕がある外部ネットワークにある普通の通信ノードを補助中継ノードとする方法(単に、ノード中継補助と称する。)を提案し、システムのボトルネックを有効に解除することができる。
従来のNATを含むP2Pストリーミングメディアシステムの構成図である。 本発明に係るUPnPとSTUNを組み合わせることに基づくNAT越え方法を説明するためのフローチャートである。 本発明に係るポート追加サンプル推定方法により取得したサンプル分布を示すヒストグラムである。 本発明に係るノード中継補助方法を説明するためのフローチャートである。
本発明は組み合わせたNAT越え方法を提案する。従来において通用される二種類の越え方法であるUPnPとSTUNを有効に組み合わせ、UPnPを利用したNAT越えが失敗した場合に、STUN方法で再びNAT越えを行い、当該二種類の越え方法の各々の長所を汲み取ることにより越えの成功率を向上させる。
図1は、NATを含むP2Pストリーミングメディアシステムの構成を示す。同図に、データソースサーバとデータ中継サーバはメディアデータのストリーミングと転送の機能を担当する。インデックスサーバは、所属領域のP2Pネットワークのメインインデックスサーバとして、該領域のP2Pネットワークにおける全部のノードの情報を保存している。ユーザ通信ノードAとBは、NAT機器Aの裏側にある内部LAN内に設けられており、ユーザ通信ノードCとDは、NAT機器Bの裏側にある別の内部LAN内に設けられており、ユーザ通信ノードEはWANにあるノードである。
通信ノードEは通信ノードAのデータを請求しようとしても、NATの存在により、直接的に接続を行うことができない。通信ノードEのデータ請求はNAT機器Aにより濾過されるので、通信ノードAはNATの越えを行う必要がある。
本発明の方法による具体的なフローチャートは、図2に示すように、通信ノードAは、先ずUPnPの方法を利用したポートマッピングを追加し、ポートマッピングが成功すると、WANにあるノードEとの接続を行うことができる。具体的には、下記3つのステップを含む。
(1)P2Pストリーミングメディアシステムに新たに追加されたユーザノードAは、先ずSimple Service Discovery ProtocolであるSSDPにより、LAN内でUPnPデバイスを検索するメッセージをブロードキャストする:
void Search(char* name, const char* type)
ここで、UPnP基準により、nameは“WANIPConnection”であり、typeは“service”であり、UPnPサービスを検索することを示す。
(2)UPnPサービスの検索が成功した場合は、ノードAはSimple Object Access ProtocolであるSOAPにより、NATゲートウェイの制御URLにポートマッピングを追加する要求を送信する:
InvokeCommand(char* name, char* args)
ここで、nameはUPnPデバイスに指示した制御指令AddPortMappingであり、argsはUPnP基準に従う必要とする複数のパラメーターである。このように、ポートマッピングが追加された後に、ユーザノードAはWANにあるノードEと接続し、データを送受信することができ、NAT越えを実現できる。
(3)検索が失敗した場合は、ユーザノードAはSTUN機能ブロックを起動し、再びNAT越えを行う:
GetMapAddr(int& extIP, int& extPort, NatType& natType)
ここで、extIPとextPortはSTUN越えによって取得したNATの外部IPとポートであり、natTypeは越えによって判断されたNATタイプである。
また、前記ステップ(3)は、さらに下記のステップを含む。
1)NATが対称型NAT(Symmetric NAT)を除く他の三種類のコーン型NAT(cone NAT)のいずれか1つである場合に、ユーザノードAは取得した外部アドレスポートを利用してWANノードEと通信し、NAT越えを実現できる。
2)NATが対称型NATである場合に、ノードAはポート追加サンプル推定方法を利用してNAT越えを実行する。
当該ポート追加サンプル推定方法は、以下のステップを含む:
対称型NATの裏側にあるノードAは、WANにあるSTUNサーバに順次三回の接続を行い、サーバのフィードバックから三回の接続で追加された3つのマッピングポートを取得してそれぞれP,P,Pとし、該3つの数字の変化規律に基づいて、下記の処理を実行するステップ:
2a)P,P,Pが等差数列であれば、対称型NATが追加したポートマッピングの方法は順次に等差数列の公差dを逓増したものであると推定する。これから対称型NATの裏側にあるノードAは、元の外部ポートにdを逓増したものを新たな外部通信ポートとして、データ送受信の負荷に追加し、他のノードEとの通信ができる。
2b)P,P,Pが等差数列でなければ、追加されたポートマッピングはランダムであり、この時、追加ポートのサンプル値によりポートマッピングの総数Xを下記のように評価する:
ノードAは、再びSTUNサーバにN−3回の接続を行い、前記初めて取得した3つのマッピングポートと合計がN個になるようサンプルの観測値を取得し、該サンプルの観測値が[a,b]の区間内に含まれているものと設定し、当該区間をM個のサブ区間(M<N)に分割する:
a=n<n<…<nM−1<n
さらに、サブ区間[n,ni+l](i=0,1,…M−1)がt個の観測値を含むと設定し、ベルヌーイの大数の法則(Bernoulli’s law of large numbers)及び確率密度の定義によって、下記の式を得られる:
φ(x)=t/NΔn(Δn=ni+1−n
φ(x)のパターンは、ポートマッピングの総数Xが[a,b]上に分布するヒストグラムであり(図3を参照)、φ(x)のパターンがどのΔn区間内により大きな値を有するかを分析して、NATマッピングポートは通常どのサブ区間に分布するかが判断できる。当該縮まった区間内にエルゴード理論を利用して対称型NATの次の通信に追加するポートマッピングを推測し、推測のヒット率を有効に向上させる。
また、通信ノードAは通信ノードCにデータを請求しようとすると、双方ともNATの裏側に位置しているので、直接的に接続を行うことができない。ここで、本発明は中継補助方法を提案し、通信ノードEを中継補助ノードとして両方の接続請求を転送する。具体的には、下記のステップを含む:
1)P2Pストリーミングメディアシステムに加入したWANノードEは、先ず中継サーバに登録し、中継サーバは、WANノードEを含むリストを保持する。
2)LANノードAを中継サーバに登録する際に、中継サーバはノードAの情報を登録するとともに、ノードAにWANノードEを含むリストを送信する。
3)その後、LANノードAは、往復時間の遅延が最も短いノードEを自分の中継補助ノードとして選択するとともに、当該ノードEに登録情報を送信する。
4)他のNATの裏側にあるノード(例えば、C、D)と通信するときに、まず、自分の中継補助ノードEが登録されたリストと照合し、通信するNATの裏側にあるノード(C、D)がリストに存在する場合は、該補助中継ノードを利用して中継を行い、そうではない場合は、中継サーバで中継する。これにより、図4に示すような数多くのほかのノードからの接続が要求されたときに、効率的にNAT越えの中継サーバの負荷を低減することができる。

Claims (4)

  1. 以下のステップを備えた、UPnPとSTUNを組み合わせることに基づくNAT越え方法。
    (1)P2Pストリーミングメディアシステムに加入したユーザノードは、まずSimple Service Discovery ProtocolであるSSDPにより、LAN内でUPnPデバイスを検索するメッセージをブロードキャストするステップ:
    Void Search(char* name, const char* type)
    ここで、UPnPの基準により、nameは“WANIPConnection”であり、typeは“service”であり、typeは“service”であり、UPnPサービスを検索することを示す。
    (2)UPnPサービスの検索に成功した場合は、Simple Object Access ProtocolであるSOAPにより、NATゲートウェイの制御URLにポートマッピングを追加する要求を送信するステップ:
    InvokeCommand(char* name, char* args)
    ここで、nameはUPnPデバイスに指示した制御指令AddPortMappingであり、argsはUPnP基準に従う必要がある複数のパラメーターであり、ポートマッピングが追加された後に、ユーザノードはWANにあるノードと接続し、データを送受信することができ、NAT越えを実現できる。
    (3)検索に失敗した場合は、ユーザノードはSTUN機能ブロックを起動し、再びNAT越えを行うステップ:
    void GetMapAddr(int& extIP, int& extPort, NatType& natType)
    ここで、extIPとextPortはSTUN越えによって取得したNATの外部IPとポートであり、natTypeは越えによって判定されたNATタイプである。
  2. 前記ステップ(3)はさらに以下のステップを備えたことを特徴とする請求項1に記載のUPnPとSTUNを組み合わせることに基づくNAT越え方法。
    1)NATはコーン型NATである場合に、該ユーザノードは、取得した外部アドレスポートを利用して他のノードと通信し、NAT越えを実現するステップ。
    2)NATは対称型NATである場合に、該ユーザノードは、ポート追加サンプル推定方法を利用してNAT越えを実行するステップ。
    前記ポート追加サンプル推定方法は、さらに以下のステップを含む:
    対称型NATの裏側にあるノードは、WANにあるSTUNサーバに順次に三回の接続を行い、サーバのフィードバックから三回の接続毎に追加された3つのマッピングポートを取得してそれぞれP,P,Pとし、該3つの数字の変化規律に基づいて、下記の処理を実行するステップ:
    2a)P,P,Pが等差数列であれば、対称型NATが追加したポートマッピングは、順次に等差数列の公差dを逓増したものであり、対称型NATの裏側にあるノードは、元の外部ポートにdを逓増したものを新たな外部通信ポートとして、データ送受信の負荷に追加し、他のノードとの通信ができる。
    2b)P,P,Pが等差数列でなければ、追加されたポートマッピングはランダムであり、ユーザノードは追加ポートのサンプル値によりポートマッピングの総数Xを下記のように評価する:
    ユーザノードは、再びSTUNサーバにN−3回の接続を行い、前述した初めて取得した3つのマッピングポートと合計がN個になるようサンプルの観測値を取得し、該サンプルの観測値が[a,b]の区間内に含まれていると設定し、当該区間をM個のサブ区間(M<N)に分割する:
    a=n<n<…<nM−1<n
    さらに、サブ区間[n,ni+l](i=0,1,…M−1)がt個の観測値を含むと設定し、ベルヌーイの大数の法則及び確率密度の定義によって下記の式を得られる:
    φ(x)=t/NΔn(Δn=ni+1−n
    φ(x)のパターンは、ポートマッピングの総数Xが[a,b]上に分布のヒストグラムであり、φ(x)のパターンがより大きな値を有する際のΔn区間を分析することで、NATマッピングポートが通常該サブ区間に分布されると判断され、当該縮まったサブ区間内にエルゴード理論を利用して、対称型NATの次の通信に追加するポートマッピングを推測し、推測のヒット率を向上させる。
  3. P2Pストリーミングメディアシステムにおいて、通信の双方ともNATの裏側にある場合に、ユーザノードは、一部の帯域幅に余裕を有するWANにある普通の通信ノードを中継補助ノードとして利用するノード中継補助方法、
    をさらに備えたことを特徴とする請求項1に記載のUPnPとSTUNを組み合わせることに基づくNAT越え方法。
  4. 前記ノード中継補助方法は、
    1)P2Pストリーミングメディアシステムに加入したWANノードは、先ず中継サーバに登録し、中継サーバは、前記WANノードのリストを保存するステップと、
    2)中継サーバは、ハートビートメカニズムを利用して、登録済みのWANノードを測定し、往復時間の遅延が最も短いM個のWANノードを中継補助候補ノードとするステップと、
    3)LANにあるユーザノードは中継サーバに登録し、中継サーバはユーザノード情報を登録するとともに、WANノードのリストをユーザノードに送信するステップと、
    4)ユーザノードは、ランダムにN個(N<M)のWANノードを選択して接続を行い、往復時間の遅延が最も短いノードを自分の補助中継ノードとして選択するとともに、当該補助中継ノードに登録情報を送信するステップと、
    5)ユーザノードは、補助中継ノードを決めると同時に、当該補助中継ノードに登録された他の通信ノードの情報を取得し、ユーザノードは他のNATの裏側にあるノードと通信する際に、先ず自分の中継補助ノードの登録リストと照合し、当該通信するノードが中継補助ノードの登録リストに存在する場合は、当該補助中継ノードを利用して中継し、そうではない場合は、中継サーバで中継するステップと、
    を備えたこと特徴とする請求項3に記載のUPnPとSTUNを組み合わせることに基づくNAT越え方法。
JP2011503325A 2008-04-11 2009-03-05 UPnPとSTUNを組み合わせることに基づくNAT越え方法 Active JP5185435B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN200810103849.6 2008-04-11
CN200810103849.6A CN101557388B (zh) 2008-04-11 2008-04-11 一种基于UPnP和STUN技术相结合的NAT穿越方法
PCT/CN2009/000235 WO2009124450A1 (zh) 2008-04-11 2009-03-05 一种基于UPnP和STUN技术相结合的NAT穿越方法

Publications (2)

Publication Number Publication Date
JP2011517545A true JP2011517545A (ja) 2011-06-09
JP5185435B2 JP5185435B2 (ja) 2013-04-17

Family

ID=41161526

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011503325A Active JP5185435B2 (ja) 2008-04-11 2009-03-05 UPnPとSTUNを組み合わせることに基づくNAT越え方法

Country Status (4)

Country Link
US (1) US8560607B2 (ja)
JP (1) JP5185435B2 (ja)
CN (1) CN101557388B (ja)
WO (1) WO2009124450A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010138972A2 (en) 2009-05-29 2010-12-02 Abacast, Inc. Selective access of multi-rate data from a server and/or peer
CN101841484B (zh) * 2010-05-12 2013-01-02 中国科学院计算技术研究所 一种在结构化p2p网络中实现nat穿越的方法和系统
CN102340520B (zh) * 2010-07-20 2014-06-18 上海未来宽带技术股份有限公司 一种p2p网络应用系统中私网检测与穿越的复合方法
CN102025769B (zh) * 2010-09-10 2013-07-17 香港城市大学深圳研究院 一种分布式互联网接入方法
KR101885133B1 (ko) 2011-02-01 2018-08-03 삼성전자주식회사 디지털 디바이스에서 어플리케이션 자동 인스톨 기능을 제공하기 위한 장치 및 방법
US8930959B2 (en) 2011-05-13 2015-01-06 Orions Digital Systems, Inc. Generating event definitions based on spatial and relational relationships
CN102571797B (zh) * 2012-01-16 2015-03-18 何建亿 一种通过UPnP改善STUN-P2P穿透率与稳定性的方法
CN103220377A (zh) * 2012-05-08 2013-07-24 西北工业大学 一种nat穿越以及带宽复用的系统和方法
US9591070B2 (en) * 2012-12-19 2017-03-07 Hive Streaming Ab Multiple requests for content download in a live streaming P2P network
CN104184755A (zh) * 2013-05-21 2014-12-03 华为终端有限公司 一种网页实时通信方法、系统及终端
CN103442224A (zh) * 2013-09-09 2013-12-11 杭州巨峰科技有限公司 一种基于nat穿透的视频监控访问策略和实现方法
CN103795819B (zh) * 2014-01-27 2017-02-01 宁波键一生物科技有限公司 P2p应用中基于nat的终端间的数据传输方法
CN105208139B (zh) * 2014-06-26 2018-08-07 浙江大华技术股份有限公司 一种终端建立连接的方法、终端和服务器
CN104660728B (zh) * 2015-02-13 2018-01-19 上海交通大学 基于智能家居控制系统的nat穿透方法
CN106331195B (zh) * 2015-06-23 2020-01-14 中兴通讯股份有限公司 数据接收、发送方法及装置
CN104994184A (zh) * 2015-06-25 2015-10-21 北京广密华安科技有限公司 一种nat穿透方法和装置
CN105141711B (zh) * 2015-08-24 2019-03-26 北京息通网络技术有限公司 一种基于大数据分析的对称nat穿越方法及系统
CN105072213B (zh) * 2015-08-28 2018-12-28 迈普通信技术股份有限公司 一种IPSec NAT双向穿越方法、系统及VPN网关
CN105163083B (zh) * 2015-09-10 2018-09-18 浙江宇视科技有限公司 一种视频数据的传输路径的确定方法和装置
TWI595765B (zh) * 2015-10-22 2017-08-11 財團法人工業技術研究院 穿透網路位置轉換器之方法及通訊裝置
CN105430066A (zh) * 2015-11-06 2016-03-23 浪潮软件集团有限公司 一种基于p2p技术的税控设备互联方法
CN105979022B (zh) * 2016-04-28 2020-10-02 深圳市Tcl高新技术开发有限公司 一种基于UPnP协议的NAT穿透方法及系统
CN106210092B (zh) * 2016-07-19 2019-08-06 天彩电子(深圳)有限公司 一种融合upnp及stun的p2p穿越方法及其系统
CN107580082B (zh) * 2017-09-18 2021-03-26 北京奇艺世纪科技有限公司 一种对称型nat的穿透方法及装置
CN107360275B (zh) * 2017-09-18 2021-01-22 北京奇艺世纪科技有限公司 一种对称型nat端口的预测方法及装置
CN112491591B (zh) * 2020-11-10 2023-05-30 杭州萤石软件有限公司 一种通用即插即用UPnP端口映射方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005151142A (ja) * 2003-11-14 2005-06-09 Sony Corp 情報通信システムおよび方法、情報処理装置および方法、プログラム並びに記録媒体
JP2007096554A (ja) * 2005-09-28 2007-04-12 Nec Access Technica Ltd 通信システム、ブロードバンドルータ、情報処理装置及びそれらに用いるnat越え機能実現方法
JP2007195195A (ja) * 2004-06-07 2007-08-02 Sling Media Inc ネットワーク経由でメディアストリームを受信し再生する方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002234258A1 (en) * 2001-01-22 2002-07-30 Sun Microsystems, Inc. Peer-to-peer network computing platform
ATE387049T1 (de) * 2002-07-08 2008-03-15 Packetfront Sweden Ab Dynamische portkonfiguration eines netzwerkgerätes
US7418486B2 (en) * 2003-06-06 2008-08-26 Microsoft Corporation Automatic discovery and configuration of external network devices
US7788378B2 (en) * 2005-04-22 2010-08-31 Microsoft Corporation Apparatus and method for community relay node discovery
US20070237133A1 (en) * 2005-10-07 2007-10-11 Steven Woods System and method for providing content, applications, services and digital media to users in a peer-to-peer network
CN100428741C (zh) * 2006-03-02 2008-10-22 华为技术有限公司 通信方法
CN1976356A (zh) * 2005-11-28 2007-06-06 华为技术有限公司 一种网络地址转换穿透系统、方法和用户设备
US20090316687A1 (en) * 2006-03-10 2009-12-24 Peerant, Inc. Peer to peer inbound contact center
CN100435530C (zh) * 2006-04-30 2008-11-19 西安交通大学 一种多机服务器系统中双向负载均衡机制的实现方法
US8204034B2 (en) * 2007-01-10 2012-06-19 Motorola Solutions, Inc. Method and device for transmitting data packets
US8693392B2 (en) * 2007-02-21 2014-04-08 Avaya Canada Corp. Peer-to-peer communication system and method
US8656017B2 (en) * 2007-05-16 2014-02-18 Microsoft Corporation Peer-to-peer collaboration system with edge routing
US8631155B2 (en) * 2007-06-29 2014-01-14 Microsoft Corporation Network address translation traversals for peer-to-peer networks
TW200920030A (en) * 2007-10-18 2009-05-01 D Link Corp The method to puncture the firewall for building the linking channel between the network terminal devices
US8077602B2 (en) * 2008-02-01 2011-12-13 International Business Machines Corporation Performing dynamic request routing based on broadcast queue depths
US7962627B2 (en) * 2008-12-04 2011-06-14 Microsoft Corporation Peer-to-peer network address translator (NAT) traversal techniques

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005151142A (ja) * 2003-11-14 2005-06-09 Sony Corp 情報通信システムおよび方法、情報処理装置および方法、プログラム並びに記録媒体
JP2007195195A (ja) * 2004-06-07 2007-08-02 Sling Media Inc ネットワーク経由でメディアストリームを受信し再生する方法
JP2007096554A (ja) * 2005-09-28 2007-04-12 Nec Access Technica Ltd 通信システム、ブロードバンドルータ、情報処理装置及びそれらに用いるnat越え機能実現方法

Also Published As

Publication number Publication date
JP5185435B2 (ja) 2013-04-17
CN101557388A (zh) 2009-10-14
CN101557388B (zh) 2012-05-23
US8560607B2 (en) 2013-10-15
WO2009124450A1 (zh) 2009-10-15
US20110264739A1 (en) 2011-10-27

Similar Documents

Publication Publication Date Title
JP5185435B2 (ja) UPnPとSTUNを組み合わせることに基づくNAT越え方法
US8224985B2 (en) Peer-to-peer communication traversing symmetric network address translators
USRE47566E1 (en) NAT traversal for mobile network devices
US7684397B2 (en) Symmetric network address translation system using STUN technique and method for implementing the same
CA2678714C (en) Bootstrapping in peer-to-peer networks with network address translators
US8626879B2 (en) Systems and methods for establishing network connections using local mediation services
US8631155B2 (en) Network address translation traversals for peer-to-peer networks
US8650312B2 (en) Connection establishing management methods for use in a network system and network systems using the same
TWI484804B (zh) 網路系統之資料管理方法及其相關系統
CN111435922B (zh) 一种带宽共享方法
WO2009000181A1 (fr) Procédé servant à acquérir des ressources transversales, un nœud pair à pair et un système pair à pair
US10735476B1 (en) Connection service with network routing
US10594746B1 (en) Connection service with network routing
Zhang et al. A NAT traversal mechanism for peer-to-peer networks
Duarte Jr et al. Transparent communications for applications behind NAT/firewall over any transport protocol
TW201616844A (zh) 解決網路位址轉譯器之連線限制的網路連線系統及其方法
Daigle et al. NAT traversal in peer-to-peer architecture
Zhao et al. UPnP Extensions for Public IPv4 Sharing in IPv6 Environment
KR20050079409A (ko) 네트워크 패킷 전달 서버에서의 고속 데이터 전달 방법
KR20090084132A (ko) 방화벽 환경에서의 웹포트를 통한 데이터 통신 방법
KR20130068205A (ko) 주소 해석 장치를 이용한 노드간 통신 방법 및 그 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120911

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121210

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130117

R150 Certificate of patent or registration of utility model

Ref document number: 5185435

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160125

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250