电视设备

为什么搜索不到设备投屏搜索协议深度分析

发布时间:2022/7/11 15:03:37   
北京白癜风治疗方法 http://m.39.net/pf/bdfyy/

海豚星空

投屏介绍

PREFACE

前言

在使用投屏的过程中,搜索不到设备时,大家可能就会认为是电视端投屏APP出了问题。

其实这涉及到各方面因素的原因:1、可能是电视端的问题;2、可能是手机端的问题;3、可能是网络的问题,得具体情况具体分析。

接下来,我们介绍一下常见的DLNA/AirPlay是如何搜索设备的。让你能够弄明白投屏搜索设备的原理。

DLNA(SSDP)使用的组播地址...,端口

AirPlay(mDNS)使用的组播地址.0.0.,端口

1、投屏搜索为什么使用组播?

组播与单播、广播的区别及优势

相比单播来说,组播的优势在于:由于被传递的信息在距信息源尽可能远的网络节点才开始被复制和分发,所以用户的增加不会导致信息源负载的加重以及网络资源消耗的显著增加。

相比广播来说,组播的优势在于:由于被传递的信息只会发送给需要该信息的接收者,所以不会造成网络资源的浪费,并能提高信息传输的安全性,广播的方式容易造成网络阻塞;另外,广播只能在同一广播域中进行,而组播可以实现跨域的传输。

在某些特殊网络环境比如酒店网络下,需要防止同一网络内乱投屏,不同的厂商有不同的做法:

1、一个房间一个路由器,增加硬件成本。

2、电视提供热点,考验电视wifi模块的配置性能。

3、交换机网关配置不通组播,扫码认证后电视一直向手机发单播,单播劣势于组播,另外投屏协议标准是监听组播消息,手机APP如不兼容单播处理那就搜索不到。另外只能电视被动发单播消息给手机,手机无法主动搜索,技术上降低50%搜索到设备的概率。

4、交换机网关正常通组播,但是有的频繁的发组播消息,加上酒店内上百台设备,同时发出大量的组播消息,且不说网络是否丢包,手机APP本身是否能处理得过来及时显示设备。

以下解析"投屏搜索流程"以及"海豚星空扫码投屏专利技术":

2、搜索设备流程

DLNA设备搜索发现流程

如上图,手机发现电视设备有“主动发现”和“被动发现”两种方式:

(1)被动发现:电视端Notify上线消息随时通知网络内其他手机端设备,告知电视端在线/离线的消息。

手机端监听到电视端上线消息,获取电视相关信息从而搜索到电视设备。

(2)主动发现:手机端随时搜索发现电视端设备,电视端监听到手机端搜索消息进行应答,手机端获取电视端相关信息从而搜索到电视设备。

从而达到设备“即插即用”的效果。

通过抓网络包可以看到网络内的组播消息Notify,M-Search。如何没抓到任何组播包,那就得检查网络环境配置是否通组播。

AirPlay设备搜索发现流程

AirPlay搜素设备流程类似,通过mDNS组播消息。

(1)电视端启动宣告上线/离线消息随时通知网络内其他手机端设备,告知电视端在线/离线的消息。手机端监听到电视端上线消息,获取到电视相关信息从而搜索到电视设备。

(2)手机端启动搜索发现电视端设备,电视端监听到手机端搜索消息进行应答,手机端获取电视端相关信息从而搜索到电视设备。

通过抓网络包可以抓到mDNS组播消息。

3、问题分析方法

场景一

问题:为什么同一网络内,手机A能搜索到电视,手机B却搜索不到?

分析:手机A能搜索到电视,说明电视端是正常的,因为电视在同一个网络内发出notify组播消息(或者电视分别对手机A手机B发出notify单播消息),手机A可以监听到,手机B监听不到,很大原因在于手机B上的APP是否正常监听消息,手机B端的网络原因或者是手机B上监听到了没正常处理。

解决方法:可把手机Bwifi重连,或者手机B上APP杀掉重启,或者手机B上其他APP搜索试试。如果都没法搜索到,需要深入抓网络包分析手机B的原因。

场景二

问题:同一网络内,同一台手机上不同APP(优酷APP,爱奇艺APP),假如优酷搜索得到电视,爱奇艺搜索不到,该怎么办?

分析:这种情况更容易理解,问题基本在于手机端APP,因为电视端的上线消息发出来了,同一台手机上优酷监听到了,爱奇艺没监听到,所以得看爱奇艺APP是否正常及时处理,及时刷新设备列表界面。

手机和电视搜索都是互相的,在同一情况下,电视能被某个APP搜索到,说明电视被搜索得功能正常运转,某个APP搜索不到,在于每家手机端APP厂商搞的效果性能方面,是否及时处理消息,是否及时处理更新设备列表及时刷新显示设备页面等等。

解决方法:某APP搜索不到电视,杀掉APP重启试试,如果是在任何情况下都搜索不到,那再抓包进一步分析是否协议兼容性问题,也可能某些协议兼容性问题具体分析,兼容即可。

场景三网络环境

网络环境也是一个很大的因素,我们使用的路由网关设备,带宽,网络环境等也都可能有问题,比如网络不稳定,丢包,收不到组播消息等。

另外就是比如在酒店/公司等场所的网络,有可能做了网络划分,使用了VPN,或者运营商专网等等情况,都有可能导致网络没有通组播,网络不通的情况。所以得具体分析网络。

组播包分析:wireshark,tcpdump等工具抓包分析是否能够抓到SSDP/MDNS组播信息。如下图:

在电脑上抓到电视发出的组播包:NOTIFY

在电视上抓到手机发出的组播包:M-SEARCH

只要两边都互相能监听到对方的组播包,就问题不大了,如果是协议兼容性问题那就具体分析后面协议流程了。

HTTP协议交互是否正常:用台电脑ping电视或者手机的ip,看包收发时间,如下图,说明网络波动很大,时好时坏,甚至无法通信,这就有可能丢包,消息收发失败。也有出现可能ping通包了但是投屏交互的HTTP还是失败的情况,可能网络设备问题,或者运营商专网,或者VPN等等情况导致,也是得具体情况具体分析。

4、测试分析对比

同一网络内,打开5个不同的DLNA接收端,用几个发送端(海豚星空投屏手机端,优酷,爱奇艺,腾讯)搜索对比。可对比5个不同接收端被发现的效率,还有几个不同手机端APP搜索得效率。

如下方视频:

可对比看出不同手机端APP搜索设备的性能,两个视频是不同时期测试的手机端不同的版本,有的越高越好,也有的越搞越差。

综上所述,投屏对网络有两个要求:

(1)网络通组播,才能搜索到设备。

(2)手机电视能互相通讯。

(不管如何划分网络VLAN,消息转发等任何环境,只要确保如上两点即可)

5、海豚星空扫码投屏

海豚星空扫码投屏,防止投错乱投,添加了扫码认证后才能投屏,扫码认证后,所有流程都跟原先投屏协议流程一样,不破坏协议标准。

如何实现扫码认证一对一设备绑定投屏?

扫码认证提示“请确保手机和电视使用同一网络!”如何解决?

#扫描

转载请注明:http://www.aideyishus.com/lkcf/860.html

------分隔线----------------------------

热点文章

  • 没有热点文章

推荐文章

  • 没有推荐文章