UPnPを利用する場合、アプリケーション、OS、ルータの3つがUPnPに対応していないといけません。
仕組みは、アプリケーションがルータからグローバルIPアドレスを取得して、データ部分にそのグローバルIPアドレスをいれ、送信します。
サーバはそのデータ部分に入っているグローバルIPアドレスをみて、ルータへ返送することができるようになります。
UPnPに対応していない場合、データ部分にはPCのプライベートIPアドレスが入り、データを受け取ったサーバは送り先がわからなくなり通信ができなくなります。
このような問題を解決する方法として、ほかにも静的IPマスカレード、GAPNATなどの技術があります。

まちがっていたりしたら、いえろさん、虎さん、通りすがりさんが代弁してくれます。