Web技术
文章平均质量分 97
流云IoT
这个作者很懒,什么都没留下…
展开
-
BLE 技术(九)--- SIG MESH Models 是如何设计的(下)?
SIG 设计或定义了哪些MESH Models?一个Model 通常定义了哪些 states、messages、behavior / procedure?MESH client model 与MESH server model 之间传输的messages 如何由Access Layer 承载、Transport Layer 加解密认证和分段重组的?MESH State transition 是如何进行的?用户如何配置MESH 节点元素?用户如何及时获知MESH 节点元素的故障或错误信息?原创 2021-06-22 22:08:08 · 5587 阅读 · 3 评论 -
BLE 技术(八)--- BLE MESH 各层报文是如何设计的(上)?
前篇博文从解决问题的角度介绍了SIG MESH 协议的设计方案,本篇博文从MESH 消息报文在各协议层的传递过程,介绍SIG 是如何设计MESH 报文结构的,又是如何处理MESH 报文消息的?Bearer Layer 有哪几种报文格式?各报文每个字段是如何实现设计功能的?Provisioning Process 是如何进行的?Key Refresh 和IV Update 是如何进行的?Network Layer 是如何实现认证加密和模糊混淆的?Transport Layer 是如何分段重组的?原创 2021-06-15 22:11:04 · 4642 阅读 · 1 评论 -
BLE 技术(七)--- BLE MESH 是如何设计的?
BLE 协议难以满足物联网时代大规模设备互相通信的需求,于是SIG 在2017 年发布了BLE MESH 协议。SIG MESH 是如何实现大规模设备间多对多通信的?SIG MESH 是如何定义消息报文的?SIG MESH 采用了怎样的消息传递模型?SIG MESH 设备间是如何寻址的?物联网通信的安全性日益重要,SIG MESH 是如何应对各种网络攻击,保证通信安全的?SIG MESH 设备需要持续接收可能发给自己的消息报文,如何支持低功耗节点入网呢?如何支持现有大量的BLE GATT 设备入网呢?原创 2021-05-31 21:57:27 · 9573 阅读 · 5 评论 -
IOT-OS之RT-Thread(十八)--- 如何使用MQTT 协议实现OneNET 远程监控?
物联网时代,我们想把周边的嵌入式设备接入Internet,依托云平台提供的各种服务,实现对嵌入式设备的远程监测和控制,甚至是远程OTA 升级等。各大云平台厂商经常谈到的“云-管/网-边-端”是什么?我们如何将本地设备接入云平台呢?以OneNET 云平台为例,平台域和设备域分别如何配置才能让设备顺利接入云平台?物联网设备接入云平台常用MQTT 协议通信,Paho-MQTT 的实现原理是怎样的?OneNET SDK的实现逻辑是怎样的?我们如何开发应用实现数据点上传、响应下发命令、远程OTA 升级等功能呢?原创 2021-05-16 23:10:24 · 2909 阅读 · 1 评论 -
Web技术(七):如何使用并实现MQTT 消息订阅-发布模型?
物联网时代,大量的嵌入式设备需要接入网络,并完成复杂的消息传递过程。基于请求响应的单对单同步通信协议 -- HTTP 已经难以满足大规模物联网设备的通信需求,因此需要为物联网通信设计一种新的消息传递机制,MQTT 实现的订阅-发布消息模型就可以满足物联网通信需求。什么是订阅-发布消息模型呢?这种消息传递模型有哪些应用呢?订阅-发布消息模型除了用于复杂网络节点间的通信,是否可用于进程或服务间通信呢?MQTT 是如何实现消息订阅-发布机制的呢?MQTT 又是如何保证网络通信安全的呢?原创 2021-05-12 19:09:19 · 10094 阅读 · 3 评论 -
如何为BLE 设备添加OTA DFU 空中升级服务(下)?
前文介绍了BLE 设备实现OTA DFU 的工作原理和执行过程,现在的重点是,如何为自己开发的BLE 工程添加BLE DFU Service 呢?DFU Service 根据是否需要配对绑定,还可以分为Buttonless DFU without bonds service 和Buttonless DFU with bonds service 两种,往我们的工程中添加这两种DFU 服务有何区别呢?这两种DFU Service 分别依赖哪些Libraries?我们如何解决添加DFU 过程中遇到的问题?原创 2021-04-21 21:04:27 · 3046 阅读 · 1 评论 -
如何为BLE 设备实现OTA DFU 空中升级功能(上)?
我们开发的BLE peripheral 设备通常都有代码升级的需求,不管是解决先前的bug,还是增加新的功能。很多BLE peripheral 仅留出一个BLE 无线通讯接口,我们如何通过OTA 方式实现BLE 程序代码的空中升级呢?BLE DFU 的工作原理和升级过程是怎样的?如何实现无任何人工干预的OTA 升级?我们如何保证BLE DFU 过程的安全性?如何校验DFU Package 与当前固件是否兼容?BLE DFU 对存储空间有何要求?Unbonded DFU 和Bonded DFU 有何区别?原创 2021-04-16 20:59:36 · 4997 阅读 · 2 评论 -
字符编码的设计与演进(ASCII,Unicode,UTF-8,GB18030…)
1. 从ASCII 码说起2. OEM 字符集的衍生3. 多字节字符集(MBCS)和中文字符集4. ANSI标准、国家标准、ISO标准5. Unicode字符集的出现6. 编码系统的变化7. 常见的Unicode编码UCS-2/UTF-16UTF-8GB180308. Unicode相关的常见问题Unicode是两个字节吗?带签名的UTF-8指的是什么意思?Unicode编码和以前的字符集编码有什么区别?乱码问题9. 必要的术语解释转载 2020-07-27 00:19:33 · 599 阅读 · 0 评论 -
IOT-OS之RT-Thread(十七)--- 如何使用HTTP协议实现OTA空中升级
一、Bootloader OTA 原理Bootloader 框架底层由Flash 驱动提供ROM 或Flash 分区访问的能力,为搬移固件代码提供支持。Bootloader 还应提供解密、解压缩、必要的校验功能,经校验通过后将更新版本代码写入或搬移到Application 分区覆盖正在使用的固件代码,这就完成了固件升级过程。二、HTTP OTA Downloader 实现三、Bootloader OTA 示例原创 2020-06-25 00:13:33 · 10103 阅读 · 3 评论 -
Web技术(六):QUIC 是如何解决TCP 性能瓶颈的?
一、QUIC 如何解决TCP的队头阻塞问题?1.1 TCP 为何会有队头阻塞问题1.2 QUIC 如何解决队头阻塞问题1.3 QUIC 没有队头阻塞的多路复用二、QUIC 如何优化TCP 的连接管理机制?2.1 TCP连接的本质是什么2.2 QUIC 如何减少TCP 建立连接的开销2.3 QUIC 如何实现连接的无感迁移三、QUIC 如何改进TCP 的拥塞控制机制?3.1 TCP 拥塞控制机制的瓶颈在哪?3.2 QUIC 如何降低重传概率3.3 QUIC 如何改进拥塞控制机制原创 2020-06-10 01:01:41 · 5464 阅读 · 1 评论 -
Web技术(五):HTTP/2 是如何解决HTTP/1.1 性能瓶颈的?
一、HTTP/2 概览1. HTTP/1.1 存在的队头阻塞问题,降低了TCP连接利用率;HTTP/2 通过多数据流并发复用TCP连接部分解决了该问题;2. HTTP/1.1 重复传输臃肿的首部字段,降低了网络资源利用率;HTTP/2 通过首部压缩HPACK,大幅减少了传输开销;3. HTTP/1.1 报文各字段长度不固定,只能串行解析;HTTP/2 整个报文都采用二进制编码,且每个字段长度固定,可以并行处理;4. HTTP/1.1 客户端不能接收除响应之外的报文;HTTP/2 支持服务端主动推送。原创 2020-06-03 00:47:49 · 3742 阅读 · 0 评论 -
Web技术(四):TLS 握手过程与性能优化(TLS 1.2与TLS 1.3对比)
二、TLS 握手协议TLS 协议是由TLS 记录协议和TLS 握手协议这两层协议叠加而成的,位于底层的TLS 记录协议负责进行信息传输和认证加密,位于上层的TLS 握手协议则负责除加密以外的其它各种操作,比如密钥协商交换、身份认证等。TLS 1.2 首次完整握手过程需要2-RTT,会话恢复简短握手过程需要1-RTT,TLS 1.3 在两种情况下均能比前者减少1-RTT。三、TLS 性能优化TLS 可以通过选择更安全高效的加解密算法、使用硬件加速模块、更新的协议、CDN技术等来提高效率。原创 2020-05-22 00:24:40 · 7818 阅读 · 0 评论 -
Web技术(三):TLS 1.2/1.3 加密原理(AES-GCM + ECDHE-ECDSA/RSA)
一、TLS 加密原理 TLS (Transport Layer Security)通过对称密钥加密法来保证通信的机密性,通过消息认证码MAC来保证通信的完整性和真实性,对称加密与MAC共同构成了认证加密方案同时保证通信的机密性、完整性和真实性。认证加密的共享密钥交换是个难题,Diffie和Hellman两人发明了一套密钥协商方案(Diffie–Hellman key exchange)解决了该问题,为确认通信对端的真实性又产生了数字签名算法,为解决数字签名中无法确认公钥真实性的问题,又提出了证书的概念。原创 2020-05-14 19:54:47 · 24967 阅读 · 4 评论 -
Web技术(二):图解HTTP + HTTPS + HSTS
一、HTTP简介目前使用最广泛的仍是HTTP/1.1,截至2020年4月,W3Techs统计的前1000万网站中支持HTTP/2的大概占43.6%,支持QUIC的仅占4.2%。要了解HTTP/2离不开HTTP/1.1,因此本文先介绍主流的HTTP/1.1版本。HTTP属于应用层协议,底层依赖于TCP/IP协议完成数据报文的传输。如果对HTTP报文有加密传输的需求,在HTTP协议与TCP协议之间还可以增加SSL/TLS协议层,这就构成了HTTPS协议。二、HTTP报文2.1 HTTP Request原创 2020-05-10 19:52:40 · 6577 阅读 · 0 评论 -
Web技术(一):互联网的设计与演化(URL + HTML + HTTP)
一、Web技术简史1990年底,Tim Berners-Lee 领导的小组已经构建了Web技术的五大要素:HTML、HTTP、URL、Web浏览器、Web服务器。二、Web三大构建技术2.1 URL / URILinux上一切皆文件,Web上一切皆资源,URL可以唯一标识并定位任一MIME资源。2.2 HTML / XMLHTML语言关心的是信息的表现形式,而XML语言关心的是信息本身的格式和数据内容。2.3 HTTP / HTTPSHTTP基于底层的TCP/IP协议完成html页面的传输。原创 2020-04-27 19:39:30 · 6047 阅读 · 5 评论