转:关于对SSDP协议的解析
SSDP(Simple Service Discovery Protocol),简单服务发现协议,用于发现局域网里面的设备和服务。
SSDP消息分为设备查询消息、设备通知消息两种,通常情况下,使用更多地是设备查询消息。
1、设备查询消息:
格式例子如下:
M-SEARCH * HTTP/1.1 HOST: 239.255.255.250:1900 MAN: "ssdp:discover" MX: 5 ST: ssdp:all |
其中第一行是消息头,固定;HOST对应的是广播地址和端口,239.255.255.250是默认SSDP广播ip地址,1900是默认的SSDP端口;
MAN后面的ssdp:discover为固定,MX为最长等待时间,ST:查询目标,它的值可以是:
upnp:rootdevice 仅搜索网络中的根设备
uuid:device-UUID 查询UUID标识的设备
urn:schemas-upnp-org:device:device-Type:version 查询device-Type字段指定的设备类型,设备类型和版本由UPNP组织定义。
其中,第三种一般可以用来自定义设备,如:ST: urn:schemas-upnp-org:device:Server:1
在设备接收到查询请求并且查询类型(ST字段值)与此设备匹配时,设备必须向多播地址239.255.255.250:1900回应响应消息。一般形如:
HTTP/1.1 200 OK CACHE-CONTROL: max-age = seconds until advertisement expires DATE: when reponse was generated EXT: LOCATION: URL for UPnP description for root device SERVER: OS/Version UPNP/1.0 product/version ST: search target USN: advertisement UUID
最常用的设备发现就讲完了,不常用的设备通知和设备发现差别不大,主要是:
http头不同,设备通知的头为
NOTIFY * HTTP/1.1
无MX,增加:
NT 在此消息中,NT头必须为服务的服务类型。 NTS 表示通知消息的子类型,必须为ssdp:alive或者ssdp:byebye USN 表示不同服务的统一服务名,它提供了一种标识出相同类型服务的能力
</pre><pre code_snippet_id="377816" snippet_file_name="blog_20140605_8_5629020" class="displaycode" name="code" style="white-space: pre-wrap; word-wrap: break-word; color: rgb(57, 57, 57); font-size: 14px; line-height: 21px; margin-bottom: 0px; padding: 0px; background-color: rgb(255, 255, 255);">典型的设备通知消息格式如下:
<pre class="displaycode" name="code" style="white-space: pre-wrap; word-wrap: break-word; color: rgb(57, 57, 57); font-size: 14px; line-height: 21px; margin-bottom: 0px; padding: 0px; background-color: rgb(255, 255, 255);">NOTIFY * HTTP/1.1 HOST: 239.255.255.250:1900CACHE-CONTROL: max-age = seconds until advertisement expires LOCATION: URL for UPnP description for root device NT: search target NTS: ssdp:alive USN: advertisement UUID
转:关于对SSDP协议的解析相关推荐
- IEC104协议规约解析
[转载自]<IEC104协议规约解析> 一.四遥信息体基地址范围 104调度规约有1997年和2002年两个版本,在流程上没有什么变化,02版只是在97版上扩展了遥测.遥信等信息体基体址, ...
- pelco-d协议数据解析示例
pelco-d协议数据解析示例 2014-08-14 21:57 286人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: 程序编程(12) 作者同类文章X 代码工人的仓库(36) 作者同类文章 ...
- 蚂蚁集团网络通信框架 SOFABolt 功能介绍及协议框架解析 | 开源
简介:开源网络通信框架 SOFABolt 首次线上直播文字回顾. ,有趣实用的分布式架构频道. 回顾视频以及 PPT 查看地址见文末.欢迎加入直播互动钉钉群 : 30315793,不错过每场直播. 大 ...
- RTP协议全解析(H264码流和PS流)(转)
源: RTP协议全解析(H264码流和PS流) 转载于:https://www.cnblogs.com/LittleTiger/p/10489247.html
- Wayland 协议的解析
Wayland 首先是一种协议(Compositor 与客户端之间进行通信的协议),然后才是对协议的实现.所以第一步是协议的定义. 1. Wayland 协议的定义 Wayland 协议使用 XML ...
- RDP协议详细解析(一)
RDP协议详细解析 一 前言 二 概述 三 同络层次 四 各连接模块说明 五 各功能模块说明 六 rdpwin结构.数据流说明 七 总结 一.前言 windows从NT开始提供终端服务,它是微软买 ...
- TCP协议 状态解析和状态统计
一.三次握手和四次挥手 1.建立连接(三次握手) (1)服务器会处于listen状态,客户端发送一个带SYN标志的TCP报文到服务器. (2)服务器端回应客户端的请求,这是三次握手中的第2个报文,这个 ...
- python应用系列教程——python使用scapy监听网络数据包、按TCP/IP协议进行解析
分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 docker/kubernetes入门视频教程 全栈工程师开发手册 (作者:栾鹏) pyth ...
- HTML-HTML协议简单解析
HTML-HTML协议简单解析 在浏览器访问一个地址: 127.0.0.1:7890/html/html.htm //代表访问当地服务器路径下的/html的html.htm文件 客户端发送的请求命令是 ...
最新文章
- 智能手机背面玻璃的缺陷检测,分割网络的应用
- 为什么智能车竞赛没有清华学生参加比赛呢?
- iOS开发之第三方框架Masonry
- Java关于equals()方法和“==”逻辑运算符的区别简介
- 第二阶段 站立会议 02
- 410. Split Array Largest Sum 分割数组的最大值
- CVPR 2021 论文/代码分类汇总!持续更新中!
- 随想录(由自定义打印函数想到的)
- vcglib中面自相交的检测算法
- cuda无法在电脑上运行_办公技巧 | 专治PPT在别的电脑上无法播放的神器!
- MySQL索引类型详解,让MySQL高效运行起来
- [JAVA]jodd-mail java发送接收电子邮件
- ipad分屏功能怎么开启_win10录屏功能怎么开启
- 安装完固态硬盘后计算机里没显示,安装了双硬盘电脑却不显示新硬盘怎么办
- 三分钟带你详解SSL认证与加密技术
- 语音用户如何计算机,笔记本电脑语音聊天对方听不清声音该怎么处理
- 谷粒商城九商品服务之商品属性及仓储服务todo
- 【数学建模】灰色预测法
- 最常用的 Linux 命令都不会,你怎么敢去面试?
- 信息系统项目管理师EV、PV、AC、BAC、CV、SV、EAC、ETC、CPI、SPI概念说明
热门文章
- C语言题目:输入一个数,将它的每一位按顺序打印出来
- RK3399平台开发系列讲解(PCI/PCI-E)5.54、PCIe RC侧控制器驱动
- kettle教程---kettle作业调度,根据更新时间增量更新
- openGauss3.1.0 版本的gs_stack功能解密
- 【学习笔记】活用数据
- 《软件安装与使用教程》— Windows操作系统快速安装MATLAB最新最全教程(保姆级教程以MATLAB2019A为例)
- gh0st3.6源码编译+++免杀教程
- 使命召唤手游需要的配置及要求
- Maxwell-生产环境问题集锦
- CMMI流程规范-图解测试流程