UPnP 协议简介(原创)

时间:2022-11-30 20:44:26
简介

    请等待更新...

前期准备知识

    由 UPnP 协议在网络中扮演的的角色,和它所处的位置,对于刚刚接触的人来说直接讲会让人晦涩难懂,因此在你做出这个决定(从头至尾弄明白这个协议到底是长成什么样,怎么长的)的时候,你就不可避免的需要做好事先储备好以下的知识的准备。依靠这些知识储备才能更好的帮助我们理解好它,但前提是我也不知道看到这篇文章的你现在是一个什么状态,可能还是一个像我一样的刚入行的小菜鸟,也可能是上知架构,下懂汇编的大牛,所以一下提供的资料如有错误,缺失的地方,还请指出,我会不定期的将新内容更新进来……(此时响起歌声:“只要人人都献出一点爱,世界……” “pia pia pia” 包租婆吼道“唱什么唱”)

计算机网络(网络、局域网、TCP/IP、UDP、域名...)
HTTP 协议规范
XML 格式规范
SSDP 协议规范
SOAP 协议规范

    名词解释

- 名词解释
* Device
被控制的设备
* CPs ( Control Points )
运行有控制服务的设备
* advise
广播,通知
* DNS
域名解析协议
* SSDP ( Simple Service Discovery Protocol )
简单服务发现协议
* device description
设备描述
* service descriptions
服务描述
* UPnP Control Request
UPnp 控制请求
* UPnP Control Response
UPnp 控制请求响应
* UPnP Control Error Response
UPnp 控制错误响应
* Event
事件
* MultCast
多播
* UniCast
单播
* Subscriber
订阅者
* Publisher
推送者
* Subscrible
订阅
* Publish
推送
* Renewal
续订
* Cancel
取消订阅
* GENA( General Event Notification Architecture )
普通消息通知体系
UPnP 简单流程

    UPnP 是一个网络协议,凌驾于 IOS7 层模型的网络层以上,它的实现主要依赖于现有的一些网络技术,工具。总的来说 UPnP 的实现主要遵循以下流程,或者说 UPnP 的实现主要实现以下几个部分应该更加贴切一点:

    寻址 --> 发现 --> 描述 --> 控制 --> 事件 --> 表达

    其中,寻址,和表达基本上没什么特别的规定,都是借助现有的一些工具实现,像在寻址这部分实现的时候主要的三种方法:

    a. DHCP
b. Auto-IP
c. 以及 DNS

    这些都是存在很久也很普及的一些工具。

    下面我们来对 UPnP 的各个组成部分做详细的说明.

UPnP 详细流程
  • 寻址:这个部分主要是完成 Device 连入网络收发设备后(不管是插入网线还是连接无线网),完成设备获取 IP 连入互联网的工作。主要使用的三种策略方法也在上面提到了,今后还会在后文中提到。
  • 发现:这里的发现指的是 UPnP 的 CP(控制设备)对 UPnP 的 Device(服务提供设备)的发现,这里采用 SSDP (简单服务发现协议)。同样这个协议也会在后文做详细介绍。这里大概是列举一个提纲。但是需要注意的是,UPnP 的 CP 和 Device 可能在同一个实体上,例如手机,它在充当遥控器(CP)的角色的同时也可能在充当视频播放器(Device)。
  • 描述:按字面意思也不难猜出,一个设备何以认识另一个设备,就像一个人何以认识另一个人一样,人有相貌、性格,也有名字,机器也有类型、属性、服务、ID等等等等。因此 CP 在发现 Device 的同时也需要知道该 Device 是什么类型,干什么用,怎么让他干活。而这些在 Device 或者 CP 未连入网络之前,都是不明确的,因此在发现了之后,需要做的就是 CP 向 Device 请求 Device 的描述信息,或者 Device 通过 MultCast 的方式告知 网邻中的 CP。这些描述信息共分为这么两类,
            1.  设备描述,起重设备描述不仅包含对 Device 本身的一些特有属性的描述(如
    ID,name),还包含如何控制 Device 提供服务的方法(实现定义好的能力集 ID
    ,控制 Device 的 URL 之类的)。
    2. 服务描述:描述 Device 能干些什么
    这些描述信息用 XML 打包。
  • 控制:CP 对 Device Server 的控制,这个过程中会产生三中信息:
            UPnP Control Request(控制信息)
    UPnP Control Response(控制响应信息)
    UPnP Control Error Response(控制出错信息)
    这些信息以事先商定好的格式传送,(SOAP 协议)
  • 事件:服务的执行过程不是一成不变的,有时候程序固定运行到某个节点会产生一个状态模式变化,或者有时候因为外界引入的激励也会产生某些已知或者未知的变化,这些变化在一定程度上时需要告知服务的控制者(订阅者更加确切) CP ,因此我们把产生的这个结果叫做一个 Event (事件),如果有 somebody 订阅,那么该 Event 将通过单播的方式告知 Somebody,如果没人订阅,则会以 MultiCast 的方式通知所有网邻中的(CP)。而事件的订阅和推送会用到 GENA 这个协议。这个协议会在后面做详细介绍
  • 表达:原始的 UPnP 中对之的解释是,Device 中存在的,对 Device 的信息进行描述的,甚至能对之进行控制的 HTML 工具。

    但个人觉得,个人觉得,个人,觉得。重要的事情说三遍,不同的 Device 所拥有的资源是不同的,甚至可能天差地别,因此表达工具只限于 HTML 个人觉得有点牵强。

HTTP 协议简单说明

    请等待更新...

2
SDDP 协议简单说明

    请等待更新...

SOAP 协议简单说明

    请等待更新...

XML 格式简单说明

    请等待更新...

GENA 协议简单说明

    请等待更新...


参考文档 相关文档 转载请注明出处,谢谢我是留白;我是留白;我是留白;(重要的事情说三遍)