社区应用 最新帖子 精华区 社区服务 会员列表 统计排行
  • 1820阅读
  • 0回复

UPnP功能使用、BT端口映射、内网外网之完全解析(图文并茂,建议大家收藏)

楼层直达
级别: 光盘中级
发帖
1140
飞翔币
335
威望
303
飞扬币
8460
信誉值
0
[size=12px]一、UPnP的概念:
以下是微软官方网站对UPnP的解释:
问:什么是 UpnP?
答:通用即插即用 (UPnP) 是一种用于 PC
机和智能设备(或仪器)的常见对等网络连接的体系结构,尤其是在家庭中。UPnP 以 Internet 标准和技术(例如 TCP/IP、HTTP 和 XML)为基础,使这样的设备彼此可自动连接和协同工作,从而使网络(尤其是家庭网络)对更多的人成为可能。
问:UPnP 对消费者意味着什么?
答:简单、更多选择和更新颖的体验。包含通用即插即用技术的网络产品只需实际连到网络上,即可开始正常工作。实际上,UPnP 可以和任何网络媒体技术(有线或无线)协同使用。举例来说,这包括:Category 5 以太网电缆、Wi-Fi 或 802.11B 无线网络、IEEE 1394 ("Firewire")、电话线网络或电源线网络。当这些设备与 PC 互连时,用户即可充分利用各种具有创新性的服务和应用程序。
问:UPnP 的技术要素是什么?
答:UPnP 范围广泛,原因是它面向的是家庭网络、临近网络及小型企业和商住楼中的网络。在网络控制设备的管理下,它支持任何两个设备之间的数据通讯。UPnP 不依赖于特定的操作系统、编程语言或物理媒体。
UPnP 支持零配置网络及自动查找功能,这样以来,设备即可动态加入网络,获取 IP 地址,宣布自己的名称,根据需要提供功能,并了解其它设备的存在和功能。DHCP 和 DNS 服务器为可选项。只要在网络上可用,即可加以使用。此外,设备还可自动平稳地脱离网络,而不会遗留任何不必要的状态。UPnP 汲取了 Internet 的成功之处并继承了它的组件,包括 IP、TCP、UDP、HTTP 及 XML。UPnP 中涉及了多供应商之间的协作,旨在建立标准的设备控制协议 (DCP)。与 Internet 类似,这些协议以公告式线协议为基础,表示为 XML 形式,且通过 HTTP 进行通讯。
以下是BC官方网站对UPnP的解释:UPnP(Universal Plug and Play),通用即插即用,是一组协议的统称,不能简单理解为UPnP=“自动端口映射”。
在BitComet下载中,UPnP包含了2层意思:
1、对于一台内网电脑,BitComet的UPnP功能可以使网关或路由器的NAT模块做自动端口映射,将BitComet监听的端口从网关或路由器映射到内网电脑上。
2、网关或路由器的网络防火墙模块开始对Internet上其他电脑开放这个端口。我倒是觉得微软的解释过于理论化,适合写入牛津大词典;而BC官方网站的解释过于含蓄晦涩。其实对于一般的使用者来讲,简单的把UPnP理解为自动端口映射就可以了。它就是一种基于TCP/IP协议的,针对设备彼此间的通讯而制订的新的Internet协议,目的就是希望未来所有联入Internet中的设备能够不受网关阻碍的相互通信。
二、哪些用户需要用UPnP功能?
1、只有在需要使用一些支持UPnP功能的P2P软件的时候,如BT、电骡eMule、MSN等,我们才需要考虑UPnP这个东东。如果你根本就不用这些软件,仅仅是上网浏览的话,下文就没必要看了;
2、如果你需要使用这些P2P软件,但你是外网用户,那么下文也可以不看了,因为你不需要做什么UPnP就可以正常使用这些P2P软件了;
至于如何判断自己是内网用户还是外网用户,可以参考下面:
- -关于宽带用户是内网还是外网之完全解析- -
3、如果你是内网用户,但你已经手动为这些P2P软件进行了端口映射,如在使用BC下载时,在“用户列表”中已经看到“远程”,或者是使用电骡eMule连接服务器成功后,已经显示为高ID,那么下文也可以不看了。
但需要注意的是,手动做的端口映射只是针对某个P2P软件起作用,如果再使用新的P2P软件的话,仍然需要针对新的P2P软件做相应的端口映射才可以;
如何手动进行端口映射的方法可参考下面:
- -ADSL MODEM端口映射方法详解- -
4、如果你是内网用户,需要使用这些P2P软件,而且并未进行手动端口映射,比如在使用BC进行下载时,“用户列表”中只有“本地”而没有“远程”,在使用电骡eMule的时候,显示的也是低ID,那么此时我们才需要考虑端口映射的问题!
这时我们可以有两种选择:
1、进行手动端口映射,方法参见上面第3点的链接文章;
2、打开UPnP功能,进行自动端口映射,也就是我们下面所讲的内容;
小结:UPnP自动端口映射的目的:
以BC为例,手动端口映射和自动UPnP端口映射都是为了获得远程连接,因此凡是在“用户列表”里看见了“远程”的用户,都不需要进行端口映射或是UPnP!UPnP和端口映射只需要取其一,他们相当于达到目的的2种不同的方法而已。因此如果你的系统或者硬件不支持UPnP功能,大可不必伤心,按照第3点的链接文章中的方法手动做端口映射就可以了,效果是一样的;
三、实现UPnP必须满足哪些条件:
必须同时满足3个条件:
1、Modem必须支持UPnP功能:是否具备此功能可查阅说明书或者直接咨询厂家。一般来讲,Modem还必须同时支持路由功能,除非你配备了单独的路由器;
2、操作系统的支持:文章开头提到的那篇介绍UPnP的文章中,提到只有windows xp系统才支持UPnP功能,但微软的官方网站声称从Windows Me开始就已经支持UPnP功能了。但Windows Me这个操作系统我也没有用过,大家可以自行测试;
3、软件必须支持UPnP功能:如BC、电骡eMule、MSN等软件都支持UPnP功能;
注意:以上3个条件必须同时满足,缺一不可,否则你只能考虑进行手动端口映射了;
四、如何打开UPnP功能
如果已经满足了上述的3个条件,那么我们就一步一步的讲解一下到底如何才能打开UPnP功能;
1、在Modem中打开UPnP功能,如下图:

此主题相关图片如下:

不同型号的Modem设置界面和方法略有不同,如有些是在下拉菜单中选择Enable,但基本的原理都是一样的;
有些文章提到,此时要把所有桥接的eoa连接都删除掉,我倒是认为大可不必如此。因为目前只有你的PPPOE连接是有效的,其它的几个eoa所对应的VPI和VCI根本就是无效的,所以没有必要删除。但是否有些型号的Modem会比较特殊也很难讲,因此建议此时暂不删除,把全部设置进行完后,如果还是没有打开UPnP,再尝试把eoa删除掉;当然,设置完后,一定要保存并重启Modem;
2、在操作系统中打开UPnP功能:
如果你使用的是XP SP2系统,则首先进入:控制面板->添加或删除程序->添加/删除windows组件中,在“网络服务”中勾选“UPnP用户界面”,如下图:

此主题相关图片如下:

