ピアツーピア通信を実装しようとしています..
それらの間の通信にはソケットを使用します。2 つのピアが 2 つのプライベート ネットワークの背後にある場合に、同じ種類の通信を使用できる方法があるかどうかを知りたい (お互いのパブリック IP アドレスを知らない)。コミュニケーションの手段。しかし、これを行う他の方法はありますか?
ピアツーピア通信を実装しようとしています..
それらの間の通信にはソケットを使用します。2 つのピアが 2 つのプライベート ネットワークの背後にある場合に、同じ種類の通信を使用できる方法があるかどうかを知りたい (お互いのパブリック IP アドレスを知らない)。コミュニケーションの手段。しかし、これを行う他の方法はありますか?
また、2 つのピアがパブリック IP アドレスを持っていない場合も考慮する必要がある場合があります。この場合、 STUN手法を使用して中央サーバーの必要性を回避できます。STUN は Skype などの製品で効果的に使用されてきましたが (私はそう思います)、現段階ではまだ完全に黒幕のままです。
中心的なアプローチとして、ejabberdが非常に一般的な実装であるXMPPを検討してください。新しい AMPQ 標準など、他のさまざまなメッセージング プロトコルも存在します。
これらのテクノロジは、自作のソケットベースのプロトコルよりも堅牢でスケーラブルである可能性があります。
両方が異なるプライベートネットワークにあるため、両方のピアは相互に通信できません。パブリックサーバーを配置して、そのサーバーを介して接続を確立できるようにする必要があります。詳細については、resiprocate、Resiprocateを参照してください。
STUN と TURN は、既に投稿されているように、これを達成するための一般的な方法であり、標準ベースのアプローチです。しかし、最近、icmp メッセージを使用してこれを行うための非常に興味深いアプローチを見てきました。これは pwnat と呼ばれ、ここから入手できます