電話Aでwifiに接続されている電話を考えてみましょう。アドレスは動的IPex:192.168.0.34
であり、サーバーソケットを介してリッスンしますport 7567,
。パブリックに接続する別の電話Bがある場合、プログラミング言語を使用してそのソケットに接続するにはip say10.0.0.56
と、wifi ルーターの ip say ex があり55.56.89.76
ますか?
1 に答える
ポート転送を使用しない場合、NAT の背後にあるクライアントに直接接続することはできません。ただし、NAT 経由でポートを開くホール パンチングと呼ばれる手法があります。
ウィキペディアから:
ホール パンチングは、制限の厳しいファイアウォールの背後にある別々の組織内の 2 つの当事者間で通信を確立するためのコンピューター ネットワーキング技術です。オンライン ゲーム、P2P、VoIP などのアプリケーションに使用される両方のクライアントは、外部および内部のアドレス情報を明らかにする無制限のサードパーティ サーバーとの接続を確立します。各クライアントがサーバーへの要求を開始したため、サーバーはそのセッションに割り当てられた IP アドレスとポート番号を認識し、それらを互いに共有します。有効なポート番号を持つことで、ファイアウォールは両側からの着信パケットを受け入れるようになります。ICMP ホール パンチング、UDP ホール パンチング、および TCP ホール パンチングは、それぞれインターネット制御メッセージ、ユーザー データグラム、および伝送制御プロトコルを使用します。TCP の悪質な穴あけを使用して、圧縮された SYN パケットを共通の ACK パスに送信できます。多くのソフトウェアがこれを行います。
このトピックに関連する質問も参照してください。