随着越来越多的 Internet 网关设备提供商认识到使用 UPnP 解决上述问题所具有的优势,随着更多一般用户和小型企业用户开始意识到与 NAT 有关的问题及这些支持 UPnP 的 NAT 穿越解决方案的强大功能,为 NAT 穿越提供 UPnP 支持有望成为此类设备的必备功能或入市前提 。
Internet 网关制造商应加入 UPnP 论坛,了解如何使自己的 Internet 网关设备符合 UPnP 标准 。
应说明的是:Windows XP 上的“Internet 连接共享”支持 UPnP IGD 标准 0.9 版 。预计版本 1.0 将与版本 0.9 兼容 。
应用程序怎样使用 NAT 穿越
应用程序使用“NAT 穿越”的方式与多个因素有关,包括端口映射期望的生存期及端口是否用于多个客户机或服务 。应用程序应清除自己创建的所有静态端口映射,以避免出现孤立映射及端口被其他应用程序占尽的情况 。
如果应用程序是一种网络服务 (例如 Web 服务器),并在生存期内要求使用已知端口,它的安装程序就可以使用 “NAT 穿越 API” 来配置一个静态端口映射 。假定其他应用程序、网络管理员、网络拓扑结构都维持原状,而清除机制也保持映射不变,则外部客户机就能在服务生存期内连接该服务 。应用程序卸载服务负责删除这个映射 。如果出现崩溃,即使服务已不存在,静态端口映射也仍将存在 。如果外部 IP 地址发生变化,则静态端口映射将自动获取更改的内容 。
如果应用程序并不始终运行,或者对网络维护其静态端口映射的信任度降低,它就可以在每次启动时保留某个已知端口,并在每次关闭时恢复资源 。这一点可通过运行某个并行脚本来实现 。作为添加和删除端口映射的替代方案,可以让应用程序根据需要启用和禁用映射 。应用程序还可以始终保留静态端口映射,且只在每次启用时刷新映射 。
同样,如果外部 IP 地址发生变化,则静态端口映射将自动获取更改的内容 。
如果专用网络上不同客户机的多个应用程序使用同一内部端口号,应用程序就会要求进行修改,以支持多个客户机的运行 。只有单个客户机能使用外部端口映射的内部端口号 。此处建议让第一个客户机使用 。其他客户机应请求内部端口数不同于外部端口数的非对称端口映射 。
有一种特殊的情况:多个客户机可监听同一外部端口,而唯一的目的是被远程主机发现 。输入数据包可以转换为使用内部客户机 IP 地址的广播地址,而非特定的客户机地址 。监听该端口的客户机可通过启动自己与远程主机之间的连接而予以回复 。建议不要普遍使用这种方案,因为到该地址的输入数据包将被网络上的所有客户机接收,并会反过来对它们造成影响 。
如果服务需要短期监听某个随机端口,它应在应用程序中请求一个静态端口映射,而非使用脚本 。服务结束时,应予以清除 (删除映射) 。应用程序应保留一份自己特有端口映射的记录 。这样,如果应用程序在崩溃时没有关闭映射,就可以在下一次启动时检索出清除端口映射所需的必要信息 。
如果应用程序离开网络时没有清除其端口映射,则该映射就会保留下来,而清除任务就落在用户的身上 。目前 Windows 中尚没有清除机制,这是因为很难判断应用程序不再使用映射的时间 。
NAT 穿越的局限
尽管“NAT 穿越”可以解决与通过 NAT 设备进行连接时有关的多种问题,但还有“NAT 穿越”无法解决的问题及由其引起的问题 。这些问题包括:
.NAT 穿越使用开放式信任模式 。这意味着专用网络上的所有应用程序都能访问 NAT 上的所有端口映射 。尽管这样可以增加一些管理方面的灵活性,但应用程序也就失去了对其映射的唯一占有权 。
推荐阅读
- win10系统下卸载无用字体的方法教程
- win7系统安装IE10出现白屏问题的解决方法
- 创建WinXP启动软盘
- win7系统出现Dpp Viewer Module停止工作的解决方法
- win8商店不显示Win8.1更新的解决方法
- 鼠标的单击锁定
- Win8系统安装KB3000850补丁失败的解决办法
- 1 50招Win XP操作系统应用技巧
- win8系统中如何启动IE11的企业模式?
- Win 98不能访问Win XP的解决方法
