显示标签为“UPnP”的博文。显示所有博文
显示标签为“UPnP”的博文。显示所有博文

2012年6月26日星期二

如何在W5200E01-M3中實現UPnP(通用隨插即用) 埠轉發(三)

http://wiznet2012.blogspot.kr/2012/06/w5200e01-m3upnp_25.html

大家好,前面我们为大家分享了如何实现W5200E01-M3中的UPnP(通用即插即用) 端口转发(二),今天继续为大家分享最后一部分,希望对大家有帮助~
4. 预设置
4.1 局限性
 
我们不支持AutoIP。在本文的应用说明和基于W5200的模型中,DHCP是获取IP地址的唯一途径。
我们不支持设备广告。在本文的应用说明和基于W5200的模型中,广播寻找是搜索UPnP设备的唯一方法。同时,多余的通告信息将不被识别。
W5200单片机扮演了UPnP控制指针的角色,它实际上不需要嵌入网络服务器。网络服务器在UPnP设备中是不可缺少的。在这篇应用手册和基于W5200的模型中,不支持事件表达。
4.2 设置
IGD必须提前使能DHCP和UPnP功能。
5. 使用举例
用户必须按照下面的网络构造来执行UPnP端口发送。


注意: 默认状态下,本文添加了内部IP:4321 外部 IP: 1234的端口映射
通过图5,我们可以看到如下的应用过程:
DHCP->SSDP-> Get Description->AddPortMapping--->DeletePortMapping
(10 秒)
“10秒” 表示在AddPortMapping之后,用户有10秒钟的时间用于检测。10秒钟之后,
DeletePortMapping将会自动完成,紧随其后的则是一些相关的事件信息。正如之前所说的,对于测试,W5200(TCP服务器)将保持socket(内部端口4321)的监听。因此,如果能够与添加的外部端口建立连接,表示AddPortMapping操作成功。10秒之后,如果连接失败,表示DeletePortMapping成功。
下面的1~3步顺序执行UPnP端口转发:
  1. 上传应用文本的固件到W5200_EVB(关于上传方法,请参考W5200_EVB用户指南)。
  2. 运行串行终端,然后打开与W5200_EVB相连接的COM。(波特率:115200,数据位:8位,奇偶校验位:无,停止位:1位,流控制:XON/XOFF)
  3. 复位W5200_EVB之后串行终端将会告知用户它的运行状态。”AddPort Success!”信息表示AddPortMapping操作成功完成。
7.jpg
图7. AddPortMapping成功
4. 默认状态下, 本文添加了内部IP: 4321ó 外部IP: 1234的端口映射。 用户可以利用AX1来检验这一点。

图8. 在远程主机上运行TCP客户端并且将其与IGD连接(添加外部端口)
5. 默认状态下,已添加的映射入口将会在10秒钟之后被自动删除。此时,将会看到“DeletePort Success!!”信息。 

图9. DeletePortMapping成功
6. 再次运行AX1,检验映射入口是否被删除。
10.jpg
图10. 在远程主机上运行TCP客户端并将其与IGD连接(删除的外部端口)
签名.jpg

2012年6月21日星期四

如何實現W5200E01-M3中的UPnP(通用隨插即用) 埠轉發(一)


这篇应用文章将会介绍WIZnet W5200芯片和基于W5200的模块上UPnP的一些技术信息。第一,介绍什么是UPnP。第二,介绍UPnP工作组定义的端口转发概念。最后,这篇文章会说明W5200芯片如何添加和删除端口映射。今天为大家分享第一部分,端午节后继续为大家分享后面两部分~希望对大家有帮助~

1. 说明

1.1 概念 请参考Wikipedia

What is UPnP?    
UPnP的概念最早来源于即插即用。即插即用是描述计算机总线特性、设备规格的一个专业术语。利用即插即用可以大大简化系统的整个硬件组成,而不需要再进行物理设备的配置,也避免了解决资源冲突时用户的干预[1][2]。整个思路就是:只需要在设备中插入,然后就可以使用。
如今将UPnP将即插即用概念创造性地应用于网络环境下。UPnP可以自动搜索设备类别。它支持零配置,“隐形”网络,以及自动检索功能。这就意味着设备UPnP可以动态加入网络、获得IP地址、传输性能,从而得到当前设备以及其他设备的性能的相关信息——全自动化、完全零配置网络支持。

