通讯协议篇(底层TCP/UDP;上层MQTT、HTTP、CoAP、DDS、AMQP、JMS;实现层RabbitMQ、ActiveMQ、Kafka)

1、TCP/IP网络模型介绍

计算机与网络设备要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标、由哪一边先发起通信、使用哪种语言进行通信、怎样结束通信等规则都需要事先确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则。而我们就把这种规则称为协议(protocol)。

TCP/IP 是互联网相关的各类协议族的总称,比如:TCP,UDP,IP,FTP,HTTP,ICMP,SMTP 等都属于 TCP/IP 族内的协议。

TCP/IP模型是互联网的基础,它是一系列网络协议的总称。这些协议可以划分为四层,分别为链路层、网络层、传输层和应用层。

  1. 链路层:负责封装和解封装IP报文,发送和接受ARP/RARP报文等。
  2. 网络层:负责路由以及把分组报文发送给目标网络或主机。
  3. 传输层:负责对报文进行分组和重组,并以TCP或UDP协议格式封装报文。
  4. 应用层:负责向用户提供应用程序,比如HTTP、FTP、Telnet、DNS、SMTP等。
    在这里插入图片描述

在网络体系结构中网络通信的建立必须是在通信双方的对等层进行,不能交错。 在整个数据传输过程中,数据在发送端时经过各层时都要附加上相应层的协议头和协议尾(仅数据链路层需要封装协议尾)部分,也就是要对数据进行协议封装,以标识对应层所用的通信协议。接下去介绍TCP/IP 中有两个具有代表性的传输层协议----TCP 和 UDP

2、TCP协议介绍

当一台计算机想要与另一台计算机通讯时,两台计算机之间的通信需要畅通且可靠,这样才能保证正确收发数据。例如,当你想查看网页或查看电子邮件时,希望完整且按顺序查看网页,而不丢失任何内容。当你下载文件时,希望获得的是完整的文件,而不仅仅是文件的一部分,因为如果数据丢失或乱序,都不是你希望得到的结果,于是就用到了TCP。

TCP协议全称是传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,由 IETF 的RFC 793定义。TCP 是面向连接的、可靠的流协议。流就是指不间断的数据结构,你可以把它想象成排水管中的水流。

1. TCP连接过程

如下图所示,可以看到建立一个TCP连接的过程为(三次握手的过程):
在这里插入图片描述
第一次握手
客户端向服务端发送连接请求报文段。该报文段中包含自身的数据通讯初始序号。请求发送后,客户端便进入 SYN-SENT 状态。
第二次握手
服务端收到连接请求报文段后,如果同意连接,则会发送一个应答,该应答中也会包含自身的数据通讯初始序号,发送完成后便进入 SYN-RECEIVED 状态。
第三次握手
当客户端收到连接同意的应答后,还要向服务端发送一个确认报文。客户端发完这个报文段后便进入 ESTABLISHED 状态,服务端收到这个应答后也进入 ESTABLISHED 状态,此时连接建立成功。

这里可能大家会有个疑惑:为什么 TCP 建立连接需要三次握手,而不是两次?这是因为这是为了防止出现失效的连接请求报文段被服务端接收的情况,从而产生错误。

MQTT是一种基于TCP/IP协议的轻量级、发布-订阅消息传输协议。要利用4G模块实现基于TCP/IP的MQTT协议,首先需要确定使用的4G模块支持TCP/IP协议栈。然后按照以下步骤进行操作: 1. 确保4G模块正常工作并连接到网络。通过SIM卡和4G模块的通信接口,将模块与互联网连接。 2. 使用4G模块的开发包或相关API,建立一个TCP/IP连接。这是通过与MQTT服务器建立一个持久的网络连接来实现的。 3. 在TCP/IP连接上创建MQTT会话。此会话将用于与MQTT服务器进行通信,并处理消息发布和订阅请求。 4. 通过MQTT会话,使用相关的API来实现订阅和发布消息的功能。可以根据自己的需求,订阅感兴趣的主题并接收相应的消息,或者将消息发布到指定的主题上。 5. 确保消息的传输是安全和可靠的。可以使用TLS/SSL协议对TCP/IP连接进行加密和认证,以保护数据的机密性和完整性。 6. 处理消息的确认和处理。MQTT协议支持消息的QoS级别,可以根据需要选择适当的级别,确保消息的可靠传输和处理。 7. 处理异常和错误情况。在消息传输过程中,可能会出现连接断开、网络中断等异常情况,需要进行相应的错误处理和恢复机制。 通过上述步骤,就可以利用4G模块实现基于TCP/IP的MQTT协议。这样就可以使用4G网络连接到MQTT服务器,并与其他设备进行可靠的消息传输和通信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值