欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 初识Modbus

初识Modbus

2025/1/18 18:14:23 来源:https://blog.csdn.net/m0_74219261/article/details/145038677  浏览:    关键词:初识Modbus

初识Modbus

  • Modbus TCP协议
    • 前置知识
    • TCP
      • 三次握手:
      • 数据传输确认:
      • 四次挥手

Modbus TCP协议

Modbus协议是一种应用层的报文传输协议

分三种传输方式

  • RTU
  • ASCII
  • TCP

前置知识

TCP协议,UDP协议都是工作在传输层,用与程序之前的数据传输

TCP协议:全双工,双向的,可以类比人打电话,可以实时的确认对方是否收到,优点:数据传输稳定可靠,适用场景:对网络通信质量要求较高的场景,例如:传输文件、发送邮件、浏览网页等;

UDP协议:基于非连接的通信协议,数据发送时 只是数据包简单进行简单的封装,再通过网卡发送给设备, 缺点:数据包中间没有状态上的联系,稳定性较弱,容一产生丢包 优点:传输速度快,性能损耗少,对CPU的资源占用少,适用场景:对实时性要求较高,多少量丢包并没有太大要求的场景,例如:语音通话,域名查询,视频直播等;

UDP还有一个十分重要的场景就是隧道网络,例如:VPN、VXLAN

TCP

三次握手:

用于确认客户端与服务端的成功连接

image-20250109212733178

客户端发送SYN(同步序列编号)报文到服务器,表示客户端请求建立连接,然后客户端进入SYN-SEND状态,此为第一次握手

服务器接收到SYN报文后,会回复一个SYN+ACK(确认号)报文给客户端,表示同意建立连接。服务器处进入SYN-RCVD状态,准备接受连接请求,此为第二次握手

客户端再发送一个ACK报文给服务器,确认已收到服务器的响应。此时客户端进入ESTABLISHED状态,服务器在正确的收到ack信号后进入ESTABLISHED状态。整个过程完成,此为第三次握手

数据传输确认:

数据多时 数据采用分段发送 报文段中含有起始数据号和长度,客户端将序列号和数据长度相加作为应答信号,同时服务端也获得了下端数据的起始位置

image-20250109194435279

四次挥手

用于关闭客户端服务端的连接(客户端和服务端都可以发送关闭请求)

image-20250109195313369

首先客户端发送一个FIN包,表示要关闭连接,自己(客户端)则进入等待状态1,为第一次挥手

然后服务端收到FIN包后,发送一个ACK(应答信号)给客户端,自己(服务端)则进入关闭等待状态客户端收到应答信号后则进入等待状态2,此为第二次挥手(注:此时客户端还可以接受消息,服务端还可以发送消息)

在第二次握手后服务端还可以发送未发送完的数据,发送完后服务端发送一个FIN数据包,进入最后确认状态,此为第三次挥手

客户端收到后发送一个ACK(应答信号)后 进入超时等待状态(防止服务端没收到ack信号)经过超时时间后关闭连接,此为第四次挥手

服务端在收到ack信号后直接进入关闭状态(若在一段时间后服务端没收到客户端发来的ack应答信号则重新发送FIN数据包)

敬请期待,后续补充…

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com