MQTT_笔记

java解析mqtt_物联网安全之MQTT协议安全 大家好,我是银基Tiger Team的BaCde,今天来说说MQTT协议的安全。MQTT 全称为 Message Queuing Telemetry Transport(消息队列遥测传输)是是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅方式的消息协议,由 IBM 发布。由于其轻量、简单、开放和易于实现的特点非常适合需要低功耗和网络带宽有限的IoT场景。比如遥感数据、汽车、智能... 阅读详情

MQTT测试工具:

MQTT Helper:http://mqtt-helper.mybluemix.net/


参考文章:

http://www.cfanz.cn/index.php?c=article&a=read&id=311967


C语言实现MQTT客户端

C/C++ MQTT Embedded Clients: https://www.eclipse.org/paho/clients/c/embedded/


MQTT使用标准端口吗?

TCP/IP的1833端口是IANA(互联网数字分配机构)为MQTT保留的端口号,同时也注册了8883端口用于MQTT在SSL上的传输。


MQTT支持安全传输吗?

可以在3.1版本的MQTT协议中在传输包中传输用户名和密码,使用SSL加密处理(显著增加网络开销)


SUBSCRIBE

client在成功建立TCP连接后,发送connect消息,得到Server授权允许建立连接的CONNACK消息后,client发送subscribe消息,订阅topic主题列表(至少一个主题)

订阅者的Topic name支持通配符 # 和 + :

1 #支持一个主题内任意级别话题

2 +只匹配一个主题级别的通配符

finance/stock/#
finance/sotkc/ibm/+

订阅部分,共有四个消息,分别一一对应。

命令响应备注建议
SUBSCRIBESUBACK协议没有涉及最多运行订阅TOPIC数目,隐藏的隐患建议至多10个
UNSUBSCRIBEUNSUBACK是否可以退订所有订阅,不详建议保留至少一个Topic

固定头部+可变头部+消息体


1) MessageType

public $operations=array(  
         "MQTT_CONNECT"=>1,//请求连接  
         "MQTT_CONNACK"=>2,//请求应答  
         "MQTT_PUBLISH"=>3,//发布消息  
         "MQTT_PUBACK"=>4,//发布应答  
         "MQTT_PUBREC"=>5,//发布已接收,保证传递1  
         "MQTT_PUBREL"=>6,//发布释放,保证传递2  
         "MQTT_PUBCOMP"=>7,//发布完成,保证传递3  
         "MQTT_SUBSCRIBE"=>8,//订阅请求  
         "MQTT_SUBACK"=>9,//订阅应答  
         "MQTT_UNSUBSCRIBE"=>10,//取消订阅  
         "MQTT_UNSUBACK"=>11,//取消订阅应答  
         "MQTT_PINGREQ"=>12,//ping请求  
         "MQTT_PINGRESP"=>13,//ping响应  
         "MQTT_DISCONNECT"=>14//断开连接  
        );   

2) DUP flag

 其是用来在保证消息传输可靠的,如果设置为1,则在下面的变长头部里多加MessageId,并需要回复确认,保证消息传输完成,但不能用于检测消息重复发送。

3) Qos

00表示最多一次 即<=1 ,无所谓消息丢失

01表示至少一次  即>=1, 确保消息到达,但可能出现消息重复

10表示一次,即==1 确保消息只到达一次,用于计费系统,消息丢失和重复都可能导致错误结果

11保留后用

4) Retain

 主要用于PUBLISH(发布态)的消息,表示服务器要保留这次推送的信息,如果有新的订阅者出现,就把这消息推送给它。如果不设那么推送至当前订阅的就释放了。



LWT(Last Will & Testament)最后遗嘱

MQTT本身就是为信号不稳定的网络设计的,所以难免一些客户端会无故的和Broker断开连接。 

当客户端连接到Broker时,可以指定LWT,Broker会定期检测客户端是否有异常。 
当客户端异常掉线时,Broker就往连接时指定的topic里推送当时指定的LWT消息。 
 


QT MQTT环境搭建笔记 部署的时候步骤少,比较容易,但是每次新建mqtt相关的项目都要加入相应的h文件,文末有参考链接。 阅读详情

相关推荐

物联网开发学习笔记——MQTT协议学习

物联网开发学习笔记——MQTT协议学习 最近开始接触物联网这一块,写下此篇作为备忘录。 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件 。MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机

secretboys的博客 1285

MQTT协议整理

MQTT协议整理 1、定义 MQTT是一个轻量级的采用Broker的基于TCP(默认端口号1833)的发布/订阅式异步遥信消息队列传输应用层协议。设计初始目的是为大量计算能力有限、工作在低带宽、不可靠的远程传感器和控制器设备通讯,非常适合物联网通信。IBM公司1999年提出的。 2、服务质量 Qo0:“最多一次”,消息发布完全依赖底层 TCP/IP 网络,分发的消息可能丢失或重复,不会收到...

