常见的网络通信与传输协议【1】
wifi基础网络
智能设备往往提供了内置硬件以支持无线,有线数据传输功能可借助USB接线实现,但往货受限于USB最大传输距离(标准最大距离为5米),而Wi-Fi和蓝牙可W轻松实现10米内的数据传输,室内应用缚缚有余,而且无线也去除了室内布线的繁琐,因此我们优先考虑无线传输数据。在蓝牙和wifi两种无线网络标准中我们选择了后者,主要基于W下考虑:
首先,Wi-Fi具有相对比较大的数据吞吐量。应用场景中的数据频率比较高44100hz。即便以本平台采用的参数来看,单个传感器采集的数据就达到了128Kb/s,四个以上传感器就将至少有512Kb/s,对于蓝牙2.0+ED民(实测速度为280KB/S)以下设备将无法满足带宽需求。另外蓝牙在低功耗模式下带宽也会大幅度减小,这会加剧带宽的不足。
其次,网络己经普及,且与以太网兼容。采集数据可以直接传送到现有的以太网基础设施,而不需要通过蓝牙设备节点进行转发,在硬件设施选择上可以更加灵活。
最后,Wi-巧网络支持TCP协议,因此可W在此基础之上使用MQTT网络协议,方便网络传输应用的设计,
MQTT访议
消息队列遥测传输(MQTT)是一个轻量级的消息传输协议,由OASIS进行了标准化。该协议适用于机器端到端通讯(M2M)以及物联网这些网络不稳定、带宽受限以及代码封装空间有限的场景。它构建在TCP协议巧的基础上,因此兼容目前的W太网基础设施。MQTT己经在远程医疗、智能家居、家庭护理等领域得到应用。
与目前被广泛应用的HTTP协议相比,MQTT的W下特点决定了它更适合作为传感器数据传输的应用层协议:
a)面向字节数据传输,而HTTP是面向文本传输的,处理不够方便
b)采用发布/订阅模式,而HTTP是请求/应笞模式,不太适合传感器主动发布数据的模式。
C)报文头仅仅两个字节,远小于基于字符的HTTP报文头,节省传输流量。
d)数据分发可W—对零、一对一W及一对多,而HTTP只能一对一。
e)具有王种服务质量(QoS):只发送一次、至少发送一次和至多发送一次,而HTTP只支持统一服务质量。
f)支持用户认证,具有更好的安全性。
g)覆盖常见嵌入式设备开发语言的开源库,易于编程实现。对于本平台,采用MQTT作为顶层网络协议带来的最大的好处是降低了传输流量,同时对数据传输的质量有更精确的控制。另外,发布订阅方式可W降低采集端和上位机在程序上的賴合,提供更大的灵活性。
MQTT需要设立Broker服务器,作为客户端与客户端之间发布订阅数据的中介。数据发布者需要将消息发布到指定的主题,订阅者则需要订阅相应主题W获得数据推送。MQTT的主题实质就是由反斜杠划分层级的UTF-8字符牵,并且支持单层或多层通配符匹配。本平台下采集端的音频数据发布到audio/record/<cHentID>,其中<clientID>为自动提取或指定的采集终端设备瓜字符串,订阅所有音频数据可W通过订阅频道audio/record/+实现;控制采集开始和结宋的指令发布到audio/control。
但是为了防止个别数据包出现故障导致反复重传,需要将MQTT协议的QoS设置为0,即数据包至多只传一次。在网络顺畅的情况下,所有数据包都应该能无遗漏地上传到服务器。如果网络出现丢包的现象,采集终端也不会反复重传同一个数据包,而是保证当前时刻数据包得到及时上传,这样的设置增强了数据传输的实时性,也提升了定位算法的稳定性。
【待完善。。。。】