IPC 是否保证 Linux 中的消息顺序?

Does IPC guarantee message order in Linux?

我需要创建一个监视器,它将使用 ZeroMQ ipc 记录有关数据包丢失的信息。实际上我并不真正了解它的所有内容,因为还有一些 LINX、TIPS 协议。你能解释一下并回答主要问题吗?

您可以通过在每个消息结构中包含消息序列号来制作应用程序 self-monitoring。消息发送者跟踪它上次发送的序列号,并在每次发送消息时递增它。

收件人应该会收到嵌入了 ever-increasing 消息序列号的消息。如果它跳了 2 或更多,则消息丢失了。

IPC 不像网络那样有损 - 放入的字节从另一端出来。 TCP 也不是有损的,只要两端仍然 运行 并且网络本身没有失败。但是,根据所使用的 ZMQ 模式及其设置方式,整个消息可能无法传递(例如,如果收件人尚未连接等)。如果这就是您所说的 "packet missing" 的意思,它将通过包括递增的消息序列号来揭示。