极客 7000

MQTT自学笔记(二)—Message format

前言:关于MQTT的学习我是参照的MQTT V3.1版本。 这里有MQTT V3.1的在线版本: 在线版本 http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html 官方下载地址:PDF格式版本 我就是看这个官方的英文文档学习的,其实我这博客基本上就是翻译和总结了这个协议文档。Message forma

森林之猫猫狗狗 2909

开服务器 端口

dingxingmei的专栏 691

MQTT自学笔记(一)-特性与协议原理

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通信协议,有可能成为物联网的重要组成部分,该协议几乎支持所有的平台。最近正在学习这个,有一个写得很不错的博客给大家推荐一下,聂永的博客;http://www.blogjava.net/yongboy/。 博主这个博客写的简单是自学的笔记。不喜勿喷啊。 MQTT的特点 MQTT

森林之猫猫狗狗 3317

MQTT笔记之QoS

QoS(Quality of Service,服务质量) QoS 作用于Publisher,它的值决定了server需要响应的内容。 QoS = 0: 至多一次,不保证消息到达,可能会丢失或重复。server没有response QoS = 1: 至少一次,确保消息到达,但是可能会有重复。server向client发送PUBACK(Publish Acknowledgement) ...

jiaowademeng的博客 4250

这39个黑客最常攻击的端口,看看有哪些?网络安全工程师零基础入门必看教程!

大家好,我是强哥。在计算机网络中,端口是指网络通信的端点,用于标识网络中不同的服务或应用程序。每个端口都对应一个特定的网络协议,并且在一个主机的IP地址上可以有多个端口同时开放。端口的编号范围从0到65535,其中较低编号的端口通常用于众所周知的服务(称为“知名端口”),例如HTTP(80端口)、HTTPS(443端口)、FTP(21端口)等。这些端口由IANA(Internet Assigned Numbers Authority)分配给特定的服务和协议。

qq_41314882的博客 1324

创意视觉项目实战:用ESP32-S3+OV5640构建智能图像流系统

本文详细介绍了如何使用ESP32-S3开发板与OV5640摄像头模块构建智能图像流系统。从硬件连接到软件配置,涵盖Arduino环境搭建、图像采集优化、WiFi视频流传输及外设集成,为开发者提供完整的实战指南,助力智能家居和机器人视觉项目开发。

tech5的博客 1290

【开发者笔记】MQTT python测试笔记

【开发者笔记】MQTT python测试笔记 环境 本机Windows,Python3,paho-mqtt(通过python -m pip install paho-mqtt安装) MQTT服务器(可要可不要) 试验1 [client发送与接收]本机python + [MQTT]iot.eclipse.org MQTT是基于订阅/发布的物联网协议。 python测试需要一个发送进程和接...

迷宫中的我 560

用友u8服务器优化,用友U8erp软件运行的性能优化方案图文教程

今天一定要给大家分享一下用友U8erp软件运行的性能优化方案图文教程,以下方案来自用友软件官方维护工程师反馈在在处理客户问题的时候,有一类问题较为挠头,就是诸如用友U8服务器效率低下的问题。比如用友U8运行慢,卡住等,我们暂先不提用友U8软件代码、脚本层面本身的性能提升问题,我们只是基于现有用友U8软件版本,在客户现有环境下排查用友U8软件运行的性能瓶颈,并采取一定的技术手段进行性能调校。本文将推...

weixin_39882870的博客 5306

基于STM32、HAL库的 CH9102X USB转UART收发器 驱动程序设计

/ 或 UART_HWCONTROL_RTS_CTS。// 其他函数实现类似,使用HAL_UART_Transmit_IT, HAL_UART_Receive_IT等。UART_TXD <---> USARTx_RX (STM32接收)UART_RXD <---> USARTx_TX (STM32发送)* @param huart: UART句柄指针。* @param huart: UART句柄指针。* @param huart: UART句柄指针。* @param huart: UART句柄指针。

corlin6688的博客 506

Mqtt使用笔记

环境:JDK17 Springboot 3.2.4。注意:JDK 21 会有不同后续跟进。

weixin_43587900的博客 261

【Linux】Windows11 安装 WSL2 并运行 Ubuntu 22.04 详细操作步骤

Windows 11 安装 WSL2 和 Ubuntu 22.04 指南 本文详细介绍在 Windows 11 上安装 WSL2 和 Ubuntu 22.04 的完整步骤,包括: WSL2 与 VirtualBox 的性能对比优势 系统版本检查与升级方法 两种安装方式(一键安装和手动安装) Ubuntu 22.04 的安装与配置 存储位置管理及迁移技巧 常用 WSL2 命令速查表 文章还提供了性能优化建议和常见问题解决方案,适合开发者和 Linux 爱好者快速搭建高效的开发环境。

