发表于:2005/11/16 15:02:00
#0楼
首先,简单地说明一下UPnP为何物。所谓UPnP是将相关设备连入个人电脑时使用的即插即用(Plug and Play:PnP)接口扩展到网络中使用。如果是支持UPnP的设备,它可以检测到新接入网络的支持UPnP的设备,并可以自动将其设置为可使用状态。比如,用户将新买回的支持UPnP的网络打印机与LAN相连接,LAN上的个人电脑可以检测到该打印机,并可以自动将电脑设置为可以使用新接入的打印机进行打印。
看了以上的说明,用户也许会认为其中使用了一种非常复杂的独有技术。但实际上,UPnP是在因特网及LAN中日常使用的以TCP/IP协议为基础的技术。
首先,在支持UPnP的设备接入LAN时,它可以自动设置IP地址等。在这方面,使用了DHCP(dynamic host configuration protocol)。关于DHCP,可能有很多读者通过设置个人电脑的TCP/IP而对其有所了解。通过DHCP分配到IP地址之后,下一步可以通知LAN上的其它设备其自身已经接入LAN。这里使用的协议为UDP(user datagram protocol)。UDP也是一种可以用于因特网的流式广播电视及VoIP(voice over IP)等的协议。使用UDP,可以通过多点传送(Multicast)向LAN上所有支持UPnP的设备发送新设备接入的通知。UPnP的接口号码使用的是1900号。传输层的数据交换使用的协议是由标准化团体UPnP Forum制定的独自标准SSDP(Simple Service Discovery Protocol)。
接下来便进入新接入的设备和此前已经接入的设备之间交换详细信息的阶段。实际上,在这种状态下交换数据时,在Web服务和浏览器之间的通信中使用的HTTP(Hypertext Transfer Protocol)照常使用。但是,制造商名称、机型、功能、控制命令等使用HTTP发送的数据模式不是使用HTML(Hypertext Markup Language),而使用XML(Extensible Markup Language)。XML是作为HTML的新一代版本而开始用于各种用途的表述语言。
此外,关于网络打印机纸张用完等状态出现变化之时的交换,使用的是HTTP的扩展协议GENA(General event Notification Architecture),在控制设备时交换XML数据使用的协议为SOAP(Simple Object Access Protocol)。
如此说来,便可得知所谓的UPnP这项新技术是现有技术的集合。您大概曾在哪里听说过DHCP、HTTP、XML等名称吧?虽然这其中也有SSDP、GENA、SOAP等不太常见的技术,但这也是现有技术的扩展。
针对这些特点,我们以前在应用DTU等设备进行数据传输的时候,通常会采用每个设备固定一个公网ip的方式,或者采用每个设备使用不同的端口,由服务器端开放相应的端口进行监听并利用端口的不同加以区分设备。
但这就有几个问题,
第一种采用不同公网ip的方式:由于现在ip的资源越来越缺乏,这并不是一件很容易办到的事,对于某些地方可以提供与SIM/UIM绑定固定ip的服务,不过这样的方法或许要额外收费(费用绝对不低),且也不一定每个地方都支持。
第二种采用端口通讯的方式很直接,网络开销也少,但需要在服务器端的网关对设备使用的端口逐一做映射(NAT),先不说有多少人能够正确使用端口影射,就说这个映射一堆端口而更改了设备后又要反复修改映射这个过程就足以让人晕倒!
而现在利用UPnP技术以后,这一切将变得简单了——
映射的工作交由服务端软件自行完成,当服务端需要什么端口的时候,它将会自动通过网关路由器申请这个端口,网关路由器在收到申请后就会将这个端口映射到发起申请的机器上,同时也在路由器的内部防火墙对外开放这个端口(时常有配置了NAT却无法成功转发的原因之一就是路由器的内部防火墙没有对外开放相应端口)。这样,终端设备就可以和服务器自由通讯了,这个过程完全不需要人工干预。而需要某个设备在服务器里删除某个设备的时候,也会同时删除相应开放了的端口,释放网络资源。
特别针对工控行业用的DTU数传设备,只要在DTU中做很少的改动工作,再在服务器端软件加入UPnP相关控件即可。
用本公司倚天ETPro系列DTU产品实验成功。
看了以上的说明,用户也许会认为其中使用了一种非常复杂的独有技术。但实际上,UPnP是在因特网及LAN中日常使用的以TCP/IP协议为基础的技术。
首先,在支持UPnP的设备接入LAN时,它可以自动设置IP地址等。在这方面,使用了DHCP(dynamic host configuration protocol)。关于DHCP,可能有很多读者通过设置个人电脑的TCP/IP而对其有所了解。通过DHCP分配到IP地址之后,下一步可以通知LAN上的其它设备其自身已经接入LAN。这里使用的协议为UDP(user datagram protocol)。UDP也是一种可以用于因特网的流式广播电视及VoIP(voice over IP)等的协议。使用UDP,可以通过多点传送(Multicast)向LAN上所有支持UPnP的设备发送新设备接入的通知。UPnP的接口号码使用的是1900号。传输层的数据交换使用的协议是由标准化团体UPnP Forum制定的独自标准SSDP(Simple Service Discovery Protocol)。
接下来便进入新接入的设备和此前已经接入的设备之间交换详细信息的阶段。实际上,在这种状态下交换数据时,在Web服务和浏览器之间的通信中使用的HTTP(Hypertext Transfer Protocol)照常使用。但是,制造商名称、机型、功能、控制命令等使用HTTP发送的数据模式不是使用HTML(Hypertext Markup Language),而使用XML(Extensible Markup Language)。XML是作为HTML的新一代版本而开始用于各种用途的表述语言。
此外,关于网络打印机纸张用完等状态出现变化之时的交换,使用的是HTTP的扩展协议GENA(General event Notification Architecture),在控制设备时交换XML数据使用的协议为SOAP(Simple Object Access Protocol)。
如此说来,便可得知所谓的UPnP这项新技术是现有技术的集合。您大概曾在哪里听说过DHCP、HTTP、XML等名称吧?虽然这其中也有SSDP、GENA、SOAP等不太常见的技术,但这也是现有技术的扩展。
针对这些特点,我们以前在应用DTU等设备进行数据传输的时候,通常会采用每个设备固定一个公网ip的方式,或者采用每个设备使用不同的端口,由服务器端开放相应的端口进行监听并利用端口的不同加以区分设备。
但这就有几个问题,
第一种采用不同公网ip的方式:由于现在ip的资源越来越缺乏,这并不是一件很容易办到的事,对于某些地方可以提供与SIM/UIM绑定固定ip的服务,不过这样的方法或许要额外收费(费用绝对不低),且也不一定每个地方都支持。
第二种采用端口通讯的方式很直接,网络开销也少,但需要在服务器端的网关对设备使用的端口逐一做映射(NAT),先不说有多少人能够正确使用端口影射,就说这个映射一堆端口而更改了设备后又要反复修改映射这个过程就足以让人晕倒!
而现在利用UPnP技术以后,这一切将变得简单了——
映射的工作交由服务端软件自行完成,当服务端需要什么端口的时候,它将会自动通过网关路由器申请这个端口,网关路由器在收到申请后就会将这个端口映射到发起申请的机器上,同时也在路由器的内部防火墙对外开放这个端口(时常有配置了NAT却无法成功转发的原因之一就是路由器的内部防火墙没有对外开放相应端口)。这样,终端设备就可以和服务器自由通讯了,这个过程完全不需要人工干预。而需要某个设备在服务器里删除某个设备的时候,也会同时删除相应开放了的端口,释放网络资源。
特别针对工控行业用的DTU数传设备,只要在DTU中做很少的改动工作,再在服务器端软件加入UPnP相关控件即可。
用本公司倚天ETPro系列DTU产品实验成功。
[此贴子已经被作者于2005-11-21 8:54:15编辑过]