Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO/IEC 29341-26-1标准定义了WANDevice:1模板,作为通用即插即用(UPnP)广域网(WAN)连接在住宅和小型企业网关中的根设备。该模板是互联网网关设备(IGD)规范的基础,为UPnP控制点发现宽带路由器或调制解调器的WAN接口能力并与之交互提供了标准化方式。
作为根设备,WANDevice封装了所有WAN相关服务,并作为WANConnectionDevice等子设备的容器。模板定义了统一的设备描述文档(XML格式),用于广播设备类型、友好名称、制造商详情、型号信息以及内嵌服务列表。该模板的标准设备类型URN为urn:schemas-upnp-org:device:WANDevice:1。
WANDevice:1模板定义了反映宽带WAN连接物理层和逻辑层层次结构的服务模型。顶层WANDevice包含必需的WANCommonInterfaceConfig服务,暴露物理接口状态、链路速度和错误计数等状态变量。下层可托管一个或多个WANConnectionDevice子设备,每个子设备代表不同的WAN连接上下文(例如IPv4 PPPoE会话和独立的IPv6隧道)。
| 服务 | 服务ID | 必需 | 描述 |
|---|---|---|---|
| WANCommonInterfaceConfig | urn:upnp-org:serviceId:WANCommonIFC1 | 是 | 物理接口状态、比特率和链路属性 |
| WANConnectionDevice(子设备) | urn:upnp-org:device:WANConnectionDevice:1 | 推荐 | 逻辑连接管理(PPP、IP、桥接) |
| WANEthernetLinkConfig | urn:upnp-org:serviceId:WANEthLinkC1 | 可选 | 以太网特定链路配置参数 |
WANDevice的服务层使用状态变量报告实时连接指标。例如,PhysicalLinkStatus是一个字符串变量,可取值为“Up”、“Down”或“Initializing”,允许控制点监控链路健康状态。TotalBytesSent和TotalBytesReceived计数器提供累计流量统计,特别适用于带宽监控应用。
实现WANDevice:1模板需要关注几个设计模式。首先是观察者模式,它隐含在UPnP事件通知架构中:控制点通过GENA(通用事件通知架构)协议订阅服务状态变量,设备必须在变量变化时推送通知。对于WANDevice,PhysicalLinkStatus变量应在状态转换时生成事件,允许控制点(如路由器的Web界面)实时更新状态显示。
其次,组合模式体现在WANDevice/WANConnectionDevice的关系中。根WANDevice作为组合容器,每个WANConnectionDevice作为实现特定连接协议的叶子节点。这种层次结构自然地映射到面向对象的实现中,根设备维护一个连接设备实例列表。
GetStatusInfo动作上。一些实现返回过时的连接状态,因为它们以过低频率轮询物理接口驱动程序。标准建议轮询间隔不超过30秒,但许多量产网关将轮询间隔设置为60-120秒以减少CPU开销。这种响应性与资源利用之间的权衡需要仔细平衡。从安全角度来看,WANDevice:1模板暴露了多个可能泄露WAN接口信息的状态变量。虽然UPnP控制通常限于内部LAN,但设备描述XML本身不应泄露外部IP地址或DNS服务器信息等敏感数据。生产实现应在从非LAN接口查询时过滤ExternalIPAddress变量。
libupnp或pupnp开源库中包含WANDevice:1模板的参考实现。这些库提供了完整的SOAP控制点和设备协议栈,允许工程师专注于设备特定逻辑,而不是处理低层HTTPMU和HTTPU协议。