No8g攻城狮的博客 2万+

mqtt学习笔记

推荐:EMQX推荐:MQTT X。

享受生活的个人博客 812

YOLOv8 智能交通违章检测 - 压线/越线行驶检测详解

本文提出了一种基于YOLOv8的智能交通违章检测方案,重点解决车辆压线/越线行驶的识别问题。系统采用多技术融合方案:YOLOv8检测车辆、ByteTrack跟踪轨迹、传统或深度学习方法识别车道线,并通过几何计算判断车辆是否违规跨越实线。文章详细介绍了技术难点(如车道线分类、透视变形处理)、判定流程、系统架构和核心代码实现,包括车道线检测、违章逻辑判断和可视化模块。同时指出了现有方案的局限性,建议通过引入逆透视变换和专用车道线分割模型来提升准确率。该纯视觉方案具有低成本、易部署的特点,适用于智能交通监控场景。

u010117029的博客 172

YOLOv8首创原创改进:即插即用|创新的轻量化非对称多级压缩LADH检测头

总结而言,本文介绍了一种名为轻量化非对称多级压缩LADH检测头的原创改进,该改进可与YOLOv8无缝适配,并显著提升了检测器的性能。在本文中,我们介绍了一种原创改进的检测头,名为轻量化非对称多级压缩LADH检测头,它可与YOLOv8无缝适配,显著提升了检测器的性能。此外,我们引入了多级压缩的概念,通过在不同的检测层级上应用不同程度的压缩,进一步提升了检测头的轻量化特性。具体而言,我们采用了逐级减少卷积核数量和通道数量的策略,以降低模型的参数量和计算复杂度,同时保持较高的检测精度。

IbcVue的博客 2180

MQTT入门笔记

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)该协议构建与TCP/IP协议上,是基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,由IBM开发的一个即时通讯协议。可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。例如通过卫星和代理连接,通过拨号和医疗保健提供者连接,以及在一些自动化或小型设备上,而且由于小巧,省电,协议开销小和能高效的向一和多个接收者传递信息,故同样适用于称动应用设备上。

2302_76401432的博客 701

华为自研 ERP、Oracle EBS 与 SAP 上线时系统配置思路设计差异深度分析

本文对比分析了华为自研ERP、Oracle EBS和SAP S/4HANA三大ERP系统在上线配置思路上的核心差异。从架构设计看,华为采用分布式微服务架构,SAP采用分层服务架构,Oracle采用集中式一体化架构;在模块配置上,华为以业务场景为导向,SAP基于行业模板,Oracle强调模块独立性;数据迁移方面,华为侧重业务规则清洗,SAP注重数据质量监控,Oracle依赖标准化工具;流程适配上,华为系统随流程调整,SAP在框架内优化,Oracle需定制开发;定制开发模式差异明显,华为采用插件化扩展,SAP使

金牌架构师 1448

MQTT学习笔记

MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅消息传输协议,适用于低带宽、不可靠网络环境。固定报头(Fixed Header)必须存在,用于描述报文类型和相关信息。包含报文类型(如连接、订阅、发布等)和服务质量(QoS)等级。byte1:MQTT报文类型(4位) + 保留位(4位)byte2:剩余长度(可变报头长度 + 有效载荷长度)可变报头(Variable Header)不一定存在,具体内容取决于报文类型。

ZYL142857的博客 1225

YOLOv11改进策略【Neck】| ASF-YOLO 注意力尺度序列融合模块改进颈部网络,提高小目标检测精度

ASF-YOLO是一种基于YOLO的新颖框架,结合了空间和尺度特征以实现准确和快速的分割。其中,注意力尺度序列融合模块。

Limiiiing的博客 4387

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

MQTT笔记

MQTT笔记 参考资料: 百度百科 MQTT 入门 MQTT介绍与使用 MQTT协议中文版 MQTT(Message Queuing Telemetry Transport, 消息队列遥测传输)是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,工作在 TCP/IP协议族上。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务...

好女绪的博客 1974

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Mqtt开发笔记:Mqtt服务器搭建

使用到mqtt服务器(中间件)。

长沙红胖子 Qt・西安|省级科研团队从业背景,深耕双一流体系高精尖技术配套研发|剥离高精尖机理,沉淀高端特种行业领域 Qt 工程化落地经验|博文仅分享通用技术总结,输出公开普适工程思路。 6万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: TLS_笔记
下一篇: python引入导入自定义模块和外部文件
benjamin721
博客等级 码龄14年 18粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值