多个物联网设备通过TCP与服务器异步通信

多个物联网设备通过TCP与服务器异步通信,tcp,architecture,backend,iot,network-protocols,Tcp,Architecture,Backend,Iot,Network Protocols,我希望多个物联网设备(比如50个)通过TCP直接异步地与服务器通信。假设它们每30秒都有一次心跳脉冲,并且可能在不同的时间断开并重新连接 有谁能告诉我当多个设备同时通信时,确保数据不被丢弃或阻止的最佳方法吗?TCP本身确保在客户端和服务器之间的通信过程中不会丢失数据。它通过使用序列号和ACK消息来实现这一点 从技术上讲,在实际数据传输发生之前,在客户端(可以是物联网设备或任何其他设备)和服务器之间创建TCP连接。然后,数据被分成多个数据包,并通过该连接通过网络发送。所有与TCP相关的机制,如流量

我希望多个物联网设备(比如50个)通过TCP直接异步地与服务器通信。假设它们每30秒都有一次心跳脉冲,并且可能在不同的时间断开并重新连接


有谁能告诉我当多个设备同时通信时,确保数据不被丢弃或阻止的最佳方法吗?

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

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

如果您想进一步了解TCP的工作原理,那么for TCP是一个非常好的开始


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

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

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

如果您想进一步了解TCP的工作原理,那么for TCP是一个非常好的开始


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

我认为您提出的问题不对。无法确保没有数据被丢弃或阻止。网络并不总是有效的(这就是为什么
work
这个词出现在网络中,让你相信不是这样的)

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


有一个永恒的usenix/acm/?70年代末80年代初的一篇论文,激发了端到端协议比过度的中到中协议更有效的概念;大多数中到中的保证都是尽最大努力。如果你依赖这些保证,你肯定会失败。很抱歉,现在找不到参考资料,但它被广泛引用。

我认为你问的问题不对。无法确保没有数据被丢弃或阻止。网络并不总是有效的(这就是为什么
work
这个词出现在网络中,让你相信不是这样的)

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

有一个永恒的usenix/acm/?70年代末80年代初的一篇论文,激发了端到端协议比过度的中到中协议更有效的概念;大多数中到中的保证都是尽最大努力。如果你依赖这些保证,你肯定会失败。对不起,现在找不到参考资料,但它被广泛引用