确定后,系统会自动安装相应的组件,可能会提示你插入安装光盘,总之按照提示操作完成即可;
接着打开Windows自带的防火墙,在“例外”选项卡中勾选“UPnP框架”,如下图:

此主题相关图片如下:

其实有个更加简单的方法可以同时完成以上两步:双击桌面上的网上邻居(注意是鼠标左键双击,不是右键查看属性),然后点击“显示联网的UPnP设备的图标”,系统会自动安装UPnP组件以及在防火墙中打开UPnP框架,实际上就是一次性完成上面两步的工作;

此主题相关图片如下:

如果你使用的是XP SP1系统,那么在“windows组件”中显示的是“通用即插即用”,而不是“UPnP用户界面”,选择此项即可,如下图:

此主题相关图片如下:

而且XP SP1系统的防火墙并没有UPnP框架的选项,需要手动进行端口添加,另一教程对此做了阐述,现引用过来:【请在防火墙设置中,点“高级”,然后自行添加如下两个端口:TCP端口类型,端口号为:2869,UDP端口类型,端口号为:1900 。由于你使用了NAT网关,所以你应该设置的是您连接到该网关的网卡的防火墙。而且网关内部均为内网,所以开启这两个端口,不会对系统造成安全隐患(除非你的NAT网关被绕过,否则外部连接无法检测到该端口)。】以上的防火墙设置只是针对windows自带的防火墙,如果你安装了其它的防火墙,必须在该防火墙中打开UPnP框架;
3、在windows中打开相应的UPnP服务:
进入“控制面板->管理工具->服务”,找到SSDP Discovery Service和Universal Plug and Play Device Host两项服务,如下图:

此主题相关图片如下:

右击相应的服务项,选择属性,启动这两项服务,如下图:

此主题相关图片如下:


此主题相关图片如下:

做完以上工作后,如果操作正确,我们就可以在“网络连接”中看到多了一项网关,这表明添加UPnP已经成功;

此主题相关图片如下:


此主题相关图片如下:

4、打开P2P软件中的UPnP功能:
以BC和电骡eMule为例,相应的设置选项分别如下图:

此主题相关图片如下:


此主题相关图片如下:

