面向消息的协议和面向流的协议之间的区别

时间:2010-06-10 19:11:13

标签: network-protocols

我试图了解这两种计算机网络术语之间的区别。我在互联网上搜索但没有得到一个好主意。有人可以解释一下或给一个解释这个的页面链接吗?谢谢......

4 个答案:

答案 0 :(得分:63)

面向消息的协议以不同的块或组发送数据。数据接收器可以确定一条消息的结束位置和另一条消息的开始位流协议发送连续的数据流。

这是手机的一个例子。文本消息将是面向消息的协议,因为每个文本消息与其他消息不同。电话呼叫是面向流的,因为整个呼叫过程中都有连续的音频流。

互联网上使用的通用协议是UDP(面向消息)和TCP(面向流)。维基百科这些条款了解更多信息。

希望这有帮助

答案 1 :(得分:18)

流协议逐字节发送数据。您可以将其视为管道,其中一侧的所有进入都在另一侧进行转移。另一方的任务是确定何时有足够的数据来理解它。

TCP就是它的典型例子。一旦你通过管道发送“Hello World”,就没有保证它会这样。它可以作为每个字母单独出现,作为两个单词或一个单独的字母。只有你知道的是,字母的顺序是相同的。

消息协议通常是在流上构建的,但它们之间有一层用于将每个逻辑部分与另一个逻辑部分分开。它为您解析输入流,并仅在整个数据集到达时为您提供结果,而不是在其间的所有状态。在前面的示例中,您只会期望完整的“Hello World”消息。

这是非常简化的观点,但我认为它解释了最大的不同。

答案 2 :(得分:3)

有点复杂。

通常,有两种不同类型的低级别(OSI:物理)类型:

  • 面向包裹的运输
  • 面向渠道的运输

两种传输类型都可以通过调频,幅度调制,相位调制发送......

可以通过数字化来增强那些频率/幅度/ ...(也称为模拟调制)。或用于数字信号。这称为数字调制。

请参阅:https://en.wikipedia.org/wiki/Modulation

面向包的传输对一些包使用一行。 面向通道的传输使用不同的线路用于不同的包。面向信道的传输(在无线电中使用)的优点是,信号不会立即发生。缺点是,该通道使用稀疏。因此,总带宽很低。因此,我们使用Package-Oriented-Transport进行Internet。但是,这种传输可以基于面向信道的频率调制(如电缆调制解调器)或基于单线封装的调幅(如Telefone-Lines)。

最后,UDP和TCP在OSI级别5(传输)中是面向包的。因此,关于Streaming和面向消息的TCP之间的区别是一个很好的问题。

使用TCP的shoutcast.com流也会被分区为包。 (Streaming-Packages / Messages被分成TCP-Packages。)有可能一个TCP-Package丢失。仅仅因为TCP是面向地址并枚举其包,可以再次请求包。这使得TCP可靠。

TCP的顶部现在是流。他们使用可能性根据包号来订购TCP包。关键是,他们发送的数据更有可能在每个时刻切换到流中。

也许,这澄清了这个问题。

此致

答案 3 :(得分:1)

消息流和字节流之间的主要区别是消息边界。此外,消息流将跟踪消息边界,但字节流不会。

在网络中考虑将1024字节的数据传输到主机,然后在一分钟之后另一个1024字节传输到同一主机,然后接收器将接收总共2048字节的数据。

在此传输中,消息流将发送两个不同的1024字节消息,而在字节流中将完整的2048作为单个单元传输到接收器。

实施例。消息流是页面序列。 防爆。下载歌曲或电影的字节流。