去评论
海欣资源

MQTT与TCP通信协议有什么区别?

perll
2022/05/29 02:25:05
一、背景
在物联网场景开发中,大多数通信模组都支持TCP、UDP、MQTT、CoAP、HTTP、LwM2M等网络通信协议,其中既有负责传输层协议,也有应用层协议,不同协议适用的场景也不尽相同。

二、协议分层

上图中举例了网络分层中最常见的几种协议:
    应用层:应用程序负责将数据以相应规则(协议)进行包装,发给传输层
        MQTT:消息队列遥测传输
        CoAP:受限应用协议
        HTTP:超文本传输协议
    传输层:负责将应用层传输过来的数组进行分组,为确保终端接收数据的顺序和完整性,会对每个分组进行标记,交给网络层
        TCP:传输控制协议
        UDP:用户数据协议
    网络层:负责将传输层发过来的数据分组发送到目标终端
        IP:网际协议
    链路层:为网络层发送和接收数据单元
        Ethernet:以太网传输协议

三、MQTT vs TCP


传输层协议负责传输数据,好比一辆物流配送的火车。但我们想让货物去完好运到目的地,就需要做打包、装车、验货、入库、签回单等工作。这些工作也就是应用层协议要做的工作。所以物联网终端设备想要对数据进行稳定、可靠、高效的交互,就需要使用应用层协议,而不是直接使用传输层协议。