在消息交换中,交换机等待整个消息到达(存储),然后将其转发给其他交换机。
分组交换也使用存储和转发技术吗?我知道在包交换中,消息被分成包并通过链路发送。但是,数据包是在到达交换机后立即发送还是以与消息交换类似的方式存储?
在消息交换中,交换机等待整个消息到达(存储),然后将其转发给其他交换机。
分组交换也使用存储和转发技术吗?我知道在包交换中,消息被分成包并通过链路发送。但是,数据包是在到达交换机后立即发送还是以与消息交换类似的方式存储?
现在,消息交换是在应用层实现的,实际上是通过网络层的分组交换来传输的。
最常见的例子是电子邮件:电子邮件是消息,电子邮件服务器是交换机。电子邮件通过 SMTP 协议使用存储和转发技术在每个电子邮件服务器之间传输。
在两个电子邮件服务器之间,此消息被分成使用 TCP 和 IP 协议传输并通过多个 IP 网络的数据包。每个网络都可以包含多个交换机和路由器。
在单条路径上,数据包可能穿过使用存储和转发的交换机以及使用直通交换的其他交换机。
由于不同的数据包可能采用不同的路径,因此对于单个消息(电子邮件),您可以拥有一些数据包将穿越某些直通交换机,而其他数据包则不会遇到单个交换机。
编辑以下评论:
存储转发与直通是特定交换机的行为方式。它不是消息/数据包的特征。
正如@Ron Maupin 在评论中所述,您可以将这两种技术用于消息或数据包。
消息交换与分组交换(在今天的网络中)之间的区别在于它们不会发生在同一级别。
它们的性质不同,不需要相同的治疗。
对于电子邮件消息,小的延迟并不重要,但消息的完整性至关重要。因此存储和转发技术更合适,因此每个中间交换机可以在将消息传递给下一个之前检查消息的完整性。
如果您更关心速度而不是完整性,那么您可以使用直通切换。除了不适合这里的音频/视频消息之外,我现在没有一个很好的例子。
请注意,如果消息发送到您无法控制的网络,或穿越此类网络,您将无法知道中间交换机的行为方式。再次在电子邮件的情况下,所有电子邮件服务器都可能使用 S&F,但它可能会穿越使用某种切入的反垃圾邮件/反病毒网关。
相同的逻辑适用于数据包交换,但它发生在不同的级别。
数据包交换的不同之处在于数据包可能会根据其内容进行不同的处理。
➨ 与分组交换相比,消息交换开销较低。图 3 描述了在消息交换中传输单个数据报。如前所述,消息在传输前附加了标头。在数据包交换中,消息被分成更小的数据包,并且每个数据包在传输前都附加有标头。消息交换开销=header/(header+message) 包交换开销=[n header/(n header+message)],其中,n = [message/packet_size]
➨ 消息交换具有更高的可靠性和更低的复杂性。在消息交换中,一个数据报要么被接收要么丢失。一个单一的网络路径用于相同的。
在分组交换中,同一节点产生的许多属于同一目的地的分组可能走不同的路径。无序接收的数据包将需要使用嵌入在报头部分中的序列号进行排序。可能会丢失或损坏消息的一个子集,但不会像消息切换那样丢弃整个消息。因此,基于收到的整体损坏消息,可以解释什么可能是正确的消息。由于这个原因,有时在语音等实时场景中,消息切换是不可能的。
➨如上所述,与分组交换相比,消息交换需要更多时间,因为整个消息将存储在每个跳点,直到完全接收为止。