【问题标题】:Multiple IOT devices communicating to a server Asynchronously via TCP多个 IOT 设备通过 TCP 与服务器异步通信
【发布时间】:2021-01-04 02:08:54
【问题描述】:

我希望多个 IoT 设备(例如 50)通过 TCP 直接异步地与服务器通信。假设他们所有人每 30 秒都有一个心跳脉冲,并且可能会在不同的时间掉线并重新连接。

谁能建议我在多个设备同时通信时确保不会丢失或阻止数据的最佳方法?

【问题讨论】:

    标签: tcp architecture backend iot network-protocols


    【解决方案1】:

    TCP 本身确保在客户端和服务器之间的通信过程中不会丢失数据。它通过使用序列号和 ACK 消息来做到这一点。

    从技术上讲,在实际数据传输发生之前,会在客户端(可以是物联网设备或任何其他设备)和服务器之间创建 TCP 连接。然后,数据被分成多个数据包,并通过该连接通过网络发送。一旦数据开始流动,所有与 TCP 相关的机制(如流量控制、错误检测、拥塞检测等)都会发生。

    如果您想详细了解 TCP 的工作原理,用于 TCP 的wiki page 是一个很好的开始。

    除此之外,只要您的服务器有足够的容量来支持来自设备的请求流,那么一切都应该正常工作(至少在理论上)。

    【讨论】:

      【解决方案2】:

      我认为你问的问题不正确。无法确保没有数据被丢弃或阻止。网络并不总是有效(这就是为什么work 这个词在网络中,以说服你否则)。

      正确的问题是:如何使我的分布式系统尽可能地可用和可靠?答案是将中断和拥塞视为正常操作的一部分,并适当地构建您的软件。

      有一个永恒的 usenix/acm/? 70 年代末 80 年代初的论文激发了端到端协议比功能过多的中间到中间协议更有效的观点;并且大多数中到中的保证都是尽力而为。如果你依赖这些保证,你一定会失败。抱歉,目前找不到参考文献,但它被广泛引用。

      【讨论】:

        猜你喜欢
        • 2021-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-01
        • 2019-11-29
        • 1970-01-01
        • 2014-06-12
        相关资源
        最近更新 更多