据我所知,需要以对等方式跨网络地址转换器传输数据的应用程序(如 BitTorrent)通常依赖 UPNP IGD 协议来要求路由器将外部(UDP 或 TCP)端口临时映射到内部端口,以便可以接受传入连接。我正在开发一个对等应用程序,我完全基于 UDP 打洞技术。它们工作正常,但在某些情况下,我发现使用非侵入式方法建立连接非常困难,所以我正在考虑使用 UPNP IGD,并且仅在 UPNP 失败时使用打洞。但是,由于这看起来不是一项简单的任务,我想知道这是否值得付出努力。在标准互联网家庭连接中,有多少 NAT 路由器接受 UPNP IGD 请求而无需手动配置端口映射?我希望我的程序开箱即用,而无需在路由器端手动配置任何内容。
据我理解,这个问题可以分为两部分:
有多少家用路由器支持 UPNP?像 wifi 家用路由器一样?有多少服务提供商 NAT 路由器支持 UPNP?也就是说,如果我的家用 wifi 有一个标准的互联网连接,并且我的 wifi 路由器由我的互联网提供商分配了一个私有 IP,那么我仅使用 UPNP 就能将公共互联网上的端口映射到我的计算机的可能性有多大?