如果应用程序离开网络时没有清除其端口映射,则该映射就会保留下来,而清除任务就落在用户的身上 。目前 Windows 中尚没有清除机制,这是因为很难判断应用程序不再使用映射的时间 。
NAT 穿越的局限 尽管“NAT 穿越”可以解决与通过 NAT 设备进行连接时有关的多种问题,但还有“NAT 穿越”无法解决的问题及由其引起的问题 。这些问题包括:
.NAT 穿越使用开放式信任模式 。这意味着专用网络上的所有应用程序都能访问 NAT 上的所有端口映射 。尽管这样可以增加一些管理方面的灵活性,但应用程序也就失去了对其映射的唯一占有权 。
.应用程序将负责解决冲突 。如果应用程序尝试映射某个已映射给其他客户机的端口,它就应负责查找另一个端口或改写应用程序 。
.NAT 穿越无法解决在 ISP 分发专用地址和使用 NAT 进行客户机连接方面的问题 。这种情况下,NAT 位于 Internet 网关设备的外面,实际上位于服务提供商网络的内部 。如果客户机网络上的 NAT 位于另一个同类 NAT 的后面,家庭或小型企业中的 NAT 穿越就会出现故障 。因此,建议 Internet 服务提供商不要在自己的网络内部署 NAT 。
.应用程序获取 NAT 穿越时并非毫无代价 。它们必须同时进行修改以调用 API,或者随带脚本以提供解决方案 。这对于大多数开发人员而言仍在可控制的范围内,尤其是考虑到将这些 NAT 穿越机制并入应用程序后,应用程序就能自动与多种 Internet 网关设备协同使用 。
.使用完端口映射后,应用程序负责清除工作 。静态映射会无限期存在,最好用于打算在整个应用程序生存期内监听知名端口的服务 。
.提供 NAT 的 Internet 网关必须支持通用即插即用 Internet 网关设备规范 (至少为版本 0.9) 。
结论
NAT 是得到 IETF 认可的解决方案,针对的是 IPv4 名称空间耗用问题 。使用 NAT 的 Internet 网关经常用于家庭和小型企业 。之所以使用它们,是因为它们价格便宜,易于管理,无需用户安装特殊的软件 。
使用 NAT 的不足在于会破坏许多聊天、多人游戏和对等应用程序 。这是因为它们的网络协议对网络体系结构所做的假定已不成立 。
“NAT 穿越”为应用程序提供了一条查找 NAT 设备、发现可全局路由的共享 IP 地址并配置静态端口映射以解决某些连接问题的途径 。NAT 穿越解决方案无法解决与 NAT 有关的所有问题,但可以缓解部分问题 。
本文的主要结论是:
.Internet 网关设备制造商应在自己的设备中支持 UPnP,从而支持“NAT 穿越” 。
.网络应用程序开发人员应使用 Windows NAT 穿越 API 来检测 NAT 的存在,并在必要时允许其应用程序经过 NAT 。
.用户应使用支持 UPnP 和“NAT 穿越”的 Internet 网关设备,以确保最佳的应用程序性能 。
.DSL 和电缆调制解调器的服务提供商应指定、销售和租赁为 NAT 穿越提供 UPnP 支持的 Internet 网关设备 。
在 IPv6 最终消除 NAT 之前,某些形式的 NAT 穿越仍会继续存在 。
推荐阅读
- win10 应用闪退怎么解决,解决win10用于闪退的方法
- win8 桌面显示desktop的解决方法
- 让win XP系统运行如飞秘籍
- win8系统下word只读模式怎么改?修改word读取方式的方法教程
- 解决WinXP中CPU占用率过高的问题
- win7机提示错误代码0xc0000098的解决方法
- Win XP远程登录中鲜为人知的技巧
- win7系统无法安全弹出移动硬盘的解决方法
- win7文件路径怎么获得?win7查看文件路径的方法
- win10出现“windows任务的主机进程已停止工作”的方法