如下参考于成都纵横智控-https://www.iotrouter.com/news/2009.html 或(苏州稳联)
物联网(IoT)的快速发展离不开数据传输技术的进步。在众多的数据传输协议中,TCP、HTTP、和MQTT各有其独特的优势和应用场景。本文将详细解析这三种协议的特点、应用及其相互之间的区别,以帮助开发者在不同的物联网应用中选择最合适的传输协议。
依据OSI网络分层模型,TCP属于传输层协议,HTTP和MQTT属于应用层协议。TCP是HTTP和MQTT的底层协议。
TCP、HTTP、MQTT协议
TCP:传输控制协议
TCP是一种基于连接的可靠传输协议。这是互联网协议套件的一部分,用于在网络中的2个运用中间建立一个靠谱的数据传输通道。TCP增强了数据分割、重组、流量管理和拥塞控制等业务,以确保数据的稳定性和次序传送。这是一项面对连接的协议,规定在传输数据以前建立一个连接。TCP适用文件传送、电子邮箱和网页浏览对传输数据可靠性要求高的运用。建立一个TCP连接需要三次握手,断开一个TCP连接需要四次挥手。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。
1.三次握手:是TCP协议建立连接的过程,确保双方都已准备好进行数据传输。以下是三次握手的步骤和示意图:
步骤 | 描述 | 示意图 |
---|---|---|
1 | 客户端发送SYN:客户端向服务器发送一个SYN(同步序列编号)请求,以初始化连接。 |
![]() TCP:三次握手 |
2 | 服务器发送SYN-ACK:服务器收到SYN请求后,回复一个SYN-ACK(同步序列编号-确认)包,表示同意建立连接,并告知客户端已收到其请求。 | |
3 | 客户端发送ACK:客户端收到SYN-ACK后,再发送一个ACK(确认)包,表示确认连接已建立,双方可以开始数据传输。 |
2.四次挥手:是TCP协议断开连接的过程,确保双方都已完成数据传输并同意断开连接。以下是四次挥手的步骤及示意图:
步骤 | 描述 | 示意图 |
---|---|---|
1 | 客户端发送FIN:客户端向服务器发送一个FIN(终止连接)请求,表示其已经完成数据发送,准备断开连接。 |
![]() TCP:四次挥手 |
2 | 服务器发送ACK:服务器收到FIN请求后,回复一个ACK(确认)包,表示已收到客户端的断开请求,但可能还有未完成的数据需要发送。 | |
3 | 服务器发送FIN:服务器完成数据发送后,向客户端发送一个FIN请求,表示其也准备断开连接。 | |
4 | 客户端发送ACK:客户端收到服务器的FIN请求后,回复一个ACK包,表示确认断开连接,连接正式断开。 |
HTTP:超文本传输协议
HTTP用于在Web上传送超文本(如HTML)和其他资源应用层协议。TCP的稳定性和连接性是根据TCP。HTTP挑选客户端-服务器模型,客户端向服务器推送HTTP规定,服务器回到HTTP回应,以传送需要资源。HTTP是一种无状态协议,每个请求和响应都是独立的,服务器不会储存客户端状态信息。
HTTP 请求/响应流程示意图 | HTTP 请求示例 |
![]() HTTP 请求/响应流程示意图 |
![]() HTTP 请求示例 |
HTTP连接是一种“短连接”,由于HTTP在每个规定结束后都会主动释放连接。为保持客户端流程的在线状态,务必再次连接到服务器。一般来说,即便不用获得所有数据,客户端还会每隔一段时间向服务器推送一次“维护连接”规定。服务器接到要求之后回复客户端,表明客户端是“线上”的。假如服务器长期接受不了客户端的需求,但认为客户端“撤出”,假如客户端长期接受不了云服务器的回应,却认为网络已经断开。
MQTT:远程传输消息队列
MQTT是一种基于公示/定阅的MQTT(publish/subscribe)1999年IBM发布的TCP/IP协议中创立了该模式的“轻”通讯协议。MQTT最大的优点是可以为连接远程设备提供实时可靠的信息服务,编号少,带宽有限。它作为一种低成本、低带宽的即时通信协议,广泛用于物联网、小型机器和移动应用。
以下是MQTT消息传输过程的示意图:
1.客户端连接到Broker:
CONNECT 请求:客户端向MQTT Broker发起连接请求。
CONNACK 响应:Broker确认连接请求。
2.客户端发布消息到主题:
PUBLISH 请求:客户端将消息发布到特定主题。
Broker 将消息转发给订阅该主题的客户端。
3.Broker 转发消息:
PUBLISH 请求:Broker 将消息转发给所有订阅了该主题的客户端。
4.客户端确认消息接收:
PUBACK 响应:客户端确认接收到消息,适用于QoS 1等级。
5.客户端断开连接:
DISCONNECT 请求:客户端请求断开与Broker的连接。
DISCONNECT 响应:Broker 确认断开连接。
TCP、HTTP与MQTT的对比表格
特性 | TCP | HTTP | MQTT |
---|---|---|---|
协议类型 | 传输层协议 | 应用层协议 | 应用层协议 |
连接建立 | 面向连接(三次握手) | 无状态请求-响应 | 面向连接(连接保持) |
数据传输模式 | 可靠传输,顺序保证 | 请求-响应 | 发布-订阅 |
可靠性 | 高 | 取决于应用层实现 | 支持QoS等级确保可靠性 |
数据头开销 | 较大 | 较大 | 较小 |
传输效率 | 较低 | 中等 | 高 |
适用场景 | 可靠传输需求的场景 | Web浏览、API通信、RESTful服务 | 物联网、实时数据传输 |
典型应用 | 文件传输、电子邮件、远程登录 | 网页浏览、Web API | 物联网设备通信、消息传输 |
总结
TCP、HTTP 和 MQTT 是三种不同层级和用途的协议是进行设备互联和传送数据的重要组成部分;TCP适用高可靠性传送,HTTP适用Web服务与API打开,MQTT是物联网设备通讯的不二之选。了解它们的特点和适用场景有助于在设计和实现网络通信时做出最佳选择。
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !