我正在努力理解“面向消息”和“面向流”的协议之间的区别。我已经搜索过了,但没有找到清晰的解释或区别。有人可以解释一下或给我一个解释区别的链接吗?
谢谢。
谢谢。
消息定向协议以独立的数据块或组发送数据。数据接收方可以确定一个消息何时结束,另一个消息何时开始。流协议则发送连续的数据流。
这里举个手机的例子:文本消息是消息定向协议,因为每个文本消息都与其他消息不同。而电话通话则是流协议,因为在通话过程中有持续的音频流。
互联网上常用的协议包括UDP(消息定向)和TCP(流协议)。请参阅维基百科了解更多信息。
希望这能帮到您。
流协议以字节为单位发送数据。可以将其视为管道,其中一侧输入的所有内容都会传输到另一侧。另一侧的任务是确定何时有足够的数据,使之有意义。
TCP是一个典型的例子。一旦您通过管道发送“Hello World”,就没有保证它会如此到达。它可能作为每个字母本身,作为两个单词或作为一个整体出现。您唯一知道的是字母的顺序。
消息协议通常是在流之上构建的,但中间有一层负责将每个逻辑部分与另一个隔离开来。它会解析输入流,并仅在整个数据集到达时才给您结果,而不是在所有状态之间都给您结果。在前面的示例中,您只期望得到完整的“Hello World”消息或什么也没有。
这是相当简化的观点,但我认为它解释了最大的区别。
消息流和字节流的主要区别在于消息边界。消息流会跟踪消息边界,而字节流不会。
在网络中,假设有1024个字节的数据被传输到主机,然后过了一分钟,另外1024个字节的数据也被传输到同一主机,那么接收者将会收到总共2048个字节的数据。
在这种传输中,消息流将发送两个不同的1024字节的消息,而字节流将把整个2048个字节作为单个单位传输给接收者。
消息流的例子包括页面序列。字节流的例子包括下载歌曲或电影。