相信我们以前都有过这样的经历,比如说一句话里面的一个词语,自己能够明白其含义,同时也能够很好的运用。但是,当朋友问起该词语的意思时,却不知该如何解释。
近期我对“消息协议”这个词就有如此的感觉。
我在 Leverege(一家物联网创业公司)工作,尽管我是一名非技术人员,但是在技术团队的氛围渲染下,我因此也熟悉了相当多的语言。此前个人认为已熟知“消息协议”这个术语,甚至了解其中涉及的一些协议,如 MQTT 和 XMPP,但最近我意识到自己并未真正了解“消息协议”的意思!
近期笔者通过自己的学习以及工程师的指教,在此与大家分享自己学习心得。
至少两台设备物联网背后的整个理念是各种机器(无论是传感器、灯、冰箱、汽车、机器人、灌溉系统)相互连接以及为互联网提速的一个过程。预计到 2020 年,将有 20-50 亿台设备连接。 相互连接意味着至少涉及两台机器且彼此之间可相互传递数据。虽然你可以使用电线直接连接两个机器,但这将严重地限制它们之间的距离。 相反,如果我们使用无线连接、互联网或以上的两种方式组合来连接机器,益处也就不言而喻。
互联网“全球计算机网络提供了各种信息和通信设备,还包括使用标准化通信协议的互连网络。”
众所周知,计算机、路由器以及服务器都彼此相互连接从而创建网络,且这些网络也彼此连接,因此创建了因特网。 当我们从一台计算机向另一台计算机发送信息时,它不会以一个大块的形式也不会直接发送。相反,信息被分解成数据包,这些数据包可以通过互联网传递给不同的路由以到达它们的目的地。一旦它们到达,数据包会被重新组装到原始文件中。这种方法称为分组交换,允许每个分组找到最有效的路径,因此整体效率更高。 但是数据包遇到的各种路由器和服务器时,该如何知道接下来要发送到哪里?
网络之间互连的协议(IP)如果你要给朋友发一封信,首先把你的信放在一个空信封里,然后就想朋友收到,这是一件不可能的事情。因此,你需要将收件人的地址以及回信地址写在信封上,盖章,然后将其放在邮件中。 这种共享的邮件发送规则、格式和功能得以让我们所有人使用邮政服务并彼此发送信件。以相同的方式,消息协议是机器之间发送的消息的规则、格式和功能。 基本上,每个人都倾向于包含数据包(即类似地址)的信息类型以及格式,因为这样的信息便于每个人都可以查阅。 IP 地址是每台计算机具有的唯一标识符,很像现实生活中的地址。网协议(IP)是消息传递协议的最基本级别。只使用 20 个字节的数据,它包括最终接收的 IP 地址和发件人 IP 地址等等。
互联网传输协议可分为两种,一是用户数据报协议(UDP),二是传输控制协议(TCP)。 UDP 用于快速、高效的传输,但它不能保证发送的消息或分组能到达,不可靠。 TCP 速度要稍慢一点,但它更可靠,因为它会检查消息实际到达。这意味着确认消息是在另一端接收的。 但是,发送数据时可能还需要许多其他功能。 UDP 和 TCP 代表最基本的协议,如果你对你的应用程序有特定需求,其他的协议可以建立在它们之上,这是为什么…
有数百个消息协议在涉及物联网时,有各种各样的应用程序和案例。物联网有巨大的潜力,但它也意味着没有一个适合所有应用程序或案例的解决方案。不同的物联网应用程序需要不同的硬件、软件、连接和消息传输协议。 如果想要将信息从设备发送到服务器,这是可能会使用到消息查询遥测传输(MQTT)。 MQTT 非常适用于将小型设备的大型网络中的数据收集到单个位置上(例如,云)以供分析。 如果希望设备彼此直接通信,此时,会使用到数据分发服务(DDS)。 DDS 具有防御和工业设置的根基,你需要做出复杂的实时决策。 DDS 可有效地向众多同步的接收器以每秒数百万条消息传送。 有时,你的物联网系统还会有其他关键的需求,那么就需要特定的协议了。 原文: How Do Machines Talk To Each Other?
作者: Calum McClelland
|