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协议的解析相关推荐

  1. IEC104协议规约解析

    [转载自]<IEC104协议规约解析> 一.四遥信息体基地址范围 104调度规约有1997年和2002年两个版本,在流程上没有什么变化,02版只是在97版上扩展了遥测.遥信等信息体基体址, ...

  2. pelco-d协议数据解析示例

    pelco-d协议数据解析示例 2014-08-14 21:57 286人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: 程序编程(12) 作者同类文章X 代码工人的仓库(36) 作者同类文章 ...

  3. 蚂蚁集团网络通信框架 SOFABolt 功能介绍及协议框架解析 | 开源

    简介:开源网络通信框架 SOFABolt 首次线上直播文字回顾. ,有趣实用的分布式架构频道. 回顾视频以及 PPT 查看地址见文末.欢迎加入直播互动钉钉群 : 30315793,不错过每场直播. 大 ...

  4. RTP协议全解析(H264码流和PS流)(转)

    源: RTP协议全解析(H264码流和PS流) 转载于:https://www.cnblogs.com/LittleTiger/p/10489247.html

  5. Wayland 协议的解析

    Wayland 首先是一种协议(Compositor 与客户端之间进行通信的协议),然后才是对协议的实现.所以第一步是协议的定义. 1. Wayland 协议的定义 Wayland 协议使用 XML ...

  6. RDP协议详细解析(一)

    RDP协议详细解析   一 前言 二 概述 三 同络层次 四 各连接模块说明 五 各功能模块说明 六 rdpwin结构.数据流说明 七 总结 一.前言 windows从NT开始提供终端服务,它是微软买 ...

  7. TCP协议 状态解析和状态统计

    一.三次握手和四次挥手 1.建立连接(三次握手) (1)服务器会处于listen状态,客户端发送一个带SYN标志的TCP报文到服务器. (2)服务器端回应客户端的请求,这是三次握手中的第2个报文,这个 ...

  8. python应用系列教程——python使用scapy监听网络数据包、按TCP/IP协议进行解析

    分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 docker/kubernetes入门视频教程 全栈工程师开发手册 (作者:栾鹏) pyth ...

  9. HTML-HTML协议简单解析

    HTML-HTML协议简单解析 在浏览器访问一个地址: 127.0.0.1:7890/html/html.htm //代表访问当地服务器路径下的/html的html.htm文件 客户端发送的请求命令是 ...

最新文章

  1. 智能手机背面玻璃的缺陷检测,分割网络的应用
  2. 为什么智能车竞赛没有清华学生参加比赛呢?
  3. iOS开发之第三方框架Masonry
  4. Java关于equals()方法和“==”逻辑运算符的区别简介
  5. 第二阶段 站立会议 02
  6. 410. Split Array Largest Sum 分割数组的最大值
  7. CVPR 2021 论文/代码分类汇总!持续更新中!
  8. 随想录(由自定义打印函数想到的)
  9. vcglib中面自相交的检测算法
  10. cuda无法在电脑上运行_办公技巧 | 专治PPT在别的电脑上无法播放的神器!
  11. MySQL索引类型详解,让MySQL高效运行起来
  12. [JAVA]jodd-mail java发送接收电子邮件
  13. ipad分屏功能怎么开启_win10录屏功能怎么开启
  14. 安装完固态硬盘后计算机里没显示,安装了双硬盘电脑却不显示新硬盘怎么办
  15. 三分钟带你详解SSL认证与加密技术
  16. 语音用户如何计算机,笔记本电脑语音聊天对方听不清声音该怎么处理
  17. 谷粒商城九商品服务之商品属性及仓储服务todo
  18. 【数学建模】灰色预测法
  19. 最常用的 Linux 命令都不会,你怎么敢去面试?
  20. 信息系统项目管理师EV、PV、AC、BAC、CV、SV、EAC、ETC、CPI、SPI概念说明

热门文章

  1. C语言题目:输入一个数,将它的每一位按顺序打印出来
  2. RK3399平台开发系列讲解(PCI/PCI-E)5.54、PCIe RC侧控制器驱动
  3. kettle教程---kettle作业调度,根据更新时间增量更新
  4. openGauss3.1.0 版本的gs_stack功能解密
  5. 【学习笔记】活用数据
  6. 《软件安装与使用教程》— Windows操作系统快速安装MATLAB最新最全教程(保姆级教程以MATLAB2019A为例)
  7. gh0st3.6源码编译+++免杀教程
  8. 使命召唤手游需要的配置及要求
  9. Maxwell-生产环境问题集锦
  10. CMMI流程规范-图解测试流程