1.2 UPnP结构以及UPnP涉及的步骤

UPnP结构
TCP由客户端和服务器构成。同样地,UPnP结构也基于设备和控制点:
 设备:
     提供服务
    例如,UPnP DVD播放器是用来提供DVD播放服务的设备。
    记录设备的状态.
    例如,DVD播放器能够记录DVD的播放状态。
控制点
     控制已经定义的设备来执行相应的服务
图 1. UPnP网络
为了能够实现所有的描述,通用即插即主要应用于TCP/IP、DHCP、XML等等现存的一些标准中,从而使这些标准的应用更加广泛。
UPnP网络应用的步骤
在UPnP机制下存在6种不同的步骤:
(1)寻址
寻址是通过控制点和设备取得网络地址的过程。这些控制点和设备先从DHCP服务器上获得一个IP地址;如果没有可用的IP地址,将会在169.254的子网上随机获取一个自动IP地址。
注意: 在寻址过程中,AutoIP和DHCP都可以协助UPnP控制点和设备取得一个IP地址。但是DHCP要比AutoIP的更为常用和可靠。所以,在这篇应用手册和基于W5200的模型中,DHCP是获得IP地址的唯一方法。

(2)搜索
控制点可以通过搜索来查找对它们有意义的设备。
当控制点进入网络时,它们以普通或者特殊方式释放search packets来搜索and/or服务的设备。搜索完成后,具有合适服务特性的设备或者子设备就会做出响应。
同样地,UPnP设备首先将会以规律性间隔的方式在网络上表明自身的存在。控制点监听这些状态,检测这些新的设备并且判断它们在网络上的性能表现。
网络上的其它UPnP设备将会发出通知表明它们提供的服务将不再有效。
注意: 在搜索过程中,无论是Searching或者Advertising都可以帮助UPnP控制点来寻找UPnP设备。在Searching和Advertising这两种方法相同的情况下,在这篇应用手册和基于W5200的模型中都是保留了Searching方法,而Advertising方法将被忽略。
(3)描述
UPnP发送搜索包,将控制点送到一个它们能够检索Device Description Document(DDD)的位置。DDD包括:
所有嵌入式设备的概述以及一个服务列表。
被称做服务控制协议定义(SCPD)一个URL。SCPD描述了控制点如何使用这些设备提供的服务。
控制和事件URLs: 这些URLs表示控制点必须发送命令来配置UPnP设备,并且利用这些设备所提供的服务。
用来陈述的URL(见第6步).
 (4)控制
控制过程允许控制点向设备发送命令。如之前提到的,在DDD中指定发送命令的URL。
 (5) 事件
事件过程允许控制点跟踪设备的状态变化。控制点首先订阅合适的服务,随后设备服务中任何状态的变化都会以事件的形式发送给已经订阅的控制点来保证它们的更新。
 (6) 陈述
控制点能够选择性地为设备显示一个用户的界面。用来陈述的URL是在DDD中已经被指定。陈述页面显示基于HTML的用户界面,这样用户就可以参考and/or设备的状态。所以陈述过程是控制过程和事件过程的补充。
注意: W5200扮演了一个UPnP控制点的角色,实际上它并不需要嵌入一个网络服务器。网络服务器在UPnP设备中是不可缺少的,所以在本文和基于W5200单片机的模型中,并不支持陈述过程。

2. 端口转发和UPnP

端口转发
简单来说,端口发送(另一种说法是NAT遍历)功能允许创建TCP和UDP协议映射。这些协议应用于外部因特网网关设备(IGD)端口(称为外部端口)和内部客户机地址。这里的内部客户地址与其中的一个端口相联系(分别称为内部客户机和内部端口)。
请参考下面的图形来理解端口转发的应用:
UPnP和端口转发
端口转发是IGD众多功能中最基本的一个(更多的IGD标准功能可以在UPnP IGD服务模板中找到)。尽管端口转发功能可以手动完成,但是通过使用UPnP,端口转发功能默认执行操作。我们可以这样说,UPnP为用户实现了端口转发的更清晰化。
目前,很多类型的P2P软件都支持UPnP的端口转发功能,例如Skype、UTorrent以及MSN。如果你对UPnP感兴趣,可以登录IGD的设置页面找到端口发送列表(见图4),在列表中你会发现所有的端口映射。大部分的映射都是有UPnP完成,而不是用户。
图4. UPnP端口映射列表