📜  分布式系统中的多数据报消息

📅  最后修改于: 2022-05-13 01:56:16.528000             🧑  作者: Mango

分布式系统中的多数据报消息

在本文中,我们将详细介绍分布式系统中的多数据报消息的概念。在分布式系统中,通过将消息从一个进程传递到另一个进程来在进程之间进行通信。

消息传递系统提供了一组基于消息的 IPC 协议,同时使程序员免受复杂网络协议和许多异构平台的复杂性的影响。进程可以通过交换消息进行通信,并且可以使用简单的通信原语(如发送和接收)创建程序。

好消息传递系统的特点:

  • 简单性:消息传递系统应该简单明了,易于使用。它应该很容易与新旧程序以及其他模块进行通信,而不必担心系统或网络问题。
  • 统一语义:在分布式系统中,消息传递机制可以用于以下两种形式的进程间通信:
    • 本地通信,其中通信进程位于同一节点上。
    • 远程通信,其中通信活动分布在多个节点之间。
  • 远程通信语义应尽可能接近本地通信语义。这是使消息传递尽可能简单的关键需求。
  • 效率:消息传递系统的 IPC 协议可以通过在通信过程中尽可能减少消息交换的次数来提高效率。以下是一些最常见的效率优化:
    • 降低维持连接的费用;
    • 在发送方和接收方之间需要多次消息交换的连接期间,将较早消息与下一条消息一起确认。
  • 正确性:用于组通信的 IPC 协议具有称为正确性的特性。以下是一些正确性问题的示例:原子性、有序交付和长期可行性。
    • 原子性保证传递给一组收件人的每条消息都是相同的。原子性保证发送给一组收件人的任何消息将被传递给所有收件人或不传递给他们。
    • 有序传递保证消息按照应用程序要求的顺序传递给所有收件人。
    • 生存能力确保即使进程、计算机或通信渠道部分失败,消息也能正确传递。

多数据报消息:

  • 最大传输单元:几乎所有网络中一次可以传输的数据量都有一个限制,这个最大限制被称为网络的最大传输单元 (MTU)。
  • 数据报:如果消息的大小大于最大传输单元 (MTU),则将其分段为多个 MTU 数据包/数据报。获得所有片段后,然后在网络上分别发送每个片段。

消息分片成多个 MTU

  • 数据包用于发送带有控制信息和数据的片段,称为数据报。

数据包保存带有控制信息和数据的片段

  • 单数据报消息:如果消息的大小小于网络的最大传输单元 (MTU) 的大小,则称为单数据报消息。因此,它可以在网络上以单个数据包的形式发送。
  • 多数据报消息:如果消息的大小大于网络的最大传输单元 (MTU) 的大小,则称为多数据报消息。因此,它在网络上以多个数据包的形式发送。

消息传递系统负责在网络上组装和拆卸消息。如果消息的大小小于网络的最大传输单元 (MTU),则消息可以作为单数据报消息发送,否则将作为多数据报消息在网络上的多个数据包中发送。