P2P アプリケーションのポート 4900 アクセスの自動化
ユーザーがポート 4900 への外部アクセスをブロックするルーターの背後にある場合、ピアツーピア (P2P) アプリケーションは問題に遭遇することがよくあります。この記事では、このハードルを克服するための自動化されたソリューションについて説明します。
P2P 接続を確立しています
このプロセスには次の重要な手順が含まれます:
-
ソケットの作成: IP アドレスが割り当てられたすべてのネットワーク アダプターのポート 4900 に UDP ソケットを作成します。
-
外部アドレス検出: STUN サーバーまたは TURN サーバーを利用して、外部 IP アドレスと内部ポート 4900 の外部ポート マッピングを特定します。ルーターが UPnP をサポートしている場合は、UPnP の使用を検討してください。
アドレス交換と接続の開始
-
アドレス公開: 中央プラットフォームまたはサービスを介して、検出されたアドレス候補 (IP とポートのペア) を公開します。
-
候補交換: 接続要求を受信すると、リモート クライアントも候補リストを決定し、それを共有します。
パンチングテクニック
-
テスト メッセージ交換: 両側のアドレス候補間でテスト メッセージを交換します。
-
応答の確認: メッセージの受信が成功すると、送信元アドレスに返信が送信されます。
-
信頼性の高い接続の確立: この反復プロセスにより、最終的に、信頼性の高いデータグラム交換に適したアドレスのペアが特定されます。
サポート技術とプロトコル
いくつかのテクノロジーがこのプロセスを促進します:
-
STUN (NAT 用セッション トラバーサル ユーティリティ): NAT およびファイアウォールの背後にあるクライアントの外部 IP アドレスとポート マッピングを検出します。
-
TURN (NAT 周りのリレーを使用したトラバーサル): 直接接続がブロックされている場合に P2P 接続のリレーを提供します。
-
ICE (対話型接続確立): P2P で STUN および TURN を使用するためのプロトコルを定義するフレームワーク。
-
WebRTC: STUN と TURN を使用した P2P セッション用にすぐに利用できるライブラリを備えた ICE バリアント。
-
UPnP (ユニバーサル プラグ アンド プレイ) および IGD (インターネット ゲートウェイ デバイス プロトコル): 互換性のあるルーターで自動ポート マッピングを有効にします。
推奨ライブラリ
いくつかのライブラリにより ICE 実装が簡素化されます:
-
libnice: Linux 用のオープンソース ICE 実装。
-
libjingle: Google が開発した Windows および Linux 用の ICE 実装。
-
PJNATH: PJSIP ライブラリ スイート内に統合された ICE スタックで、さまざまなプラットフォームをサポートします。
以上がP2P アプリケーションはどのようにしてファイアウォールや NAT を介してポート 4900 に自動的にアクセスできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。