📜  通信过程中的编码和解码

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

通信过程中的编码和解码

在本文中,我们将详细介绍分布式系统中通信过程中消息的编码和解码的概念。

通信过程中的编码和解码:

编码是指“用于将信息体从一个系统转换为另一个系统的代码”。代码的秘密含义由一组字符、符号或符号表示。根据 John Fiske 的说法,编码“包括管理这些信号的使用方式和时间的标志和规则,以及如何组合它们以构建更复杂的消息。”下图清楚地说明了有效的沟通过程。

沟通过程模型

编码器或来源在上述过程中为个人提供信息、想法或信息的结构,即在个人头脑中对信息进行适当的编码,然后将其发送到目的地或接收者。然后接收者根据他之前的经验来解释消息。因此,没有来源就不可能进行交流。因此,它是最关键的因素。但是,它必须非常简单明了,以便接收者可以掌握接收者的陈述。

已观察到通信过程是连续的。因为一个人对消息进行编码,另一个人对其进行解码,所以它没有尽头。

解码是指解码器使用他的经验和智力解码或解释由源编码的消息的过程。该信息一直保持简单和基本。因此,解码器将能够快速轻松地解码接收到的消息并将其发送回源。换句话说,我们可以说沟通过程是可以理解的,因为接收者很容易理解简单明了的信息,并会用他所有的敏锐感知将信息解码到源头。解码是接收方或目的地的技术术语。

信息必须清晰、真实且有意义,并且必须以听众、读者和观众不会误解其意义和目标的方式来制作。

为什么需要在通信过程中进行编码和解码?

消息中的数据应该对接收过程有用。在将数据从发送进程的地址空间传输到接收进程的地址空间时,应维护程序对象结构。但这在异构系统的情况下是不可能的,因为发送和接收过程是在具有不同架构的机器上执行的。由于以下原因,这在同质系统中也是一个具有挑战性的情况:

  • 当从一个进程地址空间转移到另一个进程地址空间时,绝对指针值失去了意义。因此,使用绝对指针值的软件对象不能以其原始形式传输,需要以其他方式表示。
  • 占用的存储量因不同的程序对象而异。为了有意义,消息通常应该包含各种程序对象,例如可变长度字符、长数字、小整数等。在这种情况下,接收器必须能够确定哪个程序对象存储在消息缓冲区中,并且还确定每个程序对象对与接收器相关的消息的空间利用率。

由于这些问题,在通信过程中进行编码和解码。消息缓冲区用于在程序对象转换为适合传输的流格式后存储它们。消息数据的编码是在发送方发生的这个转换过程的名称。接收方接收到的消息必须从流形式转换回原始程序对象,然后才能进一步使用。因此,解码是指接收方从消息数据中重构程序对象。

编码和解码消息数据的表示:

Tagged 和 Untagged 是编码和解码消息数据的两种表示形式:

  • 标记表示:在这里,编码是针对每个程序对象的类型及其值进行的。在这种表示中,编码数据格式很好地描述了自身,这有助于接收过程使用这种方式检查消息中每个程序对象的类型。
  • 标记表示:未标记表示中的消息数据仅包含程序对象,不包含有关每个程序对象类型的信息。在这种表示中,接收过程必须提前知道解码输入数据的过程,因为编码的数据格式无法描述自己。