ピアツーピアアプリケーションのポート4900アクセスを自動化
多くのピアツーピア(P2P)アプリケーションは、通信のためにポート4900のような特定のポートに依存しています。 ただし、ルーターは多くの場合、これらのポートへのアクセスをブロックし、P2P機能を妨げます。 このガイドは、アクセスを自動的に有効にする方法の概要を説明します。
P2P接続を確立するには、これらの手順が必要です:
- ローカルIPアドレスを取得します:デバイス上のすべてのローカルIPアドレスを識別します。各アドレスについて、ポート4900で聴取するUDPソケットを作成します。
- 外部IPおよびポートマッピングを発見します: STUNまたはターンサーバーを使用して外部IPアドレスを決定し、内部ポート4900を外部ポートにマッピングします(潜在的に異なる)。
- 候補者リストを共有するリスト:ランデブーサービスまたは他のピアとの直接コミュニケーションを介して、IPおよびポートペア(候補者)のリストを広めます。
- ハンドシェイクと接続の確立:交換候補リストを交換し、信頼できる通信パスを確立するためにUDPテストメッセージを送信します。 データ転送用に適切なIP/ポートペアが選択されます。
いくつかのテクノロジーがNATとファイアウォールの制限を克服するのに役立ちます:
- Stun(NATのセッショントラバーサルユーティリティ):クライアントがパブリックIPアドレスとポートマッピングを発見するのを支援します。
ターン(NATの周りのリレーを使用したトラバーサル):- 直接接続が失敗したときにP2P接続のリレーサービスを提供します。
ICE(インタラクティブコネクティビティ確立):- P2P接続のスタンとターンの使用を管理する標準化されたプロトコル。
webrtc:- P2Pアプリケーションを構築するために容易に利用可能なライブラリを備えたICE実装。
upnp(ユニバーサルプラグアンドプレイ):- インターネットゲートウェイデバイスプロトコルで動作して、ポートマッピングを自動的に構成します。
libnice:- Linux Systemsのオープンソースアイスの実装。
libjingle:- a c Ice Library。
pjnath:- pjsipからのアイススタック。