MQTT与TCP的区别 - 内蒙古德明电子科技有限公司 


MQTT与TCP的区别

内蒙古德明电子科技有限公司产品解决方案 联系电话:15384841043张工

发布日期:2022-10-07
 
诞生时间
 
TCP协议诞生于1974年冷战期间。
 
MQTT诞生于1999年互联网初期,TCP协议比MQTT协议诞生早了25年。
 
Ashton提出IoT概念也是在1999年,因此MQTT协议生逢其时。当时MIT Auto-ID Labs的Kevin Ashton为了把宝洁的供应链上的RFID标签和互联网连接起来,在1999年第一个提出了IoT这个概念。
 
协议位置
 
TCP是OSI第四层的传输层协议。
 
MQTT是基于TCP的七层应用层协议。
 
6.jpg
 
协议定位
 
TCP设计考虑的是面向连接的、可靠的、基于字节流的传输层通信协议。
 
MQTT则是在低带宽高延迟不可靠的网络下进行数据相对可靠传输的应用层协议。
 
设计思想
 
TCP的核心思想是分组交换。
 
MQTT的核心思想是简单并适应物联网环境。
 
传输单位
 
TCP的传输单位是packet,当应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,TCP则把数据流分割成适当长度的报文段,最大传输段大小(MSS)通常受该计算机连接的网络的数据链路层的最大传送单元(MTU)限制。
 
MQTT的传输单位是消息,每条消息字节上限在MQTT Broker代理服务器上进行设置,可以设置超过1M大小的消息上限。这样,就可以用一条消息就发送上千条采集的数据,或者比较大的设备阴影文件。
 
技术挑战
 
TCP需要解决的问题是在IP包传输过程中,处理异构网络环境下的网络拥塞、丢包、乱序、重复包等多种问题。
 
MQTT解决的问题是,在低带宽高延迟不可靠的网络下和资源有限的硬件环境内,进行相对可靠的数据传输。
 
服务质量
 
TCP是一个可靠的流传输服务,通过ACK确认和重传机制,能够保证发送的所有字节在接收时是完全一样的,并且字节顺序也是正确的。
 
MQTT提供三种可选的消息发布的QoS服务等级。MQTT客户端和MQTT代理服务器通过session机制保证消息的传输可靠性。开发人员可以根据业务需要选择其中一种。
no form by the id.

声明:本文内容及配图由作者撰写及网上转载。文章观点仅代表作者本人,文章及其配图仅供学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。