![]() 複数同時接続のためのシンメトリックnatの通過
专利摘要:
シンメトリックNATの背後にあるノード用の、NAT経過中の複数接続を扱う技術が開示される。シンメトリックNAT経過中に接続が失敗する確率は、ポート予測後のクリティカルタイムウィンドウを直列化することで低下する。ひとたび1番目の接続用のポート予測が始まると、それに続く接続用のポート予測は、1番目の接続のための接続性チェックが始まるまで遅延される。他のノードへ複数同時に接続するためのNAT通過を扱うために、この処理は繰り返される。 公开号:JP2011514100A 申请号:JP2010549721 申请日:2009-02-23 公开日:2011-04-28 发明作者:豊 竹田 申请人:株式会社ソニー・コンピュータエンタテインメント; IPC主号:H04L43-00
专利说明:
[0001] 本出願は、2008年3月5日に出願された米国出願第12/043,080号の優先権を主張し、開示内容全体を参照によりここに完全に組み入れる。] [0002] 本発明の実施の形態はコンピュータネットワークに関し、より具体的には、コンピュータネットワーク上のNAT(network address translator)を横断するピアツーピア通信に関する。] 背景技術 [0003] NAT機能付きルータの使用は、外部ネットワークから内部ネットワークへのアクセスを妨げることがありうる。このことは、VoIP(voice communication over the Internet)として知られるインターネットを通じた音声通信やオンラインゲーム等のピアツーピアのアプリケーションで特有の問題となりうる。NATは、LAN(local area network)がプライベートIPアドレスのセットを内部トラフィックに利用し、グローバルIPアドレスを外部トラフィックに利用することを可能にするインターネットの標準である。NAT機能を持ったノードは、しばしば「NATボックス(NAT box)」と呼ばれる。] [0004] NATは(文字どおり)、ふたつのネットワーク間のネットワーク(IP)アドレスを翻訳する。NAPT(Network Address Port Translation)はIPアドレスのみならず、転送レイヤのプロトコルのポート番号も翻訳する。NAT/NAPTはよい特性を持っているが、重大な副作用も存在する。もし翻訳が動的に実行されると、外部ネットワークのノードは、内部ネットワーク内のノードに連絡するためのNAT条のIPアドレス(およびポート番号)を前もって知るすべがない。都合の悪いことに、これは現在の市場に展開されている住宅およびSOHOのルータの最も日常的な振る舞いである。] [0005] NATは一般的に、フルコーン、制限付きコーン、ポート制限付きコーン、またはシンメトリックに分類することができる。フルコーンNATは、同じ内部IPアドレスおよびポートからのすべてのリクエストを同じ外部IPアドレスおよびポートにマップする。さらに、任意の外部ホストは、マップされた外部アドレスにパケットを送ることにより、フルコーンNATを通して内部ホストにパケットを送ることができる。制限付きコーンNATでは、同じ内部IPアドレスおよびポートからのすべてのリクエストは同じ外部IPアドレスおよびポートにマップされる。フルコーンNATとは違って、IPアドレスがXである外部ホストが内部ホストにパケットを送ることができるのは、内部ホストがそのIPアドレスがXである外部ホストにパケットを以前送ったことがある場合に限られる。ポート制限付きコーンNATは制限付きコーンと似ているが、制限はポート番号も含む。具体的には、IPアドレスXかつポート番号Pの外部ホストが、ある内部ホストにパケットを送ることができるのは、内部ホストが以前IPアドレスXかつポート番号Pにパケットを送ったことがある場合に限られる。] [0006] シンメトリックNATでは、同じ内部IPアドレスおよびポートから特定の宛先IPアドレスおよびポートへのすべてのリクエストは、同じ外部IPアドレスおよびポートにマップされる。もし、同じ内部ホストが、同じ送信元アドレスおよびポートをもつが宛先が異なるパケットを送信するなら、異なるマッピングが使われる。さらに、パケットを受信する外部ホストだけがUDPパケットを内部ホストに送り返すことができる。シンメトリックNATは、通過において最も問題のある種類のNATとなる傾向がある。シンメトリックNAT通過のためのひとつの技術は、「ポート予測」として知られている。これは米国特許出願公開20070076729A1に詳細に記載されており、参照によりここに組み入れる。この種類のシンメトリックNATの通過では、第1のノードはシンメトリックである第1のNATの背後にあり、第2のノードは第2のNATの背後にある。第1のノードは第1のNAT上における予測された転送アドレスのリストを構築する。予測された転送アドレスを用いて、第2のノードで接続性チェックが実行される。] 発明が解決しようとする課題 [0007] NATの18%がシンメトリックであると推定され、また接続の失敗率のうち10%以上は、ポート予測なしと予測されている。NAT通過を含むいくつかのアプリケーションでは、最大で64個の同時接続が要求されることもあり得る。ポート予測がそのようなアプリケーションで確実に動作するか否かは明確でない。] [0008] 本発明の実施の形態はこのような文脈の中で生じた。] 課題を解決するための手段 [0009] 上記課題を解決するために、本発明のある態様は、第1のシンメトリックNAT(network address translator)の後ろに位置している第1のノードと、2またはそれ以上の他のノードとの間をネットワークを通じてピアツーピア接続するための方法である。この方法は、a)前記第1のノードと第2のノードとの間でコミュニケーションセッションを開始し、および前記第1のノードのある前記第1のNAT上における予測された転送アドレスのリストを構築するためにポート予測を実行し、b)予測された転送アドレスのリストを含む接続リクエストメッセージを前記第1のノードから第2のノードへ送信し、c)前記第1のノードにおいて前記接続リクエストメッセージの暫定応答を受信し、d)前記予測された転送アドレスを使って前記第1のノードと前記第2のノードとの間の接続性チェックを実行し、e)d)が始まるまで、前記第1のノードと第3のノードとの間のコミュニケーションのためのポート予測を遅延する。] 図面の簡単な説明 [0010] 本発明の実施の形態は、添付の図面と併せて、以下の詳細な説明を考慮することによって容易に理解される。 図1Aと図1Bとはポート予測を用いたNAT通過を示すメッセージの流れの図である。 本発明の実施の形態に係る修正されたポート予測を示すタイミング図である。 本発明の実施の形態に係るふたつのノード間のNAT通過のためのシステムを示す概略図である。 本発明の実施の形態に係るふたつのノード間のNAT通過の方法を示すフロー図である。 同時予測の問題を示すネットワークを通じて通信する3つのノードの概略図である。 本発明の実施の形態に係るポート予測を実行するように構成されたノードの概略図である。] 図1A 図1B 実施例 [0011] 以下の詳細な説明には、説明のための多くの具体的な詳細事項が含まれるが、それらに対する多くの変更や修正も本発明の技術範囲に含まれることは、当業者であれば誰でも理解するであろう。したがって、以下に説明する本発明の例示的な実施の形態は、クレームされた発明の一般性をなんら損なうことなく、また限定も行うことなく記載されている。] [0012] II.概要 ポート予測の技術はシンメトリックNAT(Network Address Translator)を通過するために用いられる。もしシンメトリックNATの背後にあるノードが、多くの遠隔のノードに同時に接続することを試みると、高い確率で予測は失敗する。本発明の実施の形態は、同時にポート予測する場合に生じる接続の失敗を、前の要求が接続性チェックの段階に到達するまで新しい要求を保留することによって回避する。これにより、ポート予測の問題を引き起こすことなく、ひとつのノードがシンメトリックNATを通して複数の同時接続することを可能にする。] [0013] III.用語 本明細書において、下記の用語は表1に示された意味を持つ。] [0014] 略語 本明細書において、下記の略語は表2に示された意味を持つ。] [0015] IV.問題分析 ポート予測の失敗の基本的な問題は、図1Aおよび図1Bとを参照して理解されよう。図1Aは、第1のノード2がシンメトリックNAT(図示せず)の背後にあるときのNAT通過の基本的な流れを示す。第2のノード4と通信を開始するために、第1のノード2はSTUNサーバ6にバインディングリクエスト10を送信する。その応答として、STUNサーバ6はシンメトリックNATからのアドレス情報12を送り返す。アドレス情報12とポート予測とを用いることで、第1のノード2はポート番号を含む候補となるアドレスのリストを構築することができる。第1のノード2は、リスト付きの接続リクエストを、シグナリングサーバ8を経由してノード4に送信することができる。第2のノード4もバインディングリクエスト16をSTUNサーバ6に送信し、その応答としてアドレス情報を受信してもよい。アドレス情報18を用いて、第2のノード4はそれ自身の候補のリストを生成し、暫定応答20内でそのリストを第1のノード2に送信してもよい。その後、第1および第2のノードはチェックパケット22、24を送信することで接続性チェックを実行してもよい。] 図1A 図1B [0016] クリティカルタイムウィンドウTC1は、第1のノード2のために、バインディングリクエスト10の送信と1番目のチェックパケット22の送信との間に存在することに留意する。この間、第1のノードによって実行されるポート予測は、バインディングリクエスト10に対する応答としてSTUNサーバ4によって送信されたアドレス情報12に基づく。もしこのクリティカルタイムの間にアドレス情報が変化すると、ポート予測は失敗するかも知れない。もし第1のノード2が第3のノード(図示せず)との通信のために別のバインディングリクエストを開始すると、アドレス情報が変化しうる。同様のクリティカルタイムウィンドウTC2が、第2のノード4用に、第1のノード2からの接続要求14への応答と1番目のチェックパケット24の送信との間に存在する。] [0017] 一般に、NAT通過のためのクリティカルタイムウィンドウは、1番目の接続性チェックのパケットのセットが送信されたときに終了する。図1Aを参照すると、第1のノード2用のクリティカルタイムウィンドウTC1は、1番目のチェックパケット22のセットが送信されたときに終了する。第2のノード4用のクリティカルタイムウィンドウTC2は、1番目のチェックパケット24のセットが送信されたときに終了する。] 図1A [0018] 図1Aに関して記載されたシンメトリックNATの通過は一般に、あるひとつのノードと他のノードとの間の通信には非常によく機能する。もしあるノードが他の複数のノードに多数同時に接続することを試みると、予期せぬ問題が発生しうる。そのような状況は、例えばマルチプレイヤのオンラインゲームで生じうる。図1Bは、シンメトリックNATの背後にあるノード上で動いている単一のアプリケーション30による多数の通信セッションにおける問題を示す。例として、アプリケーション30は1番目のセッション32を開始する。1番目のセッション32の中で、アプリケーション30はノードAへの接続を試みる。1番目のセッション32はバインディングリクエストから接続の交渉を開始し、暫定応答の受信に続いて接続性チェックを始める。しかし、クリティカルタイムウィンドウTC1の途中で、アプリケーション30がノードBとの通信を試みる2番目のセッション34を開始したとする。2番目のセッション34用の交渉の一部として、新しいNATバインディングリクエストがSTUNサーバに送信されることになる。これはNAT上のポートの割り当てを変更する。都合の悪いことに、1番目のセッション32は、ノードAとの通信用のポート予測のための、前のポート割り当てに依存している。この結果、1番目のセッション32のためのポート予測は失敗し、所定のタイムアウト期間が経過した後に1番目のセッションはタイムアウトとなる。従来のポート予測スキームは、上述した顕著なポート予測の不具合に陥りやすい、問題となる特有な性質にもかかわらず、一般的には認識されていない。] 図1A 図1B [0019] IV.解決手法 本発明の実施の形態は、複数のポート予測における問題を、同時に多数の接続を確立しているNAT通過の交渉段階の間、「クリティカルウィンドウ」を直列化することによって克服する。マルチプレイヤのオンラインゲームのようなある種のアプリケーションが複数のピアツーピア接続の確立をサポートできるようになる点に留意する。] [0020] 本発明のある実施の形態では、クリティカルタイムウィンドウの直列化が、2またはそれ以上のノードについてネットワークを経由してピアツーピア接続を開始しようとする、シンメトリックNATの後ろに位置しているノード上に実装されてもよい。具体的には、第1のノードと第2のノードとの間でコミュニケーションセッションを開始し、シンメトリックNAT上における予測された転送アドレスのリストを構築し、その後第1のノードから第2のノードへの予測された転送アドレスのリストを含む接続リクエストメッセージを送信してもよい。接続リクエストメッセージに対する暫定応答を受信したとき、第1のノードは、予測された転送アドレスを使って、例えばパケットを送信する等、第1のノードと第2のノードとの間の接続性チェックを実行してもよい。第1のノードは、接続性チェックが始まるまで第1のノードと第3のノードとの間のコミュニケーションのためのポート予測を遅延することにより、クリティカルタイムウィンドウを直列化してもよい。] [0021] 同様に、クリティカルタイムウィンドウの直列化は、1またはそれ以上のノードとNAT通過の交渉をしている間にネットワークを経由してピアツーピア接続を開始するための接続リクエストを受信するシンメトリックNATの背後にあるノード上で実装されてもよい。そのようなノードが他のノードから接続リクエストメッセージを受信するとき、ポート予測を実行し、予測されたアドレスのリストを含む接続リクエストメッセージに対する暫定応答を送信し、接続性チェックを実行してもよい。追加ノードとのコミュニケーションのためのポート予測は、接続性チェックが始まるまで遅延されてもよい。] [0022] 具体的に、図2のタイミング図に示すように、第1のノード2はN個の接続リクエストR1、R2、・・・、RNを同時に生成または受信してもよい。1番目のリクエストR1は図1Aに関して上述したように処理されてもよい。しかしながら、それに続くリクエストR2、・・・、RNは、生成または受信した順番で直列的に並べられる。特に、それに続くリクエストそれぞれは、ポート予測を始める前に、その前にあるリクエストそれぞれのクリティカルタイムウィンドウTCが経過するまで待機する。] 図1A 図2 [0023] 上述したように、タイムアウト期間TO内に接続か確立できない場合、接続は失敗しうる。したがって、タイムアウト期間TOはN個全ての接続が確立できるように十分に長いことが望ましい。例えば、接続用の全てのクリティカルタイムウィンドウTCであり、ある接続の最大数を仮定すると、タイムアウト期間TOはNmaxTC+Tconn未満とすべきである。ここで、Tconnは接続性チェックのための時間であり、Nmaxは同時接続しうる最大の数である。] [0024] 図3に示すように、第1のノード102は、第1のNAT103を経由してパブリックネットワークPNW(例えばインターネット)と物理的に接続している第1のプライベートネットワークNW1内に属する。同様に、第2のノード104は第2のプライベートネットワークNW2内に属し、第2のNAT105を経由して同じパブリックネットワークにアクセスすることができる。プライベートネットワークNW1とNW2はそれぞれ第1および第2のノード102、104や第1および第2のNAT103、105に加えて、他のノードやNATを含んでもよい。他のプライベートネットワークもまた、パブリックネットワークPNWと接続されていてもよい。パブリックネットワークPNWはSIPプロキシサーバ100とSTUNサーバ101とを含む。第1のノード102は、第1のNAT103の背後にある第1のプライベートネットワークNW1の中でのみ有効なプライベートIPアドレスを持っている。第1のノード102は、グローバルにただひとつのルーティング可能なIPアドレスをもっており、第1のNAT103は、パブリックネットワークとプライベートネットワークとの間のIPアドレスおよびポートの翻訳を実行する。同様に、第2のノード104は第2のNAT105の背後にある第2のプライベートネットワークNW2の中でのみ有効なプライベートIPアドレスを持っている。第2のノード104はグローバルにだだひとつの、ルーティング可能なIPアドレスを持っており、第2のNAT105は、パブリックネットワークとプライベートネットワークとの間のIPアドレスおよびポートの翻訳を実行する。] 図3 [0025] ノード102、104は、例えばオーディオ/ビデオ(A/V)チャット、マルティメディアストリーミング装置、ファイル共有ノード、オンラインゲームモジュール等をホストするサーバとすることができる。ノード102、104それぞれは、図6の方法のステップを実装するための命令等の命令を実行するときに特定の目的のコンピュータとなる、汎用的な目的のコンピュータであってもよい。例としては、ノード102および104はSIPユーザエージェントであり、SIPプロキシサーバ100を通して各々でメッセージを送受信できるものであってもよい。ノード102および104はSTUNクライアントでもある。それ故、第1のノード102は、STUNプロトコルを使ってSTUNサーバ101と通信することにより第1のノード102とSTUNサーバ101との間の通信経路内にあるNATの存在とその種類とを見出すことができる。第2のノード104も同様に、第2のノード104とSTUNサーバ101との間にあるNATの存在とその種類とを見出すことができる。] 図6 [0026] 本発明の実施の形態に係るNAT通過の方法は、図3のブロック図と図4のフロー図とを同時に参照することによって理解されよう。はじめに、ノード102、104それぞれは、図4の202、204に示すようにSTUNプロトコルを使ってNAT探索を実行する。図に示す例では、第1のノード102は、第1のNAT103の背後にあってその種類はシンメトリックであることを探知する。第2のノード104もまた、第2のNAT105の背後にあってその種類は、例えばポート制限コーンであることを探知する。続いて、206、208に示すように、ノード102と104とはともに、ネットワークに参加するために自身をSIPプロキシサーバ100に登録する。これはSIPプロキシサーバ100に向かう第1および第2の信号経路116、117を確立する。ひとたび確立されると、SIPプロキシサーバ100は、第1および第2の信号経路116、117を通して第1および第2のノード102、104それぞれにメッセージを転送することができる。] 図3 図4 [0027] 例として、第1のノード102が第2のノード104とピアツーピアの接続を確立したいとする。第1のノード102は新しいピアツーピア接続のためのローカルポート107を割り当てる。続いて第1のノード102はローカルポート107からSTUNサーバ101にバインディングリクエスト118を送信することによって外部ポート112を取得する。バインディングリクエストの送信は、第1のノード102用のクリティカルタイムウィンドウを開始する。第1のノード102は第1のNAT103の存在とその種類がシンメトリックであることを知っているので、210に示すようにポート予測を実行し、転送アドレス107、112、113、および114のリストを構築する。そのリストは接続リクエストメッセージの中に入れられてもよい。好適な実施の形態では、第1のノード102は第1のNAT103に関する情報を送信しなくてもよい。さらに、第2のノード104ではなく、第1のノード102が、ポート予測を行ってもよい。加えて、転送アドレスを含む接続リクエストメッセージの送信は、現存するICEの手順と完全互換である。] [0028] 209に示すように、他のノードへ接続するために後に行われるバインディングリクエストがポート予測に干渉することを避けるために、第1のノード102は、バインディングリクエスト118を送信するときに待機期間を開始する。待機期間の間、他のノードとの通信のためのバインディングリクエストは、一時的に延期され、生成された順番で待ち行列に入れられる。] [0029] ステップ212において、第1のノード102は、ローカルポート106と既に確立された通信経路116とを通して、転送アドレスのリスト付きの接続リクエストメッセージをSIPプロキシサーバ100に送信する。SIPプロキシサーバ100は、最終目的地が第2のノード104であるというメッセージを見つけ出し、既に確立された通信経路117とポート111とを通して接続リクエストメッセージを転送し、メッセージは最終的にローカルポート108上の第2のノード104に到達する。接続リクエストを受信すると、第2のノード104は、将来のピアツーピアセッションのためにローカルポート109を割り当てる。その後第2のノード104は、ローカルポート109からSTUNサーバ101にバインディングリクエスト119を送信することによって外部ポート115を取得する。211に示すように、他のノードへ接続するために後に行われるバインディングリクエストがポート予測に干渉することを避けるために、第2のノード104は、接続要求リクエストメッセージを受信するときに待機期間を開始する。待機期間の間、第2のノード104は、他のノードとの通信のためのバインディングリクエストは、一時的に延期され、生成された順番で待ち行列に入れられる。具体的には、第1のノード102はノードX(符号125)からの要求217を、リクエストが受信された順序で待ち行列に入れる。第2のノード104も同様に、ノードY(符号127)からのリクエスト219を待ち行列に入れる。] [0030] 第2のノード104は第2のNAT105がシンメトリックでないことを知っているので、ローカルポート109と外部ポート115とを新たな暫定応答メッセージに入れて、そのメッセージをSIPプロキシサーバ100と第1および第2の信号経路116、117とを経由して第1のノード102に送り返す。暫定応答の送信は、転送交換フェーズを停止し、接続性チェックのフェーズを開始する。このステージでは、第1および第2のノード102、104は、他のノードとの通信のための新しいバインディングリクエストを安全に開始しうる。その結果、213、215それぞれに示すように、第1および第2のノード102、104用の待機期間が終了する。] [0031] 接続性を確認するために、ノード102と104との両ノードは、ステップ216、218において他のノードから取得した転送アドレスに、ローカルポート107、109からSTUNパケットの送信を開始する。第1のノード102がSTUNパケット120を送信するとき、第1のNAT103は新たな外部ポート113を割り当て、その後パケット120は第2のNAT105上の外部ポート115に到達する。第2のNAT105はポート制限コーンNATであり第2のノード104はまだローカルポート109から第1のNAT103上のローカルポート113にパケットを送信していないかも知れないので、少量の第1のパケットは外部ポート115において捨てられることもあり得る。第2のノード104はまた、STUNパケット121、122、123を取得した転送アドレス112、113、および114に送信する。第1のNAT103はシンメトリックNATであり、ポート112はSTUNサーバ101とのセッションのために排他的に割り当てられているため、ポート112に到達したパケット121は捨てられる。第1のNAT103によって割り当てられた外部ポートにポート114は存在しないため、ポート114に到達したSTUNパケット123もまた捨てられる。ポート113に到達したSTUNパケット122は第1のNAT103によってローカルポート107に転送される。第1のノード102はその後第2のノード104に応答を送信し、その応答を受信したとき第2のノード104はポート113との接続性を持つことを見出す。第1のノード102上のローカルポート107から第2のNAT105上の外部ポート115へ送信されたSTUNパケットは、最終的に第2のノード104のローカルポート109で受信される。第2のノード104はその後、第1のノード102に応答を返信する。] [0032] ステップ220において、応答メッセージを受信したとき、第1のノード102は、第2のノード104に対して第1のノード102は外部ポート115への接続性を見つけた旨を伝えるためにSIPプロキシサーバ100を経由して第2のノード104にアップデートメッセージを送信する。これは、ステップ222において、第2のノード104が第1のノード102に接続確率処理を終了させるための最終応答メッセージを送信する契機となる。] [0033] NATの種類をメッセージに入れたり第2のノード104に予測させたりする代わりに、第1のノード102が予測を行い、STUNサーバ101から取得した外部ポート112とともに予測した外部ポート113、114を新たな接続要求リクエストメッセージに入れる。これにより、第1のノード102は第1のNAT103に関する何の情報も第2のノード104に提供しない。そのようなICEメソッドの利用が、先行技術(米国特許出願公開2004−139228)に開示されるような、「ブレイクアウト(break-out)」パケットのための複雑なNAT組み合わせロジックを完全に排除する。その代わり、本発明の実施の形態は、「ブレイクアウトパケット」と本質的に等価である接続性チェックを実行することによって同じ結果を達成することができる。このように、本発明の実施の形態によれば、予測された転送アドレスを接続性チェックリストに単に加えることで、既にICEの手順を利用しているシステムにシンメトリックNATの通過能力を追加することができる。] [0034] 上述したように、例えば第2のノード104との通信を開始しようとしているノードである第1のノード102がポート予測を実行して予測されたポートを接続リクエストメッセージに入れる。ポート予測のための技術は多数存在する。例えば、ポート予測は次に述べる検査を用いるポート割り当てルール発見処理を用いて実装されてもよい。第1のノード102は、リクエスト変更(CHANGE-REQUEST)属性やアドレス応答(RESPONSE-ADDRESS)属性にあるフラグセットを付けることなくSTUNバインディングリクエストをSTUNサーバ101に送信する。これにより、STUNサーバ101はリクエストが来たアドレスおよびポートに応答を返信することになる。この検査は、NAT103のポート割り当て特性を把握するために、IPアドレスとポートとの異なる組み合わせに適用される。STUNサーバ101は、下記の表3に示すふたつの異なるIPアドレスCAおよびDAと、ふたつの異なるポートCPおよびDPを用いる。] [0035] 表3に見られるように、この例ではひとつのポート毎に検査が4回(例えば試行1から試行4まで)行われる。同一のローカルポートについて全ての検査が実行されなければならない。第1のノード102は応答から4つのマッピングされたアドレスを取得する。これら4つのマッピングされたアドレスは、ポート割り当てルール、ポート増加量ΔP、および評価の一貫性を決定するために解析される。一貫性を探すために処理が複数回実行され、好ましくは異なるローカルポートであってそれと関連したNATバインディングを持っていないポートを用いるのがよい。ポート割り当てルールは、マッピングされたアドレスから取得されたポート番号を探すことによって決定できる。もし全てのポート番号が、異なるポート番号を持つ連続する宛先のために増加される場合、ポート割り当てルールは「ポートセンシティブ(port sensitive)」と呼ばれる。もし同じIPアドレスを持つ連続する宛先からのポート増加量(例えば、試行1から試行2、および試行3から試行4)が常に0で、かつ異なるIPアドレスを持つ連続する宛先からのポート増加量(例えば試行2から試行3)が0でない場合、ポート割り当てルールは「アドレスセンシティブ(address sensitive)」と呼ばれる。もし獲得したマッピングされたアドレスの全てのポート番号が同じ場合、NAT103は「コーンNAT」である。] [0036] ΔPの値は次のよう決定されてもよい。すなわち、アドレスセンシティブ割り当て用に、ΔPの値は、例えば試行2と試行3のような宛先ポートが異なる連続する試行間のポート増加量と等しい。表4に示すように処理は他のローカルポートから繰り返される。この例では、試行1から試行4は表3と同様で、試行5から試行8は表3の宛先IPアドレスとポート番号とのパターンを継続する。] [0037] 表4より、連続する試行について宛先IPアドレスが同じ場所は、対応するマッピングされたアドレスのポート番号も同じであることが分かることに留意する。これより、ポート割り当てルールは「アドレスセンシティブ」であることが決定できる。さらに、ΔPの値は試行2と試行3との間、試行4と試行5との間、および試行6と試行7との間のポート増加量と等しい。] [0038] ポートセンシティブ割り当てでは、試行[N+1]と試行[N]との検査から得られたマッピングされたアドレスにおける隣接するポート番号間でΔPの値は異なる。第1のノード102がΔP決定のためのポート増加量の一貫性を決定できないような状況に関し、アプリケーションは統計的な観察に基づくΔPの値を決定したり、有効なΔPの取得をあきらめる決定をしたりするアルゴリズムを含んでいてもよい。] [0039] もし第2のNAT105がシンメトリックでない場合、例えば第1のノード102だけのためのNAT探索ステップ202の一部としてNATポート予測を実行するので十分であろう。第2のNAT105もシンメトリックNATである場合、第2のノード104はNAT探索フェーズ204の一部として同様のポート予測を実行してもよい。] [0040] 本発明の実施の形態では、NAT通過のためのクリティカルタイムウィンドウを直列化するように構成されたノードは他の複数のノードとの複数の接続のために直列化されてもよいことに留意する。上述のクリティカルタイムウィンドウの直列化は、ここではシンメトリックノード接続ループ(Symmetric Node Connection Loop)として参照される、落とし穴を潜在的に引き起こす可能性がある。クリティカルタイムウィンドウを直列化するために接続リクエストを待ち行列に入れることは、シンメトリックNATの背後にないノードには一般的には必要とされないことに留意する。しかしながら、3またはそれ以上のノードであってそれぞれがシンメトリックNATの背後にあるノード用にクリティカルタイムウィンドウの直列化が実装される場合には、ロックアップ(lockup)が発生しうる。この落とし穴の性質は、3つのノードが全てシンメトリックNATの背後にあることが示される図5を参照して理解されるであろう。もしノードBがノードAと接触を試みる間にノードAがノードBに接触を試みると開始依存性ループが3つのノード間で生成され、いずれのノードもピアツーピア通信を首尾よく開始できないというロックアップとなってしまうという結果となりうる。] 図5 [0041] 図5に示される例では、もし3つのノード全てが、図2に関して上述したような直列化されたクリティカルタイムウィンドウを実装するように構成されていれば、ノードCがノードAと開始するのをノードBが待つ間、およびノードAがノードBと開始するのをノードCが待つ間に、ノードAはノードBがノードCと開始するのを待つ。このような状況では、3つのノード全ては同じ時間待つことになり、これはロックアップの状況を生成する。この問題を克服するために、新規転送タイムアウトを実装してもよい。] 図2 図5 [0042] 例として、ノードCは「待ち行列に入れられた(QUEUED)」というメッセージQをノードBに送信してもよい。待ち行列に入れられたというメッセージQは、ノードCはシンメトリックNATの背後にあり、他のノードとの接続を待っているということを示す。ノードBは所定の待ち時間TW待機し、その後ノードCとの開始を中止する。続いてノードAからの接続リクエストを処理した後、再びCと開始する。待ち時間TWは0以上で、かつノードBがノードCとの通信をあきらめる前に待機する通常のタイムアウト時間未満であってもよい。もう少し具体的には、以下の理由から、Cは「待ち行列に入れられた」というメッセージQをBに送信する。すなわち、CがシンメトリックNATの背後にあること、およびリクエストはすぐに処理されずに待ち行列に入れられたということをCは知っているからである。ノードBは、その「待ち行列に入れられた」というメッセージに応じて比較的短い期間(例えば3秒間)待機し、ノードCとの接続処理を中止(延期)し、待ち行列内の他のリクエストを処理して、最終的に再びCと開始する。ノードBが永久にノードCとノードCと開始しようとすることを防ぐために、同一ノードとの再試行の回数は制限され(例えば3回まで)、その後ノードBは完全にあきらめる。そのような場合、ノードB上で実行しているアプリケーションは接続エラーを受信する。] [0043] ロックアップの別の解決手法としては、上述の手法を下記のように修正してもよい。クリティカルタイムウィンドウは外部接続リクエストのみ直列化し、やや深めのポート予測を実行してもよい。例えば、ポート増加量ΔPに基づいてポート予測を生成するのではなく、2ΔP、3ΔP、・・・、MΔPに基づくさらなるポート予測を生成してもよい。ここでMは整数であり、予測の「深さ(depth)」と称する。例として、特定のシンメトリックNAT用にポート増加量ΔP=1と決定されたと仮定する。このΔPの値に基づいてポート予測の深さM=1をもとにした候補リストは以下のようになる。 候補1:種類=STUN、202.10.9.20:9021(予測済み) 候補2:種類=ローカル、192.168.1.2:3658 M=1からM=3まで予測を深くすると以下の候補リストが生成される。 候補1:種類=STUN、202.10.9.20:9021(予測済み) 候補2:種類=STUN、202.10.9.20:9022(予測済み) 候補3:種類=STUN、202.10.9.20:9023(予測済み) 候補2:種類=ローカル、192.168.1.2:3658] [0044] 「待ち行列に入れられた」という信号メッセージを用いる場合と異なり、前述の解決手法は全ての考えられるロックアップの状況に対処しうるものではないが、実装を単純化しうる。さらに、接続処理は呼ぶ側においてより並列に起こりやすいので、内部接続ではなく外部接続を直列化することは、ほとんどの起こりやすいロックアップ状況を回避することができる。内部接続用のクリティカルタイムウィンドウは直列化されないので、ポート予測は失敗しうる。ポート予測の深さを、例えばM=+1からM=+3まで増加する予測された候補の数が増加し、これはポート予測の失敗の確率を減少させる。] [0045] 図3と図4とともに以上に説明された例は、SIP(Session Initiation Protocol; RFC 3261)プロトコルを用いるピアツーピアのUDPセッションの確立と関連する。しかしながら、本発明の実施の形態は、直接的な接続の確立の前にパブリックネットワーク上のプロキシサーバを経由して他のピアに信号を送受信することを可能とする任意の他の信号プロトコルに適用することができる。そのような信号プロトコルはH.323、MGCP、HTTP、XMPP等を含みうるがこれに限定されるものではない。] 図3 図4 [0046] NAT通過アルゴリズムはソフトウェアまたはハードウェア、あるいは両者の組み合わせによって実装してもよい。例として、図6はそのようなアルゴリズムを実装するコンピュータ装置を示す。装置400はプロセッサモジュール401とメモリ402とを含む。プロセッサモジュール401はシングルプロセッサまたはマルチプロセッサを含む。シングルプロセッサの一例として、プロセッサモジュール401はインテル社のPentium(登録商標)マイクロプロセッサや同様のIntel互換のマイクロプロセッサを含んでもよい。マルチプロセッサの一例として、プロセッサモジュール401はセルプロセッサを含んでもよい。] 図6 [0047] メモリ402は、集積回路(例えばRAM、DRAM、ROM、など)の形態をとる。メモリ402はメインメモリまたはセルプロセッサのシナジスティックプロセッサエレメント(synergistic processor element)のローカルストアでもよい。コンピュータプログラム403は、プロセッサモジュール401上で実行することができるインストラクションの形で、メモリ402に格納される。プロセッサモジュール401は、プログラム403命令を格納する1またはそれ以上のレジスタ405を含んでもよい。プログラム403の命令は、例えば図2、図3、および図4に関して上述したようなネットワークを経由したピアツーピア接続方法のステップを含んでもよい。具体的には、プログラム403は、多数の接続の試みがポート予測に干渉することを防ぐために、上述したような他のノードへの接続のための要求を待ち行列に入れる。プログラムはメモリ402に格納される接続キュー407を生成してもよい。接続キュー407はテーブルかまたは別のデータ構造で実装してもよい。接続キュー407は、前の他の開始キュー用のクリティカルタイムウィンドウが経過した後にキュー407から接続が解放されるために、ある特定の接続が開始された時間を格納する。] 図2 図3 図4 [0048] プログラム403は、C、C++、JAVA(登録商標)、アセンブリ言語、MATLAB、FORTRAN、あるいはその他の数多くの言語のような、プロセッサに読み取り可能な適切な言語で書かれてもよい。装置は、入出力(I/O)エレメント411、電源(P/S)412、クロック(CLK)413、およびキャッシュ414のようなよく知られた補助機能410を含んでもよい。装置400は、ディスクドライブ、CD−ROMドライブ、テープドライブ等のようなプログラムおよび/またはデータを格納するため大容量ストレージを随意に含んでもよい。装置400は、デバイスとユーザとの間のやり取りを手助けするためのディスプレイユニット416とユーザインタフェースユニットとを随意に含んでもよい。ディスプレイユニット416は、テキスト、数字、グラフィカルな記号や画像を表示するCRT(cathode ray tube)や他のフラットパネルスクリーンの形態としてもよい。ディスプレイユニット416は、聞き取り可能な音声を出力するスピーカや他の音声変換器を含んでもよい。ユーザインタフェース418は、GUI(graphical user interface)とともに用いられるキーボード、マウス、ジョイスティック、光学ペン、マイクロフォン、または他のデバイスを含んでもよい。装置400は、インターネットのようなネットワークを介して他のデバイスと通信を可能とするためのネットワークインタフェース420を含んでもよい。これらの構成要素はハードウェア、ソフトウェア、またはファームウェア、あるいはこれらのうちの2または3個の組み合わせによって実装されてもよい。] [0049] V.結果 本発明の実施の形態は、NAT通過機能を実装するピアツーピアライブラリで、そのピアツーピアライブラリ上で動作する簡単な接続性チェックツールを用いてテストした。接続の両端のノードはシンメトリックNATの背後にある。PlayStation3の開発ステーション上に実装されたピアツーピアライブラリのノードは、Linux PC上で動作している64個の他のノードに接続を試みた。外部および内部への接続用のクリティカルタイムウィンドウはともに直列化された。64個全ての接続は首尾よく確立できた。] [0050] 本発明の好ましい実施の形態を完全な形で説明してきたが、いろいろな代替物、変形、等価物を用いることができる。したがって、本発明の範囲は、上記の説明を参照して決められるものではなく、請求項により決められるべきであり、均等物の全範囲も含まれる。ここで述べた特徴はいずれも、好ましいかどうかを問わず、他の特徴と組み合わせてもよい。請求項において、明示的に断らない限り、各項目は1またはそれ以上の数量である。請求項において「〜のための手段」のような語句を用いて明示的に記載する場合を除いて、請求項がミーンズ・プラス・ファンクションの限定を含むものと解してはならない。]
权利要求:
請求項1 第1のシンメトリックNAT(network address translator)の後ろに位置している第1のノードと、2またはそれ以上の他のノードとの間をネットワークを通じてピアツーピア接続するための方法であって、a)前記第1のノードと第2のノードとの間でコミュニケーションセッションを開始し、および前記第1のノードのある前記第1のNAT上における予測された転送アドレスのリストを構築するためにポート予測を実行し、b)予測された転送アドレスのリストを含む接続リクエストメッセージを前記第1のノードから第2のノードへ送信し、c)前記第1のノードにおいて前記接続リクエストメッセージの暫定応答を受信し、d)前記予測された転送アドレスを使って前記第1のノードと前記第2のノードとの間の接続性チェックを実行し、e)d)が始まるまで、前記第1のノードと第3のノードとの間のコミュニケーションのためのポート予測を遅延することを特徴とする方法。 請求項2 f)e)の後、前記第1のNAT上の予測された転送アドレスのリストを構築する前記第1のノードと、第3のノードとの間のコミュニケーションのためのポート予測を実行し、g)予測された転送アドレスのリストを含む接続リクエストメッセージを前記第1のノードから第3のノードへ送信し、h)前記予測された転送アドレスを使って前記第1のノードと前記第3のノードとの間の接続性チェックを実行することをさらに含むことを特徴とする請求項1に記載の方法。 請求項3 i)g)の後まで、前記第1のノードと第4のノードとの間のコミュニケーションのためのポート予測を遅延することをさらに含むことを特徴とする請求項2に記載の方法。 請求項4 接続性チェックの実行は、前記接続リクエストメッセージ内の前記第1のノードによって提供された一またはそれ以上の転送アドレスに、前記第2のノードからのSTUNパケットを送信することを含むことを特徴とする請求項1に記載の方法。 請求項5 接続性チェックの実行は、STUNパケット応答を前記第1のノードから前記第2のノードに送信することをさらに含み、前記STUNパケット応答は、前記第2のノードから送信された前記STUNパケットのうち一つが前記第1のノードに到達するとき通った前記第1のNAT上の外部ポートの転送アドレスを含むことを特徴とする請求項4に記載の方法。 請求項6 a)は、前記第1のNAT用のポート増加量Δpを決定し、当該ポート増加量Δpを用いて前記予測された転送アドレスのリストを生成することを含むことを特徴とする請求項1に記載の方法。 請求項7 a)は、前記第1のNAT用のポート増加量Δpを決定し、当該ポート増加量Δpおよび1又はそれ以上の異なるポート増加量を用いて前記予測された転送アドレスのリストを生成することを含み、追加のポート増加量それぞれは、Δpと深さMだけ異なり、Mは1よりも大きい正の整数であることを特徴とする請求項1に記載の方法。 請求項8 Mは3と等しいことを特徴とする請求項7に記載の方法。 請求項9 b)の後一定期間TW待機するが、c)の前に、前記第2のノードが他のノードと接続するために待ち行列に入れられたことを示す前記第2のノードからのメッセージに応じて、前記第1のノードと前記第2のノードとの間のコミュニケーションセッションを中止し、a)、b)、c)、d)、およびe)を繰り返すことをさらに含み、前記TWは、0と同じかそれより大きく、かつ前記第1ノードと前記第2のノードの間の接続失敗用のタイムアウトよりは小さいことを特徴とする請求項1に記載の方法。 請求項10 d)は、前記予測された転送アドレスのリストからの転送アドレスを用いて、一又はそれ以上のテストパケットを前記第1のノードから前記第2のノードへ送信することを含むことを特徴とする請求項1に記載の方法。 請求項11 e)は、前記一又はそれ以上のテストパケットのうちのひとつが送信されるまで、前記第1のノードと前記第3のノードとの間のコミュニケーション用のポート予測を遅延することを含むことを特徴とする請求項10に記載の方法。 請求項12 第1のシンメトリックNAT(network address translator)の後ろに位置している第1のノードと、2またはそれ以上の他のノードとの間をネットワークを通じてピアツーピア接続するための方法であって、a)前記第1のノードにおいて、第1の予測された転送アドレスのリストを含む接続リクエストメッセージを第2のノードから受信し、b)前記第1のノードと第2のノードとの間でコミュニケーションセッションを開始、および前記第1のノードのある前記第1のNAT上における、予測された転送アドレスのリストを構築するためにポート予測を実行し、c)前記第1のノードから前記第2のノードに前記接続リクエストメッセージの暫定応答を送信し、d)前記接続リクエストメッセージ内の前記予測された転送アドレスを使って前記第1のノードと前記第2のノードとの間の接続性チェックを実行し、e)d)が始まるまで、前記第1のノードと第3のノードとの間のコミュニケーションのためのポート予測を遅延することを特徴とする方法。 請求項13 接続性チェックの実行は、前記接続リクエストメッセージ内の前記第1のノードによって提供された1またはそれ以上の転送アドレスに、前記第2のノードからSTUNパケットを送信することを含むことを特徴とする請求項12に記載の方法。 請求項14 接続性チェックの実行は、STUNパケット応答を前記第1のノードから前記第2のノードに送信することをさらに含み、前記STUNパケット応答は、前記第2のノードから送信された前記STUNパケットのうちのひとつが前記第1のノードに到達するとき通った前記第1のNAT上の外部ポート転送アドレスを含むことを特徴とする請求項13に記載の方法。 請求項15 b)は、前記第1のNAT用のポート増加量Δpを決定し、当該ポート増加量Δpを用いて前記予測された転送アドレスのリストを生成することを含むことを特徴とする請求項12に記載の方法。 請求項16 b)は、前記第1のNAT用のポート増加量Δpを決定し、当該ポート増加量Δpおよび1又はそれ以上の異なるポート増加量を用いて前記予測された転送アドレスのリストを生成することを含み、追加のポート増加量それぞれは、Δpと深さMだけ異なり、Mは1よりも大きい正の整数であることを特徴とする請求項12に記載の方法。 請求項17 Mは3と等しいことを特徴とする請求項16に記載の方法。 請求項18 d)は、前記予測された転送アドレスのリストからの転送アドレスを用いて、1又はそれ以上のテストパケットを前記第1のノードから前記第2のノードへ送信することを含むことを特徴とする請求項12に記載の方法。 請求項19 e)は、前記1又はそれ以上のテストパケットのうちのひとつが送信されるまで、前記第1のノードと前記第3のノードとの間のコミュニケーション用のポート予測を遅延することを含むことを特徴とする請求項18に記載の方法。 請求項20 プロセッサと、メモリと、ネットワークインタフェースと、前記メモリ内に具体化され、前記プロセッサで事項するように構成された命令を含むノードであって、前記命令は、A)命令セットであって、実行されたとき前記ノードに、i)第1のノードと第2のノードとの間でコミュニケーションセッションを開始し、および前記第1のノードのある前記第1のNAT上における予測された転送アドレスのリストを構築するためにポート予測を実行し、ii)前記第1のノードから第2のノードへの予測された転送アドレスのリストを含む接続リクエストメッセージを送信し、iii)前記第1のノードにおいて前記接続リクエストメッセージの暫定応答を受信し、iv)前記予測された転送アドレスを使って前記第1のノードと前記第2のノードとの間の接続性チェックを実行し、v)iv)が始まるまで、前記第1のノードと第3のノードとの間のコミュニケーションのためのポート予測を遅延することを前記ノードに実行させるか、または、B)命令セットであって、実行されたとき前記ノードに、i)前記第1のノードにおいて、第一の予測された転送アドレスのリストを含む接続リクエストメッセージを第2のノードから受信し、ii)前記第1のノードと第2のノードとの間でコミュニケーションセッションを開始、および前記第1のノードのある前記第1のNAT上における予測された転送アドレスのリストを構築するためにポート予測を実行し、iii)前記第1のノードから前記第2のノードに前記接続リクエストメッセージの暫定応答を送信し、iv)前記接続リクエストメッセージ内の前記予測された転送アドレスを使って前記第1のノードと前記第2のノードとの間の接続性チェックを実行し、v)iv)が始まるまで、前記第1のノードと第3のノードとの間のコミュニケーションのためのポート予測を遅延することを前記ノードに実行させるかのいずれか一方の命令セットを含むことを特徴とするノード。
类似技术:
公开号 | 公开日 | 专利标题 US10742511B2|2020-08-11|Refresh of the binding tables between data-link-layer and network-layer addresses on mobility in a data center environment US10454762B2|2019-10-22|System and method of processing media traffic for a hub-based system federating disparate unified communications systems US10506036B2|2019-12-10|System and method for shared session appearance in a hybrid peer-to-peer environment US20170317998A1|2017-11-02|System and method for secure messaging in a hybrid peer-to-peer network US10693919B2|2020-06-23|Distributed connectivity policy enforcement with ICE US10033806B2|2018-07-24|System and method for session sweeping between devices US10050872B2|2018-08-14|System and method for strategic routing in a peer-to-peer environment US8526467B2|2013-09-03|Facilitating transition of network operations from IP version 4 to IP version 6 Srisuresh et al.2008|State of peer-to-peer | communication across network address translators | EP2230822B1|2018-08-22|Establishing a connection traversing a network address translation gateway US10244003B2|2019-03-26|Media session between network endpoints US7907525B2|2011-03-15|Method of communicating packet multimedia to restricted endpoints EP2833597B1|2016-04-06|Apparatus and method for communications involving a legacy device US6661799B1|2003-12-09|Method and apparatus for facilitating peer-to-peer application communication JP2020162146A|2020-10-01|Systems and methods for distributed flow state P2P configuration in virtual networks EP1892927B1|2014-11-12|Address translator, message processing method and equipment US7899932B2|2011-03-01|Relayed network address translator | traversal CA2678714C|2012-05-22|Bootstrapping in peer-to-peer networks with network address translators US10630730B2|2020-04-21|NAT traversal for media conferencing US8401016B2|2013-03-19|Method, system and peer device for message routing USRE47566E1|2019-08-06|NAT traversal for mobile network devices US20160380966A1|2016-12-29|Media Relay Server US7272650B2|2007-09-18|Communication protocols operable through network address translation | type devices US20180309717A1|2018-10-25|Session Identifier for a Communication Session EP2112788B1|2014-10-15|A method and node for p2p content sharing
同族专利:
公开号 | 公开日 US20090228593A1|2009-09-10| CN102984290B|2015-08-19| JP4918163B2|2012-04-18| US20110317705A1|2011-12-29| EP2255497A4|2012-03-28| EP2255497B1|2013-10-02| EP2255497A2|2010-12-01| US8930545B2|2015-01-06| US7856506B2|2010-12-21| KR101139675B1|2012-05-21| US20110035501A1|2011-02-10| WO2009111205A2|2009-09-11| US8015300B2|2011-09-06| WO2009111205A3|2009-11-12| US20150120918A1|2015-04-30| CN101965712A|2011-02-02| CN102984290A|2013-03-20| KR20100117651A|2010-11-03| CN101965712B|2014-03-05|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2011-12-15| A871| Explanation of circumstances concerning accelerated examination|Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20111214 | 2011-12-15| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111214 | 2012-01-04| TRDD| Decision of grant or rejection written| 2012-01-05| A975| Report on accelerated examination|Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20120104 | 2012-01-18| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120117 | 2012-01-19| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 | 2012-02-02| A61| First payment of annual fees (during grant procedure)|Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120127 | 2012-02-03| R150| Certificate of patent or registration of utility model|Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4918163 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 | 2012-02-03| FPAY| Renewal fee payment (event date is renewal date of database)|Free format text: PAYMENT UNTIL: 20150203 Year of fee payment: 3 | 2015-02-03| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2016-02-02| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2017-01-31| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2018-02-06| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2019-02-05| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2020-01-28| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2021-01-26| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 | 2022-01-25| R250| Receipt of annual fees|Free format text: JAPANESE INTERMEDIATE CODE: R250 |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|