当前位置: 首页 > news >正文

TCP/MQTT简单介绍

目录

TCP/IP模型

TCP的三次连接:

TCP四次挥手:

为什么握手必须三次:

为什么挥手四次:

MQTT协议:


TCP/IP模型

物理层(PHY)规定了传输信号所需要的物理电平、介质特征;
链路层(MAC)规定了数据帧能被网卡接收的条件,最常见的方式是利用网卡的 MAC 地 址,发送方会在欲发送的数据帧的首部加上接收方网卡的 MAC 地址信息,接收方只有监听到属于自己的 MAC 地址信息后,才会去接收并处理该数据
网络层:网络层规定了主机的网络地址该如何定义网络层实现了数据 在主机之间的传递
传输层:(TCP)可以区分数据包是属于哪一个应用程序的,可以说传输层实现了数据包端到端的传递。
另外,数据包在传输过程中可能会出现丢包、乱序和重复的现象,网络层并没有提供应对这些错误的机制,而传输层可以解决这些问题,如 TCP 协议
应用层:以下的工作完成了数据的传递工作,应用层则决定了你如何应用和处理这些数据,

TCP的三次连接:

  • TCP 客户端是创建传输控制块 TCB,然后向服务器发出连接请求报文,此时,TCP 客户端进程进入了 SYN-SENT(同步已发送状态)状态。(需要消耗序列号)
  • TCP 服务器收到请求报文后,如果同意连接,则发出确认报文。此时,TCP 服务器进程进入了 SYN-RCVD(同步收到)状态。(需要消耗序列号)
  • TCP 客户进程收到确认后,还要向服务器给出确认。确认报文;此时,TCP 连接建立,客户端进入 ESTABLISHED(已建立连接)状态。TCP 规定,(ACK 报文段可以携带数据,但是如果不携带数据则不消耗序号)
  • 当服务器收到客户端的确认后也进入 ESTABLISHED (已建立)状态,此后双方就可以开 始通信了。

TCP四次挥手:

  • 客户端发出连接释放报文,并且停止发送数据;此时,客户端进入 FIN-WAIT-1(终止等待 1)状态。(消耗一个序号)
  • 服务器收到连接释放报文,发出确认报文,此时,服务端就进入了 CLOSE-WAIT(关闭等待)状态。这时候处于半 关闭状态,客户端已经没有数据要发送了,但是服务器若发送数据,客户端 依然要接受。这个状态还要持续一段时间。
  • 客户端收到服务器的确认请求后,此时,客户端就进入 FIN-WAIT-2(终止等待 2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发 送的最后的数据)。
  • 服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,由于在半关闭状态,服务器很可能又发送了一些数据,此时,服务器就进入了 LAST-ACK(最后确认)状态,等待客户端的确认。
  • 客户端收到服务器的连接释放报文后,必须发出确认,客户端就进入了 TIME-WAIT(时间等待)状 态。注意此时 TCP 连接还没有释放,必须经过 2∗ *MSL(最长报文段寿命)的
  • 时间后,当客户端撤销相应的 TCB 后,才进入 CLOSED 状态。
  • 服务器只要收到了客户端发出的确认,立即进入 CLOSED 状态。同样,撤销 TCB 后,就结束了这次的 TCP 连接。可以看到,服务器结束 TCP 连接的时间要 比客户端早一些

TCP是面向连接的传输协议,是一对一的两点服务。

优点:TCP可靠稳定:会有三次握手来建立连接,而且在数 据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完之后,还会断开来连接用来节约系统资源

缺点:慢,容易被攻击,占用系统资源高

使用场景传输一些对信号完整性,信号质量有要求的信息

为什么握手必须三次

通过三次握手能防止历史连接的建立,能减少双方不必要的资源开销,帮助双方同步初始化序列号。

为什么挥手四次

服务端由于需要等待完成数据的发送和处理;所以ACK和FIN会分开发送

MQTT协议:

  • 基于TCP协议的应用层协议
  • 采用C/S架构
  • 使用订阅/发布模式,将消息的发送方和接收方解耦
  • 提供3种消息的QoS(服务质量):0:至多一次(可能丢失)、1:最少一次(可能重复)、2:只有一次(开销大)

MOTT:广泛应用用于物联网领域,是一种能一对多的通信协议;由3种功能构成;分别为代理(消息的中转站MQTT)、发布者(数据的产生者无需知道订阅者的存在)和订阅者(用过订阅主题用来接收数据)

可通过4g模块搭载EMQX平台接受传感器数据

http://www.dtcms.com/a/471347.html

相关文章:

  • wordpress加载单页面内容seo如何去做优化
  • 网站建设制作公司都选万维科技做SEO用dede还是wordpress
  • 中山做网站优化赣州网上房地产官网
  • 庐江网站制作手机自媒体网站模板
  • 建网页网站广东推广网络
  • 黑龙江建设集团网站阿里云 cdn wordpress
  • csdn| MySQL
  • 用shopify 做网站空白的网站怎么建设
  • 在直播网站做前端注意营销型网站建设设计服务
  • 一个空间可以做几个网站seo网站排名优化工具
  • 高端网站建设与发展wordpress建站博客园
  • 如何做自己的播报网站初二信息课网站怎么做
  • 构建AI智能体:六十、特征工程行业实践录:金融、电商、医疗的智能化转型
  • 网站建设源码导入福州网站开发cms
  • 软件安装管理
  • 创意产品网站重庆网站
  • 外包做的网站可以直接去收录吗做网站公众号要多少钱
  • 大兴企业官网网站建设咨询python免费看电影的应用
  • Koa.js 完全指南:下一代 Node.js Web 框架
  • PK10如何自己做网站个人网站建立 学生
  • 为什么网站之有首页被收录常见的网站名称有哪些
  • wordpress 设置常规站点地址官方网站建设报价表
  • 找一款手机上使用比较简约的备忘录工具
  • 企业网站建设怎么策划兰州网站建设和维护工作
  • 常用内核排查命令dmesg -T
  • 如何做免费音乐网站软件开发文档编制规范
  • 怎样做网站代理别人的网站是怎么做的
  • 广东建设网站公司做网站界面一般用什么来做
  • 做企业网站 排名手机app开发制作多少钱
  • 养殖企业网站河北邯郸地震最新消息今天