本部分主要描述设备的发现过程
广播实例:
广播分类
设备的发现过程是和广播分不开的,所以先来看看广播。
首先来看看广播,广播包括几种广播。
- 通用广播
- 定向广播
- 不可连接广播
- 可发现广播
来看看这几种广播的定义和区别:
通用广播
它是用途最广的广播方式,这种广播可以被扫描设备扫描到,也可以在接收连接请求时作为
从设备进入一个连接。
定向广播
什么情况下用定向广播呢?
有时候,设备间需要快速建立连接,如果从设备想这么做,就需要进行定向广播,这种广播
包含两个地址,广播者的地址和发起者的地址。那么发起设备怎么做呢?-
发起设备收到发给自己的定向广播报文后,可以立即发送链接请求作为回应。
定向广播事件的时序特殊,完整的广播事件必须3.75ms重复一次,使得扫描设备只需要扫描
3.75ms便可以收到定向广播设备的消息。
这样又会带来新的问题,如此快的发送会让报文充斥着广播信道,导致该区域内的其他设备
无法进行广播,解决方法是,定向广播不可以持续1.28s以上的时间。只要时间到,即使主机
没有要求主动停止,或者链接没有建立,都会自动停止广播。之后,主机只能使用间隔更长
的通用广播,让其他设备来链接。
注意:
当使用定向广播时,设备不能被主动扫描,同时定向广播报文的净荷中也不能带有其他
附加数据,该净荷中只能包含两个必须的地址。
不可连接广播
不想被连接的设备会用不可连接事件广播。这种广播的典型应用包括设备只想广播数据,而
不想被扫描或者链接。
所以此类设备永远不会进入连接状态,一旦停止广播,则转入就绪状态。
可发现广播
特点是也不能用于发起链接,但是允许其他设备扫描该广播设备,这意味着该设备可以被发现
即可以广播数据,又可以相应扫描,但是也不能建立连接。
它用于那种即要通过广播广播动态数据出去,同时也可以通过扫描响应将静态数据广播给扫描
设备。
广播内容
既然上面一直提到广播,那么广播些什么内容给对方呢?
首先来看看广播内容的格式:
长度:类型:数据
广播数据就由这种格式类型的数据一段段组成,长度定义的后面的数据长度,而类型则定义
了数据的类型,这样定义的好处是什么呢。因为广播的内容,接收设备不一定都能识别,此时
接收设备就可以通过长度来进行忽略这部分内容,跳过,而不影响去解析下一段内容。
注意两点:
1,定向广播中是没有广播内容的。
2,广播内容是不可靠的,因为无法确定广播是否被其他设备给扫描到。或者监听到。
广播间隔
既然提到了广播,则肯定会涉及到多长时间广播一次的问题。
除了定向广播以外,其他三类型的广播的间隔范围: 20ms-10.28s,通常情况下,广播中的设备会1秒中广播一次,
主机层可以通过广播间隔参数来进行调整和设置广播的间隔时间。
由于设备间的时钟会不同程度的飘逸,两个设备可能在很长一段时间同时广播而造成干扰,为防止这一情况的发生,
除定向广播外,其他广播在除了设定的广播间隔的时间外会加上一个0-10ms的随机值,以便和其他广播错开,这样
即使当前广播冲突,在下一次继续冲突的可能性就大大降低。
广播及设备发现过程
有了上述的概念后,再来看看广播和设备的发现过程。
广播过程
设备依次在3个广播信道上发送相同的广播报文。这些广播报文就是所谓的广播事件。广播之后,间隔一定的广播间隔时间,
继续下一次广播。
怎么停止广播呢?
1,是用户设置主动停止广播。
2,是广播后接收到连接请求后,设备进入连接状态,此时也会停止广播。
-----------------------------------------------------------------------------------------
发现过程
主机设备通过扫描来发现广播的设备,扫描用于接收广播事件,扫描的时间取决于有多少时间用于扫描以及
需要多快来发现其他设备。