3

TCPとUDPの両方を利用するサーバーとクライアントを作成しようとしています。サーバーはLAN設定で非常にうまく機能しますが、WAN経由で送信されたときにUDPメッセージが受信されていません。これは、データの送信に使用されたUDPソケットが、情報を返すのに十分な長さのNATテーブルに残っていないためだと思います。UDPポートをルーターで開いたままにする(ポート転送なしで)方法、またはすでに接続されているTCP接続と同じポートをUDPに使用する方法はありますか?前もって感謝します。

4

1 に答える 1

3

トラフィックがない場合は、ファイアウォールによってブロックされている可能性があります。この場合、転送ではなく、ポートを開くことです。

ほとんどの(すべてではないにしても)NAT /ファイアウォールデバイスは、NATに穴が開けられると、両方向のUDPトラフィックを許可します。つまり、NAT /ファイアウォールの背後にある私のラップトップがUDPパケットをインターネットに送信する場合、NAT/ファイアウォールはUDPトラフィックを元のポート番号に返すことができます。私はUDPをよく使用していますが、これがルールであり、例外はほとんどありません。

UDPパケットの配信は保証されていませんが、注意してください。

クライアントはNATの背後にありますか?クライアントが送信するパケットはサーバーに届きますか?サーバーからクライアントへの方向性に問題がありますか?

UDPとTCPに同じポート番号を使用する場合、状況は変わりません。TCP接続は別のプロトコルであるため、便乗することはできません。

ユニキャストUDPのネットワークアドレス変換(NAT)の動作要件

http://en.wikipedia.org/wiki/UDP_hole_punching

于 2011-08-11T05:49:42.647 に答える