1、Proxy 简介:
Proxy 协议能够让节点收发Network PDUs、mesh beacons、proxy configuration、Provisioning PDUs通过面向连接的承载层。
Proxy protocol 定义了两个角色:Proxy Server和Proxy Client。
Proxy Server是一个mesh 的一个节点,可以完成广播承载层和GATT承载层的转换。
Proxy Client可以使用GATT承载层发送mesh messages给支持广播承载层的节点。
2、Proxy PDU
Proxy Client和Proxy Server交换Proxy PDUs。Proxy PDUs可以包含Networks PDUs、mesh beacons、proxyconfiguration messages或者Provisioning PDUs。一个Proxy PDU可以包含一个完整的信息也可以是信息的一个segment。
2.1 PDU format
Proxy PDU的格式如下:
各字段解释:
SAR字段指示了message segmentation并且定义了Data字段的信息,格式如下:
Message Type字段指示了Proxy PDU的类型,定义如下:
Data字段的信息取决于Message Type的定义,其segment信息取决于SAR 字段。
2.2 Segmentation(段分割传输)
在用Proxy protocol传输message的时候,传输的大小可能大于Proxy PDU,为了保证message会被传输,则这个messag会被分组传输。
当message大于Proxy PDU的最大值时,就需要对这个message分段传输了,这些段需要按顺序传送,并且第一个段的时候SAR字段是0x01,最后一个段的时候SAR是0b11,其余的segments SAR字段是0b10.
-
Proxy filtering
Proxy filter的作用是为了减少Proxy Client和Proxy Server 之间Network PDUs交换的数目。
3.1 Filter types
Proxy Filter可以是白名单(white list)也可以是黑名单(black list )。
白名单过滤器有一个白名单,这是代理客户端感兴趣的目标地址的名单。白名单过滤器将阻止所有除了添加到白名单以外的目的地址。
黑名单过滤器有一个黑名单,这个名单上有一组代理客户端不想要接收信息的目的地址。黑名单过滤器将接收除了黑名单之外的所有目的地址的信息。
默认情况下,白名单过滤器是空的,代理客户端可以改变filter type来将白名单的地址添加到代理过滤器中。
4、Proxy configuration messages
Proxy configuration messages 用来配置proxy filters。
Proxy configuration messages 的格式跟Network PDU的格式是一致的,Network PDU格式如下:
CTL 字段是1, TTL 字段是 0, DST字段是 未分配的地址。TransportPDU字段格式如下:
Opcode 的格式如下:
Paramters根据Opcode的不同而不同,下面一一介绍,
4.1 Set Filter Type
代理客户端(Proxy Client)发送Set Filter Type类型的消息来改变代理过滤器(filter type)。
Set Filter Type 的Paramters定义格式如下:
4.2 Add Addresses to Filter
Add Addresses to Filter 消息是Proxy Client将目的地址(dst addr)添加到代理过滤列表(proxy filter list)中。
Paramters定义如下:
AddressArray字段包含了添加到代理过滤器列表(proxy filter list)一系列地址。可能是任何单播地址、虚拟地址、群组地址的组合。
4.3 Remove Addresses from Filter
Remove Addresses from Filter 消息是代理客户端(Proxy Client)将目的地址(dst addr)从代理过滤列表(proxy filter list)中删除的。Paramters部分定义如下:
AddressArray 字段包含了一系列从代理过滤列表(Proxy filter list)中删除的地址,可能是任何单播地址、虚拟地址、群组地址的组合。
4.4 Filter Status
Filter Status 消息是代理服务器(Proxy Server)发送的,他来上报代理过滤的状态,Parameters的定义如下:
FilterType:定义如下
ListSize字段包含了代理过滤列表(proxy filter list)中地址的数量。
白名单过滤器的交互逻辑图:
黑名单过滤器交互逻辑图:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)