1Upnp简介
👉 由通用即插即用论坛推广的一套网络协议。该协议的目标是使得家庭网络和公司网络中的各种设备能够无缝连接在一起(神圣的卡拉连接我们每一个人😂)有星际神族那味了。Upnp可以使得任意两个设备能在LAN控制设备的管理下相互通信。
其基本组件有。emmm上图🍸
![](https://img.haomeiwen.com/i10410011/3d333ef57dabdaa6.png)
服务:再Upnp网络中最小的控制单位。服务描述的是设备在不同的情况下的活动和设备的状态
设备:Upnp网络中的设备概念很宽泛。各种各样的家电、电脑外设、智能设备都可以算是设备
控制点:可以发现其他设备并控制的设备。
举个例子👉我们在用投屏app将视频投屏到电视上的过程中。手机是控制点。设备就是电视机。看电视算是服务啦(这点不是很确定)
2Upnp协议栈
接下来就来看看我们的协议栈
![](https://img.haomeiwen.com/i10410011/cac742f8c65ef734.png)
Upnp定义了设备之间、设备和控制点之间的协议。完整的upnp由设备寻址、设备发现、设备描述、设备控制、事件通知和基于Html的描述界面几部分组成。看图
![](https://img.haomeiwen.com/i10410011/a9e6cb732bd1a4d8.png)
IP:就是ip网络协议。
为什么需要它?
因为用到网络层数据的传输,IP层用于数据的发送与接收。
想象一下两个设备互联,其实就是在网络互联,所以需要网络层协议。
![](https://img.haomeiwen.com/i10410011/d90d845c6af9cad2.png)
由图可以看到我们使用的是UDP来进行设备发现的。同时流媒体也会使用UDP。为什么?快!而设备控制和HTTP则使用TCP来进行承载。
设备发现 SSDP 协议
简单服务发现协议(Simple Service Discovery Protocol:SSDP)
具体包括控制点如何发现网络上有哪些服务,以及这些服务的资讯,还有控制点本身宣告他提供哪些服务。
控制设备 SOAP 协议
简单对象访问协议(Simple Object Access Protocol:SOAP)
它定义如何使用 XML 与 HTTP 来执行远程过程调用。包括控制点如何发送命令消息给设备,设备收到命令消息后如何发送响应消息给控制点。
设备事件 GENA 协议
通用事件通知架构(Generic Event Notification Architecture:GENA)
定义在控制点想要监听设备的某个服务状态变量的状况时,控制点如何传送订阅信息并如何接收这些信息。
![](https://img.haomeiwen.com/i10410011/ab92a49d3935d295.png)
这是一个抽象公用的设备模型。规范定义
![](https://img.haomeiwen.com/i10410011/44eaf8589ed568e5.png)
论坛里各个委员会的定义层。这个不同的设备会有不同的委员会来定义。
![](https://img.haomeiwen.com/i10410011/5a5c2b19413a4c5b.png)
应用层。设备制造厂商定义的部分
Upnp实现的工作流程
![](https://img.haomeiwen.com/i10410011/ae215c5ffc7971a9.png)
如图吧🙃
1、控制点和设备在加入网络后都会先取ip地址👉
2、控制点开始寻找整个网络上的Upnp设备😀
3、控制点取得设备的描述、包括提供了什么服务👍
4、控制点发出动作信息👉
5、控制点监听设备的状态,状态改变时做出处理🍸
6、控制点可以利用ui界面来控制监听设备🙃
网友评论