物联网开发实战
郭朝斌
小米生态链企业秒秒测 IoT 事业部总监,前诺基亚高级工程师
17380 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 36 讲
物联网开发实战
15
15
1.0x
00:00/00:00
登录|注册

03 | 网络协议:设备使用什么语言与互联网对话?

你好,我是郭朝斌。
在上一讲中,我为你介绍了物联网设备常用的几种无线通信技术。通过这些技术联网之后,物联网设备就可以向云平台上报数据了吗?还不可以。
成功传输数据的前提是,通信双方必须使用同一种“语言”。这就像,你拨通了比尔·盖茨的电话,如果说“喂,你好”,他大概会一头雾水;但如果说“Hello!”,他一下就能听懂了。
而物联网设备间沟通的语言,就是网络协议。说起网络协议,你可能马上就想到了 HTTP 协议。是的,在日常的 Web 开发中,我们总是需要跟它打交道,因为 HTTP 协议是互联网的主流网络协议。
类似地,应用在互联网中的网络协议,还有收发电子邮件的 POP3 、SMTP 和 IMAP 协议,以及用于区块链中的 P2P 协议。
那你马上会问了,物联网设备之间的通信,可以直接使用这些协议吗?

物联网通信的特点

想要回答这个问题,我们得先来分析一下物联网的网络通信特点。
物联网设备很大可能工作在不可靠、高延迟的网络环境中。
比如共享单车,使用 NB-IoT 这样的通信技术,本身的通信速率就只有不到几十 Kbps;要是被人停在城市的角落里,信号可能很不稳定。
假设你使用 HTTP 协议,就需要单车先发出连接请求,然后等待服务器的响应(下发开锁指令)。这样一来,受网络通信质量的影响,很可能连接经常中断,而需要单车与服务器交互多次,那用户可能就要等很长时间。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

物联网通信的特点决定了传统网络协议不适合其需求,因此物联网系统通常采用发布-订阅模式的通信方式。MQTT协议作为一种轻量级网络协议,适合计算能力有限、网络带宽低、信号不稳定的远程设备,成为物联网系统的网络协议标准。另外,AMQP协议在后台系统对可靠性和可扩展性要求较高的情况下也得到广泛应用。这两种协议都支持三种QoS级别,适应不同的场景需求。物联网系统选择这些协议,能够减少发布者与订阅者之间的耦合度,保证网络不稳定时不影响彼此的工作,同时也更易于扩展和满足动态变化的需求。此外,请求-响应模式也在一些物联网应用场景中发挥作用,例如智能快递柜的开门指令反馈。HTTP和CoAP协议是典型的采用请求-响应模式的网络协议,分别适用于不同的物联网设备。同时,一些网络协议已经尝试实现发布-订阅模式和请求-响应模式的共存,代表了一种网络协议的发展方向。总的来说,物联网系统需要根据不同部分的需求选择合适的网络协议,考虑到设备的环境、资源限制以及系统的功能特性,选择合适的通信模式和网络协议至关重要。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《物联网开发实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(19)

  • 最新
  • 精选
  • Geek_df117c
    最近公司要用kaa做物联网项目,但是我看kaa资料不是很多,郭大有啥看法? 有什么推荐好的框架吗

    作者回复: 没什么看法哈 https://thingsboard.io/也可以看看

    2020-11-13
    2
    6
  • Julie.W
    老师,请教个问题,上一节讲到NB-IoT不是不适合移动环境嘛,那为什么共享单车还要使用NB-IoT模块?

    作者回复: 共享单车的开锁、上锁等场景都是在静止状态下进行的,所以NB的通信没有问题。

    2021-03-10
    5
  • 李米
    老师,我已经有4B4G的树莓派了,请问下我再买配件装,能做智能音箱开发不? 我问了运营,他也不知道,让我问老师。 商品介绍的是 不含“NodeMCU(基于ESP8266)”;“NodeMCU(基于ESP32)”;“树莓派4B/ 2G”三块主控板。其他配件全部包含。

    作者回复: 那有配件中有麦克风(ReSpeaker 2-Mics Pi HAT)和扬声器的话,配合树莓派就可以。

    2020-11-15
    3
  • Rita
    老师,后面会讲解基于LoRa通讯的LoRaWAN吗?

    作者回复: 正篇里面没有涉及,可以群里找我交流

    2020-11-17
    5
    2
  • 李米
    老师,请问下我买的配件装,能不能做智能音箱开发? 商品介绍的是 不含“NodeMCU(基于ESP8266)”;“NodeMCU(基于ESP32)”;“树莓派4B/ 2G”三块主控板。其他配件全部包含。

    作者回复: 智能音箱需要树莓派~

    2020-11-13
    2
  • kaixiao7
    老师,你画图和思维导图都是用的什么软件呀?

    作者回复: xmind

    2020-12-24
    1
  • ꧁小佳꧂
    老师,原文: “在发布 - 订阅模式下,服务器知道指令发送成功了,但是它无法知道柜门是否真的打开了。这时,你就需要让柜门能够向服务器反馈一下命令的执行结果。当然,你也可以让服务器订阅一个“柜门关闭”的主题消息,然后等待柜门发布这个消息。但是这样的话就非常繁琐、不够直接。” 这段我有个疑问,mqtt 协议的 QoS2 不能让柜门知道柜门是否开吗?必须用请求-响应 模式吗?

    作者回复: QoS2也只能保证命令消息送达,柜门并不会在这个消息的确认消息中返回柜门的状态的。 进阶篇还有mqtt的介绍,到时你可以详细再了解一下细节。

    2020-11-18
    1
  • 185
    请问物联网有广播模式的协议和应用场景吗?

    作者回复: 在设备发现、服务发现的场景下会需要。我会在进阶篇介绍一下相关协议。

    2020-11-13
    1
  • aゞ颜ͯ七ͯ岁ͯer
    还有zigbee,小米的智能家居产品也用到这些

    作者回复: 小米最多的还是蓝牙

    2020-11-13
    2
    1
  • 黄鑫荣
    对发布-订阅模式和请求-响应模式的区别还不是很清晰,求指导。

    作者回复: 真正理解还是需要动手用一下。进阶篇我会讲一下mqtt,这样你应该会有更好的理解。

    2020-11-13
    2
    1
收起评论
显示
设置
留言
19
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部