到此为止,我们打开UPnP的工作才真正结束。
以BC为例,成功添加UPnP功能后,在“全局日志”中我们会看到类似下面的几行:
Windows XP UPnP Status: Found WAN Connection Device[Linksys Inc.]
[http://www.linksys.com/]
Windows XP UPnP Status: WAN IP: 218.30.*.*
Windows XP UPnP Status:
Port Mapping Existed!
此时我们用BC进行下载,如果用户列表中有“远程”,或者用电骡eMule连接服务器后显示为高ID,那么就大功告成了!

婚姻是键盘,爱情是鼠标,一点就通;男人自比主机,内存最重要;女人好似显示器,一切都看得出来
- -ADSL MODEM端口映射方法详解- -
首先声明几点:
1、以下所述只针对使用BT时的端口映射方法,其它用途的端口映射可参照此方法,但并不保证通用;
2、本文只讲操作,不谈理论,属于完全手把手傻瓜型教程;
3、本文以本人的同维DSL699E2为例讲解,其它型号的ADSL
MODEM设置方法虽界面不同,但原理一样,完全可以照猫画虎;
4、本文以BitComet为例讲解,以下简称BC;
5、本文所述方法主要适用于内网用户,外网用户不需要进行端口映射;
判断自己到底属于内网用户还是外网用户可参考3楼:
关于宽带用户是内网还是外网之完全解析- -
以下为操作过程:
前提:设置本机的IP地址如下,也可以设置为自动获得IP地址:

此主题相关图片如下:

1、查看需要映射的端口:打开BC的“选项”,如图:

此主题相关图片如下:

2、打开IE浏览器,在地址栏输入192.168.1.1(如果你使用了代理,请暂时取消代理,否则不能进入设置界面);

此主题相关图片如下:

3、在弹出的对话框中输入用户名和密码(不同型号的ADSL MODEM的登陆账号不同,请看说明书)
用户名:root 密码:root

此主题相关图片如下:
4、登陆后的界面如下,注意红框处的“接口”项,后面设置时要用到;

此主题相关图片如下:

5、转到“服务”,选择NAT,在下拉选项中选择NAT Rule Entry,然后按“添加”;

此主题相关图片如下:

6、弹出设置窗口,这就是我们进行端口映射的地方,按如图进行设置:

此主题相关图片如下:


此主题相关图片如下:

Rule Flavor:选择RDR;
Rule ID:只是个序列号而已,按顺序编号就行了,一般ADSL猫出厂已经有一条NAT映射,所以此ID一般从2开始编号; 因本人已经设置了8个映射,所以这里设置为9;
IF Name:这个很重要!对于每个区域或者用户,电信局所分配的PPPOE通道是不同的,所以你要知道你被分配的是哪个通道。方法是看上面第4点“主页”图中红框标注的“接口”项。本人的通道号是PPP-3,所以这里选择PPP-3;但如果你实在搞不清楚,直接选择ALL也可,如上图的第2个设置界面;
协议:可以选择TCP,也可以选择ANY;
7、按“提交”,显示添加成功:

此主题相关图片如下:

8、这时在NAT界面就增加了一条刚添加的映射:

此主题相关图片如下:

9、转到“管理->保存和重启”,点击“保存”,显示保存成功后,映射关系已经生效。为保险起见,可以选择重新启动ADSL MODEM。

此主题相关图片如下:


此主题相关图片如下:
10、设置完成,直接关闭IE浏览器窗口;
11、验证一下:打开BC,下载时在“用户列表”中能看到“远程”,OK,大功告成!

此主题相关图片如下:

针对一些朋友的疑问,现把IP地址的设置问题详述如下:
如果只是单纯为了设置端口映射的话,TCP/IP中的子网掩码、网关和DNS服务器等设置与否关系不大,关键是IP地址。这里设置IP地址的目的主要是为了同ADSL MODEM的默认网关地址192.168.1.1处于同一网段,这样在第2步输入192.168.1.1时才能进入ADSL MODEM的设置界面。
如果你不是很清楚,直接选择自动获得IP地址即可。
但是,映射设置完成后如果要正常上网,仍然需要设置正确的子网掩码、网关和DNS服务器等。这分几种情况:
1、如果你设置端口映射前已经设置有正确的子网掩码、网关和DNS服务器,并能正常上网,请按照原来的设置进行设置,但IP地址注意要使用你做端口映射时的内网IP地址;
2、如果你设置端口映射前是是通过“自动获得IP地址”的方法来上网的,没有设置任何的子网掩码、网关和DNS服务器,那么请按照以下方法设置:
a、子网掩码和网关请按照教程中第一个图的方法设置;
b、需要填写DNS服务器的地址,可以拨打当地电信(电话10000)或者网通(电话1003)的客服服务电话查询;
3、有个特例:如果你的网络情况相对稳定,比如家庭里只有一台或者两台计算机上网,而且路由器和小交换机等设备常开的话,虽然理论上内网IP地址是随时变化的,但是在这种情况下每台计算机的IP地址其实是基本稳定的。如果是这样的话,你可以按照如下方法设置:
1、设置TCP/IP属性中的IP地址为“自动获得IP地址”,此时不需要设置子网掩码、网关和DNS等;
2、通过命令ipconfig查询本机的内网IP地址,如192.168.1.3;
3、进行端口映射,映射的内网IP地址为192.168.1.3;
4、保存退出后即可上网,并在BC中看到远程;
这个方法你需要注意的是内网IP地址有可能会变化,如果哪天突然能上网但在BC中却没有远程的时候,应该注意可能内网IP地址变化了。
以上是一些补充,希望对大家有所帮助。
- -关于宽带用户是内网还是外网之完全解析- -
本文之观点只代表作者个人观点,并非权威说法,仅供参考。
内网与外网的区别。
内网:现阶段没有接入INTERNET的网络,称为局域网.俗称内网.
外网:INETERNET基础网络,俗称为外网.
还有一点来!!内网和外网是对于网络安全域来说的...国家已经明确规定,内网和外网之间是物理隔离,外网和互联网逻辑隔离。一般来说,逻辑隔离可以通过采取防火墙、代理服务器等可以具有较强的安全网关。而一般用于传递内部机密信息的内网则必须与外网进行物理隔离。很多宽带用户搞不清楚自己到底属于内网还是外网,以至于在使用BT等软件进行下载前,盲目进行端口映射等操作,反而事倍功半。下文将以本人的电信ADSL 2M宽带为例进行详细说明,其它类型的宽带可参照进行判断,方法和原理基本都是相同的。
首先纠正一个普遍错误的说法。我们经常会听到诸如“某某ADSL是内网”或者“某某ADSL是外网”的说法,这种说法本身是错误的。因为“ADSL宽带”只是宽带的运营商所提供的一种服务形式,它只是一项技术、一项业务而已,并没有什么内网还是外网的概念。我们所提到的内网还是外网,指的实际上是使用这种ADSL宽带业务的终端用户的计算机当前所处的网络位置是属于内网还是外网。或者换句话说,终端客户的计算机是内网还是外网,完全在于他如何使用ADSL这种宽带业务,而与他使用的到底是哪种宽带形式无关。
下面先给出我的结论,然后再进行详细的分析:
1、 第一种情况:使用电信ADSL的用户,如果只有一个用户一台计算机在使用此宽带,没有使用路由功能,而是用拨号软件直接拨号上网的,这种情况下,该用户目前所处的网络为外网;
或者更加简单的说,电信局派人安装完ADSL后,什么都没有改动的情况下,此时计算机属于外网;
2、 第二种情况:使用电信ADSL的用户,如果在ADSL
modem中设置了路由功能,多人共同使用同一条ADSL线路进行上网的话,此时每台计算机都属于内网;
3、介绍一种比较特殊的宽带形式:内网中的内网;
在具体分析之前,首先说明对于内网外网的判断标准:(引述自BitComet的帮助信息)
1、 判断标准之一:0.50或以上版本的BitComet的“全局统计”,里面的对外IP就是公网IP,对内IP就是内网IP,如果这2个值相同那么您就是公网用户,否则就是内网用户。当然,内网用户通过端口映射可以获得和公网完全一样的效果。
2、判断标准之二:用MSN Messenger“工具->选项->连接”中的“高级连接信息”(注意:这里用的是MSN Messenger,不是Windows Messenger。Windows Messenger高级连接信息与MSN Messenger的不一样)。 高级连接信息有以下几种类型组成:
“直接连接”表示用户是公网,没有使用Windows XP自带的Internet连接防火墙(ICF),不需要使用UPnP。但这种情况不排除用户安装了第三方的网络防火墙软件,如诺顿网络安全特警2002/2003/2004系列、国内著名的天网防火墙等等。这类用户在使用BT时,只要BT软件所监听的端口没有被ISP封掉,一般不用怎么设置就可以达到最佳速度。安装了第三方的网络防火墙的用户注意让防火墙允许BT软件监听所需的端口。
“直接连接,使用了Internet连接防火墙(ICF)”表示用户是公网,使用了Windows XP自带的Internet连接防火墙(ICF),不是一定需要使用UPnP。这类用户要想让BT获得最佳下载速度,可以在ICF的高级设置中为BT软件手动打开相应监听的端口,也可以打开BitComet的“允许打开Windows网络共享和防火墙ICS/ICF端口”,在下次Bitcomet启动时提示网络连接保护设置即将被更改的对话框上点确定,让BitComet自动操作。
“通用即插即用(UPnP)网络地址转换(NAT)”表示用户是内网,经由网关或路由器上网,网关或路由器支持的NAT支持UPnP(而且打开,目前支持UPnP的网关类软件有Windows
XP的ICS、KERIO的WinRoute Firewall 5系列)。这类用户要想让BT获得最佳下载速度,最好使用支持UPnP的BT软件,如BitComet。
“非通用即插即用(UPnP)网络地址转换(NAT)”、“非对称NAT”、“对称NAT”、“级联”等等
表示用户是内网,经由网关或路由器上网,网关或路由器的NAT不支持UPnP,或虽然支持UPnP,但UPnP被ISP、网络管理员关闭了。这类用户很难让BT软件获得由其他下载者发起的连接,想提高下载速度,可以试一下对外连接能力特别强的BitComet系列。
“非UPnP防火墙”通常与NAT类型一起出现,表示用户是内网,经由网关或路由器上网,网关或由器上使用不支持UPnP的网络防火墙,如诺顿网络安全特警2002等等。这类用户同样很难让BT软件获得由其他下载者发起的连接,想提高下载速度,还是推荐使用对外连接能力特别强的BitComet系列。
“UPnP防火墙”通常与NAT类型一起出现,表示用户是内网,经由网关或路由器上网,网关或由器上使用支持UPnP的网络防火墙,如诺顿网络安全特警2003、Windows XP的ICF等等。如果与3一起出现,用户可以尝试具有UPnP功能的BT软件;如果与“非通用即插即用(UPnP)网络地址转换(NAT)”、“非对称NAT”、“对称NAT”、“级联”等等一起出现,就不必强求使用支持UPnP的BT软件了,因为即使防火墙支持UPnP,但NAT不支持UPnP,UPnP也是不可能成功的,这时还是推荐使用对外连接能力特别强的BitComet系列。
下面分别对以上二种情况进行具体分析:
第一种情况:用户安装完拨号软件后,“网络连接”中增加了一项PPPOE的连接,如图:

此主题相关图片如下:

拨号软件的界面如下:

此主题相关图片如下:

拨号前,我们设置本地连接和PPPOE连接中的IP地址均为自动获取。
拨号上网后,我们进行IP地址的查询,如下图:

此主题相关图片如下:

可以看到,此时的IP地址有两个,一个是本地连接的IP地址192.168.1.4,一个是PPP连接的IP地址61.144.215.221。我们此时断开拨号连接然后重新拨号上网,再进行IP地址的查询,发现本地连接的IP地址未变化,但PPP连接的IP地址变为218.18.93.57,这说明PPP连接的IP地址是动态分配的。
那么此时我的计算机是属于内网还是外网呢,我们根据上面的两个标准来判断一下:
1、 打开Bitcomet,点击“全局统计”,如下图:

此主题相关图片如下:

我们看到对内和对外的2个IP地址是相同的,这说明此时用户属于外网;
用BC进行下载,用户列表中有“远程”,表明你可以获得由其他下载者发起的连接。
2、 打开MSN登陆成功后,点击“工具->选项->连接”中的“高级连接信息”,如下图:

此主题相关图片如下:

或者是:

此主题相关图片如下:

这说明此时用户属于外网。
这样的用户使用BT、电驴等P2P软件不需要进行端口映射,直接使用即可正常下载。
下面我们来分析第二种情况,即使用了路由功能的情况。
现在很多用户安装了ADSL宽带后,为了与大家共享网络资源,往往在ADSL MODEM中设置了路由功能,这样一条ADSL线路可以满足多人上网的要求,每台计算机可以不用拨号,直接插上网线即可上网。一般来讲,如果设置了路由功能,那么共享网络的几台计算机都要指定具体的IP地址,以避免IP地址冲突,如下图:

此主题相关图片如下:

此时我们进行IP地址的查询,如下图:

此主题相关图片如下:

可以看到此时只有一个本地连接的IP地址,而没有PPP的连接。
那么这种网络形式下,每台计算机是内网还是外网呢。
1、 我们打开Bitcomet,点击“全局统计”,如下图:

此主题相关图片如下:
我们看到对内对外的IP地址是不同的,这说明我们此时是内网用户;
2、 打开MSN登陆成功后,点击“工具->选项->连接”中的“高级连接信息”,如下图:

此主题相关图片如下:

这说明此时用户属于内网。
这样的用户要使用BT下载,就要进行端口映射,否则你不能获得由其他下载者发起的连接,下载时在BC的用户列表中也看不到“远程”,只有“本地”,自然下载速度也会大大降低。
具体的端口映射的方法请参考:- -ADSL MODEM端口映射方法详解- -
当然还有一种电信ADSL的形式,那就是固定IP的ADSL宽带,使用这种网络的用户属于外网用户。但这种宽带的使用费用昂贵,根据各地的不同,包月费用大概在几千到上万元。之所以如此昂贵,就是因为现在网络IP地址的资源是有限的,而这种用户又独占了一个IP地址资源,所以与其说你支付的是宽带使用费,还不如说你支付的是IP地址资源费。当然这种宽带很少有人申请,因此本文并未重点描述,一笔带过。
下面将详细介绍一种比较特殊的宽带情况:
用户是拨号上网用户,有modem设备,没有设置路由,但却属于内网用户。(以下截图得到了lkkcn的大力帮助,在此表示衷心的感谢!)
以下截图因为是在不同时间段所截取,由于IP地址的动态变化会有前后不一致的现象,大家只注重原理即可。
1、进入ADSL modem的设置界面,我们看到“广域网接口”只有多个桥接(Bridged)方式的eoa连接,而没有路由方式的PPPOE连接,表明用户是拨号上网用户;

此主题相关图片如下:

2、进行IP地址的查询,如下图:

此主题相关图片如下:

可以看到,此时的IP地址有两个,一个是本地连接的IP地址192.168.10.2,一个是PPP连接的IP地址172.16.22.82。我们此时断开拨号连接然后重新拨号上网,再进行IP地址的查询,发现本地连接的IP地址未变化,但PPP连接的IP地址变为172.16.23.61,这说明PPP连接的IP地址是动态分配的。
3、 打开MSN登陆成功后,点击“工具->选项->连接”中的“高级连接信息”,如下图:

此主题相关图片如下:

4、打开Bitcomet,点击“全局统计”,如下图:

此主题相关图片如下:
那么,如何解读这种宽带呢,它到底是内网用户,还是外网用户呢?
首先我们补充一点内网外网的知识:(引述自网络技术文章)
【内网接入方式:上网的计算机得到的IP地址是Inetnet上的保留地址,保留地址有如下3种形式:
10.x.x.x;
172.16.x.x至172.31.x.x;
192.168.x.x;
  内网的计算机以NAT(网络地址转换)协议,通过一个公共的网关访问Internet。内网的计算机可向Internet上的其他计算机发送连接请求,但Internet上其他的计算机无法向内网的计算机发送连接请求。
  公网接入方式:上网的计算机得到的IP地址是Inetnet上的非保留地址。公网的计算机和Internet上的其他计算机可随意互相访问。】
我们看到,该宽带用户的本地IP地址是192.168.10.2,PPP连接的IP地址是172.16.*.*,这两个地址都不是公网的IP地址,而是Inetnet上的保留地址。换句话说,用户通过拨号并没有直接拨到公网上,而是还要再进行一次IP地址的转换才能到公网。
从MSN的连接信息也可以看出,此用户属于内网用户,而且需要进行两次转接才上公网,属于内网中的内网。
而BC全局统计中的IP信息表明:本地IP是172.16.11.229,对外IP是61.50.187.66。这个其实不是该用户本地的状态,而是第二次IP地址转换时的IP地址状态。所以,我们看到本地的IP地址其实是用户的PPP连接的地址,而对外IP才是真正的公网IP地址。
这样的用户要使用BC进行下载,在本地进行端口映射是没有用的,下载时BC的“用户列表”中仍然只有“本地”,而不会看到“远程”。需要在第二次IP转接的地方进行相应的端口映射才有效。但此类用户可以打开BC选项中的“内网互联”功能,在BC下载时用户列表中可以看到“内网互联”,这样可以在一定程度上改善BC的下载速度。
补充说明:上面提到了几个判断内网外网的方法,即:
1、在DOS窗口输入ipconfig进行本机IP地址的查询;
2、查看MSN的“高级连接信息”;
3、查看BC全局统计中的IP地址状态;
其实上面的这3种方法只需要查看其中一种就可以判断出你是内网还是外网了,并不需要3个条件全部判断完才得出结论。
- -BitComet提速参数设置详解- -
本文所述只代表作者个人观点,并非权威说法,仅供参考。
论坛中关于BitComet的设置问题有许多不同的看法和见解,本文以最新的BitComet0.56(0124)版本为例(以下简称BC),详细介绍一下BC的各参数设置。
有很多人把BC的参数设置看作是BC下载达到理想速度的关键因素,其实并不尽然。笔者认为BC中的大部分的参数调整只是针对不同网络环境所做的微调,并非是最关键性的因素。
影响BC下载速度的因素很多,笔者认为在进行BC参数设置之前,至少应做好以下几方面的工作:
1、 对系统网络参数的优化:windows操作系统默认的网络参数并不适合所有的网络环境,因此需要进行优化调整。但优化的方法仁者见仁,智者见智,观点不一,建议大家可以选用一些专业的网络优化软件进行优化;
2、 判断清楚自己所处的网络环境到底属于内网还是外网,网络带宽是多少。这点很关键,它将直接影响到你的BC参数是按照怎样的标准来设置;
参考上楼关于宽带ADSL用户是内网还是外网之完全解析
3、 如果是内网用户,则必须首先要进行端口映射。如果你的软硬件都支持UPnP自动端口映射功能的话,则打开此功能即可;否则就需要进行手动端口映射。
参考上楼ADSL MODEM端口映射方法详解
4、 进行系统错误的检查和病毒的全面查杀,最好做一下磁盘碎片整理,保证系统运行在一个健康良好的状态下。OK,做好这些工作,就让我们进入BC的参数设置(以下各图示所显示的都是BC的默认设置,具体的参数调整请看文字说明)。
一、 网络连接:

此主题相关图片如下:

1、 全局最大下载速率:选择“无限制” ;
2、 全局最大上传速率:根据不同的网络情况做不同的设置;
a、 光纤用户:这类用户的网络带宽一般为10M左右,上传速率可能经常会超过1000kb/s。这类用户如果完全不限制上传速度,过于频繁的读写对硬盘会有一定的损耗。对于这类情况,建议合理限制上传速度为600kb/s至1000kb/s之间;
b、 非光纤用户:这类用户主要指ADSL用户,带宽一般为512K、1M和2M几种,这类用户的上传速率本身就是受限的,如2M带宽的上传速率峰值一般为512Kbit/s=64kB/s。对于这类情况,笔者认为如果你习惯单任务下载,此处可以选择“无限制”,只在下面讲到的“任务设置”中单独对每个下载任务进行上传速率的限制即可;但如果你习惯于多任务下载,此处可设置为峰值上传速率的60%~80%之间,如64kb/s的峰值上传速率一般设置在40KB/S到45KB/S之间比较合适;
3、 最多同时进行的下载任务数:可以选择默认的10。但是在实际的下载过程中不建议同时打开过多的任务,一般最好单任务下载,最多以3个任务为宜;
4、 监听端口:BC通过随机选择的监听端口进行数据的传输,所以一定要选择,否则会大大影响下载的速度和效率。需要注意的是:重新安装BC后,监听端口可能会变化,做了端口映射的用户要修改为原来的监听端口号;
5、 代理设置:如果没有稳定的代理服务器,一般不建议使用代理进行下载;但对于一些BT下载受限的网络用户,可以考虑使用代理,利用HTTP通道绕开网络BT管制进行下载;
6、 其它按默认设置;
二、 任务设置:

此主题相关图片如下:

1、 默认下载目录:如果有外挂的USB硬盘或者双硬盘,建议把下载目录选择到外挂的USB硬盘或从硬盘上,这样系统正常运行的读写操作和BC下载上传的读写操作分开,可减轻BC下载对系统运行的影响,同时也可以最大程度的减少硬盘的读写频率,降低硬盘的损耗;
2、 下载前先分配空间:此选项主要是为了降低BC下载所引起的磁盘碎片。如果选择,那么在BC下载前会花费一些时间进行空间分配。笔者认为此选项可以不选,磁盘碎片的整理完全可以使用专门的碎片整理软件定期进行整理即可,没必要每次任务下载前都花费时间进行空间分配;
3、 给未完成的文件添加.bc!后缀:此选项会直接影响到续传,默认为选择。但BC的官方网站建议取消此选项,笔者也建议取消此选项。但需要注意的是取消后缀后,下载目录中的未完成的文件表面上看是个正常的文件,一定要注意在BC中确认文件到底是否下载完成;如果选择“给未完成的文件添加.bc!后缀”选项,对续传的影响详述如下:一般如果我们不移动下载目录,不随意改动文件和目录名,也不删除BC下载的任务行,续传基本没有什么问题。但是,如果我们在文件还未下载完成的情况下,停止下载并删除了BC中的下载任务行(只移除任务,并不删除文件),然后再重新打开torrent文件进行续传时,并不能进入续传状态,而始终是下载状态,此时一开始下载,那么原来下载好的文件会被覆盖并从头开始下载。这主要的原因是我们在BC的“选项”中选择了默认的“为未完成的文件加后缀bc!”。而重新打开的torrent文件中的内容文件是没有bc!后缀的,所以BC并不认你原来未下载完成的带bc!后缀的文件。因此,无法进行续传,只能进行下载操作。当下载一开始BC就自动给文件加了个bc!后缀,从而覆盖了原来的文件。而把“给未完成的文件添加.bc!后缀”的选项取消就不会产生此类续传问题;
4、 当分享率达到百分之多少时自动停止任务:BC并没有提供按照时间来决定何时停止下载或者上传任务,而是根据分享率来决定的;分享率的概念如下:
下载任务:任务总上传量 / 任务总下载量
做种任务: 任务总上传量 / 文件总计大小
此选项一般选择默认的“无限制”即可,但也可根据实际要求来进行设置;
5、 当所有任务都自动停止后关闭电脑:任务下载完成时,仅当所有任务都同时满足“分享率达到XX时自动停止任务”和“如果种子小于XX则继续上传”这两个选项而自动停止后,此设置才能实现;

婚姻是键盘,爱情是鼠标,一点就通;男人自比主机,内存最重要;女人好似显示器,一切都看得出来
6、 每任务最大上传速度:光纤用户可根据实际情况选择600kb/s到1000kb/s;ADSL等上传受限用户可根据自己的上传峰值速率来设置,一般的原则是设置为上传峰值速率的55%到75%之间。不同带宽类型的ADSL用户的上传速率可能不同,也可能相同。以常见的512kbit/s=64kb/s上传速率为例,每任务最大上传速度设置为35kb/s到45kb/s之间比较合适,这样既可以保证下载速率,也不违背BT精神。笔者所用宽带为512kbit/s的峰值上传速率,此选项选择40kb/s;
7、 其它选择默认设置;
三、
界面外观:

此主题相关图片如下:

1、
最多显示的peer数量:建议选择默认的100。有些人把此项增大为1000,笔者认为完全没有必要,因为此选项只是决定下载时“用户列表”中到底显示多少用户信息,我们完全没有必要浪费系统资源来显示那么多的peer,而且大部分是没有连接上的peer;
2、
其它选项根据实际要求和个人喜好选择;
四、 聊天设置:
根据个人喜好选择;

此主题相关图片如下:

五、 高级设置:
默认设置即可;

此主题相关图片如下:

1、有些人在备用tracker列表中添加了一堆tracker服务器,希望能增加连接效率,提高下载速度。笔者认为适得其反!因为目前主流的一些tracker服务器都是需要进行验证的,如果你所下载文件的torrent并未在tracker服务器所对应的发布页发布,那么即使你强制连接这个tracker服务器,服务器也不会授权你使用它来连接其它客户端。在BC的“服务器列表”中我们也可以看到这些服务器所返回的未授权信息。因此频繁的无效连接反而占用了大量的带宽和系统资源,从而影响了下载的速度。
而且目前主流的发布页如BT联盟的发布页只支持单tracker种子文件的发布,这样我们所下载的torrent本身就是单tracker的种子文件;
因此,大多数情况下,不建议添加备用的tracker。对于内网用户,如果没有做端口映射而需要使用内网互联功能的话,可以添加udp://tracker.bitcomet.net:8080/announce内网互联专用的服务器,而其它的最多添加1~2个无需验证就可以使用的tracker服务器即可,如
http://tracker.prq.to/announce
服务器等;
2、其它设置选择默认;
六、 高级设置->网络连接:

此主题相关图片如下:

1、
运行打开windows网络共享和防火墙ICS/ICF端口(XP有效):选择默认;
选择此选项将打开windows自带的防火墙(ICF)的BC监听端口,但如果使用其它防火墙,仍然需要在相应的防火墙中打开BC的监听端口;
ICS是Internet连接共享,有些家庭等小型网络采用此方法来实现多机上网,设置非常简单,但由于需要主机服务器常开,所以目前很少有人使用这种方法来共享上网,普遍采用的是NAT和路由的模式,不需要主机服务器,通过交换机和路由器就可以实现多机同时上网;
2、
允许使用UPnP自动端口映射:根据情况选择;
如果你的路由器支持UPnP功能,而且操作系统是windows XP或者是windows
ME,则选择此选项。并且要在路由器、操作系统以及防火墙中打开UPnP功能和相应的端口,UPnP功能才能生效;
如果不满足以上的任何一项,则可以取消此选项;
3、 每任务最大连接数:建议使用默认的“自动调整”;
此选项在默认状态下,每任务的最大连接数是60,这也是综合各种情况下的适合大多数网络环境的一个比较均衡的连接数。内网用户可以适当增大此连接数为80。但注意不要过分增加此连接的数目,因为频繁的连接会消耗大量的内存和系统资源,反而对下载速度造成严重影响,事倍功半。
4、
最大同时尝试的TCP连接个数:默认为10,建议调整到300,最大不要超过500;
微软发布的Windows XP
SP2增加了TCP同时连接尝试的限制并且设定为一个很小的值10,系统的TCP连接尝试超过这个值的时候,系统会因为安全因素而拒绝连接。这样做的本意是为了防止冲击波之类的蠕虫病毒,但这样一来某些p2p软件就遭殃了,连接繁忙时可能导致所有网络连接都无法进行了。你可以在“控制面板->管理工具->事件查看器->系统”里看到来源为tcpip的ID为4226的警告:“TCP/IP
已经达到并发TCP连接尝试次数的安全限制”。这个问题对BC的内网用户的影响尤其明显,因为内网用户只能通过主动发起TCP连接来连上别的客户端。
BitComet0.55及以后的版本基本解决了这个问题,无需任何配置就可以在SP2下正常工作。BitComet会自动检测SP2然后自动设置适当的尝试连接个数。然而SP2默认的过小的连接尝试仍然可能导致任务开始的时候只能连接到较少的客户端,从而导致开始的时候速度比较慢,并可能影响其他网络程序的运行,由于连接发起的速度比较慢,对内网用户而言影响可能非常大,比如Peer很多却很久也没有开始下载。内网用户如果出现常常连接不上半天不能开始下载的问题。仍然建议安装第三方的的补丁。
5、是否允许通过UDP实现内网互联:外网用户可选择“禁止”,内网用户可选择“允许”或者“自动检测”;
传统bt客户端中,下载同一个任务的公网用户可以帮助内网用户中转数据,但是内网用户互相不能连接上。BC可以让不同内网的用户通过UDP互相连接实现内网互联。对内网用户来说这通常意味着更快的下载速度,因为可以连接上更多的用户。无需任何设置,BitComet将会自动监测网络连接(自动判断是否处于NAT后或者没有端口映射),然后自动开启内网互联,从而加速内网下载。
对于内网用户,如果做了端口映射,BC下载时用户列表中已经有了“远程”,那么就可以选择关闭内网互联,以减少带宽的额外开销,以及由此带来的一些统计错误,从而获得最大的下载速度;
6、其它选项选择默认;
七:高级设置->IP规则:

此主题相关图片如下:

1、允许向服务器报告内网IP便于子网内连接:外网不选,内网勾选;
2、启动IP过滤配置文件ipfilter.dat:BC安装后的默认ipfilter.dat并未添加任何IP过滤规则,因此选与不选没有什么区别;但如果你在ipfilter.dat中设置了IP过滤规则,则需要选上;
关于如何使用IP过滤规则,笔者也没有深入研究过,电驴在这方面有些相关的文章大家可以查阅一下;
3、部分文章建议“下载任务每IP最大允许连接数”和“上传务每IP最大允许连接数”分别调整为20和5,笔者并不建议这样调整。如果在默认情况下,你的下载和上传速度已经能够达到或者接近峰值速度,就不必调整此参数了,尤其是ADSL等宽带速度受限的用户,不建议调整此参数。而对于光纤用户,可根据情况适当增大连接数;
八、高级设置—>磁盘缓存:

此主题相关图片如下:

1、磁盘缓存最大值:光纤用户可以适当增大磁盘缓存来保护硬盘,避免频繁的硬盘读写操作。根据内存配置的大小可以调整到80M到150M之间;非光纤用户一般不用调整此参数,默认即可,如果内存比较宽裕,也可以调整到80到100M之间;BC下载时在“全局统计”中会实时显示缓存的分配情况,可以根据此状态来调整缓存的大小到最合适的数值;
2、其它选择默认设置;
附:UPnP与Win XP 缺陷之完全解析
统一即插即用英文是Universal Plug and Play,缩写为UPnP。要说计算机外设的即插即用(Plug and Play(缩写PnP)),大家可能很熟悉,但对统一即插即用,多数人会感到是一头雾水。由于windows xp加入对UPnP的支持,并且被查出存在很严重的安全问题,所以,一时间,使得UPnP名声大噪。巧的是,本人原来查阅过关于UPnP的技术白皮书,而且也较为详细地看了关于此次发现的安全缺陷的介绍。因此,趁着这个机会,将UPnP以及引起安全缺陷的详情披露出来。
一、 UPnP是用来干什么的?
  网络发展到现在,已经可以使我们在网上冲浪、收发邮件、听到远方传送来的声音、搜索感兴趣的内容、下载软件、点播节目、即时聊天等等、等等……实现的功能好像已经不少,但,人的欲望无止境,享福人还想更享福,还有许多目标没有达到:例如,怎样才能使我们在网络上,像平时用遥控器那样,操作空调器、电风扇、厨房电器,或网络远端的电器设备呢?如何利用网络上的计算机资源,使这种“遥控”更具智能化?甚至,将一系列相关的控制写到一个脚本中,以便用户定制自己所喜爱的控制流程?……等等。实现诸如此类的效果,将是有巨大需求的应用技术。如果实现通过网络用UPnP控制家用设备,将给我们的生活带来很大的方便和很多新的体验。例如:
  1.你在下班之前,或在回去的路上,就可以先打开家里的空调器和厨房设备,等进入家门,立刻就是一个温度宜人的环境――厨房里的饭也做好了。房间温度的高低和厨房内煮饭的过程,都是根据事先设计好的“脚本”程序进行的,绝对可靠。
  2.你若是一位上档次的音乐发烧者,肯定对聆听音乐的环境要求很严:音箱位置高低、音量大小、灯光明暗、窗帘拉不拉上都有讲究。手动控制随好,毕竟不方便。你要使用上UPnP,一切都会为你代劳。还能将你习惯的音响音量、灯光亮度、音箱的高度等等,以你认为最佳的参数写到执行脚本中,以后可以都以此为准。如果你拥有自己的专门听音室,只要你打开听音室的门,上述的环境就会立刻设置好。曲终人散,只管放心离开好了,UPnP系统会自己关闭音响,熄灭电灯,拉上窗帘。
  3.你人在办公室,心里却放不下家里的孩子。用上UPnP,只要在家里安装摄像头,建立好与网络的连接。在办公室内,启用桌面电脑的WEBTV,连通网络后,可以即时监视孩子在家里的一举一动。
  凡此种种的方便和诱人之处还很多,不胜枚举。
  其实,这已经不是科学幻想、也不是专家预言。目前用UPnP协议就可以实现这些操作!这正是windows xp系统急于加入UPnP的原因。正因为UPnP是一个协议,UPnP的使用可跨越各种操作系统平台,开发应用程序也没有开发语言的局限。可工作于各种形式的网络结构。且仅以现在的网络设施为基础,仅仅加上这个UPnP协议,既不用添加新的设施,也不用重新架设网络介质就可以投入使用!
UPnP协议具有下述特色:
  1. 以网络为应用环境,不考虑“孤岛”中的计算机。
  2. 以TCP/IP和整个Internet为基础。这样是“中立”的,不依附于任何操作系统或应用程序,不使用特定的API函数,不受程序设计语言的局限。可以无缝地接入传统网络。
  3. 设备可以动态地进入网络中,随后获得IP地址,“学习”
或查找自己应当进行的操作和服务的信息;“感知”别的设备是否存在以及它们的作用和当前的状态 。所有这些,都应当是可自动完成的。
  4. 每个设备都可读取属于自己的、特定的状态和参数;完成控制操作后应当发出“操作完成”的响应信号。如果失败,则应发出控制失败的信号。
二、UPnP协议的层:
  UPnP协议的最终目的,是建立一个可用的设备模型, 因篇幅这里不对整个结构进行详细的分析,但你应当记住下面的主要特征:
  1. UPnP是一个多层协议构成的框架体系,每一层都以相邻的下层为基础,同时又是相邻上层的基础。直至达到应用层为止。该图中的最下面是就是IP和TCP,共两层,负责设备的IP地址。
  2. 三层是HTTP、HTTPU、HTTPMU,这一层,大家应当是熟悉的,属于传送协议层。传送的是内容都经过“封装”后,存放在特定的XML文件中的。对应的SSDP、GENA、SOAP指的是保存在XML文件中的数据格式。到这一层,已经解决了UPnP设备的IP地址和传送信息问题。
  3. 第四层是UPnP设备体系定义,仅仅是一个抽象的、公用的设备模型。任何UPnP设备都必须使用这一层。
  4. 第五层是UPnP论坛的各个专业委员会的设备定义层,在这个论坛中,不同电器设备由不同的专业委员会定义,例如:电视委员会只负责定义网络电视设备部分,空调器委员会只负责定义网络空调设备部分……,依此类推。所有的不同类型的设备都被定义成一个专门的架构或者模板,供建立设备的时候使用。可以推知,进入这一层,设备已经被指定了明确用途。当然,这些都必须遵守标准化的规范。从目前看,UPnP已经可以支持大部分的设备:从电脑、电脑外设,移动设备和家用消费类电子设备等等,无所不包,随着这个体系的普及,将可能有更多的厂家承认这一标准,最终,可能演化为公认的行业标准。
  5. 最上层,也就是应用层,由UPnP设备制造厂商定义的部分。这一层的信息是由设备制造厂商来“填充”
的,这部分一般有设备厂商提供的、对设备控制和操作的底层代码,然后,就是名称序列号呀,厂商信息之类的东西。
三、协议内部的详细情况
  仅仅有这样五层UPnP协议,也只不过有了一个共同遵守的框架,实际的UPnP系统究竟是如何构成的呢?
  完整的UPnP服务系统由支持UPnP的网络和符合UPnP规范的设备共同构成的。
  整个系统是由设备、服务、和控制指针三部分所构成。
  设备:这里是指符合UPnP规范的设备。一个UPnP设备可以看成一个包含服务并嵌套了常规设备的“容器”
。例如,一个UPnP的VCR(录像机)设备可以包含磁带传送服务、调谐服务和时钟服务。就是说,UPnP之下的设备不能仅仅理解为硬件意义上的设备,而应当包括服务功能。
  不同种类的UPnP设备将关联不同的设置、服务和嵌入设备。如打印机和VCR属于不同用途的设备,服务就不可能定义成一样的。
  服务:设备执行用户请求的控制过程,可划分成一个个很小的阶段或单位,每个单位就称为一个服务。每一个服务,对外都表现为具体的行为和模式,而行为和模式又可以用状态和变量值进行描述。只要可以用数值描述,在计算机里面就容易处理了。例如,模仿一个时钟,它只有一个工作模式:这个模式就是模拟并显示当前的时间。而一个时钟的行为共有两种(也只有两种):
  1. 设置时间(用来“即平时说的对表”).
  2. 得到时间(用于显示时间)。
  其它设备服务,也是用这样思路来描述和定义的,一个设备也可以被定义多个服务。不论是设备的定义信息和服务的描述信息,都保存在一个XML文件中,这个文件也是UPnP协议构成的一部分。当设备建立和使用服务的时候,XML文件可以与它们进行关联。XML文件中还有一个很关键的“状态表”,状态表可进一步分为“服务状态表”和“事件状态表”。整个UPnP设备运行的全过程内,状态表贯穿始终,当设备状态改变的时候,例如发生参数变化或状态刷新的时候,立即就在“状态表”中反映出来。如控制服务器在接收到设置时间的行为请求时,就立即执行请求(对时操作),并给出响应,同时更新状态表中的有关数据。相应地,事件服务器负责向对此事件感兴趣的设备公布所发生的状态改变。例如,一个火灾事件发生后,事件服务器就向火灾报警器发布这个事件,导致报警器动作产生报警信号。
控制指针:
  在UPnP网络中,用户请求设备执行的控制是通过控制指针实现的,控制指针首先是一个有能力控制别的设备的控制者,还要具有在网络中
“发现”控制目标的能力。在发现(控制目标)之后,控制指针应当:
  ①取得设备的描述信息并得到所关联的服务列表。
  ②取得相关服务的描述。
  ③调用控制服务行为。
  ④确定服务的事件 “源”,不论何时,只要服务状态发生改变,事件服务器会立即向控制指针发送一个事件信息。
  从上面说到的各种信息,都保存在XML文件中,不同用途的信息,格式不同。保证可以各取所需,不会混淆。
  那么,UPnP的完整工作过程是怎样的呢?
  UPnP在控制指针和被控制设备之间提供通讯功能。而网络介质、TCP/IP协议、HTTP仅提供基本的连接和IP地址分配。整个工作过程需要处理六个方面的内容,即地址分配、发现设备、对设备的描述、设备控制、设备事件、设备表达。
  地址问题:
  地址是整个UPnP系统工作的基础条件,每个设备都应当是DHCP(Dynamic
Host Configuration Protocol
动态主机配置协议)的客户。当设备首次与网络建立连接后,利用DHCP服务,使设备得到一个IP地址。这个IP地址可以是DHCP系统指定的,也可以是由设备选择的,当然,有能力自己选择IP地址的设备,必然是那些“聪明”的设备才行!这也就是所谓的“自动”IP地址。如果遇到本地DHCP管理范围之外的IP地址请求,还需要解决“友好设备”的地址分配问题,这个问题通常由域名服务器来解决。
  发现设备:
  可分成两种情况,一种是在有控制请求之后,在当前的网络中查找有无对应的可用设备;另一种情况是某一设备接入网络、取得IP地址之后,就开始向网络“广播”自己已经进入网络,即寻找控制请求。
  设备的描述:
  简单说,这是声明“自己”是什么样的设备,例如名称、制造厂商、序列号码等等。刚开始“发现”设备后,控制指针对这个设备的“了解”还很少,需要依据ULR找到该设备的描述文件,从这些文件中读取更多的描述信息。描述信息的范围很广,一般都是由设备的制造厂商提供的。主要的描述项目有:控制的模式名称和模式号码、设备序列号、制造厂商名称、厂商的WEB的ULR……等等。这些一般都存放在特定的XML文件中;
设备控制:
  控制指针找到设备描述之后,会从描述中“提炼”出要进行的操作并获悉所有的服务;对每个UPnP设备来说,这些描述必须是很确切、很详细的,描述中可能包含有命令或行为列表、服务响应信息、用到的参数等等。对于服务的每个行为,也伴有描述信息:主要是整个服务进行期间的变量、变量的数据类型、可用的取值范围和事件的特征。
  要控制某个设备,控制指针必须先发送一个控制行为请求,要求设备开始服务,然后再按设备的ULR发送相应的控制消息,控制消息就是放置在XML文件中的那些SOAP格式的信息。最后,服务会返回响应信息,指出服务是成功或是失败。
  设备事件:
  在服务进行的整个时间内,只要变量值发生了变化或者模式的状态发生了改变,就产生了一个事件,系统将修改上述提到的事件列表的内容。随之,事件服务器把事件向整个网络进行广播。另一方面,控制指针也可以事先向事件服务器预约事件信息,保证将该控制指针感兴趣的事件及时准确地传送过来。
  广播或预约事件,传送的都是事件消息,事件消息也放在XML文件中,使用的格式是GENA。
  设备投入工作之前的准备―――初始化过程,也是一个事件,初始化需要的各种信息也是用事件消息传送的。包括的内容主要是:变量初始值,模式的初始状态等等。
  设备表达:
  只要得到了设备的ULR,就可以取得该设备表达页面的ULR,然后可以将此表达纳入用户的本地浏览器上。这部分还包括与用户对话的界面,以及与用户进行会话的处理。
  整个UPnP系统,是在“中枢神经”的指挥下协同工作的。其大致情形如下:
  凡是具备IP地址的的设备都必须直接使用网络的IP地址,但有些设备可能并不具备直接使用网络IP地址的能力,例如,电灯开关的控制就是这样,这是非IP设备;非IP设备通过网桥(UPnP
Bridge)来与控制指针交换信息。
  直接使用IP地址的有:控制指针(可在口袋电脑和远程设备上发出控制)、本地设备,例如VCR和时钟;以及网桥。非IP设备有所谓轻设备(如温度控制器)和非UPnP的设备(如电灯控制开关等)。
上述介绍属于硬件方面,下面再说作为控制灵魂的软件:
  在上面的叙述中,多次提到用XML文件存放需要的信息,因为无论是控制指针或设备服务,都需要很多信息,有读出的,有传出的,UPnP协议约定这些都存放在特定的文件XML中。用途不同的信息,在XML文件中的格式不同。所以,相关的XML文件是控制服务的灵魂。
四、关于UPnP隐藏的安全缺缺陷:
  这次发现的安全缺陷共有两个,其中第一个缺陷是对缓冲区(Buffer)的使用没有进行检查和限制。外部的攻击者,可以通过这里取得整个系统的控制特权!由于UPnp功能必须使用计算机的端口来进行工作,取得控制权的攻击者,还有可能利用这些端口,达到攻击者的目的。这个缺陷导致的后果很严重,不论那个版本的windows 系统,只要运行UPnP,就都存在这个危险!但严格地说,这并不完全是UPnP技术本身的问题,更多的是程序设计的疏忽。
  第二个缺陷就与UPnP的工作机理有关系了!
  该缺陷存在于UPnP工作时的“设备发现”阶段。发现设备可以分为两种情况:如果某个具备UPnP功能的计算机引导成功并连接到网络上,就会立刻向网络发出“广播”,向网络上的UPnP设备通知自己已经准备就绪,在程序设计这一级别上看,该广播内容就是一个M-SEARCH(消息)指示。该广播将被“声音所及”范围之内的所有设备所“听到”。并向该计算机反馈自己的有关信息,以备随后进行控制之用。
  相类似,如果某个设备刚刚连接到网络上,也会向网络发出“通知”,表示自己准备就绪,可以接受来自网络的控制,在程序设计这一级别上看,该通知就是一个NOTIFY(消息)指示。也将被“声音所及”范围之内的所有计算机接受。计算机将 “感知”该设备已经向自己“报到”。实际上,NOTIFY(消息)指示也不是单单发送给计算机听的,别的网络设备也可以听到。
  就是在上述的一播一听之间,出现了问题!
  如果某个黑客向某个用户系统发送一个NOTIFY(消息)指示,该用户系统就会收到这个NOTIFY(消息)指示并在其指示下,连接到一个特定服务器上,接着向相应的服务器请求下载服务―――下载将要执行的服务内容。服务器当然会响应这个请求。UPnP服务系统将解释这个设备的描述部分,请求发送更多的文件,服务器又需要响应这些请求。这样,就构成一个“请求――响应”的循环,大量占用系统资源,造成UPnP系统服务速度变慢甚至停止。所以,这个缺陷将导致“拒绝服务”攻击称为可能!
  结束语
  UpnP正在向我们一步步走近,现在已经是足声可闻了。不久的将来,必然对我们的工作和生活产生巨大影响。也蕴含着无限商机。尽管现在存在问题,也难保以后就不会再出现新的问题,但这既然体现了人的需求意向,就会有巨大的生命力,暂时的挫折不会使得它停下前进的脚步!
附:这是本文出现的相关名词解释:
  传送协议:
  主要用HTTP 、HTTPU和HTTPMU:
  HTTP:
  这是大名鼎鼎的东西,不用多说,但就UPnP系统来说,HTTP及其派生协议都属于核心部分。
  HTTPU和HTTPMU:
  这些都是从HTTP协议中派生定义出来的。主要用于传送SSDP格式的设备消息。
  SSDP:
  是一个“简单服务发现协议” ,即英文“Simple Service Discovery Protocol的缩写” , 该协议定义了如何在网络上发现网络服务的方法。SSDP也规定了存放在XML文件中的信息格式。SSDP信息的传送是依靠HTTPU和HTTPMU进行的。不论是控制指针,或是UPnP设备,工作中都必然用到SSDP,设备接入网络之后,要利用它向网络广播自己的存在(广播的信息中还有设备位置的描述),以便尽快与对应的控制指针建立联系;控制指针则利用SSDP来搜索自己将要控制的设备在哪里?并且可以排除已经存在的设备和控制指针――只为新近的或尚未“联络”上的双方服务。控制指针利用SSDP的方式是经由HTTPU发出搜索请求,这种请求可以很详细,能具体到需要什么样的设备以及何种服务。例如:请求对特定的VCR机进行设置时钟的服务。设备利用SSDP的方式是“收听”来自网络端口的消息,从中发现与自己匹配的信息,一旦找到与自己匹配的信息,经由HTTPMU来发送一个响应信息到控制指针。
  GENA:
  这是事件消息采用格式,是所谓“普通时间通知体系Generic Event Notification Architecture”的缩写。关于事件消息,在上面已经有介绍。
  SOAP:
  即简单对象访问协议,实际就是通过该协议传递控制消息并返回设备对消息的响应结果。它利用XML和HTTP进行远程调用。使用防火墙或别的网络安全措施不会影响SOAP的使用。
  每个UPnP控制请求都可作为一个SOAP控制消息,控制消息中还包含有控制行为描述和所用到的参数。
 
从心选者,用心交流.