Site updated: 2019-04-21 15:11:07

This commit is contained in:
Cool-Y 2019-04-21 15:11:08 +08:00
parent 4c82eab45c
commit d0a5460080
2 changed files with 17 additions and 17 deletions

View File

@ -87,13 +87,13 @@
<meta property="og:site_name" content="混元霹雳手"> <meta property="og:site_name" content="混元霹雳手">
<meta property="og:description" content="MiniUPnP概述HomePageOpenWRT与miniUPnP MiniUPnP项目提供了支持UPnP IGD(互联网网关设备)规范的软件。在MiniUPnPd中添加了NAT-PMP和PCP支持。 对于客户端MiniUPnPc使用libnatpmp来支持NAT-PMP。MiniUPnP守护程序MiniUPnPd支持OpenBSDFreeBSDNetBSDDragonFly B"> <meta property="og:description" content="MiniUPnP概述HomePageOpenWRT与miniUPnP MiniUPnP项目提供了支持UPnP IGD(互联网网关设备)规范的软件。在MiniUPnPd中添加了NAT-PMP和PCP支持。 对于客户端MiniUPnPc使用libnatpmp来支持NAT-PMP。MiniUPnP守护程序MiniUPnPd支持OpenBSDFreeBSDNetBSDDragonFly B">
<meta property="og:locale" content="zh-Hans"> <meta property="og:locale" content="zh-Hans">
<meta property="og:image" content="https://img-blog.csdn.net/20130705200535562?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWFzdG1vb241MDIxMzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"> <meta property="og:image" content="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555830377/paper/111.png">
<meta property="og:image" content="https://img-blog.csdn.net/20130705200956281?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWFzdG1vb241MDIxMzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"> <meta property="og:image" content="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555830425/paper/112.png">
<meta property="og:image" content="https://img-blog.csdn.net/20130705200558421?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWFzdG1vb241MDIxMzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"> <meta property="og:image" content="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555830465/paper/113.png">
<meta property="og:image" content="https://img-blog.csdn.net/20130705200648437?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWFzdG1vb241MDIxMzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"> <meta property="og:image" content="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555830499/paper/114.png">
<meta property="og:image" content="https://img-blog.csdn.net/20130705200702468?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWFzdG1vb241MDIxMzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"> <meta property="og:image" content="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555830533/paper/1133.png">
<meta property="og:image" content="https://img-blog.csdn.net/20130705200749218?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWFzdG1vb241MDIxMzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"> <meta property="og:image" content="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555830573/paper/115.png">
<meta property="og:image" content="https://img-blog.csdn.net/20130705200800015?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWFzdG1vb241MDIxMzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"> <meta property="og:image" content="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555830618/paper/1111.png">
<meta property="og:image" content="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555576753/paper/1.png"> <meta property="og:image" content="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555576753/paper/1.png">
<meta property="og:image" content="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555576810/paper/2.png"> <meta property="og:image" content="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555576810/paper/2.png">
<meta property="og:image" content="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555577220/paper/3.png"> <meta property="og:image" content="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555577220/paper/3.png">
@ -105,11 +105,11 @@
<meta property="og:image" content="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555581385/paper/9.png"> <meta property="og:image" content="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555581385/paper/9.png">
<meta property="og:image" content="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555581672/paper/10.png"> <meta property="og:image" content="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555581672/paper/10.png">
<meta property="og:image" content="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555581840/paper/11.png"> <meta property="og:image" content="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555581840/paper/11.png">
<meta property="og:updated_time" content="2019-04-21T06:53:35.475Z"> <meta property="og:updated_time" content="2019-04-21T07:10:31.297Z">
<meta name="twitter:card" content="summary"> <meta name="twitter:card" content="summary">
<meta name="twitter:title" content="小米路由器_MiniUPnP协议"> <meta name="twitter:title" content="小米路由器_MiniUPnP协议">
<meta name="twitter:description" content="MiniUPnP概述HomePageOpenWRT与miniUPnP MiniUPnP项目提供了支持UPnP IGD(互联网网关设备)规范的软件。在MiniUPnPd中添加了NAT-PMP和PCP支持。 对于客户端MiniUPnPc使用libnatpmp来支持NAT-PMP。MiniUPnP守护程序MiniUPnPd支持OpenBSDFreeBSDNetBSDDragonFly B"> <meta name="twitter:description" content="MiniUPnP概述HomePageOpenWRT与miniUPnP MiniUPnP项目提供了支持UPnP IGD(互联网网关设备)规范的软件。在MiniUPnPd中添加了NAT-PMP和PCP支持。 对于客户端MiniUPnPc使用libnatpmp来支持NAT-PMP。MiniUPnP守护程序MiniUPnPd支持OpenBSDFreeBSDNetBSDDragonFly B">
<meta name="twitter:image" content="https://img-blog.csdn.net/20130705200535562?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWFzdG1vb241MDIxMzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"> <meta name="twitter:image" content="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555830377/paper/111.png">
@ -482,16 +482,16 @@
</ul> </ul>
<h3 id="MiniUPnP守护进程的实用性"><a href="#MiniUPnP守护进程的实用性" class="headerlink" title="MiniUPnP守护进程的实用性"></a>MiniUPnP守护进程的实用性</h3><p>UPnP和NAT-PMP用于改善NAT路由器后面的设备的互联网连接。 诸如游戏IM等的任何对等网络应用可受益于支持UPnP和/或NAT-PMP的NAT路由器。最新一代的Microsoft XBOX 360和Sony Playstation 3游戏机使用UPnP命令来启用XBOX Live服务和Playstation Network的在线游戏。 据报道MiniUPnPd正在与两个控制台正常工作。 它可能需要一个精细的配置调整。</p> <h3 id="MiniUPnP守护进程的实用性"><a href="#MiniUPnP守护进程的实用性" class="headerlink" title="MiniUPnP守护进程的实用性"></a>MiniUPnP守护进程的实用性</h3><p>UPnP和NAT-PMP用于改善NAT路由器后面的设备的互联网连接。 诸如游戏IM等的任何对等网络应用可受益于支持UPnP和/或NAT-PMP的NAT路由器。最新一代的Microsoft XBOX 360和Sony Playstation 3游戏机使用UPnP命令来启用XBOX Live服务和Playstation Network的在线游戏。 据报道MiniUPnPd正在与两个控制台正常工作。 它可能需要一个精细的配置调整。</p>
<h3 id="安全"><a href="#安全" class="headerlink" title="安全"></a>安全</h3><p>UPnP实施可能会受到安全漏洞的影响。 错误执行或配置的UPnP IGD易受攻击。 安全研究员HD Moore做了很好的工作来揭示现有实施中的漏洞<a href="http://hdm.io/writing/originals/SecurityFlawsUPnP.pdf" target="_blank" rel="noopener">通用即插即用PDF中的安全漏洞</a>。 一个常见的问题是让SSDP或HTTP/SOAP端口对互联网开放它们应该只能从LAN访问。</p> <h3 id="安全"><a href="#安全" class="headerlink" title="安全"></a>安全</h3><p>UPnP实施可能会受到安全漏洞的影响。 错误执行或配置的UPnP IGD易受攻击。 安全研究员HD Moore做了很好的工作来揭示现有实施中的漏洞<a href="http://hdm.io/writing/originals/SecurityFlawsUPnP.pdf" target="_blank" rel="noopener">通用即插即用PDF中的安全漏洞</a>。 一个常见的问题是让SSDP或HTTP/SOAP端口对互联网开放它们应该只能从LAN访问。</p>
<h2 id="协议栈"><a href="#协议栈" class="headerlink" title="协议栈"></a>协议栈</h2><p>工作流程<br><img src="https://img-blog.csdn.net/20130705200535562?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWFzdG1vb241MDIxMzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt></p> <h2 id="协议栈"><a href="#协议栈" class="headerlink" title="协议栈"></a>协议栈</h2><p>工作流程<br><img src="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555830377/paper/111.png" alt></p>
<p>Linux体系结构<br><img src="https://img-blog.csdn.net/20130705200956281?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWFzdG1vb241MDIxMzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt></p> <p>Linux体系结构<br><img src="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555830425/paper/112.png" alt></p>
<h3 id="发现"><a href="#发现" class="headerlink" title="发现"></a>发现</h3><p><img src="https://img-blog.csdn.net/20130705200558421?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWFzdG1vb241MDIxMzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt><br>给定一个IP地址通过DHCP获得UPnP网络中的第一步是发现。<br>当一个设备被加入到网络中并想知道网络上可用的UPnP服务时UPnP检测协议允许该设备向控制点广播自己的服务。通过UDP协议向端口1900上的多播地址239.255.255.250发送发现消息。此消息包含标头类似于HTTP请求。此协议有时称为HTTPUHTTP over UDP<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">M-SEARCH * HTTP / 1.1</span><br><span class="line">主机239.255.255.250 1900</span><br><span class="line">MANssdpdiscover</span><br><span class="line">MX10</span><br><span class="line">STssdpall</span><br></pre></td></tr></table></figure></p> <h3 id="发现"><a href="#发现" class="headerlink" title="发现"></a>发现</h3><p><img src="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555830465/paper/113.png" alt><br>给定一个IP地址通过DHCP获得UPnP网络中的第一步是发现。<br>当一个设备被加入到网络中并想知道网络上可用的UPnP服务时UPnP检测协议允许该设备向控制点广播自己的服务。通过UDP协议向端口1900上的多播地址239.255.255.250发送发现消息。此消息包含标头类似于HTTP请求。此协议有时称为HTTPUHTTP over UDP<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">M-SEARCH * HTTP / 1.1</span><br><span class="line">主机239.255.255.250 1900</span><br><span class="line">MANssdpdiscover</span><br><span class="line">MX10</span><br><span class="line">STssdpall</span><br></pre></td></tr></table></figure></p>
<p>所有其他UPnP设备或程序都需要通过使用UDP单播将类似的消息发送回设备来响应此消息并宣布设备或程序实现哪些UPnP配置文件。对于每个配置文件它实现一条消息发送<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">HTTP / 1.1 200 OK</span><br><span class="line">CACHE-CONTROLmax-age = 1800</span><br><span class="line">EXT</span><br><span class="line">LOCATIONhttp//10.0.0.13880 / IGD.xml</span><br><span class="line">SERVERSpeedTouch 510 4.0.0.9.0 UPnP / 1.0DG233B00011961</span><br><span class="line">STurnschemas-upnp-orgserviceWANPPPConnection1</span><br><span class="line">USNuuidUPnP-SpeedTouch510 :: urnschemas-upnp-orgserviceWANPPPConnection1</span><br></pre></td></tr></table></figure></p> <p>所有其他UPnP设备或程序都需要通过使用UDP单播将类似的消息发送回设备来响应此消息并宣布设备或程序实现哪些UPnP配置文件。对于每个配置文件它实现一条消息发送<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">HTTP / 1.1 200 OK</span><br><span class="line">CACHE-CONTROLmax-age = 1800</span><br><span class="line">EXT</span><br><span class="line">LOCATIONhttp//10.0.0.13880 / IGD.xml</span><br><span class="line">SERVERSpeedTouch 510 4.0.0.9.0 UPnP / 1.0DG233B00011961</span><br><span class="line">STurnschemas-upnp-orgserviceWANPPPConnection1</span><br><span class="line">USNuuidUPnP-SpeedTouch510 :: urnschemas-upnp-orgserviceWANPPPConnection1</span><br></pre></td></tr></table></figure></p>
<p>类似地,当一个控制点加入到网络中的时候,它也能够搜索到网络中存在的、感兴趣的设备相关信息。这两种类型的基础交互是一种仅包含少量、重要相关设备信息或者它的某个服务。比如,类型、标识和指向更详细信息的链接。<br>UPnP检测协议是 <strong><em>基于简单服务发现协议SSDP</em></strong> 的。</p> <p>类似地,当一个控制点加入到网络中的时候,它也能够搜索到网络中存在的、感兴趣的设备相关信息。这两种类型的基础交互是一种仅包含少量、重要相关设备信息或者它的某个服务。比如,类型、标识和指向更详细信息的链接。<br>UPnP检测协议是 <strong><em>基于简单服务发现协议SSDP</em></strong> 的。</p>
<h3 id="描述"><a href="#描述" class="headerlink" title="描述"></a>描述</h3><p>UPnP网络的下一步是描述。当一个控制点检测到一个设备时它对该设备仍然知之甚少。为了使控制点了解更多关于该设备的信息或者和设备进行交互控制点必须从设备发出的检测信息中包含的URL获取更多的信息。<br><img src="https://img-blog.csdn.net/20130705200648437?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWFzdG1vb241MDIxMzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt><br>某个设备的UPnP描述是 <strong>XML</strong> 的方式,通过http协议包括品牌、厂商相关信息如型号名和编号、序列号、厂商名、品牌相关URL等。描述还包括一个嵌入式设备和服务列表以及控制、事件传递和存在相关的URL。对于每种设备描述还包括一个命令或动作列表包括响应何种服务针对各种动作的参数这些变量描述出运行时设备的状态信息并通过它们的数据类型、范围和事件来进行描述。</p> <h3 id="描述"><a href="#描述" class="headerlink" title="描述"></a>描述</h3><p>UPnP网络的下一步是描述。当一个控制点检测到一个设备时它对该设备仍然知之甚少。为了使控制点了解更多关于该设备的信息或者和设备进行交互控制点必须从设备发出的检测信息中包含的URL获取更多的信息。<br><img src="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555830499/paper/114.png" alt><br>某个设备的UPnP描述是 <strong>XML</strong> 的方式,通过http协议包括品牌、厂商相关信息如型号名和编号、序列号、厂商名、品牌相关URL等。描述还包括一个嵌入式设备和服务列表以及控制、事件传递和存在相关的URL。对于每种设备描述还包括一个命令或动作列表包括响应何种服务针对各种动作的参数这些变量描述出运行时设备的状态信息并通过它们的数据类型、范围和事件来进行描述。</p>
<h3 id="控制"><a href="#控制" class="headerlink" title="控制"></a>控制</h3><p><img src="https://img-blog.csdn.net/20130705200702468?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWFzdG1vb241MDIxMzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt><br>UPnP网络的下一步是控制。当一个控制点获取到设备描述信息之后它就可以向该设备发送指令了。为了实现此控制点发送一个合适的控制消息至服务相关控制URL包含在设备描述中<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&lt;service&gt;</span><br><span class="line"> &lt;serviceType&gt; urnschemas-upnp-orgserviceWANPPPConnection1 &lt;/ serviceType&gt;</span><br><span class="line"> &lt;serviceId&gt; urnupnp-org serviceIdwanpppcpppoa &lt;/ serviceId&gt;</span><br><span class="line"> &lt;controlURL&gt; / upnp / control / wanpppcpppoa &lt;/ controlURL&gt;</span><br><span class="line"> &lt;eventSubURL&gt; / upnp / event / wanpppcpppoa &lt;/ eventSubURL&gt;</span><br><span class="line"> &lt;SCPDURL&gt; /WANPPPConnection.xml &lt;/ SCPDURL&gt;</span><br><span class="line">&lt;/ service&gt;</span><br></pre></td></tr></table></figure></p> <h3 id="控制"><a href="#控制" class="headerlink" title="控制"></a>控制</h3><p><img src="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555830533/paper/1133.png" alt><br>UPnP网络的下一步是控制。当一个控制点获取到设备描述信息之后它就可以向该设备发送指令了。为了实现此控制点发送一个合适的控制消息至服务相关控制URL包含在设备描述中<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&lt;service&gt;</span><br><span class="line"> &lt;serviceType&gt; urnschemas-upnp-orgserviceWANPPPConnection1 &lt;/ serviceType&gt;</span><br><span class="line"> &lt;serviceId&gt; urnupnp-org serviceIdwanpppcpppoa &lt;/ serviceId&gt;</span><br><span class="line"> &lt;controlURL&gt; / upnp / control / wanpppcpppoa &lt;/ controlURL&gt;</span><br><span class="line"> &lt;eventSubURL&gt; / upnp / event / wanpppcpppoa &lt;/ eventSubURL&gt;</span><br><span class="line"> &lt;SCPDURL&gt; /WANPPPConnection.xml &lt;/ SCPDURL&gt;</span><br><span class="line">&lt;/ service&gt;</span><br></pre></td></tr></table></figure></p>
<p>要发送SOAP请求只需要controlURL标记内的URL。控制消息也是通过 <strong><em>简单对象访问协议SOAP</em></strong> 用XML来描述的。类似函数调用服务通过返回动作相关的值来回应控制消息。动作的效果如果有的话会反应在用于刻画运行中服务的相关变量。</p> <p>要发送SOAP请求只需要controlURL标记内的URL。控制消息也是通过 <strong><em>简单对象访问协议SOAP</em></strong> 用XML来描述的。类似函数调用服务通过返回动作相关的值来回应控制消息。动作的效果如果有的话会反应在用于刻画运行中服务的相关变量。</p>
<h3 id="事件通知"><a href="#事件通知" class="headerlink" title="事件通知"></a>事件通知</h3><p>下一步是事件通知。UPnP中的事件 <strong><em>协议基于GENA</em></strong> 。一个UPnP描述包括一组命令列表和刻画运行时状态信息的变量。服务在这些变量改变的时候进行更新控制点可以进行订阅以获取相关改变。<br><img src="https://img-blog.csdn.net/20130705200749218?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWFzdG1vb241MDIxMzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt><br>服务通过发送事件消息来发布更新。事件消息包括一个或多个状态信息变量以及它们的当前数值。这些消息也是采用XML的格式用通用事件通知体系进行格式化。一个特殊的初始化消息会在控制点第一次订阅的时候发送它包括服务相关的变量名及值。为了支持多个控制点并存的情形事件通知被设计成对于所有的控制点都平行通知。因此所有的订阅者同等地收到所有事件通知。<br>当状态变量更改时,新状态将发送到已订阅该事件的所有程序/设备。程序/设备可以通过eventSubURL来订阅服务的状态变量该URL可以在LOCATION指向的URL中找到。<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&lt;service&gt;</span><br><span class="line"> &lt;serviceType&gt; urnschemas-upnp-orgserviceWANPPPConnection1 &lt;/ serviceType&gt;</span><br><span class="line"> &lt;serviceId&gt; urnupnp-orgserviceIdwanpppcpppoa &lt;/ serviceId&gt;</span><br><span class="line"> &lt;controlURL&gt; / upnp / control / wanpppcpppoa &lt;/ controlURL&gt;</span><br><span class="line"> &lt;eventSubURL&gt; / upnp / event / wanpppcpppoa &lt;</span><br><span class="line"> &lt;SCPDURL&gt; /WANPPPConnection.xml &lt;/ SCPDURL&gt;</span><br><span class="line">&lt;/ service&gt;</span><br></pre></td></tr></table></figure></p> <h3 id="事件通知"><a href="#事件通知" class="headerlink" title="事件通知"></a>事件通知</h3><p>下一步是事件通知。UPnP中的事件 <strong><em>协议基于GENA</em></strong> 。一个UPnP描述包括一组命令列表和刻画运行时状态信息的变量。服务在这些变量改变的时候进行更新控制点可以进行订阅以获取相关改变。<br><img src="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555830573/paper/115.png" alt><br>服务通过发送事件消息来发布更新。事件消息包括一个或多个状态信息变量以及它们的当前数值。这些消息也是采用XML的格式用通用事件通知体系进行格式化。一个特殊的初始化消息会在控制点第一次订阅的时候发送它包括服务相关的变量名及值。为了支持多个控制点并存的情形事件通知被设计成对于所有的控制点都平行通知。因此所有的订阅者同等地收到所有事件通知。<br>当状态变量更改时,新状态将发送到已订阅该事件的所有程序/设备。程序/设备可以通过eventSubURL来订阅服务的状态变量该URL可以在LOCATION指向的URL中找到。<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">&lt;service&gt;</span><br><span class="line"> &lt;serviceType&gt; urnschemas-upnp-orgserviceWANPPPConnection1 &lt;/ serviceType&gt;</span><br><span class="line"> &lt;serviceId&gt; urnupnp-orgserviceIdwanpppcpppoa &lt;/ serviceId&gt;</span><br><span class="line"> &lt;controlURL&gt; / upnp / control / wanpppcpppoa &lt;/ controlURL&gt;</span><br><span class="line"> &lt;eventSubURL&gt; / upnp / event / wanpppcpppoa &lt;</span><br><span class="line"> &lt;SCPDURL&gt; /WANPPPConnection.xml &lt;/ SCPDURL&gt;</span><br><span class="line">&lt;/ service&gt;</span><br></pre></td></tr></table></figure></p>
<h3 id="展示"><a href="#展示" class="headerlink" title="展示"></a>展示</h3><p>最后一步是展示。如果设备带有存在URL那么控制点可以通过它来获取设备存在信息即在浏览器中加载URL并允许用户来进行相关控制或查看操作。具体支持哪些操作则是由存在页面和设备完成的。<br><img src="https://img-blog.csdn.net/20130705200800015?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZWFzdG1vb241MDIxMzY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt></p> <h3 id="展示"><a href="#展示" class="headerlink" title="展示"></a>展示</h3><p>最后一步是展示。如果设备带有存在URL那么控制点可以通过它来获取设备存在信息即在浏览器中加载URL并允许用户来进行相关控制或查看操作。具体支持哪些操作则是由存在页面和设备完成的。<br><img src="https://res.cloudinary.com/dozyfkbg3/image/upload/v1555830618/paper/1111.png" alt></p>
<h3 id="NAT穿透"><a href="#NAT穿透" class="headerlink" title="NAT穿透"></a>NAT穿透</h3><p>UPnP为NAT网络地址转换穿透带来了一个解决方案<strong>互联网网关设备协议IGD</strong>。NAT穿透允许UPnP数据包在没有用户交互的情况下无障碍的通过路由器或者防火墙假如那个路由器或者防火墙支持NAT</p> <h3 id="NAT穿透"><a href="#NAT穿透" class="headerlink" title="NAT穿透"></a>NAT穿透</h3><p>UPnP为NAT网络地址转换穿透带来了一个解决方案<strong>互联网网关设备协议IGD</strong>。NAT穿透允许UPnP数据包在没有用户交互的情况下无障碍的通过路由器或者防火墙假如那个路由器或者防火墙支持NAT</p>
<h2 id="SOAP和UPnP"><a href="#SOAP和UPnP" class="headerlink" title="SOAP和UPnP"></a>SOAP和UPnP</h2><table> <h2 id="SOAP和UPnP"><a href="#SOAP和UPnP" class="headerlink" title="SOAP和UPnP"></a>SOAP和UPnP</h2><table>
<thead> <thead>

View File

@ -4,7 +4,7 @@
<url> <url>
<loc>https://cool-y.github.io/2019/04/21/XIAOMI-UPnP/</loc> <loc>https://cool-y.github.io/2019/04/21/XIAOMI-UPnP/</loc>
<lastmod>2019-04-21T06:53:35.475Z</lastmod> <lastmod>2019-04-21T07:10:31.297Z</lastmod>
</url> </url>