在MQTT-SN的系统结构中有三种成员:MQTT-SNclients,MQTT-SN gateway和MQTT-SN forwarders。MQTT-SN clients通过MQTT-SN gateway(GW)连接到MQTT server,MQTT-SN client和MQTT-SN gateway之间的交互协议为MQTT-SN。MQTT-SN GW可以独立存在也可以集成到MQTT server中。独立的(stand-alone)MQTT-SN GW和MQTT server之间使用MQTT协议,MQTT-SN完成MQTT-SN到MQTT转换的作用。
如果MQTT-SNclient与MQTT-SN GW不在同一个网络,MQTT-SN client需要通过MQTT-SN forwarder访问MQTT-SN GW,MQTT-SN forwarder只是简单地转发封包而并不改变包。
根据MQTT-SN GW转换MQTT-SN和MQTT协议时使用的方式不同,可以定义transparent和aggregating两种类型的MQTT-SN GW。
4.1 TransparentGateway
透明网关中每一个连接的MQTT-SNclient会建立一个到MQTT server的MQTT连接,这些MQTT连接都是独立的,在MQTT-SN client和MQTT-SN GW之间有多少条连接就有多少条MQTT-SN GW到MQTT server的连接。因为所有的信息都是在MQTT-SN client和MQTT server之间端对端传输,MQTT server提供的所有功能和特性都可以提供给MQTT-SN client。
看起来透明网关与聚集网关的实现类似,特别是MQTT server与每个MQTT-SN client单独连接,但是有的MQTT server对同时连接的数量有限制。
4.2 AggregatingGateway
聚集网关只有一条到MQTT server的连接,而不是各个连接的client都有一条到MQTTserver的连接。所有消息都在MQTT-SN client和聚集网关直接交互,聚集网关决定消息的传递方向,聚集网关的实现比透明网关复杂,但是它却很适用于client较多的WSN网络,因为它可以减轻MQTT server的负担。