UPnP协议和SSDP协议

1、两种协议

UPnP协议:Universal Plug and Play,广义的即插即用。UPnP协议的目的:当有新设备连接上网络,网络上的其他设备能够马上知道有新设备加入,然后这些设备能互相宣传和发现彼此,以便能使用和控制彼此。UPnP避免了人工配置。
SSDP协议:Simple Service Discovery Protocol,简单服务发现协议,用于宣传和发现设备提供的服务和设备的一些信息。此协议采用基于通知和发现路由的多播发现方式实现,协议客户端在保留的多播地址:239.255.255.250:1900 (IPv4) 发现服务,(IPv6 为FF0x::C)。同时每个设备服务也在此地址上监听服务发现请求。如果服务监听到的发现请求与此服务相匹配,此服务会使用单播方式响应。

2、请求报文和响应报文

2.1 请求报文:

M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
MAN: "ssdp:discover"
MX: 5
ST: ssdp:all

这个报文是一个用于发现UPnP设备的SSDP(Simple Service Discovery Protocol)请求。

  1. M-SEARCH * HTTP/1.1
    ○ 这是HTTP请求的起始行(Request Line)。它指示这是一个HTTP/1.1版本的请求,而不是更早的HTTP/1.0版本。
    ○ 'M-SEARCH’表示这是一个搜索请求。
    ○ '*'是HTTP的URI路径,通常用于标识要访问的资源。在SSDP中,* 表示要搜索所有设备。
    ○ 'HTTP/1.1’表示所使用的HTTP协议版本。
  2. HOST: 239.255.255.250:1900
    ○ 'HOST’头部字段指定了请求的目标主机和端口。在这里,它指定了目标主机的IP地址为 239.255.255.250,端口为 1900。这是SSDP默认的多播地址和端口,用于设备发现。
  3. MAN: “ssdp:discover”
    ○ MAN(Mandatory)头部字段表示强制性的选项。这里,它指定了使用 “ssdp:discover” 作为搜索请求的标识符。这告诉接收者这是一个发现请求。
  4. MX: 5
    ○ MX(Maximum Wait Time)头部字段表示最大等待时间,即设备应该等待多长时间来响应搜索请求。这里设置为 5 秒,表示设备需要在5秒内响应该请求。
  5. ST: ssdp:all
    ○ ST(Search Target)头部字段表示搜索的目标。在这里,它设置为 “ssdp:all”,表示要搜索所有类型的设备。这是一种广泛搜索,用于查找所有可用的UPnP设备。

总结:这个报文是一个使用SSDP协议的设备搜索请求。它通过多播方式发送到 239.255.255.250 地址和 1900 端口,请求所有设备在最多5秒内响应,并要求返回所有可用的设备信息。这种类型的请求通常用于局域网中的设备发现和服务发现,以帮助设备发现并与其他设备进行通信。

2.2 响应报文:

HTTP/1.1 200 OK
ST: upnp:rootdevice
LOCATION: http://192.168.6.2:5000/Public_UPNP_gatedesc.xml
SERVER: Linux/2.6.12, UPnP/1.0, NETGEAR-UPNP/1.0
EXT:
CACHE-CONTROL: max-age=3600
USN: uuid:6cbbc296-de22-bde2-3d68-5576da5933d1::upnp:rootdevice

逐行分析这个响应报文:

  1. HTTP/1.1 200 OK:这是HTTP响应的起始行,指示请求成功。状态码200表示成功。
  2. ST: upnp:rootdevice:这是一个UPnP标识符,指示设备类型为根设备(root device)。
  3. LOCATION: http://192.168.6.2:5000/Public_UPNP_gatedesc.xml:这是设备描述文件的位置。它告诉你在哪里可以找到关于这个UPnP设备的详细信息。
  4. SERVER: Linux/2.6.12, UPnP/1.0, NETGEAR-UPNP/1.0:这是服务器的信息,包括操作系统版本和UPnP协议版本。这个设备似乎是运行Linux 2.6.12操作系统,支持UPnP协议1.0,并且标识为NETGEAR-UPNP/1.0。
  5. EXT::这是一个空的EXT头字段,表示没有额外的扩展信息。
  6. CACHE-CONTROL: max-age=3600:这个字段指示客户端可以缓存这个响应信息,最长时间为3600秒(1小时)。
  7. USN: uuid:6cbbc296-de22-bde2-3d68-5576da5933d1::upnp:rootdevice:这是UPnP设备的唯一标识符(UUID),指示这是一个根设备。

总结:这个响应消息告诉你有一个UPnP设备可用,其描述文件位于指定的URL上,同时提供了一些关于设备的基本信息,如服务器类型和缓存控制。这个信息通常用于自动发现和配置网络设备。

你可能感兴趣的:(物联网)