3

最初のユーザー (モバイルまたはデスクトップ アプリ) の IP アドレスとポートを 2 番目のユーザー (モバイルまたはデスクトップ アプリ) に送信するために中央サーバーに依存するシステムを構築しています。2 番目のユーザーは、中央サーバーから送信された IP アドレスとポートを使用して、最初のユーザーとの P2P 暗号化接続を確立し、大きなファイルを直接送信します (理想的には、実際のファイルは中央サーバーを通過しません)。

このシステムは、ユーザーが異なるファイアウォール/NAT の背後にいて、モバイル デバイスまたはデスクトップ デバイスを使用している場合でも、ユーザーが手動でポートを開く必要なく機能する必要があります。

NAT トラバーサル プロトコル (Teredo IPv6)、libjingle (Google のオープン ソース スイート)、STUN、ダイレクト ソケット接続、およびユーザー間のダイレクト VPN について調べてきました。

これに正しくアプローチしているかどうか、私は混乱しています。これらのオプションはすべて、この問題を個別に解決しますか? それとも私はこれに間違って近づいていますか?IPv4ルーターの背後であっても、直接IPv6接続はまっすぐになりますか?

4

1 に答える 1

1

P2P 接続は常に成功するとは限りません。次の理由で失敗する可能性があります。1) 2 つのピアが対称 NAT の背後にある。(一方のピアが対称 nat の背後にある場合、Teredo は機能しますが。) 2) UDP がブロックされている 3) ピアがプロキシの背後にある場合。4) 二重 NAT シナリオ。IPv6 アドレスには、リンク ローカル、プライベート アドレス、グローバルの 3 種類があります。2 つのピアがグローバル アドレスを持っている場合、インターネット経由で直接接続できます。グローバル アドレスのプレフィックスは (200:....) です。P2P システムを構築している場合は、中央サーバーがピア間でデータを中継するフォールバック メカニズムが必要です。このようにして、p2p を使用するほとんどのピアの接続を高速化すると同時に、アプリケーションの信頼性を高めることができます。

于 2014-05-27T05:49:25.213 に答える