开启 UPNP 后,在 NAT 后的客户机可以被广域网上的其它机器发现;不开启 UPNP,NAT 后的客户机需要使用“NAT穿透”技术与广域网上的其它机器实现 P2P 通信,当 NAT 和防火墙对“NAT穿透”免疫时,客户机会使用中间服务器同广域网上的其它机器实现通信。
开启UPNP后可以通过端口映射来实现NAT穿越,那么BitComet会将端口映射出去,不开启UPNP的时候,它是通过路由器的NAT映射出去的吗,但是路由器上已经把NAT关了;
@shaqianqing: 请问,你学习过 SOCKET 编程或《计算机网络》吗?
@Launcher: 知道一点
@Launcher: 一、BitComet通过upnp的端口映射功能映射出去后为什么上传和下载的速度会变快,这个原理是什么?
在不开启UPNP时,只能由你的工作站主动连接下载源,从源下载资源,如果开启了UNPN,则外部的下载源也可以直接连接你的工作站,专送资源给你,速度上要快一些。相当于只有你自己去取和自己取的同时有人送的差异。
二、在不开启UPNP时,BitComet的端口映射是没有用的(除非你直接使用的是公网的IP地址),此时端口映射是建立在你工作站本机的IP地址上,外网的设备能直接访问的是你的路由器的公网地址,并不能直接访问你的工作站IP地址。
三、在开启UPNP的情况下,如果你的路由设备也支持并开启了UPNP功能,你的工作站对能够通过UPNP功能在路由器上建立端口映射,这个映射与通过手工方式在路由器上建立的端口映射功能上是一样的。这个映射的作用是将对外网地址某个端口的访问请求,转发到你自己的工作站(内网IP)上。
举例如下:你通过带宽上网,电信分给你的公网IP地址是A,你自己接了个路由器,则由器使用这个公网IP地址连接Internet,在路由器内部,你有一台工作站,使用自己定义的私有IP地址B,BitComet在进行端口映射时,会在你的地址B的某个端口(假设是N)在建立BT下载服务,如果你没有通过UPNP进行端口映射,也没有通过手工方式在路由器上进行端口映射,Internet上的机器只能访问你的公网IP地址A,并不能访问你的私有IP地址B,路由器上的端口映射成功建立后,路由器会自动将对公网IP地址A上端口N的访问,根据端口映射表的定义,自动转发到私网IP地址B的端口N上。